]> review.fuel-infra Code Review - tools/sustaining.git/commitdiff
Upgrade procedure to 9.2 in deployment 90/31390/2
authorAnton Chevychalov <achevychalov@mirantis.com>
Wed, 1 Mar 2017 15:30:18 +0000 (18:30 +0300)
committerAnton Chevychalov <achevychalov@mirantis.com>
Wed, 1 Mar 2017 17:00:06 +0000 (20:00 +0300)
Add 9.2 upgrade procedure to build_cluster tool.
New parameter UPDATE_TO, that allow to choose target version.

Change-Id: Iba15b4c91c7350e0487fdbd790c0bcb958f218a9

jenkins/build_cluster/build_cluster.py
jenkins/build_cluster/config.xml
jenkins/build_cluster/update_helper.sh

index d0f03a24bda1748d6d300140cec1cbdc815f641a..c3b5d8736a33be16f94cc56aaa144f066400c0e9 100755 (executable)
@@ -65,6 +65,7 @@ if cfg["ISO_URL"]:
 
 cfg["PREPARE_CLUSTER"] = os.getenv("PREPARE_CLUSTER")
 cfg["UPDATE_FUEL"] = os.getenv("UPDATE_FUEL")
+cfg["UPDATE_TO"] = os.getenv("UPDATE_TO","latest_released_mu")
 cfg["ADD_CENT_REPO"] = os.getenv("ADD_CENT_REPO")
 cfg["RELEASE"] = os.getenv("RELEASE")
 cfg["HA"] = os.getenv("HA")
@@ -533,15 +534,15 @@ def do_update(node):
         print ("ERROR: Unable to copy update script to admin node")
         return False
 
-    if not node.execute(["/tmp/"+UPDATE_HELPER,"first"]):
-        print ("ERROR: First phase of upgrade faileduuu")
+    if not node.execute(["/tmp/"+UPDATE_HELPER,"first",cfg["UPDATE_TO"]]):
+        print ("ERROR: First phase of upgrade failed")
         return False
         
-    node.execute(["/tmp/"+UPDATE_HELPER,"reboot"])
+    node.execute(["/tmp/"+UPDATE_HELPER,"reboot",cfg["UPDATE_TO"]])
     time.sleep(60 * 5)
 
     if node.put_file(UPDATE_HELPER):
-        return node.execute(["/tmp/"+UPDATE_HELPER,"second"])
+        return node.execute(["/tmp/"+UPDATE_HELPER,"second",cfg["UPDATE_TO"]])
     else:
         print ("ERROR: Unable to copy update script to admin node") 
         return False
index 0e77719b14ca8e6f5e4ce47fd36741c9283c98c2..0c7ca3ea6e5603e04a625e499d972d7fdf39eb2c 100644 (file)
@@ -81,6 +81,17 @@ Required! Can be direct URL or URL to torrent-file. </description>
           <description>Update fuel version to latest MU (7.0 and 8.0 only) or upgrade release 9.x (9.0 to 9.1)</description>
           <defaultValue>false</defaultValue>
         </hudson.model.BooleanParameterDefinition>
+        <hudson.model.ChoiceParameterDefinition>
+          <name>UPDATE_TO</name>
+          <description>Do not USE! Non production ready!</description>
+          <choices class="java.util.Arrays$ArrayList">
+            <a class="string-array">
+              <string>latest_released_mu</string>
+              <string>9.2</string>
+              <string>9.1</string>
+            </a>
+          </choices>
+        </hudson.model.ChoiceParameterDefinition>
         <hudson.model.ChoiceParameterDefinition>
           <name>NETWORK_TYPE</name>
           <description>Choose a network type or leave it empty</description>
@@ -116,7 +127,9 @@ Required! Can be direct URL or URL to torrent-file. </description>
         <hudson.model.TextParameterDefinition>
           <name>SSH_PUB_KEYS</name>
           <description>Add you keys to default value of job</description>
-          <defaultValue></defaultValue>
+          <defaultValue>ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8PWq76FFIKmxPGMdWErBMEFwtb2NZYeTxu1lMVacC1QemMMaoybNisvD+L4JyaiC+zFQzlHlCDgicCgw7TXkgFtoyttLMxbshcu+wx0uG8bMlQTZ5DZ7ywwBU7+OysSgBEvju1dlMF7wOKDcYLfJxbYoUYvq+tgVbBWBFm8q+PrMvZZGfPX5M6m/sdpiFc3/f1K6Hh+DeV+9hFx/2vES62Qwv76zzr7oGS3tAi2RyBFt6BWrJx9vqa25AAoqzRsHoj0+0iAi1reZQ3jvz3FIsfgVN+ymVv431X4Gr3H8+BMj56VpT5z8McXj9+o+qoK70YLrtg2z2IpSONOE7o3JX ac@achevychalov
+
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDrV6q403BYodTCb8BCsWlkW6AHxvtCH5JxI9gUANsvbQd9n8fd16xqgXVecCRBJOS4PVauLNiQPMaj6ZuFeRZ8ZXvX498eNSNa5WhBbSwk0X/DqdK1LN/MStTAtL60JQV0yQSY+BghVJkREw4MJJBksyP0X+OG5AB+ijh/bjsabYr+EQNK+WJblrsRvNNCbjiWPcjzXVMxUrzphB09CYMwWFgx1An5jS7c1EGvXrzf0aK1KkadhGnXcjPACFaMGPYmu5HNgQcRnzNXDQU6PLGeyqNnZYZjHdQWZR88cQywznqzI8y9P4qSOTVStYoKLlYsdQFRTw8sJrRpPZupgSED astupnikov@astupnikov-srv</defaultValue>
         </hudson.model.TextParameterDefinition>
         <org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterDefinition plugin="nodelabelparameter@1.5.1">
           <name>Label of Slave</name>
index d1a6cd60f1280f9e8366fefcf60886399b21dffc..1a62883bf8bb949d7e098f2db11f117cdf63d5ef 100755 (executable)
@@ -53,13 +53,37 @@ upgrade_second_phase_8x (){
        RUN_WITH_LOGGER "dockerctl start all" || return 1
 }
 
-upgrade_to_9x () {
+upgrade_to_9_1 () {
     RUN_WITH_LOGGER yum clean all || return 1
     RUN_WITH_LOGGER yum install python-cudet -y || return 1
     RUN_WITH_LOGGER update-prepare prepare master || return 1
     RUN_WITH_LOGGER update-prepare update master || return 1
 }
 
+upgrade_to_9_2 () {
+       RUN_WITH_LOGGER yum install -y http://mirror.fuel-infra.org/mos-repos/centos/mos9.0-centos7/9.2-updates/x86_64/Packages/mos-release-9.2-1.el7.x86_64.rpm || return 1
+       RUN_WITH_LOGGER yum clean all || return 1
+       RUN_WITH_LOGGER yum install -y mos-playbooks || return 1
+       RUN_WITH_LOGGER cd /root/mos_playbooks/mos_mu/ || return 1
+       RUN_WITH_LOGGER ansible-playbook playbooks/mos9_prepare_fuel.yml || return 1
+       RUN_WITH_LOGGER ansible-playbook playbooks/update_fuel.yml -e '{"rebuild_bootstrap":false}' || return 1
+       RUN_WITH_LOGGER ansible-playbook playbooks/mos9_fuel_upgrade_kernel_4.4.yml || return 1
+}
+
+upgrade_to_9x () {
+       case $target_version in
+               latest_released_mu|9.2)
+                       upgrade_to_9_2
+                       ;;
+               9.1)
+                       upgrade-to_9_1
+                       ;;
+               *)
+                       crap "error: Have no idea about target version $target_version for $version"
+                       ;;
+       esac
+}
+
 crap () {
        echo $1 >&2
        exit ${2:-1}
@@ -154,6 +178,8 @@ esac
 # For some of the upgrade procedures we have to split upgrade on two phase with reboot between.
 phase=${1:-"second"}
 
+target_version=${2}
+
 case $phase in
        first|second|reboot)
                action="${phase}_phase"