cid-cmd 0.3.1__tar.gz → 0.3.2__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.
Files changed (129) hide show
  1. {cid_cmd-0.3.1/cid_cmd.egg-info → cid_cmd-0.3.2}/PKG-INFO +1 -1
  2. cid_cmd-0.3.2/cid/_version.py +1 -0
  3. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/helpers/cur.py +24 -13
  4. {cid_cmd-0.3.1 → cid_cmd-0.3.2/cid_cmd.egg-info}/PKG-INFO +1 -1
  5. cid_cmd-0.3.1/cid/_version.py +0 -1
  6. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/LICENSE +0 -0
  7. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/MANIFEST.in +0 -0
  8. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/README.md +0 -0
  9. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/__init__.py +0 -0
  10. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/base.py +0 -0
  11. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/__init__.py +0 -0
  12. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/__init__.py +0 -0
  13. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/datasets/cid/compute.json +0 -0
  14. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/datasets/cid/ec2_running_cost.json +0 -0
  15. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/datasets/cid/s3_view.json +0 -0
  16. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/datasets/cid/summary_view.json +0 -0
  17. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/datasets/co/dataset.json +0 -0
  18. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/datasets/cudos/hourly_view.json +0 -0
  19. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/datasets/cudos/resource_view.json +0 -0
  20. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/datasets/kpi/kpi_ebs_snap.json +0 -0
  21. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/datasets/kpi/kpi_ebs_storage_all.json +0 -0
  22. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/datasets/kpi/kpi_instance_all.json +0 -0
  23. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/datasets/kpi/kpi_s3_storage_all.json +0 -0
  24. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/datasets/kpi/kpi_tracker.json +0 -0
  25. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/datasets/shared/customer_all.json +0 -0
  26. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/datasets/tao/dataset.json +0 -0
  27. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/datasets/trends/daily_anomaly_detection.json +0 -0
  28. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/datasets/trends/monthly_anomaly_detection.json +0 -0
  29. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/datasets/trends/monthly_bill_by_account.json +0 -0
  30. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/permissions/dashboard_permissions.json +0 -0
  31. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/permissions/dashboard_permissions_namespace.json +0 -0
  32. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/permissions/data_set_permissions.json +0 -0
  33. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/permissions/data_source_permissions.json +0 -0
  34. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/permissions/folder_permissions.json +0 -0
  35. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cid/compute_savings_plan_eligible_spend.sql +0 -0
  36. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cid/ec2_running_cost.sql +0 -0
  37. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cid/ec2_running_cost_ri.sql +0 -0
  38. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cid/ec2_running_cost_sp.sql +0 -0
  39. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cid/ec2_running_cost_sp_ri.sql +0 -0
  40. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cid/ri_sp_mapping.sql +0 -0
  41. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cid/ri_sp_mapping_ri.sql +0 -0
  42. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cid/ri_sp_mapping_sp.sql +0 -0
  43. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cid/ri_sp_mapping_sp_ri.sql +0 -0
  44. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cid/s3.sql +0 -0
  45. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cid/summary_view.sql +0 -0
  46. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cid/summary_view_ri.sql +0 -0
  47. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cid/summary_view_sp.sql +0 -0
  48. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cid/summary_view_sp_ri.sql +0 -0
  49. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/co/all_options.sql +0 -0
  50. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/co/auto_scale.json +0 -0
  51. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/co/auto_scale_options.sql +0 -0
  52. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/co/ebs_volume.json +0 -0
  53. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/co/ebs_volume_options.sql +0 -0
  54. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/co/ec2_instance.json +0 -0
  55. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/co/ec2_instance_options.sql +0 -0
  56. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/co/lambda.json +0 -0
  57. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/co/lambda_options.sql +0 -0
  58. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cudos/hourly_view.sql +0 -0
  59. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cudos/hourly_view_ri.sql +0 -0
  60. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cudos/hourly_view_sp.sql +0 -0
  61. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cudos/hourly_view_sp_ri.sql +0 -0
  62. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cudos/resource_view.sql +0 -0
  63. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cudos/resource_view_ri.sql +0 -0
  64. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cudos/resource_view_sp.sql +0 -0
  65. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/cudos/resource_view_sp_ri.sql +0 -0
  66. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/kpi/first_kpi_instance_mapping_view.sql +0 -0
  67. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/kpi/kpi_ebs_snap_view.sql +0 -0
  68. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/kpi/kpi_ebs_storage_view.sql +0 -0
  69. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/kpi/kpi_instance_all_view.sql +0 -0
  70. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/kpi/kpi_instance_all_view_noRI.sql +0 -0
  71. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/kpi/kpi_instance_all_view_noRISP.sql +0 -0
  72. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/kpi/kpi_instance_all_view_noSP.sql +0 -0
  73. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/kpi/kpi_s3_storage_view.sql +0 -0
  74. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/kpi/last_kpi_tracker_view.sql +0 -0
  75. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/shared/account_map.sql +0 -0
  76. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/shared/account_map_dummy.sql +0 -0
  77. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/shared/aws_accounts.sql +0 -0
  78. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/shared/aws_regions.sql +0 -0
  79. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/shared/aws_service_category_map.sql +0 -0
  80. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/shared/business_units_map.sql +0 -0
  81. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/shared/cur.yaml +0 -0
  82. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/shared/payer_account_name_map.sql +0 -0
  83. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/shared/ta_descriptions.sql +0 -0
  84. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/tao/glue_table.json +0 -0
  85. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/tao/ta_org_view.sql +0 -0
  86. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/trends/daily_anomaly_detection.sql +0 -0
  87. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/trends/monthly_anomaly_detection.sql +0 -0
  88. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/trends/monthly_bill_by_account.sql +0 -0
  89. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/trends/monthly_bill_by_account_ri.sql +0 -0
  90. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/trends/monthly_bill_by_account_sp.sql +0 -0
  91. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/queries/trends/monthly_bill_by_account_sp_ri.sql +0 -0
  92. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/builtin/core/data/resources.yaml +0 -0
  93. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/cli.py +0 -0
  94. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/commands/__init__.py +0 -0
  95. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/commands/command_base.py +0 -0
  96. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/commands/init_qs.py +0 -0
  97. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/common.py +0 -0
  98. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/exceptions.py +0 -0
  99. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/export.py +0 -0
  100. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/helpers/__init__.py +0 -0
  101. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/helpers/account_map.py +0 -0
  102. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/helpers/athena.py +0 -0
  103. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/helpers/csv2view.py +0 -0
  104. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/helpers/diff.py +0 -0
  105. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/helpers/glue.py +0 -0
  106. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/helpers/iam.py +0 -0
  107. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/helpers/organizations.py +0 -0
  108. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/helpers/quicksight/__init__.py +0 -0
  109. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/helpers/quicksight/dashboard.py +0 -0
  110. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/helpers/quicksight/dataset.py +0 -0
  111. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/helpers/quicksight/datasource.py +0 -0
  112. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/helpers/quicksight/resource.py +0 -0
  113. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/helpers/quicksight/template.py +0 -0
  114. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/helpers/randtime.py +0 -0
  115. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/helpers/s3.py +0 -0
  116. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/helpers/timezone.py +0 -0
  117. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/logger.py +0 -0
  118. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/plugin.py +0 -0
  119. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/test/python/test_csv2view.py +0 -0
  120. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/test/python/test_isolated_parameters.py +0 -0
  121. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/test/python/test_merge.py +0 -0
  122. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid/utils.py +0 -0
  123. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid_cmd.egg-info/SOURCES.txt +0 -0
  124. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid_cmd.egg-info/dependency_links.txt +0 -0
  125. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid_cmd.egg-info/entry_points.txt +0 -0
  126. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid_cmd.egg-info/requires.txt +0 -0
  127. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/cid_cmd.egg-info/top_level.txt +0 -0
  128. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/pyproject.toml +0 -0
  129. {cid_cmd-0.3.1 → cid_cmd-0.3.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cid-cmd
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: Cloud Intelligence Dashboards deployment helper tool
5
5
  Home-page: https://github.com/aws-samples/aws-cudos-framework-deployment
6
6
  Author: AWS CUDOS Team
@@ -0,0 +1 @@
1
+ __version__ = '0.3.2'
@@ -117,25 +117,36 @@ class CUR(CidBase):
117
117
  if column in [col.get('Name', '').lower() for col in self.metadata.get('Columns', [])]:
118
118
  return
119
119
 
120
+ table_can_be_updated = False
121
+ # Check Crawler Behavior - if it has a Configuration/CrawlerOutput/TablesAddOrUpdateBehavior != MergeNewColumns, it will override columns
120
122
  crawler_name = self.metadata.get('Parameters', {}).get('UPDATED_BY_CRAWLER')
121
123
  if crawler_name:
122
- # Check Crawler Behavior - if it does not have a Configuration/CrawlerOutput/TablesAddOrUpdateBehavior == MergeNewColumns, it will override columns
123
124
  try:
124
125
  crawler = self.glue.get_crawler(crawler_name)
126
+ config = json.loads(crawler.get('Configuration', '{}'))
127
+ add_or_update = config.get('CrawlerOutput', {}).get('Tables', {}).get('AddOrUpdateBehavior')
128
+ if add_or_update == 'MergeNewColumns':
129
+ table_can_be_updated = True
125
130
  except self.glue.client.exceptions.ClientError as exc:
126
- raise CidCritical(f'Column {column} is not found in CUR ({self.table_name}). And we were unable to check if crawler {crawler_name} is configured to override columns.') from exc
127
- config = json.loads(crawler.get('Configuration', '{}'))
128
- add_or_update = config.get('CrawlerOutput', {}).get('Tables', {}).get('AddOrUpdateBehavior')
129
- if add_or_update != 'MergeNewColumns':
130
- raise CidCritical(f'Column {column} is not found in CUR ({self.table_name}). And we were unable to add it as crawler {crawler_name} is configured to override columns. Change crawler settings and run again.')
131
+ logger.debug('Failed to get crawler info')
132
+ if table_can_be_updated:
133
+ column_type = column_type or self.get_type_of_column(column)
134
+ try:
135
+ self.athena.query(f'ALTER TABLE {self.table_name} ADD COLUMNS ({column} {column_type})')
136
+ except (self.athena.client.exceptions.ClientError, CidCritical) as exc:
137
+ raise CidCritical(f'Column {column} is not found in CUR and we were unable to add it. Please check FAQ.') from exc
138
+ self._metadata = self.athena.get_table_metadata(self.table_name) # refresh table metadata
139
+ logger.critical(f"Column '{column}' was added to CUR ({self.table_name}). Please make sure crawler do not override that columns. Crawler='{crawler_name}'")
140
+ return
141
+
142
+ # if table cannot be updated, check if it is ri/sp case - let's hope dashboard views can handle it:
143
+ if column in self.sp_required_columns + self.ri_required_columns:
144
+ logger.warn(f"Column '{column}' is not present in ({self.table_name}). Will try to continue without.")
145
+ return
146
+
147
+ # if a required column is not there and not ri/sp -> stop
148
+ logger.critical(f"Column '{column}' is not in ({self.table_name}). Cannot continue")
131
149
 
132
- column_type = column_type or self.get_type_of_column(column)
133
- try:
134
- self.athena.query(f'ALTER TABLE {self.table_name} ADD COLUMNS ({column} {column_type})')
135
- except (self.athena.client.exceptions.ClientError, CidCritical) as exc:
136
- raise CidCritical(f'Column {column} is not found in CUR and we were unable to add it. Please check FAQ.') from exc
137
- self._metadata = self.athena.get_table_metadata(self.table_name) # refresh table metadata
138
- logger.critical(f"Column '{column}' was added to CUR ({self.table_name}). Please make sure crawler do not override that columns. Crawler='{crawler_name}'")
139
150
 
140
151
  def table_is_cur(self, table: dict=None, name: str=None, return_reason: bool=False) -> bool:
141
152
  """ return True if table metadata fits CUR definition. """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cid-cmd
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: Cloud Intelligence Dashboards deployment helper tool
5
5
  Home-page: https://github.com/aws-samples/aws-cudos-framework-deployment
6
6
  Author: AWS CUDOS Team
@@ -1 +0,0 @@
1
- __version__ = '0.3.1'
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