Merge "Adapt zrpcd to work for Carbon/Nitrogen"
authorTim Rozet <trozet@redhat.com>
Thu, 19 Oct 2017 13:28:16 +0000 (13:28 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Thu, 19 Oct 2017 13:28:16 +0000 (13:28 +0000)
1  2 
apex/overcloud/deploy.py

diff --combined apex/overcloud/deploy.py
@@@ -11,7 -11,6 +11,6 @@@ import base6
  import fileinput
  import logging
  import os
- import re
  import shutil
  import uuid
  import struct
@@@ -175,8 -174,18 +174,18 @@@ def prep_image(ds, img, tmp_dir, root_p
          }])
  
      if ds_opts['vpn']:
-         virt_cmds.append({con.VIRT_RUN_CMD: "systemctl enable zrpcd"})
-         logging.info("ZRPC and Quagga enabled")
+         virt_cmds.append({con.VIRT_RUN_CMD: "chmod +x /etc/rc.d/rc.local"})
+         virt_cmds.append({
+             con.VIRT_RUN_CMD:
+                 "echo '/opt/quagga/etc/init.d/zrpcd start' > "
+                 "/opt/quagga/etc/init.d/zrpcd_start.sh"})
+         virt_cmds.append({
+             con.VIRT_RUN_CMD: "chmod +x /opt/quagga/etc/init.d/"
+                               "zrpcd_start.sh"})
+         virt_cmds.append({
+             con.VIRT_RUN_CMD: "sed -i '$a /opt/quagga/etc/"
+                               "init.d/zrpcd_start.sh' /etc/rc.local "})
+         logging.info("ZRPCD process started")
  
      dataplane = ds_opts['dataplane']
      if dataplane == 'ovs_dpdk' or dataplane == 'fdio':
@@@ -306,12 -315,8 +315,12 @@@ def prep_env(ds, ns, inv, opnfv_env, ne
      tmp_opnfv_env = os.path.join(tmp_dir, os.path.basename(opnfv_env))
      shutil.copyfile(opnfv_env, tmp_opnfv_env)
      tenant_nic_map = ns['networks']['tenant']['nic_mapping']
 -    tenant_ctrl_nic = tenant_nic_map['controller']['members'][0]
 -    tenant_comp_nic = tenant_nic_map['compute']['members'][0]
 +    tenant_nic = dict()
 +    tenant_nic['Controller'] = tenant_nic_map['controller']['members'][0]
 +    tenant_nic['NovaCompute'] = tenant_nic_map['compute']['members'][0]
 +    external_nic_map = ns['networks']['external'][0]['nic_mapping']
 +    external_nic = dict()
 +    external_nic['NovaCompute'] = external_nic_map['compute']['members'][0]
  
      # SSH keys
      private_key, public_key = make_ssh_key()
                  output_line = ("    opendaylight::vpp_routing_node: {}.{}"
                                 .format(ds_opts['odl_vpp_routing_node'],
                                         ns['domain_name']))
 -            elif 'ControllerExtraConfig' in line:
 -                output_line = ("  ControllerExtraConfig:\n    "
 -                               "tripleo::profile::base::neutron::agents::"
 -                               "honeycomb::interface_role_mapping:"
 -                               " ['{}:tenant-interface]'"
 -                               .format(tenant_ctrl_nic))
 -            elif 'NovaComputeExtraConfig' in line:
 -                output_line = ("  NovaComputeExtraConfig:\n    "
 -                               "tripleo::profile::base::neutron::agents::"
 -                               "honeycomb::interface_role_mapping:"
 -                               " ['{}:tenant-interface]'"
 -                               .format(tenant_comp_nic))
          elif not ds_opts['sdn_controller'] and ds_opts['dataplane'] == 'fdio':
              if 'NeutronVPPAgentPhysnets' in line:
                  output_line = ("  NeutronVPPAgentPhysnets: 'datacentre:{}'".
 -                               format(tenant_ctrl_nic))
 +                               format(tenant_nic['Controller']))
          elif ds_opts['sdn_controller'] == 'opendaylight' and ds_opts.get(
                  'dvr') is True:
              if 'OS::TripleO::Services::NeutronDhcpAgent' in line:
                          perf_line += ("\n    "
                                        "fdio::vpp_cpu_corelist_workers: '{}'"
                                        .format(perf_opts['corelist-workers']))
 +                    if ds_opts['sdn_controller'] == 'opendaylight' and \
 +                            ds_opts['dataplane'] == 'fdio':
 +                        if role == 'NovaCompute':
 +                            perf_line += ("\n    "
 +                                          "tripleo::profile::base::neutron::"
 +                                          "agents::honeycomb::"
 +                                          "interface_role_mapping:"
 +                                          " ['{}:tenant-interface',"
 +                                          "'{}:public-interface']"
 +                                          .format(tenant_nic[role],
 +                                                  external_nic[role]))
 +                        else:
 +                            perf_line += ("\n    "
 +                                          "tripleo::profile::base::neutron::"
 +                                          "agents::honeycomb::"
 +                                          "interface_role_mapping:"
 +                                          " ['{}:tenant-interface']"
 +                                          .format(tenant_nic[role]))
                      if perf_line:
                          output_line = ("  {}:{}".format(cfg, perf_line))