def setUp(self): """ Create a :obj:`MimicCore` with :obj:`RackConnectV3` as the only plugin """ super(RackConnectTestMixin, self).setUp() self.rcv3 = RackConnectV3() self.helper = APIMockHelper(self, [self.rcv3]) self.pool_id = self.get_lb_ids()[0][0]
def setUp(self): """ Test initialization. """ helper = APIMockHelper(self, [HeatApi()]) self.root = helper.root self.uri = helper.uri
def test_get_flavor_list_with_OnMetal(self): """ Test to verify :func:`get_flavor_list` on ``GET /v2.0/<tenant_id>/flavors`` """ nova_api = NovaApi(['IAD']) self.helper = APIMockHelper(self, [nova_api]) self.root = self.helper.root self.uri = self.helper.uri get_flavor_list_response_body = self.get_server_flavor('/flavors') flavor_list = get_flavor_list_response_body['flavors'] self.assertTrue(len(flavor_list) == 38) for flavor in flavor_list: if 'onmetal' in flavor['id']: self.assertTrue('onmetal' in flavor['id']) self.assertEqual( sorted(flavor.keys()), sorted(['id', 'name', 'links'])) get_flavor_list_response_body = self.get_server_flavor('/flavors/detail') flavor_list = get_flavor_list_response_body['flavors'] self.assertTrue(len(flavor_list) == 38) for flavor in flavor_list: if 'onmetal' in flavor['id']: self.assertEqual('onmetal_flavor', flavor['OS-FLV-WITH-EXT-SPECS:extra_specs']['policy_class']) self.assertEqual( sorted(flavor.keys()), sorted(['id', 'name', 'links', 'ram', 'OS-FLV-WITH-EXT-SPECS:extra_specs', 'vcpus', 'swap', 'rxtx_factor', 'OS-FLV-EXT-DATA:ephemeral', 'disk']))
def setUp(self): """ Setup for glance tests """ helper = APIMockHelper(self, [GlanceApi()]) self.root = helper.root self.uri = helper.uri
def setUp(self): """ """ neutron_api = NeutronApi(['DFW']) self.helper = APIMockHelper(self, [neutron_api]) self.root = self.helper.root self.uri = self.helper.uri
def setUp(self): self.eeapi_name = u"externalServiceName" self.eeapi = make_example_external_api(self, name=self.eeapi_name, set_enabled=True) self.helper = APIMockHelper(self, [self.eeapi]) self.root = self.helper.root self.uri = self.helper.uri
def setUp(self): """ Initialize core and root """ cinder_api = CinderApi(['DFW']) self.helper = APIMockHelper(self, [cinder_api]) self.root = self.helper.root self.uri = self.helper.uri
def test_load_external_api(self): """ Validate loading a valid external API object. """ eeapi = make_example_external_api(self, name=self.eeapi_name, set_enabled=True) APIMockHelper(self, [eeapi])
def setUp(self): """ Create a :obj:`MimicCore` with :obj:`NovaApi` as the only plugin. """ nova_api = NovaApi(['DFW']) self.helper = APIMockHelper(self, [nova_api]) self.root = self.helper.root self.uri = self.helper.uri
def setUp(self): """ Create a :obj:`MimicCore` with :obj:`NovaApi` as the only plugin. """ nova_api = NovaApi(["ORD"]) self.helper = self.helper = APIMockHelper( self, [nova_api, NovaControlApi(nova_api=nova_api)]) self.root = self.helper.root self.uri = self.helper.uri
def setUp(self): """ Create a :obj:`MimicCore` with :obj:`NovaApi` as the only plugin, and create a server """ helper = APIMockHelper(self, [NovaApi(["ORD", "MIMIC"])]) self.root = helper.root self.uri = helper.uri self.helper = helper
def test_same_tenant_different_regions(self): """ Creating an LB for a tenant in one different regions should create it in another region for that tenant. """ helper = APIMockHelper(self, [LoadBalancerApi(regions=["ORD", "DFW"])]) self._create_loadbalancer(api_helper=helper) list_lb_response, list_lb_response_body = self.successResultOf( request_with_content( self, helper.root, "GET", helper.nth_endpoint_public(1) + "/loadbalancers")) self.assertEqual(list_lb_response.code, 200) list_lb_response_body = json.loads(list_lb_response_body) self.assertEqual(list_lb_response_body, {"loadBalancers": []})
def setUp(self): """ Create a MimicCore with CloudFeeds support as the only plugin. """ cf_api = CloudFeedsApi() self.helper = APIMockHelper( self, [cf_api, CloudFeedsControlApi(cf_api=cf_api)]) self.root = self.helper.root self.uri = self.helper.uri self.ctrl_uri = self.helper.auth.get_service_endpoint( "cloudFeedsControl", "ORD")
def test_different_regions_same_tenant_different_pools(self): """ The same tenant has different pools in different regions, default of 1 pool in each. """ self.rcv3 = RackConnectV3(regions=["ORD", "DFW"]) self.helper = APIMockHelper(self, [self.rcv3]) lb_ids = self.get_lb_ids() self.assertEqual(1, len(lb_ids[0])) self.assertEqual(1, len(lb_ids[1])) self.assertNotEqual(set(lb_ids[0]), set(lb_ids[1]))
def test_default_multiple_pools(self): """ If ``default_pools`` is passed to :class:`RackConnectV3`, multiple load balancer pools will be created per tenant per region """ self.rcv3 = RackConnectV3(regions=["ORD", "DFW"], default_pools=2) self.helper = APIMockHelper(self, [self.rcv3]) lb_ids = self.get_lb_ids() self.assertEqual(2, len(lb_ids[0])) self.assertEqual(2, len(lb_ids[1])) self.assertNotEqual(set(lb_ids[0]), set(lb_ids[1]))
def setUp(self): """ Create a :obj:`MimicCore` with :obj:`NovaApi` as the only plugin, and create a server """ nova_api = NovaApi(["ORD", "MIMIC"]) nova_control_api = NovaControlApi(nova_api=nova_api) helper = APIMockHelper(self, [nova_api, nova_control_api]) self.nova_control_endpoint = helper.auth.get_service_endpoint( "cloudServersBehavior", "ORD") self.root = helper.root self.uri = helper.uri self.helper = helper
def test_service_with_region_external(self): """ Validate that an external service does not provide an internal service resource. """ eeapi = make_example_external_api(self, name=self.eeapi_name, set_enabled=True) helper = APIMockHelper(self, [eeapi]) core = helper.core self.assertIsNone( core.service_with_region(u"EXTERNAL", u"some-region-name", u"http://some/random/prefix"))
def setUp(self): """ Create a :obj:`MimicCore` with :obj:`NovaApi` as the only plugin """ nova_api = NovaApi(["ORD", "MIMIC"]) self.helper = APIMockHelper( self, [nova_api, NovaControlApi(nova_api=nova_api)]) self.root = self.helper.root self.clock = self.helper.clock self.uri = self.helper.uri self.create_keypair_response, self.create_keypair_response_body = ( self.create_keypair()) self.keypair_name = self.create_keypair_response_body['keypair'][ 'name']
class RackConnectTestMixin(object): """ Mixin object that provides some nice utilities """ def setUp(self): """ Create a :obj:`MimicCore` with :obj:`RackConnectV3` as the only plugin """ super(RackConnectTestMixin, self).setUp() self.rcv3 = RackConnectV3() self.helper = APIMockHelper(self, [self.rcv3]) self.pool_id = self.get_lb_ids()[0][0] def get_lb_ids(self): """ Helper function to get the load balancer ids per region """ _, resp_jsons = zip( *[ self.successResultOf( json_request( self, self.helper.root, "GET", self.helper.get_service_endpoint("rackconnect", region) + "/load_balancer_pools", ) ) for region in self.rcv3.regions ] ) lb_ids = [[lb["id"] for lb in lbs] for lbs in resp_jsons] return lb_ids def request_with_content(self, method, relative_uri, **kwargs): """ Helper function that makes a request and gets the non-json content. """ return request_with_content(self, self.helper.root, method, self.helper.uri + relative_uri, **kwargs) def json_request(self, method, relative_uri, **kwargs): """ Helper function that makes a request and gets the json content. """ return json_request(self, self.helper.root, method, self.helper.uri + relative_uri, **kwargs)
def test_service_with_region_internal(self): """ Validate that an external service does not provide an internal service resource. """ iapi = make_example_internal_api(self) helper = APIMockHelper(self, [iapi]) core = helper.core service_id = None for a_service_id in core._uuid_to_api_internal: if core._uuid_to_api_internal[a_service_id] == iapi: service_id = a_service_id resource = core.service_with_region(u"ORD", service_id, u"http://some/random/prefix") self.assertTrue(IResource.providedBy(resource))
def test_uri_for_service(self): """ Validate that the URI returned by uri_for_service returns the appropriate base URI. """ iapi = make_example_internal_api(self) helper = APIMockHelper(self, [iapi]) core = helper.core service_id = None for a_service_id in core._uuid_to_api_internal: if core._uuid_to_api_internal[a_service_id] == iapi: service_id = a_service_id base_uri = "http://some/random/prefix" uri = core.uri_for_service(u"ORD", service_id, base_uri) self.assertTrue(uri.startswith(base_uri + '/'))
def setUp(self): """ Setup MaasApi helper object & uri 'n stuff """ helper = APIMockHelper(self, [MaasApi(["ORD"])]) self.root = helper.root self.uri = helper.uri self.entity_id = self.getXobjectIDfromResponse( self.createEntity('ItsAnEntity')) self.check_id = self.getXobjectIDfromResponse( self.createCheck('ItsAcheck', self.entity_id)) self.alarm_id = self.getXobjectIDfromResponse( self.createAlarm('ItsAnAlarm', self.entity_id, self.check_id)) self.nt_id = self.getXobjectIDfromResponse( self.createNotification('ItsANotificationTarget')) self.np_id = self.getXobjectIDfromResponse( self.createNotificationPlan('ItsANotificationPlan')) self.sp_id = self.getXobjectIDfromResponse( self.createSuppression('ItsASuppression'))
def test_external_api_no_service_resource(self): """ Validate that an external API does not provide a Resource for Mimic to support that API within itself. """ eeapi = make_example_external_api(self, name=self.eeapi_name, set_enabled=True) self.helper = APIMockHelper(self, [eeapi]) self.core = self.helper.core # Find the UUID of the registered External API eeapi_id = None for uuid, api in self.core._uuid_to_api_external.items(): eeapi_id = uuid self.assertIsNotNone(eeapi_id) self.assertIsNone( self.core.service_with_region("EXTERNAL", eeapi_id, "fakebaseuri"))
class RackConnectTestMixin(object): """ Mixin object that provides some nice utilities """ def setUp(self): """ Create a :obj:`MimicCore` with :obj:`RackConnectV3` as the only plugin """ super(RackConnectTestMixin, self).setUp() self.rcv3 = RackConnectV3() self.helper = APIMockHelper(self, [self.rcv3]) self.pool_id = self.get_lb_ids()[0][0] def get_lb_ids(self): """ Helper function to get the load balancer ids per region """ _, resp_jsons = zip(*[ self.successResultOf( json_request( self, self.helper.root, b"GET", self.helper.get_service_endpoint("rackconnect", region) + "/load_balancer_pools")) for region in self.rcv3.regions ]) lb_ids = [[lb['id'] for lb in lbs] for lbs in resp_jsons] return lb_ids def request_with_content(self, method, relative_uri, **kwargs): """ Helper function that makes a request and gets the non-json content. """ return request_with_content(self, self.helper.root, method, self.helper.uri + relative_uri, **kwargs) def json_request(self, method, relative_uri, **kwargs): """ Helper function that makes a request and gets the json content. """ return json_request(self, self.helper.root, method, self.helper.uri + relative_uri, **kwargs)
def setUp(self): self.eeapi_name = u"externalServiceName" self.eeapi_template_id = u"uuid-endpoint-template" self.eeapi_template = exampleEndpointTemplate( name=self.eeapi_name, endpoint_uuid=self.eeapi_template_id) self.eeapi = make_example_external_api( self, name=self.eeapi_name, endpoint_templates=[self.eeapi_template], set_enabled=False) self.helper = APIMockHelper(self, [make_example_internal_api(self)]) self.core = self.helper.core self.root = self.helper.root self.uri = self.helper.uri self.tenant_enabled_for = u"tenantWithApi" self.tenant_enabled_for_password = "******" self.tenant_data = TenantAuthentication( self, self.root, self.tenant_enabled_for, self.tenant_enabled_for_password) self.eeapi.enable_endpoint_for_tenant(self.tenant_data.get_tenant_id(), self.eeapi_template_id) self.core.add_api(self.eeapi)
def setUp(self): """ Create a :obj:`MimicCore` with :obj:`NovaApi` as the only plugin, and create a server """ helper = APIMockHelper(self, [NovaApi(["ORD", "MIMIC"])]) self.root = helper.root self.uri = helper.uri self.server_name = 'test_server' create_server = request( self, self.root, "POST", self.uri + '/servers', json.dumps({ "server": { "name": self.server_name, "imageRef": "test-image", "flavorRef": "test-flavor" } })) self.create_server_response = self.successResultOf(create_server) self.create_server_response_body = self.successResultOf( treq.json_content(self.create_server_response)) self.server_id = self.create_server_response_body['server']['id'] self.nth_endpoint_public = helper.nth_endpoint_public
def test_load_internal_api(self): """ Validate loading a valid internal API object. """ APIMockHelper(self, [make_example_internal_api(self)])