Esempio n. 1
0
    def test_network_details(self):
        self.mox.StubOutWithMock(api, 'quantum_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)

        self.mox.StubOutWithMock(api, 'quantum_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)

        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('steer:engine:networks:detail',
                                      args=['n1']))

        self.assertTemplateUsed(res, 'engine/networks/detail.html')
        self.assertIn('network', res.context)

        network = res.context['network']

        self.assertEqual(network['name'], 'test_network')
        self.assertEqual(network['id'], 'n1')
Esempio n. 2
0
def _get_port_states(request, 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'])
        # Get port attachments
        port_attachment = api.quantum_port_attachment(request,
                                                      network_id, port['id'])
        # Find instance the attachment belongs to
        connected_instance = None
        if port_attachment['attachment']:
            for vif in vifs:
                if str(vif['id']) == str(port_attachment['attachment']['id']):
                    connected_instance = vif['id']
                    break
        network_ports.append({
            'id': port_details['port']['id'],
            'state': port_details['port']['state'],
            'attachment': port_attachment['attachment'],
            'instance': connected_instance})
    return network_ports
Esempio n. 3
0
def _get_port_states(request, 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"])
        # Get port attachments
        port_attachment = api.quantum_port_attachment(request, network_id, port["id"])
        # Find instance the attachment belongs to
        connected_instance = None
        if port_attachment["attachment"]:
            for vif in vifs:
                if str(vif["id"]) == str(port_attachment["attachment"]["id"]):
                    connected_instance = vif["id"]
                    break
        network_ports.append(
            {
                "id": port_details["port"]["id"],
                "state": port_details["port"]["state"],
                "attachment": port_attachment["attachment"],
                "instance": connected_instance,
            }
        )
    return network_ports
Esempio n. 4
0
 def __init__(self, request, *args, **kwargs):
     super(AttachPort, self).__init__(*args, **kwargs)
     # Populate VIF choices
     vif_choices = [('', "Select a VIF")]
     for vif in api.get_vif_ids(request):
         if vif['available']:
             name = "Instance %s VIF %s" % (vif['instance_name'], vif['id'])
             vif_choices.append((vif['id'], name,))
     self.fields['vif_id'].choices = vif_choices
Esempio n. 5
0
    def test_port_attach(self):
        self.mox.StubOutWithMock(api, "quantum_attach_port")
        api.quantum_attach_port(IsA(http.HttpRequest),
                                'n1', 'p1', dict).AndReturn(True)
        self.mox.StubOutWithMock(api, "get_vif_ids")
        api.get_vif_ids(IsA(http.HttpRequest)).AndReturn([{
                'id': 'v1',
                'instance_name': 'instance1',
                'available': True}])

        formData = {'port': 'p1',
                    'network': 'n1',
                    'vif_id': 'v1',
                    'method': 'AttachPort'}

        self.mox.ReplayAll()

        res = self.client.post(reverse('steer:engine:networks:port_attach',
                                       args=["n1", "p1"]),
                               formData)

        self.assertRedirectsNoFollow(res,
                                     reverse('steer:engine:networks:detail',
                                             args=["n1"]))