ic-code 1.2.2__tar.gz → 1.2.3__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.
- {ic_code-1.2.2/src/ic_code.egg-info → ic_code-1.2.3}/PKG-INFO +1 -1
- {ic_code-1.2.2 → ic_code-1.2.3}/pyproject.toml +1 -1
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/__init__.py +1 -1
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/cli.py +13 -1
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/ec2/list_tags.py +30 -24
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/lb/list_tags.py +26 -25
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/nat/list_tags.py +26 -25
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/rds/list_tags.py +26 -25
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/s3/list_tags.py +26 -25
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/vpc/list_tags.py +26 -25
- {ic_code-1.2.2 → ic_code-1.2.3/src/ic_code.egg-info}/PKG-INFO +1 -1
- {ic_code-1.2.2 → ic_code-1.2.3}/LICENSE +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/MANIFEST.in +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/README.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/SECURITY.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/README.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/_templates/configuration.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/_templates/installation.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/_templates/troubleshooting.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/_templates/usage.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/aws/README.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/aws/aws_cli_prd.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/aws/installation.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/azure/README.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/ci-workflow-guide.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/config_migration.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/deployment.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/development/README.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/development/cleanup_summary.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/development/development_guide.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/development/import_patterns.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/development/migration_guide.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/gcp/GCP_CONFIGURATION_GUIDE.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/gcp/GCP_SECURITY_BEST_PRACTICES.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/gcp/README.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/general/configuration.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/installation.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/mcp_integration.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/migration.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/migration_guide.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/ncp/README.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/ncp/configuration.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/ncp/installation.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/ncp/troubleshooting.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/ncp/usage.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/ncpgov/README.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/ncpgov/installation.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/oci/README.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/oci/installation.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/release-guide.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/security.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/ssh/configuration.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/troubleshooting.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/docs/user_guide.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/requirements.txt +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/analysis_summary.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/bump-version.sh +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/cf_edge_nsg_make/cf_edge_nsg_make.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/ci-detect-platforms.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/ci-generate-matrix.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/cli_usage_analysis.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/dependency_mapper.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/deploy.sh +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/final_validation_and_documentation.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/fix_consolidated_imports.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/migration_execution_and_validation.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/ncp_security_scanner.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/oracle-policy/user_policy.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/performance_optimization.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/setup_venv.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/test-ci-detection.sh +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/unset_env.sh +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/validate_config.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/validate_dependencies.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/scripts/validate_ncp_security.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/setup.cfg +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/setup.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/common/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/common/azure_utils.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/common/gather_env.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/common/gcp_config_validator.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/common/gcp_monitoring.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/common/gcp_utils.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/common/log.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/common/ncp_security_utils.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/common/ncp_utils.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/common/ncpgov_utils.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/common/progress_decorator.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/common/slack.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/common/utils.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/cli_backup.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/commands/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/commands/config.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/commands/migration.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/commands/security.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/compat/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/compat/cli.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/compat/common.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/config/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/config/cleanup.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/config/docs_organizer.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/config/external.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/config/installer.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/config/manager.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/config/migration.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/config/migration_utils.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/config/path_manager.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/config/schema.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/config/secrets.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/config/security.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/core/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/core/dependency_validator.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/core/logging.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/core/mcp_manager.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/core/platform_discovery.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/core/session.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/core/silence_logging.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/migration/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/migration/manager.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/migration/post_validation.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/migration/rollback.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/migration/validation.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/cloudfront/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/cloudfront/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/codepipeline/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/codepipeline/build.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/codepipeline/deploy.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/ec2/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/ec2/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/ec2/tag_check.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/ecs/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/ecs/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/ecs/service.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/ecs/task.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/eks/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/eks/addons.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/eks/fargate.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/eks/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/eks/nodes.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/eks/pods.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/eks/update_config.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/fargate/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/fargate/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/lb/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/lb/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/lb/tag_check.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/msk/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/msk/broker.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/msk/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/nat/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/nat/tag_check.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/profile/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/profile/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/rds/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/rds/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/rds/tag_check.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/s3/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/s3/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/s3/tag_check.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/sg/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/sg/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/vpc/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/vpc/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/vpc/tag_check.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/vpn/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/aws/vpn/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/azure/README.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/azure/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/azure/aci/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/azure/aci/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/azure/aks/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/azure/aks/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/azure/lb/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/azure/lb/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/azure/nsg/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/azure/nsg/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/azure/storage/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/azure/storage/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/azure/vm/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/azure/vm/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/azure/vm/mock_data.json +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/azure/vnet/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/azure/vnet/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/azure/vnet/mock_data.json +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/cloudflare/README.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/cloudflare/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/cloudflare/dns/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/cloudflare/dns/list_info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/README.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/billing/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/billing/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/billing/mock_data.json +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/compute/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/compute/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/compute/mock_data.json +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/firewall/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/firewall/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/functions/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/functions/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/gke/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/gke/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/gke/mock_data.json +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/lb/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/lb/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/run/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/run/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/sql/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/sql/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/storage/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/storage/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/vpc/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/vpc/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/gcp/vpc/mock_data.json +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncp/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncp/client.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncp/ec2/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncp/ec2/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncp/rds/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncp/rds/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncp/s3/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncp/s3/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncp/sg/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncp/sg/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncp/vpc/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncp/vpc/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncpgov/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncpgov/client.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncpgov/ec2/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncpgov/ec2/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncpgov/rds/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncpgov/rds/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncpgov/s3/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncpgov/s3/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncpgov/sg/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncpgov/sg/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncpgov/vpc/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ncpgov/vpc/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/README.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/common/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/common/utils.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/compartment/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/compartment/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/cost/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/cost/credit.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/cost/usage.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/info/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/info/oci_info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/lb/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/lb/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/nsg/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/nsg/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/obj/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/obj/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/policy/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/policy/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/policy/search.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/vcn/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/vcn/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/vm/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/vm/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/volume/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/oci/volume/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ssh/README.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ssh/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ssh/auto/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ssh/auto/scan.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ssh/auto_ssh.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ssh/server/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ssh/server/info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/platforms/ssh/server_info.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/security/README.md +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/security/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/security/config.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/security/detector.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/security/guidance.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/security/hooks.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/security/patterns.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic/security/scanner.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic_code.egg-info/SOURCES.txt +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic_code.egg-info/dependency_links.txt +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic_code.egg-info/entry_points.txt +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic_code.egg-info/requires.txt +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/ic_code.egg-info/top_level.txt +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/mcp/__init__.py +0 -0
- {ic_code-1.2.2 → ic_code-1.2.3}/src/mcp/gcp_connector.py +0 -0
|
@@ -4,7 +4,7 @@ IC (Infra Resource Management CLI) - A comprehensive tool for managing cloud inf
|
|
|
4
4
|
This package provides CLI tools and libraries for managing AWS, Azure, GCP, OCI, and CloudFlare resources.
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
|
-
__version__ = "1.2.
|
|
7
|
+
__version__ = "1.2.3"
|
|
8
8
|
__author__ = "SangYun"
|
|
9
9
|
__email__ = "cruiser594@gmail.com"
|
|
10
10
|
|
|
@@ -464,12 +464,24 @@ def main():
|
|
|
464
464
|
usage="ic <platform|config> <service> <command> [options]",
|
|
465
465
|
formatter_class=argparse.RawDescriptionHelpFormatter
|
|
466
466
|
)
|
|
467
|
+
|
|
468
|
+
# Add version argument
|
|
469
|
+
try:
|
|
470
|
+
from . import __version__
|
|
471
|
+
except ImportError:
|
|
472
|
+
from ic import __version__
|
|
473
|
+
parser.add_argument('--version', '-v', action='version', version=f'ic-code {__version__}')
|
|
474
|
+
|
|
467
475
|
platform_subparsers = parser.add_subparsers(
|
|
468
476
|
dest="platform",
|
|
469
|
-
required=
|
|
477
|
+
required=False,
|
|
470
478
|
help="클라우드 플랫폼 (aws, oci, cf, ssh, azure, gcp) 또는 config 관리"
|
|
471
479
|
)
|
|
472
480
|
|
|
481
|
+
# Add version command
|
|
482
|
+
version_parser = platform_subparsers.add_parser('version', help='Show IC version')
|
|
483
|
+
version_parser.set_defaults(func=lambda args: print(f'ic-code {__version__}'))
|
|
484
|
+
|
|
473
485
|
# Add config commands
|
|
474
486
|
try:
|
|
475
487
|
from .commands.config import ConfigCommands
|
|
@@ -11,35 +11,41 @@ except ImportError:
|
|
|
11
11
|
from rich.console import Console
|
|
12
12
|
from rich.table import Table
|
|
13
13
|
|
|
14
|
-
# 새로운 설정 시스템 import
|
|
15
|
-
try:
|
|
16
|
-
from src.ic.config.manager import ConfigManager
|
|
17
|
-
config_manager = ConfigManager()
|
|
18
|
-
config = config_manager.get_config()
|
|
19
|
-
except ImportError:
|
|
20
|
-
try:
|
|
21
|
-
from ic.config.manager import ConfigManager
|
|
22
|
-
config_manager = ConfigManager()
|
|
23
|
-
config = config_manager.get_config()
|
|
24
|
-
except ImportError:
|
|
25
|
-
# Legacy fallback for development
|
|
26
|
-
import sys
|
|
27
|
-
import os
|
|
28
|
-
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..', '..'))
|
|
29
|
-
from ic.config.manager import ConfigManager
|
|
30
|
-
config_manager = ConfigManager()
|
|
31
|
-
config = config_manager.get_config()
|
|
32
|
-
except ImportError:
|
|
33
|
-
# 호환성을 위한 fallback
|
|
34
|
-
from dotenv import load_dotenv
|
|
35
|
-
load_dotenv()
|
|
36
|
-
config = {}
|
|
37
|
-
|
|
38
14
|
console = Console()
|
|
39
15
|
|
|
40
16
|
# 새로운 설정 시스템에서 태그 키 가져오기
|
|
41
17
|
def get_tag_keys():
|
|
42
18
|
"""설정에서 태그 키를 가져옵니다."""
|
|
19
|
+
# 함수 내부에서 ConfigManager 로드
|
|
20
|
+
try:
|
|
21
|
+
from src.ic.config.manager import ConfigManager
|
|
22
|
+
config_manager = ConfigManager()
|
|
23
|
+
config_manager.load_config() # 기본 설정 로드
|
|
24
|
+
secrets = config_manager.load_secrets_config() # secrets.yaml 로드
|
|
25
|
+
config = config_manager.get_config() # 기본 설정 가져오기
|
|
26
|
+
|
|
27
|
+
# secrets의 aws 설정을 config에 병합
|
|
28
|
+
if secrets and 'aws' in secrets:
|
|
29
|
+
if 'aws' not in config:
|
|
30
|
+
config['aws'] = {}
|
|
31
|
+
config['aws'].update(secrets['aws'])
|
|
32
|
+
except ImportError:
|
|
33
|
+
try:
|
|
34
|
+
from ic.config.manager import ConfigManager
|
|
35
|
+
config_manager = ConfigManager()
|
|
36
|
+
config_manager.load_config() # 기본 설정 로드
|
|
37
|
+
secrets = config_manager.load_secrets_config() # secrets.yaml 로드
|
|
38
|
+
config = config_manager.get_config() # 기본 설정 가져오기
|
|
39
|
+
|
|
40
|
+
# secrets의 aws 설정을 config에 병합
|
|
41
|
+
if secrets and 'aws' in secrets:
|
|
42
|
+
if 'aws' not in config:
|
|
43
|
+
config['aws'] = {}
|
|
44
|
+
config['aws'].update(secrets['aws'])
|
|
45
|
+
except ImportError:
|
|
46
|
+
# Legacy fallback
|
|
47
|
+
config = {}
|
|
48
|
+
|
|
43
49
|
if config and 'aws' in config and 'tags' in config['aws']:
|
|
44
50
|
aws_tags = config['aws']['tags']
|
|
45
51
|
required_tags = aws_tags.get('required', [])
|
|
@@ -14,41 +14,42 @@ except ImportError:
|
|
|
14
14
|
from rich.console import Console
|
|
15
15
|
from rich.table import Table
|
|
16
16
|
|
|
17
|
-
# 새로운 설정 시스템 import
|
|
18
|
-
try:
|
|
19
|
-
from src.ic.config.manager import ConfigManager
|
|
20
|
-
config_manager = ConfigManager()
|
|
21
|
-
config = config_manager.get_config()
|
|
22
|
-
except ImportError:
|
|
23
|
-
try:
|
|
24
|
-
from ic.config.manager import ConfigManager
|
|
25
|
-
config_manager = ConfigManager()
|
|
26
|
-
config = config_manager.get_config()
|
|
27
|
-
except ImportError:
|
|
28
|
-
# Legacy fallback for development
|
|
29
|
-
import sys
|
|
30
|
-
import os
|
|
31
|
-
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..', '..'))
|
|
32
|
-
from ic.config.manager import ConfigManager
|
|
33
|
-
config_manager = ConfigManager()
|
|
34
|
-
config = config_manager.get_config()
|
|
35
|
-
except ImportError:
|
|
36
|
-
# 호환성을 위한 fallback
|
|
37
|
-
from dotenv import load_dotenv
|
|
38
|
-
load_dotenv()
|
|
39
|
-
config = {}
|
|
40
|
-
|
|
41
17
|
console = Console()
|
|
42
18
|
|
|
43
19
|
# 새로운 설정 시스템에서 태그 키 가져오기
|
|
44
20
|
def get_tag_keys():
|
|
45
21
|
"""설정에서 태그 키를 가져옵니다."""
|
|
22
|
+
try:
|
|
23
|
+
from src.ic.config.manager import ConfigManager
|
|
24
|
+
config_manager = ConfigManager()
|
|
25
|
+
config_manager.load_config()
|
|
26
|
+
secrets = config_manager.load_secrets_config()
|
|
27
|
+
config = config_manager.get_config()
|
|
28
|
+
|
|
29
|
+
if secrets and 'aws' in secrets:
|
|
30
|
+
if 'aws' not in config:
|
|
31
|
+
config['aws'] = {}
|
|
32
|
+
config['aws'].update(secrets['aws'])
|
|
33
|
+
except ImportError:
|
|
34
|
+
try:
|
|
35
|
+
from ic.config.manager import ConfigManager
|
|
36
|
+
config_manager = ConfigManager()
|
|
37
|
+
config_manager.load_config()
|
|
38
|
+
secrets = config_manager.load_secrets_config()
|
|
39
|
+
config = config_manager.get_config()
|
|
40
|
+
|
|
41
|
+
if secrets and 'aws' in secrets:
|
|
42
|
+
if 'aws' not in config:
|
|
43
|
+
config['aws'] = {}
|
|
44
|
+
config['aws'].update(secrets['aws'])
|
|
45
|
+
except ImportError:
|
|
46
|
+
config = {}
|
|
47
|
+
|
|
46
48
|
if config and 'aws' in config and 'tags' in config['aws']:
|
|
47
49
|
aws_tags = config['aws']['tags']
|
|
48
50
|
required_tags = aws_tags.get('required', [])
|
|
49
51
|
optional_tags = aws_tags.get('optional', [])
|
|
50
52
|
else:
|
|
51
|
-
# Fallback to environment variables
|
|
52
53
|
env_required = os.getenv("REQUIRED_TAGS", "User,Team,Environment")
|
|
53
54
|
env_optional = os.getenv("OPTIONAL_TAGS", "Service,Application")
|
|
54
55
|
required_tags = [t.strip() for t in env_required.split(",") if t.strip()]
|
|
@@ -18,41 +18,42 @@ except ImportError:
|
|
|
18
18
|
from rich.console import Console
|
|
19
19
|
from rich.table import Table
|
|
20
20
|
|
|
21
|
-
# 새로운 설정 시스템 import
|
|
22
|
-
try:
|
|
23
|
-
from src.ic.config.manager import ConfigManager
|
|
24
|
-
config_manager = ConfigManager()
|
|
25
|
-
config = config_manager.get_config()
|
|
26
|
-
except ImportError:
|
|
27
|
-
try:
|
|
28
|
-
from ic.config.manager import ConfigManager
|
|
29
|
-
config_manager = ConfigManager()
|
|
30
|
-
config = config_manager.get_config()
|
|
31
|
-
except ImportError:
|
|
32
|
-
# Legacy fallback for development
|
|
33
|
-
import sys
|
|
34
|
-
import os
|
|
35
|
-
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..', '..'))
|
|
36
|
-
from ic.config.manager import ConfigManager
|
|
37
|
-
config_manager = ConfigManager()
|
|
38
|
-
config = config_manager.get_config()
|
|
39
|
-
except ImportError:
|
|
40
|
-
# 호환성을 위한 fallback
|
|
41
|
-
from dotenv import load_dotenv
|
|
42
|
-
load_dotenv()
|
|
43
|
-
config = {}
|
|
44
|
-
|
|
45
21
|
console = Console()
|
|
46
22
|
|
|
47
23
|
# 새로운 설정 시스템에서 태그 키 가져오기
|
|
48
24
|
def get_tag_keys():
|
|
49
25
|
"""설정에서 태그 키를 가져옵니다."""
|
|
26
|
+
try:
|
|
27
|
+
from src.ic.config.manager import ConfigManager
|
|
28
|
+
config_manager = ConfigManager()
|
|
29
|
+
config_manager.load_config()
|
|
30
|
+
secrets = config_manager.load_secrets_config()
|
|
31
|
+
config = config_manager.get_config()
|
|
32
|
+
|
|
33
|
+
if secrets and 'aws' in secrets:
|
|
34
|
+
if 'aws' not in config:
|
|
35
|
+
config['aws'] = {}
|
|
36
|
+
config['aws'].update(secrets['aws'])
|
|
37
|
+
except ImportError:
|
|
38
|
+
try:
|
|
39
|
+
from ic.config.manager import ConfigManager
|
|
40
|
+
config_manager = ConfigManager()
|
|
41
|
+
config_manager.load_config()
|
|
42
|
+
secrets = config_manager.load_secrets_config()
|
|
43
|
+
config = config_manager.get_config()
|
|
44
|
+
|
|
45
|
+
if secrets and 'aws' in secrets:
|
|
46
|
+
if 'aws' not in config:
|
|
47
|
+
config['aws'] = {}
|
|
48
|
+
config['aws'].update(secrets['aws'])
|
|
49
|
+
except ImportError:
|
|
50
|
+
config = {}
|
|
51
|
+
|
|
50
52
|
if config and 'aws' in config and 'tags' in config['aws']:
|
|
51
53
|
aws_tags = config['aws']['tags']
|
|
52
54
|
required_tags = aws_tags.get('required', [])
|
|
53
55
|
optional_tags = aws_tags.get('optional', [])
|
|
54
56
|
else:
|
|
55
|
-
# Fallback to environment variables
|
|
56
57
|
env_required = os.getenv("REQUIRED_TAGS", "User,Team,Environment")
|
|
57
58
|
env_optional = os.getenv("OPTIONAL_TAGS", "Service,Application")
|
|
58
59
|
required_tags = [t.strip() for t in env_required.split(",") if t.strip()]
|
|
@@ -14,41 +14,42 @@ except ImportError:
|
|
|
14
14
|
from rich.console import Console
|
|
15
15
|
from rich.table import Table
|
|
16
16
|
|
|
17
|
-
# 새로운 설정 시스템 import
|
|
18
|
-
try:
|
|
19
|
-
from src.ic.config.manager import ConfigManager
|
|
20
|
-
config_manager = ConfigManager()
|
|
21
|
-
config = config_manager.get_config()
|
|
22
|
-
except ImportError:
|
|
23
|
-
try:
|
|
24
|
-
from ic.config.manager import ConfigManager
|
|
25
|
-
config_manager = ConfigManager()
|
|
26
|
-
config = config_manager.get_config()
|
|
27
|
-
except ImportError:
|
|
28
|
-
# Legacy fallback for development
|
|
29
|
-
import sys
|
|
30
|
-
import os
|
|
31
|
-
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..', '..'))
|
|
32
|
-
from ic.config.manager import ConfigManager
|
|
33
|
-
config_manager = ConfigManager()
|
|
34
|
-
config = config_manager.get_config()
|
|
35
|
-
except ImportError:
|
|
36
|
-
# 호환성을 위한 fallback
|
|
37
|
-
from dotenv import load_dotenv
|
|
38
|
-
load_dotenv()
|
|
39
|
-
config = {}
|
|
40
|
-
|
|
41
17
|
console = Console()
|
|
42
18
|
|
|
43
19
|
# 새로운 설정 시스템에서 태그 키 가져오기
|
|
44
20
|
def get_tag_keys():
|
|
45
21
|
"""설정에서 태그 키를 가져옵니다."""
|
|
22
|
+
try:
|
|
23
|
+
from src.ic.config.manager import ConfigManager
|
|
24
|
+
config_manager = ConfigManager()
|
|
25
|
+
config_manager.load_config()
|
|
26
|
+
secrets = config_manager.load_secrets_config()
|
|
27
|
+
config = config_manager.get_config()
|
|
28
|
+
|
|
29
|
+
if secrets and 'aws' in secrets:
|
|
30
|
+
if 'aws' not in config:
|
|
31
|
+
config['aws'] = {}
|
|
32
|
+
config['aws'].update(secrets['aws'])
|
|
33
|
+
except ImportError:
|
|
34
|
+
try:
|
|
35
|
+
from ic.config.manager import ConfigManager
|
|
36
|
+
config_manager = ConfigManager()
|
|
37
|
+
config_manager.load_config()
|
|
38
|
+
secrets = config_manager.load_secrets_config()
|
|
39
|
+
config = config_manager.get_config()
|
|
40
|
+
|
|
41
|
+
if secrets and 'aws' in secrets:
|
|
42
|
+
if 'aws' not in config:
|
|
43
|
+
config['aws'] = {}
|
|
44
|
+
config['aws'].update(secrets['aws'])
|
|
45
|
+
except ImportError:
|
|
46
|
+
config = {}
|
|
47
|
+
|
|
46
48
|
if config and 'aws' in config and 'tags' in config['aws']:
|
|
47
49
|
aws_tags = config['aws']['tags']
|
|
48
50
|
required_tags = aws_tags.get('required', [])
|
|
49
51
|
optional_tags = aws_tags.get('optional', [])
|
|
50
52
|
else:
|
|
51
|
-
# Fallback to environment variables
|
|
52
53
|
env_required = os.getenv("REQUIRED_TAGS", "User,Team,Environment")
|
|
53
54
|
env_optional = os.getenv("OPTIONAL_TAGS", "Service,Application")
|
|
54
55
|
required_tags = [t.strip() for t in env_required.split(",") if t.strip()]
|
|
@@ -15,41 +15,42 @@ except ImportError:
|
|
|
15
15
|
from rich.console import Console
|
|
16
16
|
from rich.table import Table
|
|
17
17
|
|
|
18
|
-
# 새로운 설정 시스템 import
|
|
19
|
-
try:
|
|
20
|
-
from src.ic.config.manager import ConfigManager
|
|
21
|
-
config_manager = ConfigManager()
|
|
22
|
-
config = config_manager.get_config()
|
|
23
|
-
except ImportError:
|
|
24
|
-
try:
|
|
25
|
-
from ic.config.manager import ConfigManager
|
|
26
|
-
config_manager = ConfigManager()
|
|
27
|
-
config = config_manager.get_config()
|
|
28
|
-
except ImportError:
|
|
29
|
-
# Legacy fallback for development
|
|
30
|
-
import sys
|
|
31
|
-
import os
|
|
32
|
-
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..', '..'))
|
|
33
|
-
from ic.config.manager import ConfigManager
|
|
34
|
-
config_manager = ConfigManager()
|
|
35
|
-
config = config_manager.get_config()
|
|
36
|
-
except ImportError:
|
|
37
|
-
# 호환성을 위한 fallback
|
|
38
|
-
from dotenv import load_dotenv
|
|
39
|
-
load_dotenv()
|
|
40
|
-
config = {}
|
|
41
|
-
|
|
42
18
|
console = Console()
|
|
43
19
|
|
|
44
20
|
# 새로운 설정 시스템에서 태그 키 가져오기
|
|
45
21
|
def get_tag_keys():
|
|
46
22
|
"""설정에서 태그 키를 가져옵니다."""
|
|
23
|
+
try:
|
|
24
|
+
from src.ic.config.manager import ConfigManager
|
|
25
|
+
config_manager = ConfigManager()
|
|
26
|
+
config_manager.load_config()
|
|
27
|
+
secrets = config_manager.load_secrets_config()
|
|
28
|
+
config = config_manager.get_config()
|
|
29
|
+
|
|
30
|
+
if secrets and 'aws' in secrets:
|
|
31
|
+
if 'aws' not in config:
|
|
32
|
+
config['aws'] = {}
|
|
33
|
+
config['aws'].update(secrets['aws'])
|
|
34
|
+
except ImportError:
|
|
35
|
+
try:
|
|
36
|
+
from ic.config.manager import ConfigManager
|
|
37
|
+
config_manager = ConfigManager()
|
|
38
|
+
config_manager.load_config()
|
|
39
|
+
secrets = config_manager.load_secrets_config()
|
|
40
|
+
config = config_manager.get_config()
|
|
41
|
+
|
|
42
|
+
if secrets and 'aws' in secrets:
|
|
43
|
+
if 'aws' not in config:
|
|
44
|
+
config['aws'] = {}
|
|
45
|
+
config['aws'].update(secrets['aws'])
|
|
46
|
+
except ImportError:
|
|
47
|
+
config = {}
|
|
48
|
+
|
|
47
49
|
if config and 'aws' in config and 'tags' in config['aws']:
|
|
48
50
|
aws_tags = config['aws']['tags']
|
|
49
51
|
required_tags = aws_tags.get('required', [])
|
|
50
52
|
optional_tags = aws_tags.get('optional', [])
|
|
51
53
|
else:
|
|
52
|
-
# Fallback to environment variables
|
|
53
54
|
env_required = os.getenv("REQUIRED_TAGS", "User,Team,Environment")
|
|
54
55
|
env_optional = os.getenv("OPTIONAL_TAGS", "Service,Application")
|
|
55
56
|
required_tags = [t.strip() for t in env_required.split(",") if t.strip()]
|
|
@@ -14,41 +14,42 @@ except ImportError:
|
|
|
14
14
|
from rich.console import Console
|
|
15
15
|
from rich.table import Table
|
|
16
16
|
|
|
17
|
-
# 새로운 설정 시스템 import
|
|
18
|
-
try:
|
|
19
|
-
from src.ic.config.manager import ConfigManager
|
|
20
|
-
config_manager = ConfigManager()
|
|
21
|
-
config = config_manager.get_config()
|
|
22
|
-
except ImportError:
|
|
23
|
-
try:
|
|
24
|
-
from ic.config.manager import ConfigManager
|
|
25
|
-
config_manager = ConfigManager()
|
|
26
|
-
config = config_manager.get_config()
|
|
27
|
-
except ImportError:
|
|
28
|
-
# Legacy fallback for development
|
|
29
|
-
import sys
|
|
30
|
-
import os
|
|
31
|
-
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..', '..'))
|
|
32
|
-
from ic.config.manager import ConfigManager
|
|
33
|
-
config_manager = ConfigManager()
|
|
34
|
-
config = config_manager.get_config()
|
|
35
|
-
except ImportError:
|
|
36
|
-
# 호환성을 위한 fallback
|
|
37
|
-
from dotenv import load_dotenv
|
|
38
|
-
load_dotenv()
|
|
39
|
-
config = {}
|
|
40
|
-
|
|
41
17
|
console = Console()
|
|
42
18
|
|
|
43
19
|
# 새로운 설정 시스템에서 태그 키 가져오기
|
|
44
20
|
def get_tag_keys():
|
|
45
21
|
"""설정에서 태그 키를 가져옵니다."""
|
|
22
|
+
try:
|
|
23
|
+
from src.ic.config.manager import ConfigManager
|
|
24
|
+
config_manager = ConfigManager()
|
|
25
|
+
config_manager.load_config()
|
|
26
|
+
secrets = config_manager.load_secrets_config()
|
|
27
|
+
config = config_manager.get_config()
|
|
28
|
+
|
|
29
|
+
if secrets and 'aws' in secrets:
|
|
30
|
+
if 'aws' not in config:
|
|
31
|
+
config['aws'] = {}
|
|
32
|
+
config['aws'].update(secrets['aws'])
|
|
33
|
+
except ImportError:
|
|
34
|
+
try:
|
|
35
|
+
from ic.config.manager import ConfigManager
|
|
36
|
+
config_manager = ConfigManager()
|
|
37
|
+
config_manager.load_config()
|
|
38
|
+
secrets = config_manager.load_secrets_config()
|
|
39
|
+
config = config_manager.get_config()
|
|
40
|
+
|
|
41
|
+
if secrets and 'aws' in secrets:
|
|
42
|
+
if 'aws' not in config:
|
|
43
|
+
config['aws'] = {}
|
|
44
|
+
config['aws'].update(secrets['aws'])
|
|
45
|
+
except ImportError:
|
|
46
|
+
config = {}
|
|
47
|
+
|
|
46
48
|
if config and 'aws' in config and 'tags' in config['aws']:
|
|
47
49
|
aws_tags = config['aws']['tags']
|
|
48
50
|
required_tags = aws_tags.get('required', [])
|
|
49
51
|
optional_tags = aws_tags.get('optional', [])
|
|
50
52
|
else:
|
|
51
|
-
# Fallback to environment variables
|
|
52
53
|
env_required = os.getenv("REQUIRED_TAGS", "User,Team,Environment")
|
|
53
54
|
env_optional = os.getenv("OPTIONAL_TAGS", "Service,Application")
|
|
54
55
|
required_tags = [t.strip() for t in env_required.split(",") if t.strip()]
|
|
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
|
|
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
|