@@ -97,13 +97,18 @@ def init_session(self):
9797 resource_owner_secret = self .data ["secret" ],
9898 )
9999
100- def call_maas (self , method , path , data = None ):
100+ def call_maas (self , method , path , data = None , ignore_404 = False ):
101101 if not path .startswith ("/" ):
102102 path = "/" + path
103103 url = f"{ self .data ['endpoint' ]} :5240/MAAS/api/2.0{ path } "
104104 resp = self .session .request (method , url , data = data )
105+
106+ if resp .status_code == 404 and ignore_404 :
107+ return None
108+
105109 if not resp .ok :
106110 fail (f"MAAS API error: { resp .status_code } { resp .text } " )
111+
107112 try :
108113 return resp .json () if resp .text else {}
109114 except ValueError :
@@ -183,8 +188,9 @@ def delete(self):
183188 sysid = self .data .get ("system_id" )
184189 if not sysid :
185190 fail ("system_id missing for delete" )
186- self .call_maas ("POST" , f"/machines/{ sysid } /" , {"op" : "release" })
187- succeed ({"status" : "success" , "message" : "Instance deleted" })
191+
192+ self .call_maas ("POST" , f"/machines/{ sysid } /" , {"op" : "release" }, ignore_404 = True )
193+ succeed ({"status" : "success" , "message" : f"Instance deleted or not found ({ sysid } )" })
188194
189195 def start (self ):
190196 sysid = self .data .get ("system_id" )
0 commit comments