diff options
Diffstat (limited to 'mason.configure')
-rw-r--r-- | mason.configure | 49 |
1 files changed, 38 insertions, 11 deletions
diff --git a/mason.configure b/mason.configure index 4d11feb4..1198ebd0 100644 --- a/mason.configure +++ b/mason.configure @@ -24,23 +24,24 @@ # * MASON_DEFINITIONS_REF # * MASON_DISTBUILD_ARCH # * MASON_TEST_HOST +# * OPENSTACK_NETWORK_ID +# * TEST_INFRASTRUCTURE_TYPE # * TROVE_HOST # * TROVE_ID # * CONTROLLERHOST set -e -ROOT="$1" - - ########################################################################## # 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 @@ -73,7 +74,6 @@ cp mason/mason-setup.service "$ROOT"/etc/systemd/system/mason-setup.service ln -s ../mason-setup.service "$ROOT"/etc/systemd/system/multi-user.target.wants/mason-setup.service - ########################################################################## # Check variables ########################################################################## @@ -83,12 +83,23 @@ if [ -n "$MASON_GENERIC" ]; then 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 +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 @@ -108,6 +119,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 +129,25 @@ mason_configuration={ yaml.dump(mason_configuration, sys.stdout, default_flow_style=False) EOF +if [ "$TEST_INFRASTRUCTURE_TYPE" = "openstack" ]; then + python <<'EOF' >>"$MASON_DATA/mason.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 |