Member list to show ERRORED instances

Change-Id: I1b1a659c2a6ce85e375d7892a54d998b3697265f
closes-bug: #1482325
This commit is contained in:
ank 2017-01-27 15:44:14 +05:30
parent d725eeabaf
commit 44a3e4acf3
3 changed files with 19 additions and 13 deletions

View File

@ -144,13 +144,12 @@ class RemoveVMLink(tables.DeleteAction):
self.table.kwargs['policy_target_id']}) self.table.kwargs['policy_target_id']})
try: try:
pts = [] pts = []
for port in api.neutron.port_list(request, device_id=instance_id): instance = api.nova.server_get(request, instance_id)
policytarget = client.pt_list(request, metadata_pts = instance.metadata.get('pts', None)
tenant_id=request.user.tenant_id, port_id=port.id) if metadata_pts:
if policytarget: pts = metadata_pts.split(",")
pts.append(policytarget[0]) for pt in pts:
for pt in pts: client.pt_delete(request, pt)
client.pt_delete(request, pt.id)
api.nova.server_delete(request, instance_id) api.nova.server_delete(request, instance_id)
LOG.debug('Deleted instance %s successfully' % instance_id) LOG.debug('Deleted instance %s successfully' % instance_id)
return http.HttpResponseRedirect(url) return http.HttpResponseRedirect(url)

View File

@ -128,6 +128,7 @@ class InstancesTab(tabs.TableTab):
tenant_id=self.request.user.tenant_id, tenant_id=self.request.user.tenant_id,
policy_target_group_id=policy_targetid) policy_target_group_id=policy_targetid)
policy_target_ports = [x.port_id for x in policytargets] policy_target_ports = [x.port_id for x in policytargets]
policy_target_ids = [p.id for p in policytargets]
marker = self.request.GET.get( marker = self.request.GET.get(
tables.InstancesTable._meta.pagination_param, None) tables.InstancesTable._meta.pagination_param, None)
# TODO(Sumit): Setting paginate to False is a temporary # TODO(Sumit): Setting paginate to False is a temporary
@ -150,11 +151,13 @@ class InstancesTab(tabs.TableTab):
if policy_target_ports: if policy_target_ports:
time.sleep(0.5) time.sleep(0.5)
for item in instances: for item in instances:
for port in api.neutron.port_list(self.request, metadata_pts = item.metadata.get('pts', None)
device_id=item.id): if metadata_pts:
if port.id in policy_target_ports: pts = metadata_pts.split(",")
filtered_instances.append(item) for pt in pts:
break if pt in policy_target_ids:
filtered_instances.append(item)
break
except Exception: except Exception:
self._has_more = False self._has_more = False
error_message = _('Unable to get instances') error_message = _('Unable to get instances')

View File

@ -582,6 +582,7 @@ class LaunchInstance(workflows.Workflow):
else: else:
instance_name = context['name'] + str(count) instance_name = context['name'] + str(count)
nics = [] nics = []
pts = []
for ptg_id in context['group_id']: for ptg_id in context['group_id']:
values = ptg_id.split(":") values = ptg_id.split(":")
ptg_id = values[0] ptg_id = values[0]
@ -604,6 +605,8 @@ class LaunchInstance(workflows.Workflow):
break break
ep = client.pt_create(request, **args) ep = client.pt_create(request, **args)
nics.append({'port-id': ep.port_id}) nics.append({'port-id': ep.port_id})
pts.append(ep.id)
meta_data = {'pts': ','.join(pts)}
api.nova.server_create(request, api.nova.server_create(request,
instance_name, instance_name,
image_id, image_id,
@ -618,7 +621,8 @@ class LaunchInstance(workflows.Workflow):
instance_count=1, instance_count=1,
admin_pass=context['admin_pass'], admin_pass=context['admin_pass'],
disk_config=context.get('disk_config'), disk_config=context.get('disk_config'),
config_drive=context.get('config_drive')) config_drive=context.get('config_drive'),
meta=meta_data)
count += 1 count += 1
return True return True
except Exception as e: except Exception as e: