c552626664
* This is a massive patch that aims to clean up the codebase and bring it into compliance with HACKING.rst and PEP8 in one fell swoop. * Cleaned up use of gettext. * Updated log usage for consistency. * The tests run successfully against all plugins except cisco and nicira (due to dependency issues with these plugins). * Addresses bug 981208 Change-Id: I4d8c7ab138d8f7bb906d18dc34f88f8bd0581c19
198 lines
7.5 KiB
Python
198 lines
7.5 KiB
Python
# Copyright 2012 OpenStack LLC
|
|
# All Rights Reserved.
|
|
#
|
|
# 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 quantum import wsgi
|
|
from quantum.wsgi import Serializer
|
|
|
|
|
|
def create_request(path, body, content_type, method='GET', query_string=None):
|
|
if query_string:
|
|
url = "%s?%s" % (path, query_string)
|
|
else:
|
|
url = path
|
|
req = wsgi.Request.blank(url)
|
|
req.method = method
|
|
req.headers = {}
|
|
req.headers['Accept'] = content_type
|
|
req.body = body
|
|
return req
|
|
|
|
|
|
def _network_list_request(tenant_id, format='xml', detail=False,
|
|
query_string=None):
|
|
method = 'GET'
|
|
detail_str = detail and '/detail' or ''
|
|
path = ("/tenants/%(tenant_id)s/networks"
|
|
"%(detail_str)s.%(format)s") % locals()
|
|
content_type = "application/%s" % format
|
|
return create_request(path, None, content_type, method, query_string)
|
|
|
|
|
|
def network_list_request(tenant_id, format='xml', query_string=None):
|
|
return _network_list_request(tenant_id, format, query_string=query_string)
|
|
|
|
|
|
def network_list_detail_request(tenant_id, format='xml'):
|
|
return _network_list_request(tenant_id, format, detail=True)
|
|
|
|
|
|
def _show_network_request(tenant_id, network_id, format='xml', detail=False):
|
|
method = 'GET'
|
|
detail_str = detail and '/detail' or ''
|
|
path = ("/tenants/%(tenant_id)s/networks"
|
|
"/%(network_id)s%(detail_str)s.%(format)s") % locals()
|
|
content_type = "application/%s" % format
|
|
return create_request(path, None, content_type, method)
|
|
|
|
|
|
def show_network_request(tenant_id, network_id, format='xml'):
|
|
return _show_network_request(tenant_id, network_id, format)
|
|
|
|
|
|
def show_network_detail_request(tenant_id, network_id, format='xml'):
|
|
return _show_network_request(tenant_id, network_id, format, detail=True)
|
|
|
|
|
|
def new_network_request(tenant_id, network_name='new_name',
|
|
format='xml', custom_req_body=None):
|
|
method = 'POST'
|
|
path = "/tenants/%(tenant_id)s/networks.%(format)s" % locals()
|
|
data = custom_req_body or {'network': {'name': '%s' % network_name}}
|
|
content_type = "application/%s" % format
|
|
body = Serializer().serialize(data, content_type)
|
|
return create_request(path, body, content_type, method)
|
|
|
|
|
|
def update_network_request(tenant_id, network_id, network_name, format='xml',
|
|
custom_req_body=None):
|
|
method = 'PUT'
|
|
path = ("/tenants/%(tenant_id)s/networks"
|
|
"/%(network_id)s.%(format)s") % locals()
|
|
data = custom_req_body or {'network': {'name': '%s' % network_name}}
|
|
content_type = "application/%s" % format
|
|
body = Serializer().serialize(data, content_type)
|
|
return create_request(path, body, content_type, method)
|
|
|
|
|
|
def network_delete_request(tenant_id, network_id, format='xml'):
|
|
method = 'DELETE'
|
|
path = ("/tenants/%(tenant_id)s/networks/"
|
|
"%(network_id)s.%(format)s") % locals()
|
|
content_type = "application/%s" % format
|
|
return create_request(path, None, content_type, method)
|
|
|
|
|
|
def _port_list_request(tenant_id, network_id, format='xml',
|
|
detail=False, query_string=None):
|
|
method = 'GET'
|
|
detail_str = detail and '/detail' or ''
|
|
path = ("/tenants/%(tenant_id)s/networks/"
|
|
"%(network_id)s/ports%(detail_str)s.%(format)s") % locals()
|
|
content_type = "application/%s" % format
|
|
return create_request(path, None, content_type, method, query_string)
|
|
|
|
|
|
def port_list_request(tenant_id, network_id, format='xml', query_string=None):
|
|
return _port_list_request(tenant_id,
|
|
network_id,
|
|
format,
|
|
query_string=query_string)
|
|
|
|
|
|
def port_list_detail_request(tenant_id, network_id, format='xml'):
|
|
return _port_list_request(tenant_id, network_id,
|
|
format, detail=True)
|
|
|
|
|
|
def _show_port_request(tenant_id, network_id, port_id,
|
|
format='xml', detail=False):
|
|
method = 'GET'
|
|
detail_str = detail and '/detail' or ''
|
|
path = ("/tenants/%(tenant_id)s/networks/%(network_id)s"
|
|
"/ports/%(port_id)s%(detail_str)s.%(format)s") % locals()
|
|
content_type = "application/%s" % format
|
|
return create_request(path, None, content_type, method)
|
|
|
|
|
|
def show_port_request(tenant_id, network_id, port_id, format='xml'):
|
|
return _show_port_request(tenant_id, network_id, port_id, format)
|
|
|
|
|
|
def show_port_detail_request(tenant_id, network_id, port_id, format='xml'):
|
|
return _show_port_request(tenant_id, network_id, port_id,
|
|
format, detail=True)
|
|
|
|
|
|
def new_port_request(tenant_id, network_id, port_state,
|
|
format='xml', custom_req_body=None):
|
|
method = 'POST'
|
|
path = ("/tenants/%(tenant_id)s/networks/"
|
|
"%(network_id)s/ports.%(format)s") % locals()
|
|
data = (custom_req_body or port_state and
|
|
{'port': {'state': '%s' % port_state}})
|
|
content_type = "application/%s" % format
|
|
body = data and Serializer().serialize(data, content_type)
|
|
return create_request(path, body, content_type, method)
|
|
|
|
|
|
def port_delete_request(tenant_id, network_id, port_id, format='xml'):
|
|
method = 'DELETE'
|
|
path = ("/tenants/%(tenant_id)s/networks/"
|
|
"%(network_id)s/ports/%(port_id)s.%(format)s") % locals()
|
|
content_type = "application/%s" % format
|
|
return create_request(path, None, content_type, method)
|
|
|
|
|
|
def update_port_request(tenant_id, network_id, port_id, port_state,
|
|
format='xml', custom_req_body=None):
|
|
method = 'PUT'
|
|
path = ("/tenants/%(tenant_id)s/networks"
|
|
"/%(network_id)s/ports/%(port_id)s.%(format)s") % locals()
|
|
data = custom_req_body or {'port': {'state': '%s' % port_state}}
|
|
content_type = "application/%s" % format
|
|
body = Serializer().serialize(data, content_type)
|
|
return create_request(path, body, content_type, method)
|
|
|
|
|
|
def get_attachment_request(tenant_id, network_id, port_id, format='xml'):
|
|
method = 'GET'
|
|
path = ("/tenants/%(tenant_id)s/networks/"
|
|
"%(network_id)s/ports/%(port_id)s/"
|
|
"attachment.%(format)s") % locals()
|
|
content_type = "application/%s" % format
|
|
return create_request(path, None, content_type, method)
|
|
|
|
|
|
def put_attachment_request(tenant_id, network_id, port_id,
|
|
attachment_id, format='xml'):
|
|
method = 'PUT'
|
|
path = ("/tenants/%(tenant_id)s/networks/"
|
|
"%(network_id)s/ports/%(port_id)s/"
|
|
"attachment.%(format)s") % locals()
|
|
data = {'attachment': {'id': attachment_id}}
|
|
content_type = "application/%s" % format
|
|
body = Serializer().serialize(data, content_type)
|
|
return create_request(path, body, content_type, method)
|
|
|
|
|
|
def delete_attachment_request(tenant_id, network_id, port_id,
|
|
attachment_id, format='xml'):
|
|
method = 'DELETE'
|
|
path = ("/tenants/%(tenant_id)s/networks/"
|
|
"%(network_id)s/ports/%(port_id)s/"
|
|
"attachment.%(format)s") % locals()
|
|
content_type = "application/%s" % format
|
|
return create_request(path, None, content_type, method)
|