Adds v3 API samples for limits and simple tenant usage
Adds the v3 API samples for the limits and simple tenant usage extensions. Bundled together to reduce review load Partially implements blueprint v3-api-specification +DocImpact Change-Id: I1b73d7acf8d1bbccec2fff6180799edd3f3b12aa
This commit is contained in:
72
doc/v3/api_samples/limits/limit-get-resp.json
Normal file
72
doc/v3/api_samples/limits/limit-get-resp.json
Normal file
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"limits": {
|
||||
"absolute": {
|
||||
"maxImageMeta": 128,
|
||||
"maxPersonality": 5,
|
||||
"maxPersonalitySize": 10240,
|
||||
"maxSecurityGroupRules": 20,
|
||||
"maxSecurityGroups": 10,
|
||||
"maxServerMeta": 128,
|
||||
"maxTotalCores": 20,
|
||||
"maxTotalFloatingIps": 10,
|
||||
"maxTotalInstances": 10,
|
||||
"maxTotalKeypairs": 100,
|
||||
"maxTotalRAMSize": 51200
|
||||
},
|
||||
"rate": [
|
||||
{
|
||||
"limit": [
|
||||
{
|
||||
"next-available": "2013-09-09T13:37:32Z",
|
||||
"remaining": 10,
|
||||
"unit": "MINUTE",
|
||||
"value": 10,
|
||||
"verb": "POST"
|
||||
},
|
||||
{
|
||||
"next-available": "2013-09-09T13:37:32Z",
|
||||
"remaining": 10,
|
||||
"unit": "MINUTE",
|
||||
"value": 10,
|
||||
"verb": "PUT"
|
||||
},
|
||||
{
|
||||
"next-available": "2013-09-09T13:37:32Z",
|
||||
"remaining": 100,
|
||||
"unit": "MINUTE",
|
||||
"value": 100,
|
||||
"verb": "DELETE"
|
||||
}
|
||||
],
|
||||
"regex": ".*",
|
||||
"uri": "*"
|
||||
},
|
||||
{
|
||||
"limit": [
|
||||
{
|
||||
"next-available": "2013-09-09T13:37:32Z",
|
||||
"remaining": 50,
|
||||
"unit": "DAY",
|
||||
"value": 50,
|
||||
"verb": "POST"
|
||||
}
|
||||
],
|
||||
"regex": "^/servers",
|
||||
"uri": "*/servers"
|
||||
},
|
||||
{
|
||||
"limit": [
|
||||
{
|
||||
"next-available": "2013-09-09T13:37:32Z",
|
||||
"remaining": 3,
|
||||
"unit": "MINUTE",
|
||||
"value": 3,
|
||||
"verb": "GET"
|
||||
}
|
||||
],
|
||||
"regex": ".*changes_since.*",
|
||||
"uri": "*changes_since*"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
29
doc/v3/api_samples/limits/limit-get-resp.xml
Normal file
29
doc/v3/api_samples/limits/limit-get-resp.xml
Normal file
@@ -0,0 +1,29 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<limits xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/common/api/v1.0">
|
||||
<rates>
|
||||
<rate regex=".*" uri="*">
|
||||
<limit next-available="2013-09-09T13:37:32Z" unit="MINUTE" verb="POST" remaining="10" value="10"/>
|
||||
<limit next-available="2013-09-09T13:37:32Z" unit="MINUTE" verb="PUT" remaining="10" value="10"/>
|
||||
<limit next-available="2013-09-09T13:37:32Z" unit="MINUTE" verb="DELETE" remaining="100" value="100"/>
|
||||
</rate>
|
||||
<rate regex="^/servers" uri="*/servers">
|
||||
<limit next-available="2013-09-09T13:37:32Z" unit="DAY" verb="POST" remaining="50" value="50"/>
|
||||
</rate>
|
||||
<rate regex=".*changes_since.*" uri="*changes_since*">
|
||||
<limit next-available="2013-09-09T13:37:32Z" unit="MINUTE" verb="GET" remaining="3" value="3"/>
|
||||
</rate>
|
||||
</rates>
|
||||
<absolute>
|
||||
<limit name="maxServerMeta" value="128"/>
|
||||
<limit name="maxPersonality" value="5"/>
|
||||
<limit name="maxImageMeta" value="128"/>
|
||||
<limit name="maxPersonalitySize" value="10240"/>
|
||||
<limit name="maxSecurityGroupRules" value="20"/>
|
||||
<limit name="maxTotalKeypairs" value="100"/>
|
||||
<limit name="maxSecurityGroups" value="10"/>
|
||||
<limit name="maxTotalCores" value="20"/>
|
||||
<limit name="maxTotalFloatingIps" value="10"/>
|
||||
<limit name="maxTotalInstances" value="10"/>
|
||||
<limit name="maxTotalRAMSize" value="51200"/>
|
||||
</absolute>
|
||||
</limits>
|
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"server" : {
|
||||
"name" : "new-server-test",
|
||||
"image_ref" : "http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b",
|
||||
"flavor_ref" : "http://openstack.example.com/openstack/flavors/1",
|
||||
"metadata" : {
|
||||
"My Server Name" : "Apache1"
|
||||
},
|
||||
"personality" : [
|
||||
{
|
||||
"path" : "/etc/banner.txt",
|
||||
"contents" : "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5kIGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVsc2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4gQnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRoZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlvdSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vyc2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6b25zLiINCg0KLVJpY2hhcmQgQmFjaA=="
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<server xmlns="http://docs.openstack.org/compute/api/v1.1" image_ref="http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b" flavor_ref="http://openstack.example.com/openstack/flavors/1" name="new-server-test">
|
||||
<metadata>
|
||||
<meta key="My Server Name">Apache1</meta>
|
||||
</metadata>
|
||||
<personality>
|
||||
<file path="/etc/banner.txt">
|
||||
ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp
|
||||
dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k
|
||||
IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs
|
||||
c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g
|
||||
QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo
|
||||
ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv
|
||||
dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy
|
||||
c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6
|
||||
b25zLiINCg0KLVJpY2hhcmQgQmFjaA==
|
||||
</file>
|
||||
</personality>
|
||||
</server>
|
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"server": {
|
||||
"admin_pass": "andqf3WBEYDj",
|
||||
"id": "69eaa1f4-7be0-42d5-934f-320cdc80981d",
|
||||
"links": [
|
||||
{
|
||||
"href": "http://openstack.example.com/v3/servers/69eaa1f4-7be0-42d5-934f-320cdc80981d",
|
||||
"rel": "self"
|
||||
},
|
||||
{
|
||||
"href": "http://openstack.example.com/servers/69eaa1f4-7be0-42d5-934f-320cdc80981d",
|
||||
"rel": "bookmark"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@@ -0,0 +1,6 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<server xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" id="f14ff0d3-cebe-4692-9202-71946f4db8e4" admin_pass="wQxFoinL5p2y">
|
||||
<metadata/>
|
||||
<atom:link href="http://openstack.example.com/v3/servers/f14ff0d3-cebe-4692-9202-71946f4db8e4" rel="self"/>
|
||||
<atom:link href="http://openstack.example.com/servers/f14ff0d3-cebe-4692-9202-71946f4db8e4" rel="bookmark"/>
|
||||
</server>
|
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"tenant_usage": {
|
||||
"server_usages": [
|
||||
{
|
||||
"ended_at": null,
|
||||
"flavor": "m1.tiny",
|
||||
"hours": 1.0,
|
||||
"instance_id": "bf2fbe78-ae1c-4f6b-a68b-390f12b1b983",
|
||||
"local_gb": 1,
|
||||
"memory_mb": 512,
|
||||
"name": "new-server-test",
|
||||
"started_at": "2013-09-09T13:18:28.101337",
|
||||
"state": "active",
|
||||
"tenant_id": "openstack",
|
||||
"uptime": 3600,
|
||||
"vcpus": 1
|
||||
}
|
||||
],
|
||||
"start": "2013-09-09T13:18:28.101337",
|
||||
"stop": "2013-09-09T14:18:28.101337",
|
||||
"tenant_id": "openstack",
|
||||
"total_hours": 1.0,
|
||||
"total_local_gb_usage": 1.0,
|
||||
"total_memory_mb_usage": 512.0,
|
||||
"total_vcpus_usage": 1.0
|
||||
}
|
||||
}
|
@@ -0,0 +1,26 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<tenant_usage>
|
||||
<tenant_id>openstack</tenant_id>
|
||||
<total_local_gb_usage>1.0</total_local_gb_usage>
|
||||
<total_vcpus_usage>1.0</total_vcpus_usage>
|
||||
<total_memory_mb_usage>512.0</total_memory_mb_usage>
|
||||
<total_hours>1.0</total_hours>
|
||||
<start>2013-09-09 13:18:27.896728</start>
|
||||
<stop>2013-09-09 14:18:27.896728</stop>
|
||||
<server_usages>
|
||||
<server_usage>
|
||||
<instance_id>f14ff0d3-cebe-4692-9202-71946f4db8e4</instance_id>
|
||||
<name>new-server-test</name>
|
||||
<hours>1.0</hours>
|
||||
<memory_mb>512</memory_mb>
|
||||
<local_gb>1</local_gb>
|
||||
<vcpus>1</vcpus>
|
||||
<tenant_id>openstack</tenant_id>
|
||||
<flavor>m1.tiny</flavor>
|
||||
<started_at>2013-09-09 13:18:27.896728</started_at>
|
||||
<ended_at>None</ended_at>
|
||||
<state>active</state>
|
||||
<uptime>3600</uptime>
|
||||
</server_usage>
|
||||
</server_usages>
|
||||
</tenant_usage>
|
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"tenant_usages": [
|
||||
{
|
||||
"start": "2013-09-09T13:18:27.898411",
|
||||
"stop": "2013-09-09T14:18:27.898411",
|
||||
"tenant_id": "openstack",
|
||||
"total_hours": 1.0,
|
||||
"total_local_gb_usage": 1.0,
|
||||
"total_memory_mb_usage": 512.0,
|
||||
"total_vcpus_usage": 1.0
|
||||
}
|
||||
]
|
||||
}
|
@@ -0,0 +1,13 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<tenant_usages>
|
||||
<tenant_usage>
|
||||
<tenant_id>openstack</tenant_id>
|
||||
<total_local_gb_usage>1.0</total_local_gb_usage>
|
||||
<total_vcpus_usage>1.0</total_vcpus_usage>
|
||||
<total_memory_mb_usage>512.0</total_memory_mb_usage>
|
||||
<total_hours>1.0</total_hours>
|
||||
<start>2013-09-09 13:18:27.998271</start>
|
||||
<stop>2013-09-09 14:18:27.998271</stop>
|
||||
<server_usages/>
|
||||
</tenant_usage>
|
||||
</tenant_usages>
|
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"limits": {
|
||||
"absolute": {
|
||||
"maxImageMeta": 128,
|
||||
"maxPersonality": 5,
|
||||
"maxPersonalitySize": 10240,
|
||||
"maxSecurityGroupRules": 20,
|
||||
"maxSecurityGroups": 10,
|
||||
"maxServerMeta": 128,
|
||||
"maxTotalCores": 20,
|
||||
"maxTotalFloatingIps": 10,
|
||||
"maxTotalInstances": 10,
|
||||
"maxTotalKeypairs": 100,
|
||||
"maxTotalRAMSize": 51200
|
||||
},
|
||||
"rate": [
|
||||
{
|
||||
"limit": [
|
||||
{
|
||||
"next-available": "%(timestamp)s",
|
||||
"remaining": 10,
|
||||
"unit": "MINUTE",
|
||||
"value": 10,
|
||||
"verb": "POST"
|
||||
},
|
||||
{
|
||||
"next-available": "%(timestamp)s",
|
||||
"remaining": 10,
|
||||
"unit": "MINUTE",
|
||||
"value": 10,
|
||||
"verb": "PUT"
|
||||
},
|
||||
{
|
||||
"next-available": "%(timestamp)s",
|
||||
"remaining": 100,
|
||||
"unit": "MINUTE",
|
||||
"value": 100,
|
||||
"verb": "DELETE"
|
||||
}
|
||||
],
|
||||
"regex": ".*",
|
||||
"uri": "*"
|
||||
},
|
||||
{
|
||||
"limit": [
|
||||
{
|
||||
"next-available": "%(timestamp)s",
|
||||
"remaining": 50,
|
||||
"unit": "DAY",
|
||||
"value": 50,
|
||||
"verb": "POST"
|
||||
}
|
||||
],
|
||||
"regex": "^/servers",
|
||||
"uri": "*/servers"
|
||||
},
|
||||
{
|
||||
"limit": [
|
||||
{
|
||||
"next-available": "%(timestamp)s",
|
||||
"remaining": 3,
|
||||
"unit": "MINUTE",
|
||||
"value": 3,
|
||||
"verb": "GET"
|
||||
}
|
||||
],
|
||||
"regex": ".*changes_since.*",
|
||||
"uri": "*changes_since*"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@@ -0,0 +1,29 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<limits xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/common/api/v1.0">
|
||||
<rates>
|
||||
<rate regex=".*" uri="*">
|
||||
<limit next-available="%(timestamp)s" unit="MINUTE" verb="POST" remaining="10" value="10"/>
|
||||
<limit next-available="%(timestamp)s" unit="MINUTE" verb="PUT" remaining="10" value="10"/>
|
||||
<limit next-available="%(timestamp)s" unit="MINUTE" verb="DELETE" remaining="100" value="100"/>
|
||||
</rate>
|
||||
<rate regex="^/servers" uri="*/servers">
|
||||
<limit next-available="%(timestamp)s" unit="DAY" verb="POST" remaining="50" value="50"/>
|
||||
</rate>
|
||||
<rate regex=".*changes_since.*" uri="*changes_since*">
|
||||
<limit next-available="%(timestamp)s" unit="MINUTE" verb="GET" remaining="3" value="3"/>
|
||||
</rate>
|
||||
</rates>
|
||||
<absolute>
|
||||
<limit name="maxServerMeta" value="128"/>
|
||||
<limit name="maxPersonality" value="5"/>
|
||||
<limit name="maxImageMeta" value="128"/>
|
||||
<limit name="maxPersonalitySize" value="10240"/>
|
||||
<limit name="maxSecurityGroupRules" value="20"/>
|
||||
<limit name="maxTotalKeypairs" value="100"/>
|
||||
<limit name="maxSecurityGroups" value="10"/>
|
||||
<limit name="maxTotalCores" value="20"/>
|
||||
<limit name="maxTotalFloatingIps" value="10"/>
|
||||
<limit name="maxTotalInstances" value="10"/>
|
||||
<limit name="maxTotalRAMSize" value="51200"/>
|
||||
</absolute>
|
||||
</limits>
|
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"server" : {
|
||||
"name" : "new-server-test",
|
||||
"image_ref" : "%(host)s/openstack/images/%(image_id)s",
|
||||
"flavor_ref" : "%(host)s/openstack/flavors/1",
|
||||
"metadata" : {
|
||||
"My Server Name" : "Apache1"
|
||||
},
|
||||
"personality" : [
|
||||
{
|
||||
"path" : "/etc/banner.txt",
|
||||
"contents" : "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5kIGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVsc2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4gQnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRoZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlvdSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vyc2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6b25zLiINCg0KLVJpY2hhcmQgQmFjaA=="
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<server xmlns="http://docs.openstack.org/compute/api/v1.1" image_ref="%(host)s/openstack/images/%(image_id)s" flavor_ref="%(host)s/openstack/flavors/1" name="new-server-test">
|
||||
<metadata>
|
||||
<meta key="My Server Name">Apache1</meta>
|
||||
</metadata>
|
||||
<personality>
|
||||
<file path="/etc/banner.txt">
|
||||
ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp
|
||||
dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k
|
||||
IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs
|
||||
c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g
|
||||
QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo
|
||||
ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv
|
||||
dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy
|
||||
c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6
|
||||
b25zLiINCg0KLVJpY2hhcmQgQmFjaA==
|
||||
</file>
|
||||
</personality>
|
||||
</server>
|
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"server": {
|
||||
"admin_pass": "%(password)s",
|
||||
"id": "%(id)s",
|
||||
"links": [
|
||||
{
|
||||
"href": "http://openstack.example.com/v3/servers/%(uuid)s",
|
||||
"rel": "self"
|
||||
},
|
||||
{
|
||||
"href": "http://openstack.example.com/servers/%(uuid)s",
|
||||
"rel": "bookmark"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@@ -0,0 +1,6 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<server xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" id="%(id)s" admin_pass="%(password)s">
|
||||
<metadata/>
|
||||
<atom:link href="%(host)s/v3/servers/%(uuid)s" rel="self"/>
|
||||
<atom:link href="%(host)s/servers/%(uuid)s" rel="bookmark"/>
|
||||
</server>
|
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"tenant_usage": {
|
||||
"server_usages": [
|
||||
{
|
||||
"ended_at": null,
|
||||
"flavor": "m1.tiny",
|
||||
"hours": 1.0,
|
||||
"instance_id": "%(uuid)s",
|
||||
"local_gb": 1,
|
||||
"memory_mb": 512,
|
||||
"name": "new-server-test",
|
||||
"started_at": "%(timestamp)s",
|
||||
"state": "active",
|
||||
"tenant_id": "openstack",
|
||||
"uptime": 3600,
|
||||
"vcpus": 1
|
||||
}
|
||||
],
|
||||
"start": "%(timestamp)s",
|
||||
"stop": "%(timestamp)s",
|
||||
"tenant_id": "openstack",
|
||||
"total_hours": 1.0,
|
||||
"total_local_gb_usage": 1.0,
|
||||
"total_memory_mb_usage": 512.0,
|
||||
"total_vcpus_usage": 1.0
|
||||
}
|
||||
}
|
@@ -0,0 +1,26 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<tenant_usage>
|
||||
<tenant_id>openstack</tenant_id>
|
||||
<total_local_gb_usage>1.0</total_local_gb_usage>
|
||||
<total_vcpus_usage>1.0</total_vcpus_usage>
|
||||
<total_memory_mb_usage>512.0</total_memory_mb_usage>
|
||||
<total_hours>1.0</total_hours>
|
||||
<start>%(timestamp)s</start>
|
||||
<stop>%(timestamp)s</stop>
|
||||
<server_usages>
|
||||
<server_usage>
|
||||
<instance_id>%(uuid)s</instance_id>
|
||||
<name>new-server-test</name>
|
||||
<hours>1.0</hours>
|
||||
<memory_mb>512</memory_mb>
|
||||
<local_gb>1</local_gb>
|
||||
<vcpus>1</vcpus>
|
||||
<tenant_id>openstack</tenant_id>
|
||||
<flavor>m1.tiny</flavor>
|
||||
<started_at>%(timestamp)s</started_at>
|
||||
<ended_at>None</ended_at>
|
||||
<state>active</state>
|
||||
<uptime>3600</uptime>
|
||||
</server_usage>
|
||||
</server_usages>
|
||||
</tenant_usage>
|
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"tenant_usages": [
|
||||
{
|
||||
"start": "%(timestamp)s",
|
||||
"stop": "%(timestamp)s",
|
||||
"tenant_id": "openstack",
|
||||
"total_hours": 1.0,
|
||||
"total_local_gb_usage": 1.0,
|
||||
"total_memory_mb_usage": 512.0,
|
||||
"total_vcpus_usage": 1.0
|
||||
}
|
||||
]
|
||||
}
|
@@ -0,0 +1,13 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<tenant_usages>
|
||||
<tenant_usage>
|
||||
<tenant_id>openstack</tenant_id>
|
||||
<total_local_gb_usage>1.0</total_local_gb_usage>
|
||||
<total_vcpus_usage>1.0</total_vcpus_usage>
|
||||
<total_memory_mb_usage>512.0</total_memory_mb_usage>
|
||||
<total_hours>1.0</total_hours>
|
||||
<start>%(timestamp)s</start>
|
||||
<stop>%(timestamp)s</stop>
|
||||
<server_usages/>
|
||||
</tenant_usage>
|
||||
</tenant_usages>
|
30
nova/tests/integrated/v3/test_limits.py
Normal file
30
nova/tests/integrated/v3/test_limits.py
Normal file
@@ -0,0 +1,30 @@
|
||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
||||
# Copyright 2012 Nebula, Inc.
|
||||
# Copyright 2013 IBM Corp.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from nova.tests.integrated.v3 import api_sample_base
|
||||
|
||||
|
||||
class LimitsSampleJsonTest(api_sample_base.ApiSampleTestBaseV3):
|
||||
extension_name = "limits"
|
||||
|
||||
def test_limits_get(self):
|
||||
response = self._do_get('limits')
|
||||
subs = self._get_regexes()
|
||||
self._verify_response('limit-get-resp', subs, response, 200)
|
||||
|
||||
|
||||
class LimitsSampleXmlTest(LimitsSampleJsonTest):
|
||||
ctype = 'xml'
|
66
nova/tests/integrated/v3/test_simple_tenant_usage.py
Normal file
66
nova/tests/integrated/v3/test_simple_tenant_usage.py
Normal file
@@ -0,0 +1,66 @@
|
||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
||||
# Copyright 2012 Nebula, Inc.
|
||||
# Copyright 2013 IBM Corp.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import datetime
|
||||
import urllib
|
||||
|
||||
from nova.openstack.common import timeutils
|
||||
from nova.tests.integrated.v3 import test_servers
|
||||
|
||||
|
||||
class SimpleTenantUsageSampleJsonTest(test_servers.ServersSampleBase):
|
||||
extension_name = "os-simple-tenant-usage"
|
||||
|
||||
def setUp(self):
|
||||
"""setUp method for simple tenant usage."""
|
||||
super(SimpleTenantUsageSampleJsonTest, self).setUp()
|
||||
|
||||
started = timeutils.utcnow()
|
||||
now = started + datetime.timedelta(hours=1)
|
||||
|
||||
timeutils.set_time_override(started)
|
||||
self._post_server()
|
||||
timeutils.set_time_override(now)
|
||||
|
||||
self.query = {
|
||||
'start': str(started),
|
||||
'end': str(now)
|
||||
}
|
||||
|
||||
def tearDown(self):
|
||||
"""tearDown method for simple tenant usage."""
|
||||
super(SimpleTenantUsageSampleJsonTest, self).tearDown()
|
||||
timeutils.clear_time_override()
|
||||
|
||||
def test_get_tenants_usage(self):
|
||||
# Get api sample to get all tenants usage request.
|
||||
response = self._do_get('os-simple-tenant-usage?%s' % (
|
||||
urllib.urlencode(self.query)))
|
||||
subs = self._get_regexes()
|
||||
self._verify_response('simple-tenant-usage-get', subs, response, 200)
|
||||
|
||||
def test_get_tenant_usage_details(self):
|
||||
# Get api sample to get specific tenant usage request.
|
||||
tenant_id = 'openstack'
|
||||
response = self._do_get('os-simple-tenant-usage/%s?%s' % (tenant_id,
|
||||
urllib.urlencode(self.query)))
|
||||
subs = self._get_regexes()
|
||||
self._verify_response('simple-tenant-usage-get-specific', subs,
|
||||
response, 200)
|
||||
|
||||
|
||||
class SimpleTenantUsageSampleXmlTest(SimpleTenantUsageSampleJsonTest):
|
||||
ctype = "xml"
|
Reference in New Issue
Block a user