def test_create_server_security_link(self, mock_tenant, mock_req): tenant_id = fakes_nova.tenants["baz"]["id"] server_id = uuid.uuid4().hex sg_id = "baz" mock_tenant.return_value = tenant_id sc_group = fakes_nova.security_groups[tenant_id][0] resp_get = fakes_network.create_fake_json_resp( {"security_group": sc_group}, 200 ) req_mock_get = mock.MagicMock() req_mock_get.get_response.return_value = resp_get resp_create = fakes_network.create_fake_json_resp( {}, 204 ) req_mock_cre = mock.MagicMock() req_mock_cre.get_response.return_value = resp_create mock_req.side_effect = [req_mock_get, req_mock_cre] ret = self.helper.create_server_security_link(None, server_id, sg_id) self.assertEqual([], ret) sg_name = sc_group["name"] mock_req.assert_called_with( None, method="POST", path="/%s/servers/%s/action" % (tenant_id, server_id), body='{"addSecurityGroup": {"name": "%s"}}' % sg_name, content_type='application/json' )
def test_create_security_group(self, m_t, m_rq): tenant_id = fakes_nova.tenants["baz"]["id"] m_t.return_value = tenant_id sc_group = fakes_nova.security_groups[tenant_id][0] occi_os_group = os_helpers.build_security_group_from_nova( fakes_nova.security_groups[tenant_id])[0] resp = fakes_network.create_fake_json_resp( {"security_group": sc_group}, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp resp_rule1 = fakes_network.create_fake_json_resp( {"security_group_rule": sc_group['rules'][0]}, 200) req_mock_rule1 = mock.MagicMock() req_mock_rule1.get_response.return_value = resp_rule1 resp_rule2 = fakes_network.create_fake_json_resp( {"security_group_rule": sc_group['rules'][1]}, 200) req_mock_rule2 = mock.MagicMock() req_mock_rule2.get_response.return_value = resp_rule2 m_rq.side_effect = [req_mock, req_mock_rule1, req_mock_rule2] ret = self.helper.create_security_group( None, name=occi_os_group['title'], description=occi_os_group['summary'], rules=occi_os_group['rules']) cont = 0 for r in ret["rules"]: self.assertEqual(occi_os_group['rules'][cont]['protocol'], r["protocol"]) self.assertEqual(occi_os_group['rules'][cont]['range'], r["range"]) self.assertEqual(occi_os_group['rules'][cont]['port'], r["port"]) self.assertEqual(occi_os_group['rules'][cont]['type'], r["type"]) cont += 1
def test_list_networks(self, m_t, m_rq): id = uuid.uuid4().hex tenant_id = uuid.uuid4().hex m_t.return_value = tenant_id resp = fakes_network.create_fake_json_resp( {"networks": [{"id": id}]}, 200) resp_float = fakes_network.create_fake_json_resp( {"floating_ip_pools": [{"id": id}]}, 200 ) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp req_mock_float = mock.MagicMock() req_mock_float.get_response.return_value = resp_float m_rq.side_effect = [req_mock, req_mock_float] ret = self.helper.list_networks(None) self.assertEqual(id, ret[0]['id']) self.assertEqual( {'method': 'GET', 'path': '/%s/os-networks' % (tenant_id)}, m_rq.call_args_list[0][1] ) self.assertEqual( {'method': 'GET', 'path': '/%s/os-floating-ip-pools' % (tenant_id)}, m_rq.call_args_list[1][1] )
def test_list_networks(self, m_t, m_rq): id = uuid.uuid4().hex tenant_id = uuid.uuid4().hex m_t.return_value = tenant_id resp = fakes.create_fake_json_resp({"networks": [{"id": id}]}, 200) resp_float = fakes.create_fake_json_resp( {"floating_ip_pools": [{ "id": id }]}, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp req_mock_float = mock.MagicMock() req_mock_float.get_response.return_value = resp_float m_rq.side_effect = [req_mock, req_mock_float] ret = self.helper.list_networks(None) self.assertEqual(id, ret[0]['id']) self.assertEqual( { 'method': 'GET', 'path': '/%s/os-networks' % (tenant_id) }, m_rq.call_args_list[0][1]) self.assertEqual( { 'method': 'GET', 'path': '/%s/os-floating-ip-pools' % (tenant_id) }, m_rq.call_args_list[1][1])
def test_create(self, m): tenant = fakes.tenants["foo"] net_out = fakes.create_fake_json_resp( {"network": fakes.networks[tenant['id']][0]}, 200) mock_net = mock.Mock(webob.Request) mock_net.get_response.return_value = net_out subnet_out = fakes.create_fake_json_resp( {"subnet": fakes.networks[tenant['id']][0]["subnet_info"]}, 200) mock_subnet = mock.Mock(webob.Request) mock_subnet.get_response.return_value = subnet_out public_out = fakes.create_fake_json_resp( {"networks": fakes.networks[tenant['id']]}, 200) mock_public = mock.Mock(webob.Request) mock_public.get_response.return_value = public_out router_out = fakes.create_fake_json_resp( {"router": {"id": uuid.uuid4().hex}}, 200) mock_router = mock.Mock(webob.Request) mock_router.get_response.return_value = router_out mock_iface = mock.Mock(webob.Request) mock_iface.get_response.return_value = fakes.create_fake_json_resp( {"foo": "foo"}, 200) m.side_effect = [mock_net, mock_subnet, mock_public, mock_router, mock_iface ] name = fakes.networks[tenant["id"]][0]["name"] net_id = fakes.networks[tenant["id"]][0]["id"] address = fakes.networks[tenant["id"]][0]["subnet_info"]["cidr"] headers = { 'Category': 'network;' ' scheme=' '"http://schemas.ogf.org/occi/infrastructure#";' 'class="kind",' 'ipnetwork;' ' scheme=' '"http://schemas.ogf.org/occi/infrastructure/' 'network#";' 'class="mixin",', 'X-OCCI-Attribute': '"occi.core.title"="%s",' '"occi.network.address"="%s"' % (name, address) } req = self._build_req(path="/network", tenant_id='X', method="POST", headers=headers) m.return_value = fakes.networks[tenant['id']][0] resp = req.get_response(self.app) self.assertEqual(200, resp.status_code) expected = [("X-OCCI-Location", utils.join_url(self.application_url + "/", "network/%s" % net_id))] self.assertExpectedResult(expected, resp)
def test_create(self, m): tenant = fakes.tenants["foo"] net_out = fakes.create_fake_json_resp( {"network": fakes.networks[tenant['id']][0]}, 200) mock_net = mock.Mock(webob.Request) mock_net.get_response.return_value = net_out subnet_out = fakes.create_fake_json_resp( {"subnet": fakes.networks[tenant['id']][0]["subnet_info"]}, 200) mock_subnet = mock.Mock(webob.Request) mock_subnet.get_response.return_value = subnet_out public_out = fakes.create_fake_json_resp( {"networks": fakes.networks[tenant['id']]}, 200) mock_public = mock.Mock(webob.Request) mock_public.get_response.return_value = public_out router_out = fakes.create_fake_json_resp( {"router": { "id": uuid.uuid4().hex }}, 200) mock_router = mock.Mock(webob.Request) mock_router.get_response.return_value = router_out mock_iface = mock.Mock(webob.Request) mock_iface.get_response.return_value = fakes.create_fake_json_resp( {"foo": "foo"}, 200) m.side_effect = [ mock_net, mock_subnet, mock_public, mock_router, mock_iface ] name = fakes.networks[tenant["id"]][0]["name"] net_id = fakes.networks[tenant["id"]][0]["id"] address = fakes.networks[tenant["id"]][0]["subnet_info"]["cidr"] headers = { 'Category': 'network;' ' scheme=' '"http://schemas.ogf.org/occi/infrastructure#";' 'class="kind",' 'ipnetwork;' ' scheme=' '"http://schemas.ogf.org/occi/infrastructure/' 'network#";' 'class="mixin",', 'X-OCCI-Attribute': '"occi.core.title"="%s",' '"occi.network.address"="%s"' % (name, address) } req = self._build_req(path="/network", tenant_id='X', method="POST", headers=headers) m.return_value = fakes.networks[tenant['id']][0] resp = req.get_response(self.app) self.assertEqual(200, resp.status_code) expected = [("X-OCCI-Location", utils.join_url(self.application_url + "/", "network/%s" % net_id))] self.assertExpectedResult(expected, resp)
def test_list_networks_with_no_public(self, m_t, m_rq): id = uuid.uuid4().hex resp = fakes.create_fake_json_resp({"networks": [{"id": id}]}, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp resp_float = fakes.create_fake_json_resp({"floating_ip_pools": []}, 204) req_mock_float = mock.MagicMock() req_mock_float.get_response.return_value = resp_float m_rq.side_effect = [req_mock, req_mock_float] ret = self.helper.list_networks(None) self.assertEqual(1, ret.__len__())
def test_list_networks_with_no_public(self, m_t, m_rq): id = uuid.uuid4().hex resp = fakes.create_fake_json_resp({"networks": [{"id": id}]}, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp resp_float = fakes.create_fake_json_resp( {"floating_ip_pools": []}, 204 ) req_mock_float = mock.MagicMock() req_mock_float.get_response.return_value = resp_float m_rq.side_effect = [req_mock, req_mock_float] ret = self.helper.list_networks(None) self.assertEqual(1, ret.__len__())
def test_get_security_group(self, m_t, m_rq): tenant_id = fakes_nova.tenants["baz"]["id"] m_t.return_value = tenant_id sc_group = fakes_nova.security_groups[tenant_id][0] id = sc_group['id'] m_t.return_value = tenant_id resp = fakes_network.create_fake_json_resp( {"security_group": sc_group}, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m_rq.return_value = req_mock ret = self.helper.get_security_group_details(None, id) self.assertEqual(sc_group['id'], ret["id"]) self.assertEqual(sc_group['description'], ret["summary"]) occi_os_group = os_helpers.build_security_group_from_nova( fakes_nova.security_groups[tenant_id])[0] cont = 0 for r in ret["rules"]: self.assertEqual(occi_os_group['rules'][cont]['protocol'], r["protocol"]) self.assertEqual(occi_os_group['rules'][cont]['range'], r["range"]) self.assertEqual(occi_os_group['rules'][cont]['port'], r["port"]) self.assertEqual(occi_os_group['rules'][cont]['type'], r["type"]) cont += 1 m_rq.assert_called_with( None, method="GET", path="/%s/os-security-groups/%s" % (tenant_id, id), )
def test_get_security_group(self, m_t, m_rq): tenant_id = fakes_nova.tenants["baz"]["id"] m_t.return_value = tenant_id sc_group = fakes_nova.security_groups[tenant_id][0] id = sc_group['id'] m_t.return_value = tenant_id resp = fakes_network.create_fake_json_resp( {"security_group": sc_group}, 200 ) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m_rq.return_value = req_mock ret = self.helper.get_security_group_details(None, id) self.assertEqual(sc_group['id'], ret["id"]) self.assertEqual(sc_group['description'], ret["summary"]) occi_os_group = os_helpers.build_security_group_from_nova( fakes_nova.security_groups[tenant_id] )[0] cont = 0 for r in ret["rules"]: self.assertEqual( occi_os_group['rules'][cont]['protocol'], r["protocol"]) self.assertEqual( occi_os_group['rules'][cont]['range'], r["range"]) self.assertEqual( occi_os_group['rules'][cont]['port'], r["port"]) self.assertEqual( occi_os_group['rules'][cont]['type'], r["type"]) cont += 1 m_rq.assert_called_with( None, method="GET", path="/%s/os-security-groups/%s" % (tenant_id, id), )
def test_create_net(self, m_t, m_rq): tenant_id = uuid.uuid4().hex m_t.return_value = tenant_id name = "name_net" net_id = uuid.uuid4().hex cidr = "0.0.0.0" gateway = "0.0.0.1" parameters = {"label": name, "cidr": cidr, "gateway": gateway } resp = fakes_network.create_fake_json_resp( {"network": {"id": net_id, "label": name, "cidr": cidr, "gateway": gateway}}, 200 ) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m_rq.return_value = req_mock ret = self.helper.create_network(None, name=name, cidr=cidr, gateway=gateway, ) body = utils.make_body('network', parameters) m_rq.assert_called_with( None, method="POST", content_type='application/json', path="/%s/os-networks" % (tenant_id), body=json.dumps(body) ) self.assertEqual(cidr, ret['address']) self.assertEqual(name, ret['name']) self.assertEqual(gateway, ret['gateway']) self.assertEqual(net_id, ret['id'])
def test_create_resource_net_subnet(self, m): name = "name_net" net_id = uuid.uuid4().hex state = "ACTIVE" project = "project_id" ip_version = 4 cidr = "0.0.0.0" gate_way = "0.0.0.1" subnet_id = uuid.uuid4().hex parameters = { "occi.core.title": name, "occi.core.id": net_id, "occi.network.state": state, "X_PROJECT_ID": project, "occi.network.ip_version": ip_version, "occi.networkinterface.address": cidr, "occi.networkinterface.gateway": gate_way } resp = fakes.create_fake_json_resp( { "network": { "id": net_id }, "subnet": { "id": subnet_id } }, 201) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper.create_resource(None, 'networks', parameters) self.assertEqual(net_id, ret["id"]) ret2 = self.helper.create_resource(None, 'subnets', parameters) self.assertEqual(subnet_id, ret2["id"]) m.assert_called_with(None, "subnets", parameters)
def test_get_network(self, m_t, m_rq): id = uuid.uuid4().hex address = uuid.uuid4().hex gateway = uuid.uuid4().hex label = "network11" tenant_id = uuid.uuid4().hex m_t.return_value = tenant_id resp = fakes.create_fake_json_resp( { "network": { "id": id, "label": label, "cidr": address, "gateway": gateway } }, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m_rq.return_value = req_mock ret = self.helper.get_network_details(None, id) self.assertEqual(id, ret["id"]) self.assertEqual(address, ret["address"]) self.assertEqual(gateway, ret["gateway"]) self.assertEqual(label, ret["name"]) m_rq.assert_called_with( None, method="GET", path="/%s/os-networks/%s" % (tenant_id, id), )
def test_create_resource_net_subnet_req(self, m): name = "name_net" net_id = uuid.uuid4().hex state = "ACTIVE" project = "project_id" ip_version = uuid.uuid4().hex cidr = "0.0.0.0" gate_way = "0.0.0.1" subnet_id = uuid.uuid4().hex parameters = {"occi.core.title": name, "occi.core.id": net_id, "occi.network.state": state, "X_PROJECT_ID": project, "org.openstack.network.ip_version": ip_version, "occi.network.address": cidr, "occi.network.gateway": gate_way } resp = fakes.create_fake_json_resp( {"network": {"id": net_id}, "subnet": {"id": subnet_id}}, 201 ) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper.create_resource(None, 'networks', parameters) self.assertEqual(net_id, ret["id"]) ret2 = self.helper.create_resource(None, 'subnets', parameters) self.assertEqual(subnet_id, ret2["id"]) m.assert_called_with(None, path="/subnets", content_type="application/json", body=json.dumps(utils.make_body( "subnet", parameters)), method="POST")
def test_create_resource_net_subnet(self, m): name = "name_net" net_id = uuid.uuid4().hex state = "ACTIVE" project = "project_id" ip_version = 4 cidr = "0.0.0.0" gate_way = "0.0.0.1" subnet_id = uuid.uuid4().hex parameters = {"occi.core.title": name, "occi.core.id": net_id, "occi.network.state": state, "X_PROJECT_ID": project, "occi.network.ip_version": ip_version, "occi.networkinterface.address": cidr, "occi.networkinterface.gateway": gate_way } resp = fakes.create_fake_json_resp( {"network": {"id": net_id}, "subnet": {"id": subnet_id}}, 201 ) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper.create_resource(None, 'networks', parameters) self.assertEqual(net_id, ret["id"]) ret2 = self.helper.create_resource(None, 'subnets', parameters) self.assertEqual(subnet_id, ret2["id"]) m.assert_called_with(None, "subnets", parameters)
def test_get_network_public(self, m): id = 'PUBLIC' resp_get_public = fakes.create_fake_json_resp( {"networks": [{"status": "ACTIVE", "id": id}]}, 200) req_mock_public = mock.MagicMock() req_mock_public.get_response.return_value = resp_get_public resp = fakes.create_fake_json_resp( {"network": {"status": "ACTIVE", "id": id}}, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.side_effect = [req_mock_public, req_mock] ret = self.helper.get_network_details(None, id) self.assertEqual("active", ret["state"]) m.assert_called_with(None, method="GET", path="/networks/%s" % id, query_string=None)
def test_index(self, m): resp = fakes.create_fake_json_resp({"networks": ["FOO"]}, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper.list_resources(None, 'networks', None) self.assertEqual(["FOO"], ret) m.assert_called_with(None, "/networks", None)
def test_delete_network_resource_make_mock(self, m): resp = fakes.create_fake_json_resp({"network": []}, 204) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper.delete_resource(None, 'networks', 1) self.assertEqual(ret, []) m.assert_called_with(None, "/networks", 1)
def test_index3(self, m): id = uuid.uuid4().hex resp = fakes.create_fake_json_resp({"networks": [{"id": id}]}, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper.list_networks(None) self.assertEqual(id, ret[0]['id']) m.assert_called_with(None, "/networks", None)
def test_get_subnetwork(self, m): id = uuid.uuid4().hex resp = fakes.create_fake_json_resp({"subnet": ["FOO"]}, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper.get_resource(None, 'subnets', id) self.assertEqual(["FOO"], ret) m.assert_called_with(None, "/subnets/%s" % id)
def test_response_delete_network_resource(self, m): resp = fakes.create_fake_json_resp({"network": []}, 204) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock id = 1 ret = self.helper.delete_resource(None, 'networks', id) self.assertEqual(ret, []) m.assert_called_with(None, method="DELETE", path="/networks/1")
def test_get_subnetwork(self, m): id = uuid.uuid4().hex resp = fakes.create_fake_json_resp( {"subnet": ["FOO"]}, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper.get_resource(None, 'subnets', id) self.assertEqual(["FOO"], ret) m.assert_called_with(None, "/subnets/%s" % id)
def test_get_network(self, m): id = uuid.uuid4().hex resp = fakes.create_fake_json_resp( {"network": {"status": "ACTIVE", "id": id}}, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper.get_network_details(None, id) self.assertEqual("active", ret["state"]) m.assert_called_with(None, "/networks/%s" % id)
def test_create_security_group(self, m_t, m_rq): tenant_id = fakes_nova.tenants["baz"]["id"] m_t.return_value = tenant_id sc_group = fakes_nova.security_groups[tenant_id][0] occi_os_group = os_helpers.build_security_group_from_nova( fakes_nova.security_groups[tenant_id] )[0] resp = fakes_network.create_fake_json_resp( {"security_group": sc_group}, 200 ) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp resp_rule1 = fakes_network.create_fake_json_resp( {"security_group_rule": sc_group['rules'][0]}, 200 ) req_mock_rule1 = mock.MagicMock() req_mock_rule1.get_response.return_value = resp_rule1 resp_rule2 = fakes_network.create_fake_json_resp( {"security_group_rule": sc_group['rules'][1]}, 200 ) req_mock_rule2 = mock.MagicMock() req_mock_rule2.get_response.return_value = resp_rule2 m_rq.side_effect = [req_mock, req_mock_rule1, req_mock_rule2] ret = self.helper.create_security_group( None, name=occi_os_group['title'], description=occi_os_group['summary'], rules=occi_os_group['rules'] ) cont = 0 for r in ret["rules"]: self.assertEqual( occi_os_group['rules'][cont]['protocol'], r["protocol"] ) self.assertEqual( occi_os_group['rules'][cont]['range'], r["range"] ) self.assertEqual( occi_os_group['rules'][cont]['port'], r["port"]) self.assertEqual( occi_os_group['rules'][cont]['type'], r["type"]) cont += 1
def test_delete_networks(self, m): tenant = fakes.tenants["foo"] port_out = fakes.create_fake_json_resp( {"ports": fakes.ports[tenant['id']]}, 200) mock_port = mock.Mock(webob.Request) mock_port.get_response.return_value = port_out empty_out = fakes.create_fake_json_resp([], 204) mock_empty = mock.Mock(webob.Request) mock_empty.get_response.return_value = empty_out m.side_effect = [mock_port, mock_empty, mock_empty, mock_empty, mock_empty] for n in fakes.networks[tenant["id"]]: m.return_value = fakes.create_fake_json_resp( {"subnet": n["subnet_info"]}, 200) req = self._build_req(path="/network/%s" % n["id"], tenant_id='X', method="DELETE") resp = req.get_response(self.app) self.assertEqual(204, resp.status_code) self.assertDefaults(resp)
def test_show_networks(self, m): tenant = fakes.tenants["foo"] for n in fakes.networks[tenant["id"]]: net_out = fakes.create_fake_json_resp({"network": n}, 200) mock_net = mock.Mock(webob.Request) mock_net.get_response.return_value = net_out subnet_out = fakes.create_fake_json_resp( {"subnet": n["subnet_info"]}, 200) mock_subnet = mock.Mock(webob.Request) mock_subnet.get_response.return_value = subnet_out m.side_effect = [mock_net, mock_subnet] req = self._build_req(path="/network/%s" % n["id"], tenant_id='X', method="GET") resp = req.get_response(self.app) expected = fakes.build_occi_network(n) self.assertEqual(200, resp.status_code) self.assertDefaults(resp) self.assertExpectedResult(expected, resp)
def test_list_networks_empty(self, m): tenant = fakes.tenants["bar"] out = fakes.create_fake_json_resp( {"networks": fakes.networks[tenant['id']]}, 200) m.return_value.get_response.return_value = out req = self._build_req(path="/network", tenant_id='X', method="GET") resp = req.get_response(self.app) self.assertEqual(204, resp.status_code) expected_result = "" self.assertExpectedResult(expected_result, resp) self.assertDefaults(resp)
def test_delete_networks(self, m): tenant = fakes.tenants["foo"] empty_out = fakes.create_fake_json_resp([], 204) mock_empty = mock.Mock(webob.Request) mock_empty.get_response.return_value = empty_out for n in fakes.networks_nova[tenant["id"]]: m.side_effect = [mock_empty] req = self._build_req(path="/network/%s" % n["id"], tenant_id='X', method="DELETE") resp = req.get_response(self.app) self.assertEqual(204, resp.status_code) self.assertDefaults(resp)
def test_show_networks(self, m): tenant = fakes.tenants["foo"] for n in fakes.networks[tenant["id"]]: net_out = fakes.create_fake_json_resp( {"network": n}, 200) mock_net = mock.Mock(webob.Request) mock_net.get_response.return_value = net_out subnet_out = fakes.create_fake_json_resp( {"subnet": n["subnet_info"]}, 200) mock_subnet = mock.Mock(webob.Request) mock_subnet.get_response.return_value = subnet_out m.side_effect = [mock_net, mock_subnet] req = self._build_req(path="/network/%s" % n["id"], tenant_id='X', method="GET") resp = req.get_response(self.app) expected = fakes.build_occi_network(n) self.assertEqual(200, resp.status_code) self.assertDefaults(resp) self.assertExpectedResult(expected, resp)
def test_get_network(self, m): id = uuid.uuid4().hex resp = fakes.create_fake_json_resp( {"network": { "status": "ACTIVE", "id": id }}, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper.get_network_details(None, id) self.assertEqual("active", ret["state"]) m.assert_called_with(None, "/networks/%s" % id)
def test_delete_networks(self, m): tenant = fakes.tenants["foo"] empty_out = fakes.create_fake_json_resp( [], 204) mock_empty = mock.Mock(webob.Request) mock_empty.get_response.return_value = empty_out for n in fakes.networks_nova[tenant["id"]]: m.side_effect = [mock_empty] req = self._build_req(path="/network/%s" % n["id"], tenant_id='X', method="DELETE") resp = req.get_response(self.app) self.assertEqual(204, resp.status_code) self.assertDefaults(resp)
def test_get_network_public(self, m): id = 'PUBLIC' resp_get_public = fakes.create_fake_json_resp( {"networks": [{ "status": "ACTIVE", "id": id }]}, 200) req_mock_public = mock.MagicMock() req_mock_public.get_response.return_value = resp_get_public resp = fakes.create_fake_json_resp( {"network": { "status": "ACTIVE", "id": id }}, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.side_effect = [req_mock_public, req_mock] ret = self.helper.get_network_details(None, id) self.assertEqual("active", ret["state"]) m.assert_called_with(None, method="GET", path="/networks/%s" % id, query_string=None)
def test_create_server_security_link(self, mock_tenant, mock_req): tenant_id = fakes_nova.tenants["baz"]["id"] server_id = uuid.uuid4().hex sg_id = "baz" mock_tenant.return_value = tenant_id sc_group = fakes_nova.security_groups[tenant_id][0] resp_get = fakes_network.create_fake_json_resp( {"security_group": sc_group}, 200) req_mock_get = mock.MagicMock() req_mock_get.get_response.return_value = resp_get resp_create = fakes_network.create_fake_json_resp({}, 204) req_mock_cre = mock.MagicMock() req_mock_cre.get_response.return_value = resp_create mock_req.side_effect = [req_mock_get, req_mock_cre] ret = self.helper.create_server_security_link(None, server_id, sg_id) self.assertEqual([], ret) sg_name = sc_group["name"] mock_req.assert_called_with( None, method="POST", path="/%s/servers/%s/action" % (tenant_id, server_id), body='{"addSecurityGroup": {"name": "%s"}}' % sg_name, content_type='application/json')
def test_get_network_with_subnet(self, m): id = uuid.uuid4().hex address = uuid.uuid4().hex resp = fakes.create_fake_json_resp( {"network": {"status": "ACTIVE", "id": id, "subnets": [2]}, "subnet": {"cidr": address}}, 200 ) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper.get_network_details(None, id) self.assertEqual("active", ret["state"]) self.assertEqual(address, ret["address"]) m.assert_called_with(req_mock, "/subnets/2")
def test_get_network_with_subnet2(self, m): id = uuid.uuid4().hex address = '90349034' resp = fakes.create_fake_json_resp( {"network": {"status": "DOWN", "id": id, "subnets": [2]}, "subnet": {"cidr": address}}, 200 ) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper.get_network_details(None, id) self.assertEqual("inactive", ret["state"]) self.assertEqual(address, ret["address"]) m.assert_called_with(req_mock, method="GET", path="/subnets/2", query_string=None)
def test_list_networks(self, m): tenant = fakes.tenants["foo"] out = fakes.create_fake_json_resp( {"networks": fakes.networks[tenant['id']]}, 200) m.return_value.get_response.return_value = out req = self._build_req(path="/network", tenant_id='X', method="GET") resp = req.get_response(self.app) self.assertEqual(200, resp.status_code) expected = [] for s in fakes.networks[tenant["id"]]: expected.append(("X-OCCI-Location", utils.join_url(self.application_url + "/", "network/%s" % s["id"]))) self.assertDefaults(resp) self.assertExpectedResult(expected, resp)
def test_remove_router_interface(self, m): router_id = uuid.uuid4().hex subnet_id = uuid.uuid4().hex port_id = uuid.uuid4().hex resp = fakes.create_fake_json_resp( {"port_id": port_id, "subnet_id": subnet_id}, 201 ) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper._remove_router_interface(None, router_id, port_id) self.assertEqual(port_id, ret["port_id"]) self.assertEqual(subnet_id, ret["subnet_id"]) path = "/routers/%s/remove_router_interface" % router_id param = {"port_id": port_id} m.assert_called_with(None, path, param)
def test_get_list_with_public(self, m): id_public = uuid.uuid4().hex id_private = uuid.uuid4().hex net_private = {"status": "ACTIVE", "id": id_private} net_public = {"status": "ACTIVE", "id": id_public, 'router:external': True} resp = fakes.create_fake_json_resp({ "networks": [net_private, net_public]}, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper.list_networks(None) self.assertEqual(2, ret.__len__()) self.assertEqual(id_private, ret[0]['id']) self.assertEqual('PUBLIC', ret[1]['id']) m.assert_called_with(None, method="GET", path="/networks", query_string=None)
def test_create_only_network(self, m): name = "name_net" net_id = uuid.uuid4().hex state = "ACTIVE" project = "project_id" parameters = {"occi.core.title": name, "occi.core.id": net_id, "occi.network.state": state, "project": project, } resp = fakes.create_fake_json_resp( {"network": {"network_id": net_id}}, 201) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper.create_resource(None, 'networks', parameters) self.assertEqual(net_id, ret["network_id"]) m.assert_called_with(None, "networks", parameters)
def test_remove_router_interface(self, m): router_id = uuid.uuid4().hex subnet_id = uuid.uuid4().hex port_id = uuid.uuid4().hex resp = fakes.create_fake_json_resp( { "port_id": port_id, "subnet_id": subnet_id }, 201) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper._remove_router_interface(None, router_id, port_id) self.assertEqual(port_id, ret["port_id"]) self.assertEqual(subnet_id, ret["subnet_id"]) path = "/routers/%s/remove_router_interface" % router_id param = {"port_id": port_id} m.assert_called_with(None, path, param)
def test_list_security_groups(self, m_t, m_rq): tenant_id = fakes_nova.tenants["baz"]["id"] m_t.return_value = tenant_id sc_groups = fakes_nova.security_groups[tenant_id] resp = fakes_network.create_fake_json_resp( {"security_groups": sc_groups}, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m_rq.side_effect = [req_mock] ret = self.helper.list_security_groups(None) cont = 0 for sc in sc_groups: self.assertEqual(sc['id'], ret[cont]['id']) cont = cont + 1 self.assertEqual( {'method': 'GET', 'path': '/%s/os-security-groups' % (tenant_id)}, m_rq.call_args_list[0][1] )
def test_list_networks(self, m): tenant = fakes.tenants["foo"] out = fakes.create_fake_json_resp( {"networks": fakes.networks[tenant['id']]}, 200) m.return_value.get_response.return_value = out req = self._build_req(path="/network", tenant_id='X', method="GET") resp = req.get_response(self.app) self.assertEqual(200, resp.status_code) expected = [] for s in fakes.networks[tenant["id"]]: expected.append( ("X-OCCI-Location", utils.join_url(self.application_url + "/", "network/%s" % s["id"])) ) self.assertDefaults(resp) self.assertExpectedResult(expected, resp)
def test_list_security_groups(self, m_t, m_rq): tenant_id = fakes_nova.tenants["baz"]["id"] m_t.return_value = tenant_id sc_groups = fakes_nova.security_groups[tenant_id] resp = fakes_network.create_fake_json_resp( {"security_groups": sc_groups}, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m_rq.side_effect = [req_mock] ret = self.helper.list_security_groups(None) cont = 0 for sc in sc_groups: self.assertEqual(sc['id'], ret[cont]['id']) cont = cont + 1 self.assertEqual( { 'method': 'GET', 'path': '/%s/os-security-groups' % (tenant_id) }, m_rq.call_args_list[0][1])
def test_create_only_network(self, m): name = "name_net" net_id = uuid.uuid4().hex state = "ACTIVE" project = "project_id" parameters = { "occi.core.title": name, "occi.core.id": net_id, "occi.network.state": state, "project": project, } resp = fakes.create_fake_json_resp({"network": { "network_id": net_id }}, 201) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper.create_resource(None, 'networks', parameters) self.assertEqual(net_id, ret["network_id"]) m.assert_called_with(None, "networks", parameters)
def test_get_server_security_group(self, mock_tenant, mock_get): tenant_id = fakes_nova.tenants["baz"]["id"] server_id = uuid.uuid4().hex sc_group = fakes_nova.security_groups[tenant_id] mock_tenant.return_value = tenant_id resp = fakes_network.create_fake_json_resp( {"security_groups": sc_group}, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp mock_get.return_value = req_mock ret = self.helper._get_server_security_group(None, server_id) segroup = os_helpers.build_security_group_from_nova(sc_group) cont = 0 for s in segroup: self.assertEqual(s, ret[cont]) cont += 1 mock_get.assert_called_with( None, method="GET", path="/%s/servers/%s/os-security-groups" % (tenant_id, server_id), )
def test_get_network_with_subnet(self, m): id = uuid.uuid4().hex address = uuid.uuid4().hex resp = fakes.create_fake_json_resp( { "network": { "status": "ACTIVE", "id": id, "subnets": [2] }, "subnet": { "cidr": address } }, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper.get_network_details(None, id) self.assertEqual("active", ret["state"]) self.assertEqual(address, ret["address"]) m.assert_called_with(req_mock, "/subnets/2")
def test_create_resource_net_subnet_req(self, m): name = "name_net" net_id = uuid.uuid4().hex state = "ACTIVE" project = "project_id" ip_version = uuid.uuid4().hex cidr = "0.0.0.0" gate_way = "0.0.0.1" subnet_id = uuid.uuid4().hex parameters = { "occi.core.title": name, "occi.core.id": net_id, "occi.network.state": state, "X_PROJECT_ID": project, "org.openstack.network.ip_version": ip_version, "occi.network.address": cidr, "occi.network.gateway": gate_way } resp = fakes.create_fake_json_resp( { "network": { "id": net_id }, "subnet": { "id": subnet_id } }, 201) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper.create_resource(None, 'networks', parameters) self.assertEqual(net_id, ret["id"]) ret2 = self.helper.create_resource(None, 'subnets', parameters) self.assertEqual(subnet_id, ret2["id"]) m.assert_called_with(None, path="/subnets", content_type="application/json", body=json.dumps( utils.make_body("subnet", parameters)), method="POST")
def test_get_list_with_public(self, m): id_public = uuid.uuid4().hex id_private = uuid.uuid4().hex net_private = {"status": "ACTIVE", "id": id_private} net_public = { "status": "ACTIVE", "id": id_public, 'router:external': True } resp = fakes.create_fake_json_resp( {"networks": [net_private, net_public]}, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper.list_networks(None) self.assertEqual(2, ret.__len__()) self.assertEqual(id_private, ret[0]['id']) self.assertEqual('PUBLIC', ret[1]['id']) m.assert_called_with(None, method="GET", path="/networks", query_string=None)
def test_create_net(self, m_t, m_rq): tenant_id = uuid.uuid4().hex m_t.return_value = tenant_id name = "name_net" net_id = uuid.uuid4().hex cidr = "0.0.0.0" gateway = "0.0.0.1" parameters = {"label": name, "cidr": cidr, "gateway": gateway} resp = fakes.create_fake_json_resp( { "network": { "id": net_id, "label": name, "cidr": cidr, "gateway": gateway } }, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m_rq.return_value = req_mock ret = self.helper.create_network( None, name=name, cidr=cidr, gateway=gateway, ) body = utils.make_body('network', parameters) m_rq.assert_called_with(None, method="POST", content_type='application/json', path="/%s/os-networks" % (tenant_id), body=json.dumps(body)) self.assertEqual(cidr, ret['address']) self.assertEqual(name, ret['name']) self.assertEqual(gateway, ret['gateway']) self.assertEqual(net_id, ret['id'])
def test_get_server_security_group(self, mock_tenant, mock_get): tenant_id = fakes_nova.tenants["baz"]["id"] server_id = uuid.uuid4().hex sc_group = fakes_nova.security_groups[tenant_id] mock_tenant.return_value = tenant_id resp = fakes_network.create_fake_json_resp( {"security_groups": sc_group}, 200 ) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp mock_get.return_value = req_mock ret = self.helper._get_server_security_group(None, server_id) segroup = os_helpers.build_security_group_from_nova( sc_group ) cont = 0 for s in segroup: self.assertEqual(s, ret[cont]) cont += 1 mock_get.assert_called_with( None, method="GET", path="/%s/servers/%s/os-security-groups" % (tenant_id, server_id), )
def test_get_network_with_subnet2(self, m): id = uuid.uuid4().hex address = '90349034' resp = fakes.create_fake_json_resp( { "network": { "status": "DOWN", "id": id, "subnets": [2] }, "subnet": { "cidr": address } }, 200) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m.return_value = req_mock ret = self.helper.get_network_details(None, id) self.assertEqual("inactive", ret["state"]) self.assertEqual(address, ret["address"]) m.assert_called_with(req_mock, method="GET", path="/subnets/2", query_string=None)
def test_get_network(self, m_t, m_rq): id = uuid.uuid4().hex address = uuid.uuid4().hex gateway = uuid.uuid4().hex label = "network11" tenant_id = uuid.uuid4().hex m_t.return_value = tenant_id resp = fakes_network.create_fake_json_resp( {"network": {"id": id, "label": label, "cidr": address, "gateway": gateway}}, 200 ) req_mock = mock.MagicMock() req_mock.get_response.return_value = resp m_rq.return_value = req_mock ret = self.helper.get_network_details(None, id) self.assertEqual(id, ret["id"]) self.assertEqual(address, ret["address"]) self.assertEqual(gateway, ret["gateway"]) self.assertEqual(label, ret["name"]) m_rq.assert_called_with( None, method="GET", path="/%s/os-networks/%s" % (tenant_id, id), )
def test_create(self, m): tenant = fakes.tenants["foo"] net_out = fakes.create_fake_json_resp( {"network": fakes.networks_nova[tenant['id']][0]}, 200) mock_net = mock.Mock(webob.Request) mock_net.get_response.return_value = net_out m.side_effect = [mock_net] name = fakes.networks_nova[tenant["id"]][0]["label"] net_id = fakes.networks_nova[tenant["id"]][0]["id"] address = fakes.networks_nova[tenant["id"]][0]["cidr"] headers = { 'Category': 'network;' ' scheme=' '"http://schemas.ogf.org/occi/infrastructure#";' 'class="kind",' 'ipnetwork;' ' scheme=' '"http://schemas.ogf.org/occi/' 'infrastructure/network#";' 'class="mixin",', 'X-OCCI-Attribute': 'occi.core.title="%s",' 'occi.network.address="%s"' % (name, address) } req = self._build_req(path="/network", tenant_id='X', method="POST", headers=headers) m.return_value = fakes.networks_nova[tenant['id']][0] resp = req.get_response(self.app) self.assertEqual(200, resp.status_code) expected = [("X-OCCI-Location", utils.join_url(self.application_url + "/", "network/%s" % net_id))] self.assertExpectedResult(expected, resp)