vmware-nsx/quantum/tests/unit/testlib_api.py
Maru Newby c552626664 Update codebase for HACKING compliance.
* 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
2012-05-01 11:46:24 -07:00

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)