This section explains how to use the Sentinel Express SDK in offline mode |
What is offline mode?
Offline mode is a way to use the SDK without any internet access. It allows the SDK user to download necessary artifacts from OpenCloud’s online repository and push them into the user’s own local repository. The term 'local repository' is used to refer to a repository in the SDK user’s filesystem.
This document covers all of the steps required to create a local repository so that no internet connection is required. This can be useful for production environments or even in developer environments where internet access is limited or not available.
What is online mode?
When the SDK is not in offline mode, it is in online mode. In online mode, the SDK will connect to OpenCloud’s online repository to fetch required OpenCloud artifacts, rather than fetching from a local repository on the local machine.
The go-offline
script
The go-offline
script will create an offline repository and copy all artifacts to it. Note that this can take half an hour or more depending on connection speed.
The repository created by this script will be placed in the repositories
directory in the root of the SDK.
Run the go-offline
script:
testuser@machine$ build/bin/go-offline
$ ./build/bin/go-offline Buildfile: /home/testuser/sentinel-express-sdkbuild.xml init-build-extensions: pre-init-ivy-common: init-ivy-common: Determining Ivy settings. Checking ivy-defaults.properties for ivy settings. artifactory.host=repo.rhino.metaswitch.com (from ivy-defaults.properties) artifactory.url=https://${artifactory.host}/artifactory (from ivy-defaults.properties) ivy.cache.root=${sdk.root}/build/target/ivy-caches/online-resolvers.cache(from ivy-defaults.properties) ivy.checksums=sha1 (from ivy-defaults.properties) ivy.dir=${basedir} (from ivy-defaults.properties) ivy.libs=${target}/libs (from ivy-defaults.properties) ivy.local.root=${ivy.default.ivy.user.dir}/opencloud-local (from ivy-defaults.properties) ivy.offline.root=${sdk.root}/repositories/opencloud-offline-mirror(from ivy-defaults.properties) ivy.publication.root=${ivy.local.root} (from ivy-defaults.properties) ivy.resolve.refresh=false (from ivy-defaults.properties) ivy.sdk-resolvers.file=resolvers-remote.xml (from ivy-defaults.properties) ivy.sdk-resolvers.file.internal=resolvers-remote.xml(from ivy-defaults.properties) ivy.sdk-resolvers.path=${ivy.settings.dir}/${ivy.sdk-resolvers.file}(from ivy-defaults.properties) ivy.symlinks=false (from ivy-defaults.properties) artifactory.host=repo.rhino.metaswitch.com (from ant environment) artifactory.password=******************************** (from ant environment) artifactory.url=https://repo.rhino.metaswitch.com/artifactory (from ant environment) artifactory.username=testuser (from ant environment) ivy.symlinks=true (from ant environment) Writing Ivy configuration to: /home/testuser/sentinel-express-sdkivy.properties [echo] Ivy Resolvers: /home/testuser/sentinel-express-sdkbuild/ivy/resolvers-remote.xml [echo] Configuring Ivy with settings: /home/testuser/sentinel-express-sdkbuild/ivy/ivysettings.xml [ivy:var] :: Apache Ivy 2.3.0 - 20130110142753 :: http://ant.apache.org/ivy/ :: [ivy:var] :: loading settings :: file = /home/testuser/sentinel-express-sdkbuild/ivy/ivysettings.xml ivy-authentication-check: [ivy:resolve] :: loading settings :: file = /home/testuser/sentinel-express-sdkbuild/ivy/ivysettings.xml [echo] Build infrastructure lib/ directory is missing or out of date. [echo] Populating lib/ from ivy... [mkdir] Created dir: /home/testuser/sentinel-express-sdkbuild/target/lib [touch] Creating /home/testuser/sentinel-express-sdkbuild/target/lib/.lib.uptodate update-index-properties: [oc:index-properties] Resolving: opencloud#sentinel-express-index#sentinel-pack/3.0.0;latest.integration [oc:index-properties] Copying /home/testuser/sentinel-express-sdkbuild/target/ivy-caches/online-resolvers.cache/opencloud/sentinel-express-index/sentinel-pack/3.0.0/jsons/sentinel-express-index-3.0.0.0.json to /home/testuser/sentinel-express-sdkbuild/target/lib/index/sentinel-express-index-3.0.0.0.json [oc:index-properties] Reading Module metadata from index: /home/testuser/sentinel-express-sdkbuild/target/lib/index/sentinel-express-index-3.0.0.0.json [oc:index-properties] Writing dependency properties to: /home/testuser/sentinel-express-sdkrelease.properties init: init-branch: BUILD SUCCESSFUL Total time: 24 seconds :: loading settings :: file = /home/testuser/sentinel-express-sdkbuild/ivy/ivysettings.xml This SDK is configured against internal OpenCloud resolvers: resolvers-remote.xml Mirroring OpenCloud dependencies to repositories/opencloud-offline-mirror Copying SDK index to offline repository... Copying SDK infrastructure dependencies to offline repository... Copying modules to offline repository... Installing module 583/583 Finished copying repository artifacts. Updating 'ivy.properties' to use offline resolvers: ivy.sdk-resolvers.file=offline-resolvers.xml ivy.cache.root=${sdk.root}/build/target/ivy-caches/offline-resolvers.cache Configuration complete. SDK is now in 'offline' mode. Use 'go-online' to return to online mode.
The script will also have switched the SDK to offline mode now, so the next time the user starts the sdkadm tool it will use the new local repository.
After switching the SDK to offline mode, it is recommended to exit the sdkadm program before further use. Just type 'quit' and press enter.
The go-online
script
The go-online
script will switch the SDK to online mode.
Run the go-online
script:
testuser@machine$ build/bin/go-online
$ ./build/bin/go-online :: loading settings :: file = /home/testuser/sentinel-express-sdkbuild/ivy/ivysettings.xml downloading /home/testuser/sentinel-express-sdkrepositories/opencloud-offline-mirror/opencloud/sentinel-pack/3.0.0/sentinel-express-index/3.0.0.0/sentinel-express-index-3.0.0.0.json ... .............. (802kB) .. (0kB) [SUCCESSFUL ] opencloud#sentinel-express-index#sentinel-pack/3.0.0;3.0.0.0!sentinel-express-index.json (52ms) Updating 'ivy.properties' to use online resolvers: ivy.sdk-resolvers.file=resolvers-remote.xml ivy.cache.root=${sdk.root}/build/target/ivy-caches/online-resolvers.cache Configuration complete. SDK is now in 'online' mode. Use 'go-offline' to return to offline mode.
The script will also have switched the SDK to online mode now, so the next time the user starts the sdkadm tool it will use OpenCloud’s online repository.
After switching the SDK to online mode, it is recommended to exit the sdkadm program before further use. Just type 'quit' and press enter.