paasta-tools 1.1.1__tar.gz → 1.2.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 (295) hide show
  1. {paasta-tools-1.1.1/paasta_tools.egg-info → paasta-tools-1.2.0}/PKG-INFO +1 -1
  2. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/__init__.py +1 -1
  3. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/logs.py +133 -17
  4. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/spark_run.py +3 -3
  5. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/utils.py +22 -0
  6. {paasta-tools-1.1.1 → paasta-tools-1.2.0/paasta_tools.egg-info}/PKG-INFO +1 -1
  7. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools.egg-info/requires.txt +1 -1
  8. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/requirements-minimal.txt +1 -1
  9. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/MANIFEST.in +0 -0
  10. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/README.md +0 -0
  11. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/k8s_itests/__init__.py +0 -0
  12. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/k8s_itests/test_autoscaling.py +0 -0
  13. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/k8s_itests/utils.py +0 -0
  14. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/adhoc_tools.py +0 -0
  15. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/api/__init__.py +0 -0
  16. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/api/api.py +0 -0
  17. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/api/api_docs/swagger.json +0 -0
  18. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/api/client.py +0 -0
  19. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/api/settings.py +0 -0
  20. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/api/tweens/__init__.py +0 -0
  21. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/api/tweens/profiling.py +0 -0
  22. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/api/tweens/request_logger.py +0 -0
  23. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/api/views/__init__.py +0 -0
  24. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/api/views/autoscaler.py +0 -0
  25. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/api/views/exception.py +0 -0
  26. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/api/views/flink.py +0 -0
  27. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/api/views/instance.py +0 -0
  28. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/api/views/pause_autoscaler.py +0 -0
  29. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/api/views/resources.py +0 -0
  30. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/api/views/service.py +0 -0
  31. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/api/views/version.py +0 -0
  32. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/apply_external_resources.py +0 -0
  33. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/async_utils.py +0 -0
  34. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/autoscaling/__init__.py +0 -0
  35. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
  36. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/autoscaling/forecasting.py +0 -0
  37. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
  38. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
  39. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/autoscaling/utils.py +0 -0
  40. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/bounce_lib.py +0 -0
  41. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/broadcast_log_to_services.py +0 -0
  42. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cassandracluster_tools.py +0 -0
  43. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/check_autoscaler_max_instances.py +0 -0
  44. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
  45. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/check_flink_services_health.py +0 -0
  46. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/check_kubernetes_api.py +0 -0
  47. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/check_kubernetes_services_replication.py +0 -0
  48. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/check_oom_events.py +0 -0
  49. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/check_services_replication_tools.py +0 -0
  50. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/check_spark_jobs.py +0 -0
  51. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
  52. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
  53. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
  54. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cleanup_tron_namespaces.py +0 -0
  55. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/__init__.py +0 -0
  56. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cli.py +0 -0
  57. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/__init__.py +0 -0
  58. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/autoscale.py +0 -0
  59. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/check.py +0 -0
  60. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/cook_image.py +0 -0
  61. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
  62. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/get_image_version.py +0 -0
  63. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
  64. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/info.py +0 -0
  65. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/itest.py +0 -0
  66. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/list.py +0 -0
  67. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/list_clusters.py +0 -0
  68. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
  69. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/local_run.py +0 -0
  70. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
  71. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/mesh_status.py +0 -0
  72. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
  73. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
  74. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/remote_run.py +0 -0
  75. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/rollback.py +0 -0
  76. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/secret.py +0 -0
  77. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/security_check.py +0 -0
  78. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
  79. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/status.py +0 -0
  80. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/validate.py +0 -0
  81. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
  82. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/fsm/__init__.py +0 -0
  83. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/fsm/autosuggest.py +0 -0
  84. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/fsm/template/README.md +0 -0
  85. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
  86. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/kubernetes-PROD.yaml +0 -0
  87. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
  88. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
  89. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
  90. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/fsm_cmd.py +0 -0
  91. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
  92. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
  93. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
  94. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
  95. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
  96. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
  97. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/eks_schema.json +0 -0
  98. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/kubernetes_schema.json +0 -0
  99. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
  100. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/service_schema.json +0 -0
  101. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
  102. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/tron_schema.json +0 -0
  103. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/cli/utils.py +0 -0
  104. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/clusterman.py +0 -0
  105. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/config_utils.py +0 -0
  106. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/__init__.py +0 -0
  107. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
  108. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
  109. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/check_orphans.py +0 -0
  110. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
  111. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/create_paasta_playground.py +0 -0
  112. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
  113. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
  114. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/habitat_fixer.py +0 -0
  115. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/ide_helper.py +0 -0
  116. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
  117. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
  118. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/kill_bad_containers.py +0 -0
  119. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
  120. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/mock_patch_checker.py +0 -0
  121. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/paasta_update_soa_memcpu.py +0 -0
  122. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/render_template.py +0 -0
  123. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
  124. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/service_shard_remove.py +0 -0
  125. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/service_shard_update.py +0 -0
  126. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/shared_ip_check.py +0 -0
  127. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
  128. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/delete_kubernetes_deployments.py +0 -0
  129. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/deployment_utils.py +0 -0
  130. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/docker_wrapper.py +0 -0
  131. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/docker_wrapper_imports.py +0 -0
  132. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/drain_lib.py +0 -0
  133. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/dump_locally_running_services.py +0 -0
  134. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/eks_tools.py +0 -0
  135. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/envoy_tools.py +0 -0
  136. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/firewall.py +0 -0
  137. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/firewall_logging.py +0 -0
  138. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/firewall_update.py +0 -0
  139. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/flink_tools.py +0 -0
  140. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/flinkeks_tools.py +0 -0
  141. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/frameworks/__init__.py +0 -0
  142. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/frameworks/adhoc_scheduler.py +0 -0
  143. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/frameworks/constraints.py +0 -0
  144. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/frameworks/native_scheduler.py +0 -0
  145. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/frameworks/native_service_config.py +0 -0
  146. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/frameworks/task_store.py +0 -0
  147. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/generate_all_deployments +0 -0
  148. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/generate_authenticating_services.py +0 -0
  149. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/generate_deployments_for_service.py +0 -0
  150. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/generate_services_file.py +0 -0
  151. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/generate_services_yaml.py +0 -0
  152. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/hacheck.py +0 -0
  153. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/instance/__init__.py +0 -0
  154. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
  155. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/instance/kubernetes.py +0 -0
  156. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/iptables.py +0 -0
  157. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/kafkacluster_tools.py +0 -0
  158. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/kubernetes/__init__.py +0 -0
  159. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/kubernetes/application/__init__.py +0 -0
  160. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/kubernetes/application/controller_wrappers.py +0 -0
  161. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/kubernetes/application/tools.py +0 -0
  162. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/kubernetes/bin/__init__.py +0 -0
  163. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
  164. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
  165. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
  166. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/kubernetes_tools.py +0 -0
  167. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/list_kubernetes_service_instances.py +0 -0
  168. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/list_tron_namespaces.py +0 -0
  169. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/log_task_lifecycle_events.py +0 -0
  170. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/long_running_service_tools.py +0 -0
  171. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/mac_address.py +0 -0
  172. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/marathon_dashboard.py +0 -0
  173. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/mesos/__init__.py +0 -0
  174. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/mesos/cfg.py +0 -0
  175. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/mesos/cluster.py +0 -0
  176. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/mesos/exceptions.py +0 -0
  177. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/mesos/framework.py +0 -0
  178. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/mesos/log.py +0 -0
  179. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/mesos/master.py +0 -0
  180. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/mesos/mesos_file.py +0 -0
  181. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/mesos/parallel.py +0 -0
  182. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/mesos/slave.py +0 -0
  183. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/mesos/task.py +0 -0
  184. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/mesos/util.py +0 -0
  185. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/mesos/zookeeper.py +0 -0
  186. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/mesos_maintenance.py +0 -0
  187. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/mesos_tools.py +0 -0
  188. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/metrics/__init__.py +0 -0
  189. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/metrics/metastatus_lib.py +0 -0
  190. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/metrics/metrics_lib.py +0 -0
  191. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/monitoring/__init__.py +0 -0
  192. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
  193. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/monitoring/kill_orphaned_docker_containers.py +0 -0
  194. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/monitoring_tools.py +0 -0
  195. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/monkrelaycluster_tools.py +0 -0
  196. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/nrtsearchservice_tools.py +0 -0
  197. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
  198. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/oom_logger.py +0 -0
  199. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paasta_deploy_tron_jobs +0 -0
  200. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paasta_execute_docker_command.py +0 -0
  201. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paasta_native_serviceinit.py +0 -0
  202. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paasta_remote_run.py +0 -0
  203. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paasta_service_config_loader.py +0 -0
  204. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/__init__.py +0 -0
  205. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/api/__init__.py +0 -0
  206. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
  207. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/api/default_api.py +0 -0
  208. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/api/resources_api.py +0 -0
  209. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/api/service_api.py +0 -0
  210. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/api_client.py +0 -0
  211. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/apis/__init__.py +0 -0
  212. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/configuration.py +0 -0
  213. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/exceptions.py +0 -0
  214. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/__init__.py +0 -0
  215. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
  216. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
  217. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
  218. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
  219. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
  220. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
  221. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
  222. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
  223. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/flink_config.py +0 -0
  224. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/flink_job.py +0 -0
  225. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
  226. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
  227. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
  228. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
  229. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/inline_object.py +0 -0
  230. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
  231. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
  232. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
  233. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
  234. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_status.py +0 -0
  235. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
  236. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
  237. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
  238. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
  239. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
  240. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
  241. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
  242. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
  243. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
  244. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
  245. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
  246. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
  247. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
  248. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
  249. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
  250. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
  251. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
  252. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
  253. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/resource.py +0 -0
  254. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/resource_item.py +0 -0
  255. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/resource_value.py +0 -0
  256. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
  257. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
  258. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
  259. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
  260. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model_utils.py +0 -0
  261. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/models/__init__.py +0 -0
  262. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/paastaapi/rest.py +0 -0
  263. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/prune_completed_pods.py +0 -0
  264. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/puppet_service_tools.py +0 -0
  265. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/py.typed +0 -0
  266. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/remote_git.py +0 -0
  267. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
  268. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/run-paasta-api-playground.py +0 -0
  269. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/secret_providers/__init__.py +0 -0
  270. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/secret_providers/vault.py +0 -0
  271. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/secret_tools.py +0 -0
  272. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/setup_istio_mesh.py +0 -0
  273. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/setup_kubernetes_cr.py +0 -0
  274. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/setup_kubernetes_crd.py +0 -0
  275. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
  276. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/setup_kubernetes_job.py +0 -0
  277. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
  278. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/setup_tron_namespace.py +0 -0
  279. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/slack.py +0 -0
  280. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/smartstack_tools.py +0 -0
  281. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/spark_tools.py +0 -0
  282. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
  283. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/tron/__init__.py +0 -0
  284. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/tron/client.py +0 -0
  285. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/tron/tron_command_context.py +0 -0
  286. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/tron/tron_timeutils.py +0 -0
  287. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/tron_tools.py +0 -0
  288. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools/vitesscluster_tools.py +0 -0
  289. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools.egg-info/SOURCES.txt +0 -0
  290. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools.egg-info/dependency_links.txt +0 -0
  291. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools.egg-info/entry_points.txt +0 -0
  292. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/paasta_tools.egg-info/top_level.txt +0 -0
  293. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/pyproject.toml +0 -0
  294. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/setup.cfg +0 -0
  295. {paasta-tools-1.1.1 → paasta-tools-1.2.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: paasta-tools
3
- Version: 1.1.1
3
+ Version: 1.2.0
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.1.1"
20
+ __version__ = "1.2.0"
@@ -33,10 +33,12 @@ from typing import Iterable
33
33
  from typing import List
34
34
  from typing import Mapping
35
35
  from typing import MutableSequence
36
+ from typing import Optional
36
37
  from typing import Sequence
37
38
  from typing import Set
38
39
  from typing import Tuple
39
40
  from typing import Type
41
+ from typing import Union
40
42
 
41
43
  import isodate
42
44
  import pytz
@@ -48,6 +50,11 @@ try:
48
50
  except ImportError:
49
51
  scribereader = None
50
52
 
53
+ try:
54
+ from clog.readers import S3LogsReader
55
+ except ImportError:
56
+ S3LogsReader = None
57
+
51
58
  from pytimeparse.timeparse import timeparse
52
59
 
53
60
  from paasta_tools.cli.utils import figure_out_service_name
@@ -289,7 +296,7 @@ def paasta_log_line_passes_filter(
289
296
  if not check_timestamp_in_range(timestamp, start_time, end_time):
290
297
  return False
291
298
  return (
292
- parsed_line.get("level") in levels
299
+ (parsed_line.get("level") is None or parsed_line.get("level") in levels)
293
300
  and parsed_line.get("component") in components
294
301
  and (
295
302
  parsed_line.get("cluster") in clusters
@@ -459,7 +466,9 @@ def register_log_reader(name):
459
466
  return outer
460
467
 
461
468
 
462
- def get_log_reader_class(name: str) -> Type["ScribeLogReader"]:
469
+ def get_log_reader_class(
470
+ name: str,
471
+ ) -> Union[Type["ScribeLogReader"], Type["VectorLogsReader"]]:
463
472
  return _log_reader_classes[name]
464
473
 
465
474
 
@@ -467,12 +476,44 @@ def list_log_readers() -> Iterable[str]:
467
476
  return _log_reader_classes.keys()
468
477
 
469
478
 
470
- def get_log_reader() -> "ScribeLogReader":
479
+ def get_default_log_reader() -> "LogReader":
471
480
  log_reader_config = load_system_paasta_config().get_log_reader()
472
481
  log_reader_class = get_log_reader_class(log_reader_config["driver"])
473
482
  return log_reader_class(**log_reader_config.get("options", {}))
474
483
 
475
484
 
485
+ def get_log_reader(components: Set[str]) -> "LogReader":
486
+ log_readers_config = load_system_paasta_config().get_log_readers()
487
+ # ideally we should use a single "driver" for all components, but in cases where more than one is used for different components,
488
+ # we should use the first one that supports all requested components
489
+ # otherwise signal an error and suggest to provide a different list of components
490
+ components_lists = []
491
+ for log_reader_config in log_readers_config:
492
+ supported_components = log_reader_config.get("components", [])
493
+ components_lists.append(supported_components)
494
+ if components.issubset(supported_components):
495
+ log_reader_class = get_log_reader_class(log_reader_config["driver"])
496
+ print(
497
+ PaastaColors.cyan(
498
+ "Using '{}' driver to fetch logs...".format(
499
+ log_reader_config["driver"]
500
+ )
501
+ ),
502
+ file=sys.stderr,
503
+ )
504
+ return log_reader_class(**log_reader_config.get("options", {}))
505
+ print(
506
+ PaastaColors.cyan(
507
+ "Supplied list of components '{}' is not supported by any log reader. Supported components are:\n\t{}".format(
508
+ ", ".join(components),
509
+ "\n\tor ".join([",".join(comp_list) for comp_list in components_lists]),
510
+ )
511
+ ),
512
+ file=sys.stderr,
513
+ )
514
+ sys.exit(1)
515
+
516
+
476
517
  class LogReader:
477
518
  # Tailing, i.e actively viewing logs as they come in
478
519
  SUPPORTS_TAILING = False
@@ -1123,7 +1164,76 @@ class ScribeLogReader(LogReader):
1123
1164
  return env
1124
1165
 
1125
1166
 
1126
- def scribe_env_to_locations(scribe_env):
1167
+ @register_log_reader("vector-logs")
1168
+ class VectorLogsReader(LogReader):
1169
+ SUPPORTS_TIME = True
1170
+
1171
+ def __init__(self, cluster_map: Mapping[str, Any]) -> None:
1172
+ super().__init__()
1173
+
1174
+ if S3LogsReader is None:
1175
+ raise Exception("yelp_clog package must be available to use S3LogsReader")
1176
+
1177
+ self.cluster_map = cluster_map
1178
+
1179
+ def get_superregion_for_cluster(self, cluster: str) -> Optional[str]:
1180
+ return self.cluster_map.get(cluster, None)
1181
+
1182
+ def print_logs_by_time(
1183
+ self,
1184
+ service,
1185
+ start_time: datetime.datetime,
1186
+ end_time: datetime.datetime,
1187
+ levels,
1188
+ components: Iterable[str],
1189
+ clusters,
1190
+ instances,
1191
+ pods,
1192
+ raw_mode,
1193
+ strip_headers,
1194
+ ) -> None:
1195
+ stream_name = get_log_name_for_service(service, prefix="app_output")
1196
+ superregion = self.get_superregion_for_cluster(clusters[0])
1197
+ reader = S3LogsReader(superregion)
1198
+ start_date = start_time.date()
1199
+ end_date = end_time.date()
1200
+ aggregated_logs: List[Dict[str, Any]] = []
1201
+
1202
+ for line in reader.get_log_reader(
1203
+ log_name=stream_name, min_date=start_date, max_date=end_date
1204
+ ):
1205
+ if paasta_log_line_passes_filter(
1206
+ line,
1207
+ levels,
1208
+ service,
1209
+ components,
1210
+ clusters,
1211
+ instances,
1212
+ pods,
1213
+ start_time=start_time,
1214
+ end_time=end_time,
1215
+ ):
1216
+ try:
1217
+ parsed_line = json.loads(line)
1218
+ timestamp = isodate.parse_datetime(parsed_line.get("timestamp"))
1219
+ if not timestamp.tzinfo:
1220
+ timestamp = pytz.utc.localize(timestamp)
1221
+ except ValueError:
1222
+ timestamp = pytz.utc.localize(datetime.datetime.min)
1223
+
1224
+ line = {"raw_line": line, "sort_key": timestamp}
1225
+ aggregated_logs.append(line)
1226
+
1227
+ aggregated_logs = list(
1228
+ {line["raw_line"]: line for line in aggregated_logs}.values()
1229
+ )
1230
+ aggregated_logs.sort(key=lambda log_line: log_line["sort_key"])
1231
+
1232
+ for line in aggregated_logs:
1233
+ print_log(line["raw_line"], levels, raw_mode, strip_headers)
1234
+
1235
+
1236
+ def scribe_env_to_locations(scribe_env) -> Mapping[str, Any]:
1127
1237
  """Converts a scribe environment to a dictionary of locations. The
1128
1238
  return value is meant to be used as kwargs for `scribereader.get_tail_host_and_port`.
1129
1239
  """
@@ -1188,9 +1298,7 @@ def generate_start_end_time(
1188
1298
  return start_time, end_time
1189
1299
 
1190
1300
 
1191
- def validate_filtering_args(
1192
- args: argparse.Namespace, log_reader: ScribeLogReader
1193
- ) -> bool:
1301
+ def validate_filtering_args(args: argparse.Namespace, log_reader: LogReader) -> bool:
1194
1302
  if not log_reader.SUPPORTS_LINE_OFFSET and args.line_offset is not None:
1195
1303
  print(
1196
1304
  PaastaColors.red(
@@ -1254,7 +1362,7 @@ def validate_filtering_args(
1254
1362
 
1255
1363
  def pick_default_log_mode(
1256
1364
  args: argparse.Namespace,
1257
- log_reader: ScribeLogReader,
1365
+ log_reader: LogReader,
1258
1366
  service: str,
1259
1367
  levels: Sequence[str],
1260
1368
  components: Iterable[str],
@@ -1320,6 +1428,14 @@ def pick_default_log_mode(
1320
1428
  return 1
1321
1429
 
1322
1430
 
1431
+ def pick_log_reader(cluster: str, components: Set[str]) -> LogReader:
1432
+ uses_log_readers = load_system_paasta_config().use_multiple_log_readers()
1433
+ if uses_log_readers and cluster in uses_log_readers:
1434
+ return get_log_reader(components)
1435
+ else:
1436
+ return get_default_log_reader()
1437
+
1438
+
1323
1439
  def paasta_logs(args: argparse.Namespace) -> int:
1324
1440
  """Print the logs for as Paasta service.
1325
1441
  :param args: argparse.Namespace obj created from sys.args by cli"""
@@ -1327,7 +1443,7 @@ def paasta_logs(args: argparse.Namespace) -> int:
1327
1443
 
1328
1444
  service = figure_out_service_name(args, soa_dir)
1329
1445
 
1330
- cluster = args.cluster
1446
+ clusters = args.cluster
1331
1447
  if (
1332
1448
  args.cluster is None
1333
1449
  or args.instance is None
@@ -1339,7 +1455,7 @@ def paasta_logs(args: argparse.Namespace) -> int:
1339
1455
  )
1340
1456
  return 1
1341
1457
 
1342
- if verify_instances(args.instance, service, cluster, soa_dir):
1458
+ if verify_instances(args.instance, service, clusters, soa_dir):
1343
1459
  return 1
1344
1460
 
1345
1461
  instance = args.instance
@@ -1362,16 +1478,16 @@ def paasta_logs(args: argparse.Namespace) -> int:
1362
1478
 
1363
1479
  levels = [DEFAULT_LOGLEVEL, "debug"]
1364
1480
 
1365
- log.debug(f"Going to get logs for {service} on cluster {cluster}")
1481
+ log.debug(f"Going to get logs for {service} on cluster {clusters}")
1366
1482
 
1367
- log_reader = get_log_reader()
1483
+ log_reader = pick_log_reader(clusters[0], components)
1368
1484
 
1369
1485
  if not validate_filtering_args(args, log_reader):
1370
1486
  return 1
1371
1487
  # They haven't specified what kind of filtering they want, decide for them
1372
1488
  if args.line_count is None and args.time_from is None and not args.tail:
1373
1489
  return pick_default_log_mode(
1374
- args, log_reader, service, levels, components, cluster, instance, pods
1490
+ args, log_reader, service, levels, components, clusters, instance, pods
1375
1491
  )
1376
1492
  if args.tail:
1377
1493
  print(
@@ -1381,7 +1497,7 @@ def paasta_logs(args: argparse.Namespace) -> int:
1381
1497
  service=service,
1382
1498
  levels=levels,
1383
1499
  components=components,
1384
- clusters=cluster,
1500
+ clusters=clusters,
1385
1501
  instances=[instance],
1386
1502
  pods=pods,
1387
1503
  raw_mode=args.raw_mode,
@@ -1402,7 +1518,7 @@ def paasta_logs(args: argparse.Namespace) -> int:
1402
1518
  line_count=args.line_count,
1403
1519
  levels=levels,
1404
1520
  components=components,
1405
- clusters=cluster,
1521
+ clusters=clusters,
1406
1522
  instances=[instance],
1407
1523
  pods=pods,
1408
1524
  raw_mode=args.raw_mode,
@@ -1416,7 +1532,7 @@ def paasta_logs(args: argparse.Namespace) -> int:
1416
1532
  line_offset=args.line_offset,
1417
1533
  levels=levels,
1418
1534
  components=components,
1419
- clusters=cluster,
1535
+ clusters=clusters,
1420
1536
  instances=[instance],
1421
1537
  pods=pods,
1422
1538
  raw_mode=args.raw_mode,
@@ -1437,7 +1553,7 @@ def paasta_logs(args: argparse.Namespace) -> int:
1437
1553
  end_time=end_time,
1438
1554
  levels=levels,
1439
1555
  components=components,
1440
- clusters=cluster,
1556
+ clusters=clusters,
1441
1557
  instances=[instance],
1442
1558
  pods=pods,
1443
1559
  raw_mode=args.raw_mode,
@@ -358,9 +358,9 @@ def add_subparser(subparsers):
358
358
  aws_group.add_argument(
359
359
  "--aws-profile",
360
360
  help="Name of the AWS profile to load credentials from. Only used when "
361
- "--aws-credentials-yaml is not specified and --service is either "
362
- "not specified or the service does not have credentials in "
363
- "/etc/boto_cfg",
361
+ "--aws-credentials-yaml is not specified or the service name provided by "
362
+ "--service does not have credentials in /etc/boto_cfg. In the latter case, "
363
+ "the `default` user profile will be used.",
364
364
  default=DEFAULT_AWS_PROFILE,
365
365
  )
366
366
 
@@ -1359,6 +1359,7 @@ class LogWriterConfig(TypedDict):
1359
1359
  class LogReaderConfig(TypedDict):
1360
1360
  driver: str
1361
1361
  options: Dict
1362
+ components: Optional[List]
1362
1363
 
1363
1364
 
1364
1365
  # The active log writer.
@@ -1960,6 +1961,7 @@ class SystemPaastaConfigDict(TypedDict, total=False):
1960
1961
  ldap_search_ou: str
1961
1962
  local_run_config: LocalRunConfig
1962
1963
  log_reader: LogReaderConfig
1964
+ log_readers: List[LogReaderConfig]
1963
1965
  log_writer: LogWriterConfig
1964
1966
  mark_for_deployment_max_polling_threads: int
1965
1967
  mark_for_deployment_default_polling_interval: float
@@ -2017,6 +2019,7 @@ class SystemPaastaConfigDict(TypedDict, total=False):
2017
2019
  sidecar_requirements_config: Dict[str, KubeContainerResourceRequest]
2018
2020
  eks_cluster_aliases: Dict[str, str]
2019
2021
  secret_sync_delay_seconds: float
2022
+ use_multiple_log_readers: Optional[List[str]]
2020
2023
 
2021
2024
 
2022
2025
  def load_system_paasta_config(
@@ -2321,6 +2324,25 @@ class SystemPaastaConfig:
2321
2324
  % self.directory
2322
2325
  )
2323
2326
 
2327
+ def get_log_readers(self) -> List[LogReaderConfig]:
2328
+ """Get the log_readers configuration out of global paasta config
2329
+
2330
+ :returns: the log_readers list of dicts.
2331
+ """
2332
+ try:
2333
+ return self.config_dict["log_readers"]
2334
+ except KeyError:
2335
+ raise PaastaNotConfiguredError(
2336
+ "Could not find log_readers in configuration directory: %s"
2337
+ % self.directory
2338
+ )
2339
+
2340
+ def use_multiple_log_readers(self) -> Optional[List[str]]:
2341
+ """
2342
+ Get the list of clusters that are using multiple log readers
2343
+ """
2344
+ return self.config_dict.get("use_multiple_log_readers")
2345
+
2324
2346
  def get_metrics_provider(self) -> Optional[str]:
2325
2347
  """Get the metrics_provider configuration out of global paasta config
2326
2348
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: paasta-tools
3
- Version: 1.1.1
3
+ Version: 1.2.0
4
4
  Summary: Tools for Yelps SOA infrastructure
5
5
  Home-page: UNKNOWN
6
6
  Author: Compute Infrastructure @ Yelp
@@ -46,7 +46,7 @@ requests-cache>=0.4.10
46
46
  retry
47
47
  ruamel.yaml
48
48
  sensu-plugin
49
- service-configuration-lib>=2.18.17
49
+ service-configuration-lib>=2.18.18
50
50
  signalfx
51
51
  slackclient>=1.2.1
52
52
  sticht>=1.1.0
@@ -55,7 +55,7 @@ requests-cache >= 0.4.10
55
55
  retry
56
56
  ruamel.yaml
57
57
  sensu-plugin
58
- service-configuration-lib >= 2.18.17
58
+ service-configuration-lib >= 2.18.18
59
59
  signalfx
60
60
  slackclient >= 1.2.1
61
61
  sticht >= 1.1.0
File without changes
File without changes