openshift-python-wrapper 11.0.88__tar.gz → 11.0.89__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 (440) hide show
  1. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/PKG-INFO +1 -1
  2. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/cli.py +136 -39
  3. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/core/discovery.py +1 -1
  4. openshift_python_wrapper-11.0.89/class_generator/core/schema.py +1614 -0
  5. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/schema/__resources-mappings.json.gz +0 -0
  6. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/schema/_definitions.json +37 -0
  7. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/manifests/test_parse_explain.j2 +21 -15
  8. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/test_class_generator.py +21 -17
  9. openshift_python_wrapper-11.0.89/class_generator/tests/test_schema_new_functions.py +1380 -0
  10. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/utils.py +187 -1
  11. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/datavolume.py +117 -85
  12. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/pyproject.toml +1 -6
  13. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/uv.lock +1 -1
  14. openshift_python_wrapper-11.0.88/class_generator/core/schema.py +0 -1041
  15. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/.coderabbit.yaml +0 -0
  16. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/.dockerignore +0 -0
  17. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/.flake8 +0 -0
  18. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/.gitattributes +0 -0
  19. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  20. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  21. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/.github/pull_request_template.md +0 -0
  22. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/.github/weekly-digest.yml +0 -0
  23. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/.github/workflows/close-stale-issues.yml +0 -0
  24. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/.github/workflows/code-check.yml.old +0 -0
  25. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/.gitignore +0 -0
  26. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/.gitleaks.toml +0 -0
  27. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/.pre-commit-config.yaml +0 -0
  28. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/.readthedocs.yaml +0 -0
  29. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/.release-it.json +0 -0
  30. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/.sonarcloud.properties +0 -0
  31. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/CONTRIBUTING.md +0 -0
  32. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/LICENSE +0 -0
  33. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/Makefile +0 -0
  34. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/OWNERS +0 -0
  35. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/README.md +0 -0
  36. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/VERSION +0 -0
  37. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/README.md +0 -0
  38. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/__init__.py +0 -0
  39. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/constants.py +0 -0
  40. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/core/__init__.py +0 -0
  41. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/core/coverage.py +0 -0
  42. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/core/generator.py +0 -0
  43. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/formatters/__init__.py +0 -0
  44. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/formatters/file_writer.py +0 -0
  45. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/formatters/template_renderer.py +0 -0
  46. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/manifests/class_generator_template.j2 +0 -0
  47. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/parsers/__init__.py +0 -0
  48. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/parsers/explain_parser.py +0 -0
  49. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/parsers/type_parser.py +0 -0
  50. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/parsers/user_code_parser.py +0 -0
  51. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/py.typed +0 -0
  52. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/schema/__cluster_version__.txt +0 -0
  53. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/manifests/APIServer/api_server.py +0 -0
  54. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/manifests/ClusterOperator/cluster_operator.py +0 -0
  55. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/manifests/ConfigMap/config_map.py +0 -0
  56. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/manifests/DNS/dns_config_openshift_io.py +0 -0
  57. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/manifests/DNS/dns_operator_openshift_io.py +0 -0
  58. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/manifests/Deployment/deployment.py +0 -0
  59. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/manifests/ImageContentSourcePolicy/image_content_source_policy.py +0 -0
  60. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/manifests/Machine/machine.py +0 -0
  61. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/manifests/NMState/nm_state.py +0 -0
  62. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/manifests/OAuth/oauth.py +0 -0
  63. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/manifests/Pipeline/pipeline.py +0 -0
  64. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/manifests/Pod/pod.py +0 -0
  65. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/manifests/RouteAdvertisements/route_advertisements.py +0 -0
  66. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/manifests/Secret/secret.py +0 -0
  67. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/manifests/ServiceMeshMember/service_mesh_member.py +0 -0
  68. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/manifests/ServingRuntime/serving_runtime.py +0 -0
  69. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/test_batch_regeneration.py +0 -0
  70. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/test_cli.py +0 -0
  71. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/test_generation.py +0 -0
  72. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/test_resource_discovery.py +0 -0
  73. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/test_schema_parsing.py +0 -0
  74. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/test_user_code_parser.py +0 -0
  75. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/class_generator/tests/test_utils.py +0 -0
  76. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/docs/Makefile +0 -0
  77. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/docs/conf.py +0 -0
  78. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/docs/index.rst +0 -0
  79. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/docs/modules.rst +0 -0
  80. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/docs/ocp_resources.rst +0 -0
  81. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/examples/general.py +0 -0
  82. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/examples/node_network_configuration_policy.py +0 -0
  83. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/examples/pods.py +0 -0
  84. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/examples/resource_list.py +0 -0
  85. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/examples/role.py +0 -0
  86. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/examples/special_cases.py +0 -0
  87. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/examples/validation_demo.py +0 -0
  88. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/examples/validation_troubleshooting.py +0 -0
  89. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/examples/virtual_machine.py +0 -0
  90. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/fake_kubernetes_client/README.md +0 -0
  91. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/fake_kubernetes_client/__init__.py +0 -0
  92. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/fake_kubernetes_client/configuration.py +0 -0
  93. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/fake_kubernetes_client/dynamic_client.py +0 -0
  94. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/fake_kubernetes_client/exceptions.py +0 -0
  95. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/fake_kubernetes_client/kubernetes_client.py +0 -0
  96. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/fake_kubernetes_client/resource_field.py +0 -0
  97. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/fake_kubernetes_client/resource_instance.py +0 -0
  98. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/fake_kubernetes_client/resource_manager.py +0 -0
  99. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/fake_kubernetes_client/resource_registry.py +0 -0
  100. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/fake_kubernetes_client/resource_storage.py +0 -0
  101. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/fake_kubernetes_client/status_schema_parser.py +0 -0
  102. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/fake_kubernetes_client/status_templates.py +0 -0
  103. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/fake_kubernetes_client/types.py +0 -0
  104. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/mcp_server/README.md +0 -0
  105. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/mcp_server/__init__.py +0 -0
  106. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/mcp_server/example_client.py +0 -0
  107. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/mcp_server/server-info.json +0 -0
  108. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/mcp_server/server.py +0 -0
  109. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/mcp_server/tests/__init__.py +0 -0
  110. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/mcp_server/tests/test_server.py +0 -0
  111. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/__init__.py +0 -0
  112. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/aaq.py +0 -0
  113. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/api_server.py +0 -0
  114. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/api_service.py +0 -0
  115. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/application_aware_applied_cluster_resource_quota.py +0 -0
  116. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/application_aware_cluster_resource_quota.py +0 -0
  117. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/application_aware_resource_quota.py +0 -0
  118. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/authorino.py +0 -0
  119. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/backup.py +0 -0
  120. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/benchmark.py +0 -0
  121. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/catalog_source.py +0 -0
  122. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/cdi.py +0 -0
  123. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/cdi_config.py +0 -0
  124. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/chaos_engine.py +0 -0
  125. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/chaos_result.py +0 -0
  126. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/cluster_claim.py +0 -0
  127. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/cluster_deployment.py +0 -0
  128. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/cluster_operator.py +0 -0
  129. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/cluster_pool.py +0 -0
  130. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/cluster_resource_quota.py +0 -0
  131. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/cluster_role.py +0 -0
  132. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/cluster_role_binding.py +0 -0
  133. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/cluster_service_version.py +0 -0
  134. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/cluster_user_defined_network.py +0 -0
  135. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/cluster_version.py +0 -0
  136. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/config_imageregistry_operator_openshift_io.py +0 -0
  137. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/config_map.py +0 -0
  138. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/config_operator_openshift_io.py +0 -0
  139. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/config_samples_operator_openshift_io.py +0 -0
  140. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/console_cli_download.py +0 -0
  141. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/console_config_openshift_io.py +0 -0
  142. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/console_operator_openshift_io.py +0 -0
  143. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/console_plugin.py +0 -0
  144. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/console_quick_start.py +0 -0
  145. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/controller_revision.py +0 -0
  146. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/cron_job.py +0 -0
  147. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/csi_driver.py +0 -0
  148. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/csi_storage_capacity.py +0 -0
  149. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/custom_resource_definition.py +0 -0
  150. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/daemonset.py +0 -0
  151. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/data_import_cron.py +0 -0
  152. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/data_science_cluster.py +0 -0
  153. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/data_source.py +0 -0
  154. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/deployment.py +0 -0
  155. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/destination_rule.py +0 -0
  156. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/direct_volume_migration.py +0 -0
  157. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/direct_volume_migration_progress.py +0 -0
  158. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/dns_config_openshift_io.py +0 -0
  159. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/dns_operator_openshift_io.py +0 -0
  160. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/dsc_initialization.py +0 -0
  161. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/endpoint_slice.py +0 -0
  162. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/endpoints.py +0 -0
  163. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/event.py +0 -0
  164. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/exceptions.py +0 -0
  165. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/fence_agent_remediation_templates.py +0 -0
  166. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/forklift_controller.py +0 -0
  167. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/frr_configuration.py +0 -0
  168. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/gateway.py +0 -0
  169. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/group.py +0 -0
  170. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/guardrails_orchestrator.py +0 -0
  171. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/hook.py +0 -0
  172. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/host.py +0 -0
  173. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/hostpath_provisioner.py +0 -0
  174. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/hyperconverged.py +0 -0
  175. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/image_caching_internal_knative_dev.py +0 -0
  176. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/image_config_openshift_io.py +0 -0
  177. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/image_content_source_policy.py +0 -0
  178. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/image_digest_mirror_set.py +0 -0
  179. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/image_image_openshift_io.py +0 -0
  180. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/image_stream.py +0 -0
  181. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/imagestreamtag.py +0 -0
  182. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/inference_graph.py +0 -0
  183. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/inference_service.py +0 -0
  184. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/infrastructure.py +0 -0
  185. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/ingress_controller.py +0 -0
  186. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/installplan.py +0 -0
  187. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/ip_address_pool.py +0 -0
  188. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/job.py +0 -0
  189. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/kube_descheduler.py +0 -0
  190. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/kubelet_config.py +0 -0
  191. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/kubevirt.py +0 -0
  192. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/l2_advertisement.py +0 -0
  193. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/lease.py +0 -0
  194. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/limit_range.py +0 -0
  195. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/llama_stack_distribution.py +0 -0
  196. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/lm_eval_job.py +0 -0
  197. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/machine.py +0 -0
  198. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/machine_config.py +0 -0
  199. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/machine_config_pool.py +0 -0
  200. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/machine_health_check.py +0 -0
  201. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/machine_set.py +0 -0
  202. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/managed_cluster.py +0 -0
  203. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/maria_db.py +0 -0
  204. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/mariadb_operator.py +0 -0
  205. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/metallb.py +0 -0
  206. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/mig_analytic.py +0 -0
  207. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/mig_cluster.py +0 -0
  208. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/mig_migration.py +0 -0
  209. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/mig_plan.py +0 -0
  210. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/migration.py +0 -0
  211. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/migration_policy.py +0 -0
  212. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/model_registry.py +0 -0
  213. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/model_registry_components_platform_opendatahub_io.py +0 -0
  214. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/model_registry_modelregistry_opendatahub_io.py +0 -0
  215. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/mtq.py +0 -0
  216. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/multi_cluster_hub.py +0 -0
  217. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/multi_cluster_observability.py +0 -0
  218. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/multi_network_policy.py +0 -0
  219. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/mutating_webhook_config.py +0 -0
  220. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/namespace.py +0 -0
  221. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/network_addons_config.py +0 -0
  222. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/network_attachment_definition.py +0 -0
  223. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/network_config_openshift_io.py +0 -0
  224. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/network_map.py +0 -0
  225. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/network_operator_openshift_io.py +0 -0
  226. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/network_policy.py +0 -0
  227. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/nm_state.py +0 -0
  228. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/node.py +0 -0
  229. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/node_config_openshift_io.py +0 -0
  230. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/node_health_check.py +0 -0
  231. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/node_maintenance.py +0 -0
  232. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/node_network_configuration_enactment.py +0 -0
  233. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/node_network_configuration_policy.py +0 -0
  234. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/node_network_configuration_policy_latest.py +0 -0
  235. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/node_network_state.py +0 -0
  236. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/notebook.py +0 -0
  237. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/oauth.py +0 -0
  238. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/ocs_initialization.py +0 -0
  239. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/operator.py +0 -0
  240. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/operator_condition.py +0 -0
  241. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/operator_group.py +0 -0
  242. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/operator_hub.py +0 -0
  243. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/operator_source.py +0 -0
  244. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/package_manifest.py +0 -0
  245. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/peer_authentication.py +0 -0
  246. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/performance_profile.py +0 -0
  247. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/persistent_volume.py +0 -0
  248. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/persistent_volume_claim.py +0 -0
  249. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/pipeline.py +0 -0
  250. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/pipeline_run.py +0 -0
  251. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/plan.py +0 -0
  252. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/pod.py +0 -0
  253. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/pod_disruption_budget.py +0 -0
  254. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/pod_metrics.py +0 -0
  255. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/priority_class.py +0 -0
  256. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/project_config_openshift_io.py +0 -0
  257. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/project_project_openshift_io.py +0 -0
  258. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/project_request.py +0 -0
  259. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/prometheus.py +0 -0
  260. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/prometheus_rule.py +0 -0
  261. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/provider.py +0 -0
  262. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/proxy.py +0 -0
  263. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/py.typed +0 -0
  264. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/reclaim_space_cron_job.py +0 -0
  265. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/reclaim_space_job.py +0 -0
  266. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/replica_set.py +0 -0
  267. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/resource.py +0 -0
  268. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/resource_quota.py +0 -0
  269. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/restore.py +0 -0
  270. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/rhmi.py +0 -0
  271. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/role.py +0 -0
  272. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/role_binding.py +0 -0
  273. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/route.py +0 -0
  274. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/route_advertisements.py +0 -0
  275. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/scaled_object.py +0 -0
  276. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/scheduler.py +0 -0
  277. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/sealed_secret.py +0 -0
  278. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/secret.py +0 -0
  279. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/security_context_constraints.py +0 -0
  280. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/self_node_remediation_templates.py +0 -0
  281. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/self_subject_review.py +0 -0
  282. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/service.py +0 -0
  283. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/service_account.py +0 -0
  284. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/service_mesh_control_plane.py +0 -0
  285. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/service_mesh_member.py +0 -0
  286. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/service_mesh_member_roll.py +0 -0
  287. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/service_monitor.py +0 -0
  288. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/service_serving_knative_dev.py +0 -0
  289. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/serving_runtime.py +0 -0
  290. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/snapshot.py +0 -0
  291. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/sriov_network.py +0 -0
  292. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/sriov_network_node_policy.py +0 -0
  293. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/sriov_network_node_state.py +0 -0
  294. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/ssp.py +0 -0
  295. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/storage_class.py +0 -0
  296. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/storage_cluster.py +0 -0
  297. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/storage_map.py +0 -0
  298. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/storage_profile.py +0 -0
  299. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/subscription.py +0 -0
  300. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/task.py +0 -0
  301. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/task_run.py +0 -0
  302. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/tekton_tasks.py +0 -0
  303. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/template.py +0 -0
  304. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/trustyai_service.py +0 -0
  305. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/upload_token_request.py +0 -0
  306. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/user.py +0 -0
  307. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/user_defined_network.py +0 -0
  308. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/utils/__init__.py +0 -0
  309. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/utils/archive_utils.py +0 -0
  310. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/utils/constants.py +0 -0
  311. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/utils/resource_constants.py +0 -0
  312. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/utils/schema_validator.py +0 -0
  313. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/utils/utils.py +0 -0
  314. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/validating_webhook_config.py +0 -0
  315. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/virtual_machine.py +0 -0
  316. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/virtual_machine_clone.py +0 -0
  317. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/virtual_machine_cluster_instancetype.py +0 -0
  318. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/virtual_machine_cluster_preference.py +0 -0
  319. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/virtual_machine_export.py +0 -0
  320. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/virtual_machine_import.py +0 -0
  321. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/virtual_machine_instance.py +0 -0
  322. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/virtual_machine_instance_migration.py +0 -0
  323. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/virtual_machine_instance_preset.py +0 -0
  324. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/virtual_machine_instance_replica_set.py +0 -0
  325. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/virtual_machine_instancetype.py +0 -0
  326. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/virtual_machine_migration_resource_quota.py +0 -0
  327. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/virtual_machine_preference.py +0 -0
  328. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/virtual_machine_restore.py +0 -0
  329. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/virtual_machine_snapshot.py +0 -0
  330. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/virtual_service.py +0 -0
  331. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/vm_import_config.py +0 -0
  332. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/volume_snapshot.py +0 -0
  333. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/ocp_resources/volume_snapshot_class.py +0 -0
  334. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/pypi-dist/.gitignore +0 -0
  335. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/renovate.json +0 -0
  336. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/scripts/__init__.py +0 -0
  337. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/scripts/diff-from-latest-release.sh +0 -0
  338. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/scripts/diff-from-tag.sh +0 -0
  339. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/scripts/generate_changelog.py +0 -0
  340. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/scripts/get-latest-release.sh +0 -0
  341. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/sonar-project.properties +0 -0
  342. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/__init__.py +0 -0
  343. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/conftest.py +0 -0
  344. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/fixtures/validation_schemas.py +0 -0
  345. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/manifests/vm.yaml +0 -0
  346. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/scripts/__init__.py +0 -0
  347. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/scripts/generate_pytest_test.py +0 -0
  348. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/scripts/validate_resources.py +0 -0
  349. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_api_group_order.py +0 -0
  350. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_camelcase_to_snake.py +0 -0
  351. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resource.py +0 -0
  352. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resource_validation.py +0 -0
  353. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_aaq.py +0 -0
  354. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_api_server.py +0 -0
  355. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_authorino.py +0 -0
  356. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_cdi.py +0 -0
  357. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_cdi_config.py +0 -0
  358. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_cluster_resource_quota.py +0 -0
  359. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_cluster_user_defined_network.py +0 -0
  360. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_config_map.py +0 -0
  361. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_console_config_openshift_io.py +0 -0
  362. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_console_operator_openshift_io.py +0 -0
  363. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_csi_driver.py +0 -0
  364. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_data_import_cron.py +0 -0
  365. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_data_science_cluster.py +0 -0
  366. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_deployment.py +0 -0
  367. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_direct_volume_migration.py +0 -0
  368. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_direct_volume_migration_progress.py +0 -0
  369. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_dns_config_openshift_io.py +0 -0
  370. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_dns_operator_openshift_io.py +0 -0
  371. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_dsc_initialization.py +0 -0
  372. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_group.py +0 -0
  373. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_guardrails_orchestrator.py +0 -0
  374. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_image_caching_internal_knative_dev.py +0 -0
  375. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_image_config_openshift_io.py +0 -0
  376. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_image_content_source_policy.py +0 -0
  377. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_image_image_openshift_io.py +0 -0
  378. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_inference_graph.py +0 -0
  379. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_kube_descheduler.py +0 -0
  380. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_kubelet_config.py +0 -0
  381. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_kubevirt.py +0 -0
  382. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_llama_stack_distribution.py +0 -0
  383. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_lm_eval_job.py +0 -0
  384. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_machine.py +0 -0
  385. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_maria_db.py +0 -0
  386. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_mariadb_operator.py +0 -0
  387. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_mig_analytic.py +0 -0
  388. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_mig_cluster.py +0 -0
  389. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_mig_migration.py +0 -0
  390. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_mig_plan.py +0 -0
  391. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_model_registry.py +0 -0
  392. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_model_registry_components_platform_opendatahub_io.py +0 -0
  393. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_model_registry_modelregistry_opendatahub_io.py +0 -0
  394. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_mtq.py +0 -0
  395. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_namespace.py +0 -0
  396. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_network_config_openshift_io.py +0 -0
  397. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_network_operator_openshift_io.py +0 -0
  398. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_nm_state.py +0 -0
  399. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_node.py +0 -0
  400. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_node_config_openshift_io.py +0 -0
  401. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_node_network_configuration_policy_latest.py +0 -0
  402. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_notebook.py +0 -0
  403. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_oauth.py +0 -0
  404. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_operator.py +0 -0
  405. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_pod.py +0 -0
  406. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_pod_metrics.py +0 -0
  407. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_project_config_openshift_io.py +0 -0
  408. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_project_project_openshift_io.py +0 -0
  409. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_project_request.py +0 -0
  410. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_prometheus.py +0 -0
  411. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_replica_set.py +0 -0
  412. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_scheduler.py +0 -0
  413. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_security_context_constraints.py +0 -0
  414. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_self_subject_review.py +0 -0
  415. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_service.py +0 -0
  416. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_service_mesh_member.py +0 -0
  417. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_service_serving_knative_dev.py +0 -0
  418. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_serving_runtime.py +0 -0
  419. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_snapshot.py +0 -0
  420. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_ssp.py +0 -0
  421. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_storage_cluster.py +0 -0
  422. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_user.py +0 -0
  423. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_user_defined_network.py +0 -0
  424. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_virtual_machine_cluster_instancetype.py +0 -0
  425. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_virtual_machine_cluster_preference.py +0 -0
  426. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_virtual_machine_export.py +0 -0
  427. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_virtual_machine_instance_migration.py +0 -0
  428. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_virtual_machine_instance_preset.py +0 -0
  429. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_virtual_machine_instance_replica_set.py +0 -0
  430. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_virtual_machine_instancetype.py +0 -0
  431. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_virtual_machine_preference.py +0 -0
  432. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_volume_snapshot.py +0 -0
  433. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_resources/test_volume_snapshot_class.py +0 -0
  434. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_schema_loading.py +0 -0
  435. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_unittests.py +0 -0
  436. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_validate_resources.py +0 -0
  437. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_validate_resources_script.py +0 -0
  438. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/test_validation_error.py +0 -0
  439. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tests/utils.py +0 -0
  440. {openshift_python_wrapper-11.0.88 → openshift_python_wrapper-11.0.89}/tox.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openshift-python-wrapper
3
- Version: 11.0.88
3
+ Version: 11.0.89
4
4
  Summary: Wrapper around https://github.com/kubernetes-client/python
5
5
  Project-URL: homepage, https://github.com/RedHatQE/openshift-python-wrapper
6
6
  Project-URL: documentation, https://openshift-python-wrapper.readthedocs.io/en/latest/
@@ -3,11 +3,12 @@
3
3
  import fnmatch
4
4
  import shutil
5
5
  import sys
6
- from concurrent.futures import Future, ThreadPoolExecutor, as_completed
7
6
  from datetime import datetime
8
7
  from pathlib import Path
9
8
  from typing import Any
10
9
 
10
+ import logging
11
+
11
12
  import cloup
12
13
  from cloup.constraints import If, IsSet, accept_none, require_one
13
14
  from simple_logger.logger import get_logger
@@ -18,6 +19,7 @@ from class_generator.core.discovery import discover_generated_resources
18
19
  from class_generator.core.generator import class_generator
19
20
  from class_generator.core.schema import update_kind_schema, ClusterVersionError
20
21
  from class_generator.tests.test_generation import generate_class_generator_tests
22
+ from class_generator.utils import execute_parallel_tasks
21
23
  from ocp_resources.utils.utils import convert_camel_case_to_snake_case
22
24
 
23
25
  LOGGER = get_logger(name=__name__)
@@ -56,7 +58,7 @@ def handle_schema_update(update_schema: bool, generate_missing: bool) -> bool:
56
58
  try:
57
59
  update_kind_schema()
58
60
  except (RuntimeError, IOError, ClusterVersionError) as e:
59
- LOGGER.error(f"Failed to update schema: {e}")
61
+ LOGGER.exception(f"Failed to update schema: {e}")
60
62
  sys.exit(1)
61
63
 
62
64
  # If only updating schema (not generating), exit
@@ -131,7 +133,7 @@ def handle_missing_resources_generation(
131
133
  if not dry_run:
132
134
  LOGGER.info(f"Generated {kind_to_generate}")
133
135
  except Exception as e:
134
- LOGGER.error(f"Failed to generate {kind_to_generate}: {e}")
136
+ LOGGER.exception(f"Failed to generate {kind_to_generate}: {e}")
135
137
 
136
138
 
137
139
  def create_backup_if_needed(target_file: Path, backup_dir: Path | None) -> None:
@@ -163,7 +165,7 @@ def handle_regenerate_all(
163
165
  regenerate_all: bool,
164
166
  backup: bool,
165
167
  dry_run: bool,
166
- filter: str | None,
168
+ filter_pattern: str | None,
167
169
  ) -> bool:
168
170
  """
169
171
  Handle regeneration of all generated resources.
@@ -172,7 +174,7 @@ def handle_regenerate_all(
172
174
  regenerate_all: Whether to regenerate all resources
173
175
  backup: Whether to create backups
174
176
  dry_run: Whether this is a dry run
175
- filter: Optional filter pattern for resource names
177
+ filter_pattern: Optional filter pattern for resource names
176
178
 
177
179
  Returns:
178
180
  True if regeneration was performed and main should exit, False to continue
@@ -197,13 +199,13 @@ def handle_regenerate_all(
197
199
  LOGGER.info(f"Found {len(discovered)} generated resources")
198
200
 
199
201
  # Filter resources if pattern provided
200
- if filter:
202
+ if filter_pattern:
201
203
  filtered = []
202
204
  for resource in discovered:
203
- if fnmatch.fnmatch(resource["kind"], filter):
205
+ if fnmatch.fnmatch(resource["kind"], filter_pattern):
204
206
  filtered.append(resource)
205
207
  discovered = filtered
206
- LOGGER.info(f"Filtered to {len(discovered)} resources matching '{filter}'")
208
+ LOGGER.info(f"Filtered to {len(discovered)} resources matching '{filter_pattern}'")
207
209
 
208
210
  # Regenerate each resource
209
211
  success_count = 0
@@ -245,23 +247,34 @@ def handle_regenerate_all(
245
247
  LOGGER.warning(f"Skipped {resource_kind}: Not found in schema mapping")
246
248
  return resource_kind, False, "Not found in schema mapping"
247
249
  except Exception as e:
248
- LOGGER.error(f"Failed to regenerate {resource_kind}: {e}")
250
+ LOGGER.exception(f"Failed to regenerate {resource_kind}: {e}")
249
251
  return resource_kind, False, str(e)
250
252
 
253
+ # Process results from parallel execution
254
+ def process_regeneration_result(resource: dict[str, Any], result: tuple[str, bool, str | None]) -> None:
255
+ nonlocal success_count, error_count
256
+ resource_kind, success, error = result
257
+ if success:
258
+ success_count += 1
259
+ else:
260
+ error_count += 1
261
+
262
+ # Handle executor-level exceptions that bypass result processing
263
+ def handle_regeneration_error(resource: dict[str, Any], exc: Exception) -> None:
264
+ nonlocal error_count
265
+ resource_kind = resource.get("kind", "unknown")
266
+ LOGGER.exception(f"Executor-level failure for {resource_kind}: {exc}")
267
+ error_count += 1
268
+
251
269
  # Process resources in parallel
252
- with ThreadPoolExecutor(max_workers=10) as executor:
253
- # Submit all tasks
254
- regeneration_futures = {
255
- executor.submit(regenerate_single_resource, resource): resource for resource in discovered
256
- }
257
-
258
- # Process results as they complete
259
- for future in as_completed(regeneration_futures):
260
- resource_kind, success, error = future.result()
261
- if success:
262
- success_count += 1
263
- else:
264
- error_count += 1
270
+ execute_parallel_tasks(
271
+ tasks=discovered,
272
+ task_func=regenerate_single_resource,
273
+ max_workers=10,
274
+ task_name="regeneration",
275
+ result_processor=process_regeneration_result,
276
+ error_handler=handle_regeneration_error,
277
+ )
265
278
 
266
279
  # Print summary
267
280
  if not dry_run:
@@ -330,15 +343,24 @@ def handle_normal_kind_generation(
330
343
  add_tests=add_tests,
331
344
  )
332
345
  except Exception as e:
333
- LOGGER.error(f"Failed to generate {kind}: {e}")
346
+ LOGGER.exception(f"Failed to generate {kind}: {e}")
334
347
  sys.exit(1)
335
348
 
336
349
  if backup_dir and not dry_run:
337
350
  LOGGER.info(f"Backup files stored in: {backup_dir}")
338
351
  else:
339
- # Multiple kinds - run in parallel
340
- def generate_with_backup(kind_to_generate: str) -> list[str]:
341
- """Generate a single kind with optional backup."""
352
+ # Multiple kinds - run in parallel with result tracking
353
+ success_count = 0
354
+ error_count = 0
355
+ failed_kinds = []
356
+
357
+ def generate_with_backup(kind_to_generate: str) -> tuple[str, bool, str | None]:
358
+ """
359
+ Generate a single kind with optional backup.
360
+
361
+ Returns:
362
+ Tuple of (kind, success, error_message)
363
+ """
342
364
  if overwrite and backup_dir:
343
365
  # Determine the output file path for this kind
344
366
  formatted_kind = convert_camel_case_to_snake_case(name=kind_to_generate)
@@ -348,28 +370,69 @@ def handle_normal_kind_generation(
348
370
  create_backup_if_needed(target_file=target_file, backup_dir=backup_dir)
349
371
 
350
372
  try:
351
- return class_generator(
373
+ result = class_generator(
352
374
  kind=kind_to_generate,
353
375
  overwrite=overwrite,
354
376
  dry_run=dry_run,
355
377
  output_file=output_file,
356
378
  add_tests=add_tests,
379
+ called_from_cli=False, # Don't prompt for missing resources during batch generation
357
380
  )
381
+ # Check if generation was successful (empty list means failure)
382
+ if result:
383
+ if not dry_run:
384
+ LOGGER.info(f"Successfully generated {kind_to_generate}")
385
+ return kind_to_generate, True, None
386
+ else:
387
+ LOGGER.warning(f"Skipped {kind_to_generate}: Not found in schema mapping")
388
+ return kind_to_generate, False, "Not found in schema mapping"
358
389
  except Exception as e:
359
- LOGGER.error(f"Failed to generate {kind_to_generate}: {e}")
360
- return []
390
+ LOGGER.exception(f"Failed to generate {kind_to_generate}: {e}")
391
+ return kind_to_generate, False, str(e)
361
392
 
362
- futures: list[Future] = []
363
- with ThreadPoolExecutor(max_workers=10) as executor:
364
- for _kind in kind_list:
365
- futures.append(executor.submit(generate_with_backup, _kind))
393
+ # Process results from parallel execution
394
+ def process_generation_result(kind_to_generate: str, result: tuple[str, bool, str | None]) -> None:
395
+ nonlocal success_count, error_count, failed_kinds
396
+ kind_name, success, error = result
397
+ if success:
398
+ success_count += 1
399
+ else:
400
+ error_count += 1
401
+ failed_kinds.append({"kind": kind_name, "error": error})
402
+
403
+ # Handle executor-level exceptions that bypass result processing
404
+ def handle_generation_error(kind_to_generate: str, exc: Exception) -> None:
405
+ nonlocal error_count, failed_kinds
406
+ LOGGER.exception(f"Executor-level failure for {kind_to_generate}: {exc}")
407
+ error_count += 1
408
+ failed_kinds.append({"kind": kind_to_generate, "error": str(exc)})
409
+
410
+ # Generate all kinds in parallel
411
+ execute_parallel_tasks(
412
+ tasks=kind_list,
413
+ task_func=generate_with_backup,
414
+ max_workers=10,
415
+ task_name="generation",
416
+ result_processor=process_generation_result,
417
+ error_handler=handle_generation_error,
418
+ )
419
+
420
+ # Print summary and handle failures
421
+ if not dry_run:
422
+ LOGGER.info(f"\nGeneration complete: {success_count} succeeded, {error_count} failed")
423
+ if backup_dir:
424
+ LOGGER.info(f"Backup files stored in: {backup_dir}")
425
+ else:
426
+ LOGGER.info(f"\nDry run complete: would generate {len(kind_list)} kinds")
366
427
 
367
- # Wait for all tasks to complete
368
- for _ in as_completed(futures):
369
- pass
428
+ # Log detailed failure information
429
+ if failed_kinds:
430
+ LOGGER.error(f"\nFailed to generate {len(failed_kinds)} kind(s):")
431
+ for failure in failed_kinds:
432
+ LOGGER.error(f" - {failure['kind']}: {failure['error']}")
370
433
 
371
- if backup_dir and not dry_run:
372
- LOGGER.info(f"Backup files stored in: {backup_dir}")
434
+ # Exit with non-zero status if any failures occurred
435
+ sys.exit(1)
373
436
 
374
437
 
375
438
  def handle_test_generation(add_tests: bool) -> None:
@@ -474,6 +537,13 @@ def handle_test_generation(add_tests: bool) -> None:
474
537
  type=cloup.STRING,
475
538
  default=None,
476
539
  )
540
+ @cloup.option(
541
+ "-v",
542
+ "--verbose",
543
+ help="Enable verbose output with debug logs",
544
+ is_flag=True,
545
+ show_default=True,
546
+ )
477
547
  @cloup.constraint(
478
548
  If(IsSet("update_schema") & ~IsSet("generate_missing"), then=accept_none),
479
549
  [
@@ -509,8 +579,35 @@ def main(
509
579
  filter: str | None,
510
580
  json_output: bool,
511
581
  update_schema: bool,
582
+ verbose: bool,
512
583
  ) -> None:
513
584
  """Generate Python module for K8S resource."""
585
+ # Configure logging based on verbose flag
586
+ if verbose:
587
+ # Set debug level for all class_generator modules
588
+ for logger_name in [
589
+ "class_generator.core.schema",
590
+ "class_generator.core.generator",
591
+ "class_generator.core.coverage",
592
+ "class_generator.core.discovery",
593
+ "class_generator.cli",
594
+ "class_generator.utils",
595
+ "ocp_resources",
596
+ ]:
597
+ logger = logging.getLogger(logger_name)
598
+ logger.setLevel(logging.DEBUG)
599
+ # Prevent propagation to avoid duplicate messages
600
+ logger.propagate = False
601
+ # Also set all handlers to DEBUG to ensure debug logs surface
602
+ for handler in logger.handlers:
603
+ handler.setLevel(logging.DEBUG)
604
+
605
+ # Set root logger to DEBUG to cover all configured handlers
606
+ root_logger = logging.getLogger()
607
+ root_logger.setLevel(logging.DEBUG)
608
+ for handler in root_logger.handlers:
609
+ handler.setLevel(logging.DEBUG)
610
+
514
611
  # Validate input parameters
515
612
  validate_actions(
516
613
  kind=kind,
@@ -542,7 +639,7 @@ def main(
542
639
  )
543
640
 
544
641
  # Handle regenerate-all operation
545
- if handle_regenerate_all(regenerate_all=regenerate_all, backup=backup, dry_run=dry_run, filter=filter):
642
+ if handle_regenerate_all(regenerate_all=regenerate_all, backup=backup, dry_run=dry_run, filter_pattern=filter):
546
643
  return
547
644
 
548
645
  # Exit if we only did discovery/report/generation
@@ -1,8 +1,8 @@
1
1
  """Discovery functions for finding cluster resources and generated files."""
2
2
 
3
- from concurrent.futures import Future, ThreadPoolExecutor, as_completed
4
3
  from pathlib import Path
5
4
  from typing import Any
5
+ from concurrent.futures import ThreadPoolExecutor, as_completed, Future
6
6
 
7
7
  from kubernetes.dynamic import DynamicClient
8
8
  from simple_logger.logger import get_logger