diff options
Diffstat (limited to 'mason.configure')
-rw-r--r-- | mason.configure | 69 |
1 files changed, 49 insertions, 20 deletions
diff --git a/mason.configure b/mason.configure index 4d11feb4..621d6a31 100644 --- a/mason.configure +++ b/mason.configure @@ -24,23 +24,54 @@ # * MASON_DEFINITIONS_REF # * MASON_DISTBUILD_ARCH # * MASON_TEST_HOST +# * OPENSTACK_NETWORK_ID +# * TEST_INFRASTRUCTURE_TYPE # * TROVE_HOST # * TROVE_ID # * CONTROLLERHOST set -e -ROOT="$1" +########################################################################## +# Check variables +########################################################################## + +if [ -n "$MASON_GENERIC" ]; then + echo Not configuring Mason, it will be generic + exit 0 +fi + +if [ -z "$MASON_CLUSTER_MORPHOLOGY" -a \ + -z "$MASON_DEFINITIONS_REF" -a \ + -z "$MASON_DISTBUILD_ARCH" -a \ + -z "$MASON_TEST_HOST" ]; then + # No Mason options defined, do nothing. + exit 0 +fi + +if [ -z "$ARTIFACT_CACHE_SERVER" -o \ + -z "$CONTROLLERHOST" -o \ + -z "$MASON_CLUSTER_MORPHOLOGY" -o \ + -z "$MASON_DEFINITIONS_REF" -o \ + -z "$MASON_DISTBUILD_ARCH" -o \ + -z "$MASON_TEST_HOST" -o \ + -z "$TROVE_HOST" -o \ + -z "$TROVE_ID" ]; then + echo Some options required for Mason were defined, but not all. + exit 1 +fi ########################################################################## # Copy Mason files into root filesystem ########################################################################## +ROOT="$1" mkdir -p "$ROOT"/usr/lib/mason cp mason/mason.sh "$ROOT"/usr/lib/mason/mason.sh cp mason/mason-report.sh "$ROOT"/usr/lib/mason/mason-report.sh +cp mason/os-init-script "$ROOT"/usr/lib/mason/os-init-script cp mason/mason.timer "$ROOT"/etc/systemd/system/mason.timer @@ -75,24 +106,6 @@ ln -s ../mason-setup.service "$ROOT"/etc/systemd/system/multi-user.target.wants/ ########################################################################## -# Check variables -########################################################################## - -if [ -n "$MASON_GENERIC" ]; then - echo Not configuring Mason, it will be generic - exit 0 -fi - -if [ "$ARTIFACT_CACHE_SERVER" = "" \ - -o "$MASON_CLUSTER_MORPHOLOGY" = "" \ - -o "$MASON_DEFINITIONS_REF" = "" \ - -o "$MASON_DISTBUILD_ARCH" = "" \ - -o "$MASON_TEST_HOST" = "" ]; then - echo Not configuring as Mason, some options not defined - exit 1 -fi - -########################################################################## # Generate config variable shell snippet ########################################################################## @@ -108,6 +121,8 @@ mason_configuration={ 'MASON_DEFINITIONS_REF': os.environ['MASON_DEFINITIONS_REF'], 'MASON_DISTBUILD_ARCH': os.environ['MASON_DISTBUILD_ARCH'], 'MASON_TEST_HOST': os.environ['MASON_TEST_HOST'], + 'OPENSTACK_NETWORK_ID': os.environ['OPENSTACK_NETWORK_ID'], + 'TEST_INFRASTRUCTURE_TYPE': os.environ['TEST_INFRASTRUCTURE_TYPE'], 'TROVE_ID': os.environ['TROVE_ID'], 'TROVE_HOST': os.environ['TROVE_HOST'], 'CONTROLLERHOST': os.environ['CONTROLLERHOST'], @@ -116,11 +131,25 @@ mason_configuration={ yaml.dump(mason_configuration, sys.stdout, default_flow_style=False) EOF +if [ "$TEST_INFRASTRUCTURE_TYPE" = "openstack" ]; then + python <<'EOF' >"$MASON_DATA/os.conf" +import os, sys, yaml + +openstack_credentials={ + 'OS_USERNAME': os.environ['OPENSTACK_USER'], + 'OS_TENANT_NAME': os.environ['OPENSTACK_TENANT'], + 'OS_TENANT_ID': os.environ['OPENSTACK_TENANT_ID'], + 'OS_AUTH_URL': os.environ['OPENSTACK_AUTH_URL'], + 'OS_PASSWORD': os.environ['OPENSTACK_PASSWORD'], +} + +yaml.dump(openstack_credentials, sys.stdout, default_flow_style=False) +EOF +fi ########################################################################## # Enable services ########################################################################## ln -s ../mason.timer "$ROOT"/etc/systemd/system/multi-user.target.wants/mason.timer -ln -s ../mason.service "$ROOT"/etc/systemd/system/multi-user.target.wants/mason.service ln -s ../httpd.service "$ROOT"/etc/systemd/system/multi-user.target.wants/httpd.service |