How to use project_id method in tempest

Best Python code snippet using tempest_python

test_project.py

Source:test_project.py Github

copy

Full Screen

1# Copyright 2015 Google LLC2#3# Licensed under the Apache License, Version 2.0 (the "License");4# you may not use this file except in compliance with the License.5# You may obtain a copy of the License at6#7# http://www.apache.org/licenses/LICENSE-2.08#9# Unless required by applicable law or agreed to in writing, software10# distributed under the License is distributed on an "AS IS" BASIS,11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.12# See the License for the specific language governing permissions and13# limitations under the License.14import unittest15class TestProject(unittest.TestCase):16 @staticmethod17 def _get_target_class():18 from google.cloud.resource_manager.project import Project19 return Project20 def _make_one(self, *args, **kw):21 return self._get_target_class()(*args, **kw)22 def test_constructor_defaults(self):23 client = object()24 PROJECT_ID = 'project-id'25 project = self._make_one(PROJECT_ID, client)26 self.assertEqual(project.project_id, PROJECT_ID)27 self.assertEqual(project._client, client)28 self.assertIsNone(project.name)29 self.assertIsNone(project.number)30 self.assertEqual(project.labels, {})31 self.assertIsNone(project.status)32 self.assertIsNone(project.parent)33 def test_constructor_explicit(self):34 client = object()35 PROJECT_ID = 'project-id'36 DISPLAY_NAME = 'name'37 LABELS = {'foo': 'bar'}38 project = self._make_one(PROJECT_ID, client,39 name=DISPLAY_NAME, labels=LABELS)40 self.assertEqual(project.project_id, PROJECT_ID)41 self.assertEqual(project._client, client)42 self.assertEqual(project.name, DISPLAY_NAME)43 self.assertIsNone(project.number)44 self.assertEqual(project.labels, LABELS)45 self.assertIsNone(project.status)46 self.assertIsNone(project.parent)47 def test_from_api_repr(self):48 client = object()49 PROJECT_ID = 'project-id'50 PROJECT_NAME = 'My Project Name'51 PROJECT_NUMBER = 1234567852 PROJECT_LABELS = {'env': 'prod'}53 PROJECT_LIFECYCLE_STATE = 'ACTIVE'54 PARENT = {'type': 'organization', 'id': '433637338579'}55 resource = {'projectId': PROJECT_ID,56 'name': PROJECT_NAME,57 'projectNumber': PROJECT_NUMBER,58 'labels': PROJECT_LABELS,59 'lifecycleState': PROJECT_LIFECYCLE_STATE,60 'parent': PARENT}61 project = self._get_target_class().from_api_repr(resource, client)62 self.assertEqual(project.project_id, PROJECT_ID)63 self.assertEqual(project._client, client)64 self.assertEqual(project.name, PROJECT_NAME)65 self.assertEqual(project.number, PROJECT_NUMBER)66 self.assertEqual(project.labels, PROJECT_LABELS)67 self.assertEqual(project.status, PROJECT_LIFECYCLE_STATE)68 self.assertEqual(project.parent, PARENT)69 def test_full_name(self):70 PROJECT_ID = 'project-id'71 project = self._make_one(PROJECT_ID, None)72 self.assertEqual('projects/%s' % PROJECT_ID, project.full_name)73 def test_full_name_missing_id(self):74 project = self._make_one(None, None)75 with self.assertRaises(ValueError):76 self.assertIsNone(project.full_name)77 def test_path(self):78 PROJECT_ID = 'project-id'79 project = self._make_one(PROJECT_ID, None)80 self.assertEqual('/projects/%s' % PROJECT_ID, project.path)81 def test_create(self):82 PROJECT_ID = 'project-id'83 PROJECT_NUMBER = 12384 PROJECT_RESOURCE = {85 'projectId': PROJECT_ID,86 'projectNumber': PROJECT_NUMBER,87 'name': 'Project Name',88 'labels': {},89 'lifecycleState': 'ACTIVE',90 'parent': {91 'type': 'organization',92 'id': '433637338589',93 },94 }95 connection = _Connection(PROJECT_RESOURCE)96 client = _Client(connection=connection)97 project = self._make_one(PROJECT_ID, client)98 self.assertIsNone(project.number)99 project.create()100 self.assertEqual(project.number, PROJECT_NUMBER)101 request, = connection._requested102 expected_request = {103 'method': 'POST',104 'data': {105 'projectId': PROJECT_ID,106 'labels': {},107 'name': None,108 },109 'path': '/projects',110 }111 self.assertEqual(request, expected_request)112 def test_reload(self):113 PROJECT_ID = 'project-id'114 PROJECT_NUMBER = 123115 PROJECT_RESOURCE = {116 'projectId': PROJECT_ID,117 'projectNumber': PROJECT_NUMBER,118 'name': 'Project Name',119 'labels': {'env': 'prod'},120 'lifecycleState': 'ACTIVE',121 'parent': {122 'type': 'organization',123 'id': '433637338579',124 },125 }126 connection = _Connection(PROJECT_RESOURCE)127 client = _Client(connection=connection)128 project = self._make_one(PROJECT_ID, client)129 self.assertIsNone(project.number)130 self.assertIsNone(project.name)131 self.assertEqual(project.labels, {})132 self.assertIsNone(project.status)133 project.reload()134 self.assertEqual(project.name, PROJECT_RESOURCE['name'])135 self.assertEqual(project.number, PROJECT_NUMBER)136 self.assertEqual(project.labels, PROJECT_RESOURCE['labels'])137 self.assertEqual(project.status, PROJECT_RESOURCE['lifecycleState'])138 request, = connection._requested139 # NOTE: data is not in the request since a GET request.140 expected_request = {141 'method': 'GET',142 'path': project.path,143 }144 self.assertEqual(request, expected_request)145 def test_exists(self):146 PROJECT_ID = 'project-id'147 connection = _Connection({'projectId': PROJECT_ID})148 client = _Client(connection=connection)149 project = self._make_one(PROJECT_ID, client)150 self.assertTrue(project.exists())151 def test_exists_with_explicitly_passed_client(self):152 PROJECT_ID = 'project-id'153 connection = _Connection({'projectId': PROJECT_ID})154 client = _Client(connection=connection)155 project = self._make_one(PROJECT_ID, None)156 self.assertTrue(project.exists(client=client))157 def test_exists_with_missing_client(self):158 PROJECT_ID = 'project-id'159 project = self._make_one(PROJECT_ID, None)160 with self.assertRaises(AttributeError):161 project.exists()162 def test_exists_not_found(self):163 PROJECT_ID = 'project-id'164 connection = _Connection()165 client = _Client(connection=connection)166 project = self._make_one(PROJECT_ID, client)167 self.assertFalse(project.exists())168 def test_update(self):169 PROJECT_ID = 'project-id'170 PROJECT_NUMBER = 123171 PROJECT_NAME = 'Project Name'172 LABELS = {'env': 'prod'}173 PROJECT_RESOURCE = {174 'projectId': PROJECT_ID,175 'projectNumber': PROJECT_NUMBER,176 'name': PROJECT_NAME,177 'labels': LABELS,178 'lifecycleState': 'ACTIVE',179 }180 connection = _Connection(PROJECT_RESOURCE)181 client = _Client(connection=connection)182 project = self._make_one(PROJECT_ID, client)183 project.name = PROJECT_NAME184 project.labels = LABELS185 project.update()186 request, = connection._requested187 expected_request = {188 'method': 'PUT',189 'data': {190 'name': PROJECT_NAME,191 'labels': LABELS,192 'parent': None,193 },194 'path': project.path,195 }196 self.assertEqual(request, expected_request)197 def test_delete_without_reload_data(self):198 PROJECT_ID = 'project-id'199 PROJECT_NUMBER = 123200 PROJECT_RESOURCE = {201 'projectId': PROJECT_ID,202 'projectNumber': PROJECT_NUMBER,203 'name': 'Project Name',204 'labels': {'env': 'prod'},205 'lifecycleState': 'ACTIVE',206 'parent': {207 'type': 'organization',208 'id': '433637338579',209 },210 }211 connection = _Connection(PROJECT_RESOURCE)212 client = _Client(connection=connection)213 project = self._make_one(PROJECT_ID, client)214 project.delete(reload_data=False)215 request, = connection._requested216 # NOTE: data is not in the request since a DELETE request.217 expected_request = {218 'method': 'DELETE',219 'path': project.path,220 }221 self.assertEqual(request, expected_request)222 def test_delete_with_reload_data(self):223 PROJECT_ID = 'project-id'224 PROJECT_NUMBER = 123225 PROJECT_RESOURCE = {226 'projectId': PROJECT_ID,227 'projectNumber': PROJECT_NUMBER,228 'name': 'Project Name',229 'labels': {'env': 'prod'},230 'lifecycleState': 'ACTIVE',231 'parent': {232 'type': 'organization',233 'id': '433637338579',234 },235 }236 DELETING_PROJECT = PROJECT_RESOURCE.copy()237 DELETING_PROJECT['lifecycleState'] = NEW_STATE = 'DELETE_REQUESTED'238 connection = _Connection(PROJECT_RESOURCE, DELETING_PROJECT)239 client = _Client(connection=connection)240 project = self._make_one(PROJECT_ID, client)241 project.delete(reload_data=True)242 self.assertEqual(project.status, NEW_STATE)243 delete_request, get_request = connection._requested244 # NOTE: data is not in the request since a DELETE request.245 expected_delete_request = {246 'method': 'DELETE',247 'path': project.path,248 }249 self.assertEqual(delete_request, expected_delete_request)250 # NOTE: data is not in the request since a GET request.251 expected_get_request = {252 'method': 'GET',253 'path': project.path,254 }255 self.assertEqual(get_request, expected_get_request)256 def test_undelete_without_reload_data(self):257 PROJECT_ID = 'project-id'258 PROJECT_NUMBER = 123259 PROJECT_RESOURCE = {260 'projectId': PROJECT_ID,261 'projectNumber': PROJECT_NUMBER,262 'name': 'Project Name',263 'labels': {'env': 'prod'},264 'lifecycleState': 'DELETE_REQUESTED',265 'parent': {266 'type': 'organization',267 'id': '433637338579',268 },269 }270 connection = _Connection(PROJECT_RESOURCE)271 client = _Client(connection=connection)272 project = self._make_one(PROJECT_ID, client)273 project.undelete(reload_data=False)274 request, = connection._requested275 # NOTE: data is not in the request, undelete doesn't need it.276 expected_request = {277 'method': 'POST',278 'path': project.path + ':undelete',279 }280 self.assertEqual(request, expected_request)281 def test_undelete_with_reload_data(self):282 PROJECT_ID = 'project-id'283 PROJECT_NUMBER = 123284 PROJECT_RESOURCE = {285 'projectId': PROJECT_ID,286 'projectNumber': PROJECT_NUMBER,287 'name': 'Project Name',288 'labels': {'env': 'prod'},289 'lifecycleState': 'DELETE_REQUESTED',290 'parent': {291 'type': 'organization',292 'id': '433637338579',293 },294 }295 UNDELETED_PROJECT = PROJECT_RESOURCE.copy()296 UNDELETED_PROJECT['lifecycleState'] = NEW_STATE = 'ACTIVE'297 connection = _Connection(PROJECT_RESOURCE, UNDELETED_PROJECT)298 client = _Client(connection=connection)299 project = self._make_one(PROJECT_ID, client)300 project.undelete(reload_data=True)301 self.assertEqual(project.status, NEW_STATE)302 undelete_request, get_request = connection._requested303 # NOTE: data is not in the request, undelete doesn't need it.304 expected_undelete_request = {305 'method': 'POST',306 'path': project.path + ':undelete',307 }308 self.assertEqual(undelete_request, expected_undelete_request)309 # NOTE: data is not in the request since a GET request.310 expected_get_request = {311 'method': 'GET',312 'path': project.path,313 }314 self.assertEqual(get_request, expected_get_request)315class _Connection(object):316 def __init__(self, *responses):317 self._responses = responses318 self._requested = []319 def api_request(self, **kw):320 from google.cloud.exceptions import NotFound321 self._requested.append(kw)322 try:323 response, self._responses = self._responses[0], self._responses[1:]324 except IndexError:325 raise NotFound('miss')326 else:327 return response328class _Client(object):329 def __init__(self, connection=None):...

Full Screen

Full Screen

test_datastore_client_v1.py

Source:test_datastore_client_v1.py Github

copy

Full Screen

1# Copyright 2018 Google LLC2#3# Licensed under the Apache License, Version 2.0 (the "License");4# you may not use this file except in compliance with the License.5# You may obtain a copy of the License at6#7# https://www.apache.org/licenses/LICENSE-2.08#9# Unless required by applicable law or agreed to in writing, software10# distributed under the License is distributed on an "AS IS" BASIS,11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.12# See the License for the specific language governing permissions and13# limitations under the License.14"""Unit tests."""15import pytest16from google.cloud import datastore_v117from google.cloud.datastore_v1 import enums18from google.cloud.datastore_v1.proto import datastore_pb219from google.cloud.datastore_v1.proto import entity_pb220class MultiCallableStub(object):21 """Stub for the grpc.UnaryUnaryMultiCallable interface."""22 def __init__(self, method, channel_stub):23 self.method = method24 self.channel_stub = channel_stub25 def __call__(self, request, timeout=None, metadata=None, credentials=None):26 self.channel_stub.requests.append((self.method, request))27 response = None28 if self.channel_stub.responses:29 response = self.channel_stub.responses.pop()30 if isinstance(response, Exception):31 raise response32 if response:33 return response34class ChannelStub(object):35 """Stub for the grpc.Channel interface."""36 def __init__(self, responses=[]):37 self.responses = responses38 self.requests = []39 def unary_unary(self,40 method,41 request_serializer=None,42 response_deserializer=None):43 return MultiCallableStub(method, self)44class CustomException(Exception):45 pass46class TestDatastoreClient(object):47 def test_lookup(self):48 # Setup Expected Response49 expected_response = {}50 expected_response = datastore_pb2.LookupResponse(**expected_response)51 # Mock the API response52 channel = ChannelStub(responses=[expected_response])53 client = datastore_v1.DatastoreClient(channel=channel)54 # Setup Request55 project_id = 'projectId-1969970175'56 keys = []57 response = client.lookup(project_id, keys)58 assert expected_response == response59 assert len(channel.requests) == 160 expected_request = datastore_pb2.LookupRequest(61 project_id=project_id, keys=keys)62 actual_request = channel.requests[0][1]63 assert expected_request == actual_request64 def test_lookup_exception(self):65 # Mock the API response66 channel = ChannelStub(responses=[CustomException()])67 client = datastore_v1.DatastoreClient(channel=channel)68 # Setup request69 project_id = 'projectId-1969970175'70 keys = []71 with pytest.raises(CustomException):72 client.lookup(project_id, keys)73 def test_run_query(self):74 # Setup Expected Response75 expected_response = {}76 expected_response = datastore_pb2.RunQueryResponse(**expected_response)77 # Mock the API response78 channel = ChannelStub(responses=[expected_response])79 client = datastore_v1.DatastoreClient(channel=channel)80 # Setup Request81 project_id = 'projectId-1969970175'82 partition_id = {}83 response = client.run_query(project_id, partition_id)84 assert expected_response == response85 assert len(channel.requests) == 186 expected_request = datastore_pb2.RunQueryRequest(87 project_id=project_id, partition_id=partition_id)88 actual_request = channel.requests[0][1]89 assert expected_request == actual_request90 def test_run_query_exception(self):91 # Mock the API response92 channel = ChannelStub(responses=[CustomException()])93 client = datastore_v1.DatastoreClient(channel=channel)94 # Setup request95 project_id = 'projectId-1969970175'96 partition_id = {}97 with pytest.raises(CustomException):98 client.run_query(project_id, partition_id)99 def test_begin_transaction(self):100 # Setup Expected Response101 transaction = b'-34'102 expected_response = {'transaction': transaction}103 expected_response = datastore_pb2.BeginTransactionResponse(104 **expected_response)105 # Mock the API response106 channel = ChannelStub(responses=[expected_response])107 client = datastore_v1.DatastoreClient(channel=channel)108 # Setup Request109 project_id = 'projectId-1969970175'110 response = client.begin_transaction(project_id)111 assert expected_response == response112 assert len(channel.requests) == 1113 expected_request = datastore_pb2.BeginTransactionRequest(114 project_id=project_id)115 actual_request = channel.requests[0][1]116 assert expected_request == actual_request117 def test_begin_transaction_exception(self):118 # Mock the API response119 channel = ChannelStub(responses=[CustomException()])120 client = datastore_v1.DatastoreClient(channel=channel)121 # Setup request122 project_id = 'projectId-1969970175'123 with pytest.raises(CustomException):124 client.begin_transaction(project_id)125 def test_commit(self):126 # Setup Expected Response127 index_updates = 1425228195128 expected_response = {'index_updates': index_updates}129 expected_response = datastore_pb2.CommitResponse(**expected_response)130 # Mock the API response131 channel = ChannelStub(responses=[expected_response])132 client = datastore_v1.DatastoreClient(channel=channel)133 # Setup Request134 project_id = 'projectId-1969970175'135 mode = enums.CommitRequest.Mode.MODE_UNSPECIFIED136 mutations = []137 response = client.commit(project_id, mode, mutations)138 assert expected_response == response139 assert len(channel.requests) == 1140 expected_request = datastore_pb2.CommitRequest(141 project_id=project_id, mode=mode, mutations=mutations)142 actual_request = channel.requests[0][1]143 assert expected_request == actual_request144 def test_commit_exception(self):145 # Mock the API response146 channel = ChannelStub(responses=[CustomException()])147 client = datastore_v1.DatastoreClient(channel=channel)148 # Setup request149 project_id = 'projectId-1969970175'150 mode = enums.CommitRequest.Mode.MODE_UNSPECIFIED151 mutations = []152 with pytest.raises(CustomException):153 client.commit(project_id, mode, mutations)154 def test_rollback(self):155 # Setup Expected Response156 expected_response = {}157 expected_response = datastore_pb2.RollbackResponse(**expected_response)158 # Mock the API response159 channel = ChannelStub(responses=[expected_response])160 client = datastore_v1.DatastoreClient(channel=channel)161 # Setup Request162 project_id = 'projectId-1969970175'163 transaction = b'-34'164 response = client.rollback(project_id, transaction)165 assert expected_response == response166 assert len(channel.requests) == 1167 expected_request = datastore_pb2.RollbackRequest(168 project_id=project_id, transaction=transaction)169 actual_request = channel.requests[0][1]170 assert expected_request == actual_request171 def test_rollback_exception(self):172 # Mock the API response173 channel = ChannelStub(responses=[CustomException()])174 client = datastore_v1.DatastoreClient(channel=channel)175 # Setup request176 project_id = 'projectId-1969970175'177 transaction = b'-34'178 with pytest.raises(CustomException):179 client.rollback(project_id, transaction)180 def test_allocate_ids(self):181 # Setup Expected Response182 expected_response = {}183 expected_response = datastore_pb2.AllocateIdsResponse(184 **expected_response)185 # Mock the API response186 channel = ChannelStub(responses=[expected_response])187 client = datastore_v1.DatastoreClient(channel=channel)188 # Setup Request189 project_id = 'projectId-1969970175'190 keys = []191 response = client.allocate_ids(project_id, keys)192 assert expected_response == response193 assert len(channel.requests) == 1194 expected_request = datastore_pb2.AllocateIdsRequest(195 project_id=project_id, keys=keys)196 actual_request = channel.requests[0][1]197 assert expected_request == actual_request198 def test_allocate_ids_exception(self):199 # Mock the API response200 channel = ChannelStub(responses=[CustomException()])201 client = datastore_v1.DatastoreClient(channel=channel)202 # Setup request203 project_id = 'projectId-1969970175'204 keys = []205 with pytest.raises(CustomException):206 client.allocate_ids(project_id, keys)207 def test_reserve_ids(self):208 # Setup Expected Response209 expected_response = {}210 expected_response = datastore_pb2.ReserveIdsResponse(211 **expected_response)212 # Mock the API response213 channel = ChannelStub(responses=[expected_response])214 client = datastore_v1.DatastoreClient(channel=channel)215 # Setup Request216 project_id = 'projectId-1969970175'217 keys = []218 response = client.reserve_ids(project_id, keys)219 assert expected_response == response220 assert len(channel.requests) == 1221 expected_request = datastore_pb2.ReserveIdsRequest(222 project_id=project_id, keys=keys)223 actual_request = channel.requests[0][1]224 assert expected_request == actual_request225 def test_reserve_ids_exception(self):226 # Mock the API response227 channel = ChannelStub(responses=[CustomException()])228 client = datastore_v1.DatastoreClient(channel=channel)229 # Setup request230 project_id = 'projectId-1969970175'231 keys = []232 with pytest.raises(CustomException):...

Full Screen

Full Screen

project.py

Source:project.py Github

copy

Full Screen

1# vim: tabstop=4 shiftwidth=4 softtabstop=42# Copyright 2010 United States Government as represented by the3# Administrator of the National Aeronautics and Space Administration.4# All Rights Reserved.5#6# Licensed under the Apache License, Version 2.0 (the "License"); you may7# not use this file except in compliance with the License. You may obtain8# a copy of the License at9#10# http://www.apache.org/licenses/LICENSE-2.011#12# Unless required by applicable law or agreed to in writing, software13# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT14# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the15# License for the specific language governing permissions and limitations16# under the License.17"""18URL patterns for managing Nova projects.19"""20from django.conf.urls.defaults import *21urlpatterns = patterns('',22 url(r'^(?P<project_id>[^/]+)/$',23 'django_openstack.nova.views.projects.detail',24 name='nova_project'),25 url(r'^(?P<project_id>[^/]+)/manage/(?P<username>[^/]+)/',26 'django_openstack.nova.views.projects.edit_user',27 name='nova_project_edit_user'),28 url(r'^(?P<project_id>[^/]+)/manage$',29 'django_openstack.nova.views.projects.manage',30 name='nova_project_manage'),31 url(r'^(?P<project_id>[^/]+)/download/credentials$',32 'django_openstack.nova.views.projects.download_credentials',33 name='nova_download_credentials'),34 url(r'^(?P<project_id>[^/]+)/images$',35 'django_openstack.nova.views.images.index',36 name='nova_images'),37 url(r'^(?P<project_id>[^/]+)/images/(?P<image_id>[^/]+)/launch$',38 'django_openstack.nova.views.images.launch',39 name='nova_images_launch'),40 url(r'^(?P<project_id>[^/]+)/images/(?P<image_id>[^/]+)/remove$',41 'django_openstack.nova.views.images.remove',42 name='nova_images_remove'),43 url(r'^(?P<project_id>[^/]+)/images/(?P<image_id>[^/]+)/update$',44 'django_openstack.nova.views.images.update',45 name='nova_images_update'),46 url(r'^(?P<project_id>[^/]+)/images/(?P<image_id>[^/]+)/detail$',47 'django_openstack.nova.views.images.detail',48 name='nova_images_detail'),49 url(r'^(?P<project_id>[^/]+)/images/(?P<image_id>[^/]+)$',50 'django_openstack.nova.views.images.privacy',51 name='nova_images_privacy'),52 url(r'^(?P<project_id>[^/]+)/instances$',53 'django_openstack.nova.views.instances.index',54 name='nova_instances'),55 url(r'^(?P<project_id>[^/]+)/instances/refresh$',56 'django_openstack.nova.views.instances.refresh',57 name='nova_instances_refresh'),58 url(r'^(?P<project_id>[^/]+)/instances/(?P<instance_id>[^/]+)/refresh$',59 'django_openstack.nova.views.instances.refresh_detail',60 name='nova_instances_refresh_detail'),61 url(r'^(?P<project_id>[^/]+)/instances/terminate$',62 'django_openstack.nova.views.instances.terminate',63 name='nova_instances_terminate'),64 url(r'^(?P<project_id>[^/]+)/instances/(?P<instance_id>[^/]+)$',65 'django_openstack.nova.views.instances.detail',66 name='nova_instances_detail'),67 url(r'^(?P<project_id>[^/]+)/instances/(?P<instance_id>[^/]+)/performance$',68 'django_openstack.nova.views.instances.performance',69 name='nova_instances_performance'),70 url(r'^(?P<project_id>[^/]+)/instances/(?P<instance_id>[^/]+)/console$',71 'django_openstack.nova.views.instances.console',72 name='nova_instances_console'),73 url(r'^(?P<project_id>[^/]+)/instances/(?P<instance_id>[^/]+)/vnc$',74 'django_openstack.nova.views.instances.vnc',75 name='nova_instances_vnc'),76 url(r'^(?P<project_id>[^/]+)/instances/(?P<instance_id>.*)/update$',77 'django_openstack.nova.views.instances.update',78 name='nova_instance_update'),79 url(r'^(?P<project_id>[^/]+)/instances/(?P<instance_id>[^/]+)/graph/(?P<graph_name>[^/]+)$',80 'django_openstack.nova.views.instances.graph',81 name='nova_instances_graph'),82 url(r'^(?P<project_id>[^/]+)/keys$',83 'django_openstack.nova.views.keypairs.index',84 name='nova_keypairs'),85 url(r'^(?P<project_id>[^/]+)/keys/add$',86 'django_openstack.nova.views.keypairs.add',87 name='nova_keypairs_add'),88 url(r'^(?P<project_id>[^/]+)/keys/delete$',89 'django_openstack.nova.views.keypairs.delete',90 name='nova_keypairs_delete'),91 url(r'^(?P<project_id>[^/]+)/keys/(?P<key_name>.*)/download$',92 'django_openstack.nova.views.keypairs.download',93 name='nova_keypairs_download'),94 url(r'^(?P<project_id>[^/]+)/securitygroups/$',95 'django_openstack.nova.views.securitygroups.index',96 name='nova_securitygroups'),97 url(r'^(?P<project_id>[^/]+)/securitygroups/add$',98 'django_openstack.nova.views.securitygroups.add',99 name='nova_securitygroups_add'),100 url(r'^(?P<project_id>[^/]+)/securitygroups/(?P<group_name>[^/]+)$',101 'django_openstack.nova.views.securitygroups.detail',102 name='nova_securitygroups_detail'),103 url(r'^(?P<project_id>[^/]+)/securitygroups/(?P<group_name>[^/]+)/authorize/$',104 'django_openstack.nova.views.securitygroups.authorize',105 name='nova_securitygroups_authorize'),106 url(r'^(?P<project_id>[^/]+)/securitygroups/(?P<group_name>[^/]+)/delete/$',107 'django_openstack.nova.views.securitygroups.delete',108 name='nova_securitygroups_delete'),109 url(r'^(?P<project_id>[^/]+)/securitygroups/(?P<group_name>.*)/revoke/$',110 'django_openstack.nova.views.securitygroups.revoke',111 name='nova_securitygroups_revoke'),112 url(r'^(?P<project_id>[^/]+)/volumes/$',113 'django_openstack.nova.views.volumes.index',114 name='nova_volumes'),115 url(r'^(?P<project_id>[^/]+)/volumes/add$',116 'django_openstack.nova.views.volumes.add',117 name='nova_volumes_add'),118 url(r'^(?P<project_id>[^/]+)/volumes/attach$',119 'django_openstack.nova.views.volumes.attach',120 name='nova_volumes_attach'),121 url(r'^(?P<project_id>[^/]+)/volumes/(?P<volume_id>[^/]+)/detach$',122 'django_openstack.nova.views.volumes.detach',123 name='nova_volumes_detach'),124 url(r'^(?P<project_id>[^/]+)/volumes/(?P<volume_id>[^/]+)/delete$',125 'django_openstack.nova.views.volumes.delete',126 name='nova_volumes_delete'),127 url(r'^(?P<project_id>[^/]+)/floatingips$',128 'django_openstack.nova.views.floatingips.index',129 name='nova_floatingips'),130 url(r'^(?P<project_id>[^/]+)/floatingips/allocate$',131 'django_openstack.nova.views.floatingips.allocate',132 name='nova_floatingips_allocate'),133 url(r'^(?P<project_id>[^/]+)/floatingips/(?P<floating_ip>[^/]+)/release$',134 'django_openstack.nova.views.floatingips.release',135 name='nova_floatingips_release'),136 url(r'^(?P<project_id>[^/]+)/floatingips/associate$',137 'django_openstack.nova.views.floatingips.associate',138 name='nova_floatingips_associate'),139 url(r'^(?P<project_id>[^/]+)/floatingips/(?P<floating_ip>[^/]+)/disassociate$',140 'django_openstack.nova.views.floatingips.disassociate',141 name='nova_floatingips_disassociate'),...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run tempest automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful