def __init__(self, provider_config: Dict[str, Any], node_id: str, cluster_name: str) -> None: self.node_id = node_id self.cluster_name = cluster_name self.provider_config = provider_config region = provider_config["region"] self.ec2_resource = resource_cache("ec2", region) self.ec2_client = self.ec2_resource.meta.client self.ssm_client = client_cache("ssm", region) cloudwatch_resource = resource_cache("cloudwatch", region) self.cloudwatch_client = cloudwatch_resource.meta.client self.CLOUDWATCH_CONFIG_TYPE_TO_CONFIG_VARIABLE_REPLACE_FUNC = { CloudwatchConfigType.AGENT: self._replace_cwa_config_variables, CloudwatchConfigType.DASHBOARD: self._replace_dashboard_config_variables, CloudwatchConfigType.ALARM: self._load_config_file, } self.CLOUDWATCH_CONFIG_TYPE_TO_UPDATE_FUNC_HEAD_NODE = { CloudwatchConfigType.AGENT: self._restart_cloudwatch_agent, CloudwatchConfigType.DASHBOARD: self._put_cloudwatch_dashboard, CloudwatchConfigType.ALARM: self._put_cloudwatch_alarm, } self.CLOUDWATCH_CONFIG_TYPE_TO_UPDATE_FUNC_WORKER_NODE = { CloudwatchConfigType.AGENT: self._restart_cloudwatch_agent, CloudwatchConfigType.ALARM: self._put_cloudwatch_alarm, }
def __init__(self, provider_config: Dict[str, Any], node_id: str, cluster_name: str) -> None: self.node_id = node_id self.cluster_name = cluster_name self.provider_config = provider_config region = provider_config["region"] self.ec2_resource = resource_cache("ec2", region) self.ec2_client = self.ec2_resource.meta.client self.ssm_client = client_cache("ssm", region) cloudwatch_resource = resource_cache("cloudwatch", region) self.cloudwatch_client = cloudwatch_resource.meta.client
def __init__(self, provider_config: Dict[str, Any], node_ids: List[str], cluster_name: str) -> None: # dedupe and sort node IDs to support deterministic unit test stubs self.node_ids = sorted(set(node_ids)) self.cluster_name = cluster_name self.provider_config = provider_config region = provider_config["region"] self.ec2_resource = resource_cache("ec2", region) self.ec2_client = self.ec2_resource.meta.client self.ssm_client = client_cache("ssm", region) cloudwatch_resource = resource_cache("cloudwatch", region) self.cloudwatch_client = cloudwatch_resource.meta.client
def make_ec2_client(region, max_retries, aws_credentials=None): """Make client, retrying requests up to `max_retries`.""" aws_credentials = aws_credentials or {} return resource_cache("ec2", region, max_retries, **aws_credentials)
def _resource(name, config): region = config["provider"]["region"] aws_credentials = config["provider"].get("aws_credentials", {}) return resource_cache(name, region, **aws_credentials)
def iam_client_stub(): resource = resource_cache("iam", "us-west-2") with Stubber(resource.meta.client) as stubber: yield stubber stubber.assert_no_pending_responses()
def ec2_client_stub_max_retries(): resource = resource_cache("ec2", "us-west-2", BOTO_MAX_RETRIES) with Stubber(resource.meta.client) as stubber: yield stubber stubber.assert_no_pending_responses()
def ec2_client_stub_fail_fast(): resource = resource_cache("ec2", "us-west-2", 0) with Stubber(resource.meta.client) as stubber: yield stubber stubber.assert_no_pending_responses()
def iam_client_stub(request): region = getattr(request, "param", "us-west-2") resource = resource_cache("iam", region) with Stubber(resource.meta.client) as stubber: yield stubber stubber.assert_no_pending_responses()