summaryrefslogtreecommitdiff
path: root/mason.configure
diff options
context:
space:
mode:
Diffstat (limited to 'mason.configure')
-rw-r--r--mason.configure108
1 files changed, 67 insertions, 41 deletions
diff --git a/mason.configure b/mason.configure
index 90d49709..4341d8c0 100644
--- a/mason.configure
+++ b/mason.configure
@@ -32,70 +32,96 @@ set -e
ROOT="$1"
-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 0
-fi
-
##########################################################################
-# Functions
+# Copy Mason files into root filesystem
##########################################################################
-shellescape() {
- echo "'$(echo "$1" | sed -e "s/'/'\\''/g")'"
-}
+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/mason.timer "$ROOT"/etc/systemd/system/mason.timer
+
+cp mason/mason.service "$ROOT"/etc/systemd/system/mason.service
##########################################################################
-# Generate config variable shell snippet
+# Set up httpd web server
##########################################################################
-MASON_CONFIG="$ROOT"/root/mason.conf
-
-echo "Creating $MASON_CONFIG"
-cat >>"$MASON_CONFIG" <<EOF
-#################### START OF DEPLOY TIME CONFIGURATION #######################
+cp mason/httpd.service "$ROOT"/etc/systemd/system/httpd.service
-ARTIFACT_CACHE_SERVER=$(shellescape "$ARTIFACT_CACHE_SERVER")
-UPSTREAM_TROVE_ADDRESS=$(shellescape "$TROVE_HOST")
-DEFINITIONS_REF=$(shellescape "$MASON_DEFINITIONS_REF")
-DISTBUILD_ARCH=$(shellescape "$MASON_DISTBUILD_ARCH")
-DISTBUILD_CONTROLLER_ADDRESS=$(shellescape "$CONTROLLERHOST")
-TROVE_ID=$(shellescape "$TROVE_ID")
-BUILD_CLUSTER_MORPHOLOGY=$(shellescape "$MASON_CLUSTER_MORPHOLOGY")
-TEST_VM_HOST_SSH_URL=$(shellescape "$MASON_TEST_HOST")
+mkdir -p "$ROOT"/srv/mason
-##################### END OF DEPLOY TIME CONFIGURATION ########################
+cat >>"$ROOT"/etc/httpd.conf <<EOF
+.log:text/plain
EOF
+mkdir -p "$ROOT"/var/mason
##########################################################################
-# Copy Mason files into root filesystem
+# Copy files needed for Ansible configuration
##########################################################################
-cp mason/mason.sh "$ROOT"/root/mason.sh
-cp mason/mason-report.sh "$ROOT"/root/mason-report.sh
+mkdir -p "$ROOT/usr/share/mason-setup"
+mkdir -p "$ROOT/usr/lib/mason-setup"
-cp mason/mason.timer "$ROOT"/etc/systemd/system/mason.timer
-ln -s ../mason.timer "$ROOT"/etc/systemd/system/multi-user.target.wants/mason.timer
+cp mason/share/* "$ROOT/usr/share/mason-setup"
+cp -r mason/ansible "$ROOT/usr/lib/mason-setup/"
+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
-cp mason/mason.service "$ROOT"/etc/systemd/system/mason.service
-ln -s ../mason.service "$ROOT"/etc/systemd/system/multi-user.target.wants/mason.service
##########################################################################
-# Set up httpd web server
+# Check variables
##########################################################################
-cp mason/httpd.service "$ROOT"/etc/systemd/system/httpd.service
-ln -s ../httpd.service "$ROOT"/etc/systemd/system/multi-user.target.wants/httpd.service
+if [ -n "$MASON_GENERIC" ]; then
+ echo Not configuring Mason, it will be generic
+ exit 0
+fi
-mkdir -p "$ROOT"/srv/mason
+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
-cat >>"$ROOT"/etc/httpd.conf <<EOF
-.log:text/plain
+##########################################################################
+# Generate config variable shell snippet
+##########################################################################
+
+MASON_DATA="$ROOT/etc/mason"
+mkdir -p "$MASON_DATA"
+
+python <<'EOF' >"$MASON_DATA/mason.conf"
+import os, sys, yaml
+
+trove_configuration={
+ 'ARTIFACT_CACHE_SERVIER': os.environ['ARTIFACT_CACHE_SERVER'],
+ 'MASON_CLUSTER_MORPHOLOGY': os.environ['MASON_CLUSTER_MORPHOLOGY'],
+ 'MASON_DEFINITIONS_REF': os.environ['MASON_DEFINITIONS_REF'],
+ 'MASON_DISTBUILD_ARCH': os.environ['MASON_DISTBUILD_ARCH'],
+ 'MASON_TEST_HOST': os.environ['MASON_TEST_HOST'],
+ 'TROVE_ADMIN_NAME': os.environ['TROVE_ADMIN_NAME'],
+ 'TROVE_ID': os.environ['TROVE_ID'],
+ 'TROVE_HOST': os.environ['TROVE_HOST'],
+ 'CONTROLLERHOST': os.environ['CONTROLLERHOST'],
+}
+
+yaml.dump(trove_configuration, sys.stdout, default_flow_style=False)
EOF
+
+
+##########################################################################
+# 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