Fixes deployment on CentOS 7.6
[apex.git] / apex / overcloud / deploy.py
index f40c8bd..538f50a 100644 (file)
@@ -99,6 +99,12 @@ DUPLICATE_COMPUTE_SERVICES = [
     'OS::TripleO::Services::ComputeNeutronL3Agent'
 ]
 
+NFS_VARS = [
+    'NovaNfsEnabled',
+    'GlanceNfsEnabled',
+    'CinderNfsEnabledBackend'
+]
+
 
 def build_sdn_env_list(ds, sdn_map, env_list=None):
     """
@@ -361,22 +367,12 @@ def prep_image(ds, ns, img, tmp_dir, root_pw=None, docker_tag=None,
         pw_op = "password:{}".format(root_pw)
         virt_cmds.append({con.VIRT_PW: pw_op})
 
-    if dataplane == 'ovs':
-        if ds_opts['sfc']:
-            oc_builder.inject_ovs_nsh(tmp_oc_image, tmp_dir)
-        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)}
-            ])
+    # FIXME(trozet) ovs build is failing in CentOS 7.6
+    # if dataplane == 'ovs':
+        # FIXME(trozet) remove this after RDO is updated with fix for
+        # https://bugzilla.redhat.com/show_bug.cgi?id=1544892
+        # https://review.rdoproject.org/r/#/c/13839/
+        # oc_builder.inject_ovs_nsh(tmp_oc_image, tmp_dir)
 
     if dataplane == 'fdio':
         # Patch neutron with using OVS external interface for router
@@ -442,17 +438,20 @@ def prep_image(ds, ns, img, tmp_dir, root_pw=None, docker_tag=None,
         {con.VIRT_RUN_CMD: "ln -s /usr/lib/systemd/system/nfs-server.service "
                            "/etc/systemd/system/multi-user.target.wants/"
                            "nfs-server.service"},
-        {con.VIRT_RUN_CMD: "mkdir -p /root/nfs/glance"},
-        {con.VIRT_RUN_CMD: "mkdir -p /root/nfs/cinder"},
-        {con.VIRT_RUN_CMD: "mkdir -p /root/nfs/nova"},
-        {con.VIRT_RUN_CMD: "chmod 777 /root/nfs/glance"},
-        {con.VIRT_RUN_CMD: "chmod 777 /root/nfs/cinder"},
-        {con.VIRT_RUN_CMD: "chmod 777 /root/nfs/nova"},
-        {con.VIRT_RUN_CMD: "echo '/root/nfs/glance *(rw,sync,"
+        {con.VIRT_RUN_CMD: "mkdir -p /glance"},
+        {con.VIRT_RUN_CMD: "mkdir -p /cinder"},
+        {con.VIRT_RUN_CMD: "mkdir -p /nova"},
+        {con.VIRT_RUN_CMD: "chmod 777 /glance"},
+        {con.VIRT_RUN_CMD: "chmod 777 /cinder"},
+        {con.VIRT_RUN_CMD: "chmod 777 /nova"},
+        {con.VIRT_RUN_CMD: "chown nfsnobody:nfsnobody /glance"},
+        {con.VIRT_RUN_CMD: "chown nfsnobody:nfsnobody /cinder"},
+        {con.VIRT_RUN_CMD: "chown nfsnobody:nfsnobody /nova"},
+        {con.VIRT_RUN_CMD: "echo '/glance *(rw,sync,"
                            "no_root_squash,no_acl)' > /etc/exports"},
-        {con.VIRT_RUN_CMD: "echo '/root/nfs/cinder *(rw,sync,"
+        {con.VIRT_RUN_CMD: "echo '/cinder *(rw,sync,"
                            "no_root_squash,no_acl)' >> /etc/exports"},
-        {con.VIRT_RUN_CMD: "echo '/root/nfs/nova *(rw,sync,"
+        {con.VIRT_RUN_CMD: "echo '/nova *(rw,sync,"
                            "no_root_squash,no_acl)' >> /etc/exports"},
         {con.VIRT_RUN_CMD: "exportfs -avr"},
     ])
@@ -701,11 +700,11 @@ def prep_env(ds, ns, inv, opnfv_env, net_env, tmp_dir):
     # Merge compute services into control services if only a single
     # node deployment
     if num_compute == 0:
-        logging.info("All in one deployment. Checking if service merging "
-                     "required into control services")
         with open(tmp_opnfv_env, 'r') as fh:
             data = yaml.safe_load(fh)
         param_data = data['parameter_defaults']
+        logging.info("All in one deployment detected")
+        logging.info("Disabling NFS in env file")
         # Check to see if any parameters are set for Compute
         for param in param_data.keys():
             if param != 'ComputeServices' and param.startswith('Compute'):
@@ -713,6 +712,10 @@ def prep_env(ds, ns, inv, opnfv_env, net_env, tmp_dir):
                                 "in deployment: {}. Please use Controller "
                                 "based parameters when using All-in-one "
                                 "deployments".format(param))
+            if param in NFS_VARS:
+                param_data[param] = False
+        logging.info("Checking if service merging required into "
+                     "control services")
         if ('ControllerServices' in param_data and 'ComputeServices' in
                 param_data):
             logging.info("Services detected in environment file. Merging...")
@@ -727,11 +730,11 @@ def prep_env(ds, ns, inv, opnfv_env, net_env, tmp_dir):
             logging.debug("Merged controller services: {}".format(
                 pprint.pformat(param_data['ControllerServices'])
             ))
-            with open(tmp_opnfv_env, 'w') as fh:
-                yaml.safe_dump(data, fh, default_flow_style=False)
         else:
             logging.info("No services detected in env file, not merging "
                          "services")
+        with open(tmp_opnfv_env, 'w') as fh:
+            yaml.safe_dump(data, fh, default_flow_style=False)
 
     logging.info("opnfv-environment file written to {}".format(tmp_opnfv_env))
     with open(tmp_opnfv_env, 'r') as fh: