Adds API for bulk creation/deletion of floating IPs

This adds an extension that provides a REST API for the bulk creation,
deletion and listing of floating IPs. The interface is accessed via

/v2/{tenant_id}/os-floating-ips-bulk

This forms part of the work to provide APIs for functionality currently
implemented by nova-manage that needs direct db access so nova-manage
can eventually be removed

Implements: blueprint apis-for-nova-manage
DocImpact

Change-Id: I621e2b070a896f7230cdf3f26f78ded85e72cf16
This commit is contained in:
Chris Yeoh 2012-11-01 10:49:53 +10:30
parent f42707b4d3
commit 1902d28761
13 changed files with 108 additions and 0 deletions

View File

@ -0,0 +1,8 @@
{
"floating_ips_bulk_create" :
{
"ip_range": "192.168.1.0/24",
"pool": "nova",
"interface": "eth0"
}
}

View File

@ -0,0 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<floating_ips_bulk_create>
<ip_range>192.168.1.0/24</ip_range>
<pool>nova</pool>
<interface>eth0</interface>
</floating_ips_bulk_create>

View File

@ -0,0 +1,7 @@
{
"floating_ips_bulk_create": {
"interface": "eth0",
"ip_range": "192.168.1.0/24",
"pool": "nova"
}
}

View File

@ -0,0 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<floating_ips_bulk_create>
<interface>eth0</interface>
<ip_range>192.168.1.0/24</ip_range>
<pool>nova</pool>
</floating_ips_bulk_create>

View File

@ -0,0 +1,3 @@
{
"ip_range": "192.168.1.0/24"
}

View File

@ -0,0 +1,2 @@
<?xml version='1.0' encoding='UTF-8'?>
<ip_range>192.168.1.0/24</ip_range>

View File

@ -0,0 +1,3 @@
{
"floating_ips_bulk_delete": "192.168.1.0/24"
}

View File

@ -0,0 +1,2 @@
<?xml version='1.0' encoding='UTF-8'?>
<floating_ips_bulk_delete>192.168.1.0/24</floating_ips_bulk_delete>

View File

@ -0,0 +1,11 @@
{
"floating_ip_info": [
{
"address": "10.10.10.3",
"instance_uuid": null,
"interface": "eth0",
"pool": "nova",
"project_id": null
}
]
}

View File

@ -0,0 +1,10 @@
<?xml version='1.0' encoding='UTF-8'?>
<floating_ip_info>
<item>
<interface>eth0</interface>
<instance_uuid>None</instance_uuid>
<project_id>None</project_id>
<pool>nova</pool>
<address>10.10.10.3</address>
</item>
</floating_ip_info>

View File

@ -0,0 +1,25 @@
{
"floating_ip_info": [
{
"address": "10.10.10.1",
"instance_uuid": null,
"interface": "eth0",
"pool": "nova",
"project_id": null
},
{
"address": "10.10.10.2",
"instance_uuid": null,
"interface": "eth0",
"pool": "nova",
"project_id": null
},
{
"address": "10.10.10.3",
"instance_uuid": null,
"interface": "eth0",
"pool": "nova",
"project_id": null
}
]
}

View File

@ -0,0 +1,24 @@
<?xml version='1.0' encoding='UTF-8'?>
<floating_ip_info>
<item>
<interface>eth0</interface>
<instance_uuid>None</instance_uuid>
<project_id>None</project_id>
<pool>nova</pool>
<address>10.10.10.1</address>
</item>
<item>
<interface>eth0</interface>
<instance_uuid>None</instance_uuid>
<project_id>None</project_id>
<pool>nova</pool>
<address>10.10.10.2</address>
</item>
<item>
<interface>eth0</interface>
<instance_uuid>None</instance_uuid>
<project_id>None</project_id>
<pool>nova</pool>
<address>10.10.10.3</address>
</item>
</floating_ip_info>

View File

@ -105,6 +105,7 @@
"compute_extension:floating_ip_dns": "",
"compute_extension:floating_ip_pools": "",
"compute_extension:floating_ips": "",
"compute_extension:floating_ips_bulk": "",
"compute_extension:fping": "",
"compute_extension:fping:all_tenants": "is_admin:True",
"compute_extension:hosts": "",