+ def add_vnf_access_point(self, mano_ut=False):
+ vnfd = self.descriptor.vnfd[0]
+ vnfap = vnfd.vnfap
+ cap = vnfap.create_capability()
+ cap.from_dict({
+ "name": "mgmt_ip",
+ "description": "Management address",
+ "attribute": "../../../../mgmt-interface, ip-address",
+ })
+ vnfap.capability.append(cap)
+ cap = vnfap.create_capability()
+ cap.from_dict({
+ "name": "mgmt_port",
+ "description": "Management port",
+ "xpath": "../../../../mgmt-interface/port",
+ })
+ vnfap.capability.append(cap)
+ cap = vnfap.create_capability()
+ cap.from_dict({
+ "name": "username",
+ "description": "Management username",
+ "value": "admin"
+ })
+ vnfap.capability.append(cap)
+ cap = vnfap.create_capability()
+ cap.from_dict({
+ "name": "password",
+ "description": "Management password",
+ "value": "admin"
+ })
+ vnfap.capability.append(cap)
+
+ # Check if pong
+ if 'pong_' in self.name:
+ cap = vnfap.create_capability()
+ cap.from_dict({
+ "name": "service_ip",
+ "description": "IP on which Pong service is listening",
+ "attribute": "../../../../connection-point[name='pong_vnfd/cp0'], ip-address"
+ })
+ vnfap.capability.append(cap)
+ cap = vnfap.create_capability()
+ cap.from_dict({
+ "name": "service_port",
+ "description": "Port on which server listens for incoming data packets",
+ "value": "5555"
+ })
+ vnfap.capability.append(cap)
+
+ else:
+ cap = vnfap.create_capability()
+ cap.from_dict({
+ "name": "rate",
+ "description": "Rate of packet generation",
+ "value": "5"
+ })
+ vnfap.capability.append(cap)
+
+ dep = vnfap.create_dependency()
+ dep.from_dict({
+ "name": "service_ip",
+ "description": "IP on which Pong service is listening",
+ "mandatory": "true",
+ })
+ dep.config_primitive_name_ref.append('config')
+ vnfap.dependency.append(dep)
+ dep = vnfap.create_dependency()
+ dep.from_dict({
+ "name": "service_port",
+ "description": "Port on which Pong service is listening",
+ "mandatory": False,
+ })
+ dep.config_primitive_name_ref.append('config')
+ vnfap.dependency.append(dep)
+
+ def add_ping_config(self, mano_ut=False, use_ns_init_conf=False):
+ vnfd = self.descriptor.vnfd[0]
+ # Add vnf configuration
+ vnf_config = vnfd.vnf_configuration
+
+ vnf_config.config_attributes.config_delay = 60
+
+ # Add config primitive
+ vnf_config.create_config_primitive()
+ prim = VnfdYang.ConfigPrimitive.from_dict({
+ "name": "config",
+ "parameter": [
+ {"name": "mgmt_ip", "data_type": "STRING"},
+ {"name": "mgmt_port", "data_type": "INTEGER"},
+ {"name": "username", "data_type": "STRING"},
+ {"name": "password", "data_type": "STRING"},
+ {"name": "service_ip", "data_type": "STRING"},
+ {"name": "service_port", "data_type": "INTEGER",
+ "default_value": "5555"},
+ ],
+ "user_defined_script": "ping-setup.py",
+ })
+ vnf_config.config_primitive.append(prim)
+
+ prim = VnfdYang.ConfigPrimitive.from_dict({
+ "name": "set-rate",
+ "parameter": [
+ {"name": "mgmt_ip", "data_type": "STRING"},
+ {"name": "mgmt_port", "data_type": "INTEGER"},
+ {"name": "username", "data_type": "STRING"},
+ {"name": "password", "data_type": "STRING"},
+ {"name": "rate", "data_type": "INTEGER",
+ "default_value": "5"},
+ ],
+ "user_defined_script": "ping-set-rate.py",
+ })
+ vnf_config.config_primitive.append(prim)
+
+ prim = VnfdYang.ConfigPrimitive.from_dict({
+ "name": "start-stop",
+ "parameter": [
+ {"name": "mgmt_ip", "data_type": "STRING"},
+ {"name": "mgmt_port", "data_type": "INTEGER"},
+ {"name": "username", "data_type": "STRING"},
+ {"name": "password", "data_type": "STRING"},
+ {"name": "start", "data_type": "BOOLEAN",
+ "default_value": "true"}
+ ],
+ "user_defined_script": "ping-start-stop.py",
+ })
+ vnf_config.config_primitive.append(prim)
+
+ # Add initial config primitive
+ vnf_config.create_initial_config_primitive()
+ init_config = VnfdYang.InitialConfigPrimitive.from_dict(
+ {
+ "seq": 1,
+ "config_primitive_ref": "config",
+ }
+ )
+ vnf_config.initial_config_primitive.append(init_config)
+
+ init_config = VnfdYang.InitialConfigPrimitive.from_dict(
+ {
+ "seq": 2,
+ "config_primitive_ref": "set-rate",
+ },
+ )
+ vnf_config.initial_config_primitive.append(init_config)
+
+ if use_ns_init_conf is False:
+ init_config = VnfdYang.InitialConfigPrimitive.from_dict(
+ {
+ "seq": 3,
+ "config_primitive_ref": "start-stop",
+ },
+ )
+ vnf_config.initial_config_primitive.append(init_config)
+
+ def add_pong_config(self, mano_ut=False, use_ns_init_conf=False):
+ vnfd = self.descriptor.vnfd[0]
+ # Add vnf configuration
+ vnf_config = vnfd.vnf_configuration
+
+ # Add config primitive
+ vnf_config.create_config_primitive()
+ prim = VnfdYang.ConfigPrimitive.from_dict({
+ "name": "config",
+ "parameter": [
+ {"name": "mgmt_ip", "data_type": "STRING"},
+ {"name": "mgmt_port", "data_type": "INTEGER"},
+ {"name": "username", "data_type": "STRING"},
+ {"name": "password", "data_type": "STRING"},
+ {"name": "service_ip", "data_type": "STRING"},
+ {"name": "service_port", "data_type": "INTEGER"},
+ ],
+ "user_defined_script": "ping-setup.py",
+ })
+ vnf_config.config_primitive.append(prim)
+
+ prim = VnfdYang.ConfigPrimitive.from_dict({
+ "name": "start-stop",
+ "parameter": [
+ {"name": "mgmt_ip", "data_type": "STRING"},
+ {"name": "mgmt_port", "data_type": "INTEGER"},
+ {"name": "username", "data_type": "STRING"},
+ {"name": "password", "data_type": "STRING"},
+ {"name": "start", "data_type": "BOOLEAN",
+ "default_value": "true"}
+ ],
+ "user_defined_script": "ping-start-stop.py",
+ })
+ vnf_config.config_primitive.append(prim)
+
+ # Add initial config primitive
+ vnf_config.create_initial_config_primitive()
+ init_config = VnfdYang.InitialConfigPrimitive.from_dict(
+ {
+ "seq": 1,
+ "config_primitive_ref": "config",
+ }
+ )
+ vnf_config.initial_config_primitive.append(init_config)
+
+ if use_ns_init_conf is False:
+ init_config = VnfdYang.InitialConfigPrimitive.from_dict(
+ {
+ "seq": 2,
+ "config_primitive_ref": "start-stop",
+ },
+ )
+ vnf_config.initial_config_primitive.append(init_config)
+