diff options
author | Jenkins <jenkins@review.openstack.org> | 2014-10-22 07:35:36 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2014-10-22 07:35:36 +0000 |
commit | 660588bf569c3cad234b26e9250e75be10761e77 (patch) | |
tree | 25b4f7fb64b105bcf6796fb1d2e2d9b53b803d05 /nova/api/openstack/compute/plugins | |
parent | e96d4d29bcf6f37bbad0d18464f62b5a63b0c5ec (diff) | |
parent | 72859d6fbf172c50dd7d9ed3f90d6f4fb43c0382 (diff) | |
download | nova-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.py | 27 |
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. |