From 989a36faf118a720f0d8ed5e9b497c9ca695a846 Mon Sep 17 00:00:00 2001
From: Janki Chhatbar <jankihchhatbar@gmail.com>
Date: Fri, 29 Jun 2018 20:11:29 +0530
Subject: [PATCH] Edit some post update tasks logic

1. Spelling mismatch in ODL net mapping doesnot generate
its endpoitn clearly.
2. Rectified another small syntax correction for string
replace.
3. Delete upgrade flag and then set it to false. ODL
doesnot allow it to be set without deleting.
4. Other changes in accordance with ODL update process.

Change-Id: Ib549e29f50bbbb434183ac9423bcf776807ff1a4
Closes-Bug: 1779410
---
 docker/services/opendaylight-api.yaml | 30 ++++++-----
 network/endpoints/endpoint_data.yaml  |  4 +-
 network/endpoints/endpoint_map.yaml   | 32 ++++++------
 puppet/services/opendaylight-ovs.yaml | 72 ++++++++-------------------
 4 files changed, 56 insertions(+), 82 deletions(-)

diff --git a/docker/services/opendaylight-api.yaml b/docker/services/opendaylight-api.yaml
index ed50917e83..bfbb9a54d3 100644
--- a/docker/services/opendaylight-api.yaml
+++ b/docker/services/opendaylight-api.yaml
@@ -221,18 +221,6 @@ outputs:
                 mode: 0644
               when: step|int == 1
       post_upgrade_tasks: &odl_container_post_upgrade_tasks
-        - name: Disable Upgrade Flag via Rest
-          shell:
-            str_replace:
-              template: 'curl -k -v --silent --fail -u ODL_USERNAME:$ODL_PASSWORD -X \
-                         PUT -d "{ "config": { "upgradeInProgress": false } }" \
-                         -H "Content-Type: application/json" \
-                         $ODL_URI/restconf/config/genius-mdsalutil:config'
-              params:
-                $ODL_USERNAME: {get_attr: [OpenDaylightBase, role_data, config_settings, 'opendaylight::username']}
-                $ODL_PASSWORD: {get_attr: [OpenDaylightBase, role_data, config_settings, 'opendaylight::password']}
-                $ODL_URI: {get_param: [EndpointMap, OpenDaylightInternal, uri]}
-          when: step|int == 0
         - name: Disable Upgrade in Config File
           copy:
             dest: /var/lib/config-data/puppet-generated/opendaylight/opt/opendaylight/etc/opendaylight/datastore/initial/config/genius-mdsalutil-config.xml
@@ -244,6 +232,24 @@ outputs:
             group: 42462
             mode: 0644
           when: step|int == 0
+          # 2 commands in 1 task because the sequence of commands needs to be ensured
+          # and that no other task is executed in between.
+        - name: Delete Upgrade Flag and Unset it via Rest
+          shell:
+            str_replace:
+              template: >
+                curl -k -v --silent --fail -u $ODL_USERNAME:$ODL_PASSWORD
+                -H "Content-Type: application/json" -X DELETE
+                $ODL_URI/restconf/config/genius-mdsalutil:config;
+                curl -k -v --silent --fail -u $ODL_USERNAME:$ODL_PASSWORD
+                -H "Content-Type: application/json" -X POST
+                $ODL_URI/restconf/config/genius-mdsalutil:config
+                -d "{ "upgradeInProgress": false }"
+              params:
+                $ODL_USERNAME: {get_attr: [OpenDaylightBase, role_data, config_settings, 'opendaylight::username']}
+                $ODL_PASSWORD: {get_attr: [OpenDaylightBase, role_data, config_settings, 'opendaylight::password']}
+                $ODL_URI: {get_param: [EndpointMap, OpenDaylightInternal, uri]}
+          when: step|int == 0
       update_tasks:
         - name: Get ODL update level
           block: &get_odl_update_level
diff --git a/network/endpoints/endpoint_data.yaml b/network/endpoints/endpoint_data.yaml
index cd2eddcd50..0babfe4ab2 100644
--- a/network/endpoints/endpoint_data.yaml
+++ b/network/endpoints/endpoint_data.yaml
@@ -412,7 +412,7 @@ DockerRegistry:
 
 OpenDaylight:
     Internal:
-        net_param: OpenDaylightApi
+        net_param: OpendaylightApi
     Admin:
-        net_param: OpenDaylightApi
+        net_param: OpendaylightApi
     port: 8081
diff --git a/network/endpoints/endpoint_map.yaml b/network/endpoints/endpoint_map.yaml
index 98f08cd60f..336fb549a0 100644
--- a/network/endpoints/endpoint_map.yaml
+++ b/network/endpoints/endpoint_map.yaml
@@ -7127,14 +7127,14 @@ outputs:
               CLOUDNAME:
                 get_param:
                 - CloudEndpoints
-                - get_param: [ServiceNetMap, OpenDaylightApiNetwork]
+                - get_param: [ServiceNetMap, OpendaylightApiNetwork]
               IP_ADDRESS:
                 get_param:
                 - NetIpMap
                 - str_replace:
                     params:
                       NETWORK:
-                        get_param: [ServiceNetMap, OpenDaylightApiNetwork]
+                        get_param: [ServiceNetMap, OpendaylightApiNetwork]
                     template: NETWORK_uri
         host_nobrackets:
           str_replace:
@@ -7144,11 +7144,11 @@ outputs:
               CLOUDNAME:
                 get_param:
                 - CloudEndpoints
-                - get_param: [ServiceNetMap, OpenDaylightApiNetwork]
+                - get_param: [ServiceNetMap, OpendaylightApiNetwork]
               IP_ADDRESS:
                 get_param:
                 - NetIpMap
-                - get_param: [ServiceNetMap, OpenDaylightApiNetwork]
+                - get_param: [ServiceNetMap, OpendaylightApiNetwork]
         port:
           get_param: [EndpointMap, OpenDaylightAdmin, port]
         protocol:
@@ -7165,14 +7165,14 @@ outputs:
                   CLOUDNAME:
                     get_param:
                     - CloudEndpoints
-                    - get_param: [ServiceNetMap, OpenDaylightApiNetwork]
+                    - get_param: [ServiceNetMap, OpendaylightApiNetwork]
                   IP_ADDRESS:
                     get_param:
                     - NetIpMap
                     - str_replace:
                         params:
                           NETWORK:
-                            get_param: [ServiceNetMap, OpenDaylightApiNetwork]
+                            get_param: [ServiceNetMap, OpendaylightApiNetwork]
                         template: NETWORK_uri
             port:
               get_param: [EndpointMap, OpenDaylightAdmin, port]
@@ -7188,14 +7188,14 @@ outputs:
                   CLOUDNAME:
                     get_param:
                     - CloudEndpoints
-                    - get_param: [ServiceNetMap, OpenDaylightApiNetwork]
+                    - get_param: [ServiceNetMap, OpendaylightApiNetwork]
                   IP_ADDRESS:
                     get_param:
                     - NetIpMap
                     - str_replace:
                         params:
                           NETWORK:
-                            get_param: [ServiceNetMap, OpenDaylightApiNetwork]
+                            get_param: [ServiceNetMap, OpendaylightApiNetwork]
                         template: NETWORK_uri
             port:
               get_param: [EndpointMap, OpenDaylightAdmin, port]
@@ -7208,14 +7208,14 @@ outputs:
               CLOUDNAME:
                 get_param:
                 - CloudEndpoints
-                - get_param: [ServiceNetMap, OpenDaylightApiNetwork]
+                - get_param: [ServiceNetMap, OpendaylightApiNetwork]
               IP_ADDRESS:
                 get_param:
                 - NetIpMap
                 - str_replace:
                     params:
                       NETWORK:
-                        get_param: [ServiceNetMap, OpenDaylightApiNetwork]
+                        get_param: [ServiceNetMap, OpendaylightApiNetwork]
                     template: NETWORK_uri
         host_nobrackets:
           str_replace:
@@ -7225,11 +7225,11 @@ outputs:
               CLOUDNAME:
                 get_param:
                 - CloudEndpoints
-                - get_param: [ServiceNetMap, OpenDaylightApiNetwork]
+                - get_param: [ServiceNetMap, OpendaylightApiNetwork]
               IP_ADDRESS:
                 get_param:
                 - NetIpMap
-                - get_param: [ServiceNetMap, OpenDaylightApiNetwork]
+                - get_param: [ServiceNetMap, OpendaylightApiNetwork]
         port:
           get_param: [EndpointMap, OpenDaylightInternal, port]
         protocol:
@@ -7246,14 +7246,14 @@ outputs:
                   CLOUDNAME:
                     get_param:
                     - CloudEndpoints
-                    - get_param: [ServiceNetMap, OpenDaylightApiNetwork]
+                    - get_param: [ServiceNetMap, OpendaylightApiNetwork]
                   IP_ADDRESS:
                     get_param:
                     - NetIpMap
                     - str_replace:
                         params:
                           NETWORK:
-                            get_param: [ServiceNetMap, OpenDaylightApiNetwork]
+                            get_param: [ServiceNetMap, OpendaylightApiNetwork]
                         template: NETWORK_uri
             port:
               get_param: [EndpointMap, OpenDaylightInternal, port]
@@ -7269,14 +7269,14 @@ outputs:
                   CLOUDNAME:
                     get_param:
                     - CloudEndpoints
-                    - get_param: [ServiceNetMap, OpenDaylightApiNetwork]
+                    - get_param: [ServiceNetMap, OpendaylightApiNetwork]
                   IP_ADDRESS:
                     get_param:
                     - NetIpMap
                     - str_replace:
                         params:
                           NETWORK:
-                            get_param: [ServiceNetMap, OpenDaylightApiNetwork]
+                            get_param: [ServiceNetMap, OpendaylightApiNetwork]
                         template: NETWORK_uri
             port:
               get_param: [EndpointMap, OpenDaylightInternal, port]
diff --git a/puppet/services/opendaylight-ovs.yaml b/puppet/services/opendaylight-ovs.yaml
index 3877962ea1..47dac5e097 100644
--- a/puppet/services/opendaylight-ovs.yaml
+++ b/puppet/services/opendaylight-ovs.yaml
@@ -225,55 +225,28 @@ outputs:
         list_concat:
           - get_attr: [Ovs, role_data, upgrade_tasks]
           -
-            - name: Check if openvswitch is deployed
-              command: systemctl is-enabled openvswitch
-              tags: common
-              ignore_errors: True
-              register: openvswitch_enabled
-            - name: "PreUpgrade step0,validation: Check service openvswitch is running"
-              command: systemctl is-active --quiet openvswitch
-              when:
-                - step|int == 0
-                - openvswitch_enabled.rc == 0
-              tags: validation
-            - name: Stop openvswitch service
-              when:
-                - step|int == 1
-                - openvswitch_enabled.rc == 0
-              service: name=openvswitch state=stopped
-              # Container upgrade steps.
             - name: ODL container L2 update and upgrade tasks
               block: &odl_container_upgrade_tasks
-              - name: Block connections to ODL. #This rule will be inserted at the top.
-                iptables: chain=OUTPUT action=insert protocol=tcp destination_port={{ item }} jump=DROP
-                when: step|int == 0
-                with_items:
-                  - 6640
-                  - 6653
-                  - 6633
-      post_upgrade_tasks: &odl_container_post_upgrade_tasks
-        - name: Check service openvswitch is running
-          command: systemctl is-active --quiet openvswitch
-          tags: common
-          register: openvswitch_running
-        - name: Delete OVS groups and ports
-          shell: "sudo ovs-ofctl -O Openflow13 del-groups br-int; \
-                  for tun_port in $(ovs-vsctl list-ports br-int | grep 'tun'); \
-                  do; ovs-vsctl del-port br-int $(tun_port); done;"
-          when: (step|int == 0) and (openvswitch_running.rc == 0)
-        - name: Stop openvswitch service
-          when: (step|int == 1) and (openvswitch_running.rc == 0)
-          service: name=openvswitch state=stopped
-        - name: Unblock OVS port per compute node. #Delete previously added rule
-          iptables: chain=OUTPUT action=insert protocol=tcp destination_port={{ item }} jump=DROP state=absent
-          when: step|int == 2
-          with_items:
-            - 6640
-            - 6653
-            - 6633
-        - name: start openvswitch service
-          when: step|int == 3
-          service : name=openvswitch state=started
+              - name: Check if openvswitch is deployed
+                command: systemctl is-enabled openvswitch
+                tags: common
+                ignore_errors: True
+                register: openvswitch_enabled
+              - name: "PreUpgrade step0,validation: Check service openvswitch is running"
+                command: systemctl is-active --quiet openvswitch
+                when:
+                  - step|int == 0
+                  - openvswitch_enabled.rc == 0
+                tags: validation
+              # Container upgrade steps.
+              - name: Delete OVS groups and ports
+                shell: >
+                  sudo ovs-ofctl -O Openflow13 del-groups br-int;
+                  for tun_port in $(sudo ovs-vsctl list-ports br-int | grep tun);
+                  do sudo ovs-vsctl del-port br-int $tun_port; done
+                when:
+                  - step|int == 0
+                  - openvswitch_enabled.rc == 0
       update_tasks:
         - name: Get ODL update level
           block: &get_odl_update_level
@@ -283,11 +256,6 @@ outputs:
         - name: Run L2 update tasks that are similar to upgrade_tasks when update level is 2
           block: *odl_container_upgrade_tasks
           when: odl_update_level == 2
-      post_update_tasks:
-        - block: *get_odl_update_level
-        - block: *odl_container_post_upgrade_tasks
-          when: odl_update_level == 2
-
       metadata_settings:
         if:
           - internal_tls_enabled