def test_create_pool(self, mock_validator, mock_allocate): tenant = fakes.tenants["baz"] floating_list = fakes.floating_ips[tenant["id"]][0] mock_allocate.return_value = floating_list pool_name = "public" obj = { "attributes": {}, "schemes": { os_network.OSFloatingIPPool.scheme: [pool_name], } } parameters = {} categories = {ip_reservation.IPReservation.kind} req = fake_nets.create_req_test_occi(parameters, categories) req.get_parser = mock.MagicMock() req.get_parser.return_value.return_value.parse.return_value = obj mock_validator.validate.return_value = True result = self.controller.create(req) expected = self.controller._get_ipreservation_resources( [floating_list]) self.assertEqual(expected, result.resources) mock_allocate.assert_called_with(req, pool_name)
def test_create_invalid_param_rule(self): params = {"occi.core.title": "group", "occi.securitygroup.rules": "{'wrong': 'value'}]" } categories = {occi_security_group.SecurityGroupResource.kind} req = fakes.create_req_test_occi(params, categories) self.assertRaises(exception.Invalid, self.controller.create, req)
def test_create_ipreservation(self, mock_get_id, mock_assign): server_id = uuid.uuid4().hex net_id = "foo/ipreservation/%s" % uuid.uuid4().hex ip = '8.0.0.0' parameters = { "occi.core.target": net_id, "occi.core.source": server_id, } categories = {network_link.NetworkInterface.kind} req = fake_nets.create_req_test_occi(parameters, categories) mock_assign.return_value = fake_nets.fake_build_link(net_id, server_id, ip, public_ip=True) mock_get_id.side_effect = [('', server_id), ('', net_id)] ret = self.controller.create(req) self.assertIsNotNone(ret) link = ret.resources.pop() self.assertIsInstance(link, os_network.OSNetworkInterface) self.assertIsInstance(link.source, compute.ComputeResource) self.assertIsInstance(link.target, network.NetworkResource) self.assertIsInstance(link.target, ip_reservation.IPReservation) self.assertEqual(net_id, link.target.id) self.assertEqual(server_id, link.source.id) mock_assign.assert_called_with(mock.ANY, net_id, server_id)
def test_create_pool(self, mock_validator, mock_allocate): tenant = fakes.tenants["baz"] floating_list = fakes.floating_ips[tenant["id"]][0] mock_allocate.return_value = floating_list pool_name = "public" obj = { "attributes": {}, "schemes": { os_network.OSFloatingIPPool.scheme: [pool_name], } } parameters = {} categories = {ip_reservation.IPReservation.kind} req = fake_nets.create_req_test_occi(parameters, categories) req.get_parser = mock.MagicMock() req.get_parser.return_value.return_value.parse.return_value = obj mock_validator.validate.return_value = True result = self.controller.create(req) expected = self.controller._get_ipreservation_resources( [floating_list]) self.assertEqual(expected, result.resources) mock_allocate.assert_called_with(req, pool_name)
def test_create_invalid_param_rule(self): params = { "occi.core.title": "group", "occi.securitygroup.rules": "{'wrong': 'value'}]" } categories = {occi_security_group.SecurityGroupResource.kind} req = fakes.create_req_test_occi(params, categories) self.assertRaises(exception.Invalid, self.controller.create, req)
def test_filter_attributes_empty(self): categories = {occi_network.NetworkResource.kind} req = fakes.create_req_test_occi(None, categories) occi_scheme = { "category": occi_network.NetworkResource.kind, "optional_mixins": [ occi_network.ip_network, ] } attributes = network_api.process_parameters(req, occi_scheme) self.assertEqual({}, attributes)
def test_filter_attributes_empty(self): categories = {occi_network.NetworkResource.kind} req = fakes.create_req_test_occi(None, categories) occi_scheme = { "category": occi_network.NetworkResource.kind, "optional_mixins": [ occi_network.ip_network, ] } attributes = network_api.process_parameters(req, occi_scheme) self.assertIsNone(attributes)
def test_create(self, mock_allocate): tenant = fakes.tenants["baz"] floating_list = fakes.floating_ips[tenant["id"]][0] mock_allocate.return_value = floating_list parameters = {} categories = {ip_reservation.IPReservation.kind} req = fake_nets.create_req_test_occi(parameters, categories) result = self.controller.create(req) expected = self.controller._get_ipreservation_resources( [floating_list]) self.assertEqual(expected, result.resources) mock_allocate.assert_called_with(req, None)
def test_create(self, mock_allocate): tenant = fakes.tenants["baz"] floating_list = fakes.floating_ips[tenant["id"]][0] mock_allocate.return_value = floating_list parameters = {} categories = {ip_reservation.IPReservation.kind} req = fake_nets.create_req_test_occi(parameters, categories) result = self.controller.create(req) expected = self.controller._get_ipreservation_resources( [floating_list]) self.assertEqual(expected, result.resources) mock_allocate.assert_called_with(req, None)
def test_filter_attributes(self): parameters = {"occi.core.title": 'name', "org.openstack.network.ip_version": 4, "occi.network.address": '00001/24', "occi.network.gateway": '00001', } categories = {occi_network.NetworkResource.kind} req = fakes.create_req_test_occi(parameters, categories) occi_scheme = { "category": occi_network.NetworkResource.kind, "optional_mixins": [ occi_network.ip_network, ] } ret = network_api.process_parameters(req, occi_scheme) self.assertEqual(parameters, ret)
def test_create_no_ip_mixin(self, m): test_networks = fakes.networks[fakes.tenants["foo"]["id"]] for test_net in test_networks: parameters = { "occi.core.title": test_net["name"], "org.openstack.network.ip_version": 4, "occi.network.address": "0.0.0.0", } categories = {occi_network.NetworkResource.kind} req = fakes.create_req_test_occi(parameters, categories) fake_net = fakes.fake_build_net( parameters['occi.core.title'], parameters['org.openstack.network.ip_version'], parameters['occi.network.address']) m.return_value = fake_net self.assertRaises(exception.OCCIMissingType, self.controller.create, req)
def test_filter_attributes(self): parameters = { "occi.core.title": 'name', "org.openstack.network.ip_version": 4, "occi.network.address": '00001/24', "occi.network.gateway": '00001', } categories = {occi_network.NetworkResource.kind} req = fakes.create_req_test_occi(parameters, categories) occi_scheme = { "category": occi_network.NetworkResource.kind, "optional_mixins": [ occi_network.ip_network, ] } ret = network_api.process_parameters(req, occi_scheme) self.assertEqual(parameters, ret)
def test_create_no_ip_mixin(self, m): test_networks = fakes.networks[fakes.tenants["foo"]["id"]] for test_net in test_networks: parameters = {"occi.core.title": test_net["name"], "org.openstack.network.ip_version": 4, "occi.network.address": "0.0.0.0", } categories = {occi_network.NetworkResource.kind} req = fakes.create_req_test_occi(parameters, categories) fake_net = fakes.fake_build_net( parameters['occi.core.title'], parameters['org.openstack.network.ip_version'], parameters['occi.network.address'] ) m.return_value = fake_net self.assertRaises(exception.OCCIMissingType, self.controller.create, req)
def test_create(self, m): test_networks = fakes.networks[fakes.tenants["foo"]["id"]] for test_net in test_networks: parameters = {"occi.core.title": test_net["name"], "org.openstack.network.ip_version": 4, "occi.network.address": "0.0.0.0", } categories = {occi_network.NetworkResource.kind, occi_network.ip_network} req = fakes.create_req_test_occi(parameters, categories) fake_net = fakes.fake_build_net( parameters['occi.core.title'], parameters['org.openstack.network.ip_version'], parameters['occi.network.address'] ) m.return_value = fake_net ret = self.controller.create(req) net = ret.resources.pop() self.assertIsInstance(net, occi_network.NetworkResource) self.assertEqual(net.title, test_net['name'])
def test_create_fixed(self, mock_get_id, mock_cre_port): server_id = uuid.uuid4().hex net_id = uuid.uuid4().hex mock_get_id.side_effect = [('', net_id), ('', server_id)] ip = '8.0.0.0' parameters = { "occi.core.target": net_id, "occi.core.source": server_id, } categories = {network_link.NetworkInterface.kind} req = fake_nets.create_req_test_occi(parameters, categories) mock_cre_port.return_value = fake_nets.fake_build_link( net_id, server_id, ip ) ret = self.controller.create(req) self.assertIsNotNone(ret) link = ret.resources.pop() self.assertIsInstance(link, os_network.OSNetworkInterface) self.assertIsInstance(link.source, compute.ComputeResource) self.assertIsInstance(link.target, network.NetworkResource) self.assertEqual(net_id, link.target.id) self.assertEqual(server_id, link.source.id) mock_cre_port.assert_called_with(mock.ANY, net_id, server_id)