openshift-python-wrapper 11.0.138__tar.gz → 11.0.140__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 (543) hide show
  1. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/.github/workflows/close-stale-issues.yml +1 -1
  2. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/.pre-commit-config.yaml +1 -1
  3. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/PKG-INFO +2 -3
  4. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/schema/__resources-mappings.json.gz +0 -0
  5. openshift_python_wrapper-11.0.140/ocp_resources/hyperconverged.py +147 -0
  6. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/plan.py +8 -0
  7. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/provider.py +4 -0
  8. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/utils/resource_constants.py +1 -0
  9. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/utils/utils.py +1 -1
  10. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_template.py +35 -0
  11. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_template_request.py +24 -0
  12. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/pyproject.toml +2 -3
  13. openshift_python_wrapper-11.0.140/tests/test_virtual_machine_template.py +147 -0
  14. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/uv.lock +655 -452
  15. openshift_python_wrapper-11.0.138/ocp_resources/hyperconverged.py +0 -39
  16. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/.coderabbit.yaml +0 -0
  17. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/.dockerignore +0 -0
  18. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/.flake8 +0 -0
  19. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/.gitattributes +0 -0
  20. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  21. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  22. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/.github/pull_request_template.md +0 -0
  23. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/.github/weekly-digest.yml +0 -0
  24. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/.gitignore +0 -0
  25. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/.gitleaks.toml +0 -0
  26. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/.readthedocs.yaml +0 -0
  27. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/.release-it.json +0 -0
  28. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/.sonarcloud.properties +0 -0
  29. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/CLAUDE.md +0 -0
  30. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/CONTRIBUTING.md +0 -0
  31. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/LICENSE +0 -0
  32. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/Makefile +0 -0
  33. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/OWNERS +0 -0
  34. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/README.md +0 -0
  35. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/README.md +0 -0
  36. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/__init__.py +0 -0
  37. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/cli.py +0 -0
  38. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/constants.py +0 -0
  39. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/core/__init__.py +0 -0
  40. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/core/coverage.py +0 -0
  41. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/core/discovery.py +0 -0
  42. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/core/generator.py +0 -0
  43. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/core/schema.py +0 -0
  44. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/exceptions.py +0 -0
  45. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/formatters/__init__.py +0 -0
  46. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/formatters/file_writer.py +0 -0
  47. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/formatters/template_renderer.py +0 -0
  48. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/manifests/class_generator_template.j2 +0 -0
  49. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/parsers/__init__.py +0 -0
  50. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/parsers/explain_parser.py +0 -0
  51. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/parsers/type_parser.py +0 -0
  52. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/parsers/user_code_parser.py +0 -0
  53. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/py.typed +0 -0
  54. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/schema/__cluster_version__.txt +0 -0
  55. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/schema/_definitions.json +0 -0
  56. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/manifests/APIServer/api_server.py +0 -0
  57. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/manifests/ClusterOperator/cluster_operator.py +0 -0
  58. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/manifests/ConfigMap/config_map.py +0 -0
  59. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/manifests/DNS/dns_config_openshift_io.py +0 -0
  60. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/manifests/DNS/dns_operator_openshift_io.py +0 -0
  61. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/manifests/Deployment/deployment.py +0 -0
  62. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/manifests/ImageContentSourcePolicy/image_content_source_policy.py +0 -0
  63. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/manifests/Ingress/ingress_config_openshift_io.py +0 -0
  64. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/manifests/Ingress/ingress_networking_k8s_io.py +0 -0
  65. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/manifests/Machine/machine.py +0 -0
  66. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/manifests/NMState/nm_state.py +0 -0
  67. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/manifests/OAuth/oauth.py +0 -0
  68. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/manifests/Pipeline/pipeline.py +0 -0
  69. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/manifests/Pod/pod.py +0 -0
  70. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/manifests/RouteAdvertisements/route_advertisements.py +0 -0
  71. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/manifests/Secret/secret.py +0 -0
  72. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/manifests/ServiceMeshMember/service_mesh_member.py +0 -0
  73. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/manifests/ServingRuntime/serving_runtime.py +0 -0
  74. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/manifests/test_parse_explain.j2 +0 -0
  75. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/test_batch_regeneration.py +0 -0
  76. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/test_class_generator.py +0 -0
  77. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/test_cli.py +0 -0
  78. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/test_generation.py +0 -0
  79. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/test_resource_discovery.py +0 -0
  80. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/test_schema_new_functions.py +0 -0
  81. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/test_schema_parsing.py +0 -0
  82. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/test_user_code_parser.py +0 -0
  83. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/tests/test_utils.py +0 -0
  84. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/class_generator/utils.py +0 -0
  85. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/.nojekyll +0 -0
  86. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/Makefile +0 -0
  87. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/assets/callouts.js +0 -0
  88. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/assets/codelabels.js +0 -0
  89. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/assets/copy.js +0 -0
  90. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/assets/github.js +0 -0
  91. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/assets/scrollspy.js +0 -0
  92. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/assets/search.js +0 -0
  93. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/assets/style.css +0 -0
  94. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/assets/theme.js +0 -0
  95. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/class-generator-cli.html +0 -0
  96. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/class-generator-cli.md +0 -0
  97. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/common-patterns.html +0 -0
  98. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/common-patterns.md +0 -0
  99. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/conf.py +0 -0
  100. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/connecting-to-clusters.html +0 -0
  101. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/connecting-to-clusters.md +0 -0
  102. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/creating-and-managing-resources.html +0 -0
  103. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/creating-and-managing-resources.md +0 -0
  104. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/editing-resources-temporarily.html +0 -0
  105. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/editing-resources-temporarily.md +0 -0
  106. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/environment-variables.html +0 -0
  107. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/environment-variables.md +0 -0
  108. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/error-handling.html +0 -0
  109. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/error-handling.md +0 -0
  110. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/generating-resource-classes.html +0 -0
  111. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/generating-resource-classes.md +0 -0
  112. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/index.html +0 -0
  113. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/index.rst +0 -0
  114. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/llms-full.txt +0 -0
  115. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/llms.txt +0 -0
  116. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/managing-resource-lists.html +0 -0
  117. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/managing-resource-lists.md +0 -0
  118. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/mcp-server-integration.html +0 -0
  119. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/mcp-server-integration.md +0 -0
  120. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/modules.rst +0 -0
  121. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/ocp_resources.rst +0 -0
  122. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/pod-execution-and-logs.html +0 -0
  123. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/pod-execution-and-logs.md +0 -0
  124. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/querying-resources.html +0 -0
  125. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/querying-resources.md +0 -0
  126. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/quickstart.html +0 -0
  127. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/quickstart.md +0 -0
  128. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/resource-api.html +0 -0
  129. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/resource-api.md +0 -0
  130. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/resource-class-hierarchy.html +0 -0
  131. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/resource-class-hierarchy.md +0 -0
  132. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/schema-validation-internals.html +0 -0
  133. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/schema-validation-internals.md +0 -0
  134. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/search-index.json +0 -0
  135. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/testing-without-cluster.html +0 -0
  136. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/testing-without-cluster.md +0 -0
  137. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/validating-resources.html +0 -0
  138. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/validating-resources.md +0 -0
  139. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/waiting-for-conditions.html +0 -0
  140. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/waiting-for-conditions.md +0 -0
  141. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/working-with-events.html +0 -0
  142. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/working-with-events.md +0 -0
  143. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/working-with-virtual-machines.html +0 -0
  144. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/docs/working-with-virtual-machines.md +0 -0
  145. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/examples/general.py +0 -0
  146. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/examples/node_network_configuration_policy.py +0 -0
  147. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/examples/pods.py +0 -0
  148. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/examples/resource_list.py +0 -0
  149. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/examples/role.py +0 -0
  150. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/examples/special_cases.py +0 -0
  151. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/examples/validation_demo.py +0 -0
  152. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/examples/validation_troubleshooting.py +0 -0
  153. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/examples/virtual_machine.py +0 -0
  154. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/fake_kubernetes_client/README.md +0 -0
  155. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/fake_kubernetes_client/__init__.py +0 -0
  156. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/fake_kubernetes_client/configuration.py +0 -0
  157. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/fake_kubernetes_client/dynamic_client.py +0 -0
  158. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/fake_kubernetes_client/exceptions.py +0 -0
  159. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/fake_kubernetes_client/kubernetes_client.py +0 -0
  160. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/fake_kubernetes_client/resource_field.py +0 -0
  161. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/fake_kubernetes_client/resource_instance.py +0 -0
  162. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/fake_kubernetes_client/resource_manager.py +0 -0
  163. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/fake_kubernetes_client/resource_registry.py +0 -0
  164. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/fake_kubernetes_client/resource_storage.py +0 -0
  165. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/fake_kubernetes_client/status_schema_parser.py +0 -0
  166. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/fake_kubernetes_client/status_templates.py +0 -0
  167. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/fake_kubernetes_client/types.py +0 -0
  168. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/mcp_server/README.md +0 -0
  169. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/mcp_server/__init__.py +0 -0
  170. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/mcp_server/example_client.py +0 -0
  171. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/mcp_server/server-info.json +0 -0
  172. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/mcp_server/server.py +0 -0
  173. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/mcp_server/tests/__init__.py +0 -0
  174. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/mcp_server/tests/test_server.py +0 -0
  175. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/__init__.py +0 -0
  176. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/_hook_generated.py +0 -0
  177. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/aaq.py +0 -0
  178. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/api_server.py +0 -0
  179. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/api_service.py +0 -0
  180. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/application_aware_applied_cluster_resource_quota.py +0 -0
  181. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/application_aware_cluster_resource_quota.py +0 -0
  182. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/application_aware_resource_quota.py +0 -0
  183. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/authentication_config_openshift_io.py +0 -0
  184. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/authentication_operator_openshift_io.py +0 -0
  185. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/authorino.py +0 -0
  186. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/backup.py +0 -0
  187. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/benchmark.py +0 -0
  188. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/bgp_session_state.py +0 -0
  189. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/catalog_source.py +0 -0
  190. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/cdi.py +0 -0
  191. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/cdi_config.py +0 -0
  192. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/chaos_engine.py +0 -0
  193. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/chaos_result.py +0 -0
  194. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/cluster_claim.py +0 -0
  195. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/cluster_deployment.py +0 -0
  196. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/cluster_operator.py +0 -0
  197. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/cluster_pool.py +0 -0
  198. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/cluster_resource_quota.py +0 -0
  199. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/cluster_role.py +0 -0
  200. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/cluster_role_binding.py +0 -0
  201. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/cluster_service_version.py +0 -0
  202. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/cluster_user_defined_network.py +0 -0
  203. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/cluster_version.py +0 -0
  204. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/config_imageregistry_operator_openshift_io.py +0 -0
  205. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/config_map.py +0 -0
  206. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/config_operator_openshift_io.py +0 -0
  207. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/config_samples_operator_openshift_io.py +0 -0
  208. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/console_cli_download.py +0 -0
  209. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/console_config_openshift_io.py +0 -0
  210. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/console_operator_openshift_io.py +0 -0
  211. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/console_plugin.py +0 -0
  212. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/console_quick_start.py +0 -0
  213. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/controller_revision.py +0 -0
  214. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/conversion.py +0 -0
  215. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/cron_job.py +0 -0
  216. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/csi_driver.py +0 -0
  217. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/csi_storage_capacity.py +0 -0
  218. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/custom_resource_definition.py +0 -0
  219. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/daemon_set.py +0 -0
  220. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/daemonset.py +0 -0
  221. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/data_import_cron.py +0 -0
  222. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/data_protection_application.py +0 -0
  223. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/data_science_cluster.py +0 -0
  224. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/data_science_pipelines_application.py +0 -0
  225. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/data_source.py +0 -0
  226. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/datavolume.py +0 -0
  227. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/deployment.py +0 -0
  228. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/destination_rule.py +0 -0
  229. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/direct_volume_migration.py +0 -0
  230. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/direct_volume_migration_progress.py +0 -0
  231. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/dns_config_openshift_io.py +0 -0
  232. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/dns_operator_openshift_io.py +0 -0
  233. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/dsc_initialization.py +0 -0
  234. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/endpoint_slice.py +0 -0
  235. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/endpoints.py +0 -0
  236. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/evalhub.py +0 -0
  237. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/event.py +0 -0
  238. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/exceptions.py +0 -0
  239. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/fence_agent_remediation_templates.py +0 -0
  240. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/forklift_controller.py +0 -0
  241. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/frr_configuration.py +0 -0
  242. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/gateway.py +0 -0
  243. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/gateway_class.py +0 -0
  244. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/gateway_config.py +0 -0
  245. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/gateway_gateway_networking_k8s_io.py +0 -0
  246. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/gateway_networking_istio_io.py +0 -0
  247. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/group.py +0 -0
  248. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/guardrails_orchestrator.py +0 -0
  249. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/hook.py +0 -0
  250. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/host.py +0 -0
  251. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/hostpath_provisioner.py +0 -0
  252. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/image_caching_internal_knative_dev.py +0 -0
  253. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/image_config_openshift_io.py +0 -0
  254. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/image_content_source_policy.py +0 -0
  255. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/image_digest_mirror_set.py +0 -0
  256. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/image_image_openshift_io.py +0 -0
  257. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/image_stream.py +0 -0
  258. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/imagestreamtag.py +0 -0
  259. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/inference_graph.py +0 -0
  260. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/inference_service.py +0 -0
  261. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/infrastructure.py +0 -0
  262. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/ingress_config_openshift_io.py +0 -0
  263. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/ingress_controller.py +0 -0
  264. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/ingress_networking_k8s_io.py +0 -0
  265. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/installplan.py +0 -0
  266. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/ip_address_pool.py +0 -0
  267. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/jaeger.py +0 -0
  268. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/job.py +0 -0
  269. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/kube_descheduler.py +0 -0
  270. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/kubelet_config.py +0 -0
  271. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/kubevirt.py +0 -0
  272. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/l2_advertisement.py +0 -0
  273. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/lease.py +0 -0
  274. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/limit_range.py +0 -0
  275. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/llama_stack_distribution.py +0 -0
  276. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/llm_inference_service.py +0 -0
  277. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/lm_eval_job.py +0 -0
  278. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/maa_s_auth_policy.py +0 -0
  279. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/maa_s_model.py +0 -0
  280. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/maa_s_subscription.py +0 -0
  281. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/maas_auth_policy.py +0 -0
  282. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/maas_model_ref.py +0 -0
  283. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/maas_subscription.py +0 -0
  284. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/machine.py +0 -0
  285. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/machine_config.py +0 -0
  286. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/machine_config_pool.py +0 -0
  287. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/machine_health_check.py +0 -0
  288. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/machine_set.py +0 -0
  289. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/managed_cluster.py +0 -0
  290. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/maria_db.py +0 -0
  291. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/mariadb_operator.py +0 -0
  292. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/metallb.py +0 -0
  293. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/mig_analytic.py +0 -0
  294. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/mig_cluster.py +0 -0
  295. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/mig_controller.py +0 -0
  296. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/mig_migration.py +0 -0
  297. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/mig_plan.py +0 -0
  298. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/migration.py +0 -0
  299. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/migration_policy.py +0 -0
  300. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/mlflow.py +0 -0
  301. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/mlflow_config.py +0 -0
  302. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/model_registry.py +0 -0
  303. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/model_registry_components_platform_opendatahub_io.py +0 -0
  304. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/model_registry_modelregistry_opendatahub_io.py +0 -0
  305. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/mtq.py +0 -0
  306. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/multi_cluster_hub.py +0 -0
  307. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/multi_cluster_observability.py +0 -0
  308. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/multi_namespace_virtual_machine_storage_migration.py +0 -0
  309. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/multi_namespace_virtual_machine_storage_migration_plan.py +0 -0
  310. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/multi_network_policy.py +0 -0
  311. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/mutating_webhook_config.py +0 -0
  312. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/namespace.py +0 -0
  313. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/nemo_guardrails.py +0 -0
  314. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/network_addons_config.py +0 -0
  315. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/network_attachment_definition.py +0 -0
  316. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/network_config_openshift_io.py +0 -0
  317. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/network_map.py +0 -0
  318. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/network_operator_openshift_io.py +0 -0
  319. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/network_policy.py +0 -0
  320. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/nm_state.py +0 -0
  321. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/node.py +0 -0
  322. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/node_config_openshift_io.py +0 -0
  323. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/node_health_check.py +0 -0
  324. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/node_maintenance.py +0 -0
  325. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/node_network_configuration_enactment.py +0 -0
  326. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/node_network_configuration_policy.py +0 -0
  327. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/node_network_configuration_policy_latest.py +0 -0
  328. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/node_network_state.py +0 -0
  329. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/notebook.py +0 -0
  330. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/oauth.py +0 -0
  331. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/ocs_initialization.py +0 -0
  332. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/open_telemetry_collector.py +0 -0
  333. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/operator.py +0 -0
  334. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/operator_condition.py +0 -0
  335. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/operator_group.py +0 -0
  336. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/operator_hub.py +0 -0
  337. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/operator_source.py +0 -0
  338. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/package_manifest.py +0 -0
  339. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/peer_authentication.py +0 -0
  340. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/performance_profile.py +0 -0
  341. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/persistent_volume.py +0 -0
  342. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/persistent_volume_claim.py +0 -0
  343. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/pipeline.py +0 -0
  344. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/pipeline_run.py +0 -0
  345. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/pod.py +0 -0
  346. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/pod_disruption_budget.py +0 -0
  347. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/pod_metrics.py +0 -0
  348. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/priority_class.py +0 -0
  349. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/project_config_openshift_io.py +0 -0
  350. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/project_project_openshift_io.py +0 -0
  351. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/project_request.py +0 -0
  352. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/prometheus.py +0 -0
  353. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/prometheus_rule.py +0 -0
  354. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/proxy.py +0 -0
  355. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/py.typed +0 -0
  356. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/rate_limit_policy.py +0 -0
  357. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/reclaim_space_cron_job.py +0 -0
  358. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/reclaim_space_job.py +0 -0
  359. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/replica_set.py +0 -0
  360. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/resource.py +0 -0
  361. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/resource_quota.py +0 -0
  362. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/restore.py +0 -0
  363. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/rhmi.py +0 -0
  364. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/role.py +0 -0
  365. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/role_binding.py +0 -0
  366. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/route.py +0 -0
  367. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/route_advertisements.py +0 -0
  368. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/scaled_object.py +0 -0
  369. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/scheduler.py +0 -0
  370. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/sealed_secret.py +0 -0
  371. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/secret.py +0 -0
  372. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/securesign.py +0 -0
  373. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/security_context_constraints.py +0 -0
  374. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/self_node_remediation_templates.py +0 -0
  375. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/self_subject_review.py +0 -0
  376. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/service.py +0 -0
  377. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/service_account.py +0 -0
  378. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/service_mesh_control_plane.py +0 -0
  379. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/service_mesh_member.py +0 -0
  380. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/service_mesh_member_roll.py +0 -0
  381. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/service_monitor.py +0 -0
  382. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/service_serving_knative_dev.py +0 -0
  383. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/serving_runtime.py +0 -0
  384. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/snapshot.py +0 -0
  385. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/sriov_network.py +0 -0
  386. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/sriov_network_node_policy.py +0 -0
  387. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/sriov_network_node_state.py +0 -0
  388. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/ssp.py +0 -0
  389. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/storage_class.py +0 -0
  390. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/storage_cluster.py +0 -0
  391. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/storage_map.py +0 -0
  392. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/storage_profile.py +0 -0
  393. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/subscription.py +0 -0
  394. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/task.py +0 -0
  395. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/task_run.py +0 -0
  396. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/tekton_tasks.py +0 -0
  397. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/template.py +0 -0
  398. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/tempo_stack.py +0 -0
  399. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/token_rate_limit_policy.py +0 -0
  400. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/trustyai_service.py +0 -0
  401. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/upload_token_request.py +0 -0
  402. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/user.py +0 -0
  403. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/user_defined_network.py +0 -0
  404. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/utils/__init__.py +0 -0
  405. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/utils/archive_utils.py +0 -0
  406. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/utils/client_config.py +0 -0
  407. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/utils/constants.py +0 -0
  408. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/utils/schema_validator.py +0 -0
  409. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/validating_admission_policy.py +0 -0
  410. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/validating_admission_policy_binding.py +0 -0
  411. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/validating_webhook_config.py +0 -0
  412. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine.py +0 -0
  413. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_backup.py +0 -0
  414. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_backup_tracker.py +0 -0
  415. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_clone.py +0 -0
  416. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_cluster_instancetype.py +0 -0
  417. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_cluster_preference.py +0 -0
  418. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_export.py +0 -0
  419. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_import.py +0 -0
  420. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_instance.py +0 -0
  421. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_instance_migration.py +0 -0
  422. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_instance_preset.py +0 -0
  423. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_instance_replica_set.py +0 -0
  424. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_instancetype.py +0 -0
  425. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_migration_resource_quota.py +0 -0
  426. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_preference.py +0 -0
  427. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_restore.py +0 -0
  428. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_snapshot.py +0 -0
  429. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_storage_migration.py +0 -0
  430. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_machine_storage_migration_plan.py +0 -0
  431. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/virtual_service.py +0 -0
  432. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/vm_import_config.py +0 -0
  433. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/volume_snapshot.py +0 -0
  434. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/volume_snapshot_class.py +0 -0
  435. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/ocp_resources/vtep.py +0 -0
  436. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/pypi-dist/.gitignore +0 -0
  437. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/renovate.json +0 -0
  438. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/scripts/__init__.py +0 -0
  439. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/scripts/diff-from-latest-release.sh +0 -0
  440. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/scripts/diff-from-tag.sh +0 -0
  441. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/scripts/generate_changelog.py +0 -0
  442. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/scripts/get-latest-release.sh +0 -0
  443. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/sonar-project.properties +0 -0
  444. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/__init__.py +0 -0
  445. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/conftest.py +0 -0
  446. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/fixtures/validation_schemas.py +0 -0
  447. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/manifests/vm.yaml +0 -0
  448. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/scripts/__init__.py +0 -0
  449. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/scripts/generate_pytest_test.py +0 -0
  450. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/scripts/validate_resources.py +0 -0
  451. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_api_group_order.py +0 -0
  452. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_camelcase_to_snake.py +0 -0
  453. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_daemonset.py +0 -0
  454. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resource.py +0 -0
  455. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resource_validation.py +0 -0
  456. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_aaq.py +0 -0
  457. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_api_server.py +0 -0
  458. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_authorino.py +0 -0
  459. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_cdi.py +0 -0
  460. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_cdi_config.py +0 -0
  461. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_cluster_resource_quota.py +0 -0
  462. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_cluster_user_defined_network.py +0 -0
  463. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_config_map.py +0 -0
  464. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_console_config_openshift_io.py +0 -0
  465. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_console_operator_openshift_io.py +0 -0
  466. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_csi_driver.py +0 -0
  467. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_data_import_cron.py +0 -0
  468. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_data_science_cluster.py +0 -0
  469. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_deployment.py +0 -0
  470. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_direct_volume_migration.py +0 -0
  471. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_direct_volume_migration_progress.py +0 -0
  472. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_dns_config_openshift_io.py +0 -0
  473. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_dns_operator_openshift_io.py +0 -0
  474. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_dsc_initialization.py +0 -0
  475. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_group.py +0 -0
  476. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_guardrails_orchestrator.py +0 -0
  477. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_image_caching_internal_knative_dev.py +0 -0
  478. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_image_config_openshift_io.py +0 -0
  479. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_image_content_source_policy.py +0 -0
  480. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_image_image_openshift_io.py +0 -0
  481. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_inference_graph.py +0 -0
  482. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_kube_descheduler.py +0 -0
  483. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_kubelet_config.py +0 -0
  484. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_kubevirt.py +0 -0
  485. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_llama_stack_distribution.py +0 -0
  486. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_lm_eval_job.py +0 -0
  487. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_machine.py +0 -0
  488. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_maria_db.py +0 -0
  489. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_mariadb_operator.py +0 -0
  490. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_mig_analytic.py +0 -0
  491. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_mig_cluster.py +0 -0
  492. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_mig_migration.py +0 -0
  493. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_mig_plan.py +0 -0
  494. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_model_registry.py +0 -0
  495. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_model_registry_components_platform_opendatahub_io.py +0 -0
  496. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_model_registry_modelregistry_opendatahub_io.py +0 -0
  497. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_mtq.py +0 -0
  498. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_namespace.py +0 -0
  499. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_network_config_openshift_io.py +0 -0
  500. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_network_operator_openshift_io.py +0 -0
  501. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_nm_state.py +0 -0
  502. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_node.py +0 -0
  503. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_node_config_openshift_io.py +0 -0
  504. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_node_network_configuration_policy_latest.py +0 -0
  505. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_notebook.py +0 -0
  506. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_oauth.py +0 -0
  507. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_operator.py +0 -0
  508. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_pod.py +0 -0
  509. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_pod_metrics.py +0 -0
  510. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_project_config_openshift_io.py +0 -0
  511. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_project_project_openshift_io.py +0 -0
  512. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_project_request.py +0 -0
  513. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_prometheus.py +0 -0
  514. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_replica_set.py +0 -0
  515. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_scheduler.py +0 -0
  516. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_security_context_constraints.py +0 -0
  517. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_self_subject_review.py +0 -0
  518. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_service.py +0 -0
  519. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_service_mesh_member.py +0 -0
  520. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_service_serving_knative_dev.py +0 -0
  521. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_serving_runtime.py +0 -0
  522. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_snapshot.py +0 -0
  523. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_ssp.py +0 -0
  524. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_storage_cluster.py +0 -0
  525. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_user.py +0 -0
  526. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_user_defined_network.py +0 -0
  527. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_virtual_machine_cluster_instancetype.py +0 -0
  528. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_virtual_machine_cluster_preference.py +0 -0
  529. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_virtual_machine_export.py +0 -0
  530. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_virtual_machine_instance_migration.py +0 -0
  531. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_virtual_machine_instance_preset.py +0 -0
  532. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_virtual_machine_instance_replica_set.py +0 -0
  533. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_virtual_machine_instancetype.py +0 -0
  534. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_virtual_machine_preference.py +0 -0
  535. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_volume_snapshot.py +0 -0
  536. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_resources/test_volume_snapshot_class.py +0 -0
  537. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_schema_loading.py +0 -0
  538. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_unittests.py +0 -0
  539. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_validate_resources.py +0 -0
  540. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_validate_resources_script.py +0 -0
  541. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/test_validation_error.py +0 -0
  542. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tests/utils.py +0 -0
  543. {openshift_python_wrapper-11.0.138 → openshift_python_wrapper-11.0.140}/tox.toml +0 -0
@@ -7,7 +7,7 @@ jobs:
7
7
  stale:
8
8
  runs-on: ubuntu-latest
9
9
  steps:
10
- - uses: actions/stale@v10
10
+ - uses: actions/stale@v11
11
11
  with:
12
12
  stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days.'
13
13
  days-before-stale: 30
@@ -46,7 +46,7 @@ repos:
46
46
  ]
47
47
 
48
48
  - repo: https://github.com/astral-sh/ruff-pre-commit
49
- rev: v0.15.22
49
+ rev: v0.16.2
50
50
  hooks:
51
51
  - id: ruff
52
52
  - id: ruff-format
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: openshift-python-wrapper
3
- Version: 11.0.138
3
+ Version: 11.0.140
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/
@@ -27,7 +27,6 @@ Requires-Dist: python-benedict>=0.33.2
27
27
  Requires-Dist: python-simple-logger>=1.0.40
28
28
  Requires-Dist: requests>=2.32.2
29
29
  Requires-Dist: rich>=13.9.2
30
- Requires-Dist: ruff>=0.6.9
31
30
  Requires-Dist: timeout-sampler>=0.0.46
32
31
  Requires-Dist: xmltodict>=0.13.0
33
32
  Description-Content-Type: text/markdown
@@ -0,0 +1,147 @@
1
+ # Generated using https://github.com/RedHatQE/openshift-python-wrapper/blob/main/class_generator/README.md
2
+
3
+
4
+ from typing import Any
5
+
6
+ from ocp_resources.resource import NamespacedResource
7
+
8
+
9
+ class HyperConverged(NamespacedResource):
10
+ """
11
+ HyperConverged is the Schema for the hyperconvergeds API
12
+ """
13
+
14
+ api_group: str = NamespacedResource.ApiGroup.HCO_KUBEVIRT_IO
15
+
16
+ def __init__(
17
+ self,
18
+ deployment: dict[str, Any] | None = None,
19
+ feature_gates: list[Any] | None = None,
20
+ networking: dict[str, Any] | None = None,
21
+ security: dict[str, Any] | None = None,
22
+ storage: dict[str, Any] | None = None,
23
+ virtualization: dict[str, Any] | None = None,
24
+ workload_sources: dict[str, Any] | None = None,
25
+ **kwargs: Any,
26
+ ) -> None:
27
+ r"""
28
+ Args:
29
+ deployment (dict[str, Any]): Deployment contains all the configurations related to deployment of
30
+ KubeVirt components
31
+
32
+ feature_gates (list[Any]): FeatureGates is a set of optional feature gates to enable or disable
33
+ new features that are not generally available yet. Add a new
34
+ FeatureGate Object to this set, to enable a feature that is
35
+ disabled by default, or to disable a feature that is enabled by
36
+ default. A feature gate may be in the following phases: * alpha:
37
+ the feature is in dev-preview. It is disabled by default, but can
38
+ be enabled. * beta: the feature gate is in tech-preview. It is
39
+ enabled by default, but can be disabled. * GA: the feature is
40
+ graduated and is always enabled. There is no way to disable it.
41
+ * deprecated: the feature is deprecated. The feature gate will be
42
+ removed in a future release. Feature-Gate list: *
43
+ decentralizedLiveMigration: DecentralizedLiveMigration enables
44
+ the decentralized live migration (cross-cluster migration)
45
+ feature. This feature allows live migration of
46
+ VirtualMachineInstances between different clusters. This feature
47
+ is in Developer Preview. Phase: beta *
48
+ declarativeHotplugVolumes: DeclarativeHotplugVolumes enables the
49
+ use of the declarative volume hotplug feature in KubeVirt. When
50
+ set to true or nil, the "DeclarativeHotplugVolumes" feature gate
51
+ is enabled and the "HotplugVolumes" feature gate is not (default
52
+ behavior). When set to false, the "HotplugVolumes" featuregate
53
+ is enabled in KubeVirt. This feature is in Technical Preview.
54
+ Phase: beta * template: VirtualMachine Templates provide a
55
+ native, in-cluster VM templating for KubeVirt. They allow you to
56
+ define reusable VM blueprints with parameterized values that can
57
+ be processed to create virtual machine. the "template" feature
58
+ gate enables this feature. Note: this feature is in Tech
59
+ Preview. Phase: beta * alignCPUs: Enable KubeVirt to request
60
+ up to two additional dedicated CPUs in order to complete the
61
+ total CPU count to an even parity when using emulator thread
62
+ isolation. Note: this feature is in Developer Preview. Phase:
63
+ alpha * containerPathVolumes: ContainerPathVolumes enables the
64
+ use of container paths as volumes in KubeVirt. This allows VMs
65
+ to access files and directories from the virt-launcher pod's
66
+ filesystem via virtiofs. Phase: alpha * deployKubeSecondaryDNS:
67
+ Deploy KubeSecondaryDNS by CNAO Phase: alpha *
68
+ deployObservabilityController: Deploy the virt-observability-
69
+ controller component. When enabled, the controller exposes
70
+ KubeVirt metrics and manages PrometheusRule resources
71
+ independently from the KubeVirt control plane. Phase: alpha *
72
+ downwardMetrics: Allow to expose a limited set of host metrics
73
+ to guests. Phase: alpha * enableMultiArchBootImageImport:
74
+ EnableMultiArchBootImageImport allows the HCO to run on
75
+ heterogeneous clusters with different CPU architectures. Setting
76
+ this field to true will allow the HCO to create Golden Images
77
+ for different CPU architectures. This feature is in Developer
78
+ Preview. Phase: alpha * incrementalBackup: IncrementalBackup
79
+ enables changed block tracking backups and incremental backups
80
+ using QEMU capabilities in KubeVirt. When enabled, this also
81
+ enables the UtilityVolumes feature gate in the KubeVirt CR. Note:
82
+ This feature is in Tech Preview. Phase: alpha * objectGraph:
83
+ ObjectGraph enables the ObjectGraph VM and VMI subresource in
84
+ KubeVirt. This subresource returns a structured list of k8s
85
+ objects that are related to the specified VM or VMI, enabling
86
+ better dependency tracking. Note: This feature is in Developer
87
+ Preview. Phase: alpha * disableMDevConfiguration: Deprecated:
88
+ use spec.virtualization.mediatedDevicesConfiguration.enabled
89
+ instead. This feature gate is deprecated and will be removed in a
90
+ future release. Phase: deprecated * persistentReservation:
91
+ This feature gate has graduated to a dedicated configuration
92
+ field. Use
93
+ spec.storage.persistentReservationConfiguration.enabled instead.
94
+ This feature gate is deprecated and will be removed in a future
95
+ release. Phase: deprecated
96
+
97
+ networking (dict[str, Any]): Networking contains all the configurations for networking
98
+
99
+ security (dict[str, Any]): Security contains all the security configurations
100
+
101
+ storage (dict[str, Any]): Storage contains all the configurations for storage
102
+
103
+ virtualization (dict[str, Any]): Virtualization contains all the configurations for virtualization
104
+
105
+ workload_sources (dict[str, Any]): WorkloadSources contains all the configurations for workload sources
106
+
107
+ """
108
+ super().__init__(**kwargs)
109
+
110
+ self.deployment = deployment
111
+ self.feature_gates = feature_gates
112
+ self.networking = networking
113
+ self.security = security
114
+ self.storage = storage
115
+ self.virtualization = virtualization
116
+ self.workload_sources = workload_sources
117
+
118
+ def to_dict(self) -> None:
119
+
120
+ super().to_dict()
121
+
122
+ if not self.kind_dict and not self.yaml_file:
123
+ self.res["spec"] = {}
124
+ _spec = self.res["spec"]
125
+
126
+ if self.deployment is not None:
127
+ _spec["deployment"] = self.deployment
128
+
129
+ if self.feature_gates is not None:
130
+ _spec["featureGates"] = self.feature_gates
131
+
132
+ if self.networking is not None:
133
+ _spec["networking"] = self.networking
134
+
135
+ if self.security is not None:
136
+ _spec["security"] = self.security
137
+
138
+ if self.storage is not None:
139
+ _spec["storage"] = self.storage
140
+
141
+ if self.virtualization is not None:
142
+ _spec["virtualization"] = self.virtualization
143
+
144
+ if self.workload_sources is not None:
145
+ _spec["workloadSources"] = self.workload_sources
146
+
147
+ # End of generated code
@@ -47,6 +47,9 @@ class Plan(NamespacedResource):
47
47
  with SCSI bus on the target VM. When True, RDM disks use
48
48
  lun.bus: scsi instead of the default disk.bus: virtio.
49
49
  Only applies to vSphere source providers.
50
+ scsi_reservation (bool, optional): Whether to enable SCSI persistent reservations on shared RDM disks.
51
+ When True, sets lun.reservation: true and errorPolicy: report
52
+ on target VM disks. Only applies to vSphere source providers.
50
53
  """
51
54
 
52
55
  api_group = NamespacedResource.ApiGroup.FORKLIFT_KONVEYOR_IO
@@ -85,6 +88,7 @@ class Plan(NamespacedResource):
85
88
  enable_nested_virtualization: bool | None = None,
86
89
  run_preflight_inspection: bool | None = None,
87
90
  rdm_as_lun: bool | None = None,
91
+ scsi_reservation: bool | None = None,
88
92
  **kwargs: Any,
89
93
  ) -> None:
90
94
  super().__init__(**kwargs)
@@ -121,6 +125,7 @@ class Plan(NamespacedResource):
121
125
  self.enable_nested_virtualization = enable_nested_virtualization
122
126
  self.run_preflight_inspection = run_preflight_inspection
123
127
  self.rdm_as_lun = rdm_as_lun
128
+ self.scsi_reservation = scsi_reservation
124
129
 
125
130
  if self.pre_hook_name and self.pre_hook_namespace:
126
131
  self.hooks_array.append(
@@ -229,6 +234,9 @@ class Plan(NamespacedResource):
229
234
  if self.rdm_as_lun is not None:
230
235
  spec["rdmAsLun"] = self.rdm_as_lun
231
236
 
237
+ if self.scsi_reservation is not None:
238
+ spec["scsiReservation"] = self.scsi_reservation
239
+
232
240
  def _generate_hook_spec(self, hook_name: str, hook_namespace: str, hook_type: str) -> dict[str, Any]:
233
241
  return {
234
242
  "hook": {
@@ -18,6 +18,7 @@ class Provider(NamespacedResource):
18
18
  secret_namespace: str | None = None,
19
19
  vddk_init_image: str | None = None,
20
20
  sdk_endpoint: str | None = None,
21
+ management_type: str | None = None,
21
22
  **kwargs: Any,
22
23
  ):
23
24
  super().__init__(**kwargs)
@@ -27,6 +28,7 @@ class Provider(NamespacedResource):
27
28
  self.secret_namespace = secret_namespace
28
29
  self.vddk_init_image = vddk_init_image
29
30
  self.sdk_endpoint = sdk_endpoint
31
+ self.management_type = management_type
30
32
 
31
33
  def to_dict(self) -> None:
32
34
  super().to_dict()
@@ -36,6 +38,8 @@ class Provider(NamespacedResource):
36
38
  settings["vddkInitImage"] = self.vddk_init_image
37
39
  if self.sdk_endpoint:
38
40
  settings["sdkEndpoint"] = self.sdk_endpoint
41
+ if self.management_type:
42
+ settings["managementType"] = self.management_type
39
43
 
40
44
  self.res.update({
41
45
  "spec": {
@@ -75,6 +75,7 @@ class ResourceConstants:
75
75
  RHV: str = "ovirt"
76
76
  OVA: str = "ova"
77
77
  OPENSTACK: str = "openstack"
78
+ HYPERV: str = "hyperv"
78
79
 
79
80
  class Backup:
80
81
  class Status:
@@ -82,7 +82,7 @@ def convert_camel_case_to_snake_case(name: str) -> str:
82
82
  - The function handles both single-word camel case strings (e.g., "Service") and multi-word camel case strings
83
83
  (e.g., "myCamelCaseString").
84
84
  """
85
- do_not_process_list = ["oauth", "kubevirt"]
85
+ do_not_process_list = ["hyperconverged", "oauth", "kubevirt"]
86
86
 
87
87
  # If the input string is in the do_not_proccess_list, return it as it is.
88
88
  if name.lower() in do_not_process_list:
@@ -64,3 +64,38 @@ class VirtualMachineTemplate(NamespacedResource):
64
64
  _spec["parameters"] = self.parameters
65
65
 
66
66
  # End of generated code
67
+
68
+ def process(
69
+ self,
70
+ parameters: dict[str, str] | None = None,
71
+ client: Any = None,
72
+ ) -> Any:
73
+ """
74
+ Process the VirtualMachineTemplate using the KubeVirt subresources API.
75
+
76
+ Sends a POST request to the process subresource endpoint, substituting the
77
+ provided parameter values into the template and returning the result.
78
+
79
+ Args:
80
+ parameters (dict[str, str] | None): Key-value pairs of template parameters
81
+ to substitute, e.g. ``{"NAME": "my-vm", "INSTANCETYPE": "u1.large"}``.
82
+ Defaults to an empty dict (no substitutions).
83
+ client: Optional Kubernetes API client. Defaults to ``self.client``.
84
+
85
+ Returns:
86
+ Any: The raw API server response object.
87
+
88
+ """
89
+ _client = client or self.client
90
+ _subresources_api = f"subresources.{self.api_version}"
91
+ body: dict[str, Any] = {
92
+ "apiVersion": _subresources_api,
93
+ "kind": "ProcessOptions",
94
+ "parameters": parameters or {},
95
+ }
96
+ response = _client.request(
97
+ "POST",
98
+ f"/apis/{_subresources_api}/namespaces/{self.namespace}/virtualmachinetemplates/{self.name}/process",
99
+ body,
100
+ )
101
+ return response
@@ -16,23 +16,41 @@ class VirtualMachineTemplateRequest(NamespacedResource):
16
16
 
17
17
  def __init__(
18
18
  self,
19
+ template_labels: dict[str, Any] | None = None,
19
20
  template_name: str | None = None,
21
+ ttl_seconds_after_finished: int | None = None,
20
22
  virtual_machine_ref: dict[str, Any] | None = None,
21
23
  **kwargs: Any,
22
24
  ) -> None:
23
25
  r"""
24
26
  Args:
27
+ template_labels (dict[str, Any]): TemplateLabels holds optional labels to apply to the created
28
+ VirtualMachineTemplate. Labels with the "template.kubevirt.io/"
29
+ prefix are reserved for system use and are not allowed.
30
+
25
31
  template_name (str): TemplateName holds the optional name for the new
26
32
  VirtualMachineTemplate. If not specified the template will have
27
33
  the same name as the VirtualMachineTemplateRequest.
28
34
 
35
+ ttl_seconds_after_finished (int): TTLSecondsAfterFinished limits the lifetime of a
36
+ VirtualMachineTemplateRequest that has finished execution. Failed
37
+ VirtualMachineTemplateRequests are never cleaned up by the TTL
38
+ controller, so they remain available for debugging. If this field
39
+ is unset, the VirtualMachineTemplateRequest is not automatically
40
+ deleted and must be removed manually or through the owner
41
+ reference cleanup described below. If this field is set to zero,
42
+ the VirtualMachineTemplateRequest becomes eligible to be deleted
43
+ immediately after it finishes.
44
+
29
45
  virtual_machine_ref (dict[str, Any]): VirtualMachineReference holds a reference to a
30
46
  VirtualMachine.kubevirt.io
31
47
 
32
48
  """
33
49
  super().__init__(**kwargs)
34
50
 
51
+ self.template_labels = template_labels
35
52
  self.template_name = template_name
53
+ self.ttl_seconds_after_finished = ttl_seconds_after_finished
36
54
  self.virtual_machine_ref = virtual_machine_ref
37
55
 
38
56
  def to_dict(self) -> None:
@@ -48,7 +66,13 @@ class VirtualMachineTemplateRequest(NamespacedResource):
48
66
 
49
67
  _spec["virtualMachineRef"] = self.virtual_machine_ref
50
68
 
69
+ if self.template_labels is not None:
70
+ _spec["templateLabels"] = self.template_labels
71
+
51
72
  if self.template_name is not None:
52
73
  _spec["templateName"] = self.template_name
53
74
 
75
+ if self.ttl_seconds_after_finished is not None:
76
+ _spec["ttlSecondsAfterFinished"] = self.ttl_seconds_after_finished
77
+
54
78
  # End of generated code
@@ -75,7 +75,7 @@ include = [
75
75
  [project]
76
76
  requires-python = ">=3.10"
77
77
  name = "openshift-python-wrapper"
78
- version = "11.0.138"
78
+ version = "11.0.140"
79
79
  description = "Wrapper around https://github.com/kubernetes-client/python"
80
80
  readme = "README.md"
81
81
  license = "Apache-2.0"
@@ -97,7 +97,6 @@ dependencies = [
97
97
  "python-simple-logger>=1.0.40",
98
98
  "requests>=2.32.2",
99
99
  "rich>=13.9.2",
100
- "ruff>=0.6.9",
101
100
  "timeout-sampler>=0.0.46",
102
101
  "xmltodict>=0.13.0",
103
102
  "fastmcp>=2.10.4",
@@ -135,4 +134,4 @@ build-backend = "hatchling.build"
135
134
 
136
135
  [dependency-groups]
137
136
  tests = ["pytest>=8.3.5", "pytest-cov>=6.1.1"]
138
- dev = ["ipdb>=0.13.13", "ipython>=8.12.3"]
137
+ dev = ["ipdb>=0.13.13", "ipython>=8.12.3", "ruff>=0.6.9"]
@@ -0,0 +1,147 @@
1
+ from typing import Any
2
+ from unittest.mock import MagicMock
3
+
4
+ import pytest
5
+
6
+ from ocp_resources.resource import get_client
7
+ from ocp_resources.virtual_machine_template import VirtualMachineTemplate
8
+
9
+ # ── constants ────────────────────────────────────────────────────────────────
10
+
11
+ VMT_NAMESPACE = "test-ns"
12
+ VMT_NAME = "test-vmt"
13
+ _API_GROUP = "template.kubevirt.io"
14
+ _API_VERSION = "v1alpha1"
15
+ _FULL_API_VERSION = f"{_API_GROUP}/{_API_VERSION}"
16
+ # The process method builds: "subresources.<self.api_version>"
17
+ _SUBRESOURCES_API = f"subresources.{_FULL_API_VERSION}"
18
+ # Expected POST path used by process()
19
+ VMT_PROCESS_PATH = f"/apis/{_SUBRESOURCES_API}/namespaces/{VMT_NAMESPACE}/virtualmachinetemplates/{VMT_NAME}/process"
20
+
21
+ # Resource definition required to register VirtualMachineTemplate in the fake client
22
+ _VMT_RESOURCE_DEF: dict[str, Any] = {
23
+ "kind": "VirtualMachineTemplate",
24
+ "api_version": _API_VERSION,
25
+ "group": _API_GROUP,
26
+ "version": _API_VERSION,
27
+ "group_version": _FULL_API_VERSION,
28
+ "plural": "virtualmachinetemplates",
29
+ "singular": "virtualmachinetemplate",
30
+ "namespaced": True,
31
+ }
32
+
33
+
34
+ # ── helpers ───────────────────────────────────────────────────────────────────
35
+
36
+
37
+ def _make_fake_client(response_data: dict[str, Any] | None = None) -> Any:
38
+ """
39
+ Return a fake client (get_client(fake=True)) with VirtualMachineTemplate registered
40
+ and request() replaced by a MagicMock so call args and return values are inspectable.
41
+ """
42
+ client = get_client(fake=True)
43
+ client.register_resources(_VMT_RESOURCE_DEF)
44
+ mock_response = MagicMock()
45
+ mock_response.to_dict.return_value = response_data if response_data is not None else {}
46
+ # Intentionally replacing the stub method with a MagicMock for call-arg inspection
47
+ client.request = MagicMock(return_value=mock_response) # type: ignore[method-assign]
48
+ return client
49
+
50
+
51
+ # ── fixtures ──────────────────────────────────────────────────────────────────
52
+
53
+
54
+ @pytest.fixture()
55
+ def vmt() -> VirtualMachineTemplate:
56
+ return VirtualMachineTemplate(
57
+ client=_make_fake_client(),
58
+ name=VMT_NAME,
59
+ namespace=VMT_NAMESPACE,
60
+ virtual_machine={"spec": {}},
61
+ )
62
+
63
+
64
+ # ── tests ─────────────────────────────────────────────────────────────────────
65
+
66
+
67
+ class TestProcessPath:
68
+ """process() sends a POST to the correct subresource URL."""
69
+
70
+ def test_process_default_parameters_uses_correct_path(self, vmt: VirtualMachineTemplate) -> None:
71
+ process_client = _make_fake_client()
72
+ vmt.process(client=process_client)
73
+
74
+ method, path, _ = process_client.request.call_args.args
75
+ assert method == "POST"
76
+ assert path == VMT_PROCESS_PATH
77
+
78
+ def test_process_with_parameters_uses_correct_path(self, vmt: VirtualMachineTemplate) -> None:
79
+ process_client = _make_fake_client()
80
+ vmt.process(parameters={"NAME": "my-vm"}, client=process_client)
81
+
82
+ method, path, _ = process_client.request.call_args.args
83
+ assert method == "POST"
84
+ assert path == VMT_PROCESS_PATH
85
+
86
+
87
+ class TestProcessOptionsBody:
88
+ """process() sends the correct ProcessOptions body."""
89
+
90
+ def test_body_kind_is_process_options(self, vmt: VirtualMachineTemplate) -> None:
91
+ process_client = _make_fake_client()
92
+ vmt.process(client=process_client)
93
+
94
+ _, _, body = process_client.request.call_args.args
95
+ assert body["kind"] == "ProcessOptions"
96
+
97
+ def test_body_api_version_matches_subresources_api(self, vmt: VirtualMachineTemplate) -> None:
98
+ process_client = _make_fake_client()
99
+ vmt.process(client=process_client)
100
+
101
+ _, _, body = process_client.request.call_args.args
102
+ assert body["apiVersion"] == _SUBRESOURCES_API
103
+
104
+ def test_body_parameters_empty_when_none_supplied(self, vmt: VirtualMachineTemplate) -> None:
105
+ """parameters=None should produce an empty dict in the request body."""
106
+ process_client = _make_fake_client()
107
+ vmt.process(client=process_client)
108
+
109
+ _, _, body = process_client.request.call_args.args
110
+ assert body["parameters"] == {}
111
+
112
+ def test_body_parameters_passed_through_when_supplied(self, vmt: VirtualMachineTemplate) -> None:
113
+ """Supplied parameters dict should appear unchanged in the request body."""
114
+ supplied = {"NAME": "my-vm", "INSTANCETYPE": "u1.large"}
115
+ process_client = _make_fake_client()
116
+ vmt.process(parameters=supplied, client=process_client)
117
+
118
+ _, _, body = process_client.request.call_args.args
119
+ assert body["parameters"] == supplied
120
+
121
+
122
+ class TestProcessClientSelection:
123
+ """process() uses the injected client, falling back to self.client."""
124
+
125
+ def test_process_uses_injected_client(self, vmt: VirtualMachineTemplate) -> None:
126
+ injected = _make_fake_client()
127
+ vmt.process(client=injected)
128
+
129
+ injected.request.assert_called_once()
130
+ vmt.client.request.assert_not_called()
131
+
132
+ def test_process_falls_back_to_self_client_when_not_injected(self, vmt: VirtualMachineTemplate) -> None:
133
+ vmt.client.request.return_value.to_dict.return_value = {}
134
+ vmt.process()
135
+
136
+ vmt.client.request.assert_called_once()
137
+
138
+
139
+ class TestProcessReturnValue:
140
+ """process() returns the raw response object from the API client."""
141
+
142
+ def test_process_returns_raw_response(self, vmt: VirtualMachineTemplate) -> None:
143
+ process_client = _make_fake_client()
144
+
145
+ result = vmt.process(client=process_client)
146
+
147
+ assert result is process_client.request.return_value