diff --git a/changed_files.txt b/changed_files.txt new file mode 100644 index 0000000..48e3f62 --- /dev/null +++ b/changed_files.txt @@ -0,0 +1,4 @@ +A custom-integrations/config.json +M custom-integrations/delete_assets.star +A custom-integrations/test.star +A temp.txt diff --git a/custom-integrations/config.json b/custom-integrations/config.json new file mode 100644 index 0000000..39cf061 --- /dev/null +++ b/custom-integrations/config.json @@ -0,0 +1 @@ +{"test": "test"} \ No newline at end of file diff --git a/custom-integrations/delete_assets.star b/custom-integrations/delete_assets.star index 622c43f..009921b 100644 --- a/custom-integrations/delete_assets.star +++ b/custom-integrations/delete_assets.star @@ -30,9 +30,9 @@ def delete_assets(assets, headers): # verify the delete worked if delete.status_code == 204: print( - f"Deleted all assets matching this search: {}".format()) + "Deleted all assets matching this search: {}".format()) else: - print(f"Failed to delete assets. Please try again.") + print("Failed to delete assets. Please try again.") def main(*args, **kwargs): diff --git a/custom-integrations/test.star b/custom-integrations/test.star new file mode 100644 index 0000000..e15c0b7 --- /dev/null +++ b/custom-integrations/test.star @@ -0,0 +1,43 @@ +load('runzero.types', 'ImportAsset', 'NetworkInterface') +load('json', json_encode='encode', json_decode='decode') +load('net', 'ip_address') +load('http', http_post='post', http_get='get', http_delete='delete', 'url_encode') + +BASE_URL = "https://console.runZero.com/api/v1.0" +SEARCH = "alive:f" + +def get_delete_ids(headers): + # get assets to delete + assets = [] + url = BASE_URL + "/export/org/assets.json" + get_assets = http_get(url=url, headers=headers, body=bytes(url_encode({"search": SEARCH, "fields": "id"}))) + assets_json = json_decode(get_assets.body) + + # if you got assets, return them as a list of asset IDs + if get_assets.status_code == 200: + assets = [x["id"] for x in assets_json] + return assets + else: + return None + + +def delete_assets(assets, headers): + + # delete assets + url = BASE_URL + "/org/assets/bulk/delete" + delete = http_delete(url, headers=headers, body=bytes(json_encode({"asset_ids": assets}))) + + # verify the delete worked + if delete.status_code == 204: + print( + "Deleted all assets matching this search: {}".format()) + else: + print("Failed to delete assets. Please try again.") + + +def main(*args, **kwargs): + rz_org_token = kwargs['access_secret'] + headers = {"Authorization": "Bearer {}".format(rz_org_token)} + assets = get_delete_ids(headers=headers) + if assets: + delete_assets(assets=assets) \ No newline at end of file diff --git a/temp.txt b/temp.txt new file mode 100644 index 0000000..75c3b77 --- /dev/null +++ b/temp.txt @@ -0,0 +1 @@ +testing workflow \ No newline at end of file