openshift-python-wrapper 11.0.117__tar.gz → 11.0.118__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.
- openshift_python_wrapper-11.0.118/.git +1 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/PKG-INFO +1 -1
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/core/schema.py +86 -33
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/test_schema_new_functions.py +173 -11
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/pyproject.toml +1 -1
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/uv.lock +1 -1
- openshift_python_wrapper-11.0.117/.git +0 -1
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/.coderabbit.yaml +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/.dockerignore +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/.flake8 +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/.gitattributes +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/.github/pull_request_template.md +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/.github/weekly-digest.yml +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/.github/workflows/close-stale-issues.yml +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/.gitignore +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/.gitleaks.toml +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/.pre-commit-config.yaml +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/.readthedocs.yaml +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/.release-it.json +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/.sonarcloud.properties +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/CONTRIBUTING.md +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/LICENSE +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/Makefile +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/OWNERS +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/README.md +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/README.md +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/__init__.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/cli.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/constants.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/core/__init__.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/core/coverage.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/core/discovery.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/core/generator.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/exceptions.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/formatters/__init__.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/formatters/file_writer.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/formatters/template_renderer.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/manifests/class_generator_template.j2 +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/parsers/__init__.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/parsers/explain_parser.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/parsers/type_parser.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/parsers/user_code_parser.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/py.typed +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/schema/__cluster_version__.txt +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/schema/__resources-mappings.json.gz +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/schema/_definitions.json +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/manifests/APIServer/api_server.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/manifests/ClusterOperator/cluster_operator.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/manifests/ConfigMap/config_map.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/manifests/DNS/dns_config_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/manifests/DNS/dns_operator_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/manifests/Deployment/deployment.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/manifests/ImageContentSourcePolicy/image_content_source_policy.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/manifests/Ingress/ingress_config_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/manifests/Ingress/ingress_networking_k8s_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/manifests/Machine/machine.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/manifests/NMState/nm_state.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/manifests/OAuth/oauth.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/manifests/Pipeline/pipeline.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/manifests/Pod/pod.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/manifests/RouteAdvertisements/route_advertisements.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/manifests/Secret/secret.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/manifests/ServiceMeshMember/service_mesh_member.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/manifests/ServingRuntime/serving_runtime.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/manifests/test_parse_explain.j2 +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/test_batch_regeneration.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/test_class_generator.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/test_cli.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/test_generation.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/test_resource_discovery.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/test_schema_parsing.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/test_user_code_parser.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/tests/test_utils.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/utils.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/docs/Makefile +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/docs/conf.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/docs/index.rst +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/docs/modules.rst +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/docs/ocp_resources.rst +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/examples/general.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/examples/node_network_configuration_policy.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/examples/pods.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/examples/resource_list.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/examples/role.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/examples/special_cases.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/examples/validation_demo.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/examples/validation_troubleshooting.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/examples/virtual_machine.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/fake_kubernetes_client/README.md +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/fake_kubernetes_client/__init__.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/fake_kubernetes_client/configuration.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/fake_kubernetes_client/dynamic_client.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/fake_kubernetes_client/exceptions.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/fake_kubernetes_client/kubernetes_client.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/fake_kubernetes_client/resource_field.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/fake_kubernetes_client/resource_instance.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/fake_kubernetes_client/resource_manager.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/fake_kubernetes_client/resource_registry.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/fake_kubernetes_client/resource_storage.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/fake_kubernetes_client/status_schema_parser.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/fake_kubernetes_client/status_templates.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/fake_kubernetes_client/types.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/mcp_server/README.md +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/mcp_server/__init__.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/mcp_server/example_client.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/mcp_server/server-info.json +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/mcp_server/server.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/mcp_server/tests/__init__.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/mcp_server/tests/test_server.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/__init__.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/aaq.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/api_server.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/api_service.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/application_aware_applied_cluster_resource_quota.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/application_aware_cluster_resource_quota.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/application_aware_resource_quota.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/authentication_config_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/authentication_operator_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/authorino.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/backup.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/benchmark.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/bgp_session_state.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/catalog_source.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/cdi.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/cdi_config.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/chaos_engine.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/chaos_result.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/cluster_claim.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/cluster_deployment.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/cluster_operator.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/cluster_pool.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/cluster_resource_quota.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/cluster_role.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/cluster_role_binding.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/cluster_service_version.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/cluster_user_defined_network.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/cluster_version.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/config_imageregistry_operator_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/config_map.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/config_operator_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/config_samples_operator_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/console_cli_download.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/console_config_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/console_operator_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/console_plugin.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/console_quick_start.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/controller_revision.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/cron_job.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/csi_driver.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/csi_storage_capacity.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/custom_resource_definition.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/daemonset.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/data_import_cron.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/data_science_cluster.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/data_science_pipelines_application.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/data_source.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/datavolume.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/deployment.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/destination_rule.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/direct_volume_migration.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/direct_volume_migration_progress.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/dns_config_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/dns_operator_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/dsc_initialization.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/endpoint_slice.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/endpoints.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/event.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/exceptions.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/fence_agent_remediation_templates.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/forklift_controller.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/frr_configuration.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/gateway.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/gateway_class.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/gateway_config.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/gateway_gateway_networking_k8s_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/gateway_networking_istio_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/group.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/guardrails_orchestrator.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/hook.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/host.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/hostpath_provisioner.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/hyperconverged.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/image_caching_internal_knative_dev.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/image_config_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/image_content_source_policy.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/image_digest_mirror_set.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/image_image_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/image_stream.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/imagestreamtag.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/inference_graph.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/inference_service.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/infrastructure.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/ingress_config_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/ingress_controller.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/ingress_networking_k8s_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/installplan.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/ip_address_pool.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/jaeger.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/job.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/kube_descheduler.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/kubelet_config.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/kubevirt.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/l2_advertisement.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/lease.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/limit_range.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/llama_stack_distribution.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/llm_inference_service.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/lm_eval_job.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/maa_s_auth_policy.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/maa_s_model.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/maa_s_subscription.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/machine.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/machine_config.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/machine_config_pool.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/machine_health_check.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/machine_set.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/managed_cluster.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/maria_db.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/mariadb_operator.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/metallb.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/mig_analytic.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/mig_cluster.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/mig_controller.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/mig_migration.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/mig_plan.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/migration.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/migration_policy.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/model_registry.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/model_registry_components_platform_opendatahub_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/model_registry_modelregistry_opendatahub_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/mtq.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/multi_cluster_hub.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/multi_cluster_observability.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/multi_namespace_virtual_machine_storage_migration.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/multi_namespace_virtual_machine_storage_migration_plan.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/multi_network_policy.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/mutating_webhook_config.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/namespace.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/network_addons_config.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/network_attachment_definition.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/network_config_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/network_map.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/network_operator_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/network_policy.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/nm_state.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/node.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/node_config_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/node_health_check.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/node_maintenance.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/node_network_configuration_enactment.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/node_network_configuration_policy.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/node_network_configuration_policy_latest.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/node_network_state.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/notebook.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/oauth.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/ocs_initialization.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/open_telemetry_collector.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/operator.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/operator_condition.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/operator_group.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/operator_hub.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/operator_source.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/package_manifest.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/peer_authentication.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/performance_profile.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/persistent_volume.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/persistent_volume_claim.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/pipeline.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/pipeline_run.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/plan.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/pod.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/pod_disruption_budget.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/pod_metrics.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/priority_class.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/project_config_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/project_project_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/project_request.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/prometheus.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/prometheus_rule.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/provider.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/proxy.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/py.typed +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/rate_limit_policy.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/reclaim_space_cron_job.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/reclaim_space_job.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/replica_set.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/resource.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/resource_quota.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/restore.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/rhmi.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/role.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/role_binding.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/route.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/route_advertisements.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/scaled_object.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/scheduler.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/sealed_secret.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/secret.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/securesign.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/security_context_constraints.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/self_node_remediation_templates.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/self_subject_review.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/service.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/service_account.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/service_mesh_control_plane.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/service_mesh_member.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/service_mesh_member_roll.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/service_monitor.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/service_serving_knative_dev.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/serving_runtime.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/snapshot.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/sriov_network.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/sriov_network_node_policy.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/sriov_network_node_state.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/ssp.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/storage_class.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/storage_cluster.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/storage_map.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/storage_profile.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/subscription.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/task.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/task_run.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/tekton_tasks.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/template.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/tempo_stack.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/token_rate_limit_policy.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/trustyai_service.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/upload_token_request.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/user.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/user_defined_network.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/utils/__init__.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/utils/archive_utils.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/utils/constants.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/utils/resource_constants.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/utils/schema_validator.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/utils/utils.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/validating_admission_policy.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/validating_admission_policy_binding.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/validating_webhook_config.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/virtual_machine.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/virtual_machine_clone.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/virtual_machine_cluster_instancetype.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/virtual_machine_cluster_preference.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/virtual_machine_export.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/virtual_machine_import.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/virtual_machine_instance.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/virtual_machine_instance_migration.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/virtual_machine_instance_preset.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/virtual_machine_instance_replica_set.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/virtual_machine_instancetype.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/virtual_machine_migration_resource_quota.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/virtual_machine_preference.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/virtual_machine_restore.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/virtual_machine_snapshot.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/virtual_machine_storage_migration.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/virtual_machine_storage_migration_plan.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/virtual_service.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/vm_import_config.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/volume_snapshot.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/ocp_resources/volume_snapshot_class.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/pypi-dist/.gitignore +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/renovate.json +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/scripts/__init__.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/scripts/diff-from-latest-release.sh +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/scripts/diff-from-tag.sh +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/scripts/generate_changelog.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/scripts/get-latest-release.sh +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/sonar-project.properties +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/__init__.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/conftest.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/fixtures/validation_schemas.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/manifests/vm.yaml +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/scripts/__init__.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/scripts/generate_pytest_test.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/scripts/validate_resources.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_api_group_order.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_camelcase_to_snake.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resource.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resource_validation.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_aaq.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_api_server.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_authorino.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_cdi.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_cdi_config.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_cluster_resource_quota.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_cluster_user_defined_network.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_config_map.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_console_config_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_console_operator_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_csi_driver.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_data_import_cron.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_data_science_cluster.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_deployment.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_direct_volume_migration.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_direct_volume_migration_progress.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_dns_config_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_dns_operator_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_dsc_initialization.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_group.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_guardrails_orchestrator.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_image_caching_internal_knative_dev.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_image_config_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_image_content_source_policy.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_image_image_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_inference_graph.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_kube_descheduler.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_kubelet_config.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_kubevirt.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_llama_stack_distribution.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_lm_eval_job.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_machine.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_maria_db.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_mariadb_operator.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_mig_analytic.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_mig_cluster.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_mig_migration.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_mig_plan.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_model_registry.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_model_registry_components_platform_opendatahub_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_model_registry_modelregistry_opendatahub_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_mtq.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_namespace.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_network_config_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_network_operator_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_nm_state.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_node.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_node_config_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_node_network_configuration_policy_latest.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_notebook.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_oauth.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_operator.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_pod.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_pod_metrics.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_project_config_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_project_project_openshift_io.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_project_request.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_prometheus.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_replica_set.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_scheduler.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_security_context_constraints.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_self_subject_review.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_service.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_service_mesh_member.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_service_serving_knative_dev.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_serving_runtime.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_snapshot.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_ssp.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_storage_cluster.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_user.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_user_defined_network.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_virtual_machine_cluster_instancetype.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_virtual_machine_cluster_preference.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_virtual_machine_export.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_virtual_machine_instance_migration.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_virtual_machine_instance_preset.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_virtual_machine_instance_replica_set.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_virtual_machine_instancetype.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_virtual_machine_preference.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_volume_snapshot.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_resources/test_volume_snapshot_class.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_schema_loading.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_unittests.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_validate_resources.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_validate_resources_script.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/test_validation_error.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tests/utils.py +0 -0
- {openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/tox.toml +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
gitdir: /tmp/github-webhook-openshift-python-wrapper-pmksfq2g/.git/worktrees/github-webhook-openshift-python-wrapper-pmksfq2g-worktree-a249b4d1-4ec7-4be9-8afc-75119b851f54
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openshift-python-wrapper
|
|
3
|
-
Version: 11.0.
|
|
3
|
+
Version: 11.0.118
|
|
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/
|
|
@@ -163,6 +163,10 @@ def identify_missing_resources(client: str, existing_resources_mapping: dict[Any
|
|
|
163
163
|
"""
|
|
164
164
|
Identify resources that exist in the cluster but are missing from our mapping.
|
|
165
165
|
|
|
166
|
+
Compares using (group, kind) pairs so that resources with the same kind but
|
|
167
|
+
different API groups (e.g. velero.io/Backup vs postgresql.cnpg.noobaa.io/Backup)
|
|
168
|
+
are tracked independently.
|
|
169
|
+
|
|
166
170
|
Args:
|
|
167
171
|
client: Path to kubectl/oc client binary
|
|
168
172
|
existing_resources_mapping: Current resources mapping
|
|
@@ -172,7 +176,7 @@ def identify_missing_resources(client: str, existing_resources_mapping: dict[Any
|
|
|
172
176
|
"""
|
|
173
177
|
missing_resources: set[str] = set()
|
|
174
178
|
|
|
175
|
-
# Get all available resources from cluster
|
|
179
|
+
# Get all available resources from cluster with their API groups
|
|
176
180
|
cmd = f"{client} api-resources --no-headers"
|
|
177
181
|
success, output, _ = run_command(command=shlex.split(cmd), check=False, log_errors=False)
|
|
178
182
|
|
|
@@ -180,49 +184,75 @@ def identify_missing_resources(client: str, existing_resources_mapping: dict[Any
|
|
|
180
184
|
LOGGER.debug("Failed to get api-resources from cluster")
|
|
181
185
|
return missing_resources
|
|
182
186
|
|
|
183
|
-
#
|
|
184
|
-
|
|
187
|
+
# Build kind -> set of groups from cluster resources
|
|
188
|
+
cluster_kind_groups: dict[str, set[str]] = {}
|
|
185
189
|
lines = output.strip().split("\n")
|
|
186
190
|
|
|
187
191
|
for line in lines:
|
|
188
192
|
parts = [p for p in line.split() if p]
|
|
189
|
-
if parts:
|
|
190
|
-
|
|
191
|
-
cluster_resources.add(kind)
|
|
193
|
+
if len(parts) < 3:
|
|
194
|
+
continue
|
|
192
195
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
196
|
+
# Find APIVERSION column by looking for version patterns
|
|
197
|
+
# (same logic as build_dynamic_resource_to_api_mapping)
|
|
198
|
+
apiversion_idx = None
|
|
199
|
+
for i, part in enumerate(parts):
|
|
200
|
+
if ("/" in part and ("v" in part or "alpha" in part or "beta" in part)) or (
|
|
201
|
+
part.startswith("v") and part[1:].replace(".", "").replace("alpha", "").replace("beta", "").isdigit()
|
|
202
|
+
):
|
|
203
|
+
apiversion_idx = i
|
|
204
|
+
break
|
|
205
|
+
|
|
206
|
+
if apiversion_idx is None:
|
|
198
207
|
continue
|
|
199
208
|
|
|
200
|
-
#
|
|
201
|
-
|
|
202
|
-
if not isinstance(first_schema, dict):
|
|
203
|
-
LOGGER.debug(f"Skipping malformed schema: first_schema is not a dict, got {type(first_schema)}")
|
|
209
|
+
# KIND is 2 columns after APIVERSION (APIVERSION, NAMESPACED, KIND)
|
|
210
|
+
if len(parts) <= apiversion_idx + 2:
|
|
204
211
|
continue
|
|
205
212
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
213
|
+
apiversion = parts[apiversion_idx]
|
|
214
|
+
kind = parts[apiversion_idx + 2]
|
|
215
|
+
|
|
216
|
+
# Extract group from apiversion: "velero.io/v1" -> "velero.io", "v1" -> ""
|
|
217
|
+
group = apiversion.rsplit("/", 1)[0] if "/" in apiversion else ""
|
|
218
|
+
|
|
219
|
+
cluster_kind_groups.setdefault(kind, set()).add(group)
|
|
220
|
+
|
|
221
|
+
# Build kind -> set of groups from existing mappings
|
|
222
|
+
existing_kind_groups: dict[str, set[str]] = {}
|
|
223
|
+
for _, resource_schemas in existing_resources_mapping.items():
|
|
224
|
+
if not isinstance(resource_schemas, list) or not resource_schemas:
|
|
212
225
|
continue
|
|
213
226
|
|
|
214
|
-
#
|
|
215
|
-
for
|
|
216
|
-
if not isinstance(
|
|
217
|
-
LOGGER.debug(f"Skipping malformed gvk item: not a dict, got {type(gvk_item)}")
|
|
227
|
+
# Check ALL schemas in the list, not just the first one
|
|
228
|
+
for schema in resource_schemas:
|
|
229
|
+
if not isinstance(schema, dict):
|
|
218
230
|
continue
|
|
219
231
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
232
|
+
gvk_list = schema.get("x-kubernetes-group-version-kind")
|
|
233
|
+
if not isinstance(gvk_list, list) or not gvk_list:
|
|
234
|
+
continue
|
|
235
|
+
|
|
236
|
+
for gvk_item in gvk_list:
|
|
237
|
+
if not isinstance(gvk_item, dict):
|
|
238
|
+
continue
|
|
239
|
+
|
|
240
|
+
kind = gvk_item.get("kind")
|
|
241
|
+
if not isinstance(kind, str) or not kind.strip():
|
|
242
|
+
continue
|
|
243
|
+
|
|
244
|
+
kind = kind.strip()
|
|
245
|
+
group_raw = gvk_item.get("group", "")
|
|
246
|
+
group = group_raw.strip() if isinstance(group_raw, str) else ""
|
|
247
|
+
|
|
248
|
+
existing_kind_groups.setdefault(kind, set()).add(group)
|
|
249
|
+
|
|
250
|
+
# Find missing resources: kind is missing if any cluster group is not in existing groups
|
|
251
|
+
for kind, cluster_groups in cluster_kind_groups.items():
|
|
252
|
+
existing_groups = existing_kind_groups.get(kind, set())
|
|
253
|
+
if not cluster_groups.issubset(existing_groups):
|
|
254
|
+
missing_resources.add(kind)
|
|
224
255
|
|
|
225
|
-
missing_resources = cluster_resources - existing_kinds
|
|
226
256
|
LOGGER.info(f"Found {len(missing_resources)} missing resources: {sorted(list(missing_resources)[:10])}")
|
|
227
257
|
|
|
228
258
|
return missing_resources
|
|
@@ -661,9 +691,32 @@ def process_schema_definitions(
|
|
|
661
691
|
f"Added new schema version for existing resource: {kind_lower} ({group or 'core'}/{version})"
|
|
662
692
|
)
|
|
663
693
|
else:
|
|
664
|
-
#
|
|
665
|
-
|
|
666
|
-
|
|
694
|
+
# Older cluster: keep existing schemas untouched, but still add
|
|
695
|
+
# missing group/version variants for existing kinds.
|
|
696
|
+
existing_schemas = resources_mapping.get(kind_lower, [])
|
|
697
|
+
variant_exists = False
|
|
698
|
+
for existing_schema in existing_schemas:
|
|
699
|
+
if not isinstance(existing_schema, dict):
|
|
700
|
+
continue
|
|
701
|
+
existing_gvk_list = existing_schema.get("x-kubernetes-group-version-kind") or []
|
|
702
|
+
for existing_gvk in existing_gvk_list:
|
|
703
|
+
if not isinstance(existing_gvk, dict):
|
|
704
|
+
continue
|
|
705
|
+
if existing_gvk.get("group") == group and existing_gvk.get("version") == version:
|
|
706
|
+
variant_exists = True
|
|
707
|
+
break
|
|
708
|
+
if variant_exists:
|
|
709
|
+
break
|
|
710
|
+
|
|
711
|
+
if variant_exists:
|
|
712
|
+
LOGGER.debug(f"Skipping update for existing resource: {kind_lower}")
|
|
713
|
+
continue
|
|
714
|
+
|
|
715
|
+
existing_schemas.append(schema_data)
|
|
716
|
+
updated_resources += 1
|
|
717
|
+
LOGGER.debug(
|
|
718
|
+
f"Added missing schema variant for existing resource: {kind_lower} ({group or 'core'}/{version})"
|
|
719
|
+
)
|
|
667
720
|
|
|
668
721
|
# Also store in definitions for separate definitions file
|
|
669
722
|
definitions[schema_name] = schema_data
|
|
@@ -306,16 +306,16 @@ class TestIdentifyMissingResources:
|
|
|
306
306
|
@patch("class_generator.core.schema.run_command")
|
|
307
307
|
def test_successful_missing_resources_identification(self, mock_run_command):
|
|
308
308
|
"""Test successful identification of missing resources."""
|
|
309
|
-
api_resources_output = """pods
|
|
310
|
-
services
|
|
311
|
-
deployments
|
|
312
|
-
configmaps
|
|
309
|
+
api_resources_output = """pods po v1 true Pod
|
|
310
|
+
services svc v1 true Service
|
|
311
|
+
deployments deploy apps/v1 true Deployment
|
|
312
|
+
configmaps cm v1 true ConfigMap"""
|
|
313
313
|
|
|
314
314
|
mock_run_command.return_value = (True, api_resources_output, "")
|
|
315
315
|
|
|
316
316
|
existing_mapping = {
|
|
317
|
-
"pod": [{"x-kubernetes-group-version-kind": [{"kind": "Pod"}]}],
|
|
318
|
-
"service": [{"x-kubernetes-group-version-kind": [{"kind": "Service"}]}],
|
|
317
|
+
"pod": [{"x-kubernetes-group-version-kind": [{"group": "", "version": "v1", "kind": "Pod"}]}],
|
|
318
|
+
"service": [{"x-kubernetes-group-version-kind": [{"group": "", "version": "v1", "kind": "Service"}]}],
|
|
319
319
|
}
|
|
320
320
|
|
|
321
321
|
result = identify_missing_resources("kubectl", existing_mapping)
|
|
@@ -333,14 +333,14 @@ configmaps cm v1 ConfigMap"""
|
|
|
333
333
|
@patch("class_generator.core.schema.run_command")
|
|
334
334
|
def test_no_missing_resources(self, mock_run_command):
|
|
335
335
|
"""Test when no resources are missing."""
|
|
336
|
-
api_resources_output = """pods
|
|
337
|
-
services
|
|
336
|
+
api_resources_output = """pods po v1 true Pod
|
|
337
|
+
services svc v1 true Service"""
|
|
338
338
|
|
|
339
339
|
mock_run_command.return_value = (True, api_resources_output, "")
|
|
340
340
|
|
|
341
341
|
existing_mapping = {
|
|
342
|
-
"pod": [{"x-kubernetes-group-version-kind": [{"kind": "Pod"}]}],
|
|
343
|
-
"service": [{"x-kubernetes-group-version-kind": [{"kind": "Service"}]}],
|
|
342
|
+
"pod": [{"x-kubernetes-group-version-kind": [{"group": "", "version": "v1", "kind": "Pod"}]}],
|
|
343
|
+
"service": [{"x-kubernetes-group-version-kind": [{"group": "", "version": "v1", "kind": "Service"}]}],
|
|
344
344
|
}
|
|
345
345
|
|
|
346
346
|
result = identify_missing_resources("kubectl", existing_mapping)
|
|
@@ -349,7 +349,9 @@ services svc v1 Service"""
|
|
|
349
349
|
@patch("class_generator.core.schema.run_command")
|
|
350
350
|
def test_malformed_existing_mapping_handled(self, mock_run_command):
|
|
351
351
|
"""Test that malformed existing mapping is handled gracefully."""
|
|
352
|
-
api_resources_output =
|
|
352
|
+
api_resources_output = (
|
|
353
|
+
"pods po v1 true Pod"
|
|
354
|
+
)
|
|
353
355
|
mock_run_command.return_value = (True, api_resources_output, "")
|
|
354
356
|
|
|
355
357
|
# Malformed mapping - missing required structure
|
|
@@ -359,6 +361,166 @@ services svc v1 Service"""
|
|
|
359
361
|
assert "Pod" in result
|
|
360
362
|
|
|
361
363
|
|
|
364
|
+
class TestIdentifyMissingResourcesDuplicateKinds:
|
|
365
|
+
"""Test identify_missing_resources with duplicate kinds across API groups."""
|
|
366
|
+
|
|
367
|
+
CLUSTER_OUTPUT_DUPLICATE_BACKUP = (
|
|
368
|
+
"configmaps cm v1 true ConfigMap\n"
|
|
369
|
+
"backups velero.io/v1 true Backup\n"
|
|
370
|
+
"backups postgresql.cnpg.noobaa.io/v1 true Backup\n"
|
|
371
|
+
"widgets example.com/v1 true Widget"
|
|
372
|
+
)
|
|
373
|
+
|
|
374
|
+
@pytest.mark.parametrize(
|
|
375
|
+
"test_id, existing_mapping, expected_missing",
|
|
376
|
+
[
|
|
377
|
+
pytest.param(
|
|
378
|
+
"duplicate_kind_one_group_covered",
|
|
379
|
+
{
|
|
380
|
+
"backup": [
|
|
381
|
+
{
|
|
382
|
+
"x-kubernetes-group-version-kind": [
|
|
383
|
+
{"group": "postgresql.cnpg.noobaa.io", "version": "v1", "kind": "Backup"}
|
|
384
|
+
],
|
|
385
|
+
"namespaced": True,
|
|
386
|
+
}
|
|
387
|
+
],
|
|
388
|
+
"configmap": [
|
|
389
|
+
{
|
|
390
|
+
"x-kubernetes-group-version-kind": [{"group": "", "version": "v1", "kind": "ConfigMap"}],
|
|
391
|
+
"namespaced": True,
|
|
392
|
+
}
|
|
393
|
+
],
|
|
394
|
+
},
|
|
395
|
+
{"Backup", "Widget"},
|
|
396
|
+
id="duplicate_kind_one_group_covered",
|
|
397
|
+
),
|
|
398
|
+
pytest.param(
|
|
399
|
+
"duplicate_kind_all_groups_covered",
|
|
400
|
+
{
|
|
401
|
+
"backup_velero": [
|
|
402
|
+
{
|
|
403
|
+
"x-kubernetes-group-version-kind": [
|
|
404
|
+
{"group": "velero.io", "version": "v1", "kind": "Backup"}
|
|
405
|
+
],
|
|
406
|
+
"namespaced": True,
|
|
407
|
+
}
|
|
408
|
+
],
|
|
409
|
+
"backup_cnpg": [
|
|
410
|
+
{
|
|
411
|
+
"x-kubernetes-group-version-kind": [
|
|
412
|
+
{"group": "postgresql.cnpg.noobaa.io", "version": "v1", "kind": "Backup"}
|
|
413
|
+
],
|
|
414
|
+
"namespaced": True,
|
|
415
|
+
}
|
|
416
|
+
],
|
|
417
|
+
"configmap": [
|
|
418
|
+
{
|
|
419
|
+
"x-kubernetes-group-version-kind": [{"group": "", "version": "v1", "kind": "ConfigMap"}],
|
|
420
|
+
"namespaced": True,
|
|
421
|
+
}
|
|
422
|
+
],
|
|
423
|
+
"widget": [
|
|
424
|
+
{
|
|
425
|
+
"x-kubernetes-group-version-kind": [
|
|
426
|
+
{"group": "example.com", "version": "v1", "kind": "Widget"}
|
|
427
|
+
],
|
|
428
|
+
"namespaced": True,
|
|
429
|
+
}
|
|
430
|
+
],
|
|
431
|
+
},
|
|
432
|
+
set(),
|
|
433
|
+
id="duplicate_kind_all_groups_covered",
|
|
434
|
+
),
|
|
435
|
+
pytest.param(
|
|
436
|
+
"completely_new_kind",
|
|
437
|
+
{
|
|
438
|
+
"configmap": [
|
|
439
|
+
{
|
|
440
|
+
"x-kubernetes-group-version-kind": [{"group": "", "version": "v1", "kind": "ConfigMap"}],
|
|
441
|
+
"namespaced": True,
|
|
442
|
+
}
|
|
443
|
+
],
|
|
444
|
+
},
|
|
445
|
+
{"Backup", "Widget"},
|
|
446
|
+
id="completely_new_kind",
|
|
447
|
+
),
|
|
448
|
+
pytest.param(
|
|
449
|
+
"core_api_resource_covered",
|
|
450
|
+
{
|
|
451
|
+
"backup_velero": [
|
|
452
|
+
{
|
|
453
|
+
"x-kubernetes-group-version-kind": [
|
|
454
|
+
{"group": "velero.io", "version": "v1", "kind": "Backup"}
|
|
455
|
+
],
|
|
456
|
+
"namespaced": True,
|
|
457
|
+
}
|
|
458
|
+
],
|
|
459
|
+
"backup_cnpg": [
|
|
460
|
+
{
|
|
461
|
+
"x-kubernetes-group-version-kind": [
|
|
462
|
+
{"group": "postgresql.cnpg.noobaa.io", "version": "v1", "kind": "Backup"}
|
|
463
|
+
],
|
|
464
|
+
"namespaced": True,
|
|
465
|
+
}
|
|
466
|
+
],
|
|
467
|
+
"configmap": [
|
|
468
|
+
{
|
|
469
|
+
"x-kubernetes-group-version-kind": [{"group": "", "version": "v1", "kind": "ConfigMap"}],
|
|
470
|
+
"namespaced": True,
|
|
471
|
+
}
|
|
472
|
+
],
|
|
473
|
+
},
|
|
474
|
+
{"Widget"},
|
|
475
|
+
id="core_api_resource_covered",
|
|
476
|
+
),
|
|
477
|
+
],
|
|
478
|
+
)
|
|
479
|
+
@patch("class_generator.core.schema.run_command")
|
|
480
|
+
def test_identify_missing_resources_duplicate_kinds(
|
|
481
|
+
self,
|
|
482
|
+
mock_run_command,
|
|
483
|
+
test_id,
|
|
484
|
+
existing_mapping,
|
|
485
|
+
expected_missing,
|
|
486
|
+
):
|
|
487
|
+
"""Test identify_missing_resources correctly handles duplicate kinds across API groups."""
|
|
488
|
+
mock_run_command.return_value = (True, self.CLUSTER_OUTPUT_DUPLICATE_BACKUP, "")
|
|
489
|
+
|
|
490
|
+
result = identify_missing_resources("oc", existing_mapping)
|
|
491
|
+
assert result == expected_missing, f"[{test_id}] Expected {expected_missing}, got {result}"
|
|
492
|
+
|
|
493
|
+
def test_allow_updates_false_appends_missing_group_variant(self):
|
|
494
|
+
"""Test that allow_updates=False still appends missing group variants for existing kinds."""
|
|
495
|
+
schemas = {
|
|
496
|
+
"apis/postgresql.cnpg.noobaa.io/v1": {
|
|
497
|
+
"components": {
|
|
498
|
+
"schemas": {
|
|
499
|
+
"io.example.Backup": {
|
|
500
|
+
"type": "object",
|
|
501
|
+
"x-kubernetes-group-version-kind": [
|
|
502
|
+
{"group": "postgresql.cnpg.noobaa.io", "version": "v1", "kind": "Backup"}
|
|
503
|
+
],
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
existing_mapping = {
|
|
510
|
+
"backup": [{"x-kubernetes-group-version-kind": [{"group": "velero.io", "version": "v1", "kind": "Backup"}]}]
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
resources_mapping, _ = process_schema_definitions(
|
|
514
|
+
schemas=schemas,
|
|
515
|
+
namespacing_dict={"Backup": True},
|
|
516
|
+
existing_resources_mapping=existing_mapping,
|
|
517
|
+
allow_updates=False,
|
|
518
|
+
)
|
|
519
|
+
|
|
520
|
+
groups = {item["x-kubernetes-group-version-kind"][0].get("group", "") for item in resources_mapping["backup"]}
|
|
521
|
+
assert groups == {"velero.io", "postgresql.cnpg.noobaa.io"}
|
|
522
|
+
|
|
523
|
+
|
|
362
524
|
class TestBuildDynamicResourceToApiMapping:
|
|
363
525
|
"""Test build_dynamic_resource_to_api_mapping function."""
|
|
364
526
|
|
|
@@ -72,7 +72,7 @@ include = [
|
|
|
72
72
|
[project]
|
|
73
73
|
requires-python = ">=3.10"
|
|
74
74
|
name = "openshift-python-wrapper"
|
|
75
|
-
version = "11.0.
|
|
75
|
+
version = "11.0.118"
|
|
76
76
|
description = "Wrapper around https://github.com/kubernetes-client/python"
|
|
77
77
|
readme = "README.md"
|
|
78
78
|
license = "Apache-2.0"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
gitdir: /tmp/github-webhook-openshift-python-wrapper-rafsx54n/.git/worktrees/github-webhook-openshift-python-wrapper-rafsx54n-worktree-64d4952f-1cfc-4271-a303-e0a96e3e4686
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/.github/weekly-digest.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/.pre-commit-config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/.sonarcloud.properties
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/README.md
RENAMED
|
File without changes
|
{openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/__init__.py
RENAMED
|
File without changes
|
{openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/cli.py
RENAMED
|
File without changes
|
{openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/class_generator/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/docs/ocp_resources.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openshift_python_wrapper-11.0.117 → openshift_python_wrapper-11.0.118}/examples/resource_list.py
RENAMED
|
File without changes
|
|
File without changes
|