def test_instance_create_cancellation_called(self):
        test_name = 'test'
        CloudshellDriverHelper.get_uuid = Mock(return_value='1234')
        test_uniq_name = 'test-1234'
        mock_client2 = Mock()

        test_nova_instance_service.novaclient.Client = Mock(return_value=mock_client2)
        # mock_client.Client = Mock(return_vaule=mock_client2)
        mock_image = Mock()
        mock_flavor = Mock()
        mock_client2.images.find = Mock(return_value=mock_image)
        mock_client2.flavors.find = Mock(return_value=mock_flavor)

        mock_cp_resource_model = Mock()
        mock_cp_resource_model.qs_mgmt_os_net_uuid = '1234'

        mock_cancellation_context = Mock()

        mock_client2.servers = Mock()
        mocked_inst = Mock()
        mock_client2.servers.create = Mock(return_value=mocked_inst)
        mock_qnet_dict = {'net-id': mock_cp_resource_model.qs_mgmt_os_net_uuid}

        self.instance_service.instance_waiter = Mock()
        self.instance_service.instance_waiter.wait = Mock(side_effect=CommandCancellationException)
        with self.assertRaises(CommandCancellationException):
            result = self.instance_service.create_instance(openstack_session=self.openstack_session,
                                                           name=test_name,
                                                           reservation=Mock(),
                                                           cp_resource_model=mock_cp_resource_model,
                                                           deploy_req_model=Mock(),
                                                           cancellation_context=mock_cancellation_context,
                                                           logger=self.mock_logger)

        mock_client2.servers.delete.assert_called_once_with(mocked_inst)
    def test_validate_network_attributes(self):
        mock_cp_resource_model = Mock()
        mock_cp_resource_model.qs_mgmt_os_net_uuid = 'test-mgmt-uuid'
        mock_cp_resource_model.floating_ip_subnet_uuid = 'test-subnet-uuid'
        mock_cp_resource_model.vlan_type = 'vlan'
        mock_cp_resource_model.reserved_networks = 'reserved-networks'
        mock_cp_resource_model.provider_network_interface = 'test-if'

        mock_os_session = Mock()

        mock_net_client = Mock()
        test_cp_validator.neutron_client = Mock()
        test_cp_validator.neutron_client.Client = Mock(return_value=mock_net_client)

        self.cp_validator.validate_mgmt_network = Mock(return_value=True)
        self.cp_validator.validate_floating_ip_subnet = Mock(return_value=True)
        self.cp_validator.validate_vlan_type = Mock(return_value=True)
        self.cp_validator.validate_reserved_networks = Mock(return_value=True)

        self.cp_validator.validate_network_attributes(openstack_session=mock_os_session,
                                                      cp_resource_model=mock_cp_resource_model,
                                                      logger=self.mock_logger)

        self.cp_validator.validate_floating_ip_subnet.assert_called_with(mock_net_client, 'test-subnet-uuid',
                                                                         self.mock_logger)
        self.cp_validator.validate_mgmt_network.assert_called_with(mock_net_client, 'test-mgmt-uuid',
                                                                   self.mock_logger)
        self.cp_validator.validate_vlan_type.assert_called_with(net_client=mock_net_client, vlan_type='vlan',
                                                                provider_net_interface='test-if',
                                                                logger=self.mock_logger)
        self.cp_validator.validate_reserved_networks.assert_called_with('reserved-networks', self.mock_logger)
    def test_instance_create_success(self):
        test_name = 'test'
        CloudshellDriverHelper.get_uuid = Mock(return_value='1234')
        test_uniq_name = 'test-1234'
        mock_client2 = Mock()

        test_nova_instance_service.novaclient.Client = Mock(return_value=mock_client2)
        # mock_client.Client = Mock(return_vaule=mock_client2)
        mock_image = Mock()
        mock_flavor = Mock()
        mock_client2.images.find = Mock(return_value=mock_image)
        mock_client2.flavors.find = Mock(return_value=mock_flavor)

        mock_deploy_req_model = Mock()
        mock_deploy_req_model.affinity_group_id = ''
        mock_deploy_req_model.availability_zone = 'test-avail-zone'

        test_nova_instance_service.udev_rules_sh_str = 'test_userdata'

        mock_cp_resource_model = Mock()
        mock_cp_resource_model.qs_mgmt_os_net_uuid = '1234'

        mock_cancellation_context = Mock()

        mock_client2.servers = Mock()
        mocked_inst = Mock()
        mock_client2.servers.create = Mock(return_value=mocked_inst)
        mock_qnet_dict = {'net-id': mock_cp_resource_model.qs_mgmt_os_net_uuid}
        result = self.instance_service.create_instance(openstack_session=self.openstack_session,
                                                       name=test_name,
                                                       reservation=Mock(),
                                                       cp_resource_model=mock_cp_resource_model,
                                                       deploy_req_model=mock_deploy_req_model,
                                                       cancellation_context=mock_cancellation_context,
                                                       logger=self.mock_logger)

        mock_client2.servers.create.assert_called_with(name=test_uniq_name,
                                                       image=mock_image,
                                                       flavor=mock_flavor,
                                                       availability_zone='test-avail-zone',
                                                       userdata='test_userdata',
                                                       nics=[mock_qnet_dict])
        self.assertEquals(result, mocked_inst)
        self.instance_service.instance_waiter.wait.assert_called_with(mocked_inst,
                                                                      state=self.instance_service.instance_waiter.ACTIVE,
                                                                      cancellation_context=mock_cancellation_context,
                                                                      logger=self.mock_logger)
    def test_get_instance_mgmt_net_name_success(self):
        mock_client = Mock()
        test_nova_instance_service.novaclient.Client = Mock(return_value=mock_client)

        test_net_id = 'test_net_id'
        test_cp_resource_model = Mock()
        test_cp_resource_model.qs_mgmt_os_net_uuid = test_net_id

        mock_net_obj = Mock()
        mock_net_obj.to_dict = Mock(return_value={'id': test_net_id, 'label': 'test_returned_net'})

        mock_client.networks = Mock()
        mock_client.networks.list = Mock(return_value=[mock_net_obj])

        result = self.instance_service.get_instance_mgmt_network_name(instance=Mock(),
                                                                      openstack_session=self.openstack_session,
                                                                      cp_resource_model=test_cp_resource_model)

        self.assertEqual(result, 'test_returned_net')