openshift-python-wrapper 4.15.18__tar.gz → 10.0.0__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 (165) hide show
  1. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/PKG-INFO +3 -2
  2. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/benchmark.py +1 -1
  3. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/catalog_source.py +13 -17
  4. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/cdi_config.py +1 -1
  5. openshift_python_wrapper-10.0.0/ocp_resources/controller_revision.py +39 -0
  6. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/cron_job.py +5 -7
  7. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/csi_storage_capacity.py +4 -31
  8. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/daemonset.py +1 -1
  9. openshift_python_wrapper-10.0.0/ocp_resources/data_import_cron.py +95 -0
  10. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/data_source.py +5 -7
  11. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/datavolume.py +20 -22
  12. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/deployment.py +1 -1
  13. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/endpoint_slice.py +4 -6
  14. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/endpoints.py +5 -7
  15. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/hook.py +6 -8
  16. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/host.py +13 -15
  17. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/image_stream.py +5 -7
  18. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/kube_descheduler.py +9 -11
  19. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/machine_set.py +2 -2
  20. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/migration.py +6 -8
  21. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/mtv.py +2 -2
  22. openshift_python_wrapper-10.0.0/ocp_resources/node_health_check.py +75 -0
  23. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/node_network_configuration_policy.py +4 -4
  24. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/node_network_state.py +7 -9
  25. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/ocs_initialization.py +4 -6
  26. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/operator_source.py +9 -11
  27. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/persistent_volume_claim.py +6 -8
  28. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/plan.py +24 -26
  29. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/pod.py +2 -2
  30. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/provider.py +10 -12
  31. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/resource.py +11 -13
  32. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/restore.py +4 -6
  33. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/secret.py +5 -7
  34. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/sriov_network_node_state.py +2 -2
  35. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/subscription.py +9 -11
  36. openshift_python_wrapper-10.0.0/ocp_resources/utils.py +55 -0
  37. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/virtual_machine.py +1 -1
  38. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/virtual_machine_export.py +9 -11
  39. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/virtual_machine_import.py +2 -2
  40. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/virtual_machine_instance.py +2 -2
  41. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/virtual_machine_restore.py +1 -1
  42. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/virtual_machine_snapshot.py +2 -2
  43. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/pyproject.toml +3 -3
  44. openshift_python_wrapper-4.15.18/ocp_resources/controller_revision.py +0 -43
  45. openshift_python_wrapper-4.15.18/ocp_resources/data_import_cron.py +0 -94
  46. openshift_python_wrapper-4.15.18/ocp_resources/node_health_check.py +0 -10
  47. openshift_python_wrapper-4.15.18/ocp_resources/utils.py +0 -277
  48. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/LICENSE +0 -0
  49. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/README.md +0 -0
  50. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/__init__.py +0 -0
  51. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/api_server.py +0 -0
  52. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/api_service.py +0 -0
  53. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/backup.py +0 -0
  54. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/cdi.py +0 -0
  55. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/chaos_engine.py +0 -0
  56. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/chaos_result.py +0 -0
  57. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/cluster_operator.py +0 -0
  58. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/cluster_role.py +0 -0
  59. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/cluster_role_binding.py +0 -0
  60. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/cluster_service_version.py +0 -0
  61. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/cluster_version.py +0 -0
  62. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/configmap.py +0 -0
  63. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/console_cli_download.py +0 -0
  64. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/console_plugin.py +0 -0
  65. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/console_quick_start.py +0 -0
  66. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/constants.py +0 -0
  67. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/csidriver.py +0 -0
  68. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/custom_resource_definition.py +0 -0
  69. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/destination_rule.py +0 -0
  70. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/dns.py +0 -0
  71. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/event.py +0 -0
  72. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/forklift_controller.py +0 -0
  73. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/gateway.py +0 -0
  74. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/hostpath_provisioner.py +0 -0
  75. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/hyperconverged.py +0 -0
  76. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/image.py +0 -0
  77. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/image_content_source_policy.py +0 -0
  78. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/image_digest_mirror_set.py +0 -0
  79. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/imagestreamtag.py +0 -0
  80. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/infrastructure.py +0 -0
  81. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/installplan.py +0 -0
  82. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/ip_address_pool.py +0 -0
  83. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/job.py +0 -0
  84. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/kubevirt.py +0 -0
  85. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/kubevirt_common_templates_bundle.py +0 -0
  86. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/kubevirt_metrics_aggregation.py +0 -0
  87. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/kubevirt_node_labeller_bundle.py +0 -0
  88. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/kubevirt_template_validaotr.py +0 -0
  89. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/l2_advertisement.py +0 -0
  90. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/lease.py +0 -0
  91. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/limit_range.py +0 -0
  92. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/machine.py +0 -0
  93. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/machine_config.py +0 -0
  94. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/machine_config_pool.py +0 -0
  95. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/machine_health_check.py +0 -0
  96. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/managed_cluster.py +0 -0
  97. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/metallb.py +0 -0
  98. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/migration_policy.py +0 -0
  99. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/mtq.py +0 -0
  100. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/multi_cluster_hub.py +0 -0
  101. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/multi_cluster_observability.py +0 -0
  102. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/mutating_webhook_config.py +0 -0
  103. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/namespace.py +0 -0
  104. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/network.py +0 -0
  105. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/network_addons_config.py +0 -0
  106. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/network_attachment_definition.py +0 -0
  107. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/network_map.py +0 -0
  108. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/network_policy.py +0 -0
  109. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/nmstate.py +0 -0
  110. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/node.py +0 -0
  111. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/node_maintenance.py +0 -0
  112. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/node_network_configuration_enactment.py +0 -0
  113. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/oauth.py +0 -0
  114. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/operator.py +0 -0
  115. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/operator_condition.py +0 -0
  116. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/operator_group.py +0 -0
  117. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/operator_hub.py +0 -0
  118. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/package_manifest.py +0 -0
  119. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/peer_authentication.py +0 -0
  120. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/persistent_volume.py +0 -0
  121. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/pipeline.py +0 -0
  122. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/pipelineruns.py +0 -0
  123. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/pod_disruption_budget.py +0 -0
  124. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/pod_metrics.py +0 -0
  125. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/priority_class.py +0 -0
  126. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/project.py +0 -0
  127. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/prometheus.py +0 -0
  128. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/prometheus_rule.py +0 -0
  129. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/replicaset.py +0 -0
  130. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/resource_quota.py +0 -0
  131. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/rhmi.py +0 -0
  132. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/role.py +0 -0
  133. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/role_binding.py +0 -0
  134. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/route.py +0 -0
  135. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/scheduler.py +0 -0
  136. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/security_context_constraints.py +0 -0
  137. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/service.py +0 -0
  138. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/service_account.py +0 -0
  139. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/service_mesh_control_plane.py +0 -0
  140. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/service_mesh_member_roll.py +0 -0
  141. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/service_monitor.py +0 -0
  142. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/sriov_network.py +0 -0
  143. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/sriov_network_node_policy.py +0 -0
  144. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/ssp.py +0 -0
  145. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/storage_class.py +0 -0
  146. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/storage_map.py +0 -0
  147. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/storage_profile.py +0 -0
  148. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/task_run.py +0 -0
  149. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/tekton_tasks.py +0 -0
  150. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/template.py +0 -0
  151. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/upload_token_request.py +0 -0
  152. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/validating_webhook_config.py +0 -0
  153. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/virtual_machine_Instance_replica_set.py +0 -0
  154. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/virtual_machine_clone.py +0 -0
  155. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/virtual_machine_cluster_instance_types.py +0 -0
  156. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/virtual_machine_cluster_preferences.py +0 -0
  157. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/virtual_machine_instance_migration.py +0 -0
  158. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/virtual_machine_instance_preset.py +0 -0
  159. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/virtual_machine_instance_types.py +0 -0
  160. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/virtual_machine_migration_resource_quota.py +0 -0
  161. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/virtual_machine_preferences.py +0 -0
  162. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/virtual_service.py +0 -0
  163. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/vm_import_config.py +0 -0
  164. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/volume_snapshot.py +0 -0
  165. {openshift_python_wrapper-4.15.18 → openshift_python_wrapper-10.0.0}/ocp_resources/volume_snapshot_class.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: openshift-python-wrapper
3
- Version: 4.15.18
3
+ Version: 10.0.0
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
@@ -18,10 +18,11 @@ Classifier: Programming Language :: Python :: 3.11
18
18
  Classifier: Programming Language :: Python :: 3.12
19
19
  Requires-Dist: colorlog (>=6.7.0,<7.0.0)
20
20
  Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
21
- Requires-Dist: kubernetes (>=28.0.0,<29.0.0)
21
+ Requires-Dist: kubernetes (>=29.0.0,<30.0.0)
22
22
  Requires-Dist: packaging (>=23.1,<24.0)
23
23
  Requires-Dist: python-benedict (>=0.33.0,<0.34.0)
24
24
  Requires-Dist: python-simple-logger (>=1.0.6,<2.0.0)
25
+ Requires-Dist: timeout-sampler (>=0.0.1,<0.0.2)
25
26
  Requires-Dist: xmltodict (>=0.13.0,<0.14.0)
26
27
  Project-URL: Bug Tracker, https://github.com/RedHatQE/openshift-python-wrapper/issues
27
28
  Project-URL: Documentation, https://openshift-python-wrapper.readthedocs.io/en/latest/
@@ -1,6 +1,6 @@
1
1
  from ocp_resources.constants import NOT_FOUND_ERROR_EXCEPTION_DICT
2
2
  from ocp_resources.resource import NamespacedResource
3
- from ocp_resources.utils import TimeoutSampler
3
+ from timeout_sampler import TimeoutSampler
4
4
 
5
5
 
6
6
  class Benchmark(NamespacedResource):
@@ -41,23 +41,19 @@ class CatalogSource(NamespacedResource):
41
41
  "Passing yaml_file or all parameters 'source_type', 'image',"
42
42
  " 'display_name' and 'publisher' is required."
43
43
  )
44
- self.res.update(
45
- {
46
- "spec": {
47
- "sourceType": self.source_type,
48
- "image": self.image,
49
- "displayName": self.display_name,
50
- "publisher": self.publisher,
51
- }
44
+ self.res.update({
45
+ "spec": {
46
+ "sourceType": self.source_type,
47
+ "image": self.image,
48
+ "displayName": self.display_name,
49
+ "publisher": self.publisher,
52
50
  }
53
- )
51
+ })
54
52
  if self.update_strategy_registry_poll_interval:
55
- self.res["spec"].update(
56
- {
57
- "updateStrategy": {
58
- "registryPoll": {
59
- "interval": self.update_strategy_registry_poll_interval,
60
- },
53
+ self.res["spec"].update({
54
+ "updateStrategy": {
55
+ "registryPoll": {
56
+ "interval": self.update_strategy_registry_poll_interval,
61
57
  },
62
- }
63
- )
58
+ },
59
+ })
@@ -2,7 +2,7 @@
2
2
 
3
3
  from ocp_resources.constants import PROTOCOL_ERROR_EXCEPTION_DICT, TIMEOUT_4MINUTES
4
4
  from ocp_resources.resource import Resource
5
- from ocp_resources.utils import TimeoutSampler
5
+ from timeout_sampler import TimeoutSampler
6
6
 
7
7
 
8
8
  class CDIConfig(Resource):
@@ -0,0 +1,39 @@
1
+ from ocp_resources.resource import NamespacedResource
2
+
3
+
4
+ class ControllerRevision(NamespacedResource):
5
+ """
6
+ https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/controller-revision-v1/
7
+ """
8
+
9
+ api_group = NamespacedResource.ApiGroup.APPS
10
+
11
+ def __init__(
12
+ self,
13
+ owner_references=None,
14
+ revision_object=None,
15
+ revision=None,
16
+ **kwargs,
17
+ ):
18
+ """
19
+ Args:
20
+ owner_references (list, optional): List of objects depended on this object.
21
+ revision_object (object, optional): the Data Object representing the state.
22
+ revision (int64): indicates the revision of the state represented by Data.
23
+ """
24
+ super().__init__(**kwargs)
25
+ self.owner_references = owner_references
26
+ self.revision_object = revision_object
27
+ self.revision = revision
28
+
29
+ def to_dict(self):
30
+ super().to_dict()
31
+ if not self.yaml_file:
32
+ if not self.revision:
33
+ raise ValueError("Passing yaml_file or parameter 'revision' is required.")
34
+ self.res.update({"revision": self.revision})
35
+
36
+ if self.owner_references:
37
+ self.res.setdefault("metadata", {}).update({"ownerReference": self.owner_references})
38
+ if self.revision_object:
39
+ self.res.update({"data": self.revision_object.res})
@@ -49,14 +49,12 @@ class CronJob(NamespacedResource):
49
49
  if not self.yaml_file:
50
50
  if not (self.job_template and self.schedule):
51
51
  raise ValueError("yaml_file or parameters 'job_template' and 'schedule' are" " required.")
52
- self.res.update(
53
- {
54
- "spec": {
55
- "jobTemplate": self.job_template,
56
- "schedule": self.schedule,
57
- }
52
+ self.res.update({
53
+ "spec": {
54
+ "jobTemplate": self.job_template,
55
+ "schedule": self.schedule,
58
56
  }
59
- )
57
+ })
60
58
  if self.timezone:
61
59
  self.res["spec"]["timezone"] = self.timezone
62
60
  if self.suspend:
@@ -1,10 +1,8 @@
1
- from ocp_resources.constants import TIMEOUT_4MINUTES
2
1
  from ocp_resources.resource import NamespacedResource
3
2
 
4
3
 
5
4
  class CSIStorageCapacity(NamespacedResource):
6
5
  """
7
- CSIStorageCapacity object. API reference:
8
6
  https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/csi-storage-capacity-v1/#CSIStorageCapacity
9
7
  """
10
8
 
@@ -12,24 +10,14 @@ class CSIStorageCapacity(NamespacedResource):
12
10
 
13
11
  def __init__(
14
12
  self,
15
- name=None,
16
- namespace=None,
17
- client=None,
18
13
  capacity=None,
19
14
  maximum_volume_size=None,
20
15
  node_topology=None,
21
16
  storage_class_name=None,
22
- teardown=True,
23
- privileged_client=None,
24
- yaml_file=None,
25
- delete_timeout=TIMEOUT_4MINUTES,
26
17
  **kwargs,
27
18
  ):
28
19
  """
29
20
  Args:
30
- name (str): Name of the CSIStorageCapacity resource
31
- namespace (str): Namespace of CSIStorageCapacity resource
32
- client: (DynamicClient): DynamicClient for api calls
33
21
  capacity (str, optional): value reported by the csi driver
34
22
  maximum_volume_size (str, optional): maximum volume size reported by csi driver
35
23
  storage_class_name (str): storage class name
@@ -37,21 +25,8 @@ class CSIStorageCapacity(NamespacedResource):
37
25
  was reported
38
26
  Example:
39
27
  node_topology: {'matchLabels': {'topology.hostpath.csi/node': 'c01-dbn-413-4c48b-worker-0-pmtv8'}}
40
- teardown (bool): Indicates if the resource should be torn down at the end
41
- privileged_client (DynamicClient): Privileged client for api calls
42
- yaml_file (str): yaml file for the resource.
43
- delete_timeout (int): timeout associated with delete action
44
28
  """
45
- super().__init__(
46
- name=name,
47
- namespace=namespace,
48
- client=client,
49
- teardown=teardown,
50
- privileged_client=privileged_client,
51
- yaml_file=yaml_file,
52
- delete_timeout=delete_timeout,
53
- **kwargs,
54
- )
29
+ super().__init__(**kwargs)
55
30
  self.capacity = capacity
56
31
  self.node_topology = node_topology
57
32
  self.storage_class_name = storage_class_name
@@ -62,11 +37,9 @@ class CSIStorageCapacity(NamespacedResource):
62
37
  if not self.yaml_file:
63
38
  if not self.storage_class_name:
64
39
  raise ValueError("yaml_file or parameter 'storage_class_name' is required.")
65
- self.res.update(
66
- {
67
- "storageClassName": self.storage_class_name,
68
- }
69
- )
40
+ self.res.update({
41
+ "storageClassName": self.storage_class_name,
42
+ })
70
43
  if self.maximum_volume_size:
71
44
  self.res["maximumVolumeSize"] = self.maximum_volume_size
72
45
  if self.node_topology:
@@ -2,7 +2,7 @@ import kubernetes
2
2
 
3
3
  from ocp_resources.constants import PROTOCOL_ERROR_EXCEPTION_DICT, TIMEOUT_4MINUTES
4
4
  from ocp_resources.resource import NamespacedResource
5
- from ocp_resources.utils import TimeoutSampler
5
+ from timeout_sampler import TimeoutSampler
6
6
 
7
7
 
8
8
  class DaemonSet(NamespacedResource):
@@ -0,0 +1,95 @@
1
+ from ocp_resources.resource import NamespacedResource
2
+
3
+
4
+ class DataImportCron(NamespacedResource):
5
+ """
6
+ https://kubevirt.io/cdi-api-reference/main/definitions.html#_v1beta1_dataimportcron
7
+ """
8
+
9
+ api_group = NamespacedResource.ApiGroup.CDI_KUBEVIRT_IO
10
+
11
+ def __init__(
12
+ self,
13
+ image_stream=None,
14
+ url=None,
15
+ cert_configmap=None,
16
+ pull_method=None,
17
+ storage_class=None,
18
+ size=None,
19
+ schedule=None,
20
+ garbage_collect=None,
21
+ managed_data_source=None,
22
+ imports_to_keep=None,
23
+ bind_immediate_annotation=None,
24
+ **kwargs,
25
+ ):
26
+ """
27
+ Args:
28
+ garbage_collect (str, optional): whether old PVCs should be cleaned up after a new PVC is imported.
29
+ Options are "Outdated"/"Never".
30
+ imports_to_keep (int, optional): number of import PVCs to keep when garbage collecting.
31
+ managed_data_source(str, optional): specifies the name of the corresponding DataSource to manage.
32
+ DataSource has to be in the same namespace.
33
+ schedule (str, optional): specifies in cron format when and how often to look for new imports.
34
+ storage_class (str, optional): Name of the StorageClass required by the claim.
35
+ size (str): Size of the resources claim quantity. Format is size+size unit, for example: "5Gi".
36
+ url (str, optional): URL is the url of the registry source (starting with the scheme: docker, oci-archive).
37
+ cert_configmap (str, optional): CertConfigMap provides a reference to the Registry certs
38
+ image_stream (str, optional): ImageStream is the name of image stream for import
39
+ bind_immediate_annotation (bool, optional): when WaitForFirstConsumer is set in StorageClass and the
40
+ DataSource should be bound immediately.
41
+ pull_method (str): can be either "pod" or "node" (node docker cache based import)
42
+ """
43
+ super().__init__(**kwargs)
44
+ self.image_stream = image_stream
45
+ self.url = url
46
+ self.cert_configmap = cert_configmap
47
+ self.pull_method = pull_method
48
+ self.storage_class = storage_class
49
+ self.size = size
50
+ self.schedule = schedule
51
+ self.garbage_collect = garbage_collect
52
+ self.managed_data_source = managed_data_source
53
+ self.imports_to_keep = imports_to_keep
54
+ self.bind_immediate_annotation = bind_immediate_annotation
55
+
56
+ def to_dict(self):
57
+ super().to_dict()
58
+ if not self.yaml_file:
59
+ if self.image_stream and self.url:
60
+ raise ValueError("imageStream and url cannot coexist")
61
+ if not self.pull_method:
62
+ raise ValueError("Passing yaml_file or parameter 'pull_method' is required")
63
+ self.res.update({
64
+ "spec": {
65
+ "template": {"spec": {"source": {"registry": {"pullMethod": self.pull_method}}}},
66
+ }
67
+ })
68
+ spec = self.res["spec"]["template"]["spec"]
69
+
70
+ if self.bind_immediate_annotation:
71
+ self.res["metadata"].setdefault("annotations", {}).update({
72
+ f"{NamespacedResource.ApiGroup.CDI_KUBEVIRT_IO}/storage.bind.immediate.requested": ("true")
73
+ })
74
+ if self.image_stream:
75
+ spec["source"]["registry"]["imageStream"] = self.image_stream
76
+ if self.url:
77
+ spec["source"]["registry"]["url"] = self.url
78
+ if self.cert_configmap:
79
+ spec["source"]["registry"]["certConfigMap"] = self.cert_configmap
80
+ if self.schedule:
81
+ self.res["spec"]["schedule"] = self.schedule
82
+ if self.garbage_collect:
83
+ self.res["spec"]["garbageCollect"] = self.garbage_collect
84
+ if self.managed_data_source:
85
+ self.res["spec"]["managedDataSource"] = self.managed_data_source
86
+ if self.imports_to_keep:
87
+ self.res["spec"]["importsToKeep"] = self.imports_to_keep
88
+
89
+ storage = {}
90
+ if self.size:
91
+ storage["resources"] = {"requests": {"storage": self.size}}
92
+ if self.storage_class:
93
+ storage["storageClassName"] = self.storage_class
94
+ if storage:
95
+ spec["storage"] = storage
@@ -33,13 +33,11 @@ class DataSource(NamespacedResource):
33
33
  def to_dict(self):
34
34
  super().to_dict()
35
35
  if not self.yaml_file:
36
- self.res.update(
37
- {
38
- "spec": {
39
- "source": self.source,
40
- },
41
- }
42
- )
36
+ self.res.update({
37
+ "spec": {
38
+ "source": self.source,
39
+ },
40
+ })
43
41
 
44
42
  @property
45
43
  def pvc(self):
@@ -7,7 +7,7 @@ from ocp_resources.constants import (
7
7
  )
8
8
  from ocp_resources.persistent_volume_claim import PersistentVolumeClaim
9
9
  from ocp_resources.resource import NamespacedResource, Resource
10
- from ocp_resources.utils import TimeoutExpiredError, TimeoutSampler
10
+ from timeout_sampler import TimeoutExpiredError, TimeoutSampler
11
11
 
12
12
 
13
13
  class DataVolume(NamespacedResource):
@@ -156,16 +156,14 @@ class DataVolume(NamespacedResource):
156
156
  def to_dict(self):
157
157
  super().to_dict()
158
158
  if not self.yaml_file:
159
- self.res.update(
160
- {
161
- "spec": {
162
- "source": {self.source: {"url": self.url}},
163
- self.api_name: {
164
- "resources": {"requests": {"storage": self.size}},
165
- },
166
- }
159
+ self.res.update({
160
+ "spec": {
161
+ "source": {self.source: {"url": self.url}},
162
+ self.api_name: {
163
+ "resources": {"requests": {"storage": self.size}},
164
+ },
167
165
  }
168
- )
166
+ })
169
167
  if self.access_modes:
170
168
  self.res["spec"][self.api_name]["accessModes"] = [self.access_modes]
171
169
  if self.content_type:
@@ -183,17 +181,17 @@ class DataVolume(NamespacedResource):
183
181
  if self.source == "upload" or self.source == "blank":
184
182
  self.res["spec"]["source"][self.source] = {}
185
183
  if self.hostpath_node:
186
- self.res["metadata"].setdefault("annotations", {}).update(
187
- {f"{NamespacedResource.ApiGroup.KUBEVIRT_IO}/provisionOnNode": (self.hostpath_node)}
188
- )
184
+ self.res["metadata"].setdefault("annotations", {}).update({
185
+ f"{NamespacedResource.ApiGroup.KUBEVIRT_IO}/provisionOnNode": (self.hostpath_node)
186
+ })
189
187
  if self.multus_annotation:
190
- self.res["metadata"].setdefault("annotations", {}).update(
191
- {f"{NamespacedResource.ApiGroup.K8S_V1_CNI_CNCF_IO}/networks": (self.multus_annotation)}
192
- )
188
+ self.res["metadata"].setdefault("annotations", {}).update({
189
+ f"{NamespacedResource.ApiGroup.K8S_V1_CNI_CNCF_IO}/networks": (self.multus_annotation)
190
+ })
193
191
  if self.bind_immediate_annotation:
194
- self.res["metadata"].setdefault("annotations", {}).update(
195
- {f"{self.api_group}/storage.bind.immediate.requested": "true"}
196
- )
192
+ self.res["metadata"].setdefault("annotations", {}).update({
193
+ f"{self.api_group}/storage.bind.immediate.requested": "true"
194
+ })
197
195
  if self.source == "pvc":
198
196
  self.res["spec"]["source"]["pvc"] = {
199
197
  "name": self.source_pvc or "dv-source",
@@ -202,9 +200,9 @@ class DataVolume(NamespacedResource):
202
200
  if self.preallocation is not None:
203
201
  self.res["spec"]["preallocation"] = self.preallocation
204
202
  if self.delete_after_completion:
205
- self.res["metadata"].setdefault("annotations", {}).update(
206
- {f"{self.api_group}/storage.deleteAfterCompletion": (self.delete_after_completion)}
207
- )
203
+ self.res["metadata"].setdefault("annotations", {}).update({
204
+ f"{self.api_group}/storage.deleteAfterCompletion": (self.delete_after_completion)
205
+ })
208
206
 
209
207
  def wait_deleted(self, timeout=TIMEOUT_4MINUTES):
210
208
  """
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  from ocp_resources.constants import PROTOCOL_ERROR_EXCEPTION_DICT, TIMEOUT_4MINUTES
3
3
  from ocp_resources.resource import NamespacedResource
4
- from ocp_resources.utils import TimeoutSampler, TimeoutWatch
4
+ from timeout_sampler import TimeoutSampler, TimeoutWatch
5
5
 
6
6
 
7
7
  class Deployment(NamespacedResource):
@@ -56,11 +56,9 @@ class EndpointSlice(NamespacedResource):
56
56
  if not self.yaml_file:
57
57
  if not (self.address_type and self.endpoints):
58
58
  raise ValueError("yaml_file or parameters 'address_type' and 'endpoints' are" " required.")
59
- self.res.update(
60
- {
61
- "addressTypes": self.address_type,
62
- "endpoints": self.endpoints,
63
- }
64
- )
59
+ self.res.update({
60
+ "addressTypes": self.address_type,
61
+ "endpoints": self.endpoints,
62
+ })
65
63
  if self.ports:
66
64
  self.res["ports"] = self.ports
@@ -53,11 +53,9 @@ class Endpoints(NamespacedResource):
53
53
  if not self.yaml_file:
54
54
  if not (self.addresses and self.ports):
55
55
  raise ValueError("yaml_file or parameters 'addresses' and 'ports' are required.")
56
- self.res.update(
57
- {
58
- "subsets": {
59
- "addresses": self.addresses,
60
- "ports": self.ports,
61
- }
56
+ self.res.update({
57
+ "subsets": {
58
+ "addresses": self.addresses,
59
+ "ports": self.ports,
62
60
  }
63
- )
61
+ })
@@ -42,11 +42,9 @@ class Hook(NamespacedResource, MTV):
42
42
  def to_dict(self):
43
43
  super().to_dict()
44
44
  if not self.yaml_file:
45
- self.res.update(
46
- {
47
- "spec": {
48
- "image": self.image,
49
- "playbook": self.playbook,
50
- },
51
- }
52
- )
45
+ self.res.update({
46
+ "spec": {
47
+ "image": self.image,
48
+ "playbook": self.playbook,
49
+ },
50
+ })
@@ -46,19 +46,17 @@ class Host(NamespacedResource, MTV):
46
46
  def to_dict(self):
47
47
  super().to_dict()
48
48
  if not self.yaml_file:
49
- self.res.update(
50
- {
51
- "spec": {
52
- "id": self.host_id,
53
- "ipAddress": self.ip_address,
54
- "secret": {
55
- "name": self.secret_name,
56
- "namespace": self.secret_namespace,
57
- },
58
- "provider": {
59
- "name": self.provider_name,
60
- "namespace": self.provider_namespace,
61
- },
62
- }
49
+ self.res.update({
50
+ "spec": {
51
+ "id": self.host_id,
52
+ "ipAddress": self.ip_address,
53
+ "secret": {
54
+ "name": self.secret_name,
55
+ "namespace": self.secret_namespace,
56
+ },
57
+ "provider": {
58
+ "name": self.provider_name,
59
+ "namespace": self.provider_namespace,
60
+ },
63
61
  }
64
- )
62
+ })
@@ -39,11 +39,9 @@ class ImageStream(NamespacedResource):
39
39
  def to_dict(self):
40
40
  super().to_dict()
41
41
  if not self.yaml_file:
42
- self.res.update(
43
- {
44
- "spec": {
45
- "lookupPolicy": {"local": self.lookup_policy},
46
- "tags": self.tags,
47
- }
42
+ self.res.update({
43
+ "spec": {
44
+ "lookupPolicy": {"local": self.lookup_policy},
45
+ "tags": self.tags,
48
46
  }
49
- )
47
+ })
@@ -51,15 +51,13 @@ class KubeDescheduler(NamespacedResource):
51
51
  def to_dict(self):
52
52
  super().to_dict()
53
53
  if not self.yaml_file:
54
- self.res.update(
55
- {
56
- "spec": {
57
- "deschedulingIntervalSeconds": self.descheduling_interval,
58
- "logLevel": self.log_level,
59
- "managementState": self.management_state,
60
- "mode": self.mode,
61
- "operatorLogLevel": self.operator_log_level,
62
- "profiles": self.profiles,
63
- }
54
+ self.res.update({
55
+ "spec": {
56
+ "deschedulingIntervalSeconds": self.descheduling_interval,
57
+ "logLevel": self.log_level,
58
+ "managementState": self.management_state,
59
+ "mode": self.mode,
60
+ "operatorLogLevel": self.operator_log_level,
61
+ "profiles": self.profiles,
64
62
  }
65
- )
63
+ })
@@ -1,6 +1,6 @@
1
1
  from ocp_resources.constants import TIMEOUT_4MINUTES
2
2
  from ocp_resources.resource import NamespacedResource
3
- from ocp_resources.utils import TimeoutExpiredError, TimeoutSampler
3
+ from timeout_sampler import TimeoutExpiredError, TimeoutSampler
4
4
 
5
5
  TIMEOUT_5MINUTES = 300
6
6
 
@@ -178,7 +178,7 @@ class MachineSet(NamespacedResource):
178
178
  super().to_dict()
179
179
  self.res.update({"spec": {"replicas": replicas}})
180
180
 
181
- self.logger.info(f"Scale machine-set from {self.desired_replicas} replicas to {replicas} replicas")
181
+ self.logger.info(f"Scale machine-set from {self.desired_replicas} replicas to" f" {replicas} replicas")
182
182
  self.update(resource_dict=self.res)
183
183
  if wait:
184
184
  return self.wait_for_replicas(timeout=wait_timeout, sleep=sleep)
@@ -46,16 +46,14 @@ class Migration(NamespacedResource, MTV):
46
46
  def to_dict(self):
47
47
  super().to_dict()
48
48
  if not self.yaml_file:
49
- self.res.update(
50
- {
51
- "spec": {
52
- "plan": {
53
- "name": self.plan_name,
54
- "namespace": self.plan_namespace,
55
- }
49
+ self.res.update({
50
+ "spec": {
51
+ "plan": {
52
+ "name": self.plan_name,
53
+ "namespace": self.plan_namespace,
56
54
  }
57
55
  }
58
- )
56
+ })
59
57
 
60
58
  if self.cut_over:
61
59
  self.res["spec"]["cutover"] = self.cut_over.strftime(format="%Y-%m-%dT%H:%M:%SZ")
@@ -1,4 +1,4 @@
1
- from ocp_resources.utils import TimeoutExpiredError, TimeoutSampler
1
+ from timeout_sampler import TimeoutExpiredError, TimeoutSampler
2
2
 
3
3
 
4
4
  def _get_status_condition_log_message(**status_condition):
@@ -112,7 +112,7 @@ class MTV:
112
112
  return
113
113
 
114
114
  except TimeoutExpiredError:
115
- self.logger.error(msg=(f"Last Status Condition of {self.kind} {self.name} was: {last_condition}"))
115
+ self.logger.error(msg=(f"Last Status Condition of {self.kind} {self.name} was:" f" {last_condition}"))
116
116
  raise
117
117
 
118
118
  def wait_for_condition_ready(self, wait_timeout=360):