Merge "Fix conntrack proto sctp module"
[apex-tripleo-heat-templates.git] / deployed-server / scripts / get-occ-config.sh
index d6219e8..28f038c 100755 (executable)
@@ -11,14 +11,22 @@ OBJECTSTORAGE_HOSTS=${OBJECTSTORAGE_HOSTS:-""}
 CEPHSTORAGE_HOSTS=${CEPHSTORAGE_HOSTS:-""}
 SUBNODES_SSH_KEY=${SUBNODES_SSH_KEY:-"~/.ssh/id_rsa"}
 SSH_OPTIONS="-tt -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=Verbose -o PasswordAuthentication=no -o ConnectionAttempts=32"
+OVERCLOUD_ROLES=${OVERCLOUD_ROLES:-"Controller Compute BlockStorage ObjectStorage CephStorage"}
+
+# Set the _hosts vars for the default roles based on the old var names that
+# were all caps for backwards compatibility.
+Controller_hosts=${Controller_hosts:-"$CONTROLLER_HOSTS"}
+Compute_hosts=${Compute_hosts:-"$COMPUTE_HOSTS"}
+BlockStorage_hosts=${BlockStorage_hosts:-"$BLOCKSTORAGE_HOSTS"}
+ObjectStorage_hosts=${ObjectStorage_hosts:-"$OBJECTSTORAGE_HOSTS"}
+CephStorage_hosts=${CephStorage_hosts:-"$CEPHSTORAGE_HOSTS"}
+
+# Set the _hosts_a vars for each role defined
+for role in $OVERCLOUD_ROLES; do
+    eval hosts=\${${role}_hosts}
+    read -a ${role}_hosts_a <<< $hosts
+done
 
-read -a Controller_hosts_a <<< $CONTROLLER_HOSTS
-read -a Compute_hosts_a <<< $COMPUTE_HOSTS
-read -a BlockStorage_hosts_a <<< $BLOCKSTORAGE_HOSTS
-read -a ObjectStorage_hosts_a <<< $OBJECTSTORAGE_HOSTS
-read -a CephStorage_hosts_a <<< $CEPHSTORAGE_HOSTS
-
-roles=${OVERCLOUD_ROLES:-"Controller Compute BlockStorage ObjectStorage CephStorage"}
 admin_user_id=$(openstack user show admin -c id -f value)
 admin_project_id=$(openstack project show admin -c id -f value)
 
@@ -44,7 +52,7 @@ function check_stack {
 }
 
 
-for role in $roles; do
+for role in $OVERCLOUD_ROLES; do
     while ! check_stack overcloud; do
         sleep $SLEEP_TIME
     done
@@ -55,7 +63,7 @@ for role in $roles; do
         rg_stack=$(openstack stack resource show overcloud $role -c physical_resource_id -f value)
     done
 
-    stacks=$(openstack stack resource list $rg_stack -c physical_resource_id -f value)
+    stacks=$(openstack stack resource list $rg_stack -c resource_name -c physical_resource_id -f json | jq -r "sort_by(.resource_name) | .[] | .physical_resource_id")
 
     i=0
 
@@ -71,24 +79,26 @@ for role in $roles; do
             server_stack=$(openstack stack resource show $stack $server_resource_name -c physical_resource_id -f value)
         done
 
-        deployed_server_stack=$(openstack stack resource show $server_stack deployed-server -c physical_resource_id -f value)
+        while true; do
+            deployed_server_metadata_url=$(openstack stack resource metadata $server_stack deployed-server | jq -r '.["os-collect-config"].request.metadata_url')
+            if [ "$deployed_server_metadata_url" = "null" ]; then
+                continue
+            else
+                break
+            fi
+        done
 
         echo "======================"
-        echo "$role$i os-collect-config.conf configuration:"
-
-        config="
-[DEFAULT]
-collectors=heat
-command=os-refresh-config
-polling_interval=30
-
-[heat]
-user_id=$admin_user_id
-password=$OS_PASSWORD
-auth_url=$OS_AUTH_URL
-project_id=$admin_project_id
-stack_id=$deployed_server_stack
-resource_name=deployed-server-config"
+        echo "$role$i deployed-server.json configuration:"
+
+        config="{
+  \"os-collect-config\": {
+    \"collectors\": [\"request\", \"local\"],
+    \"request\": {
+      \"metadata_url\": \"$deployed_server_metadata_url\"
+    }
+  }
+}"
 
         echo "$config"
         echo "======================"
@@ -98,12 +108,11 @@ resource_name=deployed-server-config"
         host=
         eval host=\${${role}_hosts_a[i]}
         if [ -n "$host" ]; then
-            # Delete the os-collect-config.conf template so our file won't get
-            # overwritten
-            ssh $SSH_OPTIONS -i $SUBNODES_SSH_KEY $host sudo /bin/rm -f /usr/libexec/os-apply-config/templates/etc/os-collect-config.conf
-            ssh $SSH_OPTIONS -i $SUBNODES_SSH_KEY $host "echo \"$config\" > os-collect-config.conf"
-            ssh $SSH_OPTIONS -i $SUBNODES_SSH_KEY $host sudo cp os-collect-config.conf /etc/os-collect-config.conf
-            ssh $SSH_OPTIONS -i $SUBNODES_SSH_KEY $host sudo systemctl restart os-collect-config
+            ssh $SSH_OPTIONS -i $SUBNODES_SSH_KEY $host "echo '$config' > deployed-server.json"
+            ssh $SSH_OPTIONS -i $SUBNODES_SSH_KEY $host sudo mkdir -p -m 0700 /var/lib/os-collect-config/local-data/ || true
+            ssh $SSH_OPTIONS -i $SUBNODES_SSH_KEY $host sudo cp deployed-server.json /var/lib/os-collect-config/local-data/deployed-server.json
+            ssh $SSH_OPTIONS -i $SUBNODES_SSH_KEY $host sudo systemctl start os-collect-config
+            ssh $SSH_OPTIONS -i $SUBNODES_SSH_KEY $host sudo systemctl enable os-collect-config
         fi
 
         let i+=1