manheim_c7n_tools.dryrun_diff module¶
- class manheim_c7n_tools.dryrun_diff.DryRunDiffer(config)[source]¶
Bases:
object
- RESOURCE_TYPE_KEY = 'resource_type'¶
- UNKNOWN_RESOURCE_ID = 'unknown_id'¶
- UNKNOWN_RESOURCE_TYPE = 'unknown_type'¶
- _get_dryrun_results()[source]¶
Read the resources.json files from disk for the dryrun/ directory. Return a dictionary of string policy name to nested dictionaries, of string region name to resources.
- Returns
dictionary of nested dictionaries, policy name to dict of region name to resource
- Return type
- _get_latest_res_for_policy(bucket, pol_name, get_res_type)[source]¶
Given the S3 Bucket and a policy name, find the newest
resources.json
file for that policy and annotate it with it’s respective type from themetadata.json
file.- Parameters
bucket (
boto3.S3.Bucket
) – the bucket to look inpol_name (str) – the name of the policy
- Returns
resource from latest run of the policy
- Return type
obj
- _get_resource_id(resource, policy)[source]¶
Obtain the id for a given policy from a dict of resources. :param resource: the dict of resources :param policy: the name of the policy :return: the resource_id the policy affects :rtype: string
- _get_s3_policy_prefixes(bucket)[source]¶
Find all of the per-policy prefixes (a.k.a. “directories”) in the S3 bucket. Return a list of them
- Parameters
bucket (
boto3.S3.Bucket
) – the S3 bucket to list policies in- Returns
list of per-policy prefixes in S3 bucket
- Return type
- _get_s3_results_for_region(region_name)[source]¶
Find the results files in S3 from the last live run of the deployed policies. Reads each file and maps resources to
self._live_results
accordingly.
- _make_diff_markdown(dryrun)[source]¶
Return GitHub-flavored Markdown showing the difference between the dryrun (this branch) and the last run of each policy on master.
- _make_diff_report(dryrun)[source]¶
Return a HTML report breaking down the differences between the dryrun (this branch) and the last run of each policy on master.
Requires a jinja template located at ./reporting-template/report.j2 within the same directory where the dryrun-diff step has been run.
- _read_dryrun_files(directory, pol, region, res)[source]¶
Read the directory for dryrun files, and attaches each resource to the supplied result dict via their policy-name and region. :param directory: the path where the dryrun files are located :param pol: the name of the policy :param region: the name of the region :param res: the dict that will be mutated with the resources found. :return: a dict of resources :rtype: dict