Remove setActive, add cache lookups to transaction

Removing the invasive setActive() method from transaction,
and its uses from FileServices and DFUUtil, and adding
a re-entrant cache parameter to control caching of files
when transaction is not active.
Fix gh-2629 Configmgr - save as button
- Add a 'Save Environment As' button to toolbar.
- 'Save Environment As' can only be used in read-only mode
- 'Save Environment As' loads the saved environment file

Signed-off-by: Gleb Aronsky <gleb.aronsky@lexisnexis.com>
Fix gh-2629 Configmr - Save As Button

  - Add a 'Save Envrionment As' button to toolbar
  - 'Save Environment As' can be used in read-only or write-mode
    - In write-mode 'Save Environment As' will save in memory/volatile
      configuration to target file.
  - 'Save Environment As' in read-only mode will load the target
    file after save
  - 'Save Environment As...' from Navigator context menu (Hardware)
    will behave identically to the 'Save Envrionment As' button

Signed-off-by: Gleb Aronsky <gleb.aronsky@lexisnexis.com>
Minor spacing change based on feedback.

Signed-off-by: Gleb Aronsky <gleb.aronsky@lexisnexis.com>
Fix gh-3007 Configmgr-should check for dafilsrv + ftslave for s

Signed-off-by: Gleb Aronsky <gleb.aronsky@lexisnexis.com>
gh-3098 Misleading git tag displayed on internal builds

The git tags on internal developer builds can be misleading, because
of the way the upmerges are being done. When on a branch that is not
a specific closedown branch for a tagged build, the git tag is liable
to find the most recently-tagged release version that has been upmerged
to the current branch, and describe the current revision based on that,
which isn't really very helpful.

Add the expected version number to the filter when looking up git tags,
so that the tag will only be used in the cases where it will be helpful.

Fixes gh-3098

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
gh-3106 CONTRIBUTORS file updated to reflect requirement for issue ref.

Generating changelogs and generally tracking progress on builds (and working
around githib shortcomings) is going to be a lot easier if we get stricter
about the formatting of commit messages.

Reword the CONTRIBUTORS file to make the use of a github issue reference a
requirement rather than a guideline, and provide git hooks to allow easy
checking.

Fixes gh-3106.

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Merge pull request #3026 from rengolin/dfs-active

Remove setActive, add cache lookups to transaction

Reviewed-By: Jake Smith <jake.smith@lexisnexis.com>
Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
gh-3066 Roxie not releasing files fully after running workunit.

Roxie was not fully releasing index files that were loaded by a
workunit query. This could result in spurious errors reporting that
a different version of the index file was already loaded, if the
index was modified before the query was next run.

Ideally, the jhtree index cache would be restructured so that it does
not link the IKeyIndex objects in it, but rather releases the cached
entries when their link counts go to zero. However, that would be a
larger refactoring.

We already use the clearKeyStoreCache(false) call whenever QuerySet contents
changes to avoid this issue - add a call whenever a WorkUnit query finishes
too.

Fixes gh-3066.

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Merge branch 'issue-2629_configmgr_save_as_button_2' of https://github.com/garonsky/HPCC-Platform into garonsky-issue-2629_configmgr_save_as_button_2

Conflicts:
	esp/files/scripts/configmgr/navtree.js

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Fix gh-3083 - logical rename, not renaming physicals correctly

The rename code was assuming the logical file directory matched the current instance base directory.
Which is not likely to be true, e.g. eclagents vs thor's have different default data directories and the rename context is normally eclagent. So renaming a thor file in eclagent, it will normally mismatch.
If it detected a mismatch, there was some odd legacy code which was effectively taking the 1st two head subdirectories from the existing path and using that as the new head.
The result on a default OSS system, was that renames attempt to rename to /var/lib/<filename>

This commit, deducing the old base directory based on the existing lfn directory.

Signed-off-by: Jake Smith <jake.smith@lexisnexis.com>
Merge pull request #3108 from richardkchapman/contributors-3106

gh-3106 CONTRIBUTORS file updated to reflect requirement for issue ref.

Reviewed-By: Jake Smith <jake.smith@lexisnexis.com>
Merge pull request #3110 from jakesmith/gh-3083

Fix gh-3083 - logical rename, not renaming physicals correctly

Reviewed-By: Renato Golin <rengolin@hpccsystems.com>
Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Merge pull request #3099 from richardkchapman/git-tagging-gh3098

gh-3098 Misleading git tag displayed on internal builds

Reviewed-By: Philip Schwartz <philip.schwartz@lexisnexis.com>
Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Merge pull request #3111 from richardkchapman/roxie-unload-3066

gh-3066 Roxie not releasing files fully after running workunit.

Reviewed-By: Jake Smith <jake.smith@lexisnexis.com>
Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
gh-3094 Fix Configmgr - Writing modified optional attributes reverts their value
  - Add check to ensure that when writing optional attributes to the
    environment that the modified value is used and not the default
    value
Signed-off-by: Gleb Aronsky <gleb.aronsky@lexisnexis.com>
Merge remote-tracking branch 'origin/candidate-3.8.2' into candidate-3.8.x

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Merge remote-tracking branch 'origin/candidate-3.8.x' into candidate-3.10.x

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Merge remote-tracking branch 'origin/candidate-3.10.x'

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
gh-2768 Some code in unicodelib plugin is not in proper namespace

Some code recently added to the unicode plugin was not inside the namespace
section. This creates the potential for name clashes (though none are
known to be occurring at present).

Fixes gh-2768.

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>