pep8 fixes for quantum integration files

Fixing PEP8 compliance issues for the quantum integration effort.
This commit is contained in:
Arvind Somya 2011-09-06 15:38:46 -04:00
parent 7428d9e7f0
commit e99c87b61a
5 changed files with 252 additions and 188 deletions

View File

@ -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']}

View File

@ -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}

View File

@ -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

View File

@ -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()

View File

@ -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')