def setUp(self): self.keystone_client = mock.Mock() self.nova_client = mock.Mock() self.neutron_client = mock.Mock() self.cloud_account = mock.Mock() self.membership = factories.CloudProjectMembershipFactory() self.tenant = mock.Mock() # Mock low level non-AbstractCloudBackend api methods self.backend = OpenStackBackend() self.backend.create_session = mock.Mock() self.backend.create_keystone_client = mock.Mock(return_value=self.keystone_client) self.backend.create_nova_client = mock.Mock(return_value=self.nova_client) self.backend.create_neutron_client = mock.Mock(return_value=self.neutron_client) self.backend.get_or_create_tenant = mock.Mock(return_value=self.tenant) self.backend.get_or_create_user = mock.Mock(return_value=('john', 'doe')) self.backend.get_or_create_internal_network = mock.Mock() self.backend.ensure_user_is_tenant_admin = mock.Mock() self.floating_ips = [ {'status': 'ACTIVE', 'floating_ip_address': '10.7.201.163', 'id': '063795b7-23ac-4a0d-82f0-4326e73ee1bc', 'port_id': 'fakeport', 'floating_network_id': 'd5e27df4-6754-46ac-903c-5b3fa25e21dd'}, {'status': 'DOWN', 'floating_ip_address': '10.7.201.114', 'id': '063795b7-23ac-4a0d-82f0-432as73asdas', 'port_id': 'fakeport', 'floating_network_id': '83353d4a-a2d2-4f24-a472-57578699a6b1'}, {'status': 'ACTIVE', 'floating_ip_address': '10.7.201.107', 'id': '063795b7-asds-aq34-3df4-23asdasddssc', 'port_id': 'fakeport', 'floating_network_id': '34918c99-de9f-4cd3-b56c-fc982429f481'}, ] self.backend.get_floating_ips = mock.Mock(return_value=self.floating_ips)
def setUp(self): self.keystone_client = mock.Mock() self.nova_client = mock.Mock() self.neutron_client = mock.Mock() self.cloud_account = mock.Mock() self.membership = factories.CloudProjectMembershipFactory() self.tenant = mock.Mock() # Mock low level non-AbstractCloudBackend api methods self.backend = OpenStackBackend() self.backend.create_session = mock.Mock() self.backend.create_keystone_client = mock.Mock( return_value=self.keystone_client) self.backend.create_nova_client = mock.Mock( return_value=self.nova_client) self.backend.create_neutron_client = mock.Mock( return_value=self.neutron_client) self.backend.get_or_create_tenant = mock.Mock(return_value=self.tenant) self.backend.get_or_create_user = mock.Mock(return_value=('john', 'doe')) self.backend.get_or_create_network = mock.Mock() self.backend.ensure_user_is_tenant_admin = mock.Mock() self.backend.push_security_group = mock.Mock() self.backend.create_security_group = mock.Mock() self.backend.update_security_group = mock.Mock() self.backend.delete_security_group = mock.Mock() self.backend.push_security_group_rules = mock.Mock()
def populate_internal_network(apps, schema_editor): # check if such a network already exists, if so -- use it instead CloudProjectMembership = apps.get_model("iaas", "CloudProjectMembership") db_alias = schema_editor.connection.alias def get_tenant_name(membership): return '{0}-{1}'.format(membership.project.uuid.hex, membership.project.name) openstack = OpenStackBackend() for cpm in CloudProjectMembership.objects.using(db_alias).filter( internal_network_id='').iterator(): network_name = get_tenant_name(cpm) network_lookup = { 'name': network_name, 'tenant_id': cpm.tenant_id, } try: session = openstack.create_tenant_session(cpm) neutron = openstack.create_neutron_client(session) networks_by_name = neutron.list_networks( **network_lookup)['networks'] network_id = networks_by_name[0]['id'] except (ClientException, NeutronClientException, KeyError): network_id = 'ERROR-API' except IndexError: network_id = 'ERROR-NOT-FOUND' else: if len(networks_by_name) > 1: network_id = 'ERROR-TOO-MANY' cpm.internal_network_id = network_id cpm.save()
def setUp(self): self.keystone_client = mock.Mock() self.nova_client = mock.Mock() self.cloud_account = mock.Mock() self.backend = OpenStackBackend() self.backend.create_keystone_client = mock.Mock(return_value=self.keystone_client) self.backend.create_nova_client = mock.Mock(return_value=self.nova_client)
def setUp(self): self.membership = mock.Mock() self.session = mock.Mock() self.session.auth.auth_url = 'http://keystone.example.com:5000/v2.0' self.session.auth.username = '******' self.session.auth.password = '******' self.backend = OpenStackBackend(dummy=True) self.backend.create_session = mock.Mock(return_value=self.session)
def setUp(self): self.keystone_client = mock.Mock() self.nova_client = mock.Mock() self.membership = mock.Mock() self.membership.project.uuid.hex = 'project_uuid' self.membership.project.name = 'project_name' self.membership.project.description = 'project_description' self.backend = OpenStackBackend()
def test_do_not_push_ssh_public_key_dublicate(self): public_key = self._get_dummy_ssh_key() nova_client = mock.Mock() backend = OpenStackBackend(dummy=True) backend.create_session = mock.Mock(return_value=self.session) backend.create_nova_client = mock.Mock(return_value=nova_client) backend.push_ssh_public_key(self.membership, public_key) nova_client.keypairs.find.assert_called_once_with(fingerprint=public_key.fingerprint) assert not nova_client.keypairs.create.called
def setUp(self): self.nova_client = mock.Mock() self.nova_client.servers.list.return_value = [] self.nova_client.servers.findall.return_value = [] self.membership = factories.CloudProjectMembershipFactory() # Mock low level non-AbstractCloudBackend api methods self.backend = OpenStackBackend() self.backend.create_session = mock.Mock(return_value=mock.Mock(dummy=False)) self.backend.create_nova_client = mock.Mock(return_value=self.nova_client)
def setUp(self): self.nova_client = mock.Mock() self.nova_client.flavors.findall.return_value = [] self.cloud_account = factories.CloudFactory() self.flavors = factories.FlavorFactory.create_batch(2, cloud=self.cloud_account) # Mock low level non-AbstractCloudBackend api methods self.backend = OpenStackBackend() self.backend.create_session = mock.Mock() self.backend.create_nova_client = mock.Mock(return_value=self.nova_client)
def setUp(self): self.keystone_client = mock.Mock() self.nova_client = mock.Mock() self.neutron_client = mock.Mock() self.cloud_account = mock.Mock() self.cinder_client = mock.Mock() self.membership = mock.Mock( ) # TODO: use real membership, not mocked and unite with test class below self.tenant = mock.Mock() # client methods: self.nova_quota = mock.Mock(cores=20, instances=10, ram=51200) self.nova_client.quotas.get = mock.Mock(return_value=self.nova_quota) self.cinder_quota = mock.Mock(gigabytes=1000) self.cinder_client.quotas.get = mock.Mock( return_value=self.cinder_quota) self.volumes = [mock.Mock(size=10 * i, id=i) for i in range(5)] self.snapshots = [mock.Mock(size=10 * i, id=i) for i in range(5)] self.flavors = [mock.Mock(ram=i, id=i, vcpus=i) for i in range(4)] self.instances = [mock.Mock(flavor={'id': i}) for i in range(2)] self.cinder_client.volume_snapshots.list = mock.Mock( return_value=self.snapshots) self.cinder_client.volumes.list = mock.Mock(return_value=self.volumes) self.nova_client.servers.list = mock.Mock(return_value=self.instances) self.nova_client.flavors.list = mock.Mock(return_value=self.flavors) # Mock low level non-AbstractCloudBackend api methods self.backend = OpenStackBackend() self.backend.create_session = mock.Mock() self.backend.create_keystone_client = mock.Mock( return_value=self.keystone_client) self.backend.create_nova_client = mock.Mock( return_value=self.nova_client) self.backend.create_neutron_client = mock.Mock( return_value=self.neutron_client) self.backend.create_cinder_client = mock.Mock( return_value=self.cinder_client) self.backend.get_or_create_tenant = mock.Mock(return_value=self.tenant) self.backend.get_or_create_user = mock.Mock(return_value=('john', 'doe')) self.backend.get_or_create_network = mock.Mock() self.backend.ensure_user_is_tenant_admin = mock.Mock() self.backend.push_security_group = mock.Mock() self.backend.create_security_group = mock.Mock() self.backend.update_security_group = mock.Mock() self.backend.delete_security_group = mock.Mock() self.backend.push_security_group_rules = mock.Mock() self.backend.get_hypervisors_statistics = mock.Mock(return_value=[])
def setUp(self): settings, _ = OpenStackSettings.objects.update_or_create( auth_url='http://keystone.example.com:5000/v2.0', defaults={ 'username': '******', 'password': '******', 'tenant_name': 'test_tenant', }) self.auth_url = settings.auth_url self.tenant_id = '593af1f7b67b4d63b691fcabd2dad126' self.credentials = { 'auth_url': self.auth_url, 'username': '******', 'password': '******', 'tenant_id': uuid.uuid4().hex, } self.backend = OpenStackBackend(dummy=True)
def setUp(self): self.keystone_client = mock.Mock() self.nova_client = mock.Mock() self.neutron_client = mock.Mock() self.cloud_account = mock.Mock() self.membership = factories.CloudProjectMembershipFactory() self.tenant = mock.Mock() # Mock low level non-AbstractCloudBackend api methods self.backend = OpenStackBackend() self.backend.create_session = mock.Mock() self.backend.create_keystone_client = mock.Mock( return_value=self.keystone_client) self.backend.create_nova_client = mock.Mock( return_value=self.nova_client) self.backend.create_neutron_client = mock.Mock( return_value=self.neutron_client) self.backend.get_or_create_tenant = mock.Mock(return_value=self.tenant) self.backend.get_or_create_user = mock.Mock(return_value=('john', 'doe')) self.backend.get_or_create_network = mock.Mock() self.backend.ensure_user_is_tenant_admin = mock.Mock() self.floating_ips = [ { 'status': 'ACTIVE', 'floating_ip_address': '10.7.201.163', 'id': '063795b7-23ac-4a0d-82f0-4326e73ee1bc', 'port_id': 'fakeport' }, { 'status': 'DOWN', 'floating_ip_address': '10.7.201.114', 'id': '063795b7-23ac-4a0d-82f0-432as73asdas', 'port_id': 'fakeport' }, { 'status': 'ACTIVE', 'floating_ip_address': '10.7.201.107', 'id': '063795b7-asds-aq34-3df4-23asdasddssc', 'port_id': 'fakeport' }, ] self.backend.get_floating_ips = mock.Mock( return_value=self.floating_ips)
def setUp(self): self.glance_client = mock.Mock() # C # ^ # | # (I0) # | # v # T0 T1 T2 # ^ ^ ^ # | \ | \ | # | \ | \ | # | \ | \ | # v v v v v # TM0 TM1 TM2 TM3 TM4 # self.cloud_account = factories.CloudFactory() self.templates = factories.TemplateFactory.create_batch(3) self.template_mappings = ( factories.TemplateMappingFactory.create_batch( 2, template=self.templates[0]) + factories.TemplateMappingFactory.create_batch( 2, template=self.templates[1]) + factories.TemplateMappingFactory.create_batch( 1, template=self.templates[2])) self.image = factories.ImageFactory( cloud=self.cloud_account, template=self.template_mappings[0].template, backend_id=self.template_mappings[0].backend_image_id, ) # Mock low level non-AbstractCloudBackend api methods self.backend = OpenStackBackend() self.backend.create_session = mock.Mock() self.backend.create_glance_client = mock.Mock( return_value=self.glance_client)
def get_backend(self): # TODO: Support different clouds instead of hard-coding # Importing here to avoid circular imports hell from nodeconductor.iaas.backend.openstack import OpenStackBackend return OpenStackBackend(dummy=self.dummy)
def setUp(self): self.backend = OpenStackBackend()