Exemple #1
0
    def get_all_managed_prefix_lists(self, full_information=True, region=None):
        if region is not None:
            return self.get_all_managed_prefix_lists_in_region(region, full_information=full_information)

        final_result = list()
        for region in AWSAccount.get_aws_account().regions.values():
            final_result += self.get_all_managed_prefix_lists_in_region(region, full_information=full_information)
        return final_result
Exemple #2
0
    def get_all_nat_gateways(self, full_information=True, region=None):
        if region is not None:
            return self.get_region_nat_gateways(region, full_information=full_information)

        final_result = list()
        for region in AWSAccount.get_aws_account().regions.values():
            final_result += self.get_region_nat_gateways(region, full_information=full_information)
        return final_result
Exemple #3
0
 def yield_cloud_watch_metrics(self):
     """
     Yields metrics - made to handle large amounts of data, in order to prevent the OOM collapse.
     :return:
     """
     for region in AWSAccount.get_aws_account().regions.values():
         AWSAccount.set_aws_region(region)
         for response in self.execute(self.client.list_metrics, "Metrics"):
             yield response
 def get_connection_id():
     """
     Each connection has a unique id- in order to reuse it. This function generates it.
     :return:
     """
     aws_account = AWSAccount.get_aws_account()
     aws_region = AWSAccount.get_aws_region()
     region_mark = aws_region.region_mark if aws_region is not None else ""
     return f"{aws_account.id}/{region_mark}"
    def get_all_namespaces(self, region=None, full_information=True):
        if region is not None:
            return self.get_region_namespaces(region, full_information=full_information)

        final_result = []
        for region in AWSAccount.get_aws_account().regions.values():
            final_result += self.get_region_namespaces(region)

        return final_result
Exemple #6
0
    def get_all_task_definitions(self, region=None):
        if region is not None:
            return self.get_region_task_definitions(region)

        final_result = list()
        for region in AWSAccount.get_aws_account().regions.values():
            final_result += self.get_region_task_definitions(region)

        return final_result
Exemple #7
0
    def get_all_ec2_launch_templates(self, full_information=False, region=None):
        final_result = list()

        if region is not None:
            return self.get_region_launch_templates(region, full_information=full_information)

        for region in AWSAccount.get_aws_account().regions.values():
            final_result += self.get_region_launch_templates(region, full_information=full_information)

        return final_result
Exemple #8
0
    def get_authorization_info(self):
        current_account = AWSAccount.get_aws_account()

        lst_ret = list(self.execute(self.client.get_authorization_token, "authorizationData", filters_req={"registryIds": [current_account.id]}))
        for dict_src in lst_ret:
            auth_user_token = b64decode(dict_src['authorizationToken']).decode()
            user_name, decoded_token = auth_user_token.split(":")
            dict_src["user_name"] = user_name
            dict_src["decoded_token"] = decoded_token
            dict_src["proxy_host"] = dict_src["proxyEndpoint"][len("https://"):]
        return lst_ret
Exemple #9
0
    def get_all_instances(self):
        """
        Get all ec2 instances in current region.
        :return:
        """
        final_result = list()

        for region in AWSAccount.get_aws_account().regions.values():
            AWSAccount.set_aws_region(region)
            for instance in self.execute(self.client.describe_instances,
                                         "Reservations"):
                final_result.extend(instance['Instances'])
        return [EC2Instance(instance) for instance in final_result]
Exemple #10
0
    def get_all_spot_fleet_requests(self, full_information=False):
        final_result = list()

        for region in AWSAccount.get_aws_account().regions.values():
            AWSAccount.set_aws_region(region)
            for ret in self.execute(self.client.describe_spot_fleet_requests, "SpotFleetRequestConfigs"):
                obj = EC2SpotFleetRequest(ret)
                if full_information is True:
                    raise NotImplementedError()

                final_result.append(obj)

        return final_result
    def get_all_cache_subnet_groups(self, region=None):
        """
        Get all subnet_groups in all regions.
        :return:
        """

        if region is not None:
            return self.get_region_cache_subnet_groups(region)
        final_result = list()
        for region in AWSAccount.get_aws_account().regions.values():
            final_result += self.get_region_cache_subnet_groups(region)

        return final_result
Exemple #12
0
    def get_all_db_cluster_snapshots(self, region=None):
        """
        Get all db_cluster_snapshot in all regions.
        :return:
        """

        if region is not None:
            return self.get_region_db_cluster_snapshots(region)

        final_result = list()
        for region in AWSAccount.get_aws_account().regions.values():
            final_result += self.get_region_db_cluster_snapshots(region)

        return final_result
Exemple #13
0
    def get_all_vpcs(self, region=None):
        """
        Get all interfaces in all regions.
        :return:
        """

        if region is not None:
            return self.get_region_vpcs(region)

        final_result = list()
        for region in AWSAccount.get_aws_account().regions.values():
            final_result += self.get_region_vpcs(region)

        return final_result
Exemple #14
0
    def get_all_capacity_providers(self, region=None):
        """
        Get all capacity_providers in all regions.
        :return:
        """

        if region is not None:
            return self.get_region_capacity_providers(region)

        final_result = list()
        for region in AWSAccount.get_aws_account().regions.values():
            final_result += self.get_region_capacity_providers(region)

        return final_result
Exemple #15
0
    def get_all_interfaces(self):
        """
        Get all interfaces in all regions.
        :return:
        """
        final_result = list()

        for region in AWSAccount.get_aws_account().regions.values():
            AWSAccount.set_aws_region(region)
            for dict_src in self.execute(self.client.describe_network_interfaces, "NetworkInterfaces"):
                interface = NetworkInterface(dict_src)
                final_result.append(interface)

        return final_result
Exemple #16
0
    def get_all_volumes(self, region=None):
        """
        Get all ec2 volumes in current region.
        :return:
        """

        if region is not None:
            return self.get_region_volumes(region)

        final_result = list()

        for region in AWSAccount.get_aws_account().regions.values():
            final_result += self.get_region_volumes(region)

        return final_result
Exemple #17
0
    def get_all_keys(self, region=None, full_information=True):
        """
        Get all keys in all regions.
        :return:
        """

        if region is not None:
            return self.get_region_keys(region,
                                        full_information=full_information)

        final_result = list()
        for region in AWSAccount.get_aws_account().regions.values():
            final_result += self.get_region_keys(
                region, full_information=full_information)

        return final_result
Exemple #18
0
    def get_all_load_balancers(self, full_information=True, region=None):
        """
        Get all loadnbalancers
        :param full_information:
        :param region:
        :return:
        """
        if region is not None:
            return self.get_region_load_balancers(
                region, full_information=full_information)

        final_result = list()
        for region in AWSAccount.get_aws_account().regions.values():
            final_result += self.get_region_load_balancers(
                region, full_information=full_information)
        return final_result
Exemple #19
0
    def get_all_availability_zones(self, region=None):
        """
        Get all interfaces in all regions.
        :return:
        """

        if region is not None:
            AWSAccount.set_aws_region(region)
            return self.get_all_availability_zones_in_current_region()

        final_result = list()
        for region in AWSAccount.get_aws_account().regions.values():
            AWSAccount.set_aws_region(region)
            final_result += self.get_all_availability_zones_in_current_region()

        return final_result
Exemple #20
0
    def get_all_event_source_mappings(self,
                                      full_information=True,
                                      region=None):
        """
        Get all event_source_mapping in all regions
        :param full_information:
        :return:
        """

        if region is not None:
            return self.get_region_event_source_mappings(region)

        final_result = list()
        for region in AWSAccount.get_aws_account().regions.values():
            final_result += self.get_region_event_source_mappings(region)

        return final_result
Exemple #21
0
    def get_all_lambdas(self, full_information=True):
        """
        Get all lambda in all regions
        :param full_information:
        :return:
        """
        final_result = list()

        for region in AWSAccount.get_aws_account().regions.values():
            AWSAccount.set_aws_region(region)
            for response in self.execute(self.client.list_functions, "Functions"):
                obj = AWSLambda(response)
                final_result.append(obj)

                if full_information:
                    pass
        return final_result
Exemple #22
0
    def get_all_security_groups(self, full_information=False):
        """
        Get all security groups in the region.
        :param full_information:
        :return:
        """
        final_result = list()

        for region in AWSAccount.get_aws_account().regions.values():
            AWSAccount.set_aws_region(region)
            for ret in self.execute(self.client.describe_security_groups, "SecurityGroups"):
                obj = EC2SecurityGroup(ret)
                if full_information is True:
                    raise NotImplementedError()

                final_result.append(obj)

        return final_result
Exemple #23
0
    def get_all_load_balancers(self, full_information=True):
        """
        Get all loadbalancers.
        :param full_information:
        :return:
        """
        final_result = list()
        for region in AWSAccount.get_aws_account().regions.values():
            AWSAccount.set_aws_region(region)
            for response in self.execute(self.client.describe_load_balancers,
                                         "LoadBalancerDescriptions"):
                obj = ClassicLoadBalancer(response)
                final_result.append(obj)

                if full_information:
                    pass

        return final_result
Exemple #24
0
    def get_cloud_watch_alarms(self):
        """
        Get all alarms in all regions.
        :return:
        """
        final_result = list()

        for region in AWSAccount.get_aws_account().regions.values():
            AWSAccount.set_aws_region(region)
            for dict_src in self.execute(self.client.describe_alarms,
                                         None,
                                         raw_data=True):
                if len(dict_src["CompositeAlarms"]) != 0:
                    raise NotImplementedError("CompositeAlarms")
                for dict_alarm in dict_src["MetricAlarms"]:
                    alarm = CloudWatchAlarm(dict_alarm)
                    alarm.region = AWSAccount.get_aws_region()
                    final_result.append(alarm)

        return final_result
    def get_all_secrets(self, full_information=True):
        """
        Get all lambda in all regions
        :param full_information:
        :return:
        """
        final_result = list()

        for region in AWSAccount.get_aws_account().regions.values():
            AWSAccount.set_aws_region(region)
            for response in self.execute(self.client.list_secrets,
                                         "SecretList"):
                obj = SecretsManagerSecret(response)
                final_result.append(obj)

                if full_information:
                    raw_value = self.get_secret_value(obj.name)
                    obj.update_value_from_raw_response(raw_value)

        return final_result
Exemple #26
0
    def connect_session():
        """
        Each account can be managed after several steps of connection - run all steps in order to connect.
        :return:
        """
        session = None
        aws_account = AWSAccount.get_aws_account()

        if aws_account is None or len(aws_account.connection_steps) == 0:
            session = boto3.session.Session()
        else:
            for connection_step in aws_account.connection_steps:
                session = SessionsManager.execute_connection_step(
                    connection_step, session)

        if session is None:
            raise RuntimeError(
                f"Could not establish session for aws_account {aws_account.id}"
            )
        return session
    def get_all_domains(self, full_information=True):
        final_result = []
        for region in AWSAccount.get_aws_account().regions.values():
            AWSAccount.set_aws_region(region)
            domain_names = []
            for response in self.execute(self.client.list_domain_names,
                                         "DomainNames"):
                domain_names.append(response["DomainName"])

            if len(domain_names) == 0:
                continue

            filters_req = {"DomainNames": domain_names}
            for response in self.execute(
                    self.client.describe_elasticsearch_domains,
                    "DomainStatusList",
                    filters_req=filters_req):
                obj = ElasticsearchDomain(response)
                final_result.append(obj)

        return final_result
Exemple #28
0
    def get_cloud_watch_log_group_metric_filters(self, full_information=False):
        """
        Be sure you know what you do, when you set full_information=True.
        This can kill your memory, if you have a lot of data in cloudwatch.
        Better using yield_log_group_streams if you need.

        :param full_information:
        :return:
        """

        final_result = list()
        for region in AWSAccount.get_aws_account().regions.values():
            AWSAccount.set_aws_region(region)
            for result in self.execute(self.client.describe_metric_filters,
                                       "metricFilters"):
                obj = CloudWatchLogGroupMetricFilter(result)
                if full_information:
                    self.update_log_group_full_information(obj)

                obj.region = AWSAccount.get_aws_region()
                final_result.append(obj)
        return final_result
Exemple #29
0
def test_raw_create_managed_prefix_list():
    request = {
        "PrefixListName": "pl_test_name",
        "Entries": [{
            "Cidr": "2.2.2.2/32",
            "Description": "string"
        }],
        "MaxEntries": 1000,
        "AddressFamily": "IPv4",
    }

    for region in AWSAccount.get_aws_account().regions.values():
        AWSAccount.set_aws_region(region)

        prefix_list_name = "test"

        request = {
            "PrefixListName":
            prefix_list_name,
            "MaxEntries":
            60,
            "AddressFamily":
            "IPv4",
            "TagSpecifications": [
                {
                    'ResourceType': 'prefix-list',
                    'Tags': [{
                        'Key': 'Name',
                        'Value': prefix_list_name
                    }]
                },
            ],
        }
        client = EC2Client()
        ret = client.raw_create_managed_prefix_list(request,
                                                    add_client_token=False)
        assert isinstance(ret, dict)
        print(ret)
Exemple #30
0
    def get_all_load_balancers(self, full_information=True):
        """
        Get all loadnbalancers
        :param full_information:
        :return:
        """
        final_result = list()
        for region in AWSAccount.get_aws_account().regions.values():
            AWSAccount.set_aws_region(region)
            for response in self.execute(self.client.describe_load_balancers,
                                         "LoadBalancers"):
                obj = LoadBalancer(response)
                final_result.append(obj)

                for listener_response in self.execute(
                        self.client.describe_listeners,
                        "Listeners",
                        filters_req={"LoadBalancerArn": obj.arn}):
                    obj.add_raw_listener(listener_response)

                if full_information:
                    pass

        return final_result