[CORD-1977] Change Ansible Playbook code for changed image and implement build_and_run
Change-Id: Ia60f0daff0bbabf90c023849c3ce21e795d711b1
(cherry picked from commit 2cc578b1defd9e41dca01c8422dec730eeba6e9a)
diff --git a/xos/synchronizer/steps/sync_vspgwutenant.py b/xos/synchronizer/steps/sync_vspgwutenant.py
index 28a206d..39b8bb2 100644
--- a/xos/synchronizer/steps/sync_vspgwutenant.py
+++ b/xos/synchronizer/steps/sync_vspgwutenant.py
@@ -34,14 +34,14 @@
scenario = self.get_scenario(o)
- if scenario == 'ng4t_with_sdncontroller':
- return self.get_values_for_ng4t_w_sdncontroller(o)
- elif scenario == 'ng4t_without_sdncontroller':
- return self.get_values_for_ng4t_wo_sdncontroller(o)
- elif scenario == 'spirent_with_sdncontroller':
- return self.get_values_for_spirent_w_sdncontroller(o)
- elif scenario == 'spirent_without_sdncontroller':
- return self.get_values_for_spirent_wo_sdncontroller(o)
+ if scenario == 'normal_scenario':
+ return self.get_values_for_normal_scenario(o)
+ elif scenario == 'normal_scenario_without_sdncontroller':
+ return self.get_values_for_normal_scenario_wo_sdncontroller(o)
+ elif scenario == 'emulator_scenario':
+ return self.get_values_for_emulator_scenario(o)
+ elif scenario == 'emulator_scenario_without_sdncontroller':
+ return self.get_values_for_emulator_scenario_wo_sdncontroller(o)
else:
return self.get_extra_attributes_for_manual(o)
@@ -61,11 +61,17 @@
fields['s1u_ip'] = "manual"
fields['sgi_ip'] = "manual"
+ # for static_arp.cfg file
+ fields['as_sgi_ip'] = "manual"
+ fields['as_sgi_mac'] = "manual"
+ fields['enb_s1u_ip'] = "manual"
+ fields['enb_s1u_mac'] = "manual"
+
return fields
- def get_values_for_ng4t_w_sdncontroller(self, o):
+ def get_values_for_normal_scenario(self, o):
fields = {}
- fields['scenario'] = "ng4t_with_sdncontroller"
+ fields['scenario'] = "normal_scenario"
# for interface.cfg file
fields['zmq_sub_ip'] = self.get_ip_address_from_peer_service_instance(
'sbi_network', "SDNControllerServiceInstance", 'zmq_sub_ip')
@@ -86,11 +92,17 @@
fields['sgi_ip'] = self.get_ip_address_from_peer_service_instance(
'sgi_network', "VSPGWUTenant", 'sgi_ip')
+ # for static_arp.cfg file
+ fields['as_sgi_ip'] = self.get_ip_address('sgi_network', InternetEmulatorServiceInstance, 'as_sgi_ip')
+ fields['as_sgi_mac'] = self.get_mac_address('sgi_network', InternetEmulatorServiceInstance, 'as_sgi_mac')
+ fields['enb_s1u_ip'] = self.get_ip_address('s1u_network', VENBServiceInstance, 'enb_s1u_ip')
+ fields['enb_s1u_mac'] = self.get_mac_address('s1u_network', VENBServiceInstance, 'enb_s1u_mac')
+
return fields
- def get_values_for_ng4t_wo_sdncontroller(self, o):
+ def get_values_for_normal_scenario_wo_sdncontroller(self, o):
fields = {}
- fields['scenario'] = "ng4t_without_sdncontroller"
+ fields['scenario'] = "normal_scenario_without_sdncontroller"
# for interface.cfg file
fields['zmq_sub_ip'] = "127.0.0.1"
fields['zmq_pub_ip'] = "127.0.0.1"
@@ -107,11 +119,17 @@
fields['sgi_ip'] = self.get_ip_address_from_peer_service_instance_instance(
'sgi_network', o, 'sgi_ip')
+ # for static_arp.cfg file
+ fields['as_sgi_ip'] = self.get_ip_address('sgi_network', InternetEmulatorServiceInstance, 'as_sgi_ip')
+ fields['as_sgi_mac'] = self.get_mac_address('sgi_network', InternetEmulatorServiceInstance, 'as_sgi_mac')
+ fields['enb_s1u_ip'] = self.get_ip_address('s1u_network', VENBServiceInstance, 'enb_s1u_ip')
+ fields['enb_s1u_mac'] = self.get_mac_address('s1u_network', VENBServiceInstance, 'enb_s1u_mac')
+
return fields
- def get_values_for_spirent_w_sdncontroller(self, o):
+ def get_values_for_emulator_scenario(self, o):
fields = {}
- fields['scenario'] = "ng4t_with_sdncontroller"
+ fields['scenario'] = "emulator_scenario"
# for interface.cfg file
fields['zmq_sub_ip'] = self.get_ip_address_from_peer_service_instance(
'sbi_network', "SDNControllerServiceInstance", 'zmq_sub_ip')
@@ -132,11 +150,17 @@
fields['sgi_ip'] = self.get_ip_address_from_peer_service_instance_instance(
'sgi_network', o, 'sgi_ip')
+ # for static_arp.cfg file
+ fields['as_sgi_ip'] = self.get_ip_address('sgi_network', VENBServiceInstance, 'as_sgi_ip')
+ fields['as_sgi_mac'] = self.get_mac_address('sgi_network', VENBServiceInstance, 'as_sgi_mac')
+ fields['enb_s1u_ip'] = self.get_ip_address('s1u_network', VENBServiceInstance, 'enb_s1u_ip')
+ fields['enb_s1u_mac'] = self.get_mac_address('s1u_network', VENBServiceInstance, 'enb_s1u_mac')
+
return fields
- def get_values_for_spirent_wo_sdncontroller(self, o):
+ def get_values_for_emulator_scenario_wo_sdncontroller(self, o):
fields = {}
- fields['scenario'] = "ng4t_without_sdncontroller"
+ fields['scenario'] = "emulator_scenario_without_sdncontroller"
# for interface.cfg file
fields['zmq_sub_ip'] = "127.0.0.1"
fields['zmq_pub_ip'] = "127.0.0.1"
@@ -153,6 +177,12 @@
fields['sgi_ip'] = self.get_ip_address_from_peer_service_instance_instance(
'sgi_network', o, 'sgi_ip')
+ # for static_arp.cfg file
+ fields['as_sgi_ip'] = self.get_ip_address('sgi_network', VENBServiceInstance, 'as_sgi_ip')
+ fields['as_sgi_mac'] = self.get_mac_address('sgi_network', VENBServiceInstance, 'as_sgi_mac')
+ fields['enb_s1u_ip'] = self.get_ip_address('s1u_network', VENBServiceInstance, 'enb_s1u_ip')
+ fields['enb_s1u_mac'] = self.get_mac_address('s1u_network', VENBServiceInstance, 'enb_s1u_mac')
+
return fields
def has_instance(self, sitype, o):
@@ -175,18 +205,24 @@
internetemulator_flag = self.has_instance(
"SDNControllerServiceInstance", o)
+ # wait until vspgwu and env are comming up
+ if (not vspgwu_flag):
+ self.defer_sync("Waiting for vSPGWU to come up")
+
+ if (not venb_flag):
+ self.defer_sync("Waiting for vENB to come up")
+
if vmme_flag and venb_flag and sdncontroller_flag and vspgwu_flag and internetemulator_flag:
- return 'ng4t_with_sdncontroller'
+ return 'normal_scenario'
if vmme_flag and venb_flag and (not sdncontroller_flag) and vspgwu_flag and internetemulator_flag:
- return 'ng4t_without_sdncontroller'
+ return 'normal_scenario_without_sdncontroller'
if (not vmme_flag) and venb_flag and sdncontroller_flag and vspgwu_flag and (not internetemulator_flag):
- return 'spirent_with_sdncontroller'
+ return 'emulator_scenario'
- if (not vmme_flag) and venb_flag and (not sdncontroller_flag) and vspgwu_flag and (
- not internetemulator_flag):
- return 'spirent_without_sdncontroller'
+ if (not vmme_flag) and venb_flag and (not sdncontroller_flag) and vspgwu_flag and (not internetemulator_flag):
+ return 'emulator_scenario_without_sdncontroller'
return 'manual'
@@ -222,13 +258,26 @@
ip_address = Port.objects.get(
network_id=net_id, instance_id=ins_id).ip
except Exception:
- self.log.error("Failed to fetch parameter",
- parameter=parameter,
- network_name=network_name)
+ ip_address = "error"
+ self.log.error("Failed to fetch parameter to get IP", parameter = parameter, network_name = network_name)
self.defer_sync("Waiting for parameters to become available")
return ip_address
+ def get_mac_address(self, network_name, service_instance, parameter):
+
+ try:
+ net_id = self.get_network_id(network_name)
+ ins_id = self.get_instance_id(service_instance)
+ mac_address = Port.objects.get(network_id=net_id, instance_id=ins_id).ip
+
+ except Exception:
+ mac_address = "error"
+ self.log.error("Failed to fetch parameter to get MAC", parameter = parameter, network_name = network_name)
+ self.defer_sync("Waiting for parameters to become available")
+
+ return mac_address
+
# To get each network id
def get_network_id(self, network_name):
return Network.objects.get(name=network_name).id