From 27c226988674de0a806555bb61941b339b63460e Mon Sep 17 00:00:00 2001 From: Tyler Diderich Date: Tue, 8 Apr 2025 08:55:15 -0500 Subject: [PATCH 1/7] testing workflow --- temp.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 temp.txt 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 From 81400da6d5798ed111bac9e1e3856dcc5b49bc76 Mon Sep 17 00:00:00 2001 From: Tyler Diderich Date: Tue, 8 Apr 2025 09:46:09 -0500 Subject: [PATCH 2/7] test star validation --- custom-integrations/test.star | 43 +++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 custom-integrations/test.star diff --git a/custom-integrations/test.star b/custom-integrations/test.star new file mode 100644 index 0000000..622c43f --- /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( + f"Deleted all assets matching this search: {}".format()) + else: + print(f"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 From db5095229b3ed383597f2b6b0b30923ee35fc6d4 Mon Sep 17 00:00:00 2001 From: Tyler Diderich Date: Tue, 8 Apr 2025 09:48:23 -0500 Subject: [PATCH 3/7] fix issue --- custom-integrations/delete_assets.star | 4 +-- custom-integrations/test.star | 43 -------------------------- 2 files changed, 2 insertions(+), 45 deletions(-) delete mode 100644 custom-integrations/test.star 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 deleted file mode 100644 index 622c43f..0000000 --- a/custom-integrations/test.star +++ /dev/null @@ -1,43 +0,0 @@ -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( - f"Deleted all assets matching this search: {}".format()) - else: - print(f"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 From dfb3bdec06b60142b48f36b11503fb48ebf5ef4f Mon Sep 17 00:00:00 2001 From: Tyler Diderich Date: Tue, 8 Apr 2025 09:54:44 -0500 Subject: [PATCH 4/7] validate starlark workflow --- custom-integrations/test.star | 43 +++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 custom-integrations/test.star diff --git a/custom-integrations/test.star b/custom-integrations/test.star new file mode 100644 index 0000000..009921b --- /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 From 5fa2db4af1a407c7882ab9258f7d44be55b4f516 Mon Sep 17 00:00:00 2001 From: Tyler Diderich Date: Tue, 8 Apr 2025 09:55:42 -0500 Subject: [PATCH 5/7] validate starlark workflow --- custom-integrations/test.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-integrations/test.star b/custom-integrations/test.star index 009921b..e15c0b7 100644 --- a/custom-integrations/test.star +++ b/custom-integrations/test.star @@ -25,7 +25,7 @@ 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}))) + delete = http_delete(url, headers=headers, body=bytes(json_encode({"asset_ids": assets}))) # verify the delete worked if delete.status_code == 204: From 5f6c59c07dda651abbf466a02dde7b82ddc12776 Mon Sep 17 00:00:00 2001 From: Tyler Diderich Date: Tue, 8 Apr 2025 10:45:23 -0500 Subject: [PATCH 6/7] test --- custom-integrations/config.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 custom-integrations/config.json 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 From 673f41b5d9f80d96ae5bb130a48eb45b02202df4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 8 Apr 2025 15:45:40 +0000 Subject: [PATCH 7/7] Auto: update integrations JSON and README --- changed_files.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 changed_files.txt 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