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.
@@ -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 and
1435
- not candidate.is_default):
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, non-default'
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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: runbooks
3
- Version: 0.9.8
3
+ Version: 0.9.9
4
4
  Summary: CloudOps Automation Toolkit with Enhanced Cloud Foundations Assessment for DevOps and SRE teams.
5
5
  Author-email: Maintainers <nnthanh101@gmail.com>
6
6
  License-Expression: Apache-2.0
@@ -1,9 +1,9 @@
1
1
  conftest.py,sha256=HTnQMw9wxefkvX5q4yG8EUH2qVLJBnC9QCt3UCltw7I,586
2
- runbooks/__init__.py,sha256=rPUBLGrStIhoYg6DWJHFKXsoafu6_ZEAAOOxhbCoVxY,4983
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=jaz-EBcI-iyzAopn2tAPf6-wTpqcy_EFdoLylazKcuU,337463
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=XqxJSHN_VgX4P00r38SWzZfY0qxc3ETZ-SX4R3xNaIE,33513
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=2SE2kSINFFTKelHZLz_ukuV6tl9XRt-BzIXGdfCxTko,18177
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=UcxZi5jj_wEvYdrC9FLcj10rRgKxHlnuGxRdFyv8rWg,36221
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=0wnGxccsOplXkkHpaIlJ-OL8cnnuFnlLxYvYzM7sfLE,49826
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/vpc_cleanup_optimizer.py,sha256=nFZ6oOBcHNkC60ZSrN-F5jwmnXgUdbowlNNYIRTUVxY,38417
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=vNG-bGHWceSi3enpyv6vs8plFbYBl9JH3Gm-vsU6cEU,109432
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/vpc_cleanup_integration.py,sha256=SL-IeON3vj3y33h1rivRyKbQk4gBtDQrl8eNGSgeo3M,117451
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.8.dist-info/licenses/LICENSE,sha256=WAQUYGIkLJh6CPrlZgr0IsbRODa0EZ6fboBXGjfWggs,11375
404
- runbooks-0.9.8.dist-info/METADATA,sha256=W7-79tTmcEz0U2ew5XzuJUUO9CT7_ggQk8YptqQ_56U,26012
405
- runbooks-0.9.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
406
- runbooks-0.9.8.dist-info/entry_points.txt,sha256=WahHUYcgE2syXEc0MkoUdctLMxs0zjBWi_vWb5dRK8M,295
407
- runbooks-0.9.8.dist-info/top_level.txt,sha256=A0zTBjuF7THC6vnJU7StN7ihtUoh31lZSfwyWpWP2YE,18
408
- runbooks-0.9.8.dist-info/RECORD,,
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,,