openshift-python-wrapper 4.20.6__tar.gz → 4.20.8__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-4.20.8/.git +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/.pre-commit-config.yaml +3 -3
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/PKG-INFO +2 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/cli.py +4 -5
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/core/discovery.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/core/generator.py +2 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/core/schema.py +9 -11
- openshift_python_wrapper-4.20.8/class_generator/formatters/file_writer.py +71 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/manifests/class_generator_template.j2 +5 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/parsers/type_parser.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/parsers/user_code_parser.py +1 -1
- {openshift_python_wrapper-4.20.6/ocp_resources → openshift_python_wrapper-4.20.8/class_generator/tests/manifests/APIServer}/api_server.py +2 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/manifests/ClusterOperator/cluster_operator.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/manifests/ConfigMap/config_map.py +2 -0
- {openshift_python_wrapper-4.20.6/ocp_resources → openshift_python_wrapper-4.20.8/class_generator/tests/manifests/DNS}/dns_config_openshift_io.py +2 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/manifests/DNS/dns_operator_openshift_io.py +2 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/manifests/Deployment/deployment.py +3 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/manifests/ImageContentSourcePolicy/image_content_source_policy.py +2 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/manifests/Ingress/ingress_config_openshift_io.py +2 -0
- {openshift_python_wrapper-4.20.6/ocp_resources → openshift_python_wrapper-4.20.8/class_generator/tests/manifests/Ingress}/ingress_networking_k8s_io.py +2 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/manifests/Machine/machine.py +2 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/manifests/NMState/nm_state.py +2 -0
- {openshift_python_wrapper-4.20.6/ocp_resources → openshift_python_wrapper-4.20.8/class_generator/tests/manifests/OAuth}/oauth.py +2 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/manifests/Pipeline/pipeline.py +2 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/manifests/Pod/pod.py +3 -1
- {openshift_python_wrapper-4.20.6/ocp_resources → openshift_python_wrapper-4.20.8/class_generator/tests/manifests/RouteAdvertisements}/route_advertisements.py +3 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/manifests/Secret/secret.py +2 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/manifests/ServiceMeshMember/service_mesh_member.py +3 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/manifests/ServingRuntime/serving_runtime.py +3 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/manifests/test_parse_explain.j2 +12 -17
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/test_class_generator.py +18 -22
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/test_cli.py +3 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/test_resource_discovery.py +75 -81
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/test_schema_new_functions.py +17 -10
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/utils.py +34 -35
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/examples/resource_list.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/examples/validation_demo.py +4 -3
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/fake_kubernetes_client/dynamic_client.py +4 -4
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/fake_kubernetes_client/exceptions.py +1 -5
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/fake_kubernetes_client/kubernetes_client.py +13 -13
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/fake_kubernetes_client/resource_field.py +3 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/fake_kubernetes_client/resource_instance.py +21 -20
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/fake_kubernetes_client/resource_manager.py +11 -13
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/fake_kubernetes_client/resource_registry.py +9 -9
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/fake_kubernetes_client/resource_storage.py +8 -12
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/fake_kubernetes_client/status_schema_parser.py +3 -3
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/fake_kubernetes_client/status_templates.py +2 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/mcp_server/example_client.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/mcp_server/server.py +5 -5
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/mcp_server/tests/test_server.py +10 -10
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/aaq.py +1 -0
- {openshift_python_wrapper-4.20.6/class_generator/tests/manifests/APIServer → openshift_python_wrapper-4.20.8/ocp_resources}/api_server.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/authorino.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/backup.py +0 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/catalog_source.py +3 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/cdi.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/chaos_engine.py +0 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/chaos_result.py +0 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/cluster_resource_quota.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/cluster_role.py +0 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/cluster_role_binding.py +0 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/cluster_user_defined_network.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/config_imageregistry_operator_openshift_io.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/config_operator_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/config_samples_operator_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/console_config_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/console_operator_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/csi_driver.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/data_import_cron.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/data_science_cluster.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/data_source.py +2 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/datavolume.py +13 -9
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/destination_rule.py +0 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/direct_volume_migration.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/direct_volume_migration_progress.py +1 -0
- {openshift_python_wrapper-4.20.6/class_generator/tests/manifests/DNS → openshift_python_wrapper-4.20.8/ocp_resources}/dns_config_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/dns_operator_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/dsc_initialization.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/frr_configuration.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/gateway.py +0 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/gateway_class.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/gateway_gateway_networking_k8s_io.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/gateway_networking_istio_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/group.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/hostpath_provisioner.py +1 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/image_config_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/image_content_source_policy.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/image_image_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/inference_graph.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/ingress_config_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6/class_generator/tests/manifests/Ingress → openshift_python_wrapper-4.20.8/ocp_resources}/ingress_networking_k8s_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/jaeger.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/kube_descheduler.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/kubelet_config.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/kubevirt.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/llama_stack_distribution.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/llm_inference_service.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/lm_eval_job.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/machine_set.py +3 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/maria_db.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/mariadb_operator.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/mig_analytic.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/mig_cluster.py +2 -1
- openshift_python_wrapper-4.20.8/ocp_resources/mig_controller.py +54 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/mig_migration.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/mig_plan.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/model_registry_components_platform_opendatahub_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/model_registry_modelregistry_opendatahub_io.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/multi_namespace_virtual_machine_storage_migration.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/multi_namespace_virtual_machine_storage_migration_plan.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/namespace.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/network_config_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/network_operator_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/network_policy.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/nm_state.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/node_config_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/notebook.py +1 -0
- {openshift_python_wrapper-4.20.6/class_generator/tests/manifests/OAuth → openshift_python_wrapper-4.20.8/ocp_resources}/oauth.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/open_telemetry_collector.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/operator.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/peer_authentication.py +0 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/persistent_volume.py +0 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/persistent_volume_claim.py +1 -3
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/pipeline.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/pipeline_run.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/pod_metrics.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/project_config_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/project_project_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/prometheus.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/replica_set.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/resource.py +10 -12
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/restore.py +0 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/rhmi.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/role.py +1 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/role_binding.py +1 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/route.py +1 -2
- {openshift_python_wrapper-4.20.6/class_generator/tests/manifests/RouteAdvertisements → openshift_python_wrapper-4.20.8/ocp_resources}/route_advertisements.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/scaled_object.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/scheduler.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/security_context_constraints.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/self_subject_review.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/service.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/service_account.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/service_mesh_control_plane.py +0 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/service_mesh_member.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/service_mesh_member_roll.py +0 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/serving_runtime.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/snapshot.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/sriov_network_node_state.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/ssp.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/storage_class.py +0 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/storage_cluster.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/storage_profile.py +0 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/task.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/task_run.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/tempo_stack.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/upload_token_request.py +1 -3
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/user.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/utils/schema_validator.py +11 -8
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/virtual_machine_cluster_instancetype.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/virtual_machine_cluster_preference.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/virtual_machine_export.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/virtual_machine_import.py +2 -4
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/virtual_machine_instance_migration.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/virtual_machine_instance_preset.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/virtual_machine_instance_replica_set.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/virtual_machine_instancetype.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/virtual_machine_preference.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/virtual_machine_restore.py +2 -4
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/virtual_machine_snapshot.py +2 -4
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/virtual_machine_storage_migration.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/virtual_machine_storage_migration_plan.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/virtual_service.py +0 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/volume_snapshot.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/volume_snapshot_class.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/pyproject.toml +29 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/scripts/generate_pytest_test.py +4 -4
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/scripts/validate_resources.py +4 -3
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_api_group_order.py +2 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_aaq.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_api_server.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_authorino.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_cdi.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_cdi_config.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_cluster_resource_quota.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_cluster_user_defined_network.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_config_map.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_console_config_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_console_operator_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_csi_driver.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_data_import_cron.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_data_science_cluster.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_deployment.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_direct_volume_migration.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_direct_volume_migration_progress.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_dns_config_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_dns_operator_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_dsc_initialization.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_group.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_guardrails_orchestrator.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_image_caching_internal_knative_dev.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_image_config_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_image_content_source_policy.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_image_image_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_inference_graph.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_kube_descheduler.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_kubelet_config.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_kubevirt.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_llama_stack_distribution.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_lm_eval_job.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_machine.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_maria_db.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_mariadb_operator.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_mig_analytic.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_mig_cluster.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_mig_migration.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_mig_plan.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_model_registry.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_model_registry_components_platform_opendatahub_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_model_registry_modelregistry_opendatahub_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_mtq.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_namespace.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_network_config_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_network_operator_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_nm_state.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_node.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_node_config_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_node_network_configuration_policy_latest.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_notebook.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_oauth.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_operator.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_pod.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_pod_metrics.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_project_config_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_project_project_openshift_io.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_project_request.py +2 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_prometheus.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_replica_set.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_scheduler.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_security_context_constraints.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_self_subject_review.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_service.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_service_mesh_member.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_service_serving_knative_dev.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_serving_runtime.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_snapshot.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_ssp.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_storage_cluster.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_user.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_user_defined_network.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_virtual_machine_cluster_instancetype.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_virtual_machine_cluster_preference.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_virtual_machine_export.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_virtual_machine_instance_migration.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_virtual_machine_instance_preset.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_virtual_machine_instance_replica_set.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_virtual_machine_instancetype.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_virtual_machine_preference.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_volume_snapshot.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resources/test_volume_snapshot_class.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_unittests.py +1 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/utils.py +1 -1
- openshift_python_wrapper-4.20.8/uv.lock +2763 -0
- openshift_python_wrapper-4.20.6/.git +0 -1
- openshift_python_wrapper-4.20.6/class_generator/formatters/file_writer.py +0 -36
- openshift_python_wrapper-4.20.6/uv.lock +0 -2312
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/.coderabbit.yaml +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/.dockerignore +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/.flake8 +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/.gitattributes +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/.github/pull_request_template.md +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/.github/weekly-digest.yml +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/.github/workflows/close-stale-issues.yml +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/.gitignore +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/.gitleaks.toml +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/.readthedocs.yaml +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/.release-it.json +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/.sonarcloud.properties +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/CONTRIBUTING.md +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/LICENSE +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/Makefile +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/OWNERS +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/README.md +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/VERSION +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/README.md +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/__init__.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/constants.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/core/__init__.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/core/coverage.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/formatters/__init__.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/formatters/template_renderer.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/parsers/__init__.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/parsers/explain_parser.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/py.typed +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/schema/__cluster_version__.txt +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/schema/__resources-mappings.json.gz +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/schema/_definitions.json +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/test_batch_regeneration.py +2 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/test_generation.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/test_schema_parsing.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/test_user_code_parser.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/tests/test_utils.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/docs/Makefile +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/docs/conf.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/docs/index.rst +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/docs/modules.rst +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/docs/ocp_resources.rst +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/examples/general.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/examples/node_network_configuration_policy.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/examples/pods.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/examples/role.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/examples/special_cases.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/examples/validation_troubleshooting.py +2 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/examples/virtual_machine.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/fake_kubernetes_client/README.md +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/fake_kubernetes_client/__init__.py +3 -3
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/fake_kubernetes_client/configuration.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/fake_kubernetes_client/types.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/mcp_server/README.md +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/mcp_server/__init__.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/mcp_server/server-info.json +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/mcp_server/tests/__init__.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/__init__.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/api_service.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/application_aware_applied_cluster_resource_quota.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/application_aware_cluster_resource_quota.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/application_aware_resource_quota.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/benchmark.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/bgp_session_state.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/cdi_config.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/cluster_claim.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/cluster_deployment.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/cluster_operator.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/cluster_pool.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/cluster_service_version.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/cluster_version.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/config_map.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/console_cli_download.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/console_plugin.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/console_quick_start.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/controller_revision.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/cron_job.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/csi_storage_capacity.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/custom_resource_definition.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/daemonset.py +2 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/deployment.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/endpoint_slice.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/endpoints.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/event.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/exceptions.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/fence_agent_remediation_templates.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/forklift_controller.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/guardrails_orchestrator.py +2 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/hook.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/host.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/hyperconverged.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/image_caching_internal_knative_dev.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/image_digest_mirror_set.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/image_stream.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/imagestreamtag.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/inference_service.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/infrastructure.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/ingress_controller.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/installplan.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/ip_address_pool.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/job.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/l2_advertisement.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/lease.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/limit_range.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/machine.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/machine_config.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/machine_config_pool.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/machine_health_check.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/managed_cluster.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/metallb.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/migration.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/migration_policy.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/model_registry.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/mtq.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/multi_cluster_hub.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/multi_cluster_observability.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/multi_network_policy.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/mutating_webhook_config.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/network_addons_config.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/network_attachment_definition.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/network_map.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/node.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/node_health_check.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/node_maintenance.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/node_network_configuration_enactment.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/node_network_configuration_policy.py +2 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/node_network_configuration_policy_latest.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/node_network_state.py +2 -2
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/ocs_initialization.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/operator_condition.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/operator_group.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/operator_hub.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/operator_source.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/package_manifest.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/performance_profile.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/plan.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/pod.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/pod_disruption_budget.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/priority_class.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/project_request.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/prometheus_rule.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/provider.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/proxy.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/py.typed +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/reclaim_space_cron_job.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/reclaim_space_job.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/resource_quota.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/sealed_secret.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/secret.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/self_node_remediation_templates.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/service_monitor.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/service_serving_knative_dev.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/sriov_network.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/sriov_network_node_policy.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/storage_map.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/subscription.py +1 -1
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/tekton_tasks.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/template.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/trustyai_service.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/user_defined_network.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/utils/__init__.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/utils/archive_utils.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/utils/constants.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/utils/resource_constants.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/utils/utils.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/validating_webhook_config.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/virtual_machine.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/virtual_machine_clone.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/virtual_machine_instance.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/virtual_machine_migration_resource_quota.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/ocp_resources/vm_import_config.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/pypi-dist/.gitignore +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/renovate.json +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/scripts/__init__.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/scripts/diff-from-latest-release.sh +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/scripts/diff-from-tag.sh +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/scripts/generate_changelog.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/scripts/get-latest-release.sh +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/sonar-project.properties +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/__init__.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/conftest.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/fixtures/validation_schemas.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/manifests/vm.yaml +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/scripts/__init__.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_camelcase_to_snake.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resource.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_resource_validation.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_schema_loading.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_validate_resources.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_validate_resources_script.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tests/test_validation_error.py +0 -0
- {openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/tox.toml +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
gitdir: /tmp/github-webhook-openshift-python-wrapper-zslul6r2/.git/worktrees/github-webhook-openshift-python-wrapper-zslul6r2-worktree-6689080a-f1a6-4520-b182-7e93e358d7b3
|
|
@@ -45,18 +45,18 @@ repos:
|
|
|
45
45
|
]
|
|
46
46
|
|
|
47
47
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
48
|
-
rev: v0.14
|
|
48
|
+
rev: v0.15.14
|
|
49
49
|
hooks:
|
|
50
50
|
- id: ruff
|
|
51
51
|
- id: ruff-format
|
|
52
52
|
|
|
53
53
|
- repo: https://github.com/gitleaks/gitleaks
|
|
54
|
-
rev: v8.
|
|
54
|
+
rev: v8.30.1
|
|
55
55
|
hooks:
|
|
56
56
|
- id: gitleaks
|
|
57
57
|
|
|
58
58
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
59
|
-
rev:
|
|
59
|
+
rev: v2.1.0
|
|
60
60
|
hooks:
|
|
61
61
|
- id: mypy
|
|
62
62
|
exclude: ^(tests/|examples/|docs/)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openshift-python-wrapper
|
|
3
|
-
Version: 4.20.
|
|
3
|
+
Version: 4.20.8
|
|
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/
|
|
@@ -20,7 +20,7 @@ Requires-Dist: deepdiff>=8.0.1
|
|
|
20
20
|
Requires-Dist: fastmcp>=2.10.4
|
|
21
21
|
Requires-Dist: jinja2>=3.1.4
|
|
22
22
|
Requires-Dist: jsonschema>=4.20.0
|
|
23
|
-
Requires-Dist: kubernetes
|
|
23
|
+
Requires-Dist: kubernetes!=36.0.0,>=31.0.0
|
|
24
24
|
Requires-Dist: packaging>=24.1
|
|
25
25
|
Requires-Dist: pyhelper-utils>=0.0.42
|
|
26
26
|
Requires-Dist: python-benedict>=0.33.2
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
"""Command-line interface for the class generator."""
|
|
2
2
|
|
|
3
3
|
import fnmatch
|
|
4
|
+
import logging
|
|
4
5
|
import shutil
|
|
5
6
|
import sys
|
|
6
7
|
from datetime import datetime
|
|
7
8
|
from pathlib import Path
|
|
8
9
|
from typing import Any
|
|
9
10
|
|
|
10
|
-
import logging
|
|
11
|
-
|
|
12
11
|
import cloup
|
|
13
12
|
from cloup.constraints import If, IsSet, accept_none, require_one
|
|
14
13
|
from simple_logger.logger import get_logger
|
|
@@ -17,7 +16,7 @@ from class_generator.constants import TESTS_MANIFESTS_DIR
|
|
|
17
16
|
from class_generator.core.coverage import analyze_coverage, generate_report
|
|
18
17
|
from class_generator.core.discovery import discover_generated_resources
|
|
19
18
|
from class_generator.core.generator import class_generator
|
|
20
|
-
from class_generator.core.schema import
|
|
19
|
+
from class_generator.core.schema import ClusterVersionError, update_kind_schema
|
|
21
20
|
from class_generator.tests.test_generation import generate_class_generator_tests
|
|
22
21
|
from class_generator.utils import execute_parallel_tasks
|
|
23
22
|
from ocp_resources.utils.utils import convert_camel_case_to_snake_case
|
|
@@ -57,7 +56,7 @@ def handle_schema_update(update_schema: bool, generate_missing: bool) -> bool:
|
|
|
57
56
|
LOGGER.info("Updating resource schema...")
|
|
58
57
|
try:
|
|
59
58
|
update_kind_schema()
|
|
60
|
-
except (
|
|
59
|
+
except (OSError, RuntimeError, ClusterVersionError) as e:
|
|
61
60
|
LOGGER.exception(f"Failed to update schema: {e}")
|
|
62
61
|
sys.exit(1)
|
|
63
62
|
|
|
@@ -450,7 +449,7 @@ def handle_test_generation(add_tests: bool) -> None:
|
|
|
450
449
|
import os
|
|
451
450
|
|
|
452
451
|
test_file = "class_generator/tests/test_class_generator.py"
|
|
453
|
-
exit_code = os.system(f"uv run pytest {test_file}")
|
|
452
|
+
exit_code = os.system(f"uv run --group tests pytest {test_file}")
|
|
454
453
|
|
|
455
454
|
# os.system returns the exit status shifted left by 8 bits
|
|
456
455
|
if exit_code != 0:
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"""Discovery functions for finding cluster resources and generated files."""
|
|
2
2
|
|
|
3
|
+
from concurrent.futures import Future, ThreadPoolExecutor, as_completed
|
|
3
4
|
from pathlib import Path
|
|
4
5
|
from typing import Any
|
|
5
|
-
from concurrent.futures import ThreadPoolExecutor, as_completed, Future
|
|
6
6
|
|
|
7
7
|
from kubernetes.dynamic import DynamicClient
|
|
8
8
|
from simple_logger.logger import get_logger
|
|
@@ -155,7 +155,7 @@ def class_generator(
|
|
|
155
155
|
LOGGER.info("Updating schema")
|
|
156
156
|
try:
|
|
157
157
|
update_kind_schema()
|
|
158
|
-
except (
|
|
158
|
+
except (OSError, RuntimeError) as e:
|
|
159
159
|
error_msg = f"Failed to update schema: {e}"
|
|
160
160
|
LOGGER.error(error_msg)
|
|
161
161
|
raise RuntimeError(error_msg) from e
|
|
@@ -188,7 +188,7 @@ def class_generator(
|
|
|
188
188
|
unique_groups = set()
|
|
189
189
|
for resource in resources:
|
|
190
190
|
# Use the original group name that we stored
|
|
191
|
-
if
|
|
191
|
+
if resource.get("original_group"):
|
|
192
192
|
unique_groups.add(resource["original_group"])
|
|
193
193
|
|
|
194
194
|
use_output_file_suffix: bool = len(unique_groups) > 1
|
{openshift_python_wrapper-4.20.6 → openshift_python_wrapper-4.20.8}/class_generator/core/schema.py
RENAMED
|
@@ -12,7 +12,7 @@ from pyhelper_utils.shell import run_command
|
|
|
12
12
|
from simple_logger.logger import get_logger
|
|
13
13
|
|
|
14
14
|
from class_generator.constants import DEFINITIONS_FILE, RESOURCES_MAPPING_FILE, SCHEMA_DIR
|
|
15
|
-
from class_generator.utils import
|
|
15
|
+
from class_generator.utils import execute_parallel_tasks, execute_parallel_with_mapping
|
|
16
16
|
from ocp_resources.utils.archive_utils import save_json_archive
|
|
17
17
|
from ocp_resources.utils.schema_validator import SchemaValidator
|
|
18
18
|
|
|
@@ -22,8 +22,6 @@ LOGGER = get_logger(name=__name__)
|
|
|
22
22
|
class ClusterVersionError(Exception):
|
|
23
23
|
"""Raised when there are issues with cluster version operations."""
|
|
24
24
|
|
|
25
|
-
pass
|
|
26
|
-
|
|
27
25
|
|
|
28
26
|
def get_client_binary() -> str:
|
|
29
27
|
"""Determine whether to use 'oc' or 'kubectl' binary."""
|
|
@@ -138,7 +136,7 @@ def check_and_update_cluster_version(client: str) -> bool:
|
|
|
138
136
|
try:
|
|
139
137
|
with open(cluster_version_file, "r") as fd:
|
|
140
138
|
last_cluster_version_generated = fd.read().strip()
|
|
141
|
-
except (
|
|
139
|
+
except (OSError, FileNotFoundError):
|
|
142
140
|
# Treat missing file as first run - use baseline version that allows updates
|
|
143
141
|
last_cluster_version_generated = "v0.0.0"
|
|
144
142
|
LOGGER.info("Cluster version file not found - treating as first run with baseline version v0.0.0")
|
|
@@ -1360,10 +1358,10 @@ def write_schema_files(
|
|
|
1360
1358
|
# Ensure schema directory exists
|
|
1361
1359
|
try:
|
|
1362
1360
|
Path(SCHEMA_DIR).mkdir(parents=True, exist_ok=True)
|
|
1363
|
-
except
|
|
1361
|
+
except OSError as e:
|
|
1364
1362
|
error_msg = f"Failed to create schema directory {SCHEMA_DIR}: {e}"
|
|
1365
1363
|
LOGGER.error(error_msg)
|
|
1366
|
-
raise
|
|
1364
|
+
raise OSError(error_msg) from e
|
|
1367
1365
|
|
|
1368
1366
|
# Fetch missing core definitions if schemas are available
|
|
1369
1367
|
if schemas:
|
|
@@ -1400,18 +1398,18 @@ def write_schema_files(
|
|
|
1400
1398
|
with open(definitions_file, "w") as fd:
|
|
1401
1399
|
json.dump(definitions_data, fd, indent=2, sort_keys=True)
|
|
1402
1400
|
LOGGER.info(f"Written {len(definitions)} definitions to {definitions_file}")
|
|
1403
|
-
except (OSError,
|
|
1401
|
+
except (OSError, TypeError) as e:
|
|
1404
1402
|
error_msg = f"Failed to write definitions file {definitions_file}: {e}"
|
|
1405
1403
|
LOGGER.error(error_msg)
|
|
1406
|
-
raise
|
|
1404
|
+
raise OSError(error_msg) from e
|
|
1407
1405
|
|
|
1408
1406
|
# Write and archive resources mapping
|
|
1409
1407
|
try:
|
|
1410
1408
|
save_json_archive(resources_mapping, RESOURCES_MAPPING_FILE)
|
|
1411
|
-
except (OSError,
|
|
1409
|
+
except (OSError, TypeError) as e:
|
|
1412
1410
|
error_msg = f"Failed to save and archive resources mapping file {RESOURCES_MAPPING_FILE}: {e}"
|
|
1413
1411
|
LOGGER.error(error_msg)
|
|
1414
|
-
raise
|
|
1412
|
+
raise OSError(error_msg) from e
|
|
1415
1413
|
|
|
1416
1414
|
|
|
1417
1415
|
@dataclasses.dataclass
|
|
@@ -1527,7 +1525,7 @@ def _handle_no_schemas_case() -> None:
|
|
|
1527
1525
|
existing_definitions_data = json.load(fd)
|
|
1528
1526
|
definitions = existing_definitions_data.get("definitions", {})
|
|
1529
1527
|
LOGGER.info(f"Found {len(definitions)} existing definitions that will be preserved")
|
|
1530
|
-
except (
|
|
1528
|
+
except (OSError, FileNotFoundError, json.JSONDecodeError):
|
|
1531
1529
|
LOGGER.debug("Could not load existing definitions file. No existing definitions to preserve.")
|
|
1532
1530
|
|
|
1533
1531
|
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"""File writing utilities for generated code."""
|
|
2
|
+
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
from pyhelper_utils.shell import run_command
|
|
6
|
+
from simple_logger.logger import get_logger
|
|
7
|
+
|
|
8
|
+
LOGGER = get_logger(name=__name__)
|
|
9
|
+
|
|
10
|
+
# Project root directory (contains pyproject.toml and .pre-commit-config.yaml)
|
|
11
|
+
_PROJECT_ROOT = Path(__file__).resolve().parent.parent.parent
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def write_and_format_rendered(filepath: str, output: str) -> None:
|
|
15
|
+
"""
|
|
16
|
+
Write rendered content to file and format with prek, falling back to ruff.
|
|
17
|
+
|
|
18
|
+
Args:
|
|
19
|
+
filepath: Path to write the file to
|
|
20
|
+
output: Content to write
|
|
21
|
+
"""
|
|
22
|
+
with open(filepath, "w", encoding="utf-8") as fd:
|
|
23
|
+
fd.write(output)
|
|
24
|
+
|
|
25
|
+
pre_commit_config = str(_PROJECT_ROOT / ".pre-commit-config.yaml")
|
|
26
|
+
pyproject_toml = str(_PROJECT_ROOT / "pyproject.toml")
|
|
27
|
+
|
|
28
|
+
# Try prek first (runs all pre-commit hooks including ruff)
|
|
29
|
+
prek_success = False
|
|
30
|
+
try:
|
|
31
|
+
rc, stdout, stderr = run_command(
|
|
32
|
+
command=["uvx", "prek", "-c", pre_commit_config, "run", "--files", filepath],
|
|
33
|
+
verify_stderr=False,
|
|
34
|
+
check=False,
|
|
35
|
+
log_errors=False,
|
|
36
|
+
)
|
|
37
|
+
if not rc:
|
|
38
|
+
if stderr:
|
|
39
|
+
LOGGER.warning(f"Prek hooks failed for {filepath}, falling back to ruff.")
|
|
40
|
+
LOGGER.debug(f"prek stderr: {stderr}")
|
|
41
|
+
else:
|
|
42
|
+
prek_success = True
|
|
43
|
+
|
|
44
|
+
if stdout:
|
|
45
|
+
LOGGER.info(f"{filepath} fixed by prek")
|
|
46
|
+
LOGGER.debug(f"prek stdout: {stdout}")
|
|
47
|
+
except Exception as e:
|
|
48
|
+
LOGGER.warning(f"Failed to run prek for {filepath}, falling back to ruff: {e}")
|
|
49
|
+
|
|
50
|
+
if not prek_success:
|
|
51
|
+
_run_ruff_fallback(filepath=filepath, pyproject_toml=pyproject_toml)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def _run_ruff_fallback(filepath: str, pyproject_toml: str) -> None:
|
|
55
|
+
"""Run ruff check --fix and ruff format as fallback when prek fails."""
|
|
56
|
+
for ruff_cmd in (
|
|
57
|
+
["uvx", "ruff", "check", "--fix", "--config", pyproject_toml, filepath],
|
|
58
|
+
["uvx", "ruff", "format", "--config", pyproject_toml, filepath],
|
|
59
|
+
):
|
|
60
|
+
try:
|
|
61
|
+
_, stdout, _ = run_command(
|
|
62
|
+
command=ruff_cmd,
|
|
63
|
+
verify_stderr=False,
|
|
64
|
+
check=False,
|
|
65
|
+
log_errors=False,
|
|
66
|
+
)
|
|
67
|
+
if stdout:
|
|
68
|
+
LOGGER.info(f"{filepath} fixed by ruff")
|
|
69
|
+
LOGGER.debug(f"ruff stdout: {stdout}")
|
|
70
|
+
except Exception as e:
|
|
71
|
+
LOGGER.error(f"Ruff fallback failed for {filepath}: {e}")
|
|
@@ -14,8 +14,12 @@
|
|
|
14
14
|
{% endfor %}
|
|
15
15
|
|
|
16
16
|
from typing import Any
|
|
17
|
-
|
|
17
|
+
|
|
18
|
+
{% if all_required_args %}
|
|
18
19
|
from ocp_resources.exceptions import MissingRequiredArgumentError
|
|
20
|
+
{% endif %}
|
|
21
|
+
from ocp_resources.resource import {{ base_class }}
|
|
22
|
+
|
|
19
23
|
|
|
20
24
|
class {{ kind }}({{ base_class }}):
|
|
21
25
|
"""
|
|
@@ -6,7 +6,7 @@ from typing import Any
|
|
|
6
6
|
|
|
7
7
|
from simple_logger.logger import get_logger
|
|
8
8
|
|
|
9
|
-
from class_generator.constants import MISSING_DESCRIPTION_STR, SPEC_STR
|
|
9
|
+
from class_generator.constants import DEFINITIONS_FILE, MISSING_DESCRIPTION_STR, SPEC_STR
|
|
10
10
|
from class_generator.utils import sanitize_python_name
|
|
11
11
|
from ocp_resources.utils.utils import convert_camel_case_to_snake_case
|
|
12
12
|
|
|
@@ -39,7 +39,7 @@ def parse_user_code_from_file(file_path: str) -> tuple[str, str]:
|
|
|
39
39
|
f"Failed to decode file {file_path} with UTF-8 encoding. The file may contain invalid characters.",
|
|
40
40
|
)
|
|
41
41
|
except Exception as e:
|
|
42
|
-
raise Exception(f"Unexpected error reading file {file_path}: {type(e).__name__}: {
|
|
42
|
+
raise Exception(f"Unexpected error reading file {file_path}: {type(e).__name__}: {e!s}")
|
|
43
43
|
|
|
44
44
|
end_of_generated_code_line = " # End of generated code"
|
|
45
45
|
user_code: str = ""
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
from typing import Any
|
|
5
|
+
|
|
5
6
|
from ocp_resources.resource import Resource
|
|
6
7
|
|
|
7
8
|
|
|
@@ -71,6 +72,7 @@ class APIServer(Resource):
|
|
|
71
72
|
self.tls_security_profile = tls_security_profile
|
|
72
73
|
|
|
73
74
|
def to_dict(self) -> None:
|
|
75
|
+
|
|
74
76
|
super().to_dict()
|
|
75
77
|
|
|
76
78
|
if not self.kind_dict and not self.yaml_file:
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
from typing import Any
|
|
5
|
+
|
|
5
6
|
from ocp_resources.resource import NamespacedResource
|
|
6
7
|
|
|
7
8
|
|
|
@@ -47,6 +48,7 @@ class ConfigMap(NamespacedResource):
|
|
|
47
48
|
self.immutable = immutable
|
|
48
49
|
|
|
49
50
|
def to_dict(self) -> None:
|
|
51
|
+
|
|
50
52
|
super().to_dict()
|
|
51
53
|
|
|
52
54
|
if not self.kind_dict and not self.yaml_file:
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
from typing import Any
|
|
5
|
+
|
|
5
6
|
from ocp_resources.resource import Resource
|
|
6
7
|
|
|
7
8
|
|
|
@@ -54,6 +55,7 @@ class DNS(Resource):
|
|
|
54
55
|
self.public_zone = public_zone
|
|
55
56
|
|
|
56
57
|
def to_dict(self) -> None:
|
|
58
|
+
|
|
57
59
|
super().to_dict()
|
|
58
60
|
|
|
59
61
|
if not self.kind_dict and not self.yaml_file:
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
from typing import Any
|
|
5
|
+
|
|
5
6
|
from ocp_resources.resource import Resource
|
|
6
7
|
|
|
7
8
|
|
|
@@ -93,6 +94,7 @@ class DNS(Resource):
|
|
|
93
94
|
self.upstream_resolvers = upstream_resolvers
|
|
94
95
|
|
|
95
96
|
def to_dict(self) -> None:
|
|
97
|
+
|
|
96
98
|
super().to_dict()
|
|
97
99
|
|
|
98
100
|
if not self.kind_dict and not self.yaml_file:
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
from typing import Any
|
|
5
|
-
|
|
5
|
+
|
|
6
6
|
from ocp_resources.exceptions import MissingRequiredArgumentError
|
|
7
|
+
from ocp_resources.resource import NamespacedResource
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
class Deployment(NamespacedResource):
|
|
@@ -279,6 +280,7 @@ class Deployment(NamespacedResource):
|
|
|
279
280
|
self.template = template
|
|
280
281
|
|
|
281
282
|
def to_dict(self) -> None:
|
|
283
|
+
|
|
282
284
|
super().to_dict()
|
|
283
285
|
|
|
284
286
|
if not self.kind_dict and not self.yaml_file:
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
from typing import Any
|
|
5
|
+
|
|
5
6
|
from ocp_resources.resource import Resource
|
|
6
7
|
|
|
7
8
|
|
|
@@ -48,6 +49,7 @@ class ImageContentSourcePolicy(Resource):
|
|
|
48
49
|
self.repository_digest_mirrors = repository_digest_mirrors
|
|
49
50
|
|
|
50
51
|
def to_dict(self) -> None:
|
|
52
|
+
|
|
51
53
|
super().to_dict()
|
|
52
54
|
|
|
53
55
|
if not self.kind_dict and not self.yaml_file:
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
from typing import Any
|
|
5
|
+
|
|
5
6
|
from ocp_resources.resource import Resource
|
|
6
7
|
|
|
7
8
|
|
|
@@ -92,6 +93,7 @@ class Ingress(Resource):
|
|
|
92
93
|
self.required_hsts_policies = required_hsts_policies
|
|
93
94
|
|
|
94
95
|
def to_dict(self) -> None:
|
|
96
|
+
|
|
95
97
|
super().to_dict()
|
|
96
98
|
|
|
97
99
|
if not self.kind_dict and not self.yaml_file:
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
from typing import Any
|
|
5
|
+
|
|
5
6
|
from ocp_resources.resource import Resource
|
|
6
7
|
|
|
7
8
|
|
|
@@ -41,6 +42,7 @@ class Ingress(Resource):
|
|
|
41
42
|
self.tls = tls
|
|
42
43
|
|
|
43
44
|
def to_dict(self) -> None:
|
|
45
|
+
|
|
44
46
|
super().to_dict()
|
|
45
47
|
|
|
46
48
|
if not self.kind_dict and not self.yaml_file:
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
from typing import Any
|
|
5
|
+
|
|
5
6
|
from ocp_resources.resource import NamespacedResource
|
|
6
7
|
|
|
7
8
|
|
|
@@ -68,6 +69,7 @@ class Machine(NamespacedResource):
|
|
|
68
69
|
self.taints = taints
|
|
69
70
|
|
|
70
71
|
def to_dict(self) -> None:
|
|
72
|
+
|
|
71
73
|
super().to_dict()
|
|
72
74
|
|
|
73
75
|
if not self.kind_dict and not self.yaml_file:
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
from typing import Any
|
|
5
|
+
|
|
5
6
|
from ocp_resources.resource import Resource
|
|
6
7
|
|
|
7
8
|
|
|
@@ -76,6 +77,7 @@ class NMState(Resource):
|
|
|
76
77
|
self.tolerations = tolerations
|
|
77
78
|
|
|
78
79
|
def to_dict(self) -> None:
|
|
80
|
+
|
|
79
81
|
super().to_dict()
|
|
80
82
|
|
|
81
83
|
if not self.kind_dict and not self.yaml_file:
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
from typing import Any
|
|
5
|
+
|
|
5
6
|
from ocp_resources.resource import Resource
|
|
6
7
|
|
|
7
8
|
|
|
@@ -41,6 +42,7 @@ class OAuth(Resource):
|
|
|
41
42
|
self.token_config = token_config
|
|
42
43
|
|
|
43
44
|
def to_dict(self) -> None:
|
|
45
|
+
|
|
44
46
|
super().to_dict()
|
|
45
47
|
|
|
46
48
|
if not self.kind_dict and not self.yaml_file:
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
from typing import Any
|
|
5
|
+
|
|
5
6
|
from ocp_resources.resource import NamespacedResource
|
|
6
7
|
|
|
7
8
|
|
|
@@ -61,6 +62,7 @@ class Pipeline(NamespacedResource):
|
|
|
61
62
|
self.workspaces = workspaces
|
|
62
63
|
|
|
63
64
|
def to_dict(self) -> None:
|
|
65
|
+
|
|
64
66
|
super().to_dict()
|
|
65
67
|
|
|
66
68
|
if not self.kind_dict and not self.yaml_file:
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
from typing import Any
|
|
5
|
-
|
|
5
|
+
|
|
6
6
|
from ocp_resources.exceptions import MissingRequiredArgumentError
|
|
7
|
+
from ocp_resources.resource import NamespacedResource
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
class Pod(NamespacedResource):
|
|
@@ -492,6 +493,7 @@ class Pod(NamespacedResource):
|
|
|
492
493
|
self.volumes = volumes
|
|
493
494
|
|
|
494
495
|
def to_dict(self) -> None:
|
|
496
|
+
|
|
495
497
|
super().to_dict()
|
|
496
498
|
|
|
497
499
|
if not self.kind_dict and not self.yaml_file:
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
from typing import Any
|
|
5
|
-
|
|
5
|
+
|
|
6
6
|
from ocp_resources.exceptions import MissingRequiredArgumentError
|
|
7
|
+
from ocp_resources.resource import Resource
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
class RouteAdvertisements(Resource):
|
|
@@ -49,6 +50,7 @@ class RouteAdvertisements(Resource):
|
|
|
49
50
|
self.target_vrf = target_vrf
|
|
50
51
|
|
|
51
52
|
def to_dict(self) -> None:
|
|
53
|
+
|
|
52
54
|
super().to_dict()
|
|
53
55
|
|
|
54
56
|
if not self.kind_dict and not self.yaml_file:
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
from typing import Any
|
|
5
|
+
|
|
5
6
|
from ocp_resources.resource import NamespacedResource
|
|
6
7
|
|
|
7
8
|
|
|
@@ -52,6 +53,7 @@ class Secret(NamespacedResource):
|
|
|
52
53
|
self.type = type
|
|
53
54
|
|
|
54
55
|
def to_dict(self) -> None:
|
|
56
|
+
|
|
55
57
|
super().to_dict()
|
|
56
58
|
|
|
57
59
|
if not self.kind_dict and not self.yaml_file:
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
from typing import Any
|
|
5
|
-
|
|
5
|
+
|
|
6
6
|
from ocp_resources.exceptions import MissingRequiredArgumentError
|
|
7
|
+
from ocp_resources.resource import NamespacedResource
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
class ServiceMeshMember(NamespacedResource):
|
|
@@ -28,6 +29,7 @@ class ServiceMeshMember(NamespacedResource):
|
|
|
28
29
|
self.control_plane_ref = control_plane_ref
|
|
29
30
|
|
|
30
31
|
def to_dict(self) -> None:
|
|
32
|
+
|
|
31
33
|
super().to_dict()
|
|
32
34
|
|
|
33
35
|
if not self.kind_dict and not self.yaml_file:
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
from typing import Any
|
|
5
|
-
|
|
5
|
+
|
|
6
6
|
from ocp_resources.exceptions import MissingRequiredArgumentError
|
|
7
|
+
from ocp_resources.resource import NamespacedResource
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
class ServingRuntime(NamespacedResource):
|
|
@@ -96,6 +97,7 @@ class ServingRuntime(NamespacedResource):
|
|
|
96
97
|
self.volumes = volumes
|
|
97
98
|
|
|
98
99
|
def to_dict(self) -> None:
|
|
100
|
+
|
|
99
101
|
super().to_dict()
|
|
100
102
|
|
|
101
103
|
if not self.kind_dict and not self.yaml_file:
|