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 committed by Subrahmanyam Ongole
parent a82b7524c4
commit c934db1617
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']})
try:
pts = []
for port in api.neutron.port_list(request, device_id=instance_id):
policytarget = client.pt_list(request,
tenant_id=request.user.tenant_id, port_id=port.id)
if policytarget:
pts.append(policytarget[0])
for pt in pts:
client.pt_delete(request, pt.id)
instance = api.nova.server_get(request, instance_id)
metadata_pts = instance.metadata.get('pts', None)
if metadata_pts:
pts = metadata_pts.split(",")
for pt in pts:
client.pt_delete(request, pt)
api.nova.server_delete(request, instance_id)
LOG.debug('Deleted instance %s successfully' % instance_id)
return http.HttpResponseRedirect(url)

View File

@ -128,6 +128,7 @@ class InstancesTab(tabs.TableTab):
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
@ -150,11 +151,13 @@ class InstancesTab(tabs.TableTab):
if policy_target_ports:
time.sleep(0.5)
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
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
except Exception:
self._has_more = False
error_message = _('Unable to get instances')

View File

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