Skip to content

Commit ec0e516

Browse files
author
EarthmanT
committed
delete work
1 parent 2b3ad79 commit ec0e516

File tree

3 files changed

+53
-27
lines changed

3 files changed

+53
-27
lines changed

cloudify_vcd/legacy/compute/tasks.py

Lines changed: 39 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -75,40 +75,55 @@ def configure_server(vm_client, ctx, **_):
7575
@decorators.with_vcd_client()
7676
@decorators.with_vm_resource()
7777
def power_off_vapp(vm_client, ctx, **_):
78-
return vapp_tasks._power_off_vapp(
79-
vapp_ext=False,
80-
vapp_id=vm_client.name,
81-
vapp_client=vm_client.vapp_object.connection,
82-
vm_vdc=vm_client.vdc_name,
83-
vapp_config=vm_client.kwargs,
84-
vapp_class=VCloudvApp,
85-
__=ctx)
78+
if not skip(type(vm_client.vapp_object),
79+
vm_client.vapp_object.name,
80+
ctx,
81+
exists=vm_client.vapp_object.exists,
82+
delete_operation=True):
83+
return vapp_tasks._power_off_vapp(
84+
vapp_ext=False,
85+
vapp_id=vm_client.name,
86+
vapp_client=vm_client.vapp_object.connection,
87+
vapp_vdc=vm_client.vdc_name,
88+
vapp_config=vm_client.kwargs,
89+
vapp_class=VCloudvApp,
90+
__=ctx)
8691

8792

8893
@decorators.with_vcd_client()
8994
@decorators.with_vm_resource()
9095
def stop_vapp(vm_client, ctx, **_):
91-
return vapp_tasks._stop_vapp(
92-
vapp_ext=False,
93-
vapp_id=vm_client.name,
94-
vapp_client=vm_client.vapp_object.connection,
95-
vm_vdc=vm_client.vdc_name,
96-
vapp_config=vm_client.kwargs,
97-
vapp_class=VCloudvApp,
98-
__=ctx)
96+
if not skip(type(vm_client.vapp_object),
97+
vm_client.vapp_object.name,
98+
ctx,
99+
exists=vm_client.vapp_object.exists,
100+
delete_operation=True):
101+
return vapp_tasks._stop_vapp(
102+
vapp_ext=False,
103+
vapp_id=vm_client.name,
104+
vapp_client=vm_client.vapp_object.connection,
105+
vapp_vdc=vm_client.vdc_name,
106+
vapp_config=vm_client.kwargs,
107+
vapp_class=VCloudvApp,
108+
__=ctx)
99109

100110

101111
@decorators.with_vcd_client()
102112
@decorators.with_vm_resource()
103113
def delete_vapp(vm_client, ctx, **_):
104-
return vapp_tasks._delete_vapp(
105-
vapp_ext=False,
106-
vapp_id=vm_client.name,
107-
vapp_client=vm_client.vapp_object.connection,
108-
vm_vdc=vm_client.vdc_name,
109-
vapp_config=vm_client.kwargs,
110-
vapp_class=VCloudvApp,
111-
__=ctx)
114+
if not skip(type(vm_client.vapp_object),
115+
vm_client.vapp_object.name,
116+
ctx,
117+
exists=vm_client.vapp_object.exists,
118+
delete_operation=True):
119+
return vapp_tasks._delete_vapp(
120+
vapp_ext=False,
121+
vapp_id=vm_client.name,
122+
vapp_client=vm_client.vapp_object.connection,
123+
vapp_vdc=vm_client.vdc_name,
124+
vapp_config=vm_client.kwargs,
125+
vapp_class=VCloudvApp,
126+
__=ctx)
112127

113128

114129
@decorators.with_vcd_client()

cloudify_vcd/vapp_tasks.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -479,9 +479,12 @@ def _delete_vm(vm_external=None,
479479
last_task = None
480480

481481
if vm_ctx.instance.runtime_properties.get('__VM_CREATE_VAPP'):
482-
vm.delete()
483-
last_task = vm.vapp_object.delete()
484-
482+
try:
483+
vm.delete()
484+
# except OperationNotSupportedException:
485+
# raise
486+
finally:
487+
last_task = vm.vapp_object.delete()
485488
return vm, last_task
486489

487490

vcd_plugin_sdk/resources/vapp.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,14 @@ def vapp(self):
6262
self._vapp = self.get_vapp(self.vapp_name)
6363
return self._vapp
6464

65+
@property
66+
def exists(self):
67+
try:
68+
return self.vapp
69+
except EntityNotFoundException:
70+
pass
71+
return False
72+
6573
@property
6674
def networks(self):
6775
try:

0 commit comments

Comments
 (0)