paasta-tools 1.1.2__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.
- {paasta-tools-1.1.2/paasta_tools.egg-info → paasta-tools-1.2.0}/PKG-INFO +1 -1
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/__init__.py +1 -1
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/logs.py +133 -17
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/utils.py +22 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0/paasta_tools.egg-info}/PKG-INFO +1 -1
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/MANIFEST.in +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/README.md +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/k8s_itests/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/k8s_itests/test_autoscaling.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/k8s_itests/utils.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/adhoc_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/api/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/api/api.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/api/api_docs/swagger.json +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/api/client.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/api/settings.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/api/tweens/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/api/tweens/profiling.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/api/tweens/request_logger.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/api/views/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/api/views/autoscaler.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/api/views/exception.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/api/views/flink.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/api/views/instance.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/api/views/pause_autoscaler.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/api/views/resources.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/api/views/service.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/api/views/version.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/apply_external_resources.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/async_utils.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/autoscaling/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/autoscaling/forecasting.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/autoscaling/utils.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/bounce_lib.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/broadcast_log_to_services.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cassandracluster_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/check_autoscaler_max_instances.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/check_flink_services_health.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/check_kubernetes_api.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/check_kubernetes_services_replication.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/check_oom_events.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/check_services_replication_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/check_spark_jobs.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cleanup_tron_namespaces.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cli.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/autoscale.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/check.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/cook_image.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/get_image_version.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/info.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/itest.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/list.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/list_clusters.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/local_run.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/mesh_status.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/remote_run.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/rollback.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/secret.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/security_check.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/spark_run.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/status.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/validate.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/fsm/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/fsm/autosuggest.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/fsm/template/README.md +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/kubernetes-PROD.yaml +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/fsm_cmd.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/eks_schema.json +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/kubernetes_schema.json +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/service_schema.json +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/schemas/tron_schema.json +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/cli/utils.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/clusterman.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/config_utils.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/check_orphans.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/create_paasta_playground.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/habitat_fixer.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/ide_helper.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/kill_bad_containers.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/mock_patch_checker.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/paasta_update_soa_memcpu.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/render_template.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/service_shard_remove.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/service_shard_update.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/shared_ip_check.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/delete_kubernetes_deployments.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/deployment_utils.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/docker_wrapper.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/docker_wrapper_imports.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/drain_lib.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/dump_locally_running_services.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/eks_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/envoy_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/firewall.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/firewall_logging.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/firewall_update.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/flink_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/flinkeks_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/frameworks/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/frameworks/adhoc_scheduler.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/frameworks/constraints.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/frameworks/native_scheduler.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/frameworks/native_service_config.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/frameworks/task_store.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/generate_all_deployments +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/generate_authenticating_services.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/generate_deployments_for_service.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/generate_services_file.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/generate_services_yaml.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/hacheck.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/instance/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/instance/kubernetes.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/iptables.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/kafkacluster_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/kubernetes/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/kubernetes/application/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/kubernetes/application/controller_wrappers.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/kubernetes/application/tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/kubernetes/bin/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/kubernetes_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/list_kubernetes_service_instances.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/list_tron_namespaces.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/log_task_lifecycle_events.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/long_running_service_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/mac_address.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/marathon_dashboard.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/mesos/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/mesos/cfg.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/mesos/cluster.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/mesos/exceptions.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/mesos/framework.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/mesos/log.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/mesos/master.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/mesos/mesos_file.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/mesos/parallel.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/mesos/slave.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/mesos/task.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/mesos/util.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/mesos/zookeeper.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/mesos_maintenance.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/mesos_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/metrics/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/metrics/metastatus_lib.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/metrics/metrics_lib.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/monitoring/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/monitoring/kill_orphaned_docker_containers.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/monitoring_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/monkrelaycluster_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/nrtsearchservice_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/oom_logger.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paasta_deploy_tron_jobs +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paasta_execute_docker_command.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paasta_native_serviceinit.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paasta_remote_run.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paasta_service_config_loader.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/api/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/api/default_api.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/api/resources_api.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/api/service_api.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/api_client.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/apis/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/configuration.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/exceptions.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/flink_config.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/flink_job.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/inline_object.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_status.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/resource.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/resource_item.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/resource_value.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/model_utils.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/models/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/paastaapi/rest.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/prune_completed_pods.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/puppet_service_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/py.typed +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/remote_git.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/run-paasta-api-playground.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/secret_providers/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/secret_providers/vault.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/secret_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/setup_istio_mesh.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/setup_kubernetes_cr.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/setup_kubernetes_crd.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/setup_kubernetes_job.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/setup_tron_namespace.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/slack.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/smartstack_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/spark_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/tron/__init__.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/tron/client.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/tron/tron_command_context.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/tron/tron_timeutils.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/tron_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/vitesscluster_tools.py +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools.egg-info/SOURCES.txt +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools.egg-info/dependency_links.txt +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools.egg-info/entry_points.txt +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools.egg-info/requires.txt +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools.egg-info/top_level.txt +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/pyproject.toml +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/requirements-minimal.txt +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/setup.cfg +0 -0
- {paasta-tools-1.1.2 → paasta-tools-1.2.0}/setup.py +0 -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(
|
|
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
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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,
|
|
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 {
|
|
1481
|
+
log.debug(f"Going to get logs for {service} on cluster {clusters}")
|
|
1366
1482
|
|
|
1367
|
-
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,
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
1556
|
+
clusters=clusters,
|
|
1441
1557
|
instances=[instance],
|
|
1442
1558
|
pods=pods,
|
|
1443
1559
|
raw_mode=args.raw_mode,
|
|
@@ -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
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/autoscaling/autoscaling_service_lib.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/autoscaling/pause_service_autoscaler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/check_kubernetes_services_replication.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/emit_allocated_cpu_metrics.py
RENAMED
|
File without changes
|
{paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/get_running_task_allocation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.1.2 → paasta-tools-1.2.0}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py
RENAMED
|
File without changes
|
|
File without changes
|