pep8 fixes for quantum integration files
Fixing PEP8 compliance issues for the quantum integration effort.
This commit is contained in:
parent
7428d9e7f0
commit
e99c87b61a
@ -248,7 +248,7 @@ class ServiceCatalogException(api_exceptions.ApiException):
|
||||
|
||||
|
||||
class VirtualInterface(APIResourceWrapper):
|
||||
_attrs = ['id','mac_address']
|
||||
_attrs = ['id', 'mac_address']
|
||||
|
||||
|
||||
def url_for(request, service_name, admin=False):
|
||||
@ -358,7 +358,7 @@ def quantum_api(request):
|
||||
else:
|
||||
tenant = settings.QUANTUM_TENANT
|
||||
|
||||
return quantum.client.Client(settings.QUANTUM_URL, settings.QUANTUM_PORT,
|
||||
return quantum.client.Client(settings.QUANTUM_URL, settings.QUANTUM_PORT,
|
||||
False, tenant, 'json')
|
||||
|
||||
|
||||
@ -407,6 +407,7 @@ def snapshot_list_detailed(request):
|
||||
return [Image(i) for i in glance_api(request)
|
||||
.get_images_detailed(filters=filters)]
|
||||
|
||||
|
||||
def snapshot_create(request, instance_id, name):
|
||||
return extras_api(request).snapshots.create(instance_id, name)
|
||||
|
||||
@ -659,45 +660,59 @@ def swift_get_object_data(request, container_name, object_name):
|
||||
container = swift_api(request).get_container(container_name)
|
||||
return container.get_object(object_name).stream()
|
||||
|
||||
|
||||
def quantum_list_networks(request):
|
||||
return quantum_api(request).list_networks()
|
||||
|
||||
|
||||
def quantum_network_details(request, network_id):
|
||||
return quantum_api(request).show_network_details(network_id)
|
||||
|
||||
|
||||
def quantum_list_ports(request, network_id):
|
||||
return quantum_api(request).list_ports(network_id)
|
||||
|
||||
|
||||
def quantum_port_details(request, network_id, port_id):
|
||||
return quantum_api(request).show_port_details(network_id, port_id)
|
||||
|
||||
|
||||
def quantum_create_network(request, data):
|
||||
return quantum_api(request).create_network(data)
|
||||
|
||||
|
||||
def quantum_delete_network(request, network_id):
|
||||
return quantum_api(request).delete_network(network_id)
|
||||
|
||||
|
||||
def quantum_update_network(request, network_id, data):
|
||||
return quantum_api(request).update_network(network_id, data)
|
||||
|
||||
|
||||
def quantum_create_port(request, network_id):
|
||||
return quantum_api(request).create_port(network_id)
|
||||
|
||||
|
||||
def quantum_delete_port(request, network_id, port_id):
|
||||
return quantum_api(request).delete_port(network_id, port_id)
|
||||
|
||||
|
||||
def quantum_attach_port(request, network_id, port_id, data):
|
||||
return quantum_api(request).attach_resource(network_id, port_id, data)
|
||||
|
||||
|
||||
def quantum_detach_port(request, network_id, port_id):
|
||||
return quantum_api(request).detach_resource(network_id, port_id)
|
||||
|
||||
def quantum_set_port_state(request, network_id, port_id ,data):
|
||||
return quantum_api(request).set_port_state(network_id, port_id, body)
|
||||
|
||||
def quantum_set_port_state(request, network_id, port_id, data):
|
||||
return quantum_api(request).set_port_state(network_id, port_id, data)
|
||||
|
||||
|
||||
def quantum_port_attachment(request, network_id, port_id):
|
||||
return quantum_api(request).show_port_attachment(network_id, port_id)
|
||||
|
||||
|
||||
def get_vif_ids(request):
|
||||
vifs = []
|
||||
attached_vifs = []
|
||||
@ -707,32 +722,37 @@ def get_vif_ids(request):
|
||||
ports = quantum_api(request).list_ports(network['id'])
|
||||
# Get port attachments
|
||||
for port in ports['ports']:
|
||||
port_attachment = quantum_api(request).show_port_attachment(network['id'], port['id'])
|
||||
port_attachment = quantum_api(request).show_port_attachment(
|
||||
network['id'],
|
||||
port['id'])
|
||||
if port_attachment['attachment']:
|
||||
attached_vifs.append(port_attachment['attachment']['id'].encode('ascii'))
|
||||
attached_vifs.append(
|
||||
port_attachment['attachment']['id'].encode('ascii'))
|
||||
# Get all instances
|
||||
instances = server_list(request)
|
||||
# Get virtual interface ids by instance
|
||||
for instance in instances:
|
||||
instance_vifs = extras_api(request).virtual_interfaces.list(instance.id)
|
||||
id = instance.id
|
||||
instance_vifs = extras_api(request).virtual_interfaces.list(id)
|
||||
for vif in instance_vifs:
|
||||
# Check if this VIF is already connected to any port
|
||||
if str(vif.id) in attached_vifs:
|
||||
vifs.append({
|
||||
'id' : vif.id,
|
||||
'instance' : instance.id,
|
||||
'instance_name' : instance.name,
|
||||
'available' : False
|
||||
'id': vif.id,
|
||||
'instance': instance.id,
|
||||
'instance_name': instance.name,
|
||||
'available': False
|
||||
})
|
||||
else:
|
||||
vifs.append({
|
||||
'id' : vif.id,
|
||||
'instance' : instance.id,
|
||||
'instance_name' : instance.name,
|
||||
'available' : True
|
||||
'id': vif.id,
|
||||
'instance': instance.id,
|
||||
'instance_name': instance.name,
|
||||
'available': True
|
||||
})
|
||||
return vifs
|
||||
|
||||
|
||||
|
||||
class GlobalSummary(object):
|
||||
node_resources = ['vcpus', 'disk_size', 'ram_size']
|
||||
unit_mem_size = {'disk_size': ['GiB', 'TiB'], 'ram_size': ['MiB', 'GiB']}
|
||||
|
@ -44,9 +44,10 @@ import warnings
|
||||
|
||||
LOG = logging.getLogger('django_openstack.dash.views.networks')
|
||||
|
||||
|
||||
class CreateNetwork(forms.SelfHandlingForm):
|
||||
name = forms.CharField(required=True, label="Network Name")
|
||||
|
||||
|
||||
def handle(self, request, data):
|
||||
network_name = data['name']
|
||||
|
||||
@ -63,8 +64,9 @@ class CreateNetwork(forms.SelfHandlingForm):
|
||||
msg = 'Network %s has been created.' % network_name
|
||||
LOG.info(msg)
|
||||
messages.success(request, msg)
|
||||
return shortcuts.redirect('dash_networks', tenant_id=request.user.tenant)
|
||||
|
||||
return shortcuts.redirect('dash_networks',
|
||||
tenant_id=request.user.tenant)
|
||||
|
||||
|
||||
class DeleteNetwork(forms.SelfHandlingForm):
|
||||
network = forms.CharField(widget=forms.HiddenInput())
|
||||
@ -83,15 +85,16 @@ class DeleteNetwork(forms.SelfHandlingForm):
|
||||
messages.success(request, msg)
|
||||
|
||||
return shortcuts.redirect(request.build_absolute_uri())
|
||||
|
||||
|
||||
|
||||
class RenameNetwork(forms.SelfHandlingForm):
|
||||
network = forms.CharField(widget=forms.HiddenInput())
|
||||
new_name = forms.CharField(required=True)
|
||||
|
||||
|
||||
def handle(self, request, data):
|
||||
try:
|
||||
LOG.info('Renaming network %s to %s' % (data['network'], data['new_name']))
|
||||
LOG.info('Renaming network %s to %s' %
|
||||
(data['network'], data['new_name']))
|
||||
send_data = {'network': {'name': '%s' % data['new_name']}}
|
||||
api.quantum_update_network(request, data['network'], send_data)
|
||||
except Exception, e:
|
||||
@ -99,20 +102,21 @@ class RenameNetwork(forms.SelfHandlingForm):
|
||||
'Unable to rename network %s: %s' %
|
||||
(data['network'], e.message,))
|
||||
else:
|
||||
msg = 'Network %s has been renamed to %s.' % (data['network'], data['new_name'])
|
||||
msg = 'Network %s has been renamed to %s.' % \
|
||||
(data['network'], data['new_name'])
|
||||
LOG.info(msg)
|
||||
messages.success(request, msg)
|
||||
|
||||
return shortcuts.redirect(request.build_absolute_uri())
|
||||
|
||||
|
||||
|
||||
|
||||
@login_required
|
||||
def index(request, tenant_id):
|
||||
delete_form, delete_handled = DeleteNetwork.maybe_handle(request)
|
||||
|
||||
|
||||
networks = []
|
||||
instances = []
|
||||
|
||||
|
||||
try:
|
||||
networks_list = api.quantum_list_networks(request)
|
||||
details = []
|
||||
@ -121,20 +125,20 @@ def index(request, tenant_id):
|
||||
# Get network details like name and id
|
||||
details = api.quantum_network_details(request, network['id'])
|
||||
networks.append({
|
||||
'name' : details['network']['name'],
|
||||
'id' : network['id'],
|
||||
'total' : net_stats['total'],
|
||||
'available' : net_stats['available'],
|
||||
'used' : net_stats['used'],
|
||||
'tenant' : tenant_id
|
||||
'name': details['network']['name'],
|
||||
'id': network['id'],
|
||||
'total': net_stats['total'],
|
||||
'available': net_stats['available'],
|
||||
'used': net_stats['used'],
|
||||
'tenant': tenant_id
|
||||
})
|
||||
|
||||
|
||||
except Exception, e:
|
||||
messages.error(request, 'Unable to get network list: %s' % e.message)
|
||||
|
||||
return shortcuts.render_to_response('dash_networks.html', {
|
||||
'networks': networks,
|
||||
'delete_form' : delete_form,
|
||||
'delete_form': delete_form,
|
||||
}, context_instance=template.RequestContext(request))
|
||||
|
||||
|
||||
@ -143,34 +147,34 @@ def create(request, tenant_id):
|
||||
network_form, handled = CreateNetwork.maybe_handle(request)
|
||||
if handled:
|
||||
return shortcuts.redirect('dash_networks', request.user.tenant)
|
||||
|
||||
|
||||
return shortcuts.render_to_response('dash_network_create.html', {
|
||||
'network_form' : network_form
|
||||
'network_form': network_form
|
||||
}, context_instance=template.RequestContext(request))
|
||||
|
||||
|
||||
|
||||
@login_required
|
||||
def detail(request, tenant_id, network_id):
|
||||
delete_port_form, delete_handled = DeletePort.maybe_handle(request)
|
||||
detach_port_form, detach_handled = DetachPort.maybe_handle(request)
|
||||
delete_port_form, delete_handled = DeletePort.maybe_handle(request)
|
||||
detach_port_form, detach_handled = DetachPort.maybe_handle(request)
|
||||
toggle_port_form, port_toggle_handled = TogglePort.maybe_handle(request)
|
||||
|
||||
|
||||
network = {}
|
||||
|
||||
|
||||
try:
|
||||
network_details = api.quantum_network_details(request, network_id)
|
||||
network['name'] = network_details['network']['name']
|
||||
network['id'] = network_id
|
||||
network['ports'] = _get_port_states(request, tenant_id, network_id)
|
||||
except Exception, e:
|
||||
messages.error(request, 'Unable to get network details: %s' % e.message)
|
||||
messages.error(request, 'Unable to get network details:%s' % e.message)
|
||||
|
||||
return shortcuts.render_to_response('dash_networks_detail.html', {
|
||||
'network': network,
|
||||
'tenant' : tenant_id,
|
||||
'delete_port_form' : delete_port_form,
|
||||
'detach_port_form' : detach_port_form,
|
||||
'toggle_port_form' : toggle_port_form
|
||||
'tenant': tenant_id,
|
||||
'delete_port_form': delete_port_form,
|
||||
'detach_port_form': detach_port_form,
|
||||
'toggle_port_form': toggle_port_form
|
||||
}, context_instance=template.RequestContext(request))
|
||||
|
||||
|
||||
@ -178,29 +182,32 @@ def detail(request, tenant_id, network_id):
|
||||
def rename(request, tenant_id, network_id):
|
||||
rename_form, handled = RenameNetwork.maybe_handle(request)
|
||||
network_details = api.quantum_network_details(request, network_id)
|
||||
|
||||
|
||||
if handled:
|
||||
return shortcuts.redirect('dash_networks', request.user.tenant)
|
||||
|
||||
|
||||
return shortcuts.render_to_response('dash_network_rename.html', {
|
||||
'network' : network_details,
|
||||
'rename_form' : rename_form
|
||||
'network': network_details,
|
||||
'rename_form': rename_form
|
||||
}, context_instance=template.RequestContext(request))
|
||||
|
||||
"""
|
||||
Helper method to find port states for a network
|
||||
"""
|
||||
|
||||
def _get_port_states(request, tenant_id, network_id):
|
||||
"""
|
||||
Helper method to find port states for a network
|
||||
"""
|
||||
network_ports = []
|
||||
# Get all vifs for comparison with port attachments
|
||||
vifs = api.get_vif_ids(request)
|
||||
|
||||
|
||||
# Get all ports on this network
|
||||
ports = api.quantum_list_ports(request, network_id)
|
||||
for port in ports['ports']:
|
||||
port_details = api.quantum_port_details(request, network_id, port['id'])
|
||||
port_details = api.quantum_port_details(request,
|
||||
network_id, port['id'])
|
||||
# Get port attachments
|
||||
port_attachment = api.quantum_port_attachment(request, network_id, port['id'])
|
||||
port_attachment = api.quantum_port_attachment(request,
|
||||
network_id, port['id'])
|
||||
# Find instance the attachment belongs to
|
||||
connected_instance = None
|
||||
if port_attachment['attachment']:
|
||||
@ -209,17 +216,18 @@ def _get_port_states(request, tenant_id, network_id):
|
||||
connected_instance = vif['instance_name']
|
||||
break
|
||||
network_ports.append({
|
||||
'id' : port_details['port']['id'],
|
||||
'state' : port_details['port']['state'],
|
||||
'attachment' : port_attachment['attachment'],
|
||||
'instance' : connected_instance
|
||||
'id': port_details['port']['id'],
|
||||
'state': port_details['port']['state'],
|
||||
'attachment': port_attachment['attachment'],
|
||||
'instance': connected_instance
|
||||
})
|
||||
return network_ports
|
||||
|
||||
"""
|
||||
Helper method to calculate statistics for a network
|
||||
"""
|
||||
|
||||
def _calc_network_stats(request, tenant_id, network_id):
|
||||
"""
|
||||
Helper method to calculate statistics for a network
|
||||
"""
|
||||
# Get all ports statistics for the network
|
||||
total = 0
|
||||
available = 0
|
||||
@ -228,10 +236,11 @@ def _calc_network_stats(request, tenant_id, network_id):
|
||||
for port in ports['ports']:
|
||||
total += 1
|
||||
# Get port attachment
|
||||
port_attachment = api.quantum_port_attachment(request, network_id, port['id'])
|
||||
port_attachment = api.quantum_port_attachment(request,
|
||||
network_id, port['id'])
|
||||
if port_attachment['attachment']:
|
||||
used += 1
|
||||
else:
|
||||
available += 1
|
||||
|
||||
return { 'total' : total, 'used' : used, 'available': available }
|
||||
|
||||
return {'total': total, 'used': used, 'available': available}
|
||||
|
@ -41,38 +41,42 @@ LOG = logging.getLogger('django_openstack.dash.views.ports')
|
||||
class CreatePort(forms.SelfHandlingForm):
|
||||
network = forms.CharField(widget=forms.HiddenInput())
|
||||
ports_num = forms.IntegerField(required=True, label="Number of Ports")
|
||||
|
||||
|
||||
def handle(self, request, data):
|
||||
try:
|
||||
LOG.info('Creating %s ports on network %s' % (data['ports_num'], data['network']))
|
||||
LOG.info('Creating %s ports on network %s' %
|
||||
(data['ports_num'], data['network']))
|
||||
for i in range(0, data['ports_num']):
|
||||
api.quantum_create_port(request, data['network'])
|
||||
except Exception, e:
|
||||
messages.error(request,
|
||||
'Unable to create ports on network %s: %s' %
|
||||
(data['network'], e.message,))
|
||||
(data['network'], e.message))
|
||||
else:
|
||||
msg = '%s ports created on network %s.' % (data['ports_num'], data['network'])
|
||||
msg = '%s ports created on network %s.' % \
|
||||
(data['ports_num'], data['network'])
|
||||
LOG.info(msg)
|
||||
messages.success(request, msg)
|
||||
|
||||
|
||||
return shortcuts.redirect(request.build_absolute_uri())
|
||||
|
||||
|
||||
class DeletePort(forms.SelfHandlingForm):
|
||||
network = forms.CharField(widget=forms.HiddenInput())
|
||||
port = forms.CharField(widget=forms.HiddenInput())
|
||||
|
||||
|
||||
def handle(self, request, data):
|
||||
try:
|
||||
LOG.info('Deleting %s ports on network %s' % (data['port'], data['network']))
|
||||
LOG.info('Deleting %s ports on network %s' %
|
||||
(data['port'], data['network']))
|
||||
api.quantum_delete_port(request, data['network'], data['port'])
|
||||
except Exception, e:
|
||||
messages.error(request,
|
||||
'Unable to delete port %s: %s' %
|
||||
(data['port'], e.message,))
|
||||
else:
|
||||
msg = 'Port %s deleted from network %s.' % (data['port'], data['network'])
|
||||
msg = 'Port %s deleted from network %s.' % \
|
||||
(data['port'], data['network'])
|
||||
LOG.info(msg)
|
||||
messages.success(request, msg)
|
||||
return shortcuts.redirect(request.build_absolute_uri())
|
||||
@ -81,32 +85,36 @@ class DeletePort(forms.SelfHandlingForm):
|
||||
class AttachPort(forms.SelfHandlingForm):
|
||||
network = forms.CharField(widget=forms.HiddenInput())
|
||||
port = forms.CharField(widget=forms.HiddenInput())
|
||||
vif_id = forms.CharField(widget=forms.Select(), label="Select VIF to connect")
|
||||
|
||||
vif_id = forms.CharField(widget=forms.Select(),
|
||||
label="Select VIF to connect")
|
||||
|
||||
def handle(self, request, data):
|
||||
try:
|
||||
LOG.info('Attaching %s port to VIF %s' % (data['port'], data['vif_id']))
|
||||
LOG.info('Attaching %s port to VIF %s' %
|
||||
(data['port'], data['vif_id']))
|
||||
body = {'attachment': {'id': '%s' % data['vif_id']}}
|
||||
api.quantum_attach_resource(request, data['network'], data['port'], body)
|
||||
api.quantum_attach_port(request,
|
||||
data['network'], data['port'], body)
|
||||
except Exception, e:
|
||||
messages.error(request,
|
||||
'Unable to attach port %s to VIF %s: %s' %
|
||||
(data['port'], data['vif_id'], e.message,))
|
||||
else:
|
||||
msg = 'Port %s connected to VIF %s.' % (data['port'], data['vif_id'])
|
||||
msg = 'Port %s connected to VIF %s.' % \
|
||||
(data['port'], data['vif_id'])
|
||||
LOG.info(msg)
|
||||
messages.success(request, msg)
|
||||
return shortcuts.redirect(request.build_absolute_uri())
|
||||
|
||||
|
||||
|
||||
class DetachPort(forms.SelfHandlingForm):
|
||||
network = forms.CharField(widget=forms.HiddenInput())
|
||||
port = forms.CharField(widget=forms.HiddenInput())
|
||||
|
||||
|
||||
def handle(self, request, data):
|
||||
try:
|
||||
LOG.info('Detaching port %s' % data['port'])
|
||||
api.quantum_detach_resource(request, data['network'], data['port'])
|
||||
api.quantum_detach_port(request, data['network'], data['port'])
|
||||
except Exception, e:
|
||||
messages.error(request,
|
||||
'Unable to detach port %s: %s' %
|
||||
@ -122,71 +130,74 @@ class TogglePort(forms.SelfHandlingForm):
|
||||
network = forms.CharField(widget=forms.HiddenInput())
|
||||
port = forms.CharField(widget=forms.HiddenInput())
|
||||
state = forms.CharField(widget=forms.HiddenInput())
|
||||
|
||||
|
||||
def handle(self, request, data):
|
||||
try:
|
||||
LOG.info('Toggling port state to %s' % data['state'])
|
||||
body = {'port': {'state': '%s' % data['state']}}
|
||||
api.quantum_set_port_state(request, data['network'], data['port'], body)
|
||||
api.quantum_set_port_state(request,
|
||||
data['network'], data['port'], body)
|
||||
except Exception, e:
|
||||
messages.error(request,
|
||||
'Unable to set port state to %s: %s' %
|
||||
(data['state'], e.message,))
|
||||
else:
|
||||
msg = 'Port %s state set to %s.' % (data['port'],data['state'])
|
||||
msg = 'Port %s state set to %s.' % (data['port'], data['state'])
|
||||
LOG.info(msg)
|
||||
messages.success(request, msg)
|
||||
return shortcuts.redirect(request.build_absolute_uri())
|
||||
|
||||
|
||||
|
||||
@login_required
|
||||
def create(request, tenant_id, network_id):
|
||||
create_form, handled = CreatePort.maybe_handle(request)
|
||||
|
||||
create_form, handled = CreatePort.maybe_handle(request)
|
||||
|
||||
if handled:
|
||||
return shortcuts.redirect(
|
||||
'dash_networks_detail',
|
||||
tenant_id=request.user.tenant,
|
||||
'dash_networks_detail',
|
||||
tenant_id=request.user.tenant,
|
||||
network_id=network_id
|
||||
)
|
||||
|
||||
|
||||
return shortcuts.render_to_response('dash_ports_create.html', {
|
||||
'network_id' : network_id,
|
||||
'create_form' : create_form
|
||||
'network_id': network_id,
|
||||
'create_form': create_form
|
||||
}, context_instance=template.RequestContext(request))
|
||||
|
||||
|
||||
@login_required
|
||||
def attach(request, tenant_id, network_id, port_id):
|
||||
attach_form, handled = AttachPort.maybe_handle(request)
|
||||
|
||||
attach_form, handled = AttachPort.maybe_handle(request)
|
||||
|
||||
if handled:
|
||||
return shortcuts.redirect('dash_networks_detail', request.user.tenant, network_id)
|
||||
|
||||
return shortcuts.redirect('dash_networks_detail',
|
||||
request.user.tenant, network_id)
|
||||
|
||||
# Get all avaliable vifs
|
||||
vifs = _get_available_vifs(request)
|
||||
|
||||
|
||||
return shortcuts.render_to_response('dash_port_attach.html', {
|
||||
'network' : network_id,
|
||||
'port' : port_id,
|
||||
'attach_form' : attach_form,
|
||||
'vifs' : vifs,
|
||||
'network': network_id,
|
||||
'port': port_id,
|
||||
'attach_form': attach_form,
|
||||
'vifs': vifs,
|
||||
}, context_instance=template.RequestContext(request))
|
||||
|
||||
|
||||
"""
|
||||
Method to get a list of available virtual interfaces
|
||||
"""
|
||||
def _get_available_vifs(request):
|
||||
"""
|
||||
Method to get a list of available virtual interfaces
|
||||
"""
|
||||
vif_choices = []
|
||||
vifs = api.get_vif_ids(request)
|
||||
|
||||
|
||||
for vif in vifs:
|
||||
if vif['available']:
|
||||
name = "Instance %s VIF %s" % (str(vif['instance_name']), str(vif['id']))
|
||||
name = "Instance %s VIF %s" % \
|
||||
(str(vif['instance_name']), str(vif['id']))
|
||||
vif_choices.append({
|
||||
'name' : str(name),
|
||||
'id' : str(vif['id'])
|
||||
'name': str(name),
|
||||
'id': str(vif['id'])
|
||||
})
|
||||
|
||||
return vif_choices
|
||||
|
@ -6,42 +6,47 @@ from django_openstack.tests.view_tests import base
|
||||
from mox import IgnoreArg, IsA
|
||||
import quantum.client
|
||||
|
||||
|
||||
class NetworkViewTests(base.BaseViewTests):
|
||||
def setUp(self):
|
||||
super(NetworkViewTests, self).setUp()
|
||||
self.network = {}
|
||||
self.network['networks'] = []
|
||||
self.network['networks'].append({'id' : 'n1'})
|
||||
self.network_details = {'network' : {'name' : 'test_network'}}
|
||||
self.network['networks'].append({'id': 'n1'})
|
||||
self.network_details = {'network': {'name': 'test_network'}}
|
||||
self.ports = {}
|
||||
self.ports['ports'] = []
|
||||
self.ports['ports'].append({'id' : 'p1'})
|
||||
self.ports['ports'].append({'id': 'p1'})
|
||||
self.port_details = {
|
||||
'port' : {
|
||||
'id' : 'p1',
|
||||
'state' : 'DOWN'
|
||||
'port': {
|
||||
'id': 'p1',
|
||||
'state': 'DOWN'
|
||||
}
|
||||
}
|
||||
self.port_attachment = {
|
||||
'attachment' : {
|
||||
'id' : 'vif1'
|
||||
'attachment': {
|
||||
'id': 'vif1'
|
||||
}
|
||||
}
|
||||
self.vifs = [{ 'id' : 'vif1' }]
|
||||
|
||||
self.vifs = [{'id': 'vif1'}]
|
||||
|
||||
def test_network_index(self):
|
||||
self.mox.StubOutWithMock(api, 'quantum_list_networks')
|
||||
api.quantum_list_networks(IsA(http.HttpRequest)).AndReturn(self.network)
|
||||
|
||||
api.quantum_list_networks(IsA(http.HttpRequest)).\
|
||||
AndReturn(self.network)
|
||||
|
||||
self.mox.StubOutWithMock(api, 'quantum_network_details')
|
||||
api.quantum_network_details(IsA(http.HttpRequest), 'n1').AndReturn(self.network_details)
|
||||
|
||||
api.quantum_network_details(IsA(http.HttpRequest),
|
||||
'n1').AndReturn(self.network_details)
|
||||
|
||||
self.mox.StubOutWithMock(api, 'quantum_list_ports')
|
||||
api.quantum_list_ports(IsA(http.HttpRequest), 'n1').AndReturn(self.ports)
|
||||
|
||||
api.quantum_list_ports(IsA(http.HttpRequest),
|
||||
'n1').AndReturn(self.ports)
|
||||
|
||||
self.mox.StubOutWithMock(api, 'quantum_port_attachment')
|
||||
api.quantum_port_attachment(IsA(http.HttpRequest), 'n1', 'p1').AndReturn(self.port_attachment)
|
||||
|
||||
api.quantum_port_attachment(IsA(http.HttpRequest),
|
||||
'n1', 'p1').AndReturn(self.port_attachment)
|
||||
|
||||
self.mox.ReplayAll()
|
||||
|
||||
res = self.client.get(reverse('dash_networks', args=['tenant']))
|
||||
@ -49,29 +54,29 @@ class NetworkViewTests(base.BaseViewTests):
|
||||
self.assertTemplateUsed(res, 'dash_networks.html')
|
||||
self.assertIn('networks', res.context)
|
||||
networks = res.context['networks']
|
||||
|
||||
|
||||
self.assertEqual(len(networks), 1)
|
||||
self.assertEqual(networks[0]['name'], 'test_network')
|
||||
self.assertEqual(networks[0]['id'], 'n1')
|
||||
self.assertEqual(networks[0]['total'], 1)
|
||||
self.assertEqual(networks[0]['used'], 1)
|
||||
self.assertEqual(networks[0]['available'], 0)
|
||||
|
||||
|
||||
self.mox.VerifyAll()
|
||||
|
||||
|
||||
def test_network_create(self):
|
||||
self.mox.StubOutWithMock(api, "quantum_create_network")
|
||||
api.quantum_create_network(IsA(http.HttpRequest), dict).AndReturn(True)
|
||||
|
||||
|
||||
self.mox.ReplayAll()
|
||||
|
||||
|
||||
formData = {'name': 'Test',
|
||||
'method': 'CreateNetwork'}
|
||||
|
||||
res = self.client.post(reverse('dash_network_create',
|
||||
args=[self.request.user.tenant]),
|
||||
formData)
|
||||
|
||||
|
||||
self.assertRedirectsNoFollow(res, reverse('dash_networks',
|
||||
args=[self.request.user.tenant]))
|
||||
self.mox.VerifyAll()
|
||||
@ -79,47 +84,56 @@ class NetworkViewTests(base.BaseViewTests):
|
||||
def test_network_delete(self):
|
||||
self.mox.StubOutWithMock(api, "quantum_delete_network")
|
||||
api.quantum_delete_network(IsA(http.HttpRequest), 'n1').AndReturn(True)
|
||||
|
||||
|
||||
self.mox.StubOutWithMock(api, 'quantum_list_networks')
|
||||
api.quantum_list_networks(IsA(http.HttpRequest)).AndReturn(self.network)
|
||||
|
||||
api.quantum_list_networks(IsA(http.HttpRequest)).\
|
||||
AndReturn(self.network)
|
||||
|
||||
self.mox.StubOutWithMock(api, 'quantum_network_details')
|
||||
api.quantum_network_details(IsA(http.HttpRequest), 'n1').AndReturn(self.network_details)
|
||||
|
||||
api.quantum_network_details(IsA(http.HttpRequest),
|
||||
'n1').AndReturn(self.network_details)
|
||||
|
||||
self.mox.StubOutWithMock(api, 'quantum_list_ports')
|
||||
api.quantum_list_ports(IsA(http.HttpRequest), 'n1').AndReturn(self.ports)
|
||||
|
||||
api.quantum_list_ports(IsA(http.HttpRequest),
|
||||
'n1').AndReturn(self.ports)
|
||||
|
||||
self.mox.StubOutWithMock(api, 'quantum_port_attachment')
|
||||
api.quantum_port_attachment(IsA(http.HttpRequest), 'n1', 'p1').AndReturn(self.port_attachment)
|
||||
|
||||
api.quantum_port_attachment(IsA(http.HttpRequest),
|
||||
'n1', 'p1').AndReturn(self.port_attachment)
|
||||
|
||||
self.mox.ReplayAll()
|
||||
|
||||
|
||||
formData = {'id': 'n1',
|
||||
'method': 'DeleteNetwork'}
|
||||
|
||||
res = self.client.post(reverse('dash_networks',
|
||||
args=[self.request.user.tenant]),
|
||||
formData)
|
||||
|
||||
|
||||
def test_network_rename(self):
|
||||
self.mox.StubOutWithMock(api, "quantum_update_network")
|
||||
api.quantum_update_network(IsA(http.HttpRequest), 'n1', dict).AndReturn(True)
|
||||
|
||||
api.quantum_update_network(IsA(http.HttpRequest),
|
||||
'n1', dict).AndReturn(True)
|
||||
|
||||
self.mox.StubOutWithMock(api, 'quantum_list_networks')
|
||||
api.quantum_list_networks(IsA(http.HttpRequest)).AndReturn(self.network)
|
||||
|
||||
api.quantum_list_networks(IsA(http.HttpRequest)).\
|
||||
AndReturn(self.network)
|
||||
|
||||
self.mox.StubOutWithMock(api, 'quantum_network_details')
|
||||
api.quantum_network_details(IsA(http.HttpRequest), 'n1').AndReturn(self.network_details)
|
||||
|
||||
api.quantum_network_details(IsA(http.HttpRequest),
|
||||
'n1').AndReturn(self.network_details)
|
||||
|
||||
self.mox.StubOutWithMock(api, 'quantum_list_ports')
|
||||
api.quantum_list_ports(IsA(http.HttpRequest), 'n1').AndReturn(self.ports)
|
||||
|
||||
api.quantum_list_ports(IsA(http.HttpRequest),
|
||||
'n1').AndReturn(self.ports)
|
||||
|
||||
self.mox.StubOutWithMock(api, 'quantum_port_attachment')
|
||||
api.quantum_port_attachment(IsA(http.HttpRequest), 'n1', 'p1').AndReturn(self.port_attachment)
|
||||
|
||||
api.quantum_port_attachment(IsA(http.HttpRequest),
|
||||
'n1', 'p1').AndReturn(self.port_attachment)
|
||||
|
||||
self.mox.ReplayAll()
|
||||
|
||||
formData = {'new_name' : 'Test1',
|
||||
|
||||
formData = {'new_name': 'Test1',
|
||||
'method': 'RenameNetwork'}
|
||||
|
||||
res = self.client.post(reverse('dash_network_rename',
|
||||
@ -128,30 +142,35 @@ class NetworkViewTests(base.BaseViewTests):
|
||||
|
||||
def test_network_details(self):
|
||||
self.mox.StubOutWithMock(api, 'quantum_network_details')
|
||||
api.quantum_network_details(IsA(http.HttpRequest), 'n1').AndReturn(self.network_details)
|
||||
|
||||
api.quantum_network_details(IsA(http.HttpRequest),
|
||||
'n1').AndReturn(self.network_details)
|
||||
|
||||
self.mox.StubOutWithMock(api, 'quantum_list_ports')
|
||||
api.quantum_list_ports(IsA(http.HttpRequest), 'n1').AndReturn(self.ports)
|
||||
|
||||
api.quantum_list_ports(IsA(http.HttpRequest),
|
||||
'n1').AndReturn(self.ports)
|
||||
|
||||
self.mox.StubOutWithMock(api, 'quantum_port_attachment')
|
||||
api.quantum_port_attachment(IsA(http.HttpRequest), 'n1', 'p1').AndReturn(self.port_attachment)
|
||||
api.quantum_port_attachment(IsA(http.HttpRequest),
|
||||
'n1', 'p1').AndReturn(self.port_attachment)
|
||||
|
||||
self.mox.StubOutWithMock(api, 'quantum_port_details')
|
||||
api.quantum_port_details(IsA(http.HttpRequest), 'n1', 'p1').AndReturn(self.port_details)
|
||||
|
||||
api.quantum_port_details(IsA(http.HttpRequest),
|
||||
'n1', 'p1').AndReturn(self.port_details)
|
||||
|
||||
self.mox.StubOutWithMock(api, 'get_vif_ids')
|
||||
api.get_vif_ids(IsA(http.HttpRequest)).AndReturn(self.vifs)
|
||||
|
||||
|
||||
self.mox.ReplayAll()
|
||||
|
||||
res = self.client.get(reverse('dash_networks_detail', args=['tenant', 'n1']))
|
||||
|
||||
res = self.client.get(reverse('dash_networks_detail',
|
||||
args=['tenant', 'n1']))
|
||||
|
||||
self.assertTemplateUsed(res, 'dash_networks_detail.html')
|
||||
self.assertIn('network', res.context)
|
||||
|
||||
|
||||
network = res.context['network']
|
||||
|
||||
self.assertEqual(network['name'], 'test_network')
|
||||
self.assertEqual(network['id'], 'n1')
|
||||
|
||||
|
||||
self.mox.VerifyAll()
|
||||
|
@ -6,6 +6,7 @@ from django_openstack.tests.view_tests import base
|
||||
from mox import IgnoreArg, IsA
|
||||
import quantum.client
|
||||
|
||||
|
||||
class PortViewTests(base.BaseViewTests):
|
||||
def setUp(self):
|
||||
super(PortViewTests, self).setUp()
|
||||
@ -13,9 +14,9 @@ class PortViewTests(base.BaseViewTests):
|
||||
def test_port_create(self):
|
||||
self.mox.StubOutWithMock(api, "quantum_create_port")
|
||||
api.quantum_create_port(IsA(http.HttpRequest), 'n1').AndReturn(True)
|
||||
|
||||
formData = {'ports_num' : 1,
|
||||
'network' : 'n1',
|
||||
|
||||
formData = {'ports_num': 1,
|
||||
'network': 'n1',
|
||||
'method': 'CreatePort'}
|
||||
|
||||
self.mox.StubOutWithMock(messages, 'success')
|
||||
@ -26,14 +27,16 @@ class PortViewTests(base.BaseViewTests):
|
||||
formData)
|
||||
|
||||
self.assertRedirectsNoFollow(res, reverse('dash_networks_detail',
|
||||
args=[self.request.user.tenant, "n1"]))
|
||||
args=[self.request.user.tenant,
|
||||
"n1"]))
|
||||
|
||||
def test_port_delete(self):
|
||||
self.mox.StubOutWithMock(api, "quantum_delete_port")
|
||||
api.quantum_delete_port(IsA(http.HttpRequest), 'n1', 'p1').AndReturn(True)
|
||||
|
||||
formData = {'port' : 'p1',
|
||||
'network' : 'n1',
|
||||
api.quantum_delete_port(IsA(http.HttpRequest),
|
||||
'n1', 'p1').AndReturn(True)
|
||||
|
||||
formData = {'port': 'p1',
|
||||
'network': 'n1',
|
||||
'method': 'DeletePort'}
|
||||
|
||||
self.mox.StubOutWithMock(messages, 'success')
|
||||
@ -43,14 +46,14 @@ class PortViewTests(base.BaseViewTests):
|
||||
args=[self.request.user.tenant, "n1"]),
|
||||
formData)
|
||||
|
||||
|
||||
def test_port_attach(self):
|
||||
self.mox.StubOutWithMock(api, "quantum_attach_port")
|
||||
api.quantum_attach_port(IsA(http.HttpRequest), 'n1', 'p1', dict).AndReturn(True)
|
||||
|
||||
formData = {'port' : 'p1',
|
||||
'network' : 'n1',
|
||||
'vif_id' : 'v1',
|
||||
api.quantum_attach_port(IsA(http.HttpRequest),
|
||||
'n1', 'p1', dict).AndReturn(True)
|
||||
|
||||
formData = {'port': 'p1',
|
||||
'network': 'n1',
|
||||
'vif_id': 'v1',
|
||||
'method': 'AttachPort'}
|
||||
|
||||
self.mox.StubOutWithMock(messages, 'success')
|
||||
@ -61,14 +64,16 @@ class PortViewTests(base.BaseViewTests):
|
||||
formData)
|
||||
|
||||
self.assertRedirectsNoFollow(res, reverse('dash_networks_detail',
|
||||
args=[self.request.user.tenant, "n1"]))
|
||||
args=[self.request.user.tenant,
|
||||
"n1"]))
|
||||
|
||||
def test_port_detach(self):
|
||||
self.mox.StubOutWithMock(api, "quantum_detach_port")
|
||||
api.quantum_detach_port(IsA(http.HttpRequest), 'n1', 'p1').AndReturn(True)
|
||||
|
||||
formData = {'port' : 'p1',
|
||||
'network' : 'n1',
|
||||
api.quantum_detach_port(IsA(http.HttpRequest),
|
||||
'n1', 'p1').AndReturn(True)
|
||||
|
||||
formData = {'port': 'p1',
|
||||
'network': 'n1',
|
||||
'method': 'DetachPort'}
|
||||
|
||||
self.mox.StubOutWithMock(messages, 'success')
|
||||
|
Loading…
x
Reference in New Issue
Block a user