Adds update workflow 93/49393/1
authorParker Berberian <pberberian@iol.unh.edu>
Wed, 20 Dec 2017 18:26:23 +0000 (13:26 -0500)
committerParker Berberian <pberberian@iol.unh.edu>
Wed, 20 Dec 2017 18:26:23 +0000 (13:26 -0500)
JIRA: None

Adds a workflow and code that installs the chosen operating system on
a free host, updates it, and captures the new disk image.
This ensures that when we provision a new host, it is relatively up to date.

Change-Id: I553e4c8c1715add47ebfe7d853f884f242813ab2
Signed-off-by: Parker Berberian <pberberian@iol.unh.edu>
laas-fog/pharoslaas/actions/update.sh [new file with mode: 0644]
laas-fog/pharoslaas/actions/update.yaml [new file with mode: 0644]
laas-fog/pharoslaas/actions/update_workflow.yaml [new file with mode: 0644]
laas-fog/pharoslaas/actions/workflows/update_workflow.yaml [new file with mode: 0644]

diff --git a/laas-fog/pharoslaas/actions/update.sh b/laas-fog/pharoslaas/actions/update.sh
new file mode 100644 (file)
index 0000000..6635864
--- /dev/null
@@ -0,0 +1,29 @@
+#!/bin/bash
+##############################################################################
+# Copyright 2017 Parker Berberian and Others                                 #
+#                                                                            #
+# Licensed under the Apache License, Version 2.0 (the "License");            #
+# you may not use this file except in compliance with the License.           #
+# You may obtain a copy of the License at                                    #
+#                                                                            #
+#    http://www.apache.org/licenses/LICENSE-2.0                              #
+#                                                                            #
+# Unless required by applicable law or agreed to in writing, software        #
+# distributed under the License is distributed on an "AS IS" BASIS,          #
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
+# See the License for the specific language governing permissions and        #
+# limitations under the License.                                             #
+##############################################################################
+
+#check which package manager is used and run appropriate update cmd
+
+if which apt; then
+    apt -y update && apt -y upgrade
+elif which yum; then
+    yum -y upgrade
+elif which zypper; then
+        zypper -n update
+else
+    echo "Could not find package manager"
+    exit 1
+fi
diff --git a/laas-fog/pharoslaas/actions/update.yaml b/laas-fog/pharoslaas/actions/update.yaml
new file mode 100644 (file)
index 0000000..7c11a6d
--- /dev/null
@@ -0,0 +1,21 @@
+---
+##############################################################################
+# Copyright 2017 Parker Berberian and Others                                 #
+#                                                                            #
+# Licensed under the Apache License, Version 2.0 (the "License");            #
+# you may not use this file except in compliance with the License.           #
+# You may obtain a copy of the License at                                    #
+#                                                                            #
+#    http://www.apache.org/licenses/LICENSE-2.0                              #
+#                                                                            #
+# Unless required by applicable law or agreed to in writing, software        #
+# distributed under the License is distributed on an "AS IS" BASIS,          #
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
+# See the License for the specific language governing permissions and        #
+# limitations under the License.                                             #
+##############################################################################
+
+name: update
+entry_point: update.sh
+enabled: true
+runner_type: remote-shell-script
diff --git a/laas-fog/pharoslaas/actions/update_workflow.yaml b/laas-fog/pharoslaas/actions/update_workflow.yaml
new file mode 100644 (file)
index 0000000..27bbbba
--- /dev/null
@@ -0,0 +1,31 @@
+---
+##############################################################################
+# Copyright 2017 Parker Berberian and Others                                 #
+#                                                                            #
+# Licensed under the Apache License, Version 2.0 (the "License");            #
+# you may not use this file except in compliance with the License.           #
+# You may obtain a copy of the License at                                    #
+#                                                                            #
+#    http://www.apache.org/licenses/LICENSE-2.0                              #
+#                                                                            #
+# Unless required by applicable law or agreed to in writing, software        #
+# distributed under the License is distributed on an "AS IS" BASIS,          #
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
+# See the License for the specific language governing permissions and        #
+# limitations under the License.                                             #
+##############################################################################
+
+name: update_workflow
+entry_point: workflows/update_workflow.yaml
+enabled: true
+runner_type: action-chain
+parameters:
+    host:
+        required: true
+        type: string
+    os:
+        required: false
+        type: string
+    disk:
+        required: false
+        type: string
diff --git a/laas-fog/pharoslaas/actions/workflows/update_workflow.yaml b/laas-fog/pharoslaas/actions/workflows/update_workflow.yaml
new file mode 100644 (file)
index 0000000..132266f
--- /dev/null
@@ -0,0 +1,24 @@
+---
+chain:
+
+    -
+        name: "imageHost"
+        ref: "pharoslaas.fog_imageWorkflow"
+        parameters:
+            image: "{{image}}"
+            os: "{{os}}"
+            host: "{{host}}"
+        on-success: "updateHost"
+
+    -
+        name: "updateHost"
+        ref: "pharoslaas.update"
+        parameters:
+            hosts: "{{host}}"
+        on-success: "captureHost"
+
+    -
+        name: "captureHost"
+        ref: "pharoslaas.fog_captureWorkflow"
+        parameters:
+            host: "{{host}}"