paasta-tools 1.24.1__tar.gz → 1.26.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 (359) hide show
  1. {paasta_tools-1.24.1/paasta_tools.egg-info → paasta_tools-1.26.0}/PKG-INFO +2 -2
  2. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/__init__.py +1 -1
  3. paasta_tools-1.26.0/paasta_tools/cleanup_expired_autoscaling_overrides.py +155 -0
  4. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/schemas/tron_schema.json +5 -0
  5. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/kubernetes_tools.py +43 -0
  6. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/tron_tools.py +8 -0
  7. {paasta_tools-1.24.1 → paasta_tools-1.26.0/paasta_tools.egg-info}/PKG-INFO +2 -2
  8. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools.egg-info/SOURCES.txt +1 -0
  9. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools.egg-info/entry_points.txt +1 -0
  10. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools.egg-info/requires.txt +1 -1
  11. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/requirements-minimal.txt +1 -1
  12. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/setup.py +1 -0
  13. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_tron_tools.py +13 -1
  14. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/LICENSE +0 -0
  15. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/MANIFEST.in +0 -0
  16. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/README.md +0 -0
  17. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/k8s_itests/__init__.py +0 -0
  18. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/k8s_itests/test_autoscaling.py +0 -0
  19. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/k8s_itests/utils.py +0 -0
  20. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/adhoc_tools.py +0 -0
  21. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/api/__init__.py +0 -0
  22. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/api/api.py +0 -0
  23. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/api/api_docs/swagger.json +0 -0
  24. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/api/client.py +0 -0
  25. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/api/settings.py +0 -0
  26. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/api/tweens/__init__.py +0 -0
  27. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/api/tweens/auth.py +0 -0
  28. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/api/tweens/profiling.py +0 -0
  29. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/api/tweens/request_logger.py +0 -0
  30. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/api/views/__init__.py +0 -0
  31. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/api/views/autoscaler.py +0 -0
  32. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/api/views/exception.py +0 -0
  33. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/api/views/flink.py +0 -0
  34. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/api/views/instance.py +0 -0
  35. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/api/views/pause_autoscaler.py +0 -0
  36. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/api/views/remote_run.py +0 -0
  37. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/api/views/resources.py +0 -0
  38. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/api/views/service.py +0 -0
  39. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/api/views/version.py +0 -0
  40. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/apply_external_resources.py +0 -0
  41. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/async_utils.py +0 -0
  42. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/autoscaling/__init__.py +0 -0
  43. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
  44. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/autoscaling/forecasting.py +0 -0
  45. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
  46. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
  47. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/autoscaling/utils.py +0 -0
  48. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/bounce_lib.py +0 -0
  49. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/broadcast_log_to_services.py +0 -0
  50. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cassandracluster_tools.py +0 -0
  51. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/check_autoscaler_max_instances.py +0 -0
  52. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
  53. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/check_flink_services_health.py +0 -0
  54. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/check_kubernetes_api.py +0 -0
  55. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/check_kubernetes_services_replication.py +0 -0
  56. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/check_oom_events.py +0 -0
  57. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/check_services_replication_tools.py +0 -0
  58. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/check_spark_jobs.py +0 -0
  59. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
  60. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
  61. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
  62. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cleanup_tron_namespaces.py +0 -0
  63. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/__init__.py +0 -0
  64. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/authentication.py +0 -0
  65. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cli.py +0 -0
  66. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/__init__.py +0 -0
  67. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/autoscale.py +0 -0
  68. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/check.py +0 -0
  69. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/cook_image.py +0 -0
  70. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
  71. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/get_image_version.py +0 -0
  72. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
  73. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/info.py +0 -0
  74. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/itest.py +0 -0
  75. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/list.py +0 -0
  76. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/list_clusters.py +0 -0
  77. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
  78. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/list_namespaces.py +0 -0
  79. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/local_run.py +0 -0
  80. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/logs.py +0 -0
  81. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
  82. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/mesh_status.py +0 -0
  83. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
  84. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
  85. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/remote_run.py +0 -0
  86. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/rollback.py +0 -0
  87. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/secret.py +0 -0
  88. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/security_check.py +0 -0
  89. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/spark_run.py +0 -0
  90. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
  91. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/status.py +0 -0
  92. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/validate.py +0 -0
  93. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
  94. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/fsm/__init__.py +0 -0
  95. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/fsm/autosuggest.py +0 -0
  96. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/fsm/template/README.md +0 -0
  97. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
  98. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/kubernetes-PROD.yaml +0 -0
  99. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
  100. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
  101. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
  102. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/fsm_cmd.py +0 -0
  103. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
  104. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
  105. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
  106. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
  107. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
  108. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
  109. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/schemas/eks_schema.json +0 -0
  110. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/schemas/kubernetes_schema.json +0 -0
  111. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
  112. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/schemas/service_schema.json +0 -0
  113. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
  114. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/cli/utils.py +0 -0
  115. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/clusterman.py +0 -0
  116. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/config_utils.py +0 -0
  117. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/__init__.py +0 -0
  118. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
  119. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
  120. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/check_orphans.py +0 -0
  121. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
  122. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/create_paasta_playground.py +0 -0
  123. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
  124. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
  125. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/habitat_fixer.py +0 -0
  126. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/ide_helper.py +0 -0
  127. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
  128. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
  129. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/kill_bad_containers.py +0 -0
  130. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
  131. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/mock_patch_checker.py +0 -0
  132. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/paasta_update_soa_memcpu.py +0 -0
  133. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/render_template.py +0 -0
  134. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
  135. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/service_shard_remove.py +0 -0
  136. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/service_shard_update.py +0 -0
  137. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/shared_ip_check.py +0 -0
  138. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
  139. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/delete_kubernetes_deployments.py +0 -0
  140. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/deployment_utils.py +0 -0
  141. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/docker_wrapper.py +0 -0
  142. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/docker_wrapper_imports.py +0 -0
  143. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/drain_lib.py +0 -0
  144. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/dump_locally_running_services.py +0 -0
  145. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/eks_tools.py +0 -0
  146. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/envoy_tools.py +0 -0
  147. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/firewall.py +0 -0
  148. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/firewall_logging.py +0 -0
  149. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/firewall_update.py +0 -0
  150. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/flink_tools.py +0 -0
  151. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/flinkeks_tools.py +0 -0
  152. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/frameworks/__init__.py +0 -0
  153. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/frameworks/adhoc_scheduler.py +0 -0
  154. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/frameworks/constraints.py +0 -0
  155. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/frameworks/native_scheduler.py +0 -0
  156. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/frameworks/native_service_config.py +0 -0
  157. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/frameworks/task_store.py +0 -0
  158. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/generate_all_deployments +0 -0
  159. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/generate_authenticating_services.py +0 -0
  160. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/generate_deployments_for_service.py +0 -0
  161. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/generate_services_file.py +0 -0
  162. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/generate_services_yaml.py +0 -0
  163. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/hacheck.py +0 -0
  164. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/instance/__init__.py +0 -0
  165. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
  166. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/instance/kubernetes.py +0 -0
  167. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/iptables.py +0 -0
  168. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/kafkacluster_tools.py +0 -0
  169. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/kubernetes/__init__.py +0 -0
  170. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/kubernetes/application/__init__.py +0 -0
  171. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/kubernetes/application/controller_wrappers.py +0 -0
  172. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/kubernetes/application/tools.py +0 -0
  173. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/kubernetes/bin/__init__.py +0 -0
  174. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
  175. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/kubernetes/bin/paasta_cleanup_remote_run_resources.py +0 -0
  176. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
  177. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
  178. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/kubernetes/remote_run.py +0 -0
  179. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/list_kubernetes_service_instances.py +0 -0
  180. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/list_tron_namespaces.py +0 -0
  181. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/long_running_service_tools.py +0 -0
  182. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/mac_address.py +0 -0
  183. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/marathon_dashboard.py +0 -0
  184. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/mesos/__init__.py +0 -0
  185. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/mesos/cfg.py +0 -0
  186. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/mesos/cluster.py +0 -0
  187. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/mesos/exceptions.py +0 -0
  188. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/mesos/framework.py +0 -0
  189. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/mesos/log.py +0 -0
  190. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/mesos/master.py +0 -0
  191. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/mesos/mesos_file.py +0 -0
  192. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/mesos/parallel.py +0 -0
  193. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/mesos/slave.py +0 -0
  194. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/mesos/task.py +0 -0
  195. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/mesos/util.py +0 -0
  196. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/mesos/zookeeper.py +0 -0
  197. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/mesos_maintenance.py +0 -0
  198. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/mesos_tools.py +0 -0
  199. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/metrics/__init__.py +0 -0
  200. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/metrics/metastatus_lib.py +0 -0
  201. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/metrics/metrics_lib.py +0 -0
  202. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/monitoring/__init__.py +0 -0
  203. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
  204. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/monitoring_tools.py +0 -0
  205. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/monkrelaycluster_tools.py +0 -0
  206. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/nrtsearchservice_tools.py +0 -0
  207. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
  208. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/oom_logger.py +0 -0
  209. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paasta_deploy_tron_jobs +0 -0
  210. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paasta_execute_docker_command.py +0 -0
  211. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paasta_native_serviceinit.py +0 -0
  212. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paasta_service_config_loader.py +0 -0
  213. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/__init__.py +0 -0
  214. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/api/__init__.py +0 -0
  215. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
  216. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/api/default_api.py +0 -0
  217. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/api/remote_run_api.py +0 -0
  218. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/api/resources_api.py +0 -0
  219. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/api/service_api.py +0 -0
  220. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/api_client.py +0 -0
  221. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/apis/__init__.py +0 -0
  222. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/configuration.py +0 -0
  223. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/exceptions.py +0 -0
  224. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/__init__.py +0 -0
  225. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
  226. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
  227. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/autoscaling_override.py +0 -0
  228. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
  229. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
  230. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
  231. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
  232. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
  233. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
  234. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/flink_config.py +0 -0
  235. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/flink_job.py +0 -0
  236. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
  237. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
  238. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
  239. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
  240. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/inline_object.py +0 -0
  241. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
  242. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
  243. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/inline_response202.py +0 -0
  244. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/inline_response403.py +0 -0
  245. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
  246. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
  247. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/instance_status.py +0 -0
  248. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
  249. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
  250. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
  251. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
  252. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
  253. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
  254. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
  255. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
  256. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
  257. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
  258. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
  259. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
  260. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
  261. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
  262. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
  263. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
  264. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
  265. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
  266. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/remote_run_outcome.py +0 -0
  267. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/remote_run_start.py +0 -0
  268. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/remote_run_stop.py +0 -0
  269. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/remote_run_token.py +0 -0
  270. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/resource.py +0 -0
  271. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/resource_item.py +0 -0
  272. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/resource_value.py +0 -0
  273. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
  274. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
  275. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
  276. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
  277. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/model_utils.py +0 -0
  278. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/models/__init__.py +0 -0
  279. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/paastaapi/rest.py +0 -0
  280. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/prune_completed_pods.py +0 -0
  281. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/puppet_service_tools.py +0 -0
  282. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/py.typed +0 -0
  283. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/remote_git.py +0 -0
  284. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
  285. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/run-paasta-api-playground.py +0 -0
  286. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/secret_providers/__init__.py +0 -0
  287. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/secret_providers/vault.py +0 -0
  288. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/secret_tools.py +0 -0
  289. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/setup_istio_mesh.py +0 -0
  290. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/setup_kubernetes_cr.py +0 -0
  291. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/setup_kubernetes_crd.py +0 -0
  292. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
  293. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/setup_kubernetes_job.py +0 -0
  294. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
  295. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/setup_tron_namespace.py +0 -0
  296. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/slack.py +0 -0
  297. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/smartstack_tools.py +0 -0
  298. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/spark_tools.py +0 -0
  299. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
  300. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/tron/__init__.py +0 -0
  301. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/tron/client.py +0 -0
  302. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/tron/tron_command_context.py +0 -0
  303. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/tron/tron_timeutils.py +0 -0
  304. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/utils.py +0 -0
  305. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools/yaml_tools.py +0 -0
  306. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools.egg-info/dependency_links.txt +0 -0
  307. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/paasta_tools.egg-info/top_level.txt +0 -0
  308. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/pyproject.toml +0 -0
  309. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/setup.cfg +0 -0
  310. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_adhoc_tools.py +0 -0
  311. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_apply_external_resources.py +0 -0
  312. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_async_utils.py +0 -0
  313. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_bounce_lib.py +0 -0
  314. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_check_flink_services_health.py +0 -0
  315. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_check_kubernetes_services_replication.py +0 -0
  316. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_check_oom_events.py +0 -0
  317. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_check_service_replication_tools.py +0 -0
  318. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_check_spark_jobs.py +0 -0
  319. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_cleanup_kubernetes_jobs.py +0 -0
  320. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_config_utils.py +0 -0
  321. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_delete_kubernetes_deployments.py +0 -0
  322. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_deployment_utils.py +0 -0
  323. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_docker_wrapper.py +0 -0
  324. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_drain_lib.py +0 -0
  325. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_eks_tools.py +0 -0
  326. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_envoy_tools.py +0 -0
  327. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_firewall.py +0 -0
  328. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_firewall_logging.py +0 -0
  329. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_firewall_update.py +0 -0
  330. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_flink_tools.py +0 -0
  331. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_flinkeks_tools.py +0 -0
  332. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_generate_authenticating_services.py +0 -0
  333. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_generate_deployments_for_service.py +0 -0
  334. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_generate_services_file.py +0 -0
  335. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_generate_services_yaml.py +0 -0
  336. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_hacheck.py +0 -0
  337. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_iptables.py +0 -0
  338. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_kubernetes_tools.py +0 -0
  339. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_list_kubernetes_service_instances.py +0 -0
  340. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_long_running_service_tools.py +0 -0
  341. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_mac_address.py +0 -0
  342. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_mesos_tools.py +0 -0
  343. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_monitoring_tools.py +0 -0
  344. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_nrtsearchserviceseks_tools.py +0 -0
  345. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_oom_logger.py +0 -0
  346. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_paasta_execute_docker_command.py +0 -0
  347. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_paasta_service_config_loader.py +0 -0
  348. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_puppet_service_tools.py +0 -0
  349. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_remote_git.py +0 -0
  350. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_secret_tools.py +0 -0
  351. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_setup_istio_mesh.py +0 -0
  352. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_setup_kubernetes_cr.py +0 -0
  353. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_setup_kubernetes_job.py +0 -0
  354. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_setup_prometheus_adapter_config.py +0 -0
  355. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_slack.py +0 -0
  356. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_smartstack_tools.py +0 -0
  357. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_spark_tools.py +0 -0
  358. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_task_processing.py +0 -0
  359. {paasta_tools-1.24.1 → paasta_tools-1.26.0}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: paasta-tools
3
- Version: 1.24.1
3
+ Version: 1.26.0
4
4
  Summary: Tools for Yelps SOA infrastructure
5
5
  Author: Compute Infrastructure @ Yelp
6
6
  Author-email: compute-infra@yelp.com
@@ -59,7 +59,7 @@ Requires-Dist: requests-cache>=0.4.10
59
59
  Requires-Dist: retry
60
60
  Requires-Dist: ruamel.yaml
61
61
  Requires-Dist: sensu-plugin
62
- Requires-Dist: service-configuration-lib>=3.3.3
62
+ Requires-Dist: service-configuration-lib>=3.3.5
63
63
  Requires-Dist: signalfx
64
64
  Requires-Dist: slackclient>=1.2.1
65
65
  Requires-Dist: sticht>=1.1.0
@@ -17,4 +17,4 @@
17
17
  # setup phase, the dependencies may not exist on disk yet.
18
18
  #
19
19
  # Don't bump version manually. See `make release` docs in ./Makefile
20
- __version__ = "1.24.1"
20
+ __version__ = "1.26.0"
@@ -0,0 +1,155 @@
1
+ import argparse
2
+ import json
3
+ import logging
4
+ import sys
5
+ import time
6
+ from datetime import datetime
7
+ from datetime import timezone
8
+
9
+ from kubernetes.client.rest import ApiException
10
+
11
+ from paasta_tools.kubernetes_tools import AUTOSCALING_OVERRIDES_CONFIGMAP_NAME
12
+ from paasta_tools.kubernetes_tools import AUTOSCALING_OVERRIDES_CONFIGMAP_NAMESPACE
13
+ from paasta_tools.kubernetes_tools import get_namespaced_configmap
14
+ from paasta_tools.kubernetes_tools import KubeClient
15
+ from paasta_tools.kubernetes_tools import replace_namespaced_configmap
16
+
17
+ log = logging.getLogger(__name__)
18
+
19
+
20
+ def parse_args():
21
+ parser = argparse.ArgumentParser(
22
+ description=f"Clean up expired entries from the {AUTOSCALING_OVERRIDES_CONFIGMAP_NAME} configmap"
23
+ )
24
+ parser.add_argument(
25
+ "--dry-run",
26
+ dest="dry_run",
27
+ action="store_true",
28
+ help="Print entries to be removed instead of removing them",
29
+ )
30
+ parser.add_argument(
31
+ "-v", "--verbose", dest="verbose", action="store_true", default=False
32
+ )
33
+ args = parser.parse_args()
34
+ return args
35
+
36
+
37
+ def setup_logging(verbose):
38
+ level = logging.DEBUG if verbose else logging.INFO
39
+ logging.basicConfig(level=level)
40
+ # silence kubernetes client metadata logs since debug ones are pretty noisy
41
+ logging.getLogger("kubernetes.client.rest").setLevel(logging.ERROR)
42
+
43
+
44
+ def main():
45
+ args = parse_args()
46
+ setup_logging(args.verbose)
47
+
48
+ kube_client = KubeClient()
49
+
50
+ try:
51
+ configmap = get_namespaced_configmap(
52
+ name=AUTOSCALING_OVERRIDES_CONFIGMAP_NAME,
53
+ namespace=AUTOSCALING_OVERRIDES_CONFIGMAP_NAMESPACE,
54
+ kube_client=kube_client,
55
+ )
56
+ except ApiException as e:
57
+ if e.status == 404:
58
+ log.debug(
59
+ f"ConfigMap {AUTOSCALING_OVERRIDES_CONFIGMAP_NAME} not found, nothing to clean up"
60
+ )
61
+ sys.exit(0)
62
+ else:
63
+ log.error(f"Error retrieving ConfigMap: {e}")
64
+ sys.exit(1)
65
+
66
+ if configmap is None:
67
+ log.debug(
68
+ f"ConfigMap {AUTOSCALING_OVERRIDES_CONFIGMAP_NAME} not found, nothing to clean up"
69
+ )
70
+ sys.exit(0)
71
+
72
+ if not configmap.data:
73
+ log.debug("ConfigMap has no data, nothing to clean up")
74
+ sys.exit(0)
75
+
76
+ current_timestamp = (
77
+ time.time()
78
+ ) # we'll fix the comparison time to the start of the script execution
79
+ expired_entries = [] # used just for logging
80
+ unexpired_data = {} # used to replace the existing configmap data
81
+
82
+ log.debug(f"Current timestamp: {current_timestamp}")
83
+ for service_instance, override_json in configmap.data.items():
84
+ log.debug(f"Processing entry for {service_instance}")
85
+
86
+ try:
87
+ override_data = json.loads(override_json)
88
+ except json.JSONDecodeError:
89
+ log.exception(
90
+ f"Failed to parse JSON for {service_instance}, removing entry"
91
+ )
92
+ expired_entries.append(service_instance)
93
+ continue
94
+
95
+ if "expire_after" not in override_data:
96
+ log.warning(
97
+ f"Entry for {service_instance} missing expire_after field, removing entry"
98
+ )
99
+ expired_entries.append(service_instance)
100
+ continue
101
+
102
+ try:
103
+ expire_after = float(override_data["expire_after"])
104
+ except (ValueError, TypeError):
105
+ log.exception(
106
+ f"Failed to parse expire_after for {service_instance}, removing entry"
107
+ )
108
+ expired_entries.append(service_instance)
109
+ continue
110
+
111
+ if current_timestamp > expire_after:
112
+ expire_datetime = datetime.fromtimestamp(expire_after, tz=timezone.utc)
113
+ log.debug(
114
+ f"Entry for {service_instance} expired at {expire_after} ({expire_datetime})"
115
+ )
116
+ expired_entries.append(service_instance)
117
+ else:
118
+ expire_datetime = datetime.fromtimestamp(expire_after, tz=timezone.utc)
119
+ log.debug(
120
+ f"Entry for {service_instance} expires at {expire_after} ({expire_datetime}), keeping"
121
+ )
122
+ unexpired_data[service_instance] = override_json
123
+
124
+ if not expired_entries:
125
+ log.info("No expired entries found")
126
+ sys.exit(0)
127
+
128
+ if args.dry_run:
129
+ log.info(
130
+ "Would have removed the following expired entries:\n "
131
+ + "\n ".join(expired_entries)
132
+ )
133
+ sys.exit(0)
134
+
135
+ try:
136
+ configmap.data = (
137
+ unexpired_data # naughtily re-use the existing configmap object
138
+ )
139
+ replace_namespaced_configmap( # NOTE: this is not a patch since you cannot currently remove entries in a patch
140
+ name=AUTOSCALING_OVERRIDES_CONFIGMAP_NAME,
141
+ namespace=AUTOSCALING_OVERRIDES_CONFIGMAP_NAMESPACE,
142
+ body=configmap,
143
+ kube_client=kube_client,
144
+ )
145
+ log.info(
146
+ f"Successfully removed {len(expired_entries)} expired entries:\n "
147
+ + "\n ".join(expired_entries)
148
+ )
149
+ except ApiException as e:
150
+ log.error(f"Failed to update ConfigMap: {e}")
151
+ sys.exit(1)
152
+
153
+
154
+ if __name__ == "__main__":
155
+ main()
@@ -91,6 +91,11 @@
91
91
  },
92
92
  "uniqueItems": true
93
93
  },
94
+ "idempotent": {
95
+ "type": "boolean",
96
+ "default": false,
97
+ "$comment": "This will be used to determine whether the action can be retried without side effects."
98
+ },
94
99
  "extra_constraints": {
95
100
  "type": "array",
96
101
  "items": {
@@ -4709,6 +4709,49 @@ def patch_namespaced_configmap(
4709
4709
  raise
4710
4710
 
4711
4711
 
4712
+ def replace_namespaced_configmap(
4713
+ name: str,
4714
+ body: V1ConfigMap,
4715
+ *,
4716
+ namespace: str,
4717
+ kube_client: KubeClient,
4718
+ ) -> V1ConfigMap:
4719
+ """
4720
+ Replaces an existing configmap with the given configmap.
4721
+ """
4722
+ try:
4723
+ return kube_client.core.replace_namespaced_config_map(
4724
+ name=name, namespace=namespace, body=body
4725
+ )
4726
+ except ApiException as e:
4727
+ if e.status == 404:
4728
+ raise ValueError(f"ConfigMap {name} not found in namespace {namespace}")
4729
+ else:
4730
+ raise
4731
+
4732
+
4733
+ def delete_namespaced_configmap(
4734
+ name: str,
4735
+ body: V1ConfigMap,
4736
+ *,
4737
+ namespace: str,
4738
+ kube_client: KubeClient,
4739
+ ) -> V1ConfigMap:
4740
+ """
4741
+ Delete a configmap with the given name in the given namespace.
4742
+ """
4743
+ try:
4744
+ return kube_client.core.delete_namespaced_config_map(
4745
+ name=name,
4746
+ namespace=namespace,
4747
+ )
4748
+ except ApiException as e:
4749
+ if e.status == 404:
4750
+ raise ValueError(f"ConfigMap {name} not found in namespace {namespace}")
4751
+ else:
4752
+ raise
4753
+
4754
+
4712
4755
  def get_or_create_namespaced_configmap(
4713
4756
  configmap: str,
4714
4757
  *,
@@ -260,6 +260,7 @@ class TronActionConfigDict(InstanceConfigDict, total=False):
260
260
  # TODO: TRON-2145: use this to implement timeout for non-spark actions in tron
261
261
  max_runtime: str
262
262
  mrjob: bool
263
+ idempotent: bool
263
264
 
264
265
 
265
266
  class TronActionConfig(InstanceConfig):
@@ -422,6 +423,9 @@ class TronActionConfig(InstanceConfig):
422
423
  def get_job_name(self):
423
424
  return self.job
424
425
 
426
+ def get_idempotent(self) -> bool:
427
+ return self.config_dict.get("idempotent", False)
428
+
425
429
  def get_action_name(self):
426
430
  return self.action
427
431
 
@@ -977,6 +981,7 @@ def format_tron_action_dict(action_config: TronActionConfig):
977
981
  "secret_volumes": action_config.get_secret_volumes(),
978
982
  "expected_runtime": action_config.get_expected_runtime(),
979
983
  "trigger_downstreams": action_config.get_trigger_downstreams(),
984
+ "idempotent": action_config.get_idempotent(),
980
985
  "triggered_by": action_config.get_triggered_by(),
981
986
  "on_upstream_rerun": action_config.get_on_upstream_rerun(),
982
987
  "trigger_timeout": action_config.get_trigger_timeout(),
@@ -1046,6 +1051,9 @@ def format_tron_action_dict(action_config: TronActionConfig):
1046
1051
  limit=63,
1047
1052
  suffix=4,
1048
1053
  ),
1054
+ "tron.yelp.com/idempotent-action": str(
1055
+ action_config.get_idempotent()
1056
+ ).lower(),
1049
1057
  # XXX: should this be different for Spark drivers launched by Tron?
1050
1058
  "app.kubernetes.io/managed-by": "tron",
1051
1059
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: paasta-tools
3
- Version: 1.24.1
3
+ Version: 1.26.0
4
4
  Summary: Tools for Yelps SOA infrastructure
5
5
  Author: Compute Infrastructure @ Yelp
6
6
  Author-email: compute-infra@yelp.com
@@ -59,7 +59,7 @@ Requires-Dist: requests-cache>=0.4.10
59
59
  Requires-Dist: retry
60
60
  Requires-Dist: ruamel.yaml
61
61
  Requires-Dist: sensu-plugin
62
- Requires-Dist: service-configuration-lib>=3.3.3
62
+ Requires-Dist: service-configuration-lib>=3.3.5
63
63
  Requires-Dist: signalfx
64
64
  Requires-Dist: slackclient>=1.2.1
65
65
  Requires-Dist: sticht>=1.1.0
@@ -22,6 +22,7 @@ paasta_tools/check_kubernetes_services_replication.py
22
22
  paasta_tools/check_oom_events.py
23
23
  paasta_tools/check_services_replication_tools.py
24
24
  paasta_tools/check_spark_jobs.py
25
+ paasta_tools/cleanup_expired_autoscaling_overrides.py
25
26
  paasta_tools/cleanup_kubernetes_cr.py
26
27
  paasta_tools/cleanup_kubernetes_crd.py
27
28
  paasta_tools/cleanup_kubernetes_jobs.py
@@ -4,6 +4,7 @@ paasta-api = paasta_tools.api.api:main
4
4
  paasta-deployd = paasta_tools.deployd.master:main
5
5
  paasta-fsm = paasta_tools.cli.fsm_cmd:main
6
6
  paasta_broadcast_log = paasta_tools.broadcast_log_to_services:main
7
+ paasta_cleanup_expired_autoscaling_overrides = paasta_tools.cleanup_expired_autoscaling_overrides:main
7
8
  paasta_cleanup_tron_namespaces = paasta_tools.cleanup_tron_namespaces:main
8
9
  paasta_docker_wrapper = paasta_tools.docker_wrapper:main
9
10
  paasta_dump_locally_running_services = paasta_tools.dump_locally_running_services:main
@@ -50,7 +50,7 @@ requests-cache>=0.4.10
50
50
  retry
51
51
  ruamel.yaml
52
52
  sensu-plugin
53
- service-configuration-lib>=3.3.3
53
+ service-configuration-lib>=3.3.5
54
54
  signalfx
55
55
  slackclient>=1.2.1
56
56
  sticht>=1.1.0
@@ -57,7 +57,7 @@ requests-cache >= 0.4.10
57
57
  retry
58
58
  ruamel.yaml
59
59
  sensu-plugin
60
- service-configuration-lib >= 3.3.3
60
+ service-configuration-lib >= 3.3.5
61
61
  signalfx
62
62
  slackclient >= 1.2.1
63
63
  sticht >= 1.1.0
@@ -82,6 +82,7 @@ setup(
82
82
  "paasta-fsm=paasta_tools.cli.fsm_cmd:main",
83
83
  "paasta_prune_completed_pods=paasta_tools.prune_completed_pods:main",
84
84
  "paasta_cleanup_tron_namespaces=paasta_tools.cleanup_tron_namespaces:main",
85
+ "paasta_cleanup_expired_autoscaling_overrides=paasta_tools.cleanup_expired_autoscaling_overrides:main",
85
86
  "paasta_list_kubernetes_service_instances=paasta_tools.list_kubernetes_service_instances:main",
86
87
  "paasta_list_tron_namespaces=paasta_tools.list_tron_namespaces:main",
87
88
  "paasta_setup_tron_namespace=paasta_tools.setup_tron_namespace:main",
@@ -1043,6 +1043,7 @@ class TestTronTools:
1043
1043
  "mem": 1200,
1044
1044
  "disk": 42,
1045
1045
  "env": mock.ANY,
1046
+ "idempotent": False,
1046
1047
  "topology_spread_constraints": [
1047
1048
  {
1048
1049
  "label_selector": {
@@ -1083,6 +1084,7 @@ class TestTronTools:
1083
1084
  "paasta.yelp.com/service": "my_service",
1084
1085
  "yelp.com/owner": "compute_infra_platform_experience",
1085
1086
  "app.kubernetes.io/managed-by": "tron",
1087
+ "tron.yelp.com/idempotent-action": "false",
1086
1088
  },
1087
1089
  "annotations": {
1088
1090
  "paasta.yelp.com/routable_ip": "false",
@@ -1150,6 +1152,7 @@ class TestTronTools:
1150
1152
  "deploy_group": "prod",
1151
1153
  "executor": "spark",
1152
1154
  "disk": 42,
1155
+ "idempotent": True,
1153
1156
  "pool": "special_pool",
1154
1157
  "env": {"SHELL": "/bin/bash"},
1155
1158
  "secret_volumes": [
@@ -1449,7 +1452,9 @@ class TestTronTools:
1449
1452
  "paasta.yelp.com/prometheus_shard": "ml-compute",
1450
1453
  "spark.yelp.com/user": "TRON",
1451
1454
  "spark.yelp.com/driver_ui_port": "39091",
1455
+ "tron.yelp.com/idempotent-action": "true",
1452
1456
  },
1457
+ "idempotent": True,
1453
1458
  "annotations": {
1454
1459
  "paasta.yelp.com/routable_ip": "true",
1455
1460
  "paasta.yelp.com/service": "my_service",
@@ -1493,6 +1498,7 @@ class TestTronTools:
1493
1498
  "deploy_group": "prod",
1494
1499
  "pool": "default",
1495
1500
  "executor": "paasta",
1501
+ "idempotent": True,
1496
1502
  }
1497
1503
  branch_dict = {
1498
1504
  "docker_image": "my_service:paasta-123abcde",
@@ -1534,6 +1540,7 @@ class TestTronTools:
1534
1540
  "disk": 1024,
1535
1541
  "cap_add": [],
1536
1542
  "cap_drop": CAPS_DROP,
1543
+ "idempotent": True,
1537
1544
  "labels": {
1538
1545
  "paasta.yelp.com/cluster": "test-cluster",
1539
1546
  "paasta.yelp.com/instance": "job_name.instance_name",
@@ -1541,6 +1548,7 @@ class TestTronTools:
1541
1548
  "paasta.yelp.com/service": "my_service",
1542
1549
  "yelp.com/owner": "compute_infra_platform_experience",
1543
1550
  "app.kubernetes.io/managed-by": "tron",
1551
+ "tron.yelp.com/idempotent-action": "true",
1544
1552
  },
1545
1553
  "annotations": {
1546
1554
  "paasta.yelp.com/routable_ip": "false",
@@ -1678,6 +1686,7 @@ class TestTronTools:
1678
1686
  "cpus": 2,
1679
1687
  "mem": 1200,
1680
1688
  "disk": 42,
1689
+ "idempotent": False,
1681
1690
  "cap_add": [],
1682
1691
  "cap_drop": CAPS_DROP,
1683
1692
  "labels": {
@@ -1687,6 +1696,7 @@ class TestTronTools:
1687
1696
  "paasta.yelp.com/service": "my_service",
1688
1697
  "yelp.com/owner": "compute_infra_platform_experience",
1689
1698
  "app.kubernetes.io/managed-by": "tron",
1699
+ "tron.yelp.com/idempotent-action": "false",
1690
1700
  },
1691
1701
  "annotations": {
1692
1702
  "paasta.yelp.com/routable_ip": "false",
@@ -1811,6 +1821,7 @@ class TestTronTools:
1811
1821
  "cpus": 2,
1812
1822
  "mem": 1200,
1813
1823
  "disk": 42,
1824
+ "idempotent": False,
1814
1825
  "env": mock.ANY,
1815
1826
  "topology_spread_constraints": [
1816
1827
  {
@@ -1849,6 +1860,7 @@ class TestTronTools:
1849
1860
  "paasta.yelp.com/service": "my_service",
1850
1861
  "yelp.com/owner": "compute_infra_platform_experience",
1851
1862
  "app.kubernetes.io/managed-by": "tron",
1863
+ "tron.yelp.com/idempotent-action": "false",
1852
1864
  },
1853
1865
  "annotations": {
1854
1866
  "paasta.yelp.com/routable_ip": "false",
@@ -2004,7 +2016,7 @@ fake_job:
2004
2016
  # that are not static, this will cause continuous reconfiguration, which
2005
2017
  # will add significant load to the Tron API, which happened in DAR-1461.
2006
2018
  # but if this is intended, just change the hash.
2007
- assert hasher.hexdigest() == "b4c7ee4d47787f081b58b44df10a07f1"
2019
+ assert hasher.hexdigest() == "5cf9985b6227ce18dc87376b687046f7"
2008
2020
 
2009
2021
  def test_override_default_pool_override(self, tmpdir):
2010
2022
  soa_dir = tmpdir.mkdir("test_create_complete_config_soa")
File without changes
File without changes
File without changes