def test_terminate_vnf_instance_already_not_instantiated(
            self, mock_log, mock_package_in_use, mock_get_lock):
        vnf_package_vnfd = self._create_and_upload_vnf_package()
        vnf_instance_data = fake_obj.get_vnf_instance_data(
            vnf_package_vnfd.vnfd_id)
        mock_package_in_use.return_value = True
        vnf_instance_data['instantiation_state'] =\
            fields.VnfInstanceState.NOT_INSTANTIATED
        vnf_instance = objects.VnfInstance(context=self.context,
                                           **vnf_instance_data)
        vnf_instance.create()

        terminate_vnf_req = objects.TerminateVnfRequest(
            termination_type=fields.VnfInstanceTerminationType.GRACEFUL)

        self.conductor.terminate(self.context, vnf_instance, terminate_vnf_req)

        self.vnflcm_driver.terminate_vnf.assert_not_called()
        mock_package_in_use.assert_not_called()
        expected_log = ('Terminate action cannot be performed on vnf %(id)s '
                        'which is in %(state)s state.')
        mock_log.error.assert_called_once_with(
            expected_log, {
                'id': vnf_instance.id,
                'state': fields.VnfInstanceState.NOT_INSTANTIATED
            })
Esempio n. 2
0
 def test_save_error(self):
     vnf_instance_data = fakes.get_vnf_instance_data(
         self.vnf_package.vnfd_id)
     vnf_instance = objects.VnfInstance(context=self.context,
                                        **vnf_instance_data)
     vnf_instance.id = uuidsentinel.id
     self.assertRaises(exceptions.VnfInstanceNotFound, vnf_instance.save)
Esempio n. 3
0
    def _create_vnf_instance(self):
        vnf_instance_data = fakes.get_vnf_instance_data(
            self.vnf_package_vnfd.vnfd_id)
        vnf_instance = objects.VnfInstance(context=self.context,
                                           **vnf_instance_data)
        vnf_instance.create()

        return vnf_instance
Esempio n. 4
0
 def test_destroy(self, mock_vnf_destroy):
     vnf_instance_data = fakes.get_vnf_instance_data(
         self.vnf_package.vnfd_id)
     vnf_instance = objects.VnfInstance(context=self.context,
                                        **vnf_instance_data)
     vnf_instance.create()
     vnf_instance.destroy(self.context)
     mock_vnf_destroy.assert_called_with(self.context, vnf_instance.id)
Esempio n. 5
0
 def test_get_all(self):
     vnf_instance_data = fakes.get_vnf_instance_data(
         self.vnf_package.vnfd_id)
     vnf_instance = objects.VnfInstance(context=self.context,
                                        **vnf_instance_data)
     vnf_instance.create()
     result = objects.VnfInstanceList.get_all(self.context,
                                              expected_attrs=None)
     self.assertTrue(result.objects, list)
     self.assertTrue(result.objects)
Esempio n. 6
0
 def test_get_by_id(self):
     vnf_instance_data = fakes.get_vnf_instance_data(
         self.vnf_package.vnfd_id)
     vnf_instance = objects.VnfInstance(context=self.context,
                                        **vnf_instance_data)
     vnf_instance.create()
     vnf_instance_by_id = objects.VnfInstance.get_by_id(
         self.context, vnf_instance.id)
     self.compare_obj(vnf_instance, vnf_instance_by_id,
                      allow_missing=['instantiated_vnf_info',
                                     'vim_connection_info'])
Esempio n. 7
0
    def test_update(self, mock_get_by_id):
        mock_get_by_id.return_value =\
            fakes_vnflcm.return_vnf_package_with_deployment_flavour()
        vnf_instance_data = fakes.get_vnf_instance_data(
            self.vnf_package.vnfd_id)
        vnf_instance = objects.VnfInstance(context=self.context,
                                           **vnf_instance_data)
        vnf_instance.create()
        id = uuidutils.generate_uuid()
        vnf_lcm_oppccs = fakes.get_lcm_op_occs_data(id, vnf_instance.id)

        vnf_instance.update(self.context, vnf_lcm_oppccs, self.body_data,
                            self.vnfd_pkg_data, vnf_instance_data['vnfd_id'])
 def test_heal_vnf_instance(self, mock_get_lock):
     vnf_package_vnfd = self._create_and_upload_vnf_package()
     vnf_instance_data = fake_obj.get_vnf_instance_data(
         vnf_package_vnfd.vnfd_id)
     vnf_instance = objects.VnfInstance(context=self.context,
                                        **vnf_instance_data)
     vnf_instance.create()
     vnf_instance.instantiation_state = \
         fields.VnfInstanceState.INSTANTIATED
     vnf_instance.save()
     heal_vnf_req = objects.HealVnfRequest(cause="healing request")
     self.conductor.heal(self.context, vnf_instance, heal_vnf_req)
     self.vnflcm_driver.heal_vnf.assert_called_once_with(
         self.context, mock.ANY, heal_vnf_req)
Esempio n. 9
0
 def test_vnf_instance_list_get_by_filters(self):
     vnf_instance_data = fakes.get_vnf_instance_data(
         self.vnf_package.vnfd_id)
     vnf_instance = objects.VnfInstance(context=self.context,
                                        **vnf_instance_data)
     vnf_instance.create()
     filters = {
         'field': 'instantiation_state',
         'model': 'VnfInstance',
         'value': 'NOT_INSTANTIATED',
         'op': '=='
     }
     vnf_instance_list = objects.VnfInstanceList.get_by_filters(
         self.context, filters=filters)
     self.assertEqual(1, len(vnf_instance_list))
Esempio n. 10
0
 def test_create(self):
     vnf_instance_data = fakes.get_vnf_instance_data(
         self.vnf_package.vnfd_id)
     vnf_instance = objects.VnfInstance(context=self.context,
                                        **vnf_instance_data)
     vnf_instance.create()
     self.assertTrue(vnf_instance.id)
     self.assertEqual('NOT_INSTANTIATED', vnf_instance.instantiation_state)
     self.assertEqual(self.vnf_package.vnfd_id, vnf_instance.vnfd_id)
     self.assertEqual('test vnf provider', vnf_instance.vnf_provider)
     self.assertEqual('Sample VNF', vnf_instance.vnf_product_name)
     self.assertEqual('1.0', vnf_instance.vnf_software_version)
     self.assertEqual('1.0', vnf_instance.vnfd_version)
     self.assertEqual(vnf_instance_data.get('tenant_id'),
                      vnf_instance.tenant_id)
Esempio n. 11
0
 def test_save(self, mock_update_vnf):
     vnf_instance_data = fakes.get_vnf_instance_data(
         self.vnf_package.vnfd_id)
     vnf_instance = objects.VnfInstance(context=self.context,
                                        **vnf_instance_data)
     vnf_instance.create()
     mock_update_vnf.return_value = \
         fakes.vnf_instance_model_object(vnf_instance)
     vnf_instance.vnf_instance_name = 'fake-name'
     vnf_instance.save()
     mock_update_vnf.assert_called_with(
         self.context, vnf_instance.id, {
             'vnf_instance_name': 'fake-name',
             'vim_connection_info': []},
         columns_to_join=['instantiated_vnf_info'])
Esempio n. 12
0
 def test_instantiate_vnf_instance_with_vnf_package_in_use(
         self, mock_vnf_package_in_use, mock_get_lock):
     vnf_package_vnfd = self._create_and_upload_vnf_package()
     vnf_instance_data = fake_obj.get_vnf_instance_data(
         vnf_package_vnfd.vnfd_id)
     mock_vnf_package_in_use.return_value = True
     vnf_instance = objects.VnfInstance(context=self.context,
                                        **vnf_instance_data)
     vnf_instance.create()
     instantiate_vnf_req = vnflcm_fakes.get_instantiate_vnf_request_obj()
     self.conductor.instantiate(self.context, vnf_instance,
                                instantiate_vnf_req)
     self.vnflcm_driver.instantiate_vnf.assert_called_once_with(
         self.context, mock.ANY, instantiate_vnf_req)
     mock_vnf_package_in_use.assert_called_once()
Esempio n. 13
0
 def test_instantiate_vnf_instance_failed_with_exception(
         self, mock_log, mock_is_package_in_use, mock_get_lock):
     vnf_package_vnfd = self._create_and_upload_vnf_package()
     vnf_instance_data = fake_obj.get_vnf_instance_data(
         vnf_package_vnfd.vnfd_id)
     vnf_instance = objects.VnfInstance(context=self.context,
                                        **vnf_instance_data)
     vnf_instance.create()
     instantiate_vnf_req = vnflcm_fakes.get_instantiate_vnf_request_obj()
     mock_is_package_in_use.side_effect = Exception
     self.conductor.instantiate(self.context, vnf_instance,
                                instantiate_vnf_req)
     self.vnflcm_driver.instantiate_vnf.assert_called_once_with(
         self.context, mock.ANY, instantiate_vnf_req)
     mock_is_package_in_use.assert_called_once()
     expected_log = 'Failed to update usage_state of vnf package %s'
     mock_log.error.assert_called_once_with(expected_log,
                                            vnf_package_vnfd.package_uuid)
Esempio n. 14
0
    def test_terminate_vnf_instance(self, mock_package_in_use, mock_get_lock):
        vnf_package_vnfd = self._create_and_upload_vnf_package()
        vnf_instance_data = fake_obj.get_vnf_instance_data(
            vnf_package_vnfd.vnfd_id)
        mock_package_in_use.return_value = True
        vnf_instance_data['instantiation_state'] =\
            fields.VnfInstanceState.INSTANTIATED
        vnf_instance = objects.VnfInstance(context=self.context,
                                           **vnf_instance_data)
        vnf_instance.create()

        terminate_vnf_req = objects.TerminateVnfRequest(
            termination_type=fields.VnfInstanceTerminationType.GRACEFUL)

        self.conductor.terminate(self.context, vnf_instance, terminate_vnf_req)

        self.vnflcm_driver.terminate_vnf.assert_called_once_with(
            self.context, mock.ANY, terminate_vnf_req)
        mock_package_in_use.assert_called_once()
Esempio n. 15
0
 def test_instantiate_vnf_instance_already_instantiated(self,
         mock_log, mock_package_in_use, mock_get_lock):
     vnf_package_vnfd = self._create_and_upload_vnf_package()
     vnf_instance_data = fake_obj.get_vnf_instance_data(
         vnf_package_vnfd.vnfd_id)
     vnf_instance_data['instantiation_state'] =\
         fields.VnfInstanceState.INSTANTIATED
     vnf_instance = objects.VnfInstance(context=self.context,
                                        **vnf_instance_data)
     vnf_instance.create()
     instantiate_vnf_req = vnflcm_fakes.get_instantiate_vnf_request_obj()
     self.conductor.instantiate(self.context, vnf_instance,
                                instantiate_vnf_req)
     self.vnflcm_driver.instantiate_vnf.assert_not_called()
     mock_package_in_use.assert_not_called()
     expected_log = 'Vnf instance %(id)s is already in %(state)s state.'
     mock_log.error.assert_called_once_with(expected_log,
         {'id': vnf_instance.id,
          'state': fields.VnfInstanceState.INSTANTIATED})
Esempio n. 16
0
 def test_terminate_vnf_instance_failed_to_update_usage_state(
         self, mock_log, mock_is_package_in_use, mock_get_lock):
     vnf_package_vnfd = self._create_and_upload_vnf_package()
     vnf_instance_data = fake_obj.get_vnf_instance_data(
         vnf_package_vnfd.vnfd_id)
     vnf_instance_data['instantiation_state'] =\
         fields.VnfInstanceState.INSTANTIATED
     vnf_instance = objects.VnfInstance(context=self.context,
                                        **vnf_instance_data)
     vnf_instance.create()
     terminate_vnf_req = objects.TerminateVnfRequest(
         termination_type=fields.VnfInstanceTerminationType.GRACEFUL)
     mock_is_package_in_use.side_effect = Exception
     self.conductor.terminate(self.context, vnf_instance, terminate_vnf_req)
     self.vnflcm_driver.terminate_vnf.assert_called_once_with(
         self.context, mock.ANY, terminate_vnf_req)
     expected_msg = "Failed to update usage_state of vnf package %s"
     mock_log.error.assert_called_once_with(expected_msg,
                                            vnf_package_vnfd.package_uuid)
Esempio n. 17
0
    def test_heal_vnf_instance_already_not_instantiated(self,
            mock_log, mock_get_lock):
        vnf_package_vnfd = self._create_and_upload_vnf_package()
        vnf_instance_data = fake_obj.get_vnf_instance_data(
            vnf_package_vnfd.vnfd_id)

        vnf_instance_data['instantiation_state'] =\
            fields.VnfInstanceState.NOT_INSTANTIATED
        vnf_instance = objects.VnfInstance(context=self.context,
                                           **vnf_instance_data)
        vnf_instance.create()

        heal_vnf_req = objects.HealVnfRequest(cause="healing request")
        self.conductor.heal(self.context, vnf_instance, heal_vnf_req)

        self.vnflcm_driver.heal_vnf.assert_not_called()
        expected_log = ('Heal action cannot be performed on vnf %(id)s '
                        'which is in %(state)s state.')
        mock_log.error.assert_called_once_with(expected_log,
            {'id': vnf_instance.id,
             'state': fields.VnfInstanceState.NOT_INSTANTIATED})
Esempio n. 18
0
    def _create_vnf_instance(self):
        vnf_package = objects.VnfPackage(context=self.context,
                                         **fakes.vnf_package_data)
        vnf_package.create()

        vnf_pack_vnfd = fakes.get_vnf_package_vnfd_data(
            vnf_package.id, uuidsentinel.vnfd_id)

        vnf_pack_vnfd_obj = objects.VnfPackageVnfd(context=self.context,
                                                   **vnf_pack_vnfd)
        vnf_pack_vnfd_obj.create()

        vnf_package.vnf_package = "ONBOARDED"
        vnf_package.save()

        vnf_instance_data = fakes.get_vnf_instance_data(
            vnf_pack_vnfd_obj.vnfd_id)
        vnf_instance = objects.VnfInstance(context=self.context,
                                           **vnf_instance_data)
        vnf_instance.create()

        return vnf_instance