def test_vdu_autoheal_execute_action(self, mock_heal_vnf_request,
                                      mock_safe_load, mock_heal_vnf):
     # Here yaml.safe_load is mock as in the test case i am passing
     # vnf_dict containing having vnf_dict['attributes']['heat_template']
     # value in json format so while excution it giving the error as
     # dict object has no read attribute where as in actual execution the
     # value of vnf_dict['attributes']['heat_template'] is in ymal format.
     mock_safe_load.return_value = vnf_dict['attributes']['heat_template']
     resource_list = ['VDU1', 'CP1']
     additional_params = []
     for resource in resource_list:
         additional_paramas_obj = heal_vnf_request.HealVnfAdditionalParams(
             parameter=resource,
             cause=[
                 "Unable to reach while monitoring resource: '%s'" %
                 resource
             ])
         additional_params.append(additional_paramas_obj)
     heal_request_data_obj = heal_vnf_request.HealVnfRequest(
         cause='VNF monitoring fails.', additional_params=additional_params)
     mock_heal_vnf_request.return_value = heal_request_data_obj
     self.vdu_autoheal.execute_action(self.vnfm_plugin,
                                      self.context,
                                      vnf_dict,
                                      args={'vdu_name': 'VDU1'})
     mock_heal_vnf.assert_called_once_with(self.context, vnf_dict['id'],
                                           heal_request_data_obj)
示例#2
0
 def test_heal_vnf_vdu(self, mock_update_hosting_vnf, mock_heal_vdu):
     self._insert_dummy_vnf_template()
     dummy_device_obj = self._insert_dummy_vnf()
     additional_params_obj = heal_vnf_request.HealVnfAdditionalParams(
         parameter='VDU1',
         cause=["Unable to reach while monitoring resource: 'VDU1'"])
     heal_request_data_obj = heal_vnf_request.HealVnfRequest(
         cause='VNF monitoring fails.',
         additional_params=[additional_params_obj])
     result = self.vnfm_plugin.heal_vnf(self.context,
                                        dummy_device_obj['id'],
                                        heal_request_data_obj)
     self.assertIsNotNone(result)
     self.assertEqual(dummy_device_obj['id'], result['id'])
     self.assertIn('instance_id', result)
     self.assertIn('status', result)
     self.assertIn('attributes', result)
     self.assertIn('mgmt_ip_address', result)
     self.assertIn('updated_at', result)
     self.assertEqual('ACTIVE', result['status'])
     mock_heal_vdu.assert_called_with(
         plugin=self.vnfm_plugin,
         context=self.context,
         vnf_dict=mock.ANY,
         heal_request_data_obj=heal_request_data_obj)
示例#3
0
    def setUp(self):
        super(TestVDU, self).setUp()
        self.context = context.get_admin_context()
        self._mock_heat_client()

        mock.patch('tacker.vnfm.vim_client.VimClient.get_vim').start()
        self.additional_paramas_obj = heal_vnf_request.HealVnfAdditionalParams(
            parameter='VDU1',
            cause=["Unable to reach while monitoring resource: 'VDU1'"])
        self.heal_request_data_obj = heal_vnf_request.HealVnfRequest(
            cause='VNF monitoring fails.',
            additional_params=[self.additional_paramas_obj])
        self.heal_vdu = vdu.Vdu(self.context, vnf_dict,
                                self.heal_request_data_obj)

        mock.patch('tacker.db.common_services.common_services_db_plugin.'
                   'CommonServicesPluginDb.create_event').start()
        self._cos_db_plugin = \
            common_services_db_plugin.CommonServicesPluginDb()
        self.addCleanup(mock.patch.stopall)