ic-code 1.1.0__tar.gz → 1.1.1__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 (257) hide show
  1. {ic_code-1.1.0/src/ic_code.egg-info → ic_code-1.1.1}/PKG-INFO +1 -1
  2. {ic_code-1.1.0 → ic_code-1.1.1}/common/ncp_utils.py +2 -2
  3. {ic_code-1.1.0 → ic_code-1.1.1}/common/ncpgov_utils.py +2 -2
  4. {ic_code-1.1.0 → ic_code-1.1.1}/pyproject.toml +1 -1
  5. {ic_code-1.1.0 → ic_code-1.1.1}/scripts/cli_usage_analysis.py +4 -4
  6. {ic_code-1.1.0 → ic_code-1.1.1}/scripts/fix_consolidated_imports.py +3 -3
  7. {ic_code-1.1.0 → ic_code-1.1.1}/setup.py +1 -1
  8. ic_code-1.1.1/src/ic/__init__.py +36 -0
  9. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/cli.py +137 -57
  10. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/commands/migration.py +4 -1
  11. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/migration/__init__.py +4 -1
  12. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/migration/post_validation.py +52 -13
  13. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncp/ec2/info.py +4 -1
  14. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncp/rds/info.py +4 -1
  15. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncp/s3/info.py +4 -1
  16. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncp/sg/info.py +4 -1
  17. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncp/vpc/info.py +4 -1
  18. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncpgov/ec2/info.py +8 -2
  19. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncpgov/rds/info.py +4 -1
  20. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncpgov/s3/info.py +8 -2
  21. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncpgov/sg/info.py +4 -1
  22. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncpgov/vpc/info.py +4 -1
  23. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/lb/info.py +4 -1
  24. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/nsg/info.py +4 -1
  25. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/obj/info.py +4 -1
  26. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/policy/info.py +4 -1
  27. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/vcn/info.py +4 -1
  28. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/vm/info.py +4 -1
  29. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/volume/info.py +4 -1
  30. {ic_code-1.1.0 → ic_code-1.1.1/src/ic_code.egg-info}/PKG-INFO +1 -1
  31. ic_code-1.1.0/src/ic/__init__.py +0 -29
  32. {ic_code-1.1.0 → ic_code-1.1.1}/CHANGELOG.md +0 -0
  33. {ic_code-1.1.0 → ic_code-1.1.1}/LICENSE +0 -0
  34. {ic_code-1.1.0 → ic_code-1.1.1}/MANIFEST.in +0 -0
  35. {ic_code-1.1.0 → ic_code-1.1.1}/README.md +0 -0
  36. {ic_code-1.1.0 → ic_code-1.1.1}/SECURITY.md +0 -0
  37. {ic_code-1.1.0 → ic_code-1.1.1}/common/__init__.py +0 -0
  38. {ic_code-1.1.0 → ic_code-1.1.1}/common/azure_utils.py +0 -0
  39. {ic_code-1.1.0 → ic_code-1.1.1}/common/gather_env.py +0 -0
  40. {ic_code-1.1.0 → ic_code-1.1.1}/common/gcp_config_validator.py +0 -0
  41. {ic_code-1.1.0 → ic_code-1.1.1}/common/gcp_monitoring.py +0 -0
  42. {ic_code-1.1.0 → ic_code-1.1.1}/common/gcp_utils.py +0 -0
  43. {ic_code-1.1.0 → ic_code-1.1.1}/common/log.py +0 -0
  44. {ic_code-1.1.0 → ic_code-1.1.1}/common/ncp_security_utils.py +0 -0
  45. {ic_code-1.1.0 → ic_code-1.1.1}/common/progress_decorator.py +0 -0
  46. {ic_code-1.1.0 → ic_code-1.1.1}/common/slack.py +0 -0
  47. {ic_code-1.1.0 → ic_code-1.1.1}/common/utils.py +0 -0
  48. {ic_code-1.1.0 → ic_code-1.1.1}/docs/README.md +0 -0
  49. {ic_code-1.1.0 → ic_code-1.1.1}/docs/_templates/configuration.md +0 -0
  50. {ic_code-1.1.0 → ic_code-1.1.1}/docs/_templates/installation.md +0 -0
  51. {ic_code-1.1.0 → ic_code-1.1.1}/docs/_templates/troubleshooting.md +0 -0
  52. {ic_code-1.1.0 → ic_code-1.1.1}/docs/_templates/usage.md +0 -0
  53. {ic_code-1.1.0 → ic_code-1.1.1}/docs/aws/AWS_IMPLEMENTATION_SUMMARY.md +0 -0
  54. {ic_code-1.1.0 → ic_code-1.1.1}/docs/aws/README.md +0 -0
  55. {ic_code-1.1.0 → ic_code-1.1.1}/docs/aws/aws_cli_prd.md +0 -0
  56. {ic_code-1.1.0 → ic_code-1.1.1}/docs/aws/installation.md +0 -0
  57. {ic_code-1.1.0 → ic_code-1.1.1}/docs/azure/README.md +0 -0
  58. {ic_code-1.1.0 → ic_code-1.1.1}/docs/config_migration.md +0 -0
  59. {ic_code-1.1.0 → ic_code-1.1.1}/docs/deployment.md +0 -0
  60. {ic_code-1.1.0 → ic_code-1.1.1}/docs/gcp/GCP_CONFIGURATION_GUIDE.md +0 -0
  61. {ic_code-1.1.0 → ic_code-1.1.1}/docs/gcp/GCP_SECURITY_BEST_PRACTICES.md +0 -0
  62. {ic_code-1.1.0 → ic_code-1.1.1}/docs/gcp/README.md +0 -0
  63. {ic_code-1.1.0 → ic_code-1.1.1}/docs/general/configuration.md +0 -0
  64. {ic_code-1.1.0 → ic_code-1.1.1}/docs/installation.md +0 -0
  65. {ic_code-1.1.0 → ic_code-1.1.1}/docs/mcp_integration.md +0 -0
  66. {ic_code-1.1.0 → ic_code-1.1.1}/docs/migration.md +0 -0
  67. {ic_code-1.1.0 → ic_code-1.1.1}/docs/migration_guide.md +0 -0
  68. {ic_code-1.1.0 → ic_code-1.1.1}/docs/ncp/README.md +0 -0
  69. {ic_code-1.1.0 → ic_code-1.1.1}/docs/ncp/configuration.md +0 -0
  70. {ic_code-1.1.0 → ic_code-1.1.1}/docs/ncp/installation.md +0 -0
  71. {ic_code-1.1.0 → ic_code-1.1.1}/docs/ncp/troubleshooting.md +0 -0
  72. {ic_code-1.1.0 → ic_code-1.1.1}/docs/ncp/usage.md +0 -0
  73. {ic_code-1.1.0 → ic_code-1.1.1}/docs/ncpgov/README.md +0 -0
  74. {ic_code-1.1.0 → ic_code-1.1.1}/docs/ncpgov/installation.md +0 -0
  75. {ic_code-1.1.0 → ic_code-1.1.1}/docs/oci/README.md +0 -0
  76. {ic_code-1.1.0 → ic_code-1.1.1}/docs/oci/installation.md +0 -0
  77. {ic_code-1.1.0 → ic_code-1.1.1}/docs/security.md +0 -0
  78. {ic_code-1.1.0 → ic_code-1.1.1}/docs/ssh/configuration.md +0 -0
  79. {ic_code-1.1.0 → ic_code-1.1.1}/docs/troubleshooting.md +0 -0
  80. {ic_code-1.1.0 → ic_code-1.1.1}/docs/user_guide.md +0 -0
  81. {ic_code-1.1.0 → ic_code-1.1.1}/mcp/__init__.py +0 -0
  82. {ic_code-1.1.0 → ic_code-1.1.1}/mcp/gcp_connector.py +0 -0
  83. {ic_code-1.1.0 → ic_code-1.1.1}/requirements.txt +0 -0
  84. {ic_code-1.1.0 → ic_code-1.1.1}/scripts/analysis_summary.py +0 -0
  85. {ic_code-1.1.0 → ic_code-1.1.1}/scripts/bump-version.sh +0 -0
  86. {ic_code-1.1.0 → ic_code-1.1.1}/scripts/cf_edge_nsg_make/cf_edge_nsg_make.py +0 -0
  87. {ic_code-1.1.0 → ic_code-1.1.1}/scripts/dependency_mapper.py +0 -0
  88. {ic_code-1.1.0 → ic_code-1.1.1}/scripts/deploy.sh +0 -0
  89. {ic_code-1.1.0 → ic_code-1.1.1}/scripts/final_validation_and_documentation.py +0 -0
  90. {ic_code-1.1.0 → ic_code-1.1.1}/scripts/migration_execution_and_validation.py +0 -0
  91. {ic_code-1.1.0 → ic_code-1.1.1}/scripts/ncp_security_scanner.py +0 -0
  92. {ic_code-1.1.0 → ic_code-1.1.1}/scripts/oracle-policy/user_policy.py +0 -0
  93. {ic_code-1.1.0 → ic_code-1.1.1}/scripts/performance_optimization.py +0 -0
  94. {ic_code-1.1.0 → ic_code-1.1.1}/scripts/setup_venv.py +0 -0
  95. {ic_code-1.1.0 → ic_code-1.1.1}/scripts/unset_env.sh +0 -0
  96. {ic_code-1.1.0 → ic_code-1.1.1}/scripts/validate_config.py +0 -0
  97. {ic_code-1.1.0 → ic_code-1.1.1}/scripts/validate_dependencies.py +0 -0
  98. {ic_code-1.1.0 → ic_code-1.1.1}/scripts/validate_ncp_security.py +0 -0
  99. {ic_code-1.1.0 → ic_code-1.1.1}/setup.cfg +0 -0
  100. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/commands/__init__.py +0 -0
  101. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/commands/config.py +0 -0
  102. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/commands/security.py +0 -0
  103. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/compat/__init__.py +0 -0
  104. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/compat/cli.py +0 -0
  105. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/compat/common.py +0 -0
  106. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/config/__init__.py +0 -0
  107. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/config/cleanup.py +0 -0
  108. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/config/docs_organizer.py +0 -0
  109. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/config/external.py +0 -0
  110. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/config/installer.py +0 -0
  111. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/config/manager.py +0 -0
  112. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/config/migration.py +0 -0
  113. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/config/migration_utils.py +0 -0
  114. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/config/path_manager.py +0 -0
  115. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/config/schema.py +0 -0
  116. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/config/secrets.py +0 -0
  117. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/config/security.py +0 -0
  118. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/core/__init__.py +0 -0
  119. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/core/dependency_validator.py +0 -0
  120. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/core/logging.py +0 -0
  121. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/core/mcp_manager.py +0 -0
  122. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/core/session.py +0 -0
  123. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/core/silence_logging.py +0 -0
  124. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/migration/manager.py +0 -0
  125. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/migration/rollback.py +0 -0
  126. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/migration/validation.py +0 -0
  127. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/__init__.py +0 -0
  128. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/__init__.py +0 -0
  129. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/cloudfront/__init__.py +0 -0
  130. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/cloudfront/info.py +0 -0
  131. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/codepipeline/__init__.py +0 -0
  132. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/codepipeline/build.py +0 -0
  133. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/codepipeline/deploy.py +0 -0
  134. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/ec2/__init__.py +0 -0
  135. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/ec2/info.py +0 -0
  136. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/ec2/list_tags.py +0 -0
  137. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/ec2/tag_check.py +0 -0
  138. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/ecs/__init__.py +0 -0
  139. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/ecs/info.py +0 -0
  140. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/ecs/service.py +0 -0
  141. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/ecs/task.py +0 -0
  142. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/eks/__init__.py +0 -0
  143. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/eks/addons.py +0 -0
  144. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/eks/fargate.py +0 -0
  145. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/eks/info.py +0 -0
  146. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/eks/nodes.py +0 -0
  147. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/eks/pods.py +0 -0
  148. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/eks/update_config.py +0 -0
  149. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/fargate/__init__.py +0 -0
  150. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/fargate/info.py +0 -0
  151. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/lb/__init__.py +0 -0
  152. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/lb/info.py +0 -0
  153. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/lb/list_tags.py +0 -0
  154. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/lb/tag_check.py +0 -0
  155. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/msk/__init__.py +0 -0
  156. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/msk/broker.py +0 -0
  157. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/msk/info.py +0 -0
  158. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/nat/__init__.py +0 -0
  159. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/nat/list_tags.py +0 -0
  160. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/nat/tag_check.py +0 -0
  161. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/profile/__init__.py +0 -0
  162. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/profile/info.py +0 -0
  163. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/rds/__init__.py +0 -0
  164. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/rds/info.py +0 -0
  165. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/rds/list_tags.py +0 -0
  166. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/rds/tag_check.py +0 -0
  167. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/s3/__init__.py +0 -0
  168. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/s3/info.py +0 -0
  169. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/s3/list_tags.py +0 -0
  170. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/s3/tag_check.py +0 -0
  171. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/sg/__init__.py +0 -0
  172. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/sg/info.py +0 -0
  173. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/vpc/__init__.py +0 -0
  174. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/vpc/info.py +0 -0
  175. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/vpc/list_tags.py +0 -0
  176. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/vpc/tag_check.py +0 -0
  177. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/vpn/__init__.py +0 -0
  178. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/aws/vpn/info.py +0 -0
  179. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/azure/__init__.py +0 -0
  180. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/azure/aci/info.py +0 -0
  181. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/azure/aks/info.py +0 -0
  182. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/azure/lb/info.py +0 -0
  183. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/azure/nsg/info.py +0 -0
  184. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/azure/storage/info.py +0 -0
  185. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/azure/vm/info.py +0 -0
  186. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/azure/vnet/info.py +0 -0
  187. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/cloudflare/__init__.py +0 -0
  188. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/cloudflare/dns/__init__.py +0 -0
  189. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/cloudflare/dns/list_info.py +0 -0
  190. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/__init__.py +0 -0
  191. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/billing/__init__.py +0 -0
  192. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/billing/info.py +0 -0
  193. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/compute/__init__.py +0 -0
  194. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/compute/info.py +0 -0
  195. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/firewall/__init__.py +0 -0
  196. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/firewall/info.py +0 -0
  197. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/functions/__init__.py +0 -0
  198. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/functions/info.py +0 -0
  199. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/gke/__init__.py +0 -0
  200. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/gke/info.py +0 -0
  201. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/lb/__init__.py +0 -0
  202. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/lb/info.py +0 -0
  203. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/run/__init__.py +0 -0
  204. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/run/info.py +0 -0
  205. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/sql/__init__.py +0 -0
  206. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/sql/info.py +0 -0
  207. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/storage/__init__.py +0 -0
  208. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/storage/info.py +0 -0
  209. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/vpc/__init__.py +0 -0
  210. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/gcp/vpc/info.py +0 -0
  211. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncp/__init__.py +0 -0
  212. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncp/client.py +0 -0
  213. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncp/ec2/__init__.py +0 -0
  214. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncp/rds/__init__.py +0 -0
  215. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncp/s3/__init__.py +0 -0
  216. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncp/sg/__init__.py +0 -0
  217. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncp/vpc/__init__.py +0 -0
  218. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncpgov/__init__.py +0 -0
  219. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncpgov/client.py +0 -0
  220. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncpgov/ec2/__init__.py +0 -0
  221. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncpgov/rds/__init__.py +0 -0
  222. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncpgov/s3/__init__.py +0 -0
  223. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncpgov/sg/__init__.py +0 -0
  224. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ncpgov/vpc/__init__.py +0 -0
  225. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/__init__.py +0 -0
  226. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/common/__init__.py +0 -0
  227. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/common/utils.py +0 -0
  228. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/compartment/__init__.py +0 -0
  229. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/compartment/info.py +0 -0
  230. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/cost/__init__.py +0 -0
  231. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/cost/credit.py +0 -0
  232. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/cost/usage.py +0 -0
  233. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/info/__init__.py +0 -0
  234. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/info/oci_info.py +0 -0
  235. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/lb/__init__.py +0 -0
  236. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/nsg/__init__.py +0 -0
  237. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/obj/__init__.py +0 -0
  238. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/policy/__init__.py +0 -0
  239. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/policy/search.py +0 -0
  240. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/vcn/__init__.py +0 -0
  241. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/vm/__init__.py +0 -0
  242. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/oci/volume/__init__.py +0 -0
  243. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ssh/__init__.py +0 -0
  244. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ssh/auto_ssh.py +0 -0
  245. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/platforms/ssh/server_info.py +0 -0
  246. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/security/__init__.py +0 -0
  247. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/security/config.py +0 -0
  248. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/security/detector.py +0 -0
  249. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/security/guidance.py +0 -0
  250. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/security/hooks.py +0 -0
  251. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/security/patterns.py +0 -0
  252. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic/security/scanner.py +0 -0
  253. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic_code.egg-info/SOURCES.txt +0 -0
  254. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic_code.egg-info/dependency_links.txt +0 -0
  255. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic_code.egg-info/entry_points.txt +0 -0
  256. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic_code.egg-info/requires.txt +0 -0
  257. {ic_code-1.1.0 → ic_code-1.1.1}/src/ic_code.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ic-code
3
- Version: 1.1.0
3
+ Version: 1.1.1
4
4
  Summary: Infrastructure CLI tool for managing AWS, Azure, GCP, OCI, NCP, CloudFlare, SSH, and more
5
5
  Home-page: https://github.com/dgr009/ic
6
6
  Author: SangYun Kim
@@ -32,7 +32,7 @@ def get_ncp_config_path() -> Path:
32
32
  """NCP 설정 파일 경로 반환 (hierarchical lookup)"""
33
33
  # Import here to avoid circular imports
34
34
  try:
35
- from src.ic.config.path_manager import ConfigPathManager
35
+ from ic.config.path_manager import ConfigPathManager
36
36
  path_manager = ConfigPathManager()
37
37
  config_path = path_manager.get_ncp_config_path()
38
38
  if config_path:
@@ -64,7 +64,7 @@ def load_ncp_config(profile: str = 'default') -> Dict[str, Any]:
64
64
  """
65
65
  try:
66
66
  # Try to use ConfigManager for hierarchical lookup
67
- from src.ic.config.manager import ConfigManager
67
+ from ic.config.manager import ConfigManager
68
68
  config_manager = ConfigManager()
69
69
 
70
70
  # Monitor configuration access
@@ -29,7 +29,7 @@ def get_ncpgov_config_path() -> Path:
29
29
  """NCP Gov 설정 파일 경로 반환 (hierarchical lookup)"""
30
30
  # Import here to avoid circular imports
31
31
  try:
32
- from src.ic.config.path_manager import ConfigPathManager
32
+ from ic.config.path_manager import ConfigPathManager
33
33
  path_manager = ConfigPathManager()
34
34
  config_path = path_manager.get_ncpgov_config_path()
35
35
  if config_path:
@@ -61,7 +61,7 @@ def load_ncpgov_config(profile: str = 'default') -> Dict[str, Any]:
61
61
  """
62
62
  try:
63
63
  # Try to use ConfigManager for hierarchical lookup
64
- from src.ic.config.manager import ConfigManager
64
+ from ic.config.manager import ConfigManager
65
65
  config_manager = ConfigManager()
66
66
 
67
67
  # Monitor configuration access for government cloud
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ic-code"
7
- version = "1.1.0"
7
+ version = "1.1.1"
8
8
  authors = [
9
9
  {name = "sykim", email = "cruiser594@gmail.com"},
10
10
  ]
@@ -400,10 +400,10 @@ class CLIUsageAnalyzer:
400
400
  old_import = f"from {imp.module_path} import {imp.imported_name}"
401
401
  if imp.module_path.startswith('ncp.'):
402
402
  service = imp.module_path.split('.')[1]
403
- new_import = f"from src.ic.platforms.ncp.{service} import {imp.imported_name}"
403
+ new_import = f"from ic.platforms.ncp.{service} import {imp.imported_name}"
404
404
  elif imp.module_path.startswith('ncp_module.'):
405
405
  service = imp.module_path.split('.')[1]
406
- new_import = f"from src.ic.platforms.ncp.{service} import {imp.imported_name}"
406
+ new_import = f"from ic.platforms.ncp.{service} import {imp.imported_name}"
407
407
  else:
408
408
  new_import = old_import
409
409
 
@@ -413,10 +413,10 @@ class CLIUsageAnalyzer:
413
413
  old_import = f"from {imp.module_path} import {imp.imported_name}"
414
414
  if imp.module_path.startswith('ncpgov.'):
415
415
  service = imp.module_path.split('.')[1]
416
- new_import = f"from src.ic.platforms.ncpgov.{service} import {imp.imported_name}"
416
+ new_import = f"from ic.platforms.ncpgov.{service} import {imp.imported_name}"
417
417
  elif imp.module_path.startswith('ncpgov_module.'):
418
418
  service = imp.module_path.split('.')[1]
419
- new_import = f"from src.ic.platforms.ncpgov.{service} import {imp.imported_name}"
419
+ new_import = f"from ic.platforms.ncpgov.{service} import {imp.imported_name}"
420
420
  else:
421
421
  new_import = old_import
422
422
 
@@ -40,7 +40,7 @@ def fix_consolidated_imports():
40
40
  # Fix imports in the content
41
41
  content = content.replace(
42
42
  "from ncp_module.client import NCPClient, NCPAPIError",
43
- "from src.ic.platforms.ncp.client import NCPClient, NCPAPIError"
43
+ "from ic.platforms.ncp.client import NCPClient, NCPAPIError"
44
44
  )
45
45
 
46
46
  # Write to consolidated location
@@ -68,11 +68,11 @@ def fix_consolidated_imports():
68
68
  # Fix imports in the content
69
69
  content = content.replace(
70
70
  "from ncpgov_module.client import NCPGovClient, NCPAPIError",
71
- "from src.ic.platforms.ncpgov.client import NCPGovClient, NCPAPIError"
71
+ "from ic.platforms.ncpgov.client import NCPGovClient, NCPAPIError"
72
72
  )
73
73
  content = content.replace(
74
74
  "from ncp_module.client import NCPClient, NCPAPIError",
75
- "from src.ic.platforms.ncp.client import NCPClient, NCPAPIError"
75
+ "from ic.platforms.ncp.client import NCPClient, NCPAPIError"
76
76
  )
77
77
 
78
78
  # Write to consolidated location
@@ -61,7 +61,7 @@ class PostInstallCommand(install):
61
61
  """Run post-installation configuration setup."""
62
62
  try:
63
63
  # Import here to avoid import errors during setup
64
- from src.ic.config.installer import ConfigInstaller
64
+ from ic.config.installer import ConfigInstaller
65
65
 
66
66
  installer = ConfigInstaller()
67
67
 
@@ -0,0 +1,36 @@
1
+ """
2
+ IC (Infra Resource Management CLI) - A comprehensive tool for managing cloud infrastructure resources.
3
+
4
+ This package provides CLI tools and libraries for managing AWS, Azure, GCP, OCI, and CloudFlare resources.
5
+ """
6
+
7
+ __version__ = "2.0.0"
8
+ __author__ = "SangYun"
9
+ __email__ = "cruiser594@gmail.com"
10
+
11
+ # Core components
12
+ try:
13
+ from .core.mcp_manager import MCPManager, MCPQueryResult, create_default_mcp_config
14
+ from .config.security import SecurityManager
15
+ from .config.manager import ConfigManager
16
+ from .core.logging import ICLogger
17
+ from .core.session import AWSSessionManager
18
+ except ImportError:
19
+ from ic.core.mcp_manager import MCPManager, MCPQueryResult, create_default_mcp_config
20
+ from ic.config.security import SecurityManager
21
+ from ic.config.manager import ConfigManager
22
+ from ic.core.logging import ICLogger
23
+ from ic.core.session import AWSSessionManager
24
+
25
+ __all__ = [
26
+ "__version__",
27
+ "__author__",
28
+ "__email__",
29
+ "MCPManager",
30
+ "MCPQueryResult",
31
+ "create_default_mcp_config",
32
+ "SecurityManager",
33
+ "ConfigManager",
34
+ "ICLogger",
35
+ "AWSSessionManager"
36
+ ]
@@ -181,63 +181,128 @@ try:
181
181
  except ImportError:
182
182
  pass
183
183
  # AWS imports - Unified module structure
184
- from src.ic.platforms.aws.ec2 import list_tags as ec2_list_tags
185
- from src.ic.platforms.aws.ec2 import tag_check as ec2_tag_check
186
- from src.ic.platforms.aws.ec2 import info as ec2_info
187
- from src.ic.platforms.aws.lb import list_tags as lb_list_tags
188
- from src.ic.platforms.aws.lb import tag_check as lb_tag_check
189
- from src.ic.platforms.aws.vpc import tag_check as vpc_tag_check
190
- from src.ic.platforms.aws.vpc import list_tags as vpc_list_tags
191
- from src.ic.platforms.aws.rds import list_tags as rds_list_tags
192
- from src.ic.platforms.aws.rds import tag_check as rds_tag_check
193
- from src.ic.platforms.aws.s3 import list_tags as s3_list_tags
194
- from src.ic.platforms.aws.s3 import tag_check as s3_tag_check
195
- from src.ic.platforms.aws.sg import info as sg_info
196
- from src.ic.platforms.aws.eks import info as eks_info
197
- from src.ic.platforms.aws.eks import nodes as eks_nodes
198
- from src.ic.platforms.aws.eks import pods as eks_pods
199
- from src.ic.platforms.aws.eks import fargate as eks_fargate
200
- from src.ic.platforms.aws.eks import addons as eks_addons
201
- from src.ic.platforms.aws.eks import update_config as eks_update_config
202
- from src.ic.platforms.aws.fargate import info as fargate_info
203
- from src.ic.platforms.aws.codepipeline import build as codepipeline_build
204
- from src.ic.platforms.aws.codepipeline import deploy as codepipeline_deploy
205
- from src.ic.platforms.aws.ecs import info as ecs_info
206
- from src.ic.platforms.aws.ecs import service as ecs_service
207
- from src.ic.platforms.aws.ecs import task as ecs_task
208
- from src.ic.platforms.aws.msk import info as msk_info
209
- from src.ic.platforms.aws.msk import broker as msk_broker
210
- from src.ic.platforms.aws.profile.info import ProfileInfoCollector, ProfileTableRenderer
211
- from src.ic.platforms.aws.cloudfront.info import CloudFrontCollector, CloudFrontRenderer
184
+ try:
185
+ from .platforms.aws.ec2 import list_tags as ec2_list_tags
186
+ from .platforms.aws.ec2 import tag_check as ec2_tag_check
187
+ from .platforms.aws.ec2 import info as ec2_info
188
+ from .platforms.aws.lb import list_tags as lb_list_tags
189
+ from .platforms.aws.lb import tag_check as lb_tag_check
190
+ from .platforms.aws.vpc import tag_check as vpc_tag_check
191
+ from .platforms.aws.vpc import list_tags as vpc_list_tags
192
+ from .platforms.aws.rds import list_tags as rds_list_tags
193
+ from .platforms.aws.rds import tag_check as rds_tag_check
194
+ from .platforms.aws.s3 import list_tags as s3_list_tags
195
+ from .platforms.aws.s3 import tag_check as s3_tag_check
196
+ from .platforms.aws.sg import info as sg_info
197
+ from .platforms.aws.eks import info as eks_info
198
+ from .platforms.aws.eks import nodes as eks_nodes
199
+ from .platforms.aws.eks import pods as eks_pods
200
+ from .platforms.aws.eks import fargate as eks_fargate
201
+ from .platforms.aws.eks import addons as eks_addons
202
+ from .platforms.aws.eks import update_config as eks_update_config
203
+ from .platforms.aws.fargate import info as fargate_info
204
+ from .platforms.aws.codepipeline import build as codepipeline_build
205
+ from .platforms.aws.codepipeline import deploy as codepipeline_deploy
206
+ from .platforms.aws.ecs import info as ecs_info
207
+ from .platforms.aws.ecs import service as ecs_service
208
+ from .platforms.aws.ecs import task as ecs_task
209
+ from .platforms.aws.msk import info as msk_info
210
+ from .platforms.aws.msk import broker as msk_broker
211
+ from .platforms.aws.profile.info import ProfileInfoCollector, ProfileTableRenderer
212
+ from .platforms.aws.cloudfront.info import CloudFrontCollector, CloudFrontRenderer
213
+ except ImportError:
214
+ # Fallback for installed package
215
+ from ic.platforms.aws.ec2 import list_tags as ec2_list_tags
216
+ from ic.platforms.aws.ec2 import tag_check as ec2_tag_check
217
+ from ic.platforms.aws.ec2 import info as ec2_info
218
+ from ic.platforms.aws.lb import list_tags as lb_list_tags
219
+ from ic.platforms.aws.lb import tag_check as lb_tag_check
220
+ from ic.platforms.aws.vpc import tag_check as vpc_tag_check
221
+ from ic.platforms.aws.vpc import list_tags as vpc_list_tags
222
+ from ic.platforms.aws.rds import list_tags as rds_list_tags
223
+ from ic.platforms.aws.rds import tag_check as rds_tag_check
224
+ from ic.platforms.aws.s3 import list_tags as s3_list_tags
225
+ from ic.platforms.aws.s3 import tag_check as s3_tag_check
226
+ from ic.platforms.aws.sg import info as sg_info
227
+ from ic.platforms.aws.eks import info as eks_info
228
+ from ic.platforms.aws.eks import nodes as eks_nodes
229
+ from ic.platforms.aws.eks import pods as eks_pods
230
+ from ic.platforms.aws.eks import fargate as eks_fargate
231
+ from ic.platforms.aws.eks import addons as eks_addons
232
+ from ic.platforms.aws.eks import update_config as eks_update_config
233
+ from ic.platforms.aws.fargate import info as fargate_info
234
+ from ic.platforms.aws.codepipeline import build as codepipeline_build
235
+ from ic.platforms.aws.codepipeline import deploy as codepipeline_deploy
236
+ from ic.platforms.aws.ecs import info as ecs_info
237
+ from ic.platforms.aws.ecs import service as ecs_service
238
+ from ic.platforms.aws.ecs import task as ecs_task
239
+ from ic.platforms.aws.msk import info as msk_info
240
+ from ic.platforms.aws.msk import broker as msk_broker
241
+ from ic.platforms.aws.profile.info import ProfileInfoCollector, ProfileTableRenderer
242
+ from ic.platforms.aws.cloudfront.info import CloudFrontCollector, CloudFrontRenderer
212
243
  # CloudFlare imports - Unified module structure
213
- from src.ic.platforms.cloudflare.dns import list_info as dns_info
244
+ try:
245
+ from .platforms.cloudflare.dns import list_info as dns_info
246
+ except ImportError:
247
+ from ic.platforms.cloudflare.dns import list_info as dns_info
214
248
  # OCI imports - Unified module structure
215
- from src.ic.platforms.oci.info import oci_info as oci_info # Deprecated. 통합 oci info
216
- from src.ic.platforms.oci.vm import add_arguments as vm_add_args, main as vm_main
217
- from src.ic.platforms.oci.lb import add_arguments as lb_add_args, main as lb_main
218
- from src.ic.platforms.oci.nsg import add_arguments as nsg_add_args, main as nsg_main
219
- from src.ic.platforms.oci.volume import add_arguments as volume_add_args, main as volume_main
220
- from src.ic.platforms.oci.policy import add_arguments as policy_add_args, main as policy_main
221
- from src.ic.platforms.oci.policy import search as oci_policy_search
222
- from src.ic.platforms.oci.obj import add_arguments as obj_add_args, main as obj_main
223
- from src.ic.platforms.oci.cost.usage import add_arguments as cost_usage_add_args, main as cost_usage_main
224
- from src.ic.platforms.oci.cost.credit import add_arguments as cost_credit_add_args, main as cost_credit_main
225
- from src.ic.platforms.oci.vcn import info as vcn_info
226
- from src.ic.platforms.oci.compartment.info import CompartmentTreeBuilder, CompartmentTreeRenderer
249
+ try:
250
+ from .platforms.oci.info import oci_info as oci_info # Deprecated. 통합 oci info
251
+ from .platforms.oci.vm import add_arguments as vm_add_args, main as vm_main
252
+ from .platforms.oci.lb import add_arguments as lb_add_args, main as lb_main
253
+ from .platforms.oci.nsg import add_arguments as nsg_add_args, main as nsg_main
254
+ from .platforms.oci.volume import add_arguments as volume_add_args, main as volume_main
255
+ from .platforms.oci.policy import add_arguments as policy_add_args, main as policy_main
256
+ from .platforms.oci.policy import search as oci_policy_search
257
+ from .platforms.oci.obj import add_arguments as obj_add_args, main as obj_main
258
+ from .platforms.oci.cost.usage import add_arguments as cost_usage_add_args, main as cost_usage_main
259
+ from .platforms.oci.cost.credit import add_arguments as cost_credit_add_args, main as cost_credit_main
260
+ from .platforms.oci.vcn import info as vcn_info
261
+ from .platforms.oci.compartment.info import CompartmentTreeBuilder, CompartmentTreeRenderer
262
+ except ImportError:
263
+ from ic.platforms.oci.info import oci_info as oci_info # Deprecated. 통합 oci info
264
+ from ic.platforms.oci.vm import add_arguments as vm_add_args, main as vm_main
265
+ from ic.platforms.oci.lb import add_arguments as lb_add_args, main as lb_main
266
+ from ic.platforms.oci.nsg import add_arguments as nsg_add_args, main as nsg_main
267
+ from ic.platforms.oci.volume import add_arguments as volume_add_args, main as volume_main
268
+ from ic.platforms.oci.policy import add_arguments as policy_add_args, main as policy_main
269
+ from ic.platforms.oci.policy import search as oci_policy_search
270
+ from ic.platforms.oci.obj import add_arguments as obj_add_args, main as obj_main
271
+ from ic.platforms.oci.cost.usage import add_arguments as cost_usage_add_args, main as cost_usage_main
272
+ from ic.platforms.oci.cost.credit import add_arguments as cost_credit_add_args, main as cost_credit_main
273
+ from ic.platforms.oci.vcn import info as vcn_info
274
+ from ic.platforms.oci.compartment.info import CompartmentTreeBuilder, CompartmentTreeRenderer
227
275
  # SSH imports - Unified module structure
228
- from src.ic.platforms.ssh import auto_ssh, server_info
276
+ try:
277
+ from .platforms.ssh import auto_ssh, server_info
278
+ except ImportError:
279
+ from ic.platforms.ssh import auto_ssh, server_info
229
280
  # NCP imports - Unified module structure
230
- from src.ic.platforms.ncp.ec2 import info as ncp_ec2_info
231
- from src.ic.platforms.ncp.s3 import info as ncp_s3_info
232
- from src.ic.platforms.ncp.vpc import info as ncp_vpc_info
233
- from src.ic.platforms.ncp.sg import info as ncp_sg_info
234
- from src.ic.platforms.ncp.rds import info as ncp_rds_info
281
+ try:
282
+ from .platforms.ncp.ec2 import info as ncp_ec2_info
283
+ from .platforms.ncp.s3 import info as ncp_s3_info
284
+ from .platforms.ncp.vpc import info as ncp_vpc_info
285
+ from .platforms.ncp.sg import info as ncp_sg_info
286
+ from .platforms.ncp.rds import info as ncp_rds_info
287
+ except ImportError:
288
+ from ic.platforms.ncp.ec2 import info as ncp_ec2_info
289
+ from ic.platforms.ncp.s3 import info as ncp_s3_info
290
+ from ic.platforms.ncp.vpc import info as ncp_vpc_info
291
+ from ic.platforms.ncp.sg import info as ncp_sg_info
292
+ from ic.platforms.ncp.rds import info as ncp_rds_info
235
293
  # NCP Gov imports - Unified module structure
236
- from src.ic.platforms.ncpgov.ec2 import info as ncpgov_ec2_info
237
- from src.ic.platforms.ncpgov.s3 import info as ncpgov_s3_info
238
- from src.ic.platforms.ncpgov.vpc import info as ncpgov_vpc_info
239
- from src.ic.platforms.ncpgov.sg import info as ncpgov_sg_info
240
- from src.ic.platforms.ncpgov.rds import info as ncpgov_rds_info
294
+ try:
295
+ from .platforms.ncpgov.ec2 import info as ncpgov_ec2_info
296
+ from .platforms.ncpgov.s3 import info as ncpgov_s3_info
297
+ from .platforms.ncpgov.vpc import info as ncpgov_vpc_info
298
+ from .platforms.ncpgov.sg import info as ncpgov_sg_info
299
+ from .platforms.ncpgov.rds import info as ncpgov_rds_info
300
+ except ImportError:
301
+ from ic.platforms.ncpgov.ec2 import info as ncpgov_ec2_info
302
+ from ic.platforms.ncpgov.s3 import info as ncpgov_s3_info
303
+ from ic.platforms.ncpgov.vpc import info as ncpgov_vpc_info
304
+ from ic.platforms.ncpgov.sg import info as ncpgov_sg_info
305
+ from ic.platforms.ncpgov.rds import info as ncpgov_rds_info
241
306
  import concurrent.futures
242
307
  from threading import Lock
243
308
 
@@ -516,7 +581,10 @@ def main():
516
581
  lb_check_parser.set_defaults(func=lb_tag_check.main)
517
582
 
518
583
  lb_info_parser = lb_subparsers.add_parser("info", help="LB 상세 정보 조회")
519
- from src.ic.platforms.aws.lb import info as lb_info
584
+ try:
585
+ from .platforms.aws.lb import info as lb_info
586
+ except ImportError:
587
+ from ic.platforms.aws.lb import info as lb_info
520
588
  lb_info.add_arguments(lb_info_parser)
521
589
  lb_info_parser.set_defaults(func=lb_info.main)
522
590
 
@@ -530,14 +598,20 @@ def main():
530
598
  vpc_list_parser.set_defaults(func=vpc_list_tags.main)
531
599
 
532
600
  vpc_info_parser = vpc_subparsers.add_parser("info", help="VPC 상세 정보 조회")
533
- from src.ic.platforms.aws.vpc import info as vpc_info
601
+ try:
602
+ from .platforms.aws.vpc import info as vpc_info
603
+ except ImportError:
604
+ from ic.platforms.aws.vpc import info as vpc_info
534
605
  vpc_info.add_arguments(vpc_info_parser)
535
606
  vpc_info_parser.set_defaults(func=vpc_info.main)
536
607
 
537
608
  vpn_parser = aws_subparsers.add_parser("vpn", help="TGW, VGW, VPN Connection, Endpoint 관련 명령어")
538
609
  vpn_subparsers = vpn_parser.add_subparsers(dest="command", required=True)
539
610
  vpn_info_parser = vpn_subparsers.add_parser("info", help="VPN 관련 상세 정보 조회")
540
- from src.ic.platforms.aws.vpn import info as vpn_info
611
+ try:
612
+ from .platforms.aws.vpn import info as vpn_info
613
+ except ImportError:
614
+ from ic.platforms.aws.vpn import info as vpn_info
541
615
  vpn_info.add_arguments(vpn_info_parser)
542
616
  vpn_info_parser.set_defaults(func=vpn_info.main)
543
617
 
@@ -552,7 +626,10 @@ def main():
552
626
  rds_check_cmd.set_defaults(func=rds_tag_check.main)
553
627
 
554
628
  rds_info_parser = rds_subparsers.add_parser("info", help="RDS 상세 정보 조회")
555
- from src.ic.platforms.aws.rds import info as rds_info
629
+ try:
630
+ from .platforms.aws.rds import info as rds_info
631
+ except ImportError:
632
+ from ic.platforms.aws.rds import info as rds_info
556
633
  rds_info.add_arguments(rds_info_parser)
557
634
  rds_info_parser.set_defaults(func=rds_info.main)
558
635
 
@@ -566,7 +643,10 @@ def main():
566
643
  s3_check_cmd.set_defaults(func=s3_tag_check.main)
567
644
 
568
645
  s3_info_parser = s3_subparsers.add_parser("info", help="S3 상세 정보 조회")
569
- from src.ic.platforms.aws.s3 import info as s3_info
646
+ try:
647
+ from .platforms.aws.s3 import info as s3_info
648
+ except ImportError:
649
+ from ic.platforms.aws.s3 import info as s3_info
570
650
  s3_info.add_arguments(s3_info_parser)
571
651
  s3_info_parser.set_defaults(func=s3_info.main)
572
652
 
@@ -15,7 +15,10 @@ try:
15
15
  except ImportError:
16
16
  # Handle case when run directly
17
17
  sys.path.insert(0, str(Path(__file__).parent.parent.parent))
18
- from src.ic.migration import MigrationManager
18
+ try:
19
+ from .migration import MigrationManager
20
+ except ImportError:
21
+ from ic.migration import MigrationManager
19
22
 
20
23
 
21
24
  class MigrationCommands:
@@ -11,7 +11,10 @@ Components:
11
11
  - MigrationManager: Unified interface for managing the complete migration process
12
12
 
13
13
  Usage:
14
- from src.ic.migration import MigrationManager
14
+ try:
15
+ from .migration import MigrationManager
16
+ except ImportError:
17
+ from ic.migration import MigrationManager
15
18
 
16
19
  manager = MigrationManager()
17
20
 
@@ -527,7 +527,10 @@ class PostMigrationValidator:
527
527
  "name": "NCP Config Loading",
528
528
  "test_code": """
529
529
  try:
530
- from src.ic.platforms.ncp.client import NCPClient
530
+ try:
531
+ from .platforms.ncp.client import NCPClient
532
+ except ImportError:
533
+ from ic.platforms.ncp.client import NCPClient
531
534
  client = NCPClient()
532
535
  result = {"success": True, "message": "NCP client initialized successfully"}
533
536
  except Exception as e:
@@ -541,7 +544,10 @@ print(result)
541
544
  "name": "NCPGOV Config Loading",
542
545
  "test_code": """
543
546
  try:
544
- from src.ic.platforms.ncpgov.client import NCPGovClient
547
+ try:
548
+ from .platforms.ncpgov.client import NCPGovClient
549
+ except ImportError:
550
+ from ic.platforms.ncpgov.client import NCPGovClient
545
551
  client = NCPGovClient()
546
552
  result = {"success": True, "message": "NCPGOV client initialized successfully"}
547
553
  except Exception as e:
@@ -555,11 +561,26 @@ print(result)
555
561
  "name": "NCP Module Imports",
556
562
  "test_code": """
557
563
  try:
558
- from src.ic.platforms.ncp.ec2 import info as ncp_ec2_info
559
- from src.ic.platforms.ncp.s3 import info as ncp_s3_info
560
- from src.ic.platforms.ncp.vpc import info as ncp_vpc_info
561
- from src.ic.platforms.ncp.sg import info as ncp_sg_info
562
- from src.ic.platforms.ncp.rds import info as ncp_rds_info
564
+ try:
565
+ from .platforms.ncp.ec2 import info as ncp_ec2_info
566
+ except ImportError:
567
+ from ic.platforms.ncp.ec2 import info as ncp_ec2_info
568
+ try:
569
+ from .platforms.ncp.s3 import info as ncp_s3_info
570
+ except ImportError:
571
+ from ic.platforms.ncp.s3 import info as ncp_s3_info
572
+ try:
573
+ from .platforms.ncp.vpc import info as ncp_vpc_info
574
+ except ImportError:
575
+ from ic.platforms.ncp.vpc import info as ncp_vpc_info
576
+ try:
577
+ from .platforms.ncp.sg import info as ncp_sg_info
578
+ except ImportError:
579
+ from ic.platforms.ncp.sg import info as ncp_sg_info
580
+ try:
581
+ from .platforms.ncp.rds import info as ncp_rds_info
582
+ except ImportError:
583
+ from ic.platforms.ncp.rds import info as ncp_rds_info
563
584
  result = {"success": True, "message": "All NCP modules imported successfully"}
564
585
  except Exception as e:
565
586
  result = {"success": False, "message": f"NCP module import failed: {e}"}
@@ -572,11 +593,26 @@ print(result)
572
593
  "name": "NCPGOV Module Imports",
573
594
  "test_code": """
574
595
  try:
575
- from src.ic.platforms.ncpgov.ec2 import info as ncpgov_ec2_info
576
- from src.ic.platforms.ncpgov.s3 import info as ncpgov_s3_info
577
- from src.ic.platforms.ncpgov.vpc import info as ncpgov_vpc_info
578
- from src.ic.platforms.ncpgov.sg import info as ncpgov_sg_info
579
- from src.ic.platforms.ncpgov.rds import info as ncpgov_rds_info
596
+ try:
597
+ from .platforms.ncpgov.ec2 import info as ncpgov_ec2_info
598
+ except ImportError:
599
+ from ic.platforms.ncpgov.ec2 import info as ncpgov_ec2_info
600
+ try:
601
+ from .platforms.ncpgov.s3 import info as ncpgov_s3_info
602
+ except ImportError:
603
+ from ic.platforms.ncpgov.s3 import info as ncpgov_s3_info
604
+ try:
605
+ from .platforms.ncpgov.vpc import info as ncpgov_vpc_info
606
+ except ImportError:
607
+ from ic.platforms.ncpgov.vpc import info as ncpgov_vpc_info
608
+ try:
609
+ from .platforms.ncpgov.sg import info as ncpgov_sg_info
610
+ except ImportError:
611
+ from ic.platforms.ncpgov.sg import info as ncpgov_sg_info
612
+ try:
613
+ from .platforms.ncpgov.rds import info as ncpgov_rds_info
614
+ except ImportError:
615
+ from ic.platforms.ncpgov.rds import info as ncpgov_rds_info
580
616
  result = {"success": True, "message": "All NCPGOV modules imported successfully"}
581
617
  except Exception as e:
582
618
  result = {"success": False, "message": f"NCPGOV module import failed: {e}"}
@@ -685,7 +721,10 @@ print(result)
685
721
  "expected_failure": False,
686
722
  "test_code": """
687
723
  try:
688
- from src.ic.platforms.ncp.ec2 import info
724
+ try:
725
+ from .platforms.ncp.ec2 import info
726
+ except ImportError:
727
+ from ic.platforms.ncp.ec2 import info
689
728
  result = {"success": True, "message": "New import paths work correctly"}
690
729
  except Exception as e:
691
730
  result = {"success": False, "message": f"New import failed: {e}"}
@@ -30,7 +30,10 @@ from common.ncp_utils import (
30
30
  load_ncp_config, handle_ncp_api_error, apply_status_color,
31
31
  filter_resources_by_name, validate_platform_support
32
32
  )
33
- from src.ic.platforms.ncp.client import NCPClient, NCPAPIError
33
+ try:
34
+ from .platforms.ncp.client import NCPClient, NCPAPIError
35
+ except ImportError:
36
+ from ic.platforms.ncp.client import NCPClient, NCPAPIError
34
37
 
35
38
  logger = logging.getLogger(__name__)
36
39
  console = Console()
@@ -31,7 +31,10 @@ from common.ncp_utils import (
31
31
  load_ncp_config, handle_ncp_api_error, apply_status_color,
32
32
  filter_resources_by_name, validate_platform_support
33
33
  )
34
- from src.ic.platforms.ncp.client import NCPClient, NCPAPIError
34
+ try:
35
+ from .platforms.ncp.client import NCPClient, NCPAPIError
36
+ except ImportError:
37
+ from ic.platforms.ncp.client import NCPClient, NCPAPIError
35
38
 
36
39
  logger = logging.getLogger(__name__)
37
40
  console = Console()
@@ -30,7 +30,10 @@ from common.ncp_utils import (
30
30
  load_ncp_config, handle_ncp_api_error, apply_status_color,
31
31
  filter_resources_by_name, format_bytes
32
32
  )
33
- from src.ic.platforms.ncp.client import NCPClient, NCPAPIError
33
+ try:
34
+ from .platforms.ncp.client import NCPClient, NCPAPIError
35
+ except ImportError:
36
+ from ic.platforms.ncp.client import NCPClient, NCPAPIError
34
37
 
35
38
  logger = logging.getLogger(__name__)
36
39
  console = Console()
@@ -31,7 +31,10 @@ from common.ncp_utils import (
31
31
  load_ncp_config, handle_ncp_api_error, apply_status_color,
32
32
  filter_resources_by_name, validate_platform_support
33
33
  )
34
- from src.ic.platforms.ncp.client import NCPClient, NCPAPIError
34
+ try:
35
+ from .platforms.ncp.client import NCPClient, NCPAPIError
36
+ except ImportError:
37
+ from ic.platforms.ncp.client import NCPClient, NCPAPIError
35
38
 
36
39
  logger = logging.getLogger(__name__)
37
40
  console = Console()
@@ -30,7 +30,10 @@ from common.ncp_utils import (
30
30
  load_ncp_config, handle_ncp_api_error, apply_status_color,
31
31
  filter_resources_by_name, validate_platform_support
32
32
  )
33
- from src.ic.platforms.ncp.client import NCPClient, NCPAPIError
33
+ try:
34
+ from .platforms.ncp.client import NCPClient, NCPAPIError
35
+ except ImportError:
36
+ from ic.platforms.ncp.client import NCPClient, NCPAPIError
34
37
 
35
38
  logger = logging.getLogger(__name__)
36
39
  console = Console()
@@ -31,9 +31,15 @@ from common.ncpgov_utils import (
31
31
  load_ncpgov_config, handle_ncpgov_api_error, mask_sensitive_data,
32
32
  validate_gov_compliance, log_audit_event, validate_api_response_security
33
33
  )
34
- from src.ic.platforms.ncp.ec2.info import NCPInstance, format_memory_size, format_instance_type
34
+ try:
35
+ from .platforms.ncp.ec2.info import NCPInstance, format_memory_size, format_instance_type
36
+ except ImportError:
37
+ from ic.platforms.ncp.ec2.info import NCPInstance, format_memory_size, format_instance_type
35
38
  from common.ncp_utils import apply_status_color
36
- from src.ic.platforms.ncpgov.client import NCPGovClient, NCPGovAPIError
39
+ try:
40
+ from .platforms.ncpgov.client import NCPGovClient, NCPGovAPIError
41
+ except ImportError:
42
+ from ic.platforms.ncpgov.client import NCPGovClient, NCPGovAPIError
37
43
 
38
44
  logger = get_logger()
39
45
  console = Console()
@@ -32,7 +32,10 @@ from common.ncpgov_utils import (
32
32
  validate_gov_compliance, log_audit_event, validate_api_response_security
33
33
  )
34
34
  from common.ncp_utils import apply_status_color
35
- from src.ic.platforms.ncpgov.client import NCPGovClient, NCPGovAPIError
35
+ try:
36
+ from .platforms.ncpgov.client import NCPGovClient, NCPGovAPIError
37
+ except ImportError:
38
+ from ic.platforms.ncpgov.client import NCPGovClient, NCPGovAPIError
36
39
 
37
40
  logger = logging.getLogger(__name__)
38
41
  console = Console()
@@ -31,9 +31,15 @@ from common.ncpgov_utils import (
31
31
  load_ncpgov_config, handle_ncpgov_api_error, mask_sensitive_data,
32
32
  validate_gov_compliance, log_audit_event, validate_api_response_security
33
33
  )
34
- from src.ic.platforms.ncp.s3.info import format_bucket_size
34
+ try:
35
+ from .platforms.ncp.s3.info import format_bucket_size
36
+ except ImportError:
37
+ from ic.platforms.ncp.s3.info import format_bucket_size
35
38
  from common.ncp_utils import apply_status_color
36
- from src.ic.platforms.ncpgov.client import NCPGovClient, NCPGovAPIError
39
+ try:
40
+ from .platforms.ncpgov.client import NCPGovClient, NCPGovAPIError
41
+ except ImportError:
42
+ from ic.platforms.ncpgov.client import NCPGovClient, NCPGovAPIError
37
43
 
38
44
  logger = get_logger()
39
45
  console = Console()