runbooks 0.9.8__py3-none-any.whl → 0.9.9__py3-none-any.whl
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.
- runbooks/__init__.py +1 -1
- runbooks/common/rich_utils.py +3 -0
- runbooks/finops/markdown_exporter.py +226 -0
- runbooks/finops/optimizer.py +2 -0
- runbooks/finops/single_dashboard.py +2 -2
- runbooks/finops/vpc_cleanup_exporter.py +328 -0
- runbooks/finops/vpc_cleanup_optimizer.py +536 -35
- runbooks/main.py +315 -7
- runbooks/operate/vpc_operations.py +1 -1
- runbooks/vpc/unified_scenarios.py +3199 -0
- runbooks/vpc/vpc_cleanup_integration.py +4 -4
- {runbooks-0.9.8.dist-info → runbooks-0.9.9.dist-info}/METADATA +1 -1
- {runbooks-0.9.8.dist-info → runbooks-0.9.9.dist-info}/RECORD +17 -15
- {runbooks-0.9.8.dist-info → runbooks-0.9.9.dist-info}/WHEEL +0 -0
- {runbooks-0.9.8.dist-info → runbooks-0.9.9.dist-info}/entry_points.txt +0 -0
- {runbooks-0.9.8.dist-info → runbooks-0.9.9.dist-info}/licenses/LICENSE +0 -0
- {runbooks-0.9.8.dist-info → runbooks-0.9.9.dist-info}/top_level.txt +0 -0
@@ -1428,12 +1428,12 @@ class VPCCleanupFramework:
|
|
1428
1428
|
requires_iac_update = candidate.iac_managed
|
1429
1429
|
|
1430
1430
|
# Three-bucket classification with safety gates
|
1431
|
+
# FIXED: Allow NO-ENI VPCs including default VPCs for safe cleanup
|
1431
1432
|
if (eni_gate_passed and
|
1432
1433
|
total_deps == 0 and
|
1433
1434
|
not has_external_deps and
|
1434
|
-
not requires_iac_update
|
1435
|
-
|
1436
|
-
# Bucket 1: Safe for immediate cleanup
|
1435
|
+
not requires_iac_update):
|
1436
|
+
# Bucket 1: Safe for immediate cleanup (includes default VPCs with 0 ENI)
|
1437
1437
|
bucket_1_safe.append(candidate)
|
1438
1438
|
candidate.bucket_classification = "safe_cleanup"
|
1439
1439
|
|
@@ -1467,7 +1467,7 @@ class VPCCleanupFramework:
|
|
1467
1467
|
'percentage': round(safe_percentage, 1),
|
1468
1468
|
'vpc_ids': [c.vpc_id for c in bucket_1_safe],
|
1469
1469
|
'total_savings': sum(c.annual_savings for c in bucket_1_safe),
|
1470
|
-
'criteria': 'Zero ENIs, no dependencies, no IaC
|
1470
|
+
'criteria': 'Zero ENIs, no dependencies, no IaC (default/non-default both allowed)'
|
1471
1471
|
},
|
1472
1472
|
'bucket_2_analysis_required': {
|
1473
1473
|
'count': len(bucket_2_analysis),
|
@@ -1,9 +1,9 @@
|
|
1
1
|
conftest.py,sha256=HTnQMw9wxefkvX5q4yG8EUH2qVLJBnC9QCt3UCltw7I,586
|
2
|
-
runbooks/__init__.py,sha256=
|
2
|
+
runbooks/__init__.py,sha256=5Vmt5VEwYi2wBfAuWde83BfN4SeGYdF8BTCx_PcqWfI,4983
|
3
3
|
runbooks/__main__.py,sha256=0hTPUA9KkLm_H_COqaIpNzXvC4Lv5b_XYYBV6fUFDrM,241
|
4
4
|
runbooks/base.py,sha256=a4jdiMeMWfJtOnYBlZ99Imzc1sdHCgyOXYhxUges7O8,11742
|
5
5
|
runbooks/config.py,sha256=63Bct1jASQG3mjPTNnzfJwTMgXzG8aQqVsaku6ugZR0,7839
|
6
|
-
runbooks/main.py,sha256=
|
6
|
+
runbooks/main.py,sha256=Zyvqb1IEvfg78yuzk33cORJzT5T1bn6lpkpdPCnGu_M,355082
|
7
7
|
runbooks/_platform/__init__.py,sha256=86Y-f3Klzj8hpdvxxQyVXsm6ARevKsxnGoc6YjSqbUE,519
|
8
8
|
runbooks/_platform/core/runbooks_wrapper.py,sha256=bmOqZY3scxgVpIpca2ZdpVAAIGv2XpugRsHiGcXL-Og,18937
|
9
9
|
runbooks/cfat/README.md,sha256=vDOJykrHDk8tBCw_PbWn27XvZXSmkv2sCknmlNaM9OY,11853
|
@@ -96,7 +96,7 @@ runbooks/common/mcp_cost_explorer_integration.py,sha256=pskehv95cbHhHOsKePRknm9o
|
|
96
96
|
runbooks/common/mcp_integration.py,sha256=mnuZ_ppZHu2pfRQEV64P1UJJx9jRo_1rgkITjAzpOT4,28968
|
97
97
|
runbooks/common/performance_monitor.py,sha256=YEStVON1uAlmhOVi5XK6kMytUBtKtqeELYBEiSMLsmA,14130
|
98
98
|
runbooks/common/profile_utils.py,sha256=Xp2VuDklgurJ889BbqxIvF2T4MHOaDsst0GmRxeEcl4,8229
|
99
|
-
runbooks/common/rich_utils.py,sha256=
|
99
|
+
runbooks/common/rich_utils.py,sha256=Z0FjJuYuiT_NdxDRCT389ipaflg4tJ9PsEu4djvBf8E,33632
|
100
100
|
runbooks/enterprise/__init__.py,sha256=bv6Ee_NHooNzCeQPD3fKBFBTNEbGusK_qnqQbB5iNpw,1855
|
101
101
|
runbooks/enterprise/error_handling.py,sha256=0rorz2L3nWl3xMDMiEMgNj8CvM7efABnEIzkMEg4B2g,14505
|
102
102
|
runbooks/enterprise/logging.py,sha256=-Qau52mLjryFo8r9PzsHbfkbfBsFom1ndEIvy7ItFEY,31728
|
@@ -132,12 +132,12 @@ runbooks/finops/helpers.py,sha256=-8QtOwkQVRkbYS6kg65DMKJpdhx9EQjpcoIOlt5ANmI,51
|
|
132
132
|
runbooks/finops/iam_guidance.py,sha256=YnaWywIHDsSYJwj34Jk0WKFNpNnDruPx5B4NmNzoRNA,19925
|
133
133
|
runbooks/finops/legacy_migration.py,sha256=QkuVsGwkH4IkXoGbmQ7jUspAXLi4FYkZedC1vOHB-o8,31430
|
134
134
|
runbooks/finops/main.py,sha256=W0Lnr3GJN7Tp4QL0x09GROOc7fnttpdRmd3N3T5eULo,288
|
135
|
-
runbooks/finops/markdown_exporter.py,sha256=
|
135
|
+
runbooks/finops/markdown_exporter.py,sha256=lTwmOsOQ3NkDlZNZqRygcgBHCZeQXcE7i2Rzcb_YK7Y,29170
|
136
136
|
runbooks/finops/multi_dashboard.py,sha256=J0E0WTG_xC9Ch8vUFXRXE3aBwf7H5t9xrFfmkyLms9U,73474
|
137
137
|
runbooks/finops/nat_gateway_optimizer.py,sha256=WBfYhyXQ5R5F0LpiNghlEuY1-JgJoMDD6BQzgCUPrl0,55587
|
138
138
|
runbooks/finops/network_cost_optimizer.py,sha256=1XFrcuyuZXu1OBYufJhSHD5KC0AjKT97bbsskAenAA8,66743
|
139
139
|
runbooks/finops/notebook_utils.py,sha256=dhH7boTXO9EH10kPMdmSXDBOCUXupi1WU-wp83atzY8,29725
|
140
|
-
runbooks/finops/optimizer.py,sha256=
|
140
|
+
runbooks/finops/optimizer.py,sha256=zit7KBiI_MCoku_-NP5gagJ47ymdIZK3PxvLt8ukXo8,36262
|
141
141
|
runbooks/finops/profile_processor.py,sha256=2GmwDbzy0b5tpQaF-DzxrcRVJsrpVIBt2KdiH1ZRQ68,6241
|
142
142
|
runbooks/finops/reservation_optimizer.py,sha256=jaJrXlkN1HR7XHKqmzqCQbh0VLu7DgjJ6Z4RLJKB9go,45875
|
143
143
|
runbooks/finops/runbooks.inventory.organizations_discovery.log,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -147,11 +147,12 @@ runbooks/finops/runbooks.security.security_export.log,sha256=47DEQpj8HBSa-_TImW-
|
|
147
147
|
runbooks/finops/scenarios.py,sha256=-3YZOXfK0kJhk8vQ63zIP3LQmKrpDtZAjt2fgIkIjNI,36809
|
148
148
|
runbooks/finops/schemas.py,sha256=YvW758e0b3RdWFNg8jgRXqaC2h7ScIHcgwq9nTpFNHo,23423
|
149
149
|
runbooks/finops/service_mapping.py,sha256=uThjqTEGwkPGWitWxHLjcYPj5KsvjYuReSDlf31tKOI,6543
|
150
|
-
runbooks/finops/single_dashboard.py,sha256=
|
150
|
+
runbooks/finops/single_dashboard.py,sha256=42nR1XtrLkfg_yPNqkbxhbnePgWDqAQWzBDU_sGZWEE,49836
|
151
151
|
runbooks/finops/types.py,sha256=17CVLQysbwDiWKi2iXjtz7n8SLZUxRtG1JMthfARJ8I,3317
|
152
152
|
runbooks/finops/validation_framework.py,sha256=PnP5U-BYSXPnZI26AOgWo3PnFXGTwRa5-GK1fCdJV3g,31751
|
153
153
|
runbooks/finops/visualisations.py,sha256=BI6cBsKSNUcjqnEukMzHxZzqyv12w3TRj2zvN53-Rbk,2737
|
154
|
-
runbooks/finops/
|
154
|
+
runbooks/finops/vpc_cleanup_exporter.py,sha256=gjfF-4S8dlZggDCrJ_1IaZ-thOG5WkYOFlFKoJaSn_w,14542
|
155
|
+
runbooks/finops/vpc_cleanup_optimizer.py,sha256=GVhV4WAJeXZvObNLW17yYoTtY_anGP4jhKVZ2u7v_h4,62855
|
155
156
|
runbooks/finops/workspaces_analyzer.py,sha256=9hxwlNkIiabhGjJumAulvN20KKPXajMQRF_yWkFS6sk,22695
|
156
157
|
runbooks/finops/tests/__init__.py,sha256=MFqn-e57ft0Dsmdi89vO7jrCV4wkmMNYDtyTrSbx0Jo,583
|
157
158
|
runbooks/finops/tests/results_test_finops_dashboard.xml,sha256=JBoeWtVweUH5EZ15qnLQ_KfQVTR9fhNkZrfY3PCjZQI,4504
|
@@ -279,7 +280,7 @@ runbooks/operate/s3_operations.py,sha256=LtLipM3BdJNIG-3purXGqkBPNumhRgnKEt417IN
|
|
279
280
|
runbooks/operate/tagging_operations.py,sha256=UMyiXTly6hy7ZrehalHQmWaAG1lKVW2yviOUFDY7zv8,26228
|
280
281
|
runbooks/operate/tags.json,sha256=-Y77SDvrvn0sCdsxgdRwu0sl0mih2Ib_N6nGi-UtE5U,513
|
281
282
|
runbooks/operate/vpc_endpoints.py,sha256=kNmjRZhOT_JjCHfcc4YEyBdQco4amLluDcf5ePA5KN0,27134
|
282
|
-
runbooks/operate/vpc_operations.py,sha256=
|
283
|
+
runbooks/operate/vpc_operations.py,sha256=tQfmfvgGwTSRm_6x-TSZubqavUFtuQzqQ8cQZhM6F64,109444
|
283
284
|
runbooks/remediation/README.md,sha256=8RuAqAvrhw8VLKw1HTUI1H6ZZfk6PMnrQmhEVH9qeJg,14536
|
284
285
|
runbooks/remediation/__init__.py,sha256=JSPav84-avCg7mZPD-dI0_lh12MjE5wKllpzHqxhQws,3490
|
285
286
|
runbooks/remediation/acm_cert_expired_unused.py,sha256=_SfttBHKMBfXNtI1006Ci1dCYDgqhCEGGI5Ua3RvQGk,3541
|
@@ -393,16 +394,17 @@ runbooks/vpc/manager_interface.py,sha256=gO9jtffUj7iFS6FFujwYEhj-255H536Qpo9melU
|
|
393
394
|
runbooks/vpc/networking_wrapper.py,sha256=_yYZdH0EVr_UX61FhhJdDQFBByXAIf70L-kL_5iFouM,55385
|
394
395
|
runbooks/vpc/rich_formatters.py,sha256=cVENwGPh3VmH7A0t0hkI7ZGOAtonpjm_Qez8lVUDZLk,27005
|
395
396
|
runbooks/vpc/runbooks_adapter.py,sha256=IOoSvjCKYaAvrGT-oCfjHZS1HQywsxP0nrb5wuvW-QM,20408
|
396
|
-
runbooks/vpc/
|
397
|
+
runbooks/vpc/unified_scenarios.py,sha256=yL4_eexRQk2YQ6Gkf2KbL48XBpAM_SxjVkU0ssiAWCM,161052
|
398
|
+
runbooks/vpc/vpc_cleanup_integration.py,sha256=ccQ5RiVzwINt31XMy8aWF_t-h1NE3vW-KGspi9ctSlY,117542
|
397
399
|
runbooks/vpc/tests/__init__.py,sha256=WfLaQO9kiyKfULTIyMJ4nYJ0VV7eWhmBT3LUv9d9C10,96
|
398
400
|
runbooks/vpc/tests/conftest.py,sha256=x5dBjMZ7BbxBI7d4pdhNLWkRod1wlBA4Sm1stv4poJA,11999
|
399
401
|
runbooks/vpc/tests/test_cli_integration.py,sha256=OvsSNd9gFlkzdyDf8tUZGES93TTZR60KECnCpkyGawk,22759
|
400
402
|
runbooks/vpc/tests/test_config.py,sha256=GIX7cFnj7xUxxrYX49mV9hYmx60Dcd_Bu-cpb90oXdE,17484
|
401
403
|
runbooks/vpc/tests/test_cost_engine.py,sha256=UVUj3yg1ir9XVsD4MRdZALPlRFwmhzcuak8x3w-m6-c,20914
|
402
404
|
runbooks/vpc/tests/test_networking_wrapper.py,sha256=gmxnVzQJ-7rTsghzNLmIM-QZo9GUGyIhHqE1g8gkEkw,20623
|
403
|
-
runbooks-0.9.
|
404
|
-
runbooks-0.9.
|
405
|
-
runbooks-0.9.
|
406
|
-
runbooks-0.9.
|
407
|
-
runbooks-0.9.
|
408
|
-
runbooks-0.9.
|
405
|
+
runbooks-0.9.9.dist-info/licenses/LICENSE,sha256=WAQUYGIkLJh6CPrlZgr0IsbRODa0EZ6fboBXGjfWggs,11375
|
406
|
+
runbooks-0.9.9.dist-info/METADATA,sha256=Z_aFKuMNaHM63qS4BZLJ9pcKzm7wTcE6jBd65ay-xi8,26012
|
407
|
+
runbooks-0.9.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
408
|
+
runbooks-0.9.9.dist-info/entry_points.txt,sha256=WahHUYcgE2syXEc0MkoUdctLMxs0zjBWi_vWb5dRK8M,295
|
409
|
+
runbooks-0.9.9.dist-info/top_level.txt,sha256=A0zTBjuF7THC6vnJU7StN7ihtUoh31lZSfwyWpWP2YE,18
|
410
|
+
runbooks-0.9.9.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|