Change V3 access_ips extension into v2.1
This patch changes v3 access_ips API to v2.1 and makes v2 unit tests share between v2 and v2.1. The differences between v2 and v3 are described on the wiki page https://wiki.openstack.org/wiki/NovaAPIv2tov3 . Partially implements blueprint v2-on-v3-api Change-Id: Id464cbe4a8b7a7749c4f14e4531e4494dd315857
This commit is contained in:
parent
7d4dcfb2a9
commit
0063d17d74
@ -46,8 +46,8 @@
|
|||||||
"My Server Name": "Apache1"
|
"My Server Name": "Apache1"
|
||||||
},
|
},
|
||||||
"name": "new-server-test",
|
"name": "new-server-test",
|
||||||
"os-access-ips:access_ip_v4": "",
|
"accessIPv4": "",
|
||||||
"os-access-ips:access_ip_v6": "",
|
"accessIPv6": "",
|
||||||
"config_drive": "",
|
"config_drive": "",
|
||||||
"os-extended-availability-zone:availability_zone": "nova",
|
"os-extended-availability-zone:availability_zone": "nova",
|
||||||
"os-extended-server-attributes:host": "b8b357f7100d4391828f2177c922ef93",
|
"os-extended-server-attributes:host": "b8b357f7100d4391828f2177c922ef93",
|
||||||
|
@ -12,8 +12,8 @@
|
|||||||
"rel": "bookmark"
|
"rel": "bookmark"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"os-access-ips:access_ip_v4": "",
|
"accessIPv4": "",
|
||||||
"os-access-ips:access_ip_v6": "",
|
"accessIPv6": "",
|
||||||
"os-security-groups:security_groups": [
|
"os-security-groups:security_groups": [
|
||||||
{
|
{
|
||||||
"name": "default"
|
"name": "default"
|
||||||
|
@ -47,8 +47,8 @@
|
|||||||
"My Server Name": "Apache1"
|
"My Server Name": "Apache1"
|
||||||
},
|
},
|
||||||
"name": "new-server-test",
|
"name": "new-server-test",
|
||||||
"os-access-ips:access_ip_v4": "",
|
"accessIPv4": "",
|
||||||
"os-access-ips:access_ip_v6": "",
|
"accessIPv6": "",
|
||||||
"config_drive": "",
|
"config_drive": "",
|
||||||
"os-extended-availability-zone:availability_zone": "nova",
|
"os-extended-availability-zone:availability_zone": "nova",
|
||||||
"os-extended-server-attributes:host": "c3f14e9812ad496baf92ccfb3c61e15f",
|
"os-extended-server-attributes:host": "c3f14e9812ad496baf92ccfb3c61e15f",
|
||||||
|
@ -46,8 +46,8 @@
|
|||||||
"meta_var": "meta_val"
|
"meta_var": "meta_val"
|
||||||
},
|
},
|
||||||
"name": "new-server-test",
|
"name": "new-server-test",
|
||||||
"os-access-ips:access_ip_v4": "4.3.2.1",
|
"accessIPv4": "4.3.2.1",
|
||||||
"os-access-ips:access_ip_v6": "80fe::",
|
"accessIPv6": "80fe::",
|
||||||
"progress": 0,
|
"progress": 0,
|
||||||
"status": "ACTIVE",
|
"status": "ACTIVE",
|
||||||
"tenant_id": "openstack",
|
"tenant_id": "openstack",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"rebuild" : {
|
"rebuild" : {
|
||||||
"os-access-ips:access_ip_v4": "4.3.2.1",
|
"accessIPv4": "4.3.2.1",
|
||||||
"os-access-ips:access_ip_v6": "80fe::",
|
"accessIPv6": "80fe::",
|
||||||
"imageRef" : "http://glance.openstack.example.com/images/70a599e0-31e7-49b7-b260-868f441e862b",
|
"imageRef" : "http://glance.openstack.example.com/images/70a599e0-31e7-49b7-b260-868f441e862b",
|
||||||
"name" : "new-server-test",
|
"name" : "new-server-test",
|
||||||
"metadata" : {
|
"metadata" : {
|
||||||
|
@ -45,8 +45,8 @@
|
|||||||
"My Server Name": "Apache1"
|
"My Server Name": "Apache1"
|
||||||
},
|
},
|
||||||
"name": "new-server-test",
|
"name": "new-server-test",
|
||||||
"os-access-ips:access_ip_v4": "1.2.3.4",
|
"accessIPv4": "1.2.3.4",
|
||||||
"os-access-ips:access_ip_v6": "fe80::",
|
"accessIPv6": "fe80::",
|
||||||
"progress": 0,
|
"progress": 0,
|
||||||
"status": "ACTIVE",
|
"status": "ACTIVE",
|
||||||
"tenant_id": "openstack",
|
"tenant_id": "openstack",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"server" : {
|
"server" : {
|
||||||
"os-access-ips:access_ip_v4": "1.2.3.4",
|
"accessIPv4": "1.2.3.4",
|
||||||
"os-access-ips:access_ip_v6": "fe80::",
|
"accessIPv6": "fe80::",
|
||||||
"name" : "new-server-test",
|
"name" : "new-server-test",
|
||||||
"imageRef" : "http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b",
|
"imageRef" : "http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b",
|
||||||
"flavorRef" : "http://openstack.example.com/openstack/flavors/1",
|
"flavorRef" : "http://openstack.example.com/openstack/flavors/1",
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
"rel": "bookmark"
|
"rel": "bookmark"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"os-access-ips:access_ip_v4": "1.2.3.4",
|
"accessIPv4": "1.2.3.4",
|
||||||
"os-access-ips:access_ip_v6": "fe80::"
|
"accessIPv6": "fe80::"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"server": {
|
"server": {
|
||||||
"os-access-ips:access_ip_v4": "4.3.2.1",
|
"accessIPv4": "4.3.2.1",
|
||||||
"os-access-ips:access_ip_v6": "80fe::"
|
"accessIPv6": "80fe::"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -45,8 +45,8 @@
|
|||||||
"My Server Name": "Apache1"
|
"My Server Name": "Apache1"
|
||||||
},
|
},
|
||||||
"name": "new-server-test",
|
"name": "new-server-test",
|
||||||
"os-access-ips:access_ip_v4": "4.3.2.1",
|
"accessIPv4": "4.3.2.1",
|
||||||
"os-access-ips:access_ip_v6": "80fe::",
|
"accessIPv6": "80fe::",
|
||||||
"progress": 0,
|
"progress": 0,
|
||||||
"status": "ACTIVE",
|
"status": "ACTIVE",
|
||||||
"tenant_id": "openstack",
|
"tenant_id": "openstack",
|
||||||
|
@ -46,8 +46,8 @@
|
|||||||
"My Server Name": "Apache1"
|
"My Server Name": "Apache1"
|
||||||
},
|
},
|
||||||
"name": "new-server-test",
|
"name": "new-server-test",
|
||||||
"os-access-ips:access_ip_v4": "1.2.3.4",
|
"accessIPv4": "1.2.3.4",
|
||||||
"os-access-ips:access_ip_v6": "fe80::",
|
"accessIPv6": "fe80::",
|
||||||
"progress": 0,
|
"progress": 0,
|
||||||
"status": "ACTIVE",
|
"status": "ACTIVE",
|
||||||
"tenant_id": "openstack",
|
"tenant_id": "openstack",
|
||||||
|
@ -28,9 +28,9 @@ class AccessIPsController(wsgi.Controller):
|
|||||||
db_instance = req.get_db_instance(server['id'])
|
db_instance = req.get_db_instance(server['id'])
|
||||||
ip_v4 = db_instance.get('access_ip_v4')
|
ip_v4 = db_instance.get('access_ip_v4')
|
||||||
ip_v6 = db_instance.get('access_ip_v6')
|
ip_v6 = db_instance.get('access_ip_v6')
|
||||||
server['%s:access_ip_v4' % ALIAS] = (
|
server['accessIPv4'] = (
|
||||||
str(ip_v4) if ip_v4 is not None else '')
|
str(ip_v4) if ip_v4 is not None else '')
|
||||||
server['%s:access_ip_v6' % ALIAS] = (
|
server['accessIPv6'] = (
|
||||||
str(ip_v6) if ip_v6 is not None else '')
|
str(ip_v6) if ip_v6 is not None else '')
|
||||||
|
|
||||||
@wsgi.extends
|
@wsgi.extends
|
||||||
@ -76,8 +76,8 @@ class AccessIPs(extensions.V3APIExtensionBase):
|
|||||||
name = "AccessIPs"
|
name = "AccessIPs"
|
||||||
alias = ALIAS
|
alias = ALIAS
|
||||||
version = 1
|
version = 1
|
||||||
v4_key = '%s:access_ip_v4' % ALIAS
|
v4_key = 'accessIPv4'
|
||||||
v6_key = '%s:access_ip_v6' % ALIAS
|
v6_key = 'accessIPv6'
|
||||||
|
|
||||||
def get_controller_extensions(self):
|
def get_controller_extensions(self):
|
||||||
controller = AccessIPsController()
|
controller = AccessIPsController()
|
||||||
@ -115,10 +115,10 @@ class AccessIPs(extensions.V3APIExtensionBase):
|
|||||||
|
|
||||||
def _validate_access_ipv4(self, address):
|
def _validate_access_ipv4(self, address):
|
||||||
if not utils.is_valid_ipv4(address):
|
if not utils.is_valid_ipv4(address):
|
||||||
expl = _('access_ip_v4 is not proper IPv4 format')
|
expl = _('%s is not proper IPv4 format') % AccessIPs.v4_key
|
||||||
raise exc.HTTPBadRequest(explanation=expl)
|
raise exc.HTTPBadRequest(explanation=expl)
|
||||||
|
|
||||||
def _validate_access_ipv6(self, address):
|
def _validate_access_ipv6(self, address):
|
||||||
if not utils.is_valid_ipv6(address):
|
if not utils.is_valid_ipv6(address):
|
||||||
expl = _('access_ip_v6 is not proper IPv6 format')
|
expl = _('%s is not proper IPv6 format') % AccessIPs.v6_key
|
||||||
raise exc.HTTPBadRequest(explanation=expl)
|
raise exc.HTTPBadRequest(explanation=expl)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"server": {
|
"server": {
|
||||||
"os-access-ips:access_ip_v4": "",
|
"accessIPv4": "",
|
||||||
"os-access-ips:access_ip_v6": "",
|
"accessIPv6": "",
|
||||||
"addresses": {
|
"addresses": {
|
||||||
"private": [
|
"private": [
|
||||||
{
|
{
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
"name": "default"
|
"name": "default"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"os-access-ips:access_ip_v4": "",
|
"accessIPv4": "",
|
||||||
"os-access-ips:access_ip_v6": ""
|
"accessIPv6": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"servers": [
|
"servers": [
|
||||||
{
|
{
|
||||||
"os-access-ips:access_ip_v4": "",
|
"accessIPv4": "",
|
||||||
"os-access-ips:access_ip_v6": "",
|
"accessIPv6": "",
|
||||||
"addresses": {
|
"addresses": {
|
||||||
"private": [
|
"private": [
|
||||||
{
|
{
|
||||||
|
@ -51,7 +51,7 @@
|
|||||||
"tenant_id": "openstack",
|
"tenant_id": "openstack",
|
||||||
"updated": "%(isotime)s",
|
"updated": "%(isotime)s",
|
||||||
"user_id": "fake",
|
"user_id": "fake",
|
||||||
"os-access-ips:access_ip_v4": "%(access_ip_v4)s",
|
"accessIPv4": "%(access_ip_v4)s",
|
||||||
"os-access-ips:access_ip_v6": "%(access_ip_v6)s"
|
"accessIPv6": "%(access_ip_v6)s"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"rebuild" : {
|
"rebuild" : {
|
||||||
"os-access-ips:access_ip_v4": "%(access_ip_v4)s",
|
"accessIPv4": "%(access_ip_v4)s",
|
||||||
"os-access-ips:access_ip_v6": "%(access_ip_v6)s",
|
"accessIPv6": "%(access_ip_v6)s",
|
||||||
"imageRef" : "%(glance_host)s/images/%(image_id)s",
|
"imageRef" : "%(glance_host)s/images/%(image_id)s",
|
||||||
"name" : "new-server-test",
|
"name" : "new-server-test",
|
||||||
"metadata" : {
|
"metadata" : {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"server": {
|
"server": {
|
||||||
"os-access-ips:access_ip_v4": "%(access_ip_v4)s",
|
"accessIPv4": "%(access_ip_v4)s",
|
||||||
"os-access-ips:access_ip_v6": "%(access_ip_v6)s",
|
"accessIPv6": "%(access_ip_v6)s",
|
||||||
"addresses": {
|
"addresses": {
|
||||||
"private": [
|
"private": [
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"server" : {
|
"server" : {
|
||||||
"os-access-ips:access_ip_v4": "%(access_ip_v4)s",
|
"accessIPv4": "%(access_ip_v4)s",
|
||||||
"os-access-ips:access_ip_v6": "%(access_ip_v6)s",
|
"accessIPv6": "%(access_ip_v6)s",
|
||||||
"name" : "new-server-test",
|
"name" : "new-server-test",
|
||||||
"imageRef" : "%(host)s/openstack/images/%(image_id)s",
|
"imageRef" : "%(host)s/openstack/images/%(image_id)s",
|
||||||
"flavorRef" : "%(host)s/openstack/flavors/1",
|
"flavorRef" : "%(host)s/openstack/flavors/1",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"server": {
|
"server": {
|
||||||
"os-access-ips:access_ip_v4": "%(access_ip_v4)s",
|
"accessIPv4": "%(access_ip_v4)s",
|
||||||
"os-access-ips:access_ip_v6": "%(access_ip_v6)s",
|
"accessIPv6": "%(access_ip_v6)s",
|
||||||
"adminPass": "%(password)s",
|
"adminPass": "%(password)s",
|
||||||
"id": "%(id)s",
|
"id": "%(id)s",
|
||||||
"links": [
|
"links": [
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"server": {
|
"server": {
|
||||||
"os-access-ips:access_ip_v4": "%(access_ip_v4)s",
|
"accessIPv4": "%(access_ip_v4)s",
|
||||||
"os-access-ips:access_ip_v6": "%(access_ip_v6)s"
|
"accessIPv6": "%(access_ip_v6)s"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"server": {
|
"server": {
|
||||||
"os-access-ips:access_ip_v4": "%(access_ip_v4)s",
|
"accessIPv4": "%(access_ip_v4)s",
|
||||||
"os-access-ips:access_ip_v6": "%(access_ip_v6)s",
|
"accessIPv6": "%(access_ip_v6)s",
|
||||||
"addresses": {
|
"addresses": {
|
||||||
"private": [
|
"private": [
|
||||||
{
|
{
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"servers": [
|
"servers": [
|
||||||
{
|
{
|
||||||
"os-access-ips:access_ip_v4": "%(access_ip_v4)s",
|
"accessIPv4": "%(access_ip_v4)s",
|
||||||
"os-access-ips:access_ip_v6": "%(access_ip_v6)s",
|
"accessIPv6": "%(access_ip_v6)s",
|
||||||
"addresses": {
|
"addresses": {
|
||||||
"private": [
|
"private": [
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user