def test_virtual_machine_exists(self):
        test_utils.create_test_project('fake-domain:fake-project')
        test_utils.create_test_security_group('fake-domain:fake-project:default')
        test_utils.create_test_virtual_network('fake-domain:fake-project:left-vn')
        test_utils.create_test_virtual_network('fake-domain:fake-project:right-vn')

        st = test_utils.create_test_st(name='vm-template',
            virt_type='virtual-machine',
            intf_list=[['management', False], ['left', True], ['right', False]])
        si = test_utils.create_test_si(name='vm-instance', count=2,
            intf_list=['', 'left-vn', 'right-vn'])

        def nova_oper(resource, oper, proj_name, **kwargs):
            if resource == 'servers' and oper == 'create':
                nova_vm = test_utils.FakeNovaServer(kwargs['name'], kwargs['name'])
                return nova_vm
            else:
                return mock.MagicMock()
        self.nova_mock.oper = nova_oper

        self.mocked_vnc.virtual_machine_create = test_utils.vm_create

        self.vm_manager.create_service(st, si)
        self.log_mock.info.assert_any_call(test_utils.AnyStringWith('Launching VM :'))
        self.log_mock.info.assert_any_call(test_utils.AnyStringWith('Created VM :'))
        self.log_mock.info.assert_any_call(test_utils.AnyStringWith(si.name))
        self.log_mock.reset_mock()

        self.vm_manager.create_service(st, si)
        self.assertTrue(self.log_mock.info.call_count, 1)
    def test_missing_flavor_in_template(self):
        test_utils.create_test_project('fake-domain:fake-project')
        test_utils.create_test_security_group(
            'fake-domain:fake-project:default')
        test_utils.create_test_virtual_network(
            'fake-domain:fake-project:left-vn')
        test_utils.create_test_virtual_network(
            'fake-domain:fake-project:right-vn')

        st = test_utils.create_test_st(name='vm-template',
                                       virt_type='virtual-machine',
                                       intf_list=[['management', False],
                                                  ['left', True],
                                                  ['right', False]])
        si = test_utils.create_test_si(name='vm-instance',
                                       count=2,
                                       intf_list=['', 'left-vn', 'right-vn'])

        def nova_oper(resource, oper, proj_name, **kwargs):
            if resource == 'flavors' and oper == 'find':
                return None
            else:
                return mock.MagicMock()

        self.nova_mock.oper = nova_oper

        st.params['flavor'] = None
        self.vm_manager.create_service(st, si)
        self.log_mock.error.assert_called_with(
            test_utils.AnyStringWith("Flavor not found"))
    def test_nova_vm_create_fail(self):
        test_utils.create_test_project('fake-domain:fake-project')
        test_utils.create_test_security_group(
            'fake-domain:fake-project:default')
        test_utils.create_test_virtual_network(
            'fake-domain:fake-project:left-vn')
        test_utils.create_test_virtual_network(
            'fake-domain:fake-project:right-vn')

        st = test_utils.create_test_st(name='vm-template',
                                       virt_type='virtual-machine',
                                       intf_list=[['management', False],
                                                  ['left', True],
                                                  ['right', False]])
        si = test_utils.create_test_si(name='vm-instance',
                                       count=2,
                                       intf_list=['', 'left-vn', 'right-vn'])

        def nova_oper(resource, oper, proj_name, **kwargs):
            if resource == 'servers' and oper == 'create':
                return None
            else:
                return mock.MagicMock()

        self.nova_mock.oper = nova_oper

        self.vm_manager.create_service(st, si)
        self.log_mock.error.assert_any_call(
            test_utils.AnyStringWith('Nova vm create failed'))
Пример #4
0
    def test_svc_monitor_timer_delete_shared_vn(self):
        project_obj = self.add_project('fake-project', 'fake-project')
        net_obj = self.add_vn('svc-vn-left', 'svc-vn-left', project_obj)
        project = config_db.ProjectSM.get('fake-project')
        project.virtual_networks.add('svc-vn-left')

        svc_monitor.timer_callback(self._svc_monitor)
        ServiceMonitorLogger.log_info.assert_any_call(test_utils.AnyStringWith('Deleting vn'))
Пример #5
0
    def test_svc_monitor_timer_delete_vms(self):
        st_obj = self.add_st('fake-template', 'fake-template')
        si_obj = self.add_si('fake-instance', 'fake-instance', st_obj)
        vm_obj = self.add_vm("fake-vm", 'fake-vm', si_obj, 'virtual-machine')
        vm = config_db.VirtualMachineSM.get('fake-vm')
        config_db.ServiceInstanceSM.delete('fake-instance')
        vm.service_instance = 'non-existent-instance'

        svc_monitor.timer_callback(self._svc_monitor)
        ServiceMonitorLogger.log_info.assert_any_call(test_utils.AnyStringWith('Deleting VM'))
Пример #6
0
    def test_svc_monitor_vrouter_service_delete(self):
        st_obj = self.add_st('fake-template', 'fake-template')
        si_obj = self.add_si('fake-instance', 'fake-instance', st_obj)
        vm_obj = self.add_vm("fake-vm", 'fake-vm', si_obj, 'vrouter-instance')
        si = config_db.ServiceInstanceSM.get('fake-instance')
        si.virtual_machines.add('fake-vm')
        vm = config_db.VirtualMachineSM.get('fake-vm')

        self._svc_monitor.vrouter_manager = mock.MagicMock()
        self._svc_monitor._vnc_subscribe_callback(si_del_info)
        self._svc_monitor.vrouter_manager.delete_service.assert_called_with(vm)
        ServiceMonitorLogger.log_info.assert_any_call(test_utils.AnyStringWith('deletion succeed'))
Пример #7
0
    def test_svc_monitor_vmi_add(self):
        st_obj = self.add_st('fake-template', 'fake-template')
        si = test_utils.create_test_si(name='fake-instance', count=1,
            intf_list=['left-vn'])
        si = config_db.ServiceInstanceSM.get('fake-instance')
        si.service_template = 'fake-template'
        vm_obj = self.add_vm("fake-vm", 'fake-vm', None, 'virtual-machine')
        project = self.add_project('fake-project', 'fake-project')
        net_obj = self.add_vn('left-vn', 'left-vn', project)
        vmi_obj = self.add_vmi('fake-domain__fake-project__fake-instance__1__left__0', 
                               'left-vmi', project, net_obj, vm_obj)
        vmi = config_db.VirtualMachineInterfaceSM.get('left-vmi')
        vmi.if_type = 'left'

        config_db.VirtualMachineInterfaceSM._cassandra.read = self.cassandra_vmi_read
        self._svc_monitor._vnc_subscribe_callback(vmi_add_info)
        ServiceMonitorLogger.log_info.assert_any_call(test_utils.AnyStringWith('updated SI'))
 def test_svc_monitor_init(self):
     ServiceMonitorLogger.log_info.assert_any_call(
         test_utils.AnyStringWith('template created with uuid'))
     self.assertTrue(self._svc_monitor._db_resync_done)