예제 #1
0
파일: views.py 프로젝트: yashbathia/horizon
 def get_context_data(self, **kwargs):
     context = super(DetailView, self).get_context_data(**kwargs)
     port = self.get_data()
     table = project_tables.PortsTable(self.request,
                                       network_id=port.network_id)
     context["port"] = port
     context["url"] = self.get_redirect_url()
     context["actions"] = table.render_row_actions(port)
     return context
예제 #2
0
    def get_context_data(self, **kwargs):
        context = super(DetailView, self).get_context_data(**kwargs)
        port = self.get_data()
        network_url = "horizon:project:networks:detail"
        subnet_url = "horizon:project:networks:subnets:detail"

        @memoized.memoized_method
        def get_network(network_id):
            try:
                network = api.neutron.network_get(self.request, network_id)
            except Exception:
                network = {}
                msg = _('Unable to retrieve network details.')
                exceptions.handle(self.request, msg)

            return network

        @memoized.memoized_method
        def get_security_groups(sg_ids):
            # Avoid extra API calls if no security group is associated.
            if not sg_ids:
                return []
            try:
                security_groups = api.neutron.security_group_list(self.request,
                                                                  id=sg_ids)
            except Exception:
                security_groups = []
                msg = _("Unable to retrieve security groups for the port.")
                exceptions.handle(self.request, msg)
            return security_groups

        results = futurist_utils.call_functions_parallel(
            (get_network, [port.network_id]),
            (get_security_groups, [tuple(port.security_groups)]))
        network, port.security_groups = results

        port.network_name = network.get('name')
        port.network_url = reverse(network_url, args=[port.network_id])
        for ip in port.fixed_ips:
            ip['subnet_url'] = reverse(subnet_url, args=[ip['subnet_id']])
        table = project_tables.PortsTable(self.request,
                                          network_id=port.network_id)
        # TODO(robcresswell) Add URL for "Ports" crumb after bug/1416838
        breadcrumb = [
            ((port.network_name or port.network_id), port.network_url),
            (_("Ports"), None)
        ]
        context["custom_breadcrumb"] = breadcrumb
        context["port"] = port
        context["url"] = reverse(
            'horizon:project:networks:ports_tab', args=[port.network_id])
        context["actions"] = table.render_row_actions(port)
        return context
예제 #3
0
 def get_context_data(self, **kwargs):
     context = super(DetailView, self).get_context_data(**kwargs)
     port = self.get_data()
     network_url = "horizon:project:networks:detail"
     subnet_url = "horizon:project:networks:subnets:detail"
     network = self.get_network(port.network_id)
     port.network_name = network.get('name')
     port.network_url = reverse(network_url, args=[port.network_id])
     for ip in port.fixed_ips:
         ip['subnet_url'] = reverse(subnet_url, args=[ip['subnet_id']])
     table = project_tables.PortsTable(self.request,
                                       network_id=port.network_id)
     # TODO(robcresswell) Add URL for "Ports" crumb after bug/1416838
     breadcrumb = [((port.network_name
                     or port.network_id), port.network_url),
                   (_("Ports"), None)]
     context["custom_breadcrumb"] = breadcrumb
     context["port"] = port
     context["url"] = self.get_redirect_url()
     context["actions"] = table.render_row_actions(port)
     return context
예제 #4
0
 def get_context_data(self, **kwargs):
     context = super(DetailView, self).get_context_data(**kwargs)
     port = self.get_data()
     network = self.get_network(port.network_id)
     port.network_name = network.get('name')
     network_nav = port.network_name or port.network_id
     table = project_tables.PortsTable(self.request,
                                       network_id=port.network_id)
     # TODO(robcresswell) Add URL for "Ports" crumb after bug/1416838
     breadcrumb = [
         (_("Networks"), self.get_redirect_url()),
         (network_nav,
          reverse('horizon:project:networks:detail',
                  args=(port.network_id, ))),
         (_("Ports"), ),
     ]
     context["custom_breadcrumb"] = breadcrumb
     context["port"] = port
     context["url"] = self.get_redirect_url()
     context["actions"] = table.render_row_actions(port)
     return context