Activity log for bug #1915251

Date Who What changed Old value New value Message
2021-02-10 09:30:14 Hiroo Kitamura bug added bug
2021-02-10 09:34:10 Hiroo Kitamura description Scale of VNF instantiated according to the procedure of "ETSI NFV-SOL VNF Deployment as VM with TOSCA[1]" fails. This is because, the scale process determines whether or not the scale can be set, but vnf_instantiated_info.scale_status is not set in VNF deployment with TOSCA. * Instantiated VNF information ``` $ openstack vnflcm list +--------------------------------------+------------------------------------------+---------------------+--------------+----------------------+------------------+--------------------------------------+ | ID | VNF Instance Name | Instantiation State | VNF Provider | VNF Software Version | VNF Product Name | VNFD ID | +--------------------------------------+------------------------------------------+---------------------+--------------+----------------------+------------------+--------------------------------------+ | 2c1f7511-5035-4cc7-b3b9-f05290a0eb45 | vnf-2c1f7511-5035-4cc7-b3b9-f05290a0eb45 | INSTANTIATED | Company | 1.0 | Sample VNF | b1bb0ce7-ebca-4fa7-95ed-4840d7000010 | +--------------------------------------+------------------------------------------+---------------------+--------------+----------------------+------------------+--------------------------------------+ ``` * Error when executing Scale command ``` $ openstack vnflcm scale --type SCALE_OUT --aspect-id VDU1_scale 2c1f7511-5035-4cc7-b3b9-f05290a0eb45 409-tackerFault ``` * Error logs ``` tacker-server[1000]: 2021-02-10 16:44:19.131 INFO tacker.wsgi [req-4fb1a060-6f5d-4d59-b675-c2d7a0fc1012 nfv_user nfv] POST http://127.0.0.1:9890/vnflcm/v1/vnf_instances/2c1f7511-5035-4cc7-b3b9-f05290a0eb45/scale tacker-server[1000]: 2021-02-10 16:44:19.134 DEBUG tacker.db.vnfm.vnfm_db [req-4fb1a060-6f5d-4d59-b675-c2d7a0fc1012 nfv_user nfv] vnf_db <tacker.db.vnfm.vnfm_db.VNF[object at 7ff1429171f0] {tenant_id='4b8e276e25fc4e658050621d57a6c349', id='2c1f7511-5035-4cc7-b3b9-f05290a0eb45', created_at=datetime.datetime(2021, 2, 10, 7, 38, 11), updated_at=datetime.datetime(2021, 2, 10, 7, 39, 17), deleted_at=datetime.datetime(1, 1, 1, 0, 0), vnfd_id='b1bb0ce7-ebca-4fa7-95ed-4840d7000010', name='vnf-2c1f7511-5035-4cc7-b3b9-f05290a0eb45', description=None, instance_id='2cf6ffd0-530c-4f72-ab6d-c9270d18a9c8', mgmt_ip_address=None, status='ACTIVE', vim_id='d0728d23-f47f-4789-8011-78b966ad3e50', placement_attr={'regions': ['RegionOne']}, error_reason=None}> _make_vnf_dict /usr/local/lib/python3.8/dist-packages/tacker/db/vnfm/vnfm_db.py:227 tacker-server[1000]: 2021-02-10 16:44:19.136 DEBUG tacker.db.vnfm.vnfm_db [req-4fb1a060-6f5d-4d59-b675-c2d7a0fc1012 nfv_user nfv] vnf_db attributes [<tacker.db.vnfm.vnfm_db.VNFAttribute[object at 7ff142917790] {id='34616d0b-9180-433a-8e99-cee6708788b9', vnf_id='2c1f7511-5035-4cc7-b3b9-f05290a0eb45', key='heat_template', value="heat_template_version: 2013-05-23\ndescription: 'Simple deployment flavour for Sample VNF\n\n '\nparameters:\n descriptor_id:\n type: string\n default: b1bb0ce7-ebca-4fa7-95ed-4840d7000010\n descriptor_version:\n type: string\n default: 1.0\n provider:\n type: string\n default: Company\n product_name:\n type: string\n default: Sample VNF\n software_version:\n type: string\n default: 1.0\n vnfm_info:\n type: comma_delimited_list\n default:\n - Tacker\n flavour_id:\n type: string\n default: simple\n flavour_description:\n type: string\n default: A simple flavour\nresources:\n VDU1_flavor:\n type: OS::Nova::Flavor\n properties:\n ram: 488\n vcpus: 1\n disk: 1\n VDU1_scale:\n type: OS::Heat::AutoScalingGroup\n properties:\n min_size: 1\n max_size: 3\n desired_capacity: 1\n resource:\n type: VDU1_scale.hot.yaml\n properties:\n internalvl1_id:\n get_resource: internalVL1\n internalvl2_id:\n get_resource: internalVL2\n internalvl3_id:\n get_resource: internalVL3\n vdu1_flavor_id:\n get_resource: VDU1_flavor\n VDU2:\n type: OS::Nova::Server\n properties:\n flavor:\n get_resource: VDU2_flavor\n name: VDU2\n image: e7dcaa37-15a3-4166-b4de-5cc4fe435420\n networks:\n - port:\n get_resource: VDU2_CP3\n - port:\n get_resource: VDU2_CP4\n - port:\n get_resource: VDU2_CP5\n scheduler_hints:\n group:\n get_resource: policy_antiaffinity_vdu2\n VDU2_CP3:\n type: OS::Neutron::Port\n properties:\n network:\n get_resource: internalVL1\n VDU2_CP4:\n type: OS::Neutron::Port\n properties:\n network:\n get_resource: internalVL2\n VDU2_CP5:\n type: OS::Neutron::Port\n properties:\n network:\n get_resource: internalVL3\n internalVL1:\n type: OS::Neutron::Net\n properties:\n qos_policy:\n get_resource: internalVL1_qospolicy\n internalVL2:\n type: OS::Neutron::Net\n properties:\n qos_policy:\n get_resource: internalVL2_qospolicy\n internalVL3:\n type: OS::Neutron::Net\n properties:\n qos_policy:\n get_resource: internalVL3_qospolicy\n policy_antiaffinity_vdu1:\n type: OS::Nova::ServerGroup\n properties:\n name: policy_antiaffinity_vdu1\n policies:\n - affinity\n policy_antiaffinity_vdu2:\n type: OS::Nova::ServerGroup\n properties:\n name: policy_antiaffinity_vdu2\n policies:\n - affinity\n VDU1_scale_scale_out:\n type: OS::Heat::ScalingPolicy\n properties:\n scaling_adjustment: 1\n auto_scaling_group_id:\n get_resource: VDU1_scale\n adjustment_type: change_in_capacity\n VDU1_scale_scale_in:\n type: OS::Heat::ScalingPolicy\n properties:\n scaling_adjustment: -1\n auto_scaling_group_id:\n get_resource: VDU1_scale\n adjustment_type: change_in_capacity\n VDU2_flavor:\n type: OS::Nova::Flavor\n properties:\n ram: 488\n vcpus: 1\n disk: 1\n internalVL1_subnet:\n type: OS::Neutron::Subnet\n properties:\n ip_version: 4\n network:\n get_resource: internalVL1\n cidr: 33.33.0.0/24\n internalVL1_qospolicy:\n type: OS::Neutron::QoSPolicy\n internalVL1_bandwidth:\n type: OS::Neutron::QoSBandwidthLimitRule\n properties:\n policy:\n get_resource: internalVL1_qospolicy\n max_kbps: 1024.0\n internalVL2_subnet:\n type: OS::Neutron::Subnet\n properties:\n ip_version: 4\n network:\n get_resource: internalVL2\n cidr: 33.34.0.0/24\n internalVL2_qospolicy:\n type: OS::Neutron::QoSPolicy\n internalVL2_bandwidth:\n type: OS::Neutron::QoSBandwidthLimitRule\n properties:\n policy:\n get_resource: internalVL2_qospolicy\n max_kbps: 1024.0\n internalVL3_subnet:\n type: OS::Neutron::Subnet\n properties:\n ip_version: 4\n network:\n get_resource: internalVL3\n cidr: 33.35.0.0/24\n internalVL3_qospolicy:\n type: OS::Neutron::QoSPolicy\n internalVL3_bandwidth:\n type: OS::Neutron::QoSBandwidthLimitRule\n properties:\n policy:\n get_resource: internalVL3_qospolicy\n max_kbps: 1024.0\noutputs: {}\n"}>, <tacker.db.vnfm.vnfm_db.VNFAttribute[object at 7ff142906fd0] {id='567e896b-c2a6-4224-a266-e5ff7e0f51d8', vnf_id='2c1f7511-5035-4cc7-b3b9-f05290a0eb45', key='placement_attr', value="{'regions': ['RegionOne']}"}>, <tacker.db.vnfm.vnfm_db.VNFAttribute[object at 7ff142906d00] {id='636f2057-f843-41c1-8094-22d47e8cd664', vnf_id='2c1f7511-5035-4cc7-b3b9-f05290a0eb45', key='param_values', value="{'flavour_description': 'A simple flavour', 'descriptor_id': 'b1bb0ce7-ebca-4fa7-95ed-4840d7000010', 'descriptor_version': '1.0', 'provider': 'Company', 'product_name': 'Sample VNF', 'software_version': '1.0', 'vnfm_info': ['Tacker'], 'flavour_id': 'simple'}"}>, <tacker.db.vnfm.vnfm_db.VNFAttribute[object at 7ff1429069d0] {id='afdb7557-2a69-49d3-9266-424a76000553', vnf_id='2c1f7511-5035-4cc7-b3b9-f05290a0eb45', key='stack_name', value='vnf-2c1f7511-5035-4cc7-b3b9-f05290a0eb45'}>, <tacker.db.vnfm.vnfm_db.VNFAttribute[object at 7ff142906d60] {id='bf267080-749c-4c98-8aaa-73f4bf80b5ac', vnf_id='2c1f7511-5035-4cc7-b3b9-f05290a0eb45', key='VDU1_scale.hot.yaml', value='heat_template_version: 2013-05-23\ndescription: Scaling template\nparameters:\n vdu1_flavor_id:\n type: string\n internalvl1_id:\n type: string\n internalvl2_id:\n type: string\n internalvl3_id:\n type: string\nresources:\n VDU1:\n type: OS::Nova::Server\n properties:\n flavor:\n get_param: vdu1_flavor_id\n name: VDU1\n block_device_mapping_v2:\n - volume_id:\n get_resource: VirtualStorage\n networks:\n - port:\n get_resource: VDU1_CP3\n - port:\n get_resource: VDU1_CP4\n - port:\n get_resource: VDU1_CP5\n VirtualStorage:\n type: OS::Cinder::Volume\n properties:\n size: 1\n image: 92b071a7-8779-481f-9868-675dafa540d3\n VDU1_CP3:\n type: OS::Neutron::Port\n properties:\n network:\n get_param: internalvl1_id\n VDU1_CP4:\n type: OS::Neutron::Port\n properties:\n network:\n get_param: internalvl2_id\n VDU1_CP5:\n type: OS::Neutron::Port\n properties:\n network:\n get_param: internalvl3_id\n'}>] _make_vnf_dict /usr/local/lib/python3.8/dist-packages/tacker/db/vnfm/vnfm_db.py:228 tacker-server[1000]: 2021-02-10 16:44:19.146 ERROR tacker.api.vnflcm.v1.controller [req-4fb1a060-6f5d-4d59-b675-c2d7a0fc1012 nfv_user nfv] NOT SCALE VNF tacker-server[1000]: 2021-02-10 16:44:19.146 INFO tacker.wsgi [req-4fb1a060-6f5d-4d59-b675-c2d7a0fc1012 nfv_user nfv] http://127.0.0.1:9890/vnflcm/v1/vnf_instances/2c1f7511-5035-4cc7-b3b9-f05290a0eb45/scale returned with HTTP 409 tacker-server[1000]: 2021-02-10 16:44:19.146 INFO tacker.wsgi [req-4fb1a060-6f5d-4d59-b675-c2d7a0fc1012 nfv_user nfv] 127.0.0.1 - - [10/Feb/2021 16:44:19] "POST /vnflcm/v1/vnf_instances/2c1f7511-5035-4cc7-b3b9-f05290a0eb45/scale HTTP/1.1" 409 280 0.048298 ``` * Source code returning an error response https://opendev.org/openstack/tacker/src/branch/master/tacker/api/vnflcm/v1/controller.py ``` def scale(self, request, id, body): context = request.environ['tacker.context'] context.can(vnf_lcm_policies.VNFLCM % 'scale') try: vnf_info = self._vnfm_plugin.get_vnf(context, id) if vnf_info['status'] != constants.ACTIVE: return self._make_problem_detail( 'VNF IS NOT ACTIVE', 409, title='VNF IS NOT ACTIVE') vnf_instance = self._get_vnf_instance(context, id) if not vnf_instance.instantiated_vnf_info.scale_status: return self._make_problem_detail( 'NOT SCALE VNF', 409, title='NOT SCALE VNF') return self._scale(context, vnf_info, vnf_instance, body) ``` * Error reason Vnf_instantiated_info.scale_status is not set for VNF instantiated with "ETSI NFV-SOL VNF Deployment as VM with TOSCA". Since the scale process determines whether or not the scale can be set, it is necessary to add a process to set vnf_instantiated_info.scale_status even in VNF deployment with TOSCA. ``` mysql> select scale_status from vnf_instantiated_info where id="2c1f7511-5035-4cc7-b3b9-f05290a0eb45"; +--------------+ | scale_status | +--------------+ | [] | ``` * Expected vnf_instantiated_info information("ETSI NFV-SOL VNF Deployment as VM with LCM operation user data[2]" result) ``` mysql> select scale_status from vnf_instantiated_info; +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | scale_status | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | [{"tacker_object.data": {"deleted": false, "aspect_id": "VDU1_scale", "scale_level": 0}, "tacker_object.name": "ScaleInfo", "tacker_object.changes": ["scale_level", "deleted", "aspect_id"], "tacker_object.version": "1.0", "tacker_object.namespace": "tacker"}] | ``` [1]:https://docs.openstack.org/tacker/latest/user/etsi_vnf_deployment_as_vm_with_tosca.html [2]:https://docs.openstack.org/tacker/latest/user/etsi_vnf_deployment_as_vm_with_user_data.html Scale of VNF instantiated according to the procedure of "ETSI NFV-SOL VNF Deployment as VM with TOSCA[1]" fails. This is because, the scale process determines whether or not the scale can be set, but vnf_instantiated_info.scale_status is not set in VNF deployment with TOSCA. * Instantiated VNF information ``` $ openstack vnflcm list +--------------------------------------+------------------------------------------+---------------------+--------------+----------------------+------------------+--------------------------------------+ | ID | VNF Instance Name | Instantiation State | VNF Provider | VNF Software Version | VNF Product Name | VNFD ID | +--------------------------------------+------------------------------------------+---------------------+--------------+----------------------+------------------+--------------------------------------+ | 2c1f7511-5035-4cc7-b3b9-f05290a0eb45 | vnf-2c1f7511-5035-4cc7-b3b9-f05290a0eb45 | INSTANTIATED | Company | 1.0 | Sample VNF | b1bb0ce7-ebca-4fa7-95ed-4840d7000010 | +--------------------------------------+------------------------------------------+---------------------+--------------+----------------------+------------------+--------------------------------------+ ``` * Error when executing Scale command ``` $ openstack vnflcm scale --type SCALE_OUT --aspect-id VDU1_scale 2c1f7511-5035-4cc7-b3b9-f05290a0eb45 409-tackerFault ``` * Error logs ``` tacker-server[1000]: 2021-02-10 16:44:19.131 INFO tacker.wsgi [req-4fb1a060-6f5d-4d59-b675-c2d7a0fc1012 nfv_user nfv] POST http://127.0.0.1:9890/vnflcm/v1/vnf_instances/2c1f7511-5035-4cc7-b3b9-f05290a0eb45/scale tacker-server[1000]: 2021-02-10 16:44:19.134 DEBUG tacker.db.vnfm.vnfm_db [req-4fb1a060-6f5d-4d59-b675-c2d7a0fc1012 nfv_user nfv] vnf_db <tacker.db.vnfm.vnfm_db.VNF[object at 7ff1429171f0] {tenant_id='4b8e276e25fc4e658050621d57a6c349', id='2c1f7511-5035-4cc7-b3b9-f05290a0eb45', created_at=datetime.datetime(2021, 2, 10, 7, 38, 11), updated_at=datetime.datetime(2021, 2, 10, 7, 39, 17), deleted_at=datetime.datetime(1, 1, 1, 0, 0), vnfd_id='b1bb0ce7-ebca-4fa7-95ed-4840d7000010', name='vnf-2c1f7511-5035-4cc7-b3b9-f05290a0eb45', description=None, instance_id='2cf6ffd0-530c-4f72-ab6d-c9270d18a9c8', mgmt_ip_address=None, status='ACTIVE', vim_id='d0728d23-f47f-4789-8011-78b966ad3e50', placement_attr={'regions': ['RegionOne']}, error_reason=None}> _make_vnf_dict /usr/local/lib/python3.8/dist-packages/tacker/db/vnfm/vnfm_db.py:227 ...snip... tacker-server[1000]: 2021-02-10 16:44:19.146 ERROR tacker.api.vnflcm.v1.controller [req-4fb1a060-6f5d-4d59-b675-c2d7a0fc1012 nfv_user nfv] NOT SCALE VNF tacker-server[1000]: 2021-02-10 16:44:19.146 INFO tacker.wsgi [req-4fb1a060-6f5d-4d59-b675-c2d7a0fc1012 nfv_user nfv] http://127.0.0.1:9890/vnflcm/v1/vnf_instances/2c1f7511-5035-4cc7-b3b9-f05290a0eb45/scale returned with HTTP 409 tacker-server[1000]: 2021-02-10 16:44:19.146 INFO tacker.wsgi [req-4fb1a060-6f5d-4d59-b675-c2d7a0fc1012 nfv_user nfv] 127.0.0.1 - - [10/Feb/2021 16:44:19] "POST /vnflcm/v1/vnf_instances/2c1f7511-5035-4cc7-b3b9-f05290a0eb45/scale HTTP/1.1" 409 280 0.048298 ``` * Source code returning an error response https://opendev.org/openstack/tacker/src/branch/master/tacker/api/vnflcm/v1/controller.py ```     def scale(self, request, id, body):         context = request.environ['tacker.context']         context.can(vnf_lcm_policies.VNFLCM % 'scale')         try:             vnf_info = self._vnfm_plugin.get_vnf(context, id)             if vnf_info['status'] != constants.ACTIVE:                 return self._make_problem_detail(                     'VNF IS NOT ACTIVE', 409, title='VNF IS NOT ACTIVE')             vnf_instance = self._get_vnf_instance(context, id)             if not vnf_instance.instantiated_vnf_info.scale_status:                 return self._make_problem_detail(                     'NOT SCALE VNF', 409, title='NOT SCALE VNF')             return self._scale(context, vnf_info, vnf_instance, body) ``` * Error reason Vnf_instantiated_info.scale_status is not set for VNF instantiated with "ETSI NFV-SOL VNF Deployment as VM with TOSCA". Since the scale process determines whether or not the scale can be set, it is necessary to add a process to set vnf_instantiated_info.scale_status even in VNF deployment with TOSCA. ``` mysql> select scale_status from vnf_instantiated_info where id="2c1f7511-5035-4cc7-b3b9-f05290a0eb45"; +--------------+ | scale_status | +--------------+ | [] | ``` * Expected vnf_instantiated_info information("ETSI NFV-SOL VNF Deployment as VM with LCM operation user data[2]" result) ``` mysql> select scale_status from vnf_instantiated_info; +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | scale_status | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | [{"tacker_object.data": {"deleted": false, "aspect_id": "VDU1_scale", "scale_level": 0}, "tacker_object.name": "ScaleInfo", "tacker_object.changes": ["scale_level", "deleted", "aspect_id"], "tacker_object.version": "1.0", "tacker_object.namespace": "tacker"}] | ``` [1]:https://docs.openstack.org/tacker/latest/user/etsi_vnf_deployment_as_vm_with_tosca.html [2]:https://docs.openstack.org/tacker/latest/user/etsi_vnf_deployment_as_vm_with_user_data.html
2021-02-11 22:16:01 Itsuro Oda bug added subscriber Itsuro Oda
2021-08-02 10:22:48 Yasufumi Ogawa tacker: assignee Yasufumi Ogawa (yasufum)
2022-11-29 01:20:43 Yasufumi Ogawa tacker: importance Undecided Medium