cloud-governance 1.1.353__tar.gz → 1.1.355__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cloud_governance-1.1.353/cloud_governance.egg-info → cloud_governance-1.1.355}/PKG-INFO +3 -2
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/s3/s3_operations.py +3 -2
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/ec2_stop.py +38 -14
- {cloud_governance-1.1.353 → cloud_governance-1.1.355/cloud_governance.egg-info}/PKG-INFO +3 -2
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/setup.py +1 -1
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/LICENSE +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/MANIFEST.in +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/README.md +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/aws/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/aws/ec2/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/aws/ec2/aws_monitor_tickets.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/aws/ec2/aws_tagging_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/aws/ec2/collect_cro_reports.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/aws/ec2/cost_over_usage.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/aws/ec2/monitor_cro_instances.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/aws/ec2/run_cro.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/aws/ec2/tag_cro_instances.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/azure/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/azure/resource_groups/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/azure/resource_groups/abstract_resource.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/azure/resource_groups/azure_monitor_tickets.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/azure/resource_groups/azure_tagging_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/azure/resource_groups/collect_cro_reports.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/azure/resource_groups/cost_over_usage.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/azure/resource_groups/monitor_cro_resources.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/azure/resource_groups/tag_cro_resources.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/common/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/common/abstract_collect_cro_reports.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/common/abstract_cost_over_usage.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/clouds/common/abstract_tagging_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/common/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/common/abstract_monitor_tickets.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/common/cro_object.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/common/run_cro.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/monitor/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/monitor/cloud_monitor.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/utils/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/utils/common_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/utils/constant_variables.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/cloud_resource_orchestration/utils/elastic_search_queries.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/athena/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/athena/abstract_athena_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/athena/boto3_client_athena_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/athena/pyathena_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/cloudtrail/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/cloudtrail/cloudtrail_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/cloudwatch/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/cloudwatch/cloudwatch_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/cost_explorer/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/cost_explorer/cost_explorer_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/dynamodb/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/dynamodb/dynamodb_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/ec2/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/ec2/ec2_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/iam/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/iam/iam_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/price/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/price/price.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/price/resources_pricing.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/rds/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/rds/rds_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/resource_explorer/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/resource_explorer/resource_explorer_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/resource_tagging_api/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/resource_tagging_api/resource_tag_api_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/s3/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/savingsplan/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/savingsplan/savings_plans_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/sts/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/sts/sts_oprations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/support/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/support/support_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/utils/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/utils/common_methods.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/utils/utils.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/azure/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/azure/common/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/azure/common/common_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/azure/compute/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/azure/compute/compute_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/azure/compute/network_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/azure/compute/resource_group_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/azure/cost_management/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/azure/cost_management/cost_management_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/azure/monitor/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/azure/monitor/monitor_management_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/azure/subscriptions/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/azure/subscriptions/azure_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/cloudability/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/cloudability/cloudability_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/cloudability/templates/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/cloudability/templates/cloudability_dimensions.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/gcp/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/gcp/google_account.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/ibm/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/ibm/account/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/ibm/account/ibm_account.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/ibm/account/ibm_authenticator.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/ibm/classic/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/ibm/classic/classic_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/ibm/developer_tools/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/ibm/developer_tools/schematic_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/ibm/platform_services/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/ibm/platform_services/platform_service_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/ibm/tagging/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/ibm/tagging/global_tagging_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/ibm/vpc/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/ibm/vpc/vpc_infra_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/elasticsearch/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/elasticsearch/elastic_upload.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/elasticsearch/elasticsearch_exceptions.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/elasticsearch/elasticsearch_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/elasticsearch/modals/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/elasticsearch/modals/cost_usage_reports_data.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/elasticsearch/modals/policy_es_data.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/google_drive/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/google_drive/gcp_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/google_drive/google_drive_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/google_drive/upload_to_gsheet.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/jira/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/jira/jira.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/jira/jira_exceptions.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/jira/jira_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/ldap/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/ldap/ldap_search.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/logger/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/logger/init_logger.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/logger/logger_time_stamp.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/mails/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/mails/gmail.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/mails/mail_message.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/mails/postfix.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/mails/templates/cro_monitor_budget_remain_alert.j2 +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/mails/templates/cro_monitor_budget_remain_high_alert.j2 +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/mails/templates/cro_request_for_manager_approval.j2 +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/mails/templates/policy_alert_agg_message.j2 +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/pandas/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/pandas/pandas_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/tool/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/tool/tool.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/utils/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/utils/api_requests.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/utils/configs.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/utils/json_datetime_encoder.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/utils/utils.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/main/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/main/environment_variables.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/main/environment_variables_exceptions.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/main/es_uploader.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/main/main.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/main/main_common_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/main/main_oerations/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/main/main_oerations/main_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/main/run_cloud_resource_orchestration.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/cleanup/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/cleanup/database_idle.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/cleanup/instance_idle.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/cleanup/instance_run.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/cleanup/unattached_volume.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/cleanup/unused_nat_gateway.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/cost_billing_reports.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/cost_explorer.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/cost_explorer_payer_billings.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/cost_over_usage.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/ebs_in_use.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/empty_roles.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/ip_unattached.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/monitor/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/monitor/cluster_run.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/monthly_report.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/optimize_resources_report.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/s3_inactive.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/skipped_resources.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/spot_savings_analysis.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/zombie_cluster_resource.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/zombie_snapshots.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/azure/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/azure/cleanup/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/azure/cleanup/instance_idle.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/azure/cleanup/instance_run.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/azure/cleanup/ip_unattached.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/azure/cleanup/unattached_volume.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/azure/cleanup/unused_nat_gateway.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/azure/cost_billing_reports.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/common_policies/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/common_policies/cloudability_cost_reports.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/common_policies/send_aggregated_alerts.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/gcp/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/gcp/cost_billing_reports.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/helpers/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/helpers/abstract_policy_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/helpers/aws/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/helpers/aws/aws_policy_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/helpers/azure/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/helpers/azure/azure_policy_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/helpers/cloudability_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/ibm/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/ibm/cost_billing_reports.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/ibm/cost_usage_reports.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/ibm/ibm_cost_over_usage.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/ibm/ibm_cost_report.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/ibm/tag_baremetal.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/ibm/tag_resources.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/ibm/tag_vm.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/cost_expenditure/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/cost_expenditure/cost_report_policies.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/dynamodb_upload_data/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/dynamodb_upload_data/cloudtrail_to_dynamodb.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/dynamodb_upload_data/upload_data_to_dynamodb.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/tag_cluster/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/tag_cluster/remove_cluster_tags.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/tag_cluster/run_tag_cluster_resouces.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/tag_cluster/tag_cluster_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/tag_cluster/tag_cluster_resouces.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/tag_non_cluster/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/tag_non_cluster/non_cluster_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/tag_non_cluster/remove_non_cluster_tags.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/tag_non_cluster/run_tag_non_cluster_resources.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/tag_non_cluster/tag_non_cluster_resources.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/tag_non_cluster/update_na_tag_resources.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/tag_user/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/tag_user/iam_user_tags.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/tag_user/remove_user_tags.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/tag_user/run_tag_iam_user.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/tag_user/tag_iam_user.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/zombie_cluster/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/zombie_cluster/delete_ec2_resources.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/zombie_cluster/delete_iam_resources.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/zombie_cluster/delete_s3_resources.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/zombie_cluster/run_zombie_cluster_resources.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/zombie_cluster/validate_zombies.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/zombie_cluster/zombie_cluster_common_methods.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/zombie_non_cluster/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/zombie_non_cluster/run_zombie_non_cluster_policies.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/aws/zombie_non_cluster/zombie_non_cluster_polices.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/azure/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/azure/azure_policy_runner.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/gcp/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/gcp/gcp_policy_runner.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/gitleaks/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/gitleaks/gitleaks.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/ibm/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/ibm/ibm_operations/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/ibm/ibm_operations/ibm_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/ibm/ibm_operations/ibm_policy_runner.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/ibm/tagging/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_operations/ibm/tagging/tagging_operations.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_runners/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_runners/aws/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_runners/aws/policy_runner.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_runners/aws/upload_s3.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_runners/azure/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_runners/azure/policy_runner.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_runners/common/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_runners/common/abstract_policy_runner.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_runners/common/abstract_upload.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_runners/common_policy_runner.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_runners/elasticsearch/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_runners/elasticsearch/upload_elastic_search.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_runners/ibm/__init__.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/policy_runners/ibm/policy_runner.py +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance.egg-info/SOURCES.txt +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance.egg-info/dependency_links.txt +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance.egg-info/not-zip-safe +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance.egg-info/requires.txt +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance.egg-info/top_level.txt +0 -0
- {cloud_governance-1.1.353 → cloud_governance-1.1.355}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: cloud-governance
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.355
|
|
4
4
|
Summary: Cloud Governance Tool
|
|
5
5
|
Home-page: https://github.com/redhat-performance/cloud-governance
|
|
6
6
|
Author: Red Hat
|
|
@@ -62,6 +62,7 @@ Dynamic: description
|
|
|
62
62
|
Dynamic: description-content-type
|
|
63
63
|
Dynamic: home-page
|
|
64
64
|
Dynamic: license
|
|
65
|
+
Dynamic: license-file
|
|
65
66
|
Dynamic: requires-dist
|
|
66
67
|
Dynamic: summary
|
|
67
68
|
|
|
@@ -27,7 +27,7 @@ class S3Operations:
|
|
|
27
27
|
self.__report_file_name = report_file_name
|
|
28
28
|
self.__resource_file_name = resource_file_name
|
|
29
29
|
self.__report_file_full_path = os.path.join(os.path.dirname(__file__), self.__report_file_name)
|
|
30
|
-
self.__resources_file_full_path = os.path.join(
|
|
30
|
+
self.__resources_file_full_path = os.path.join('/tmp', self.__resource_file_name)
|
|
31
31
|
if bucket and logs_bucket_key:
|
|
32
32
|
self.__bucket, self.__logs_bucket_key = bucket, logs_bucket_key
|
|
33
33
|
|
|
@@ -383,7 +383,8 @@ class S3Operations:
|
|
|
383
383
|
:return:
|
|
384
384
|
"""
|
|
385
385
|
try:
|
|
386
|
-
return self.__s3_client.get_bucket_location(Bucket=bucket_name, **kwargs).get('LocationConstraint',
|
|
386
|
+
return self.__s3_client.get_bucket_location(Bucket=bucket_name, **kwargs).get('LocationConstraint',
|
|
387
|
+
self.__region)
|
|
387
388
|
except Exception as err:
|
|
388
389
|
logger.error(err)
|
|
389
390
|
return self.__region
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/policy/aws/ec2_stop.py
RENAMED
|
@@ -3,7 +3,8 @@ import operator
|
|
|
3
3
|
|
|
4
4
|
from cloud_governance.common.clouds.aws.cloudtrail.cloudtrail_operations import CloudTrailOperations
|
|
5
5
|
from cloud_governance.common.logger.init_logger import logger
|
|
6
|
-
from cloud_governance.policy.policy_operations.aws.zombie_non_cluster.run_zombie_non_cluster_policies import
|
|
6
|
+
from cloud_governance.policy.policy_operations.aws.zombie_non_cluster.run_zombie_non_cluster_policies import \
|
|
7
|
+
NonClusterZombiePolicy
|
|
7
8
|
from operator import ge
|
|
8
9
|
|
|
9
10
|
|
|
@@ -28,14 +29,17 @@ class EC2Stop(NonClusterZombiePolicy):
|
|
|
28
29
|
This method list all stopped instances for more than 30 days and terminate if dry_run no
|
|
29
30
|
@return:
|
|
30
31
|
"""
|
|
31
|
-
return self.__fetch_stop_instance(sign=ge, instance_days=self.FIRST_MAIL_NOTIFICATION_INSTANCE_DAYS,
|
|
32
|
+
return self.__fetch_stop_instance(sign=ge, instance_days=self.FIRST_MAIL_NOTIFICATION_INSTANCE_DAYS,
|
|
33
|
+
delete_instance_days=self.DELETE_INSTANCE_DAYS)
|
|
32
34
|
|
|
33
35
|
def __fetch_stop_instance(self, instance_days: int, delete_instance_days: int, sign: operator = ge):
|
|
34
36
|
"""
|
|
35
37
|
This method list all stopped instances for more than 30 days and terminate if dry_run no
|
|
36
38
|
@return:
|
|
37
39
|
"""
|
|
38
|
-
instances =
|
|
40
|
+
instances = \
|
|
41
|
+
self._ec2_client.describe_instances(Filters=[{'Name': 'instance-state-name', 'Values': ['stopped']}])[
|
|
42
|
+
'Reservations']
|
|
39
43
|
stopped_instances = []
|
|
40
44
|
stopped_instance_tags = {}
|
|
41
45
|
ec2_types = {}
|
|
@@ -51,20 +55,30 @@ class EC2Stop(NonClusterZombiePolicy):
|
|
|
51
55
|
stopped_time = datetime.datetime.now()
|
|
52
56
|
days = self._calculate_days(create_date=stopped_time)
|
|
53
57
|
user = self._get_tag_name_from_tags(tags=resource.get('Tags'), tag_name='User')
|
|
54
|
-
stop_cost = self.get_ebs_cost(resource=resource.get('BlockDeviceMappings'), resource_type='ec2',
|
|
58
|
+
stop_cost = self.get_ebs_cost(resource=resource.get('BlockDeviceMappings'), resource_type='ec2',
|
|
59
|
+
resource_hours=(self.DAILY_HOURS * days))
|
|
55
60
|
if days in (instance_days, self.SECOND_MAIL_NOTIFICATION_INSTANCE_DAYS):
|
|
56
61
|
if days == self.SECOND_MAIL_NOTIFICATION_INSTANCE_DAYS:
|
|
57
|
-
delta_cost = self.get_ebs_cost(resource=resource.get('BlockDeviceMappings'),
|
|
62
|
+
delta_cost = self.get_ebs_cost(resource=resource.get('BlockDeviceMappings'),
|
|
63
|
+
resource_type='ec2', resource_hours=(
|
|
64
|
+
self.DAILY_HOURS * (days - self.FIRST_MAIL_NOTIFICATION_INSTANCE_DAYS)))
|
|
58
65
|
else:
|
|
59
66
|
delta_cost = stop_cost
|
|
60
67
|
if user:
|
|
61
|
-
self.__trigger_mail(tags=resource.get('Tags'), stopped_time=stopped_time,
|
|
68
|
+
self.__trigger_mail(tags=resource.get('Tags'), stopped_time=stopped_time,
|
|
69
|
+
resource_id=instance_id, days=days,
|
|
70
|
+
ec2_type=resource.get("InstanceType"), instance_id=instance_id,
|
|
71
|
+
message_type='notification', stop_cost=stop_cost, delta_cost=delta_cost)
|
|
62
72
|
else:
|
|
63
73
|
logger.info('User is missing')
|
|
64
74
|
if days == self.DAYS_TO_NOTIFY_ADMINS:
|
|
65
|
-
delta_charge = self.get_ebs_cost(resource=resource.get('BlockDeviceMappings'),
|
|
66
|
-
|
|
67
|
-
|
|
75
|
+
delta_charge = self.get_ebs_cost(resource=resource.get('BlockDeviceMappings'),
|
|
76
|
+
resource_type='ec2', resource_hours=(self.DAILY_HOURS * (
|
|
77
|
+
self.DAYS_TO_NOTIFY_ADMINS - self.SECOND_MAIL_NOTIFICATION_INSTANCE_DAYS)))
|
|
78
|
+
self.__trigger_mail(tags=resource.get('Tags'), stopped_time=stopped_time,
|
|
79
|
+
resource_id=instance_id,
|
|
80
|
+
days=days, ec2_type=resource.get("InstanceType"), instance_id=instance_id,
|
|
81
|
+
admins=self._admins,
|
|
68
82
|
message_type='notify-admin', stop_cost=stop_cost, delta_charge=delta_charge)
|
|
69
83
|
if sign(days, instance_days):
|
|
70
84
|
if days >= delete_instance_days:
|
|
@@ -78,7 +92,7 @@ class EC2Stop(NonClusterZombiePolicy):
|
|
|
78
92
|
'StoppedDate': str(resource.get('UsageOperationUpdateTime')),
|
|
79
93
|
'Name': self._get_tag_name_from_tags(tags=resource.get('Tags'), tag_name='Name'),
|
|
80
94
|
'User': self._get_tag_name_from_tags(tags=resource.get('Tags'), tag_name='User'),
|
|
81
|
-
'
|
|
95
|
+
'ResourceLaunchTime': str(resource.get('LaunchTime')),
|
|
82
96
|
'Policy': self._get_tag_name_from_tags(tags=resource.get('Tags'), tag_name='Policy')})
|
|
83
97
|
if self._dry_run == "no":
|
|
84
98
|
for instance_id, tags in stopped_instance_tags.items():
|
|
@@ -99,7 +113,8 @@ class EC2Stop(NonClusterZombiePolicy):
|
|
|
99
113
|
# logger.info(err)
|
|
100
114
|
return stopped_instances
|
|
101
115
|
|
|
102
|
-
def __trigger_mail(self, tags: list, stopped_time: str, resource_id: str, days: int, image_id: str = '',
|
|
116
|
+
def __trigger_mail(self, tags: list, stopped_time: str, resource_id: str, days: int, image_id: str = '',
|
|
117
|
+
ec2_type: str = '', instance_id: str = '', **kwargs):
|
|
103
118
|
"""
|
|
104
119
|
This method send triggering mail
|
|
105
120
|
@param tags:
|
|
@@ -110,16 +125,25 @@ class EC2Stop(NonClusterZombiePolicy):
|
|
|
110
125
|
"""
|
|
111
126
|
try:
|
|
112
127
|
special_user_mails = self._literal_eval(self._special_user_mails)
|
|
113
|
-
user, instance_name = self._get_tag_name_from_tags(tags=tags,
|
|
128
|
+
user, instance_name = self._get_tag_name_from_tags(tags=tags,
|
|
129
|
+
tag_name='User'), self._get_tag_name_from_tags(tags=tags,
|
|
130
|
+
tag_name='Name')
|
|
114
131
|
to = user if user not in special_user_mails else special_user_mails[user]
|
|
115
132
|
ldap_data = self._ldap.get_user_details(user_name=to)
|
|
116
133
|
cc = []
|
|
117
|
-
subject, body = self._mail_description.ec2_stop(name=ldap_data.get('displayName'), days=days,
|
|
134
|
+
subject, body = self._mail_description.ec2_stop(name=ldap_data.get('displayName'), days=days,
|
|
135
|
+
image_id=image_id,
|
|
136
|
+
delete_instance_days=self.DELETE_INSTANCE_DAYS,
|
|
137
|
+
instance_name=instance_name, resource_id=resource_id,
|
|
138
|
+
stopped_time=stopped_time, ec2_type=ec2_type,
|
|
139
|
+
extra_purse=kwargs.get('stop_cost'))
|
|
118
140
|
if not kwargs.get('admins'):
|
|
119
141
|
kwargs['admins'] = to
|
|
120
142
|
cc = [self._account_admin, f'{ldap_data.get("managerId")}@redhat.com']
|
|
121
143
|
else:
|
|
122
144
|
kwargs['admins'].append(f'{ldap_data.get("managerId")}@redhat.com')
|
|
123
|
-
self._mail.send_email_postfix(to=kwargs.get('admins'), content=body, subject=subject, cc=cc,
|
|
145
|
+
self._mail.send_email_postfix(to=kwargs.get('admins'), content=body, subject=subject, cc=cc,
|
|
146
|
+
resource_id=instance_id, message_type=kwargs.get('message_type'),
|
|
147
|
+
extra_purse=kwargs.get('delta_cost', 0))
|
|
124
148
|
except Exception as err:
|
|
125
149
|
logger.info(err)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: cloud-governance
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.355
|
|
4
4
|
Summary: Cloud Governance Tool
|
|
5
5
|
Home-page: https://github.com/redhat-performance/cloud-governance
|
|
6
6
|
Author: Red Hat
|
|
@@ -62,6 +62,7 @@ Dynamic: description
|
|
|
62
62
|
Dynamic: description-content-type
|
|
63
63
|
Dynamic: home-page
|
|
64
64
|
Dynamic: license
|
|
65
|
+
Dynamic: license-file
|
|
65
66
|
Dynamic: requires-dist
|
|
66
67
|
Dynamic: summary
|
|
67
68
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/__init__.py
RENAMED
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/aws/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/gcp/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/clouds/ibm/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/jira/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/ldap/__init__.py
RENAMED
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/ldap/ldap_search.py
RENAMED
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/logger/__init__.py
RENAMED
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/logger/init_logger.py
RENAMED
|
File without changes
|
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/mails/__init__.py
RENAMED
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/mails/gmail.py
RENAMED
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/mails/mail_message.py
RENAMED
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/mails/postfix.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/pandas/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/tool/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/utils/__init__.py
RENAMED
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/utils/api_requests.py
RENAMED
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/utils/configs.py
RENAMED
|
File without changes
|
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/common/utils/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{cloud_governance-1.1.353 → cloud_governance-1.1.355}/cloud_governance/main/environment_variables.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|