From 4a1006ac34460b0819007c13d0aab191cb607673 Mon Sep 17 00:00:00 2001 From: Ed Ferguson <5855090+eeferg@users.noreply.github.com> Date: Tue, 26 Dec 2023 15:46:25 -0500 Subject: [PATCH] Fixed payload format (#7754) * Fixed payload format * added changelog fragment * Update changelogs/fragments/7754-fixed-payload-format.yml Co-authored-by: Felix Fontein --------- Co-authored-by: Ed Ferguson Co-authored-by: Felix Fontein --- changelogs/fragments/7754-fixed-payload-format.yml | 2 ++ plugins/modules/statusio_maintenance.py | 13 ++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) create mode 100644 changelogs/fragments/7754-fixed-payload-format.yml diff --git a/changelogs/fragments/7754-fixed-payload-format.yml b/changelogs/fragments/7754-fixed-payload-format.yml new file mode 100644 index 0000000000..01458053e5 --- /dev/null +++ b/changelogs/fragments/7754-fixed-payload-format.yml @@ -0,0 +1,2 @@ +bugfixes: + - statusio_maintenance - fix error caused by incorrectly formed API data payload. Was raising "Failed to create maintenance HTTP Error 400 Bad Request" caused by bad data type for date/time and deprecated dict keys (https://github.com/ansible-collections/community.general/pull/7754). \ No newline at end of file diff --git a/plugins/modules/statusio_maintenance.py b/plugins/modules/statusio_maintenance.py index 31b422453e..e6b34b7098 100644 --- a/plugins/modules/statusio_maintenance.py +++ b/plugins/modules/statusio_maintenance.py @@ -286,25 +286,24 @@ def create_maintenance(auth_headers, url, statuspage, host_ids, returned_date, maintenance_notify_now, maintenance_notify_72_hr, maintenance_notify_24_hr, maintenance_notify_1_hr): - returned_dates = [[x] for x in returned_date] component_id = [] container_id = [] for val in host_ids: component_id.append(val['component_id']) container_id.append(val['container_id']) + infrastructure_id = [i + '-' + j for i, j in zip(component_id, container_id)] try: values = json.dumps({ "statuspage_id": statuspage, - "components": component_id, - "containers": container_id, "all_infrastructure_affected": str(int(all_infrastructure_affected)), + "infrastructure_affected": infrastructure_id, "automation": str(int(automation)), "maintenance_name": title, "maintenance_details": desc, - "date_planned_start": returned_dates[0], - "time_planned_start": returned_dates[1], - "date_planned_end": returned_dates[2], - "time_planned_end": returned_dates[3], + "date_planned_start": returned_date[0], + "time_planned_start": returned_date[1], + "date_planned_end": returned_date[2], + "time_planned_end": returned_date[3], "maintenance_notify_now": str(int(maintenance_notify_now)), "maintenance_notify_72_hr": str(int(maintenance_notify_72_hr)), "maintenance_notify_24_hr": str(int(maintenance_notify_24_hr)),