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):
|
class VirtualInterface(APIResourceWrapper):
|
||||||
_attrs = ['id','mac_address']
|
_attrs = ['id', 'mac_address']
|
||||||
|
|
||||||
|
|
||||||
def url_for(request, service_name, admin=False):
|
def url_for(request, service_name, admin=False):
|
||||||
@ -407,6 +407,7 @@ def snapshot_list_detailed(request):
|
|||||||
return [Image(i) for i in glance_api(request)
|
return [Image(i) for i in glance_api(request)
|
||||||
.get_images_detailed(filters=filters)]
|
.get_images_detailed(filters=filters)]
|
||||||
|
|
||||||
|
|
||||||
def snapshot_create(request, instance_id, name):
|
def snapshot_create(request, instance_id, name):
|
||||||
return extras_api(request).snapshots.create(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)
|
container = swift_api(request).get_container(container_name)
|
||||||
return container.get_object(object_name).stream()
|
return container.get_object(object_name).stream()
|
||||||
|
|
||||||
|
|
||||||
def quantum_list_networks(request):
|
def quantum_list_networks(request):
|
||||||
return quantum_api(request).list_networks()
|
return quantum_api(request).list_networks()
|
||||||
|
|
||||||
|
|
||||||
def quantum_network_details(request, network_id):
|
def quantum_network_details(request, network_id):
|
||||||
return quantum_api(request).show_network_details(network_id)
|
return quantum_api(request).show_network_details(network_id)
|
||||||
|
|
||||||
|
|
||||||
def quantum_list_ports(request, network_id):
|
def quantum_list_ports(request, network_id):
|
||||||
return quantum_api(request).list_ports(network_id)
|
return quantum_api(request).list_ports(network_id)
|
||||||
|
|
||||||
|
|
||||||
def quantum_port_details(request, network_id, port_id):
|
def quantum_port_details(request, network_id, port_id):
|
||||||
return quantum_api(request).show_port_details(network_id, port_id)
|
return quantum_api(request).show_port_details(network_id, port_id)
|
||||||
|
|
||||||
|
|
||||||
def quantum_create_network(request, data):
|
def quantum_create_network(request, data):
|
||||||
return quantum_api(request).create_network(data)
|
return quantum_api(request).create_network(data)
|
||||||
|
|
||||||
|
|
||||||
def quantum_delete_network(request, network_id):
|
def quantum_delete_network(request, network_id):
|
||||||
return quantum_api(request).delete_network(network_id)
|
return quantum_api(request).delete_network(network_id)
|
||||||
|
|
||||||
|
|
||||||
def quantum_update_network(request, network_id, data):
|
def quantum_update_network(request, network_id, data):
|
||||||
return quantum_api(request).update_network(network_id, data)
|
return quantum_api(request).update_network(network_id, data)
|
||||||
|
|
||||||
|
|
||||||
def quantum_create_port(request, network_id):
|
def quantum_create_port(request, network_id):
|
||||||
return quantum_api(request).create_port(network_id)
|
return quantum_api(request).create_port(network_id)
|
||||||
|
|
||||||
|
|
||||||
def quantum_delete_port(request, network_id, port_id):
|
def quantum_delete_port(request, network_id, port_id):
|
||||||
return quantum_api(request).delete_port(network_id, port_id)
|
return quantum_api(request).delete_port(network_id, port_id)
|
||||||
|
|
||||||
|
|
||||||
def quantum_attach_port(request, network_id, port_id, data):
|
def quantum_attach_port(request, network_id, port_id, data):
|
||||||
return quantum_api(request).attach_resource(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):
|
def quantum_detach_port(request, network_id, port_id):
|
||||||
return quantum_api(request).detach_resource(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):
|
def quantum_port_attachment(request, network_id, port_id):
|
||||||
return quantum_api(request).show_port_attachment(network_id, port_id)
|
return quantum_api(request).show_port_attachment(network_id, port_id)
|
||||||
|
|
||||||
|
|
||||||
def get_vif_ids(request):
|
def get_vif_ids(request):
|
||||||
vifs = []
|
vifs = []
|
||||||
attached_vifs = []
|
attached_vifs = []
|
||||||
@ -707,32 +722,37 @@ def get_vif_ids(request):
|
|||||||
ports = quantum_api(request).list_ports(network['id'])
|
ports = quantum_api(request).list_ports(network['id'])
|
||||||
# Get port attachments
|
# Get port attachments
|
||||||
for port in ports['ports']:
|
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']:
|
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
|
# Get all instances
|
||||||
instances = server_list(request)
|
instances = server_list(request)
|
||||||
# Get virtual interface ids by instance
|
# Get virtual interface ids by instance
|
||||||
for instance in instances:
|
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:
|
for vif in instance_vifs:
|
||||||
# Check if this VIF is already connected to any port
|
# Check if this VIF is already connected to any port
|
||||||
if str(vif.id) in attached_vifs:
|
if str(vif.id) in attached_vifs:
|
||||||
vifs.append({
|
vifs.append({
|
||||||
'id' : vif.id,
|
'id': vif.id,
|
||||||
'instance' : instance.id,
|
'instance': instance.id,
|
||||||
'instance_name' : instance.name,
|
'instance_name': instance.name,
|
||||||
'available' : False
|
'available': False
|
||||||
})
|
})
|
||||||
else:
|
else:
|
||||||
vifs.append({
|
vifs.append({
|
||||||
'id' : vif.id,
|
'id': vif.id,
|
||||||
'instance' : instance.id,
|
'instance': instance.id,
|
||||||
'instance_name' : instance.name,
|
'instance_name': instance.name,
|
||||||
'available' : True
|
'available': True
|
||||||
})
|
})
|
||||||
return vifs
|
return vifs
|
||||||
|
|
||||||
|
|
||||||
class GlobalSummary(object):
|
class GlobalSummary(object):
|
||||||
node_resources = ['vcpus', 'disk_size', 'ram_size']
|
node_resources = ['vcpus', 'disk_size', 'ram_size']
|
||||||
unit_mem_size = {'disk_size': ['GiB', 'TiB'], 'ram_size': ['MiB', 'GiB']}
|
unit_mem_size = {'disk_size': ['GiB', 'TiB'], 'ram_size': ['MiB', 'GiB']}
|
||||||
|
@ -44,6 +44,7 @@ import warnings
|
|||||||
|
|
||||||
LOG = logging.getLogger('django_openstack.dash.views.networks')
|
LOG = logging.getLogger('django_openstack.dash.views.networks')
|
||||||
|
|
||||||
|
|
||||||
class CreateNetwork(forms.SelfHandlingForm):
|
class CreateNetwork(forms.SelfHandlingForm):
|
||||||
name = forms.CharField(required=True, label="Network Name")
|
name = forms.CharField(required=True, label="Network Name")
|
||||||
|
|
||||||
@ -63,7 +64,8 @@ class CreateNetwork(forms.SelfHandlingForm):
|
|||||||
msg = 'Network %s has been created.' % network_name
|
msg = 'Network %s has been created.' % network_name
|
||||||
LOG.info(msg)
|
LOG.info(msg)
|
||||||
messages.success(request, 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):
|
class DeleteNetwork(forms.SelfHandlingForm):
|
||||||
@ -91,7 +93,8 @@ class RenameNetwork(forms.SelfHandlingForm):
|
|||||||
|
|
||||||
def handle(self, request, data):
|
def handle(self, request, data):
|
||||||
try:
|
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']}}
|
send_data = {'network': {'name': '%s' % data['new_name']}}
|
||||||
api.quantum_update_network(request, data['network'], send_data)
|
api.quantum_update_network(request, data['network'], send_data)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
@ -99,7 +102,8 @@ class RenameNetwork(forms.SelfHandlingForm):
|
|||||||
'Unable to rename network %s: %s' %
|
'Unable to rename network %s: %s' %
|
||||||
(data['network'], e.message,))
|
(data['network'], e.message,))
|
||||||
else:
|
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)
|
LOG.info(msg)
|
||||||
messages.success(request, msg)
|
messages.success(request, msg)
|
||||||
|
|
||||||
@ -121,12 +125,12 @@ def index(request, tenant_id):
|
|||||||
# Get network details like name and id
|
# Get network details like name and id
|
||||||
details = api.quantum_network_details(request, network['id'])
|
details = api.quantum_network_details(request, network['id'])
|
||||||
networks.append({
|
networks.append({
|
||||||
'name' : details['network']['name'],
|
'name': details['network']['name'],
|
||||||
'id' : network['id'],
|
'id': network['id'],
|
||||||
'total' : net_stats['total'],
|
'total': net_stats['total'],
|
||||||
'available' : net_stats['available'],
|
'available': net_stats['available'],
|
||||||
'used' : net_stats['used'],
|
'used': net_stats['used'],
|
||||||
'tenant' : tenant_id
|
'tenant': tenant_id
|
||||||
})
|
})
|
||||||
|
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
@ -134,7 +138,7 @@ def index(request, tenant_id):
|
|||||||
|
|
||||||
return shortcuts.render_to_response('dash_networks.html', {
|
return shortcuts.render_to_response('dash_networks.html', {
|
||||||
'networks': networks,
|
'networks': networks,
|
||||||
'delete_form' : delete_form,
|
'delete_form': delete_form,
|
||||||
}, context_instance=template.RequestContext(request))
|
}, context_instance=template.RequestContext(request))
|
||||||
|
|
||||||
|
|
||||||
@ -145,14 +149,14 @@ def create(request, tenant_id):
|
|||||||
return shortcuts.redirect('dash_networks', request.user.tenant)
|
return shortcuts.redirect('dash_networks', request.user.tenant)
|
||||||
|
|
||||||
return shortcuts.render_to_response('dash_network_create.html', {
|
return shortcuts.render_to_response('dash_network_create.html', {
|
||||||
'network_form' : network_form
|
'network_form': network_form
|
||||||
}, context_instance=template.RequestContext(request))
|
}, context_instance=template.RequestContext(request))
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def detail(request, tenant_id, network_id):
|
def detail(request, tenant_id, network_id):
|
||||||
delete_port_form, delete_handled = DeletePort.maybe_handle(request)
|
delete_port_form, delete_handled = DeletePort.maybe_handle(request)
|
||||||
detach_port_form, detach_handled = DetachPort.maybe_handle(request)
|
detach_port_form, detach_handled = DetachPort.maybe_handle(request)
|
||||||
toggle_port_form, port_toggle_handled = TogglePort.maybe_handle(request)
|
toggle_port_form, port_toggle_handled = TogglePort.maybe_handle(request)
|
||||||
|
|
||||||
network = {}
|
network = {}
|
||||||
@ -163,14 +167,14 @@ def detail(request, tenant_id, network_id):
|
|||||||
network['id'] = network_id
|
network['id'] = network_id
|
||||||
network['ports'] = _get_port_states(request, tenant_id, network_id)
|
network['ports'] = _get_port_states(request, tenant_id, network_id)
|
||||||
except Exception, e:
|
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', {
|
return shortcuts.render_to_response('dash_networks_detail.html', {
|
||||||
'network': network,
|
'network': network,
|
||||||
'tenant' : tenant_id,
|
'tenant': tenant_id,
|
||||||
'delete_port_form' : delete_port_form,
|
'delete_port_form': delete_port_form,
|
||||||
'detach_port_form' : detach_port_form,
|
'detach_port_form': detach_port_form,
|
||||||
'toggle_port_form' : toggle_port_form
|
'toggle_port_form': toggle_port_form
|
||||||
}, context_instance=template.RequestContext(request))
|
}, context_instance=template.RequestContext(request))
|
||||||
|
|
||||||
|
|
||||||
@ -183,14 +187,15 @@ def rename(request, tenant_id, network_id):
|
|||||||
return shortcuts.redirect('dash_networks', request.user.tenant)
|
return shortcuts.redirect('dash_networks', request.user.tenant)
|
||||||
|
|
||||||
return shortcuts.render_to_response('dash_network_rename.html', {
|
return shortcuts.render_to_response('dash_network_rename.html', {
|
||||||
'network' : network_details,
|
'network': network_details,
|
||||||
'rename_form' : rename_form
|
'rename_form': rename_form
|
||||||
}, context_instance=template.RequestContext(request))
|
}, context_instance=template.RequestContext(request))
|
||||||
|
|
||||||
"""
|
|
||||||
Helper method to find port states for a network
|
|
||||||
"""
|
|
||||||
def _get_port_states(request, tenant_id, network_id):
|
def _get_port_states(request, tenant_id, network_id):
|
||||||
|
"""
|
||||||
|
Helper method to find port states for a network
|
||||||
|
"""
|
||||||
network_ports = []
|
network_ports = []
|
||||||
# Get all vifs for comparison with port attachments
|
# Get all vifs for comparison with port attachments
|
||||||
vifs = api.get_vif_ids(request)
|
vifs = api.get_vif_ids(request)
|
||||||
@ -198,9 +203,11 @@ def _get_port_states(request, tenant_id, network_id):
|
|||||||
# Get all ports on this network
|
# Get all ports on this network
|
||||||
ports = api.quantum_list_ports(request, network_id)
|
ports = api.quantum_list_ports(request, network_id)
|
||||||
for port in ports['ports']:
|
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
|
# 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
|
# Find instance the attachment belongs to
|
||||||
connected_instance = None
|
connected_instance = None
|
||||||
if port_attachment['attachment']:
|
if port_attachment['attachment']:
|
||||||
@ -209,17 +216,18 @@ def _get_port_states(request, tenant_id, network_id):
|
|||||||
connected_instance = vif['instance_name']
|
connected_instance = vif['instance_name']
|
||||||
break
|
break
|
||||||
network_ports.append({
|
network_ports.append({
|
||||||
'id' : port_details['port']['id'],
|
'id': port_details['port']['id'],
|
||||||
'state' : port_details['port']['state'],
|
'state': port_details['port']['state'],
|
||||||
'attachment' : port_attachment['attachment'],
|
'attachment': port_attachment['attachment'],
|
||||||
'instance' : connected_instance
|
'instance': connected_instance
|
||||||
})
|
})
|
||||||
return network_ports
|
return network_ports
|
||||||
|
|
||||||
"""
|
|
||||||
Helper method to calculate statistics for a network
|
|
||||||
"""
|
|
||||||
def _calc_network_stats(request, tenant_id, network_id):
|
def _calc_network_stats(request, tenant_id, network_id):
|
||||||
|
"""
|
||||||
|
Helper method to calculate statistics for a network
|
||||||
|
"""
|
||||||
# Get all ports statistics for the network
|
# Get all ports statistics for the network
|
||||||
total = 0
|
total = 0
|
||||||
available = 0
|
available = 0
|
||||||
@ -228,10 +236,11 @@ def _calc_network_stats(request, tenant_id, network_id):
|
|||||||
for port in ports['ports']:
|
for port in ports['ports']:
|
||||||
total += 1
|
total += 1
|
||||||
# Get port attachment
|
# 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']:
|
if port_attachment['attachment']:
|
||||||
used += 1
|
used += 1
|
||||||
else:
|
else:
|
||||||
available += 1
|
available += 1
|
||||||
|
|
||||||
return { 'total' : total, 'used' : used, 'available': available }
|
return {'total': total, 'used': used, 'available': available}
|
||||||
|
@ -44,15 +44,17 @@ class CreatePort(forms.SelfHandlingForm):
|
|||||||
|
|
||||||
def handle(self, request, data):
|
def handle(self, request, data):
|
||||||
try:
|
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']):
|
for i in range(0, data['ports_num']):
|
||||||
api.quantum_create_port(request, data['network'])
|
api.quantum_create_port(request, data['network'])
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
messages.error(request,
|
messages.error(request,
|
||||||
'Unable to create ports on network %s: %s' %
|
'Unable to create ports on network %s: %s' %
|
||||||
(data['network'], e.message,))
|
(data['network'], e.message))
|
||||||
else:
|
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)
|
LOG.info(msg)
|
||||||
messages.success(request, msg)
|
messages.success(request, msg)
|
||||||
|
|
||||||
@ -65,14 +67,16 @@ class DeletePort(forms.SelfHandlingForm):
|
|||||||
|
|
||||||
def handle(self, request, data):
|
def handle(self, request, data):
|
||||||
try:
|
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'])
|
api.quantum_delete_port(request, data['network'], data['port'])
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
messages.error(request,
|
messages.error(request,
|
||||||
'Unable to delete port %s: %s' %
|
'Unable to delete port %s: %s' %
|
||||||
(data['port'], e.message,))
|
(data['port'], e.message,))
|
||||||
else:
|
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)
|
LOG.info(msg)
|
||||||
messages.success(request, msg)
|
messages.success(request, msg)
|
||||||
return shortcuts.redirect(request.build_absolute_uri())
|
return shortcuts.redirect(request.build_absolute_uri())
|
||||||
@ -81,19 +85,23 @@ class DeletePort(forms.SelfHandlingForm):
|
|||||||
class AttachPort(forms.SelfHandlingForm):
|
class AttachPort(forms.SelfHandlingForm):
|
||||||
network = forms.CharField(widget=forms.HiddenInput())
|
network = forms.CharField(widget=forms.HiddenInput())
|
||||||
port = 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):
|
def handle(self, request, data):
|
||||||
try:
|
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']}}
|
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:
|
except Exception, e:
|
||||||
messages.error(request,
|
messages.error(request,
|
||||||
'Unable to attach port %s to VIF %s: %s' %
|
'Unable to attach port %s to VIF %s: %s' %
|
||||||
(data['port'], data['vif_id'], e.message,))
|
(data['port'], data['vif_id'], e.message,))
|
||||||
else:
|
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)
|
LOG.info(msg)
|
||||||
messages.success(request, msg)
|
messages.success(request, msg)
|
||||||
return shortcuts.redirect(request.build_absolute_uri())
|
return shortcuts.redirect(request.build_absolute_uri())
|
||||||
@ -106,7 +114,7 @@ class DetachPort(forms.SelfHandlingForm):
|
|||||||
def handle(self, request, data):
|
def handle(self, request, data):
|
||||||
try:
|
try:
|
||||||
LOG.info('Detaching port %s' % data['port'])
|
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:
|
except Exception, e:
|
||||||
messages.error(request,
|
messages.error(request,
|
||||||
'Unable to detach port %s: %s' %
|
'Unable to detach port %s: %s' %
|
||||||
@ -127,13 +135,14 @@ class TogglePort(forms.SelfHandlingForm):
|
|||||||
try:
|
try:
|
||||||
LOG.info('Toggling port state to %s' % data['state'])
|
LOG.info('Toggling port state to %s' % data['state'])
|
||||||
body = {'port': {'state': '%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:
|
except Exception, e:
|
||||||
messages.error(request,
|
messages.error(request,
|
||||||
'Unable to set port state to %s: %s' %
|
'Unable to set port state to %s: %s' %
|
||||||
(data['state'], e.message,))
|
(data['state'], e.message,))
|
||||||
else:
|
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)
|
LOG.info(msg)
|
||||||
messages.success(request, msg)
|
messages.success(request, msg)
|
||||||
return shortcuts.redirect(request.build_absolute_uri())
|
return shortcuts.redirect(request.build_absolute_uri())
|
||||||
@ -141,7 +150,7 @@ class TogglePort(forms.SelfHandlingForm):
|
|||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def create(request, tenant_id, network_id):
|
def create(request, tenant_id, network_id):
|
||||||
create_form, handled = CreatePort.maybe_handle(request)
|
create_form, handled = CreatePort.maybe_handle(request)
|
||||||
|
|
||||||
if handled:
|
if handled:
|
||||||
return shortcuts.redirect(
|
return shortcuts.redirect(
|
||||||
@ -151,42 +160,44 @@ def create(request, tenant_id, network_id):
|
|||||||
)
|
)
|
||||||
|
|
||||||
return shortcuts.render_to_response('dash_ports_create.html', {
|
return shortcuts.render_to_response('dash_ports_create.html', {
|
||||||
'network_id' : network_id,
|
'network_id': network_id,
|
||||||
'create_form' : create_form
|
'create_form': create_form
|
||||||
}, context_instance=template.RequestContext(request))
|
}, context_instance=template.RequestContext(request))
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def attach(request, tenant_id, network_id, port_id):
|
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:
|
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
|
# Get all avaliable vifs
|
||||||
vifs = _get_available_vifs(request)
|
vifs = _get_available_vifs(request)
|
||||||
|
|
||||||
return shortcuts.render_to_response('dash_port_attach.html', {
|
return shortcuts.render_to_response('dash_port_attach.html', {
|
||||||
'network' : network_id,
|
'network': network_id,
|
||||||
'port' : port_id,
|
'port': port_id,
|
||||||
'attach_form' : attach_form,
|
'attach_form': attach_form,
|
||||||
'vifs' : vifs,
|
'vifs': vifs,
|
||||||
}, context_instance=template.RequestContext(request))
|
}, context_instance=template.RequestContext(request))
|
||||||
|
|
||||||
|
|
||||||
"""
|
|
||||||
Method to get a list of available virtual interfaces
|
|
||||||
"""
|
|
||||||
def _get_available_vifs(request):
|
def _get_available_vifs(request):
|
||||||
|
"""
|
||||||
|
Method to get a list of available virtual interfaces
|
||||||
|
"""
|
||||||
vif_choices = []
|
vif_choices = []
|
||||||
vifs = api.get_vif_ids(request)
|
vifs = api.get_vif_ids(request)
|
||||||
|
|
||||||
for vif in vifs:
|
for vif in vifs:
|
||||||
if vif['available']:
|
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({
|
vif_choices.append({
|
||||||
'name' : str(name),
|
'name': str(name),
|
||||||
'id' : str(vif['id'])
|
'id': str(vif['id'])
|
||||||
})
|
})
|
||||||
|
|
||||||
return vif_choices
|
return vif_choices
|
||||||
|
@ -6,41 +6,46 @@ from django_openstack.tests.view_tests import base
|
|||||||
from mox import IgnoreArg, IsA
|
from mox import IgnoreArg, IsA
|
||||||
import quantum.client
|
import quantum.client
|
||||||
|
|
||||||
|
|
||||||
class NetworkViewTests(base.BaseViewTests):
|
class NetworkViewTests(base.BaseViewTests):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(NetworkViewTests, self).setUp()
|
super(NetworkViewTests, self).setUp()
|
||||||
self.network = {}
|
self.network = {}
|
||||||
self.network['networks'] = []
|
self.network['networks'] = []
|
||||||
self.network['networks'].append({'id' : 'n1'})
|
self.network['networks'].append({'id': 'n1'})
|
||||||
self.network_details = {'network' : {'name' : 'test_network'}}
|
self.network_details = {'network': {'name': 'test_network'}}
|
||||||
self.ports = {}
|
self.ports = {}
|
||||||
self.ports['ports'] = []
|
self.ports['ports'] = []
|
||||||
self.ports['ports'].append({'id' : 'p1'})
|
self.ports['ports'].append({'id': 'p1'})
|
||||||
self.port_details = {
|
self.port_details = {
|
||||||
'port' : {
|
'port': {
|
||||||
'id' : 'p1',
|
'id': 'p1',
|
||||||
'state' : 'DOWN'
|
'state': 'DOWN'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
self.port_attachment = {
|
self.port_attachment = {
|
||||||
'attachment' : {
|
'attachment': {
|
||||||
'id' : 'vif1'
|
'id': 'vif1'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
self.vifs = [{ 'id' : 'vif1' }]
|
self.vifs = [{'id': 'vif1'}]
|
||||||
|
|
||||||
def test_network_index(self):
|
def test_network_index(self):
|
||||||
self.mox.StubOutWithMock(api, 'quantum_list_networks')
|
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')
|
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')
|
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')
|
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()
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
@ -81,16 +86,20 @@ class NetworkViewTests(base.BaseViewTests):
|
|||||||
api.quantum_delete_network(IsA(http.HttpRequest), 'n1').AndReturn(True)
|
api.quantum_delete_network(IsA(http.HttpRequest), 'n1').AndReturn(True)
|
||||||
|
|
||||||
self.mox.StubOutWithMock(api, 'quantum_list_networks')
|
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')
|
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')
|
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')
|
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()
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
@ -103,23 +112,28 @@ class NetworkViewTests(base.BaseViewTests):
|
|||||||
|
|
||||||
def test_network_rename(self):
|
def test_network_rename(self):
|
||||||
self.mox.StubOutWithMock(api, "quantum_update_network")
|
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')
|
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')
|
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')
|
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')
|
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()
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
formData = {'new_name' : 'Test1',
|
formData = {'new_name': 'Test1',
|
||||||
'method': 'RenameNetwork'}
|
'method': 'RenameNetwork'}
|
||||||
|
|
||||||
res = self.client.post(reverse('dash_network_rename',
|
res = self.client.post(reverse('dash_network_rename',
|
||||||
@ -128,23 +142,28 @@ class NetworkViewTests(base.BaseViewTests):
|
|||||||
|
|
||||||
def test_network_details(self):
|
def test_network_details(self):
|
||||||
self.mox.StubOutWithMock(api, 'quantum_network_details')
|
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')
|
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')
|
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')
|
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')
|
self.mox.StubOutWithMock(api, 'get_vif_ids')
|
||||||
api.get_vif_ids(IsA(http.HttpRequest)).AndReturn(self.vifs)
|
api.get_vif_ids(IsA(http.HttpRequest)).AndReturn(self.vifs)
|
||||||
|
|
||||||
self.mox.ReplayAll()
|
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.assertTemplateUsed(res, 'dash_networks_detail.html')
|
||||||
self.assertIn('network', res.context)
|
self.assertIn('network', res.context)
|
||||||
|
@ -6,6 +6,7 @@ from django_openstack.tests.view_tests import base
|
|||||||
from mox import IgnoreArg, IsA
|
from mox import IgnoreArg, IsA
|
||||||
import quantum.client
|
import quantum.client
|
||||||
|
|
||||||
|
|
||||||
class PortViewTests(base.BaseViewTests):
|
class PortViewTests(base.BaseViewTests):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(PortViewTests, self).setUp()
|
super(PortViewTests, self).setUp()
|
||||||
@ -14,8 +15,8 @@ class PortViewTests(base.BaseViewTests):
|
|||||||
self.mox.StubOutWithMock(api, "quantum_create_port")
|
self.mox.StubOutWithMock(api, "quantum_create_port")
|
||||||
api.quantum_create_port(IsA(http.HttpRequest), 'n1').AndReturn(True)
|
api.quantum_create_port(IsA(http.HttpRequest), 'n1').AndReturn(True)
|
||||||
|
|
||||||
formData = {'ports_num' : 1,
|
formData = {'ports_num': 1,
|
||||||
'network' : 'n1',
|
'network': 'n1',
|
||||||
'method': 'CreatePort'}
|
'method': 'CreatePort'}
|
||||||
|
|
||||||
self.mox.StubOutWithMock(messages, 'success')
|
self.mox.StubOutWithMock(messages, 'success')
|
||||||
@ -26,14 +27,16 @@ class PortViewTests(base.BaseViewTests):
|
|||||||
formData)
|
formData)
|
||||||
|
|
||||||
self.assertRedirectsNoFollow(res, reverse('dash_networks_detail',
|
self.assertRedirectsNoFollow(res, reverse('dash_networks_detail',
|
||||||
args=[self.request.user.tenant, "n1"]))
|
args=[self.request.user.tenant,
|
||||||
|
"n1"]))
|
||||||
|
|
||||||
def test_port_delete(self):
|
def test_port_delete(self):
|
||||||
self.mox.StubOutWithMock(api, "quantum_delete_port")
|
self.mox.StubOutWithMock(api, "quantum_delete_port")
|
||||||
api.quantum_delete_port(IsA(http.HttpRequest), 'n1', 'p1').AndReturn(True)
|
api.quantum_delete_port(IsA(http.HttpRequest),
|
||||||
|
'n1', 'p1').AndReturn(True)
|
||||||
|
|
||||||
formData = {'port' : 'p1',
|
formData = {'port': 'p1',
|
||||||
'network' : 'n1',
|
'network': 'n1',
|
||||||
'method': 'DeletePort'}
|
'method': 'DeletePort'}
|
||||||
|
|
||||||
self.mox.StubOutWithMock(messages, 'success')
|
self.mox.StubOutWithMock(messages, 'success')
|
||||||
@ -43,14 +46,14 @@ class PortViewTests(base.BaseViewTests):
|
|||||||
args=[self.request.user.tenant, "n1"]),
|
args=[self.request.user.tenant, "n1"]),
|
||||||
formData)
|
formData)
|
||||||
|
|
||||||
|
|
||||||
def test_port_attach(self):
|
def test_port_attach(self):
|
||||||
self.mox.StubOutWithMock(api, "quantum_attach_port")
|
self.mox.StubOutWithMock(api, "quantum_attach_port")
|
||||||
api.quantum_attach_port(IsA(http.HttpRequest), 'n1', 'p1', dict).AndReturn(True)
|
api.quantum_attach_port(IsA(http.HttpRequest),
|
||||||
|
'n1', 'p1', dict).AndReturn(True)
|
||||||
|
|
||||||
formData = {'port' : 'p1',
|
formData = {'port': 'p1',
|
||||||
'network' : 'n1',
|
'network': 'n1',
|
||||||
'vif_id' : 'v1',
|
'vif_id': 'v1',
|
||||||
'method': 'AttachPort'}
|
'method': 'AttachPort'}
|
||||||
|
|
||||||
self.mox.StubOutWithMock(messages, 'success')
|
self.mox.StubOutWithMock(messages, 'success')
|
||||||
@ -61,14 +64,16 @@ class PortViewTests(base.BaseViewTests):
|
|||||||
formData)
|
formData)
|
||||||
|
|
||||||
self.assertRedirectsNoFollow(res, reverse('dash_networks_detail',
|
self.assertRedirectsNoFollow(res, reverse('dash_networks_detail',
|
||||||
args=[self.request.user.tenant, "n1"]))
|
args=[self.request.user.tenant,
|
||||||
|
"n1"]))
|
||||||
|
|
||||||
def test_port_detach(self):
|
def test_port_detach(self):
|
||||||
self.mox.StubOutWithMock(api, "quantum_detach_port")
|
self.mox.StubOutWithMock(api, "quantum_detach_port")
|
||||||
api.quantum_detach_port(IsA(http.HttpRequest), 'n1', 'p1').AndReturn(True)
|
api.quantum_detach_port(IsA(http.HttpRequest),
|
||||||
|
'n1', 'p1').AndReturn(True)
|
||||||
|
|
||||||
formData = {'port' : 'p1',
|
formData = {'port': 'p1',
|
||||||
'network' : 'n1',
|
'network': 'n1',
|
||||||
'method': 'DetachPort'}
|
'method': 'DetachPort'}
|
||||||
|
|
||||||
self.mox.StubOutWithMock(messages, 'success')
|
self.mox.StubOutWithMock(messages, 'success')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user