Add return-request-id-to-caller function(3/5)
Add return-request-id-to-caller function to resources and resource managers in the following files. The methods in the resource class and resource manager return a wrapper class that has 'request_ids' property. The caller can get request ids of the callee via the property. * novaclient/v2/keypairs.py * novaclient/v2/limits.py * novaclient/v2/networks.py * novaclient/v2/quota_classes.py * novaclient/v2/quotas.py * novaclient/v2/security_group_default_rules.py * novaclient/v2/security_group_rules.py * novaclient/v2/security_groups.py * novaclient/v2/server_groups.py * novaclient/v2/services.py * novaclient/v2/usage.py * novaclient/v2/versions.py Co-authored-by: Ankit Agrawal <ankit11.agrawal@nttdata.com> Change-Id: I9203f70a0eef5686b590fbff35563f2cf8b6f586 Implements: blueprint return-request-id-to-caller
This commit is contained in:
parent
0799238648
commit
0414bab3d3
@ -24,7 +24,7 @@ class V1(base.Fixture):
|
||||
super(V1, self).setUp()
|
||||
keypair = {'fingerprint': 'FAKE_KEYPAIR', 'name': 'test'}
|
||||
|
||||
headers = {'Content-Type': 'application/json'}
|
||||
headers = self.json_headers
|
||||
|
||||
self.requests.register_uri('GET', self.url(),
|
||||
json={'keypairs': [keypair]},
|
||||
@ -34,7 +34,8 @@ class V1(base.Fixture):
|
||||
json={'keypair': keypair},
|
||||
headers=headers)
|
||||
|
||||
self.requests.register_uri('DELETE', self.url('test'), status_code=202)
|
||||
self.requests.register_uri('DELETE', self.url('test'), status_code=202,
|
||||
headers=headers)
|
||||
|
||||
def post_os_keypairs(request, context):
|
||||
body = jsonutils.loads(request.body)
|
||||
|
@ -74,7 +74,7 @@ class Fixture(base.Fixture):
|
||||
},
|
||||
}
|
||||
|
||||
headers = {'Content-Type': 'application/json'}
|
||||
headers = self.json_headers
|
||||
self.requests.register_uri('GET', self.url(),
|
||||
json=get_limits,
|
||||
headers=headers)
|
||||
|
@ -33,7 +33,7 @@ class Fixture(base.Fixture):
|
||||
]
|
||||
}
|
||||
|
||||
headers = {'Content-Type': 'application/json'}
|
||||
headers = self.json_headers
|
||||
|
||||
self.requests.register_uri('GET', self.url(),
|
||||
json=get_os_networks,
|
||||
@ -55,8 +55,10 @@ class Fixture(base.Fixture):
|
||||
|
||||
self.requests.register_uri('DELETE',
|
||||
self.url('networkdelete'),
|
||||
status_code=202)
|
||||
status_code=202,
|
||||
headers=headers)
|
||||
|
||||
for u in ('add', 'networkdisassociate/action', 'networktest/action',
|
||||
'1/action', '2/action'):
|
||||
self.requests.register_uri('POST', self.url(u), status_code=202)
|
||||
self.requests.register_uri('POST', self.url(u), status_code=202,
|
||||
headers=headers)
|
||||
|
@ -23,7 +23,7 @@ class V1(base.Fixture):
|
||||
uuid = '97f4c221-bff4-4578-b030-0df4ef119353'
|
||||
uuid2 = '97f4c221bff44578b0300df4ef119353'
|
||||
test_json = {'quota_set': self.test_quota('test')}
|
||||
self.headers = {'Content-Type': 'application/json'}
|
||||
self.headers = self.json_headers
|
||||
|
||||
for u in ('test', 'tenant-id', 'tenant-id/defaults',
|
||||
'%s/defaults' % uuid2):
|
||||
@ -47,7 +47,8 @@ class V1(base.Fixture):
|
||||
headers=self.headers)
|
||||
|
||||
for u in ('test', uuid2):
|
||||
self.requests.register_uri('DELETE', self.url(u), status_code=202)
|
||||
self.requests.register_uri('DELETE', self.url(u), status_code=202,
|
||||
headers=self.headers)
|
||||
|
||||
def test_quota(self, tenant_id='test'):
|
||||
return {
|
||||
|
@ -33,14 +33,15 @@ class Fixture(base.Fixture):
|
||||
'cidr': '10.0.0.0/8'
|
||||
}
|
||||
|
||||
headers = {'Content-Type': 'application/json'}
|
||||
headers = self.json_headers
|
||||
|
||||
self.requests.register_uri('GET', self.url(),
|
||||
json={'security_group_rules': [rule]},
|
||||
headers=headers)
|
||||
|
||||
for u in (1, 11, 12):
|
||||
self.requests.register_uri('DELETE', self.url(u), status_code=202)
|
||||
self.requests.register_uri('DELETE', self.url(u), status_code=202,
|
||||
headers=headers)
|
||||
|
||||
def post_rules(request, context):
|
||||
body = jsonutils.loads(request.body)
|
||||
|
@ -62,7 +62,7 @@ class Fixture(base.Fixture):
|
||||
}
|
||||
|
||||
get_groups = {'security_groups': [security_group_1, security_group_2]}
|
||||
headers = {'Content-Type': 'application/json'}
|
||||
headers = self.json_headers
|
||||
|
||||
self.requests.register_uri('GET', self.url(),
|
||||
json=get_groups,
|
||||
@ -73,7 +73,8 @@ class Fixture(base.Fixture):
|
||||
json=get_group_1,
|
||||
headers=headers)
|
||||
|
||||
self.requests.register_uri('DELETE', self.url(1), status_code=202)
|
||||
self.requests.register_uri('DELETE', self.url(1), status_code=202,
|
||||
headers=headers)
|
||||
|
||||
def post_os_security_groups(request, context):
|
||||
body = jsonutils.loads(request.body)
|
||||
|
@ -52,7 +52,7 @@ class Fixture(base.Fixture):
|
||||
}
|
||||
]
|
||||
|
||||
headers = {'Content-Type': 'application/json'}
|
||||
headers = self.json_headers
|
||||
|
||||
self.requests.register_uri('GET', self.url(),
|
||||
json={'server_groups': server_groups},
|
||||
@ -62,7 +62,8 @@ class Fixture(base.Fixture):
|
||||
server_j = jsonutils.dumps({'server_group': server})
|
||||
|
||||
def _register(method, *args):
|
||||
self.requests.register_uri(method, self.url(*args), text=server_j)
|
||||
self.requests.register_uri(method, self.url(*args), text=server_j,
|
||||
headers=headers)
|
||||
|
||||
_register('POST')
|
||||
_register('POST', server['id'])
|
||||
@ -71,4 +72,4 @@ class Fixture(base.Fixture):
|
||||
_register('POST', server['id'], '/action')
|
||||
|
||||
self.requests.register_uri('DELETE', self.url(server['id']),
|
||||
status_code=202)
|
||||
status_code=202, headers=headers)
|
||||
|
@ -151,7 +151,7 @@ class FakeHTTPClient(base_client.HTTPClient):
|
||||
"http://nova-api:8774/v2.1/190a755eef2e4aac9f06aa6be9786385")
|
||||
|
||||
def get_versions(self):
|
||||
return (200, {}, {
|
||||
return (200, FAKE_RESPONSE_HEADERS, {
|
||||
"versions": [
|
||||
{"status": "SUPPORTED", "updated": "2011-01-21T11:33:21Z",
|
||||
"links": [{"href": "http://nova-api:8774/v2/",
|
||||
@ -208,7 +208,7 @@ class FakeHTTPClient(base_client.HTTPClient):
|
||||
raise AssertionError(
|
||||
"Unknown endpoint_type:%s" % self.endpoint_type)
|
||||
|
||||
return (200, {}, versions[endpoint])
|
||||
return (200, FAKE_RESPONSE_HEADERS, versions[endpoint])
|
||||
|
||||
#
|
||||
# agents
|
||||
@ -1402,7 +1402,7 @@ class FakeHTTPClient(base_client.HTTPClient):
|
||||
#
|
||||
|
||||
def get_os_quota_class_sets_test(self, **kw):
|
||||
return (200, {}, {
|
||||
return (200, FAKE_RESPONSE_HEADERS, {
|
||||
'quota_class_set': {
|
||||
'id': 'test',
|
||||
'metadata_items': 1,
|
||||
@ -1589,7 +1589,7 @@ class FakeHTTPClient(base_client.HTTPClient):
|
||||
# Tenant Usage
|
||||
#
|
||||
def get_os_simple_tenant_usage(self, **kw):
|
||||
return (200, {},
|
||||
return (200, FAKE_RESPONSE_HEADERS,
|
||||
{six.u('tenant_usages'): [{
|
||||
six.u('total_memory_mb_usage'): 25451.762807466665,
|
||||
six.u('total_vcpus_usage'): 49.71047423333333,
|
||||
@ -1615,7 +1615,7 @@ class FakeHTTPClient(base_client.HTTPClient):
|
||||
six.u('total_local_gb_usage'): 0.0}]})
|
||||
|
||||
def get_os_simple_tenant_usage_tenantfoo(self, **kw):
|
||||
return (200, {},
|
||||
return (200, FAKE_RESPONSE_HEADERS,
|
||||
{six.u('tenant_usage'): {
|
||||
six.u('total_memory_mb_usage'): 25451.762807466665,
|
||||
six.u('total_vcpus_usage'): 49.71047423333333,
|
||||
@ -1756,44 +1756,47 @@ class FakeHTTPClient(base_client.HTTPClient):
|
||||
def get_os_services(self, **kw):
|
||||
host = kw.get('host', 'host1')
|
||||
binary = kw.get('binary', 'nova-compute')
|
||||
return (200, {}, {'services': [{'binary': binary,
|
||||
'host': host,
|
||||
'zone': 'nova',
|
||||
'status': 'enabled',
|
||||
'state': 'up',
|
||||
'updated_at': datetime.datetime(
|
||||
2012, 10, 29, 13, 42, 2)},
|
||||
{'binary': binary,
|
||||
'host': host,
|
||||
'zone': 'nova',
|
||||
'status': 'disabled',
|
||||
'state': 'down',
|
||||
'updated_at': datetime.datetime(
|
||||
2012, 9, 18, 8, 3, 38)},
|
||||
]})
|
||||
return (200, FAKE_RESPONSE_HEADERS,
|
||||
{'services': [{'binary': binary,
|
||||
'host': host,
|
||||
'zone': 'nova',
|
||||
'status': 'enabled',
|
||||
'state': 'up',
|
||||
'updated_at': datetime.datetime(
|
||||
2012, 10, 29, 13, 42, 2)},
|
||||
{'binary': binary,
|
||||
'host': host,
|
||||
'zone': 'nova',
|
||||
'status': 'disabled',
|
||||
'state': 'down',
|
||||
'updated_at': datetime.datetime(
|
||||
2012, 9, 18, 8, 3, 38)},
|
||||
]})
|
||||
|
||||
def put_os_services_enable(self, body, **kw):
|
||||
return (200, {}, {'service': {'host': body['host'],
|
||||
'binary': body['binary'],
|
||||
'status': 'enabled'}})
|
||||
return (200, FAKE_RESPONSE_HEADERS,
|
||||
{'service': {'host': body['host'],
|
||||
'binary': body['binary'],
|
||||
'status': 'enabled'}})
|
||||
|
||||
def put_os_services_disable(self, body, **kw):
|
||||
return (200, {}, {'service': {'host': body['host'],
|
||||
'binary': body['binary'],
|
||||
'status': 'disabled'}})
|
||||
return (200, FAKE_RESPONSE_HEADERS,
|
||||
{'service': {'host': body['host'],
|
||||
'binary': body['binary'],
|
||||
'status': 'disabled'}})
|
||||
|
||||
def put_os_services_disable_log_reason(self, body, **kw):
|
||||
return (200, {}, {'service': {
|
||||
return (200, FAKE_RESPONSE_HEADERS, {'service': {
|
||||
'host': body['host'],
|
||||
'binary': body['binary'],
|
||||
'status': 'disabled',
|
||||
'disabled_reason': body['disabled_reason']}})
|
||||
|
||||
def delete_os_services_1(self, **kw):
|
||||
return (204, {}, None)
|
||||
return (204, FAKE_RESPONSE_HEADERS, None)
|
||||
|
||||
def put_os_services_force_down(self, body, **kw):
|
||||
return (200, {}, {'service': {
|
||||
return (200, FAKE_RESPONSE_HEADERS, {'service': {
|
||||
'host': body['host'],
|
||||
'binary': body['binary'],
|
||||
'forced_down': False}})
|
||||
|
@ -15,6 +15,7 @@ from novaclient import api_versions
|
||||
from novaclient.tests.unit.fixture_data import client
|
||||
from novaclient.tests.unit.fixture_data import keypairs as data
|
||||
from novaclient.tests.unit import utils
|
||||
from novaclient.tests.unit.v2 import fakes
|
||||
from novaclient.v2 import keypairs
|
||||
|
||||
|
||||
@ -36,23 +37,28 @@ class KeypairsTest(utils.FixturedTestCase):
|
||||
|
||||
def test_get_keypair(self):
|
||||
kp = self.cs.keypairs.get('test')
|
||||
self.assert_request_id(kp, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('GET', '/%s/test' % self.keypair_prefix)
|
||||
self.assertIsInstance(kp, keypairs.Keypair)
|
||||
self.assertEqual('test', kp.name)
|
||||
|
||||
def test_list_keypairs(self):
|
||||
kps = self.cs.keypairs.list()
|
||||
self.assert_request_id(kps, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('GET', '/%s' % self.keypair_prefix)
|
||||
for kp in kps:
|
||||
self.assertIsInstance(kp, keypairs.Keypair)
|
||||
|
||||
def test_delete_keypair(self):
|
||||
kp = self.cs.keypairs.list()[0]
|
||||
kp.delete()
|
||||
ret = kp.delete()
|
||||
self.assert_request_id(ret, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('DELETE', '/%s/test' % self.keypair_prefix)
|
||||
self.cs.keypairs.delete('test')
|
||||
ret = self.cs.keypairs.delete('test')
|
||||
self.assert_request_id(ret, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('DELETE', '/%s/test' % self.keypair_prefix)
|
||||
self.cs.keypairs.delete(kp)
|
||||
ret = self.cs.keypairs.delete(kp)
|
||||
self.assert_request_id(ret, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('DELETE', '/%s/test' % self.keypair_prefix)
|
||||
|
||||
|
||||
@ -64,6 +70,7 @@ class KeypairsV2TestCase(KeypairsTest):
|
||||
def test_create_keypair(self):
|
||||
name = "foo"
|
||||
kp = self.cs.keypairs.create(name)
|
||||
self.assert_request_id(kp, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('POST', '/%s' % self.keypair_prefix,
|
||||
body={'keypair': {'name': name}})
|
||||
self.assertIsInstance(kp, keypairs.Keypair)
|
||||
@ -72,6 +79,7 @@ class KeypairsV2TestCase(KeypairsTest):
|
||||
name = "foo"
|
||||
pub_key = "fake-public-key"
|
||||
kp = self.cs.keypairs.create(name, pub_key)
|
||||
self.assert_request_id(kp, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('POST', '/%s' % self.keypair_prefix,
|
||||
body={'keypair': {'name': name,
|
||||
'public_key': pub_key}})
|
||||
@ -87,6 +95,7 @@ class KeypairsV22TestCase(KeypairsTest):
|
||||
name = "foo"
|
||||
key_type = "some_type"
|
||||
kp = self.cs.keypairs.create(name, key_type=key_type)
|
||||
self.assert_request_id(kp, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('POST', '/%s' % self.keypair_prefix,
|
||||
body={'keypair': {'name': name,
|
||||
'type': key_type}})
|
||||
@ -96,6 +105,7 @@ class KeypairsV22TestCase(KeypairsTest):
|
||||
name = "foo"
|
||||
pub_key = "fake-public-key"
|
||||
kp = self.cs.keypairs.create(name, pub_key)
|
||||
self.assert_request_id(kp, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('POST', '/%s' % self.keypair_prefix,
|
||||
body={'keypair': {'name': name,
|
||||
'public_key': pub_key,
|
||||
|
@ -14,6 +14,7 @@
|
||||
from novaclient.tests.unit.fixture_data import client
|
||||
from novaclient.tests.unit.fixture_data import limits as data
|
||||
from novaclient.tests.unit import utils
|
||||
from novaclient.tests.unit.v2 import fakes
|
||||
from novaclient.v2 import limits
|
||||
|
||||
|
||||
@ -24,16 +25,19 @@ class LimitsTest(utils.FixturedTestCase):
|
||||
|
||||
def test_get_limits(self):
|
||||
obj = self.cs.limits.get()
|
||||
self.assert_request_id(obj, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('GET', '/limits')
|
||||
self.assertIsInstance(obj, limits.Limits)
|
||||
|
||||
def test_get_limits_for_a_tenant(self):
|
||||
obj = self.cs.limits.get(tenant_id=1234)
|
||||
self.assert_request_id(obj, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('GET', '/limits?tenant_id=1234')
|
||||
self.assertIsInstance(obj, limits.Limits)
|
||||
|
||||
def test_absolute_limits_reserved(self):
|
||||
obj = self.cs.limits.get(reserved=True)
|
||||
self.assert_request_id(obj, fakes.FAKE_REQUEST_ID_LIST)
|
||||
|
||||
expected = (
|
||||
limits.AbsoluteLimit("maxTotalRAMSize", 51200),
|
||||
@ -52,6 +56,7 @@ class LimitsTest(utils.FixturedTestCase):
|
||||
|
||||
def test_rate_absolute_limits(self):
|
||||
obj = self.cs.limits.get()
|
||||
self.assert_request_id(obj, fakes.FAKE_REQUEST_ID_LIST)
|
||||
|
||||
expected = (
|
||||
limits.RateLimit('POST', '*', '.*', 10, 2, 'MINUTE',
|
||||
|
@ -14,6 +14,7 @@
|
||||
from novaclient.tests.unit.fixture_data import client
|
||||
from novaclient.tests.unit.fixture_data import networks as data
|
||||
from novaclient.tests.unit import utils
|
||||
from novaclient.tests.unit.v2 import fakes
|
||||
from novaclient.v2 import networks
|
||||
|
||||
|
||||
@ -24,21 +25,25 @@ class NetworksTest(utils.FixturedTestCase):
|
||||
|
||||
def test_list_networks(self):
|
||||
fl = self.cs.networks.list()
|
||||
self.assert_request_id(fl, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('GET', '/os-networks')
|
||||
for f in fl:
|
||||
self.assertIsInstance(f, networks.Network)
|
||||
|
||||
def test_get_network(self):
|
||||
f = self.cs.networks.get(1)
|
||||
self.assert_request_id(f, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('GET', '/os-networks/1')
|
||||
self.assertIsInstance(f, networks.Network)
|
||||
|
||||
def test_delete(self):
|
||||
self.cs.networks.delete('networkdelete')
|
||||
ret = self.cs.networks.delete('networkdelete')
|
||||
self.assert_request_id(ret, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('DELETE', '/os-networks/networkdelete')
|
||||
|
||||
def test_create(self):
|
||||
f = self.cs.networks.create(label='foo')
|
||||
self.assert_request_id(f, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('POST', '/os-networks',
|
||||
{'network': {'label': 'foo'}})
|
||||
self.assertIsInstance(f, networks.Network)
|
||||
@ -70,38 +75,45 @@ class NetworksTest(utils.FixturedTestCase):
|
||||
}
|
||||
|
||||
f = self.cs.networks.create(**params)
|
||||
self.assert_request_id(f, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('POST', '/os-networks', {'network': params})
|
||||
self.assertIsInstance(f, networks.Network)
|
||||
|
||||
def test_associate_project(self):
|
||||
self.cs.networks.associate_project('networktest')
|
||||
f = self.cs.networks.associate_project('networktest')
|
||||
self.assert_request_id(f, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('POST', '/os-networks/add',
|
||||
{'id': 'networktest'})
|
||||
|
||||
def test_associate_host(self):
|
||||
self.cs.networks.associate_host('networktest', 'testHost')
|
||||
f = self.cs.networks.associate_host('networktest', 'testHost')
|
||||
self.assert_request_id(f, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('POST', '/os-networks/networktest/action',
|
||||
{'associate_host': 'testHost'})
|
||||
|
||||
def test_disassociate(self):
|
||||
self.cs.networks.disassociate('networkdisassociate')
|
||||
f = self.cs.networks.disassociate('networkdisassociate')
|
||||
self.assert_request_id(f, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('POST',
|
||||
'/os-networks/networkdisassociate/action',
|
||||
{'disassociate': None})
|
||||
|
||||
def test_disassociate_host_only(self):
|
||||
self.cs.networks.disassociate('networkdisassociate', True, False)
|
||||
f = self.cs.networks.disassociate('networkdisassociate', True, False)
|
||||
self.assert_request_id(f, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('POST',
|
||||
'/os-networks/networkdisassociate/action',
|
||||
{'disassociate_host': None})
|
||||
|
||||
def test_disassociate_project(self):
|
||||
self.cs.networks.disassociate('networkdisassociate', False, True)
|
||||
f = self.cs.networks.disassociate('networkdisassociate', False, True)
|
||||
self.assert_request_id(f, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('POST',
|
||||
'/os-networks/networkdisassociate/action',
|
||||
{'disassociate_project': None})
|
||||
|
||||
def test_add(self):
|
||||
self.cs.networks.add('networkadd')
|
||||
f = self.cs.networks.add('networkadd')
|
||||
self.assert_request_id(f, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('POST', '/os-networks/add',
|
||||
{'id': 'networkadd'})
|
||||
|
@ -24,11 +24,13 @@ class QuotaClassSetsTest(utils.TestCase):
|
||||
|
||||
def test_class_quotas_get(self):
|
||||
class_name = 'test'
|
||||
cs.quota_classes.get(class_name)
|
||||
q = cs.quota_classes.get(class_name)
|
||||
self.assert_request_id(q, fakes.FAKE_REQUEST_ID_LIST)
|
||||
cs.assert_called('GET', '/os-quota-class-sets/%s' % class_name)
|
||||
|
||||
def test_update_quota(self):
|
||||
q = cs.quota_classes.get('test')
|
||||
self.assert_request_id(q, fakes.FAKE_REQUEST_ID_LIST)
|
||||
q.update(cores=2)
|
||||
cs.assert_called('PUT', '/os-quota-class-sets/test')
|
||||
|
||||
|
@ -16,6 +16,7 @@
|
||||
from novaclient.tests.unit.fixture_data import client
|
||||
from novaclient.tests.unit.fixture_data import quotas as data
|
||||
from novaclient.tests.unit import utils
|
||||
from novaclient.tests.unit.v2 import fakes
|
||||
|
||||
|
||||
class QuotaSetsTest(utils.FixturedTestCase):
|
||||
@ -25,36 +26,42 @@ class QuotaSetsTest(utils.FixturedTestCase):
|
||||
|
||||
def test_tenant_quotas_get(self):
|
||||
tenant_id = 'test'
|
||||
self.cs.quotas.get(tenant_id)
|
||||
q = self.cs.quotas.get(tenant_id)
|
||||
self.assert_request_id(q, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('GET', '/os-quota-sets/%s' % tenant_id)
|
||||
|
||||
def test_user_quotas_get(self):
|
||||
tenant_id = 'test'
|
||||
user_id = 'fake_user'
|
||||
self.cs.quotas.get(tenant_id, user_id=user_id)
|
||||
q = self.cs.quotas.get(tenant_id, user_id=user_id)
|
||||
self.assert_request_id(q, fakes.FAKE_REQUEST_ID_LIST)
|
||||
url = '/os-quota-sets/%s?user_id=%s' % (tenant_id, user_id)
|
||||
self.assert_called('GET', url)
|
||||
|
||||
def test_tenant_quotas_defaults(self):
|
||||
tenant_id = '97f4c221bff44578b0300df4ef119353'
|
||||
self.cs.quotas.defaults(tenant_id)
|
||||
q = self.cs.quotas.defaults(tenant_id)
|
||||
self.assert_request_id(q, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('GET', '/os-quota-sets/%s/defaults' % tenant_id)
|
||||
|
||||
def test_force_update_quota(self):
|
||||
q = self.cs.quotas.get('97f4c221bff44578b0300df4ef119353')
|
||||
q.update(cores=2, force=True)
|
||||
qu = q.update(cores=2, force=True)
|
||||
self.assert_request_id(qu, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called(
|
||||
'PUT', '/os-quota-sets/97f4c221bff44578b0300df4ef119353',
|
||||
{'quota_set': {'force': True, 'cores': 2}})
|
||||
|
||||
def test_quotas_delete(self):
|
||||
tenant_id = 'test'
|
||||
self.cs.quotas.delete(tenant_id)
|
||||
ret = self.cs.quotas.delete(tenant_id)
|
||||
self.assert_request_id(ret, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('DELETE', '/os-quota-sets/%s' % tenant_id)
|
||||
|
||||
def test_user_quotas_delete(self):
|
||||
tenant_id = 'test'
|
||||
user_id = 'fake_user'
|
||||
self.cs.quotas.delete(tenant_id, user_id=user_id)
|
||||
ret = self.cs.quotas.delete(tenant_id, user_id=user_id)
|
||||
self.assert_request_id(ret, fakes.FAKE_REQUEST_ID_LIST)
|
||||
url = '/os-quota-sets/%s?user_id=%s' % (tenant_id, user_id)
|
||||
self.assert_called('DELETE', url)
|
||||
|
@ -15,6 +15,7 @@ from novaclient import exceptions
|
||||
from novaclient.tests.unit.fixture_data import client
|
||||
from novaclient.tests.unit.fixture_data import security_group_rules as data
|
||||
from novaclient.tests.unit import utils
|
||||
from novaclient.tests.unit.v2 import fakes
|
||||
from novaclient.v2 import security_group_rules
|
||||
|
||||
|
||||
@ -24,12 +25,14 @@ class SecurityGroupRulesTest(utils.FixturedTestCase):
|
||||
data_fixture_class = data.Fixture
|
||||
|
||||
def test_delete_security_group_rule(self):
|
||||
self.cs.security_group_rules.delete(1)
|
||||
ret = self.cs.security_group_rules.delete(1)
|
||||
self.assert_request_id(ret, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('DELETE', '/os-security-group-rules/1')
|
||||
|
||||
def test_create_security_group_rule(self):
|
||||
sg = self.cs.security_group_rules.create(1, "tcp", 1, 65535,
|
||||
"10.0.0.0/16")
|
||||
self.assert_request_id(sg, fakes.FAKE_REQUEST_ID_LIST)
|
||||
|
||||
body = {
|
||||
"security_group_rule": {
|
||||
@ -48,6 +51,7 @@ class SecurityGroupRulesTest(utils.FixturedTestCase):
|
||||
def test_create_security_group_group_rule(self):
|
||||
sg = self.cs.security_group_rules.create(1, "tcp", 1, 65535,
|
||||
"10.0.0.0/16", 101)
|
||||
self.assert_request_id(sg, fakes.FAKE_REQUEST_ID_LIST)
|
||||
|
||||
body = {
|
||||
"security_group_rule": {
|
||||
@ -80,10 +84,12 @@ class SecurityGroupRulesTest(utils.FixturedTestCase):
|
||||
def test_security_group_rule_str(self):
|
||||
sg = self.cs.security_group_rules.create(1, "tcp", 1, 65535,
|
||||
"10.0.0.0/16")
|
||||
self.assert_request_id(sg, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assertEqual('1', str(sg))
|
||||
|
||||
def test_security_group_rule_del(self):
|
||||
sg = self.cs.security_group_rules.create(1, "tcp", 1, 65535,
|
||||
"10.0.0.0/16")
|
||||
sg.delete()
|
||||
ret = sg.delete()
|
||||
self.assert_request_id(ret, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('DELETE', '/os-security-group-rules/1')
|
||||
|
@ -14,6 +14,7 @@
|
||||
from novaclient.tests.unit.fixture_data import client
|
||||
from novaclient.tests.unit.fixture_data import security_groups as data
|
||||
from novaclient.tests.unit import utils
|
||||
from novaclient.tests.unit.v2 import fakes
|
||||
from novaclient.v2 import security_groups
|
||||
|
||||
|
||||
@ -24,6 +25,7 @@ class SecurityGroupsTest(utils.FixturedTestCase):
|
||||
|
||||
def _do_test_list_security_groups(self, search_opts, path):
|
||||
sgs = self.cs.security_groups.list(search_opts=search_opts)
|
||||
self.assert_request_id(sgs, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('GET', path)
|
||||
for sg in sgs:
|
||||
self.assertIsInstance(sg, security_groups.SecurityGroup)
|
||||
@ -42,27 +44,33 @@ class SecurityGroupsTest(utils.FixturedTestCase):
|
||||
|
||||
def test_get_security_groups(self):
|
||||
sg = self.cs.security_groups.get(1)
|
||||
self.assert_request_id(sg, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('GET', '/os-security-groups/1')
|
||||
self.assertIsInstance(sg, security_groups.SecurityGroup)
|
||||
self.assertEqual('1', str(sg))
|
||||
|
||||
def test_delete_security_group(self):
|
||||
sg = self.cs.security_groups.list()[0]
|
||||
sg.delete()
|
||||
ret = sg.delete()
|
||||
self.assert_request_id(ret, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('DELETE', '/os-security-groups/1')
|
||||
self.cs.security_groups.delete(1)
|
||||
ret = self.cs.security_groups.delete(1)
|
||||
self.assert_request_id(ret, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('DELETE', '/os-security-groups/1')
|
||||
self.cs.security_groups.delete(sg)
|
||||
ret = self.cs.security_groups.delete(sg)
|
||||
self.assert_request_id(ret, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('DELETE', '/os-security-groups/1')
|
||||
|
||||
def test_create_security_group(self):
|
||||
sg = self.cs.security_groups.create("foo", "foo barr")
|
||||
self.assert_request_id(sg, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('POST', '/os-security-groups')
|
||||
self.assertIsInstance(sg, security_groups.SecurityGroup)
|
||||
|
||||
def test_update_security_group(self):
|
||||
sg = self.cs.security_groups.list()[0]
|
||||
secgroup = self.cs.security_groups.update(sg, "update", "update")
|
||||
self.assert_request_id(secgroup, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('PUT', '/os-security-groups/1')
|
||||
self.assertIsInstance(secgroup, security_groups.SecurityGroup)
|
||||
|
||||
|
@ -16,6 +16,7 @@
|
||||
from novaclient.tests.unit.fixture_data import client
|
||||
from novaclient.tests.unit.fixture_data import server_groups as data
|
||||
from novaclient.tests.unit import utils
|
||||
from novaclient.tests.unit.v2 import fakes
|
||||
from novaclient.v2 import server_groups
|
||||
|
||||
|
||||
@ -26,6 +27,7 @@ class ServerGroupsTest(utils.FixturedTestCase):
|
||||
|
||||
def test_list_server_groups(self):
|
||||
result = self.cs.server_groups.list()
|
||||
self.assert_request_id(result, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('GET', '/os-server-groups')
|
||||
for server_group in result:
|
||||
self.assertIsInstance(server_group,
|
||||
@ -33,6 +35,7 @@ class ServerGroupsTest(utils.FixturedTestCase):
|
||||
|
||||
def test_list_server_groups_with_all_projects(self):
|
||||
result = self.cs.server_groups.list(all_projects=True)
|
||||
self.assert_request_id(result, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('GET', '/os-server-groups?all_projects')
|
||||
for server_group in result:
|
||||
self.assertIsInstance(server_group,
|
||||
@ -42,6 +45,7 @@ class ServerGroupsTest(utils.FixturedTestCase):
|
||||
kwargs = {'name': 'ig1',
|
||||
'policies': ['anti-affinity']}
|
||||
server_group = self.cs.server_groups.create(**kwargs)
|
||||
self.assert_request_id(server_group, fakes.FAKE_REQUEST_ID_LIST)
|
||||
body = {'server_group': kwargs}
|
||||
self.assert_called('POST', '/os-server-groups', body)
|
||||
self.assertIsInstance(server_group,
|
||||
@ -50,17 +54,20 @@ class ServerGroupsTest(utils.FixturedTestCase):
|
||||
def test_get_server_group(self):
|
||||
id = '2cbd51f4-fafe-4cdb-801b-cf913a6f288b'
|
||||
server_group = self.cs.server_groups.get(id)
|
||||
self.assert_request_id(server_group, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('GET', '/os-server-groups/%s' % id)
|
||||
self.assertIsInstance(server_group,
|
||||
server_groups.ServerGroup)
|
||||
|
||||
def test_delete_server_group(self):
|
||||
id = '2cbd51f4-fafe-4cdb-801b-cf913a6f288b'
|
||||
self.cs.server_groups.delete(id)
|
||||
ret = self.cs.server_groups.delete(id)
|
||||
self.assert_request_id(ret, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('DELETE', '/os-server-groups/%s' % id)
|
||||
|
||||
def test_delete_server_group_object(self):
|
||||
id = '2cbd51f4-fafe-4cdb-801b-cf913a6f288b'
|
||||
server_group = self.cs.server_groups.get(id)
|
||||
server_group.delete()
|
||||
ret = server_group.delete()
|
||||
self.assert_request_id(ret, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assert_called('DELETE', '/os-server-groups/%s' % id)
|
||||
|
@ -33,6 +33,7 @@ class ServicesTest(utils.TestCase):
|
||||
|
||||
def test_list_services(self):
|
||||
svs = self.cs.services.list()
|
||||
self.assert_request_id(svs, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.cs.assert_called('GET', '/os-services')
|
||||
for s in svs:
|
||||
self.assertIsInstance(s, self._get_service_type())
|
||||
@ -42,6 +43,7 @@ class ServicesTest(utils.TestCase):
|
||||
|
||||
def test_list_services_with_hostname(self):
|
||||
svs = self.cs.services.list(host='host2')
|
||||
self.assert_request_id(svs, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.cs.assert_called('GET', '/os-services?host=host2')
|
||||
for s in svs:
|
||||
self.assertIsInstance(s, self._get_service_type())
|
||||
@ -50,6 +52,7 @@ class ServicesTest(utils.TestCase):
|
||||
|
||||
def test_list_services_with_binary(self):
|
||||
svs = self.cs.services.list(binary='nova-cert')
|
||||
self.assert_request_id(svs, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.cs.assert_called('GET', '/os-services?binary=nova-cert')
|
||||
for s in svs:
|
||||
self.assertIsInstance(s, self._get_service_type())
|
||||
@ -58,6 +61,7 @@ class ServicesTest(utils.TestCase):
|
||||
|
||||
def test_list_services_with_host_binary(self):
|
||||
svs = self.cs.services.list(host='host2', binary='nova-cert')
|
||||
self.assert_request_id(svs, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.cs.assert_called('GET',
|
||||
'/os-services?host=host2&binary=nova-cert')
|
||||
for s in svs:
|
||||
@ -74,17 +78,20 @@ class ServicesTest(utils.TestCase):
|
||||
|
||||
def test_services_enable(self):
|
||||
service = self.cs.services.enable('host1', 'nova-cert')
|
||||
self.assert_request_id(service, fakes.FAKE_REQUEST_ID_LIST)
|
||||
values = self._update_body("host1", "nova-cert")
|
||||
self.cs.assert_called('PUT', '/os-services/enable', values)
|
||||
self.assertIsInstance(service, self._get_service_type())
|
||||
self.assertEqual('enabled', service.status)
|
||||
|
||||
def test_services_delete(self):
|
||||
self.cs.services.delete('1')
|
||||
ret = self.cs.services.delete('1')
|
||||
self.assert_request_id(ret, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.cs.assert_called('DELETE', '/os-services/1')
|
||||
|
||||
def test_services_disable(self):
|
||||
service = self.cs.services.disable('host1', 'nova-cert')
|
||||
self.assert_request_id(service, fakes.FAKE_REQUEST_ID_LIST)
|
||||
values = self._update_body("host1", "nova-cert")
|
||||
self.cs.assert_called('PUT', '/os-services/disable', values)
|
||||
self.assertIsInstance(service, self._get_service_type())
|
||||
@ -93,6 +100,7 @@ class ServicesTest(utils.TestCase):
|
||||
def test_services_disable_log_reason(self):
|
||||
service = self.cs.services.disable_log_reason(
|
||||
'compute1', 'nova-compute', 'disable bad host')
|
||||
self.assert_request_id(service, fakes.FAKE_REQUEST_ID_LIST)
|
||||
values = self._update_body("compute1", "nova-compute",
|
||||
"disable bad host")
|
||||
self.cs.assert_called('PUT', '/os-services/disable-log-reason', values)
|
||||
@ -118,6 +126,7 @@ class ServicesV211TestCase(ServicesTest):
|
||||
def test_services_force_down(self):
|
||||
service = self.cs.services.force_down(
|
||||
'compute1', 'nova-compute', False)
|
||||
self.assert_request_id(service, fakes.FAKE_REQUEST_ID_LIST)
|
||||
values = self._update_body("compute1", "nova-compute",
|
||||
force_down=False)
|
||||
self.cs.assert_called('PUT', '/os-services/force-down', values)
|
||||
|
@ -33,6 +33,7 @@ class UsageTest(utils.TestCase):
|
||||
def test_usage_list(self, detailed=False):
|
||||
now = datetime.datetime.now()
|
||||
usages = self.cs.usage.list(now, now, detailed)
|
||||
self.assert_request_id(usages, fakes.FAKE_REQUEST_ID_LIST)
|
||||
|
||||
self.cs.assert_called(
|
||||
'GET',
|
||||
@ -49,6 +50,7 @@ class UsageTest(utils.TestCase):
|
||||
def test_usage_get(self):
|
||||
now = datetime.datetime.now()
|
||||
u = self.cs.usage.get("tenantfoo", now, now)
|
||||
self.assert_request_id(u, fakes.FAKE_REQUEST_ID_LIST)
|
||||
|
||||
self.cs.assert_called(
|
||||
'GET',
|
||||
|
@ -30,13 +30,15 @@ class VersionsTest(utils.TestCase):
|
||||
@mock.patch.object(versions.VersionManager, '_is_session_client',
|
||||
return_value=False)
|
||||
def test_list_services_with_http_client(self, mock_is_session_client):
|
||||
self.cs.versions.list()
|
||||
vl = self.cs.versions.list()
|
||||
self.assert_request_id(vl, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.cs.assert_called('GET', None)
|
||||
|
||||
@mock.patch.object(versions.VersionManager, '_is_session_client',
|
||||
return_value=True)
|
||||
def test_list_services_with_session_client(self, mock_is_session_client):
|
||||
self.cs.versions.list()
|
||||
vl = self.cs.versions.list()
|
||||
self.assert_request_id(vl, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.cs.assert_called('GET', 'http://nova-api:8774/')
|
||||
|
||||
@mock.patch.object(versions.VersionManager, '_is_session_client',
|
||||
@ -44,6 +46,8 @@ class VersionsTest(utils.TestCase):
|
||||
@mock.patch.object(versions.VersionManager, 'list')
|
||||
def test_get_current_with_http_client(self, mock_list,
|
||||
mock_is_session_client):
|
||||
headers = {'x-openstack-request-id': fakes.FAKE_REQUEST_ID}
|
||||
resp = utils.TestResponse({"headers": headers})
|
||||
current_version = versions.Version(
|
||||
None, {"links": [{"href": "http://nova-api:8774/v2.1"}]},
|
||||
loaded=True)
|
||||
@ -58,14 +62,17 @@ class VersionsTest(utils.TestCase):
|
||||
current_version,
|
||||
versions.Version(
|
||||
None, {"links": [{"href": "http://url/v21"}]}, loaded=True)]
|
||||
mock_list.return_value = base.ListWithMeta(all_versions, None)
|
||||
self.assertEqual(current_version, self.cs.versions.get_current())
|
||||
mock_list.return_value = base.ListWithMeta(all_versions, resp)
|
||||
v = self.cs.versions.get_current()
|
||||
self.assert_request_id(v, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assertEqual(current_version, v)
|
||||
|
||||
@mock.patch.object(versions.VersionManager, '_is_session_client',
|
||||
return_value=True)
|
||||
def test_get_current_with_session_client(self, mock_is_session_client):
|
||||
self.cs.callback = []
|
||||
self.cs.versions.get_current()
|
||||
v = self.cs.versions.get_current()
|
||||
self.assert_request_id(v, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.cs.assert_called('GET', 'http://nova-api:8774/v2.1/')
|
||||
|
||||
@mock.patch.object(versions.VersionManager, '_is_session_client',
|
||||
@ -94,6 +101,7 @@ class VersionsTest(utils.TestCase):
|
||||
cs_2_1 = fakes.FakeClient(endpoint_type=endpoint_type)
|
||||
|
||||
result = cs_2_1.versions.get_current()
|
||||
self.assert_request_id(result, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assertEqual(result.manager.api.client.endpoint_type,
|
||||
endpoint_type, "Check endpoint_type was set")
|
||||
self.assertEqual(result.manager.api.client.management_url,
|
||||
@ -112,6 +120,7 @@ class VersionsTest(utils.TestCase):
|
||||
cs_2 = fakes.FakeClient(endpoint_type=endpoint_type)
|
||||
|
||||
result = cs_2.versions.get_current()
|
||||
self.assert_request_id(result, fakes.FAKE_REQUEST_ID_LIST)
|
||||
self.assertEqual(result.manager.api.client.endpoint_type,
|
||||
endpoint_type, "Check v2 endpoint_type was set")
|
||||
self.assertEqual(result.manager.api.client.management_url,
|
||||
|
@ -48,7 +48,12 @@ class Keypair(base.Resource):
|
||||
return self.name
|
||||
|
||||
def delete(self):
|
||||
self.manager.delete(self)
|
||||
"""
|
||||
Delete this keypair.
|
||||
|
||||
:returns: An instance of novaclient.base.TupleWithMeta
|
||||
"""
|
||||
return self.manager.delete(self)
|
||||
|
||||
|
||||
class KeypairManager(base.ManagerWithFind):
|
||||
@ -133,8 +138,9 @@ class KeypairManager(base.ManagerWithFind):
|
||||
Delete a keypair
|
||||
|
||||
:param key: The :class:`Keypair` (or its ID) to delete.
|
||||
:returns: An instance of novaclient.base.TupleWithMeta
|
||||
"""
|
||||
self._delete('/%s/%s' % (self.keypair_prefix, base.getid(key)))
|
||||
return self._delete('/%s/%s' % (self.keypair_prefix, base.getid(key)))
|
||||
|
||||
@api_versions.wraps("2.10")
|
||||
def delete(self, key, user_id=None):
|
||||
@ -143,10 +149,11 @@ class KeypairManager(base.ManagerWithFind):
|
||||
|
||||
:param key: The :class:`Keypair` (or its ID) to delete.
|
||||
:param user_id: Id of key-pair owner (Admin only).
|
||||
:returns: An instance of novaclient.base.TupleWithMeta
|
||||
"""
|
||||
query_string = "?user_id=%s" % user_id if user_id else ""
|
||||
url = '/%s/%s%s' % (self.keypair_prefix, base.getid(key), query_string)
|
||||
self._delete(url)
|
||||
return self._delete(url)
|
||||
|
||||
@api_versions.wraps("2.0", "2.9")
|
||||
def list(self):
|
||||
|
@ -33,7 +33,12 @@ class Network(base.Resource):
|
||||
return "<Network: %s>" % self.label
|
||||
|
||||
def delete(self):
|
||||
self.manager.delete(self)
|
||||
"""
|
||||
Delete this network.
|
||||
|
||||
:returns: An instance of novaclient.base.TupleWithMeta
|
||||
"""
|
||||
return self.manager.delete(self)
|
||||
|
||||
|
||||
class NetworkManager(base.ManagerWithFind):
|
||||
@ -65,8 +70,9 @@ class NetworkManager(base.ManagerWithFind):
|
||||
Delete a specific network.
|
||||
|
||||
:param network: The ID of the :class:`Network` to delete.
|
||||
:returns: An instance of novaclient.base.TupleWithMeta
|
||||
"""
|
||||
self._delete("/os-networks/%s" % base.getid(network))
|
||||
return self._delete("/os-networks/%s" % base.getid(network))
|
||||
|
||||
def create(self, **kwargs):
|
||||
"""
|
||||
@ -109,6 +115,7 @@ class NetworkManager(base.ManagerWithFind):
|
||||
:param network: The ID of the :class:`Network`.
|
||||
:param disassociate_host: Whether to disassociate the host
|
||||
:param disassociate_project: Whether to disassociate the project
|
||||
:returns: An instance of novaclient.base.TupleWithMeta
|
||||
"""
|
||||
if disassociate_host and disassociate_project:
|
||||
body = {"disassociate": None}
|
||||
@ -120,8 +127,10 @@ class NetworkManager(base.ManagerWithFind):
|
||||
raise exceptions.CommandError(
|
||||
_("Must disassociate either host or project or both"))
|
||||
|
||||
self.api.client.post("/os-networks/%s/action" %
|
||||
base.getid(network), body=body)
|
||||
resp, body = self.api.client.post("/os-networks/%s/action" %
|
||||
base.getid(network), body=body)
|
||||
|
||||
return self.convert_into_with_meta(body, resp)
|
||||
|
||||
def associate_host(self, network, host):
|
||||
"""
|
||||
@ -129,10 +138,13 @@ class NetworkManager(base.ManagerWithFind):
|
||||
|
||||
:param network: The ID of the :class:`Network`.
|
||||
:param host: The name of the host to associate the network with
|
||||
:returns: An instance of novaclient.base.TupleWithMeta
|
||||
"""
|
||||
self.api.client.post("/os-networks/%s/action" %
|
||||
base.getid(network),
|
||||
body={"associate_host": host})
|
||||
resp, body = self.api.client.post("/os-networks/%s/action" %
|
||||
base.getid(network),
|
||||
body={"associate_host": host})
|
||||
|
||||
return self.convert_into_with_meta(body, resp)
|
||||
|
||||
def associate_project(self, network):
|
||||
"""
|
||||
@ -141,8 +153,12 @@ class NetworkManager(base.ManagerWithFind):
|
||||
The project is defined by the project authenticated against
|
||||
|
||||
:param network: The ID of the :class:`Network`.
|
||||
:returns: An instance of novaclient.base.TupleWithMeta
|
||||
"""
|
||||
self.api.client.post("/os-networks/add", body={"id": network})
|
||||
resp, body = self.api.client.post("/os-networks/add",
|
||||
body={"id": network})
|
||||
|
||||
return self.convert_into_with_meta(body, resp)
|
||||
|
||||
def add(self, network=None):
|
||||
"""
|
||||
@ -150,7 +166,10 @@ class NetworkManager(base.ManagerWithFind):
|
||||
automatically or provided explicitly.
|
||||
|
||||
:param network: The ID of the :class:`Network` to associate (optional).
|
||||
:returns: An instance of novaclient.base.TupleWithMeta
|
||||
"""
|
||||
self.api.client.post(
|
||||
"/os-networks/add",
|
||||
body={"id": base.getid(network) if network else None})
|
||||
resp, body = self.api.client.post("/os-networks/add",
|
||||
body={"id": base.getid(network)
|
||||
if network else None})
|
||||
|
||||
return self.convert_into_with_meta(body, resp)
|
||||
|
@ -61,8 +61,15 @@ class QuotaSetManager(base.Manager):
|
||||
'quota_set')
|
||||
|
||||
def delete(self, tenant_id, user_id=None):
|
||||
"""
|
||||
Delete quota for a tenant or for a user.
|
||||
|
||||
:param tenant_id: A tenant for which quota is to be deleted
|
||||
:param user_id: A user for which quota is to be deleted
|
||||
:returns: An instance of novaclient.base.TupleWithMeta
|
||||
"""
|
||||
if user_id:
|
||||
url = '/os-quota-sets/%s?user_id=%s' % (tenant_id, user_id)
|
||||
else:
|
||||
url = '/os-quota-sets/%s' % tenant_id
|
||||
self._delete(url)
|
||||
return self._delete(url)
|
||||
|
@ -24,7 +24,12 @@ class SecurityGroupDefaultRule(base.Resource):
|
||||
return str(self.id)
|
||||
|
||||
def delete(self):
|
||||
self.manager.delete(self)
|
||||
"""
|
||||
Delete this security group default rule.
|
||||
|
||||
:returns: An instance of novaclient.base.TupleWithMeta
|
||||
"""
|
||||
return self.manager.delete(self)
|
||||
|
||||
|
||||
class SecurityGroupDefaultRuleManager(base.Manager):
|
||||
@ -67,8 +72,10 @@ class SecurityGroupDefaultRuleManager(base.Manager):
|
||||
Delete a security group default rule
|
||||
|
||||
:param rule: The security group default rule to delete (ID or Class)
|
||||
:returns: An instance of novaclient.base.TupleWithMeta
|
||||
"""
|
||||
self._delete('/os-security-group-default-rules/%s' % base.getid(rule))
|
||||
return self._delete('/os-security-group-default-rules/%s' %
|
||||
base.getid(rule))
|
||||
|
||||
def list(self):
|
||||
"""
|
||||
|
@ -27,7 +27,12 @@ class SecurityGroupRule(base.Resource):
|
||||
return str(self.id)
|
||||
|
||||
def delete(self):
|
||||
self.manager.delete(self)
|
||||
"""
|
||||
Delete this security group rule.
|
||||
|
||||
:returns: An instance of novaclient.base.TupleWithMeta
|
||||
"""
|
||||
return self.manager.delete(self)
|
||||
|
||||
|
||||
class SecurityGroupRuleManager(base.Manager):
|
||||
@ -74,5 +79,6 @@ class SecurityGroupRuleManager(base.Manager):
|
||||
Delete a security group rule
|
||||
|
||||
:param rule: The security group rule to delete (ID or Class)
|
||||
:returns: An instance of novaclient.base.TupleWithMeta
|
||||
"""
|
||||
self._delete('/os-security-group-rules/%s' % base.getid(rule))
|
||||
return self._delete('/os-security-group-rules/%s' % base.getid(rule))
|
||||
|
@ -28,10 +28,20 @@ class SecurityGroup(base.Resource):
|
||||
return str(self.id)
|
||||
|
||||
def delete(self):
|
||||
self.manager.delete(self)
|
||||
"""
|
||||
Delete this security group.
|
||||
|
||||
:returns: An instance of novaclient.base.TupleWithMeta
|
||||
"""
|
||||
return self.manager.delete(self)
|
||||
|
||||
def update(self):
|
||||
self.manager.update(self)
|
||||
"""
|
||||
Update this security group.
|
||||
|
||||
:returns: :class:`SecurityGroup`
|
||||
"""
|
||||
return self.manager.update(self)
|
||||
|
||||
|
||||
class SecurityGroupManager(base.ManagerWithFind):
|
||||
@ -66,9 +76,9 @@ class SecurityGroupManager(base.ManagerWithFind):
|
||||
Delete a security group
|
||||
|
||||
:param group: The security group to delete (group or ID)
|
||||
:rtype: None
|
||||
:returns: An instance of novaclient.base.TupleWithMeta
|
||||
"""
|
||||
self._delete('/os-security-groups/%s' % base.getid(group))
|
||||
return self._delete('/os-security-groups/%s' % base.getid(group))
|
||||
|
||||
def get(self, group_id):
|
||||
"""
|
||||
|
@ -30,7 +30,12 @@ class ServerGroup(base.Resource):
|
||||
return '<ServerGroup: %s>' % self.id
|
||||
|
||||
def delete(self):
|
||||
self.manager.delete(self.id)
|
||||
"""
|
||||
Delete this server group.
|
||||
|
||||
:returns: An instance of novaclient.base.TupleWithMeta
|
||||
"""
|
||||
return self.manager.delete(self.id)
|
||||
|
||||
|
||||
class ServerGroupsManager(base.ManagerWithFind):
|
||||
@ -60,8 +65,9 @@ class ServerGroupsManager(base.ManagerWithFind):
|
||||
"""Delete a specific server group.
|
||||
|
||||
:param id: The ID of the :class:`ServerGroup` to delete.
|
||||
:returns: An instance of novaclient.base.TupleWithMeta
|
||||
"""
|
||||
self._delete('/os-server-groups/%s' % id)
|
||||
return self._delete('/os-server-groups/%s' % id)
|
||||
|
||||
def create(self, **kwargs):
|
||||
"""Create (allocate) a server group.
|
||||
|
@ -76,6 +76,7 @@ class VersionManager(base.ManagerWithFind):
|
||||
for version in all_versions:
|
||||
for link in version.links:
|
||||
if link["href"].rstrip('/') == url:
|
||||
version.append_request_ids(all_versions.request_ids)
|
||||
return version
|
||||
|
||||
def get_current(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user