Simplify handling of runtime properties by delegating to the gravia runtime.
Fix handling of public hostname. Allow distribution to be pushed to remote containers. Generate ssh keys if not available on remote contaienrs. Always set JAVA_HOME when installing java on remote containers. Fix broken container-create-cloud command. Use non interactive sudo (on remote containers) only when the option is available.
[FABRIC-1100] - Immutable Version/Profile constructs
Review FabricService.getDefaultVersion(). Add FabricService.getDefaultVersionId(), getRequiredDefaultVersion()
Split CachingGitDataStore in ZkDataStore and GitDataStore
Add profile registry locking. Make ProfileRegistry.getProfile() atomic
Use executeRead/executeWrite instead of generic gitOperation
Use explicit requireCommit/requirePush with GitContext
Only push when there was a commit. Notify on every successful commit
Prepare createProfile/updateProfile for atomic with single commit
Explicitly requirePull through the GitContext
Make GitDataStore.createProfile() atomic with single commit
Make GitDataStore.updateProfile() atomic with single commit
Reset the workspace (hard) before we do a pull
Recursively create/update parent profiles
Recursively create/update parent profiles in GitDataDataStore
Create version atomically in GitDataStore
Migrate getVersions(), hasVersion(), deleteVersion()
Atomic createVersion() from as a copy of another version
Migrate getProfiles(), deleteProfile()