def get_instances_data(self): policy_targetid = self.tab_group.kwargs['policy_target_id'] filtered_instances = [] try: policytargets = client.pt_list(self.request, policy_target_group_id=policy_targetid) policy_target_ports = [x.port_id for x in policytargets] marker = self.request.GET.get( tables.InstancesTable._meta.pagination_param, None) instances, self._has_more = api.nova.server_list( self.request, search_opts={'marker': marker, 'paginate': True}) instances = [item for item in instances if not itables.is_deleting(item)] for item in instances: for port in api.neutron.port_list(self.request, device_id=item.id): if port.id in policy_target_ports: filtered_instances.append(item) break except Exception: self._has_more = False error_message = _('Unable to get instances') exceptions.handle(self.request, error_message) filtered_instances = [] return filtered_instances
def get_instances_data(self): policy_targetid = self.tab_group.kwargs['policy_target_id'] filtered_instances = [] try: policytargets = client.pt_list( self.request, tenant_id=self.request.user.tenant_id, policy_target_group_id=policy_targetid) policy_target_ports = [x.port_id for x in policytargets] policy_target_ids = [p.id for p in policytargets] marker = self.request.GET.get( tables.InstancesTable._meta.pagination_param, None) # TODO(Sumit): Setting paginate to False is a temporary # fix. Earlier, when paginate was set to True we were # retrieving instances in pages and were only processing # the first page. While pagination is required for # scaling to a large number of instances, we need to first # retrieve the instances in pages, then process them, # and then show the filtered list (filtered_instances) # in pages. instances, self._has_more = api.nova.server_list(self.request, search_opts={ 'marker': marker, 'paginate': False }) self._has_more = False instances = [ item for item in instances if not itables.is_deleting(item) ] # port_list for a given instance is not available # when it query immediately after member create, # So adding half sec sleep before port list query if policy_target_ports: time.sleep(0.5) for item in instances: metadata_pts = item.metadata.get('pts', None) if metadata_pts: pts = metadata_pts.split(",") for pt in pts: if pt in policy_target_ids: filtered_instances.append(item) break else: for port in api.neutron.port_list(self.request, device_id=item.id): if port.id in policy_target_ports: filtered_instances.append(item) break except Exception: self._has_more = False error_message = _('Unable to get instances') exceptions.handle(self.request, error_message) filtered_instances = [] return filtered_instances
def get_instances_data(self): policy_targetid = self.tab_group.kwargs['policy_target_id'] filtered_instances = [] try: policytargets = client.pt_list(self.request, tenant_id=self.request.user.tenant_id, policy_target_group_id=policy_targetid) policy_target_ports = [x.port_id for x in policytargets] policy_target_ids = [p.id for p in policytargets] marker = self.request.GET.get( tables.InstancesTable._meta.pagination_param, None) # TODO(Sumit): Setting paginate to False is a temporary # fix. Earlier, when paginate was set to True we were # retrieving instances in pages and were only processing # the first page. While pagination is required for # scaling to a large number of instances, we need to first # retrieve the instances in pages, then process them, # and then show the filtered list (filtered_instances) # in pages. instances, self._has_more = api.nova.server_list( self.request, search_opts={'marker': marker, 'paginate': False}) self._has_more = False instances = [item for item in instances if not itables.is_deleting(item)] # port_list for a given instance is not available # when it query immediately after member create, # So adding half sec sleep before port list query if policy_target_ports: time.sleep(0.5) for item in instances: metadata_pts = item.metadata.get('pts', None) if metadata_pts: pts = metadata_pts.split(",") for pt in pts: if pt in policy_target_ids: filtered_instances.append(item) break else: for port in api.neutron.port_list(self.request, device_id=item.id): if port.id in policy_target_ports: filtered_instances.append(item) break except Exception: self._has_more = False error_message = _('Unable to get instances') exceptions.handle(self.request, error_message) filtered_instances = [] return filtered_instances
def allowed(self, request, instance): return ((instance.status in project_tables.ACTIVE_STATES or instance.status == 'SHUTOFF') and not project_tables.is_deleting(instance))
def allowed(self, request, instance): return ((instance.status in project_tables.ACTIVE_STATES) and not project_tables.is_deleting(instance))
def allowed(self, request, instance): return ((instance.status in ACTIVE_STATES or instance.status == 'SHUTOFF') and not is_deleting(instance))
def allowed(self, request, instance=None): return (instance.status in instance_tables.SNAPSHOT_READY_STATES and not instance_tables.is_deleting(instance) and request.user.tenant_id == instance.tenant_id)
def allowed(self, request, instance): return request.user.is_superuser and instance.status in proj_tables.ACTIVE_STATES and not proj_tables.is_deleting(instance)
def allowed(self, request, instance): return instance.status in BLESSED_STATES and not proj_tables.is_deleting(instance)
def allowed(self, request, instance): return request.user.is_superuser \ and instance.status not in self.DISALLOWED_STATES \ and not proj_tables.is_deleting(instance)
def allowed(self, request, instance): return ((instance.status in ACTIVE_STATES or instance.status == 'SHUTOFF') and not is_deleting(instance))
def allowed(self, request, instance=None): return (instance.status in instance_tables.SNAPSHOT_READY_STATES and not instance_tables.is_deleting(instance) and request.user.tenant_id == instance.tenant_id)
def allowed(self, request, instance): return request.user.is_superuser and instance.status in proj_tables.ACTIVE_STATES and not proj_tables.is_deleting( instance)
def allowed(self, request, instance): return instance.status in BLESSED_STATES and not proj_tables.is_deleting( instance)