From e19852615e2e0197633cd9aaed187cc545a43352 Mon Sep 17 00:00:00 2001 From: Edgar Mocharnyk Date: Tue, 24 Oct 2023 17:55:52 +0300 Subject: [PATCH] Used IACP group instead of TFE to upload state --- migrator.py | 43 ++++++++++++++++++------------------------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/migrator.py b/migrator.py index 507fe52..60a9e62 100644 --- a/migrator.py +++ b/migrator.py @@ -242,34 +242,27 @@ def create_state(tfc_state, workspace_id): raw_state = requests.get(attributes["hosted-state-download-url"], headers=_get_tfc_headers()) encoded_state = binascii.b2a_base64(raw_state.content) decoded = binascii.a2b_base64(encoded_state) - data = { - "data": { - "type": "state-versions", - "attributes": { - "serial": attributes["serial"], - "md5": hashlib.md5(decoded).hexdigest(), - "lineage": raw_state.json()["lineage"], - "state": encoded_state.decode("utf-8") + state_version = { + "data": { + "type": "state-versions", + "attributes": { + "serial": attributes["serial"], + "md5": hashlib.md5(decoded).hexdigest(), + "lineage": raw_state.json()["lineage"], + "state": encoded_state.decode("utf-8") + }, + "relationships": { + "workspace": { + "data": { + "type": "workspaces", + "id": workspace_id + } + } + } } - } } - response = requests.post( - f"https://{scalr_hostname}/api/tfe/v2/workspaces/{workspace_id}/state-versions", - headers={ - "Authorization": f"Bearer {scalr_token}", - "Prefer": "profile=preview", - "Content-Type": "application/vnd.api+json" - }, - data=json.dumps(data) - ) - - if response.status_code != 201: - print(data) - print(response.json()["errors"][0]) - sys.exit(1) - - return response.json() + return write_scalr("state-versions", state_version) def create_variable(variable_key, value, category, sensitive, description=None, relationships=None): data = {