diff --git a/images/maas-rack-controller/2.8_redfish_retries.patch b/images/maas-rack-controller/2.8_redfish_retries.patch new file mode 100644 index 0000000..ab55fc5 --- /dev/null +++ b/images/maas-rack-controller/2.8_redfish_retries.patch @@ -0,0 +1,12 @@ +diff --git a/src/provisioningserver/drivers/power/redfish.py b/src/provisioningserver/drivers/power/redfish.py +index 27f63545a..9c39d577e 100644 +--- a/src/provisioningserver/drivers/power/redfish.py ++++ b/src/provisioningserver/drivers/power/redfish.py +@@ -149,6 +149,7 @@ class RedfishPowerDriver(RedfishPowerDriverBase): + make_setting_field("node_id", "Node ID", scope=SETTING_SCOPE.NODE), + ] + ip_extractor = make_ip_extractor("power_address") ++ wait_time = (4, 8, 16, 32) + + def detect_missing_packages(self): + # no required packages diff --git a/images/maas-rack-controller/Dockerfile b/images/maas-rack-controller/Dockerfile index ab7dc4f..d8dcf0c 100644 --- a/images/maas-rack-controller/Dockerfile +++ b/images/maas-rack-controller/Dockerfile @@ -58,10 +58,13 @@ COPY 2.8_nic_filter.patch /tmp/2.8_nic_filter.patch COPY 2.8_secure_headers.patch /tmp/2.8_secure_headers.patch # Patch so maas knows that "BMC error" is retriable COPY 2.8_ipmi_error.patch /tmp/2.8_ipmi_error.patch +# Patch to space redfish request retries apart a bit, to avoid overwhelming the BMC +COPY 2.8_redfish_retries.patch /tmp/2.8_redfish_retries.patch RUN cd /usr/lib/python3/dist-packages/provisioningserver/utils && patch network.py < /tmp/2.8_nic_filter.patch RUN cd /usr/lib/python3/dist-packages/twisted/web && patch server.py < /tmp/2.8_secure_headers.patch RUN cd /usr/lib/python3/dist-packages/provisioningserver/drivers/power && patch ipmi.py < /tmp/2.8_ipmi_error.patch +RUN cd /usr/lib/python3/dist-packages/provisioningserver/drivers/power && patch redfish.py < /tmp/2.8_redfish_retries.patch # echo journalctl logs to the container's stdout COPY scripts/journalctl-to-tty.service /etc/systemd/system/journalctl-to-tty.service