paasta-tools 1.4.5__tar.gz → 1.4.6__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 (296) hide show
  1. {paasta-tools-1.4.5/paasta_tools.egg-info → paasta-tools-1.4.6}/PKG-INFO +1 -1
  2. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/__init__.py +1 -1
  3. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/api/api_docs/swagger.json +20 -0
  4. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/status.py +249 -0
  5. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/instance_status.py +5 -0
  6. paasta-tools-1.4.6/paasta_tools/paastaapi/model/instance_status_vitesscluster.py +173 -0
  7. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/models/__init__.py +1 -0
  8. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/vitesscluster_tools.py +13 -4
  9. {paasta-tools-1.4.5 → paasta-tools-1.4.6/paasta_tools.egg-info}/PKG-INFO +1 -1
  10. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools.egg-info/SOURCES.txt +1 -0
  11. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/MANIFEST.in +0 -0
  12. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/README.md +0 -0
  13. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/k8s_itests/__init__.py +0 -0
  14. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/k8s_itests/test_autoscaling.py +0 -0
  15. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/k8s_itests/utils.py +0 -0
  16. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/adhoc_tools.py +0 -0
  17. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/api/__init__.py +0 -0
  18. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/api/api.py +0 -0
  19. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/api/client.py +0 -0
  20. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/api/settings.py +0 -0
  21. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/api/tweens/__init__.py +0 -0
  22. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/api/tweens/profiling.py +0 -0
  23. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/api/tweens/request_logger.py +0 -0
  24. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/api/views/__init__.py +0 -0
  25. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/api/views/autoscaler.py +0 -0
  26. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/api/views/exception.py +0 -0
  27. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/api/views/flink.py +0 -0
  28. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/api/views/instance.py +0 -0
  29. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/api/views/pause_autoscaler.py +0 -0
  30. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/api/views/resources.py +0 -0
  31. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/api/views/service.py +0 -0
  32. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/api/views/version.py +0 -0
  33. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/apply_external_resources.py +0 -0
  34. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/async_utils.py +0 -0
  35. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/autoscaling/__init__.py +0 -0
  36. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
  37. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/autoscaling/forecasting.py +0 -0
  38. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
  39. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
  40. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/autoscaling/utils.py +0 -0
  41. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/bounce_lib.py +0 -0
  42. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/broadcast_log_to_services.py +0 -0
  43. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cassandracluster_tools.py +0 -0
  44. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/check_autoscaler_max_instances.py +0 -0
  45. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
  46. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/check_flink_services_health.py +0 -0
  47. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/check_kubernetes_api.py +0 -0
  48. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/check_kubernetes_services_replication.py +0 -0
  49. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/check_oom_events.py +0 -0
  50. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/check_services_replication_tools.py +0 -0
  51. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/check_spark_jobs.py +0 -0
  52. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
  53. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
  54. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
  55. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cleanup_tron_namespaces.py +0 -0
  56. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/__init__.py +0 -0
  57. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cli.py +0 -0
  58. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/__init__.py +0 -0
  59. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/autoscale.py +0 -0
  60. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/check.py +0 -0
  61. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/cook_image.py +0 -0
  62. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
  63. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/get_image_version.py +0 -0
  64. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
  65. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/info.py +0 -0
  66. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/itest.py +0 -0
  67. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/list.py +0 -0
  68. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/list_clusters.py +0 -0
  69. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
  70. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/local_run.py +0 -0
  71. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/logs.py +0 -0
  72. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
  73. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/mesh_status.py +0 -0
  74. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
  75. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
  76. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/remote_run.py +0 -0
  77. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/rollback.py +0 -0
  78. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/secret.py +0 -0
  79. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/security_check.py +0 -0
  80. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/spark_run.py +0 -0
  81. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
  82. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/validate.py +0 -0
  83. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
  84. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/fsm/__init__.py +0 -0
  85. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/fsm/autosuggest.py +0 -0
  86. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/fsm/template/README.md +0 -0
  87. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
  88. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/kubernetes-PROD.yaml +0 -0
  89. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
  90. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
  91. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
  92. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/fsm_cmd.py +0 -0
  93. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
  94. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
  95. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
  96. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
  97. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
  98. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
  99. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/schemas/eks_schema.json +0 -0
  100. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/schemas/kubernetes_schema.json +0 -0
  101. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
  102. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/schemas/service_schema.json +0 -0
  103. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
  104. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/schemas/tron_schema.json +0 -0
  105. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/cli/utils.py +0 -0
  106. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/clusterman.py +0 -0
  107. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/config_utils.py +0 -0
  108. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/__init__.py +0 -0
  109. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
  110. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
  111. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/check_orphans.py +0 -0
  112. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
  113. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/create_paasta_playground.py +0 -0
  114. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
  115. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
  116. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/habitat_fixer.py +0 -0
  117. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/ide_helper.py +0 -0
  118. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
  119. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
  120. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/kill_bad_containers.py +0 -0
  121. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
  122. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/mock_patch_checker.py +0 -0
  123. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/paasta_update_soa_memcpu.py +0 -0
  124. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/render_template.py +0 -0
  125. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
  126. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/service_shard_remove.py +0 -0
  127. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/service_shard_update.py +0 -0
  128. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/shared_ip_check.py +0 -0
  129. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
  130. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/delete_kubernetes_deployments.py +0 -0
  131. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/deployment_utils.py +0 -0
  132. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/docker_wrapper.py +0 -0
  133. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/docker_wrapper_imports.py +0 -0
  134. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/drain_lib.py +0 -0
  135. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/dump_locally_running_services.py +0 -0
  136. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/eks_tools.py +0 -0
  137. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/envoy_tools.py +0 -0
  138. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/firewall.py +0 -0
  139. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/firewall_logging.py +0 -0
  140. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/firewall_update.py +0 -0
  141. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/flink_tools.py +0 -0
  142. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/flinkeks_tools.py +0 -0
  143. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/frameworks/__init__.py +0 -0
  144. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/frameworks/adhoc_scheduler.py +0 -0
  145. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/frameworks/constraints.py +0 -0
  146. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/frameworks/native_scheduler.py +0 -0
  147. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/frameworks/native_service_config.py +0 -0
  148. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/frameworks/task_store.py +0 -0
  149. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/generate_all_deployments +0 -0
  150. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/generate_authenticating_services.py +0 -0
  151. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/generate_deployments_for_service.py +0 -0
  152. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/generate_services_file.py +0 -0
  153. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/generate_services_yaml.py +0 -0
  154. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/hacheck.py +0 -0
  155. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/instance/__init__.py +0 -0
  156. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
  157. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/instance/kubernetes.py +0 -0
  158. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/iptables.py +0 -0
  159. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/kafkacluster_tools.py +0 -0
  160. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/kubernetes/__init__.py +0 -0
  161. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/kubernetes/application/__init__.py +0 -0
  162. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/kubernetes/application/controller_wrappers.py +0 -0
  163. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/kubernetes/application/tools.py +0 -0
  164. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/kubernetes/bin/__init__.py +0 -0
  165. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
  166. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
  167. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
  168. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/kubernetes_tools.py +0 -0
  169. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/list_kubernetes_service_instances.py +0 -0
  170. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/list_tron_namespaces.py +0 -0
  171. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/log_task_lifecycle_events.py +0 -0
  172. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/long_running_service_tools.py +0 -0
  173. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/mac_address.py +0 -0
  174. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/marathon_dashboard.py +0 -0
  175. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/mesos/__init__.py +0 -0
  176. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/mesos/cfg.py +0 -0
  177. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/mesos/cluster.py +0 -0
  178. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/mesos/exceptions.py +0 -0
  179. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/mesos/framework.py +0 -0
  180. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/mesos/log.py +0 -0
  181. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/mesos/master.py +0 -0
  182. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/mesos/mesos_file.py +0 -0
  183. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/mesos/parallel.py +0 -0
  184. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/mesos/slave.py +0 -0
  185. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/mesos/task.py +0 -0
  186. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/mesos/util.py +0 -0
  187. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/mesos/zookeeper.py +0 -0
  188. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/mesos_maintenance.py +0 -0
  189. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/mesos_tools.py +0 -0
  190. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/metrics/__init__.py +0 -0
  191. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/metrics/metastatus_lib.py +0 -0
  192. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/metrics/metrics_lib.py +0 -0
  193. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/monitoring/__init__.py +0 -0
  194. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
  195. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/monitoring/kill_orphaned_docker_containers.py +0 -0
  196. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/monitoring_tools.py +0 -0
  197. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/monkrelaycluster_tools.py +0 -0
  198. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/nrtsearchservice_tools.py +0 -0
  199. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
  200. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/oom_logger.py +0 -0
  201. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paasta_deploy_tron_jobs +0 -0
  202. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paasta_execute_docker_command.py +0 -0
  203. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paasta_native_serviceinit.py +0 -0
  204. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paasta_remote_run.py +0 -0
  205. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paasta_service_config_loader.py +0 -0
  206. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/__init__.py +0 -0
  207. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/api/__init__.py +0 -0
  208. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
  209. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/api/default_api.py +0 -0
  210. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/api/resources_api.py +0 -0
  211. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/api/service_api.py +0 -0
  212. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/api_client.py +0 -0
  213. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/apis/__init__.py +0 -0
  214. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/configuration.py +0 -0
  215. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/exceptions.py +0 -0
  216. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/__init__.py +0 -0
  217. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
  218. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
  219. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
  220. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
  221. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
  222. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
  223. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
  224. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
  225. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/flink_config.py +0 -0
  226. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/flink_job.py +0 -0
  227. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
  228. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
  229. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
  230. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
  231. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/inline_object.py +0 -0
  232. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
  233. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
  234. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
  235. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
  236. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
  237. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
  238. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
  239. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
  240. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
  241. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
  242. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
  243. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
  244. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
  245. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
  246. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
  247. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
  248. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
  249. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
  250. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
  251. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
  252. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
  253. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
  254. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/resource.py +0 -0
  255. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/resource_item.py +0 -0
  256. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/resource_value.py +0 -0
  257. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
  258. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
  259. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
  260. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
  261. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/model_utils.py +0 -0
  262. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/paastaapi/rest.py +0 -0
  263. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/prune_completed_pods.py +0 -0
  264. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/puppet_service_tools.py +0 -0
  265. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/py.typed +0 -0
  266. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/remote_git.py +0 -0
  267. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
  268. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/run-paasta-api-playground.py +0 -0
  269. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/secret_providers/__init__.py +0 -0
  270. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/secret_providers/vault.py +0 -0
  271. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/secret_tools.py +0 -0
  272. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/setup_istio_mesh.py +0 -0
  273. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/setup_kubernetes_cr.py +0 -0
  274. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/setup_kubernetes_crd.py +0 -0
  275. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
  276. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/setup_kubernetes_job.py +0 -0
  277. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
  278. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/setup_tron_namespace.py +0 -0
  279. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/slack.py +0 -0
  280. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/smartstack_tools.py +0 -0
  281. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/spark_tools.py +0 -0
  282. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
  283. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/tron/__init__.py +0 -0
  284. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/tron/client.py +0 -0
  285. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/tron/tron_command_context.py +0 -0
  286. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/tron/tron_timeutils.py +0 -0
  287. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/tron_tools.py +0 -0
  288. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools/utils.py +0 -0
  289. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools.egg-info/dependency_links.txt +0 -0
  290. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools.egg-info/entry_points.txt +0 -0
  291. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools.egg-info/requires.txt +0 -0
  292. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/paasta_tools.egg-info/top_level.txt +0 -0
  293. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/pyproject.toml +0 -0
  294. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/requirements-minimal.txt +0 -0
  295. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/setup.cfg +0 -0
  296. {paasta-tools-1.4.5 → paasta-tools-1.4.6}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: paasta-tools
3
- Version: 1.4.5
3
+ Version: 1.4.6
4
4
  Summary: Tools for Yelps SOA infrastructure
5
5
  Home-page: UNKNOWN
6
6
  Author: Compute Infrastructure @ Yelp
@@ -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.4.5"
20
+ __version__ = "1.4.6"
@@ -953,6 +953,18 @@
953
953
  }
954
954
  },
955
955
  "description": "Nullable CassandraCluster instance status"
956
+ },
957
+ "vitesscluster": {
958
+ "type": "object",
959
+ "properties": {
960
+ "status": {
961
+ "$ref": "#/definitions/InstanceStatusVitessCluster"
962
+ },
963
+ "metadata": {
964
+ "$ref": "#/definitions/InstanceMetadataVitessCluster"
965
+ }
966
+ },
967
+ "description": "Nullable VitessCluster instance status and metadata"
956
968
  }
957
969
  }
958
970
  },
@@ -1737,6 +1749,14 @@
1737
1749
  "type": "object",
1738
1750
  "description": "Cassandra instance status"
1739
1751
  },
1752
+ "InstanceStatusVitessCluster": {
1753
+ "type": "object",
1754
+ "description": "VitessCluster instance status"
1755
+ },
1756
+ "InstanceMetadataVitessCluster": {
1757
+ "type": "object",
1758
+ "description": "VitessCluster instance metadata"
1759
+ },
1740
1760
  "InstanceTasks": {
1741
1761
  "type": "array",
1742
1762
  "description": "List of tasks associated with instance",
@@ -37,6 +37,7 @@ from typing import Optional
37
37
  from typing import Sequence
38
38
  from typing import Tuple
39
39
  from typing import Type
40
+ from typing import TypedDict
40
41
  from typing import Union
41
42
 
42
43
  import a_sync
@@ -94,12 +95,14 @@ from paasta_tools.utils import load_system_paasta_config
94
95
  from paasta_tools.utils import PaastaColors
95
96
  from paasta_tools.utils import remove_ansi_escape_sequences
96
97
  from paasta_tools.utils import SystemPaastaConfig
98
+ from paasta_tools.vitesscluster_tools import VitessDeploymentConfig
97
99
 
98
100
  FLINK_STATUS_MAX_THREAD_POOL_WORKERS = 50
99
101
  ALLOWED_INSTANCE_CONFIG: Sequence[Type[InstanceConfig]] = [
100
102
  FlinkDeploymentConfig,
101
103
  FlinkEksDeploymentConfig,
102
104
  CassandraClusterDeploymentConfig,
105
+ VitessDeploymentConfig,
103
106
  KafkaClusterDeploymentConfig,
104
107
  KubernetesDeploymentConfig,
105
108
  EksDeploymentConfig,
@@ -112,6 +115,7 @@ DEPLOYMENT_INSTANCE_CONFIG: Sequence[Type[InstanceConfig]] = [
112
115
  FlinkDeploymentConfig,
113
116
  FlinkEksDeploymentConfig,
114
117
  CassandraClusterDeploymentConfig,
118
+ VitessDeploymentConfig,
115
119
  KafkaClusterDeploymentConfig,
116
120
  KubernetesDeploymentConfig,
117
121
  EksDeploymentConfig,
@@ -1878,6 +1882,250 @@ def print_kafka_status(
1878
1882
  return 0
1879
1883
 
1880
1884
 
1885
+ class EtcdLockServerStatus(TypedDict, total=False):
1886
+ observedGeneration: int
1887
+ available: str
1888
+ clientServiceName: str
1889
+
1890
+
1891
+ class LockServerStatus(TypedDict, total=False):
1892
+ etcd: EtcdLockServerStatus
1893
+
1894
+
1895
+ class VitessClusterCellStatus(TypedDict, total=False):
1896
+ pendingChanges: str
1897
+ gatewayAvailable: str
1898
+
1899
+
1900
+ class VitessClusterKeyspaceStatus(TypedDict, total=False):
1901
+ pendingChanges: str
1902
+ cells: List[str]
1903
+ desiredShards: int
1904
+ shards: int
1905
+ readyShards: int
1906
+ updatedShards: int
1907
+ desiredTablets: int
1908
+ tablets: int
1909
+ readyTablets: int
1910
+ updatedTablets: int
1911
+
1912
+
1913
+ class VitessDashboardStatus(TypedDict, total=False):
1914
+ available: str
1915
+ serviceName: str
1916
+
1917
+
1918
+ class VTAdminStatus(TypedDict, total=False):
1919
+ available: str
1920
+ serviceName: str
1921
+
1922
+
1923
+ class OrphanStatus(TypedDict, total=False):
1924
+ reason: str
1925
+ message: str
1926
+
1927
+
1928
+ class VitessClusterStatus(TypedDict, total=False):
1929
+ observedGeneration: int
1930
+ globalLockserver: LockServerStatus
1931
+ gatewayServiceName: str
1932
+ vitessDashboard: VitessDashboardStatus
1933
+ cells: Dict[str, VitessClusterCellStatus]
1934
+ keyspaces: Dict[str, VitessClusterKeyspaceStatus]
1935
+ vtadmin: VTAdminStatus
1936
+ orphanedCells: Dict[str, OrphanStatus]
1937
+ orphanedKeyspaces: Dict[str, OrphanStatus]
1938
+
1939
+
1940
+ def print_vitess_status(
1941
+ cluster: str,
1942
+ service: str,
1943
+ instance: str,
1944
+ output: List[str],
1945
+ vitess_status: Mapping[str, Any],
1946
+ verbose: int = 0,
1947
+ ) -> int:
1948
+ tab = " "
1949
+ indent = 1
1950
+
1951
+ status: VitessClusterStatus = vitess_status.get("status")
1952
+ if status is None:
1953
+ output.append(
1954
+ PaastaColors.red("indent * tab + Vitess cluster is not available yet")
1955
+ )
1956
+ return 1
1957
+
1958
+ output.append(indent * tab + "Vitess Cluster:")
1959
+ indent += 1
1960
+
1961
+ output.append(
1962
+ indent * tab
1963
+ + "Observed Generation: "
1964
+ + str(status.get("observedGeneration", 0))
1965
+ )
1966
+ output.append(
1967
+ indent * tab + "Gateway Service Name: " + status.get("gatewayServiceName", "")
1968
+ )
1969
+
1970
+ output.append(indent * tab + "Cells:")
1971
+ indent += 1
1972
+ cells: Dict[str, VitessClusterCellStatus] = status.get("cells")
1973
+ if not cells:
1974
+ output.append(
1975
+ indent * tab + "Cells: " + PaastaColors.red("No cell status available")
1976
+ )
1977
+ return 0
1978
+ for cell, cell_status in cells.items():
1979
+ gateway_available: str = cell_status.get("gatewayAvailable")
1980
+ if gateway_available == "True":
1981
+ output.append(
1982
+ indent * tab
1983
+ + f"Cell: {cell} - VTGate: {PaastaColors.green('available')}"
1984
+ )
1985
+ else:
1986
+ output.append(
1987
+ indent * tab
1988
+ + f"Cell: {cell} - VTGate: {PaastaColors.red('unavailable')}"
1989
+ )
1990
+ cell_pending_changes: str = cell_status.get("pendingChanges", None)
1991
+ if cell_pending_changes:
1992
+ output.append(indent * tab + f" Pending Changes: {cell_pending_changes}")
1993
+ indent -= 1
1994
+
1995
+ output.append(indent * tab + "Vitess Dashboard:")
1996
+ indent += 1
1997
+ vitess_dashboard: VitessDashboardStatus = status.get("vitessDashboard")
1998
+ if not vitess_dashboard:
1999
+ output.append(
2000
+ indent * tab
2001
+ + "Vitess Dashboard: "
2002
+ + PaastaColors.red("No dashboard status available")
2003
+ )
2004
+ return 0
2005
+ vitess_dashboard_available: str = vitess_dashboard.get("available", "")
2006
+ vitess_dashboard_service_name: str = vitess_dashboard.get("serviceName", "")
2007
+ if vitess_dashboard_available == "True":
2008
+ output.append(
2009
+ indent * tab
2010
+ + f"Vitess Dashboard: {vitess_dashboard_service_name} - {PaastaColors.green('available')}"
2011
+ )
2012
+ else:
2013
+ output.append(
2014
+ indent * tab
2015
+ + f"Vitess Dashboard: {vitess_dashboard_service_name} - {PaastaColors.red('unavailable')}"
2016
+ )
2017
+ indent -= 1
2018
+
2019
+ output.append(indent * tab + "VTAdmin:")
2020
+ indent += 1
2021
+ vtadmin: VTAdminStatus = status.get("vtadmin")
2022
+ if not vtadmin:
2023
+ output.append(
2024
+ indent * tab + "VTAdmin: " + PaastaColors.red("No VTAdmin status available")
2025
+ )
2026
+ return 0
2027
+ vtadmin_available: str = vtadmin.get("available", "")
2028
+ vtadmin_service_name: str = vtadmin.get("serviceName", "")
2029
+ if vtadmin_available == "True":
2030
+ output.append(
2031
+ indent * tab
2032
+ + f"VTAdmin: {vtadmin_service_name} - {PaastaColors.green('available')}"
2033
+ )
2034
+ else:
2035
+ output.append(
2036
+ indent * tab
2037
+ + f"VTAdmin: {vtadmin_service_name} - {PaastaColors.red('unavailable')}"
2038
+ )
2039
+ indent -= 1
2040
+
2041
+ output.append(indent * tab + "Keyspaces:")
2042
+ indent += 1
2043
+ keyspaces: Dict[str, VitessClusterKeyspaceStatus] = status.get("keyspaces")
2044
+ if not keyspaces:
2045
+ output.append(
2046
+ indent * tab
2047
+ + "Keyspaces: "
2048
+ + PaastaColors.red("No keyspace status available")
2049
+ )
2050
+ return 0
2051
+ for keyspace, keyspace_status in keyspaces.items():
2052
+ output.append(indent * tab + f"Keyspace: {keyspace}")
2053
+ indent += 1
2054
+ keyspace_pending_changes: str = keyspace_status.get("pendingChanges", None)
2055
+ if keyspace_pending_changes:
2056
+ output.append(
2057
+ indent * tab
2058
+ + f"Keyspace: {keyspace} - Pending Changes: {keyspace_pending_changes}"
2059
+ )
2060
+ keyspace_cells: List[str] = keyspace_status.get("cells", [])
2061
+ output.append(indent * tab + f" Cells: {', '.join(keyspace_cells)}")
2062
+ desired_shards: int = keyspace_status.get("desiredShards", 0)
2063
+ shards: int = keyspace_status.get("shards", 0)
2064
+ ready_shards: int = keyspace_status.get("readyShards", 0)
2065
+ updated_shards: int = keyspace_status.get("updatedShards", 0)
2066
+ output.append(
2067
+ indent * tab
2068
+ + f" Shards: {shards} observed, {ready_shards}/{desired_shards} ready, {updated_shards}/{desired_shards} updated"
2069
+ )
2070
+ desired_tablets: int = keyspace_status.get("desiredTablets", 0)
2071
+ tablets: int = keyspace_status.get("tablets", 0)
2072
+ ready_tablets: int = keyspace_status.get("readyTablets", 0)
2073
+ updated_tablets: int = keyspace_status.get("updatedTablets", 0)
2074
+ output.append(
2075
+ indent * tab
2076
+ + f" Tablets: {tablets} observed, {ready_tablets}/{desired_tablets} ready, {updated_tablets}/{desired_tablets} updated"
2077
+ )
2078
+ indent -= 1
2079
+ indent -= 1
2080
+
2081
+ # This is not needed when not using etcd. We use zk instead
2082
+ global_lockserver: LockServerStatus = status.get("globalLockserver", {})
2083
+ if global_lockserver:
2084
+ output.append(indent * tab + "Global Lockserver:")
2085
+ indent += 1
2086
+ etcd: EtcdLockServerStatus = global_lockserver.get("etcd")
2087
+ if etcd:
2088
+ output.append(indent * tab + "Global Lockserver:")
2089
+ indent += 1
2090
+ observed_generation: int = etcd.get("observedGeneration", 0)
2091
+ available: str = etcd.get("available", "")
2092
+ client_service_name: str = etcd.get("clientServiceName", "")
2093
+ output.append(
2094
+ indent * tab
2095
+ + f"Observed Generation: {observed_generation}, Available: {available}, Client Service Name: {client_service_name}"
2096
+ )
2097
+ indent -= 1
2098
+
2099
+ # Orphaned Cells are not mandatorily seen each time
2100
+ orphaned_cells: Dict[str, OrphanStatus] = status.get("orphanedCells", {})
2101
+ if orphaned_cells:
2102
+ output.append(indent * tab + "Orphaned Cells:")
2103
+ indent += 1
2104
+ for cell, orphan_status in orphaned_cells.items():
2105
+ orphaned_cell_reason: str = orphan_status.get("reason", "")
2106
+ orphaned_cell_message: str = orphan_status.get("message", "")
2107
+ output.append(
2108
+ indent * tab
2109
+ + f"Cell: {cell} - Reason: {orphaned_cell_reason}, Message: {orphaned_cell_message}"
2110
+ )
2111
+ indent -= 1
2112
+
2113
+ # Orphaned Keyspaces are not mandatorily seen each time
2114
+ orphaned_keyspaces: Dict[str, OrphanStatus] = status.get("orphanedKeyspaces", {})
2115
+ if orphaned_keyspaces:
2116
+ output.append(indent * tab + "Orphaned Keyspaces:")
2117
+ indent += 1
2118
+ for keyspace, orphan_status in orphaned_keyspaces.items():
2119
+ orphaned_keyspace_reason: str = orphan_status.get("reason", "")
2120
+ orphaned_keyspace_message: str = orphan_status.get("message", "")
2121
+ output.append(
2122
+ indent * tab
2123
+ + f"Keyspace: {keyspace} - Reason: {orphaned_keyspace_reason}, Message: {orphaned_keyspace_message}"
2124
+ )
2125
+ indent -= 1
2126
+ return 0
2127
+
2128
+
1881
2129
  def report_status_for_cluster(
1882
2130
  service: str,
1883
2131
  cluster: str,
@@ -2273,4 +2521,5 @@ INSTANCE_TYPE_WRITERS: Mapping[str, InstanceStatusWriter] = defaultdict(
2273
2521
  flinkeks=print_flinkeks_status,
2274
2522
  kafkacluster=print_kafka_status,
2275
2523
  cassandracluster=print_cassandra_status,
2524
+ vitesscluster=print_vitess_status,
2276
2525
  )
@@ -38,6 +38,7 @@ def lazy_import():
38
38
  from paasta_tools.paastaapi.model.instance_status_kubernetes import InstanceStatusKubernetes
39
39
  from paasta_tools.paastaapi.model.instance_status_kubernetes_v2 import InstanceStatusKubernetesV2
40
40
  from paasta_tools.paastaapi.model.instance_status_tron import InstanceStatusTron
41
+ from paasta_tools.paastaapi.model.instance_status_vitesscluster import InstanceStatusVitesscluster
41
42
  globals()['InstanceStatusAdhoc'] = InstanceStatusAdhoc
42
43
  globals()['InstanceStatusCassandracluster'] = InstanceStatusCassandracluster
43
44
  globals()['InstanceStatusFlink'] = InstanceStatusFlink
@@ -45,6 +46,7 @@ def lazy_import():
45
46
  globals()['InstanceStatusKubernetes'] = InstanceStatusKubernetes
46
47
  globals()['InstanceStatusKubernetesV2'] = InstanceStatusKubernetesV2
47
48
  globals()['InstanceStatusTron'] = InstanceStatusTron
49
+ globals()['InstanceStatusVitesscluster'] = InstanceStatusVitesscluster
48
50
 
49
51
 
50
52
  class InstanceStatus(ModelNormal):
@@ -100,6 +102,7 @@ class InstanceStatus(ModelNormal):
100
102
  'version': (str,), # noqa: E501
101
103
  'instance': (str,), # noqa: E501
102
104
  'cassandracluster': (InstanceStatusCassandracluster,), # noqa: E501
105
+ 'vitesscluster': (InstanceStatusVitesscluster,), # noqa: E501
103
106
  'kafkacluster': (InstanceStatusKafkacluster,), # noqa: E501
104
107
  'kubernetes': (InstanceStatusKubernetes,), # noqa: E501
105
108
  'kubernetes_v2': (InstanceStatusKubernetesV2,), # noqa: E501
@@ -120,6 +123,7 @@ class InstanceStatus(ModelNormal):
120
123
  'version': 'version', # noqa: E501
121
124
  'instance': 'instance', # noqa: E501
122
125
  'cassandracluster': 'cassandracluster', # noqa: E501
126
+ 'vitesscluster': 'vitesscluster', # noqa: E501
123
127
  'kafkacluster': 'kafkacluster', # noqa: E501
124
128
  'kubernetes': 'kubernetes', # noqa: E501
125
129
  'kubernetes_v2': 'kubernetes_v2', # noqa: E501
@@ -180,6 +184,7 @@ class InstanceStatus(ModelNormal):
180
184
  version (str): Deployment Version of a service. [optional] # noqa: E501
181
185
  instance (str): Instance name. [optional] # noqa: E501
182
186
  cassandracluster (InstanceStatusCassandracluster): [optional] # noqa: E501
187
+ vitesscluster (InstanceStatusVitesscluster): [optional] # noqa: E501
183
188
  kafkacluster (InstanceStatusKafkacluster): [optional] # noqa: E501
184
189
  kubernetes (InstanceStatusKubernetes): [optional] # noqa: E501
185
190
  kubernetes_v2 (InstanceStatusKubernetesV2): [optional] # noqa: E501
@@ -0,0 +1,173 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Paasta API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Generated by: https://openapi-generator.tech
10
+ """
11
+
12
+
13
+ import re # noqa: F401
14
+ import sys # noqa: F401
15
+
16
+ import nulltype # noqa: F401
17
+
18
+ from paasta_tools.paastaapi.model_utils import ( # noqa: F401
19
+ ApiTypeError,
20
+ ModelComposed,
21
+ ModelNormal,
22
+ ModelSimple,
23
+ cached_property,
24
+ change_keys_js_to_python,
25
+ convert_js_args_to_python_args,
26
+ date,
27
+ datetime,
28
+ file_type,
29
+ none_type,
30
+ validate_get_composed_info,
31
+ )
32
+
33
+
34
+ class InstanceStatusVitesscluster(ModelNormal):
35
+ """NOTE: This class is auto generated by OpenAPI Generator.
36
+ Ref: https://openapi-generator.tech
37
+
38
+ Do not edit the class manually.
39
+
40
+ Attributes:
41
+ allowed_values (dict): The key is the tuple path to the attribute
42
+ and the for var_name this is (var_name,). The value is a dict
43
+ with a capitalized key describing the allowed value and an allowed
44
+ value. These dicts store the allowed enum values.
45
+ attribute_map (dict): The key is attribute name
46
+ and the value is json key in definition.
47
+ discriminator_value_class_map (dict): A dict to go from the discriminator
48
+ variable value to the discriminator class name.
49
+ validations (dict): The key is the tuple path to the attribute
50
+ and the for var_name this is (var_name,). The value is a dict
51
+ that stores validations for max_length, min_length, max_items,
52
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
53
+ inclusive_minimum, and regex.
54
+ additional_properties_type (tuple): A tuple of classes accepted
55
+ as additional properties values.
56
+ """
57
+
58
+ allowed_values = {
59
+ }
60
+
61
+ validations = {
62
+ }
63
+
64
+ additional_properties_type = None
65
+
66
+ _nullable = False
67
+
68
+ @cached_property
69
+ def openapi_types():
70
+ """
71
+ This must be a method because a model may have properties that are
72
+ of type self, this must run after the class is loaded
73
+
74
+ Returns
75
+ openapi_types (dict): The key is attribute name
76
+ and the value is attribute type.
77
+ """
78
+ return {
79
+ 'metadata': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
80
+ 'status': ({str: (bool, date, datetime, dict, float, int, list, str, none_type)},), # noqa: E501
81
+ }
82
+
83
+ @cached_property
84
+ def discriminator():
85
+ return None
86
+
87
+
88
+ attribute_map = {
89
+ 'metadata': 'metadata', # noqa: E501
90
+ 'status': 'status', # noqa: E501
91
+ }
92
+
93
+ _composed_schemas = {}
94
+
95
+ required_properties = set([
96
+ '_data_store',
97
+ '_check_type',
98
+ '_spec_property_naming',
99
+ '_path_to_item',
100
+ '_configuration',
101
+ '_visited_composed_classes',
102
+ ])
103
+
104
+ @convert_js_args_to_python_args
105
+ def __init__(self, *args, **kwargs): # noqa: E501
106
+ """InstanceStatusVitesscluster - a model defined in OpenAPI
107
+
108
+ Keyword Args:
109
+ _check_type (bool): if True, values for parameters in openapi_types
110
+ will be type checked and a TypeError will be
111
+ raised if the wrong type is input.
112
+ Defaults to True
113
+ _path_to_item (tuple/list): This is a list of keys or values to
114
+ drill down to the model in received_data
115
+ when deserializing a response
116
+ _spec_property_naming (bool): True if the variable names in the input data
117
+ are serialized names, as specified in the OpenAPI document.
118
+ False if the variable names in the input data
119
+ are pythonic names, e.g. snake case (default)
120
+ _configuration (Configuration): the instance to use when
121
+ deserializing a file_type parameter.
122
+ If passed, type conversion is attempted
123
+ If omitted no type conversion is done.
124
+ _visited_composed_classes (tuple): This stores a tuple of
125
+ classes that we have traveled through so that
126
+ if we see that class again we will not use its
127
+ discriminator again.
128
+ When traveling through a discriminator, the
129
+ composed schema that is
130
+ is traveled through is added to this set.
131
+ For example if Animal has a discriminator
132
+ petType and we pass in "Dog", and the class Dog
133
+ allOf includes Animal, we move through Animal
134
+ once using the discriminator, and pick Dog.
135
+ Then in Dog, we will make an instance of the
136
+ Animal class but this time we won't travel
137
+ through its discriminator because we passed in
138
+ _visited_composed_classes = (Animal,)
139
+ metadata ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): VitessCluster instance metadata. [optional] # noqa: E501
140
+ status ({str: (bool, date, datetime, dict, float, int, list, str, none_type)}): VitessCluster instance status. [optional] # noqa: E501
141
+ """
142
+
143
+ _check_type = kwargs.pop('_check_type', True)
144
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
145
+ _path_to_item = kwargs.pop('_path_to_item', ())
146
+ _configuration = kwargs.pop('_configuration', None)
147
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
148
+
149
+ if args:
150
+ raise ApiTypeError(
151
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
152
+ args,
153
+ self.__class__.__name__,
154
+ ),
155
+ path_to_item=_path_to_item,
156
+ valid_classes=(self.__class__,),
157
+ )
158
+
159
+ self._data_store = {}
160
+ self._check_type = _check_type
161
+ self._spec_property_naming = _spec_property_naming
162
+ self._path_to_item = _path_to_item
163
+ self._configuration = _configuration
164
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
165
+
166
+ for var_name, var_value in kwargs.items():
167
+ if var_name not in self.attribute_map and \
168
+ self._configuration is not None and \
169
+ self._configuration.discard_unknown_keys and \
170
+ self.additional_properties_type is None:
171
+ # discard variable.
172
+ continue
173
+ setattr(self, var_name, var_value)
@@ -39,6 +39,7 @@ from paasta_tools.paastaapi.model.instance_status_kubernetes import InstanceStat
39
39
  from paasta_tools.paastaapi.model.instance_status_kubernetes_autoscaling_status import InstanceStatusKubernetesAutoscalingStatus
40
40
  from paasta_tools.paastaapi.model.instance_status_kubernetes_v2 import InstanceStatusKubernetesV2
41
41
  from paasta_tools.paastaapi.model.instance_status_tron import InstanceStatusTron
42
+ from paasta_tools.paastaapi.model.instance_status_vitesscluster import InstanceStatusVitesscluster
42
43
  from paasta_tools.paastaapi.model.instance_tasks import InstanceTasks
43
44
  from paasta_tools.paastaapi.model.integer_and_error import IntegerAndError
44
45
  from paasta_tools.paastaapi.model.kubernetes_container import KubernetesContainer
@@ -365,7 +365,7 @@ def get_tablet_pool_config(
365
365
  "throttle_metrics_query": f"select max_replication_delay from max_mysql_replication_delay.{throttle_query_table};",
366
366
  "throttle_metrics_threshold": throttle_metrics_threshold,
367
367
  "enforce-tableacl-config": "true",
368
- "table-acl-config": f"/etc/srv/configs/vitess_keyspace_acls/acls_for_{db_name}.json",
368
+ "table-acl-config": f"/nail/srv/configs/vitess_keyspace_acls/acls_for_{db_name}.json",
369
369
  "table-acl-config-reload-interval": "60s",
370
370
  "queryserver-config-strict-table-acl": "true",
371
371
  "db-credentials-server": "vault",
@@ -422,10 +422,15 @@ def get_tablet_pool_config(
422
422
  "readOnly": True,
423
423
  },
424
424
  {
425
- "mountPath": "/etc/srv",
425
+ "mountPath": "/nail/srv",
426
426
  "name": "srv-configs",
427
427
  "readOnly": True,
428
428
  },
429
+ {
430
+ "mountPath": "/nail/etc/srv-configs",
431
+ "name": "etc-srv-configs",
432
+ "readOnly": True,
433
+ },
429
434
  {
430
435
  "mountPath": "etc/credentials.yaml",
431
436
  "name": "vttablet-fake-credentials",
@@ -443,6 +448,10 @@ def get_tablet_pool_config(
443
448
  "name": "srv-configs",
444
449
  "hostPath": {"path": "/nail/srv"},
445
450
  },
451
+ {
452
+ "name": "etc-srv-configs",
453
+ "hostPath": {"path": "/nail/etc/srv-configs"},
454
+ },
446
455
  {"name": "vttablet-fake-credentials", "hostPath": {"path": "/dev/null"}},
447
456
  {"name": "keyspace-fake-init-script", "hostPath": {"path": "/dev/null"}},
448
457
  ],
@@ -840,8 +849,8 @@ def load_vitess_service_instance_configs(
840
849
  # TODO: read this from CRD in service configs
841
850
  def cr_id(service: str, instance: str) -> Mapping[str, str]:
842
851
  return dict(
843
- group="yelp.com",
844
- version="v1alpha1",
852
+ group="planetscale.com",
853
+ version="v2",
845
854
  namespace=KUBERNETES_NAMESPACE,
846
855
  plural="vitessclusters",
847
856
  name=sanitised_cr_name(service, instance),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: paasta-tools
3
- Version: 1.4.5
3
+ Version: 1.4.6
4
4
  Summary: Tools for Yelps SOA infrastructure
5
5
  Home-page: UNKNOWN
6
6
  Author: Compute Infrastructure @ Yelp
@@ -267,6 +267,7 @@ paasta_tools/paastaapi/model/instance_status_kubernetes.py
267
267
  paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py
268
268
  paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py
269
269
  paasta_tools/paastaapi/model/instance_status_tron.py
270
+ paasta_tools/paastaapi/model/instance_status_vitesscluster.py
270
271
  paasta_tools/paastaapi/model/instance_tasks.py
271
272
  paasta_tools/paastaapi/model/integer_and_error.py
272
273
  paasta_tools/paastaapi/model/kubernetes_container.py
File without changes
File without changes