Update OVS in overcloud
[apex.git] / apex / overcloud / deploy.py
index 439848f..2f58e8a 100644 (file)
@@ -344,15 +344,30 @@ def prep_image(ds, ns, img, tmp_dir, root_pw=None, docker_tag=None,
     if root_pw:
         pw_op = "password:{}".format(root_pw)
         virt_cmds.append({con.VIRT_PW: pw_op})
-    if ds_opts['sfc'] and dataplane == 'ovs':
-        virt_cmds.extend([
-            {con.VIRT_RUN_CMD: "yum -y install "
-                               "/root/ovs/rpm/rpmbuild/RPMS/x86_64/"
-                               "{}".format(OVS_NSH_KMOD_RPM)},
-            {con.VIRT_RUN_CMD: "yum downgrade -y "
-                               "/root/ovs/rpm/rpmbuild/RPMS/x86_64/"
-                               "{}".format(OVS_NSH_RPM)}
-        ])
+
+    if dataplane == 'ovs':
+        if ds_opts['sfc']:
+            virt_cmds.extend([
+                {con.VIRT_RUN_CMD: "yum -y install "
+                                   "/root/ovs/rpm/rpmbuild/RPMS/x86_64/"
+                                   "{}".format(OVS_NSH_KMOD_RPM)},
+                {con.VIRT_RUN_CMD: "yum downgrade -y "
+                                   "/root/ovs/rpm/rpmbuild/RPMS/x86_64/"
+                                   "{}".format(OVS_NSH_RPM)}
+            ])
+        elif sdn == 'opendaylight':
+            # FIXME(trozet) remove this after RDO is updated with fix for
+            # https://bugzilla.redhat.com/show_bug.cgi?id=1544892
+            ovs_file = os.path.basename(con.CUSTOM_OVS)
+            ovs_url = con.CUSTOM_OVS.replace(ovs_file, '')
+            utils.fetch_upstream_and_unpack(dest=tmp_dir, url=ovs_url,
+                                            targets=[ovs_file])
+            virt_cmds.extend([
+                {con.VIRT_UPLOAD: "{}:/root/".format(os.path.join(tmp_dir,
+                                                                  ovs_file))},
+                {con.VIRT_RUN_CMD: "yum downgrade -y /root/{}".format(
+                    ovs_file)}
+            ])
     if dataplane == 'fdio':
         # Patch neutron with using OVS external interface for router
         # and add generic linux NS interface driver