Source code for betterboto.ssm

import types
import logging
import time

logger = logging.getLogger(__file__)

put_parameter_and_wait_max_retries = 10


[docs]def put_parameter_and_wait(self, Name, **kwargs): """ This will call put_parameter and ensure it has been successfully put by checking it :param self: ssm client :param Name: The fully qualified name of the parameter that you want to add to the system :param kwargs: These args are passed through to ssm.put_parameter :return: ssm.get_parameter.response """ new_version = self.put_parameter(Name=Name, **kwargs).get('Version') count = 0 current_parameter = { "Parameter": { "Version": -1 } } while current_parameter.get('Parameter').get('Version') < new_version: count += 1 if count > put_parameter_and_wait_max_retries: raise Exception(f"Putting and waiting for param {Name} failed") time.sleep(1) if new_version == 1: try: current_parameter = self.get_parameter(Name=Name) except self.exceptions.ParameterNotFound: pass else: current_parameter = self.get_parameter(Name=Name) return current_parameter
def make_better(client): client.put_parameter_and_wait = types.MethodType(put_parameter_and_wait, client) return client