openshift-python-wrapper 10.0.65__tar.gz → 10.0.66__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/PKG-INFO +29 -5
  2. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/README.md +24 -3
  3. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/benchmark.py +15 -14
  4. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/catalog_source.py +18 -22
  5. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/cdi.py +2 -2
  6. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/cdi_config.py +8 -6
  7. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/chaos_engine.py +8 -7
  8. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/ingress_controller.py +1 -1
  9. openshift_python_wrapper-10.0.66/ocp_resources/machine_config.py +93 -0
  10. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/project.py +0 -10
  11. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/resource.py +143 -155
  12. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/sriov_network_node_state.py +3 -0
  13. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/pyproject.toml +6 -2
  14. openshift_python_wrapper-10.0.65/ocp_resources/machine_config.py +0 -5
  15. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/LICENSE +0 -0
  16. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/__init__.py +0 -0
  17. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/aaq.py +0 -0
  18. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/api_server.py +0 -0
  19. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/api_service.py +0 -0
  20. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/application_aware_applied_cluster_resource_quota.py +0 -0
  21. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/application_aware_cluster_resource_quota.py +0 -0
  22. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/application_aware_resource_quota.py +0 -0
  23. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/backup.py +0 -0
  24. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/chaos_result.py +0 -0
  25. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/cluster_claim.py +0 -0
  26. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/cluster_deployment.py +0 -0
  27. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/cluster_operator.py +0 -0
  28. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/cluster_pool.py +0 -0
  29. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/cluster_role.py +0 -0
  30. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/cluster_role_binding.py +0 -0
  31. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/cluster_service_version.py +0 -0
  32. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/cluster_version.py +0 -0
  33. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/configmap.py +0 -0
  34. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/console_cli_download.py +0 -0
  35. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/console_plugin.py +0 -0
  36. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/console_quick_start.py +0 -0
  37. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/constants.py +0 -0
  38. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/controller_revision.py +0 -0
  39. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/cron_job.py +0 -0
  40. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/csi_storage_capacity.py +0 -0
  41. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/csidriver.py +0 -0
  42. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/custom_resource_definition.py +0 -0
  43. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/daemonset.py +0 -0
  44. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/data_import_cron.py +0 -0
  45. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/data_source.py +0 -0
  46. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/datavolume.py +0 -0
  47. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/deployment.py +0 -0
  48. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/destination_rule.py +0 -0
  49. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/dns.py +0 -0
  50. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/endpoint_slice.py +0 -0
  51. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/endpoints.py +0 -0
  52. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/event.py +0 -0
  53. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/fence_agent_remediation_templates.py +0 -0
  54. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/forklift_controller.py +0 -0
  55. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/gateway.py +0 -0
  56. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/group.py +0 -0
  57. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/hook.py +0 -0
  58. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/host.py +0 -0
  59. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/hostpath_provisioner.py +0 -0
  60. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/hyperconverged.py +0 -0
  61. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/image.py +0 -0
  62. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/image_content_source_policy.py +0 -0
  63. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/image_digest_mirror_set.py +0 -0
  64. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/image_stream.py +0 -0
  65. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/imagestreamtag.py +0 -0
  66. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/inference_service.py +0 -0
  67. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/infrastructure.py +0 -0
  68. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/installplan.py +0 -0
  69. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/ip_address_pool.py +0 -0
  70. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/job.py +0 -0
  71. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/kube_descheduler.py +0 -0
  72. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/kubevirt.py +0 -0
  73. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/kubevirt_common_templates_bundle.py +0 -0
  74. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/kubevirt_metrics_aggregation.py +0 -0
  75. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/kubevirt_node_labeller_bundle.py +0 -0
  76. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/kubevirt_template_validaotr.py +0 -0
  77. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/l2_advertisement.py +0 -0
  78. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/lease.py +0 -0
  79. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/limit_range.py +0 -0
  80. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/machine.py +0 -0
  81. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/machine_config_pool.py +0 -0
  82. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/machine_health_check.py +0 -0
  83. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/machine_set.py +0 -0
  84. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/managed_cluster.py +0 -0
  85. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/metallb.py +0 -0
  86. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/migration.py +0 -0
  87. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/migration_policy.py +0 -0
  88. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/mtq.py +0 -0
  89. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/mtv.py +0 -0
  90. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/multi_cluster_hub.py +0 -0
  91. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/multi_cluster_observability.py +0 -0
  92. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/multi_network_policy.py +0 -0
  93. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/mutating_webhook_config.py +0 -0
  94. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/namespace.py +0 -0
  95. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/network.py +0 -0
  96. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/network_addons_config.py +0 -0
  97. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/network_attachment_definition.py +0 -0
  98. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/network_map.py +0 -0
  99. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/network_policy.py +0 -0
  100. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/nmstate.py +0 -0
  101. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/node.py +0 -0
  102. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/node_health_check.py +0 -0
  103. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/node_maintenance.py +0 -0
  104. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/node_network_configuration_enactment.py +0 -0
  105. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/node_network_configuration_policy.py +0 -0
  106. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/node_network_state.py +0 -0
  107. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/oauth.py +0 -0
  108. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/ocs_initialization.py +0 -0
  109. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/operator.py +0 -0
  110. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/operator_condition.py +0 -0
  111. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/operator_group.py +0 -0
  112. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/operator_hub.py +0 -0
  113. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/operator_source.py +0 -0
  114. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/package_manifest.py +0 -0
  115. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/peer_authentication.py +0 -0
  116. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/performance_profile.py +0 -0
  117. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/persistent_volume.py +0 -0
  118. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/persistent_volume_claim.py +0 -0
  119. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/pipeline.py +0 -0
  120. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/pipelineruns.py +0 -0
  121. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/plan.py +0 -0
  122. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/pod.py +0 -0
  123. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/pod_disruption_budget.py +0 -0
  124. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/pod_metrics.py +0 -0
  125. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/priority_class.py +0 -0
  126. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/prometheus.py +0 -0
  127. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/prometheus_rule.py +0 -0
  128. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/provider.py +0 -0
  129. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/proxy.py +0 -0
  130. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/reclaim_space_cron_job.py +0 -0
  131. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/reclaim_space_job.py +0 -0
  132. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/replicaset.py +0 -0
  133. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/resource_quota.py +0 -0
  134. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/restore.py +0 -0
  135. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/rhmi.py +0 -0
  136. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/role.py +0 -0
  137. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/role_binding.py +0 -0
  138. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/route.py +0 -0
  139. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/scheduler.py +0 -0
  140. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/sealed_secret.py +0 -0
  141. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/secret.py +0 -0
  142. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/security_context_constraints.py +0 -0
  143. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/self_node_remediation_templates.py +0 -0
  144. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/service.py +0 -0
  145. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/service_account.py +0 -0
  146. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/service_mesh_control_plane.py +0 -0
  147. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/service_mesh_member_roll.py +0 -0
  148. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/service_monitor.py +0 -0
  149. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/serving_runtime.py +0 -0
  150. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/sriov_network.py +0 -0
  151. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/sriov_network_node_policy.py +0 -0
  152. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/ssp.py +0 -0
  153. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/storage_class.py +0 -0
  154. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/storage_map.py +0 -0
  155. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/storage_profile.py +0 -0
  156. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/subscription.py +0 -0
  157. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/task_run.py +0 -0
  158. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/tekton_tasks.py +0 -0
  159. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/template.py +0 -0
  160. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/trustyai_service.py +0 -0
  161. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/upload_token_request.py +0 -0
  162. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/utils.py +0 -0
  163. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/validating_webhook_config.py +0 -0
  164. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/virtual_machine.py +0 -0
  165. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/virtual_machine_Instance_replica_set.py +0 -0
  166. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/virtual_machine_clone.py +0 -0
  167. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/virtual_machine_cluster_instance_types.py +0 -0
  168. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/virtual_machine_cluster_preferences.py +0 -0
  169. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/virtual_machine_export.py +0 -0
  170. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/virtual_machine_import.py +0 -0
  171. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/virtual_machine_instance.py +0 -0
  172. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/virtual_machine_instance_migration.py +0 -0
  173. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/virtual_machine_instance_preset.py +0 -0
  174. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/virtual_machine_instance_types.py +0 -0
  175. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/virtual_machine_migration_resource_quota.py +0 -0
  176. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/virtual_machine_preferences.py +0 -0
  177. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/virtual_machine_restore.py +0 -0
  178. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/virtual_machine_snapshot.py +0 -0
  179. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/virtual_service.py +0 -0
  180. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/vm_import_config.py +0 -0
  181. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/volume_snapshot.py +0 -0
  182. {openshift_python_wrapper-10.0.65 → openshift_python_wrapper-10.0.66}/ocp_resources/volume_snapshot_class.py +0 -0
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openshift-python-wrapper
3
- Version: 10.0.65
3
+ Version: 10.0.66
4
4
  Summary: Wrapper around https://github.com/kubernetes-client/python
5
5
  Home-page: https://github.com/RedHatQE/openshift-python-wrapper
6
6
  License: Apache-2.0
7
- Keywords: Openshift,Kubevirt,CNV
7
+ Keywords: Openshift,Kubevirt,Openshift Virtualization
8
8
  Author: Meni Yakove
9
9
  Author-email: myakove@gmail.com
10
10
  Requires-Python: >=3.8,<4.0
@@ -16,12 +16,15 @@ Classifier: Programming Language :: Python :: 3.9
16
16
  Classifier: Programming Language :: Python :: 3.10
17
17
  Classifier: Programming Language :: Python :: 3.11
18
18
  Classifier: Programming Language :: Python :: 3.12
19
+ Requires-Dist: click (>=8.1.7,<9.0.0)
19
20
  Requires-Dist: colorlog (>=6.7.0,<7.0.0)
20
21
  Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
21
22
  Requires-Dist: kubernetes (>=30.0.0,<31.0.0)
22
23
  Requires-Dist: packaging (>=23.1,<24.0)
24
+ Requires-Dist: pyhelper-utils (>=0.0.27,<0.0.28)
23
25
  Requires-Dist: python-benedict (>=0.33.0,<0.34.0)
24
26
  Requires-Dist: python-simple-logger (>=1.0.6)
27
+ Requires-Dist: ruff (>=0.5.3,<0.6.0)
25
28
  Requires-Dist: timeout-sampler (>=0.0.17)
26
29
  Requires-Dist: xmltodict (>=0.13.0,<0.14.0)
27
30
  Project-URL: Bug Tracker, https://github.com/RedHatQE/openshift-python-wrapper/issues
@@ -29,11 +32,32 @@ Project-URL: Documentation, https://openshift-python-wrapper.readthedocs.io/en/l
29
32
  Project-URL: Download, https://pypi.org/project/openshift-python-wrapper/
30
33
  Description-Content-Type: text/markdown
31
34
 
32
- # openshift-python-wrapper
35
+ # openshift-python-wrapper (`wrapper`)
33
36
  Pypi: [openshift-python-wrapper](https://pypi.org/project/openshift-python-wrapper)
34
- A python wrapper for [kubernetes-python-client](https://github.com/kubernetes-client/python) with support for RedHat Container Virtualization. ([Openshift Virtualization](https://www.openshift.com/learn/topics/virtualization))
37
+ A python wrapper for [kubernetes-python-client](https://github.com/kubernetes-client/python) with support for [RedHat Container Virtualization](https://www.openshift.com/learn/topics/virtualization)
35
38
  Docs: [openshift-python-wrapper docs](https://openshift-python-wrapper.readthedocs.io/en/latest/)
36
39
 
40
+ The wrapper offers a simple and intuitive interface for interacting with the API.
41
+ It standardizes how to work with cluster resources and offers unified resource CRUD (Create, Read, Update, and Delete) flows.
42
+ The wrapper also provides additional capabilities, such as resource-specific functionality that otherwise needs to be implemented by users.
43
+ The wrapper makes code easier to read and maintain over time.
44
+
45
+ One example of simplified usage is interacting with a container.
46
+ Running a command inside a container requires using Kubernetes stream, handling errors, and more.
47
+ The wrapper handles it all and provides simple and intuitive functionality.
48
+
49
+ ![Alt Text](examples/pod_example.gif)
50
+
51
+ Both developers or testers can use the wrapper. The code is modular and easy to maintain.
52
+ Instead of writing custom code for every API, you can use the wrapper that provides a consistent interface for interacting with APIs.
53
+ It saves time, avoids code duplications, and reduces the chance of errors.
54
+
55
+ Using Python capabilities, context managers can provide out-of-the-box resource creation and deletion,
56
+ and inheritance can be used to extend functionality for specific use cases.
57
+ Pytest fixtures can utilize the code for setup and teardown, leaving no leftovers.
58
+ Resources can even be saved for debugging.
59
+ Resource manifests and logs can be easily collected.
60
+
37
61
  ## Installation
38
62
  From source:
39
63
  ```bash
@@ -86,7 +110,7 @@ We use pre-commit for code check.
86
110
  pre-commit install
87
111
  ```
88
112
 
89
- Some code examples locate at `examples` directory
113
+ Some code examples locate at [examples](examples) directory
90
114
 
91
115
  ## Contribute to the project
92
116
  To contribute new additions or changes to the project, please refer to the [contribution guide](CONTRIBUTING.md) first.
@@ -1,8 +1,29 @@
1
- # openshift-python-wrapper
1
+ # openshift-python-wrapper (`wrapper`)
2
2
  Pypi: [openshift-python-wrapper](https://pypi.org/project/openshift-python-wrapper)
3
- A python wrapper for [kubernetes-python-client](https://github.com/kubernetes-client/python) with support for RedHat Container Virtualization. ([Openshift Virtualization](https://www.openshift.com/learn/topics/virtualization))
3
+ A python wrapper for [kubernetes-python-client](https://github.com/kubernetes-client/python) with support for [RedHat Container Virtualization](https://www.openshift.com/learn/topics/virtualization)
4
4
  Docs: [openshift-python-wrapper docs](https://openshift-python-wrapper.readthedocs.io/en/latest/)
5
5
 
6
+ The wrapper offers a simple and intuitive interface for interacting with the API.
7
+ It standardizes how to work with cluster resources and offers unified resource CRUD (Create, Read, Update, and Delete) flows.
8
+ The wrapper also provides additional capabilities, such as resource-specific functionality that otherwise needs to be implemented by users.
9
+ The wrapper makes code easier to read and maintain over time.
10
+
11
+ One example of simplified usage is interacting with a container.
12
+ Running a command inside a container requires using Kubernetes stream, handling errors, and more.
13
+ The wrapper handles it all and provides simple and intuitive functionality.
14
+
15
+ ![Alt Text](examples/pod_example.gif)
16
+
17
+ Both developers or testers can use the wrapper. The code is modular and easy to maintain.
18
+ Instead of writing custom code for every API, you can use the wrapper that provides a consistent interface for interacting with APIs.
19
+ It saves time, avoids code duplications, and reduces the chance of errors.
20
+
21
+ Using Python capabilities, context managers can provide out-of-the-box resource creation and deletion,
22
+ and inheritance can be used to extend functionality for specific use cases.
23
+ Pytest fixtures can utilize the code for setup and teardown, leaving no leftovers.
24
+ Resources can even be saved for debugging.
25
+ Resource manifests and logs can be easily collected.
26
+
6
27
  ## Installation
7
28
  From source:
8
29
  ```bash
@@ -55,7 +76,7 @@ We use pre-commit for code check.
55
76
  pre-commit install
56
77
  ```
57
78
 
58
- Some code examples locate at `examples` directory
79
+ Some code examples locate at [examples](examples) directory
59
80
 
60
81
  ## Contribute to the project
61
82
  To contribute new additions or changes to the project, please refer to the [contribution guide](CONTRIBUTING.md) first.
@@ -1,3 +1,5 @@
1
+ from typing import Any, Optional
2
+
1
3
  from ocp_resources.constants import NOT_FOUND_ERROR_EXCEPTION_DICT
2
4
  from ocp_resources.resource import NamespacedResource
3
5
  from timeout_sampler import TimeoutSampler
@@ -16,23 +18,23 @@ class Benchmark(NamespacedResource):
16
18
  api_group = NamespacedResource.ApiGroup.RIPSAW_CLOUDBULLDOZER_IO
17
19
 
18
20
  class Status:
19
- NONE = None # None state is valid for newly created benchmark resources
21
+ NONE: str = "None" # None state is valid for newly created benchmark resources
20
22
 
21
23
  class Workload:
22
24
  class Kind:
23
- VM = "vm"
24
- POD = "pod"
25
+ VM: str = "vm"
26
+ POD: str = "pod"
25
27
 
26
- def _wait_for_instance_key(self, parent, key):
28
+ def _wait_for_instance_key(self, parent: str, key: str) -> Any:
27
29
  """
28
30
  Wait for key to exist in parent attribute of instance
29
31
 
30
32
  Args:
31
- parent (str): An attribute of self.instance that should contain key
33
+ parent (str): An attribute of `self.instance` that should contain key.
32
34
  key (str): A dictionary entry within parent
33
35
 
34
36
  Returns:
35
- str or None: Value of key if found, otherwise None
37
+ Any: Value of key if found, otherwise None
36
38
  """
37
39
  samples = TimeoutSampler(
38
40
  wait_timeout=30,
@@ -45,7 +47,7 @@ class Benchmark(NamespacedResource):
45
47
  return sample.get(key)
46
48
 
47
49
  @property
48
- def uuid(self):
50
+ def uuid(self) -> str:
49
51
  """
50
52
  Returns:
51
53
  str: UUID string from resource instance
@@ -53,7 +55,7 @@ class Benchmark(NamespacedResource):
53
55
  return self._wait_for_instance_key(parent="status", key="uuid")
54
56
 
55
57
  @property
56
- def suuid(self):
58
+ def suuid(self) -> str:
57
59
  """
58
60
  Returns:
59
61
  str: (short)UUID string from resource instance
@@ -61,7 +63,7 @@ class Benchmark(NamespacedResource):
61
63
  return self._wait_for_instance_key(parent="status", key="suuid")
62
64
 
63
65
  @property
64
- def workload_kind(self):
66
+ def workload_kind(self) -> str:
65
67
  """
66
68
  Retrieve the value of spec.workload.args.kind
67
69
 
@@ -73,7 +75,7 @@ class Benchmark(NamespacedResource):
73
75
  """
74
76
  return self.workload_arg(arg="kind", default="pod")
75
77
 
76
- def workload_arg(self, arg, default=None):
78
+ def workload_arg(self, arg: str, default: Optional[Any] = None) -> Any:
77
79
  """
78
80
  Retrieve the value of spec.workload.args[arg]
79
81
 
@@ -81,12 +83,11 @@ class Benchmark(NamespacedResource):
81
83
 
82
84
  Args:
83
85
  arg (str): Argument to retrieve from spec.workload.args
84
- default (any): Default value to return if arg is not found in workload args
86
+ default (Any): Default value to return if arg is not found in workload args
85
87
 
86
88
  Returns:
87
- any: Value of workload arg or 'default' if does not exist
89
+ Any: Value of workload arg or 'default' if workload arg does not exist
88
90
  """
89
- workload = self._wait_for_instance_key(parent="spec", key="workload")
90
- if workload:
91
+ if (workload := self._wait_for_instance_key(parent="spec", key="workload")) and isinstance(workload, dict):
91
92
  return workload.get("args", {}).get(arg, default)
92
93
  return default
@@ -1,3 +1,4 @@
1
+ from typing import Any, Dict
1
2
  from ocp_resources.resource import MissingRequiredArgumentError, NamespacedResource
2
3
 
3
4
 
@@ -10,13 +11,13 @@ class CatalogSource(NamespacedResource):
10
11
 
11
12
  def __init__(
12
13
  self,
13
- source_type=None,
14
- image=None,
15
- display_name=None,
16
- publisher=None,
17
- update_strategy_registry_poll_interval=None,
18
- **kwargs,
19
- ):
14
+ source_type: str = "",
15
+ image: str = "",
16
+ display_name: str = "",
17
+ publisher: str = "",
18
+ update_strategy_registry_poll_interval: str = "",
19
+ **kwargs: Any,
20
+ ) -> None:
20
21
  """
21
22
  Args:
22
23
  source_type (str): Name of the source type.
@@ -38,19 +39,14 @@ class CatalogSource(NamespacedResource):
38
39
  if not self.yaml_file:
39
40
  if not all([self.source_type, self.image, self.display_name, self.publisher]):
40
41
  raise MissingRequiredArgumentError(argument="'source_type', 'image', 'display_name' and 'publisher'")
41
- self.res.update({
42
- "spec": {
43
- "sourceType": self.source_type,
44
- "image": self.image,
45
- "displayName": self.display_name,
46
- "publisher": self.publisher,
47
- }
48
- })
42
+
43
+ self.res["spec"] = {
44
+ "sourceType": self.source_type,
45
+ "image": self.image,
46
+ "displayName": self.display_name,
47
+ "publisher": self.publisher,
48
+ }
49
+ _spec: Dict[str, Any] = self.res["spec"]
50
+
49
51
  if self.update_strategy_registry_poll_interval:
50
- self.res["spec"].update({
51
- "updateStrategy": {
52
- "registryPoll": {
53
- "interval": self.update_strategy_registry_poll_interval,
54
- },
55
- },
56
- })
52
+ _spec["updateStrategy"] = {"registryPoll": {"interval": self.update_strategy_registry_poll_interval}}
@@ -9,5 +9,5 @@ class CDI(Resource):
9
9
  api_group = Resource.ApiGroup.CDI_KUBEVIRT_IO
10
10
 
11
11
  class Status(Resource.Status):
12
- DEPLOYING = "Deploying"
13
- DEPLOYED = "Deployed"
12
+ DEPLOYING: str = "Deploying"
13
+ DEPLOYED: str = "Deployed"
@@ -13,18 +13,18 @@ class CDIConfig(Resource):
13
13
  api_group = Resource.ApiGroup.CDI_KUBEVIRT_IO
14
14
 
15
15
  @property
16
- def scratch_space_storage_class_from_spec(self):
16
+ def scratch_space_storage_class_from_spec(self) -> str:
17
17
  return self.instance.spec.scratchSpaceStorageClass
18
18
 
19
19
  @property
20
- def scratch_space_storage_class_from_status(self):
20
+ def scratch_space_storage_class_from_status(self) -> str:
21
21
  return self.instance.status.scratchSpaceStorageClass
22
22
 
23
23
  @property
24
- def upload_proxy_url(self):
24
+ def upload_proxy_url(self) -> str:
25
25
  return self.instance.status.uploadProxyURL
26
26
 
27
- def wait_until_upload_url_changed(self, uploadproxy_url, timeout=TIMEOUT_4MINUTES):
27
+ def wait_until_upload_url_changed(self, uploadproxy_url: str, timeout: int = TIMEOUT_4MINUTES) -> bool:
28
28
  """
29
29
  Wait until upload proxy url is changed
30
30
 
@@ -45,6 +45,8 @@ class CDIConfig(Resource):
45
45
  for sample in samples:
46
46
  if sample.items:
47
47
  status = sample.items[0].status
48
- current_url = status.uploadProxyURL
48
+ current_url: str = status.uploadProxyURL
49
49
  if current_url == uploadproxy_url:
50
- return
50
+ return True
51
+
52
+ return False
@@ -1,5 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
+ from typing import Any, Dict, List
3
4
  from ocp_resources.resource import NamespacedResource
4
5
 
5
6
 
@@ -7,17 +8,17 @@ class ChaosEngine(NamespacedResource):
7
8
  api_group = NamespacedResource.ApiGroup.LITMUS_IO
8
9
 
9
10
  class EngineStatus:
10
- INITIALIZED = "initialized"
11
- COMPLETED = "completed"
12
- STOPPED = "stopped"
11
+ INITIALIZED: str = "initialized"
12
+ COMPLETED: str = "completed"
13
+ STOPPED: str = "stopped"
13
14
 
14
15
  @property
15
- def engine_status(self):
16
+ def engine_status(self) -> str:
16
17
  return self.instance.status["engineStatus"]
17
18
 
18
19
  @property
19
- def experiments_status(self):
20
- experiments = self.instance.status["experiments"]
20
+ def experiments_status(self) -> Dict[str, Dict[str, Any]]:
21
+ experiments: List[Dict[Any, Any]] = self.instance.status["experiments"]
21
22
  ret_value = {}
22
23
  for experiment in experiments:
23
24
  exp = {"verdict": experiment["verdict"], "status": experiment["status"]}
@@ -25,6 +26,6 @@ class ChaosEngine(NamespacedResource):
25
26
  return ret_value
26
27
 
27
28
  @property
28
- def success(self):
29
+ def success(self) -> bool:
29
30
  exps = self.experiments_status
30
31
  return all(exp["verdict"] == "Pass" for exp in exps.values())
@@ -141,7 +141,7 @@ class IngressController(NamespacedResource):
141
141
  self.endpoint_publishing_strategy = endpoint_publishing_strategy
142
142
  self.default_certificate = default_certificate
143
143
  self.namespace_selector = namespace_selector
144
- self.node_selector = node_selector # type: ignore
144
+ self.node_selector = node_selector
145
145
  self.route_selector = route_selector
146
146
  self.tls_security_profile = tls_security_profile
147
147
  self.logging = logging
@@ -0,0 +1,93 @@
1
+ from typing import Any, Dict, List, Optional
2
+ from ocp_resources.resource import Resource
3
+
4
+
5
+ class MachineConfig(Resource):
6
+ """
7
+ https://docs.openshift.com/container-platform/4.16/rest_api/machine_apis/machineconfig-machineconfiguration-openshift-io-v1.html
8
+ """
9
+
10
+ api_group = Resource.ApiGroup.MACHINECONFIGURATION_OPENSHIFT_IO
11
+
12
+ def __init__(
13
+ self,
14
+ os_image_url: Optional[str] = "",
15
+ config: Optional[Dict[str, Any]] = None,
16
+ kernel_arguments: Optional[List[str]] = None,
17
+ extensions: Optional[List[str]] = None,
18
+ fips: Optional[bool] = None,
19
+ kernel_type: Optional[str] = "",
20
+ base_os_extensions_container_image: Optional[str] = "",
21
+ **kwargs: Any,
22
+ ) -> None:
23
+ """
24
+ Args:
25
+ os_image_url (str, optional): URL to the OS image.
26
+ config (dict, optional): Ignition config file data.
27
+ Example:
28
+ {
29
+ "ignition": {
30
+ "version": "3.1.0",
31
+ "config": {
32
+ "merge": [
33
+ {
34
+ "source": "http://path/to/your/config.ign"
35
+ }
36
+ ]
37
+ }
38
+ },
39
+ "storage": {
40
+ "filesystems": [
41
+ {
42
+ "name": "root",
43
+ "mount": {
44
+ "device": "/dev/disk/by-label/root",
45
+ "format": "xfs",
46
+ "wipeFilesystem": False
47
+ }
48
+ }
49
+ ]
50
+ }
51
+ }
52
+ kernel_arguments (list, optional): List of kernel arguments.
53
+ extensions (list, optional): List of extensions to install.
54
+ fips (bool, optional): Enable FIPS mode. Defaults to False.
55
+ kernel_type (str, optional): Type of kernel to use.
56
+ base_os_extensions_container_image (str, optional): URL to the base OS extensions container image.
57
+ """
58
+ super().__init__(**kwargs)
59
+ self.os_image_url: Optional[str] = os_image_url
60
+ self.config: Optional[Dict[str, Any]] = config
61
+ self.kernel_arguments: Optional[List[str]] = kernel_arguments
62
+ self.extensions: Optional[List[str]] = extensions
63
+ self.fips: Optional[bool] = fips
64
+ self.kernel_type: Optional[str] = kernel_type
65
+ self.base_os_extensions_container_image: Optional[str] = base_os_extensions_container_image
66
+
67
+ def to_dict(self) -> None:
68
+ super().to_dict()
69
+
70
+ if not self.yaml_file:
71
+ self.res["spec"] = {}
72
+ _spec = self.res["spec"]
73
+
74
+ if self.os_image_url:
75
+ _spec["osImageURL"] = self.os_image_url
76
+
77
+ if self.config:
78
+ _spec["config"] = self.config
79
+
80
+ if self.kernel_arguments:
81
+ _spec["kernelArguments"] = self.kernel_arguments
82
+
83
+ if self.extensions:
84
+ _spec["extensions"] = self.extensions
85
+
86
+ if self.fips is not None:
87
+ _spec["fips"] = self.fips
88
+
89
+ if self.kernel_type:
90
+ _spec["kernelType"] = self.kernel_type
91
+
92
+ if self.base_os_extensions_container_image:
93
+ _spec["baseOSExtensionsContainerImage"] = self.base_os_extensions_container_image
@@ -48,13 +48,3 @@ class ProjectRequest(Resource):
48
48
 
49
49
  def clean_up(self):
50
50
  Project(name=self.name).delete(wait=True)
51
-
52
- def client_wait_deleted(self, timeout):
53
- """
54
- client-side Wait until resource is deleted
55
-
56
- Args:
57
- timeout (int): Time to wait for the resource.
58
-
59
- """
60
- super().client_wait_deleted(timeout=timeout)