Skip to content

Commit

Permalink
Merge pull request #22 from MaxBab/add_resource_instances_recursive_d…
Browse files Browse the repository at this point in the history
…eletion

[resource] - Add service instances recursive deletion
  • Loading branch information
goldyfruit authored Mar 26, 2024
2 parents 3a3b1dc + ec71394 commit 7beaa65
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions ibmcloud_python_sdk/resource/resource_instance.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from ibmcloud_python_sdk.config import params
from ibmcloud_python_sdk.auth import get_headers as headers
from ibmcloud_python_sdk.utils.common import query_wrapper as qw
from ibmcloud_python_sdk.utils.common import resource_error
from ibmcloud_python_sdk.utils.common import resource_not_found
from ibmcloud_python_sdk.utils.common import resource_deleted
from ibmcloud_python_sdk.resource import resource_group
Expand Down Expand Up @@ -178,11 +179,13 @@ def get_resource_instance_by_name(self, name):
name, error))
raise

def delete_resource_instance(self, instance):
def delete_resource_instance(self, instance, recursive=False):
"""Delete a resource instance
:param instance: The resource instance name or ID
:type instance: str
:param recursive: Recursive resources of the resource instance
:type recursive: bool
:return: Deletion status
:rtype: resource_deleted()
"""
Expand All @@ -192,11 +195,22 @@ def delete_resource_instance(self, instance):
return instance_info

# Connect to api endpoint for resource_instances
path = ("/v2/resource_instances/{}".format(instance_info['guid']))
# If "recursive" is defined, delete the resource instance related
# recursive resources
if recursive:
path = ("/v2/resource_instances/{}?recursive=true".format(
instance_info['guid']))
else:
path = ("/v2/resource_instances/{}".format(
instance_info['guid']))

data = qw("rg", "DELETE", path, headers())

# Return data
# Error code - 422
# The server can't process the request, although it understands it
if data["response"].status == 422:
return resource_error(422, data["data"]["message"])
if data["response"].status != 204:
return data["data"]

Expand Down

0 comments on commit 7beaa65

Please sign in to comment.