summaryrefslogtreecommitdiff
path: root/nova/api/openstack/compute/plugins
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-10-22 07:35:36 +0000
committerGerrit Code Review <review@openstack.org>2014-10-22 07:35:36 +0000
commit660588bf569c3cad234b26e9250e75be10761e77 (patch)
tree25b4f7fb64b105bcf6796fb1d2e2d9b53b803d05 /nova/api/openstack/compute/plugins
parente96d4d29bcf6f37bbad0d18464f62b5a63b0c5ec (diff)
parent72859d6fbf172c50dd7d9ed3f90d6f4fb43c0382 (diff)
downloadnova-660588bf569c3cad234b26e9250e75be10761e77.tar.gz
Merge "Port update method of cloudpipe_update to v2.1(v3)"
Diffstat (limited to 'nova/api/openstack/compute/plugins')
-rw-r--r--nova/api/openstack/compute/plugins/v3/cloudpipe.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/nova/api/openstack/compute/plugins/v3/cloudpipe.py b/nova/api/openstack/compute/plugins/v3/cloudpipe.py
index 5c4dd8c6fb..6d57d15c72 100644
--- a/nova/api/openstack/compute/plugins/v3/cloudpipe.py
+++ b/nova/api/openstack/compute/plugins/v3/cloudpipe.py
@@ -18,8 +18,10 @@ from oslo.config import cfg
from oslo.utils import timeutils
from webob import exc
+from nova.api.openstack.compute.schemas.v3 import cloudpipe
from nova.api.openstack import extensions
from nova.api.openstack import wsgi
+from nova.api import validation
from nova.cloudpipe import pipelib
from nova import compute
from nova.compute import utils as compute_utils
@@ -27,6 +29,7 @@ from nova.compute import vm_states
from nova import exception
from nova.i18n import _
from nova import network
+from nova import objects
from nova.openstack.common import fileutils
from nova import utils
@@ -143,6 +146,30 @@ class CloudpipeController(wsgi.Controller):
for x in self._get_all_cloudpipes(context)]
return {'cloudpipes': vpns}
+ @wsgi.response(202)
+ @extensions.expected_errors(400)
+ @validation.schema(cloudpipe.update)
+ def update(self, req, id, body):
+ """Configure cloudpipe parameters for the project."""
+
+ context = req.environ['nova.context']
+ authorize(context)
+
+ if id != "configure-project":
+ msg = _("Unknown action %s") % id
+ raise exc.HTTPBadRequest(explanation=msg)
+
+ project_id = context.project_id
+ networks = objects.NetworkList.get_by_project(context, project_id)
+
+ params = body['configure_project']
+ vpn_ip = params['vpn_ip']
+ vpn_port = params['vpn_port']
+ for nw in networks:
+ nw.vpn_public_address = vpn_ip
+ nw.vpn_public_port = vpn_port
+ nw.save()
+
class Cloudpipe(extensions.V3APIExtensionBase):
"""Adds actions to create cloudpipe instances.