paasta-tools 1.0.0__tar.gz → 1.0.1__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.0.0/paasta_tools.egg-info → paasta-tools-1.0.1}/PKG-INFO +1 -1
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/__init__.py +1 -1
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/api/api.py +0 -1
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/api/api_docs/swagger.json +0 -44
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cli.py +0 -2
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/status.py +0 -92
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/utils.py +0 -126
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/mesos_tools.py +0 -8
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/metrics/metastatus_lib.py +0 -55
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/api/default_api.py +0 -118
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/models/__init__.py +0 -1
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/utils.py +0 -119
- {paasta-tools-1.0.0 → paasta-tools-1.0.1/paasta_tools.egg-info}/PKG-INFO +1 -1
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools.egg-info/SOURCES.txt +0 -17
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools.egg-info/entry_points.txt +0 -1
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/setup.py +0 -10
- paasta-tools-1.0.0/paasta_tools/am_i_mesos_leader.py +0 -37
- paasta-tools-1.0.0/paasta_tools/api/views/metastatus.py +0 -27
- paasta-tools-1.0.0/paasta_tools/autoscaling/load_boost.py +0 -225
- paasta-tools-1.0.0/paasta_tools/cleanup_maintenance.py +0 -122
- paasta-tools-1.0.0/paasta_tools/cli/cmds/boost.py +0 -123
- paasta-tools-1.0.0/paasta_tools/cli/cmds/metastatus.py +0 -234
- paasta-tools-1.0.0/paasta_tools/contrib/utilization_check.py +0 -62
- paasta-tools-1.0.0/paasta_tools/get_mesos_leader.py +0 -28
- paasta-tools-1.0.0/paasta_tools/monitoring/check_capacity.py +0 -187
- paasta-tools-1.0.0/paasta_tools/monitoring/check_mesos_active_frameworks.py +0 -60
- paasta-tools-1.0.0/paasta_tools/monitoring/check_mesos_duplicate_frameworks.py +0 -59
- paasta-tools-1.0.0/paasta_tools/monitoring/check_mesos_quorum.py +0 -31
- paasta-tools-1.0.0/paasta_tools/native_mesos_scheduler.py +0 -152
- paasta-tools-1.0.0/paasta_tools/paasta_cluster_boost.py +0 -147
- paasta-tools-1.0.0/paasta_tools/paasta_maintenance.py +0 -148
- paasta-tools-1.0.0/paasta_tools/paasta_metastatus.py +0 -469
- paasta-tools-1.0.0/paasta_tools/paastaapi/model/meta_status.py +0 -173
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/MANIFEST.in +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/README.md +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/k8s_itests/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/k8s_itests/test_autoscaling.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/k8s_itests/utils.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/adhoc_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/api/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/api/client.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/api/settings.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/api/tweens/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/api/tweens/profiling.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/api/tweens/request_logger.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/api/views/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/api/views/autoscaler.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/api/views/exception.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/api/views/flink.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/api/views/instance.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/api/views/pause_autoscaler.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/api/views/resources.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/api/views/service.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/api/views/version.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/apply_external_resources.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/async_utils.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/autoscaling/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/autoscaling/forecasting.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/autoscaling/utils.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/bounce_lib.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/broadcast_log_to_services.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cassandracluster_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/check_autoscaler_max_instances.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/check_flink_services_health.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/check_kubernetes_api.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/check_kubernetes_services_replication.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/check_oom_events.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/check_services_replication_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/check_spark_jobs.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cleanup_tron_namespaces.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/autoscale.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/check.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/cook_image.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/get_image_version.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/info.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/itest.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/list.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/list_clusters.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/local_run.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/logs.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/mesh_status.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/remote_run.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/rollback.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/secret.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/security_check.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/spark_run.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/validate.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/fsm/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/fsm/autosuggest.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/fsm/template/README.md +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/kubernetes-PROD.yaml +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/fsm_cmd.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/schemas/eks_schema.json +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/schemas/kubernetes_schema.json +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/schemas/service_schema.json +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/cli/schemas/tron_schema.json +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/clusterman.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/config_utils.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/check_orphans.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/create_paasta_playground.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/habitat_fixer.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/ide_helper.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/kill_bad_containers.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/mock_patch_checker.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/paasta_update_soa_memcpu.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/render_template.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/service_shard_remove.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/service_shard_update.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/shared_ip_check.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/delete_kubernetes_deployments.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/deployment_utils.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/docker_wrapper.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/docker_wrapper_imports.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/drain_lib.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/dump_locally_running_services.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/eks_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/envoy_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/firewall.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/firewall_logging.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/firewall_update.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/flink_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/flinkeks_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/frameworks/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/frameworks/adhoc_scheduler.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/frameworks/constraints.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/frameworks/native_scheduler.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/frameworks/native_service_config.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/frameworks/task_store.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/generate_all_deployments +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/generate_deployments_for_service.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/generate_services_file.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/generate_services_yaml.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/hacheck.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/instance/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/instance/kubernetes.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/iptables.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/kafkacluster_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/kubernetes/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/kubernetes/application/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/kubernetes/application/controller_wrappers.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/kubernetes/application/tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/kubernetes/bin/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/kubernetes_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/list_kubernetes_service_instances.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/list_tron_namespaces.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/log_task_lifecycle_events.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/long_running_service_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/mac_address.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/marathon_dashboard.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/mesos/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/mesos/cfg.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/mesos/cluster.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/mesos/exceptions.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/mesos/framework.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/mesos/log.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/mesos/master.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/mesos/mesos_file.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/mesos/parallel.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/mesos/slave.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/mesos/task.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/mesos/util.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/mesos/zookeeper.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/mesos_maintenance.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/metrics/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/metrics/metrics_lib.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/monitoring/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/monitoring/kill_orphaned_docker_containers.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/monitoring_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/monkrelaycluster_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/nrtsearchservice_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/oom_logger.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paasta_deploy_tron_jobs +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paasta_execute_docker_command.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paasta_native_serviceinit.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paasta_remote_run.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paasta_service_config_loader.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/api/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/api/resources_api.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/api/service_api.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/api_client.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/apis/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/configuration.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/exceptions.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/flink_config.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/flink_job.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/inline_object.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/instance_status.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/resource.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/resource_item.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/resource_value.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/model_utils.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/paastaapi/rest.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/prune_completed_pods.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/puppet_service_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/py.typed +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/remote_git.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/run-paasta-api-playground.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/secret_providers/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/secret_providers/vault.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/secret_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/setup_istio_mesh.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/setup_kubernetes_cr.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/setup_kubernetes_crd.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/setup_kubernetes_job.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/setup_tron_namespace.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/slack.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/smartstack_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/spark_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/tron/__init__.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/tron/client.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/tron/tron_command_context.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/tron/tron_timeutils.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/tron_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools/vitesscluster_tools.py +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools.egg-info/dependency_links.txt +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools.egg-info/requires.txt +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/paasta_tools.egg-info/top_level.txt +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/pyproject.toml +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/requirements-minimal.txt +0 -0
- {paasta-tools-1.0.0 → paasta-tools-1.0.1}/setup.cfg +0 -0
|
@@ -176,7 +176,6 @@ def make_app(global_config=None):
|
|
|
176
176
|
request_method="GET",
|
|
177
177
|
)
|
|
178
178
|
config.add_route("version", "/v1/version")
|
|
179
|
-
config.add_route("metastatus", "/v1/metastatus")
|
|
180
179
|
config.add_route("deploy_queue.list", "/v1/deploy_queue")
|
|
181
180
|
config.scan()
|
|
182
181
|
return CORS(
|
|
@@ -35,36 +35,6 @@
|
|
|
35
35
|
"operationId": "showVersion"
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
|
-
"/metastatus": {
|
|
39
|
-
"get": {
|
|
40
|
-
"parameters": [
|
|
41
|
-
{
|
|
42
|
-
"in": "query",
|
|
43
|
-
"description": "comma separated list of command arguments",
|
|
44
|
-
"name": "cmd_args",
|
|
45
|
-
"required": true,
|
|
46
|
-
"type": "array",
|
|
47
|
-
"collectionFormat": "csv",
|
|
48
|
-
"items": {
|
|
49
|
-
"type": "string"
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
],
|
|
53
|
-
"responses": {
|
|
54
|
-
"200": {
|
|
55
|
-
"description": "Detailed metastatus",
|
|
56
|
-
"schema": {
|
|
57
|
-
"$ref": "#/definitions/MetaStatus"
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
"500": {
|
|
61
|
-
"description": "Metastatus failure"
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
|
-
"summary": "Get metastatus",
|
|
65
|
-
"operationId": "metastatus"
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
38
|
"/deploy_queue": {
|
|
69
39
|
"get": {
|
|
70
40
|
"responses": {
|
|
@@ -1802,20 +1772,6 @@
|
|
|
1802
1772
|
}
|
|
1803
1773
|
}
|
|
1804
1774
|
},
|
|
1805
|
-
"MetaStatus": {
|
|
1806
|
-
"type": "object",
|
|
1807
|
-
"description": "Result of `paasta metastatus` command",
|
|
1808
|
-
"properties": {
|
|
1809
|
-
"output": {
|
|
1810
|
-
"type": "string",
|
|
1811
|
-
"description": "Output from `paasta metastatus` command"
|
|
1812
|
-
},
|
|
1813
|
-
"exit_code": {
|
|
1814
|
-
"type": "integer",
|
|
1815
|
-
"description": "Exit code from `paasta metastatus` command"
|
|
1816
|
-
}
|
|
1817
|
-
}
|
|
1818
|
-
},
|
|
1819
1775
|
"DeployQueue": {
|
|
1820
1776
|
"type": "object",
|
|
1821
1777
|
"description": "Current state of the deployd queue",
|
|
@@ -101,7 +101,6 @@ def add_subparser(command, subparsers):
|
|
|
101
101
|
|
|
102
102
|
PAASTA_SUBCOMMANDS = {
|
|
103
103
|
"autoscale": "autoscale",
|
|
104
|
-
"boost": "boost",
|
|
105
104
|
"check": "check",
|
|
106
105
|
"cook-image": "cook_image",
|
|
107
106
|
"get-docker-image": "get_docker_image",
|
|
@@ -116,7 +115,6 @@ PAASTA_SUBCOMMANDS = {
|
|
|
116
115
|
"logs": "logs",
|
|
117
116
|
"mark-for-deployment": "mark_for_deployment",
|
|
118
117
|
"mesh-status": "mesh_status",
|
|
119
|
-
"metastatus": "metastatus",
|
|
120
118
|
"pause_service_autoscaler": "pause_service_autoscaler",
|
|
121
119
|
"push-to-registry": "push_to_registry",
|
|
122
120
|
"remote-run": "remote_run",
|
|
@@ -70,7 +70,6 @@ from paasta_tools.kubernetes_tools import format_tail_lines_for_kubernetes_pod
|
|
|
70
70
|
from paasta_tools.kubernetes_tools import KubernetesDeploymentConfig
|
|
71
71
|
from paasta_tools.kubernetes_tools import KubernetesDeployStatus
|
|
72
72
|
from paasta_tools.kubernetes_tools import paasta_prefixed
|
|
73
|
-
from paasta_tools.mesos_tools import format_tail_lines_for_mesos_task
|
|
74
73
|
from paasta_tools.monitoring_tools import get_team
|
|
75
74
|
from paasta_tools.monitoring_tools import list_teams
|
|
76
75
|
from paasta_tools.paasta_service_config_loader import PaastaServiceConfigLoader
|
|
@@ -428,97 +427,6 @@ def create_autoscaling_info_table(autoscaling_info):
|
|
|
428
427
|
return output
|
|
429
428
|
|
|
430
429
|
|
|
431
|
-
def create_mesos_running_tasks_table(running_tasks):
|
|
432
|
-
rows = []
|
|
433
|
-
table_header = [
|
|
434
|
-
"Mesos Task ID",
|
|
435
|
-
"Host deployed to",
|
|
436
|
-
"Ram",
|
|
437
|
-
"CPU",
|
|
438
|
-
"Deployed at what localtime",
|
|
439
|
-
]
|
|
440
|
-
rows.append(table_header)
|
|
441
|
-
for task in running_tasks or []:
|
|
442
|
-
mem_string = get_mesos_task_memory_string(task)
|
|
443
|
-
cpu_string = get_mesos_task_cpu_string(task)
|
|
444
|
-
deployed_at = datetime.fromtimestamp(task.deployed_timestamp)
|
|
445
|
-
deployed_at_string = "{} ({})".format(
|
|
446
|
-
deployed_at.strftime("%Y-%m-%dT%H:%M"), humanize.naturaltime(deployed_at)
|
|
447
|
-
)
|
|
448
|
-
|
|
449
|
-
rows.append(
|
|
450
|
-
[task.id, task.hostname, mem_string, cpu_string, deployed_at_string]
|
|
451
|
-
)
|
|
452
|
-
rows.extend(format_tail_lines_for_mesos_task(task.tail_lines, task.id))
|
|
453
|
-
|
|
454
|
-
return format_table(rows)
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
def get_mesos_task_memory_string(task):
|
|
458
|
-
if task.rss.value is None or task.mem_limit.value is None:
|
|
459
|
-
return task.rss.error_message or task.mem_limit.error_message
|
|
460
|
-
elif task.mem_limit.value == 0:
|
|
461
|
-
return "Undef"
|
|
462
|
-
else:
|
|
463
|
-
mem_percent = 100 * task.rss.value / task.mem_limit.value
|
|
464
|
-
mem_string = "%d/%dMB" % (
|
|
465
|
-
(task.rss.value / 1024 / 1024),
|
|
466
|
-
(task.mem_limit.value / 1024 / 1024),
|
|
467
|
-
)
|
|
468
|
-
if mem_percent > 90:
|
|
469
|
-
return PaastaColors.red(mem_string)
|
|
470
|
-
else:
|
|
471
|
-
return mem_string
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
def get_mesos_task_cpu_string(task):
|
|
475
|
-
if task.cpu_shares.value is None or task.cpu_used_seconds.value is None:
|
|
476
|
-
return task.cpu_shares.error_message
|
|
477
|
-
else:
|
|
478
|
-
# The total time a task has been allocated is the total time the task has
|
|
479
|
-
# been running multiplied by the "shares" a task has.
|
|
480
|
-
# (see https://github.com/mesosphere/mesos/blob/0b092b1b0/src/webui/master/static/js/controllers.js#L140)
|
|
481
|
-
allocated_seconds = task.cpu_shares.value * task.duration_seconds
|
|
482
|
-
if allocated_seconds == 0:
|
|
483
|
-
return "Undef"
|
|
484
|
-
else:
|
|
485
|
-
cpu_percent = round(
|
|
486
|
-
100 * (task.cpu_used_seconds.value / allocated_seconds), 1
|
|
487
|
-
)
|
|
488
|
-
cpu_string = "%s%%" % cpu_percent
|
|
489
|
-
if cpu_percent > 90:
|
|
490
|
-
return PaastaColors.red(cpu_string)
|
|
491
|
-
else:
|
|
492
|
-
return cpu_string
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
def create_mesos_non_running_tasks_table(non_running_tasks):
|
|
496
|
-
rows = []
|
|
497
|
-
table_header = [
|
|
498
|
-
"Mesos Task ID",
|
|
499
|
-
"Host deployed to",
|
|
500
|
-
"Deployed at what localtime",
|
|
501
|
-
"Status",
|
|
502
|
-
]
|
|
503
|
-
rows.append(table_header)
|
|
504
|
-
|
|
505
|
-
for task in non_running_tasks or []:
|
|
506
|
-
if task.deployed_timestamp is None:
|
|
507
|
-
deployed_at_string = "Unknown"
|
|
508
|
-
else:
|
|
509
|
-
deployed_at = datetime.fromtimestamp(task.deployed_timestamp)
|
|
510
|
-
deployed_at_string = "{} ({})".format(
|
|
511
|
-
deployed_at.strftime("%Y-%m-%dT%H:%M"),
|
|
512
|
-
humanize.naturaltime(deployed_at),
|
|
513
|
-
)
|
|
514
|
-
|
|
515
|
-
rows.append([task.id, task.hostname, deployed_at_string, task.state])
|
|
516
|
-
rows.extend(format_tail_lines_for_mesos_task(task.tail_lines, task.id))
|
|
517
|
-
|
|
518
|
-
table = format_table(rows)
|
|
519
|
-
return [PaastaColors.grey(formatted_row) for formatted_row in table]
|
|
520
|
-
|
|
521
|
-
|
|
522
430
|
def format_kubernetes_pod_table(pods, verbose: int):
|
|
523
431
|
rows: List[Union[tuple, str]] = [
|
|
524
432
|
("Pod ID", "Host deployed to", "Deployed at what localtime", "Health")
|
|
@@ -58,7 +58,6 @@ from paasta_tools.nrtsearchserviceeks_tools import (
|
|
|
58
58
|
from paasta_tools.paasta_service_config_loader import PaastaServiceConfigLoader
|
|
59
59
|
from paasta_tools.tron_tools import load_tron_instance_config
|
|
60
60
|
from paasta_tools.utils import _log
|
|
61
|
-
from paasta_tools.utils import _log_audit
|
|
62
61
|
from paasta_tools.utils import _run
|
|
63
62
|
from paasta_tools.utils import compose_job_id
|
|
64
63
|
from paasta_tools.utils import DEFAULT_SOA_CONFIGS_GIT_URL
|
|
@@ -493,131 +492,6 @@ def check_ssh_on_master(master, timeout=10):
|
|
|
493
492
|
return (False, output)
|
|
494
493
|
|
|
495
494
|
|
|
496
|
-
def get_paasta_metastatus_cmd_args(
|
|
497
|
-
groupings: Sequence[str],
|
|
498
|
-
verbose: int = 0,
|
|
499
|
-
autoscaling_info: bool = False,
|
|
500
|
-
use_mesos_cache: bool = False,
|
|
501
|
-
) -> Tuple[Sequence[str], int]:
|
|
502
|
-
if verbose > 0:
|
|
503
|
-
verbose_arg = ["-%s" % ("v" * verbose)]
|
|
504
|
-
timeout = 120
|
|
505
|
-
else:
|
|
506
|
-
verbose_arg = []
|
|
507
|
-
timeout = 20
|
|
508
|
-
autoscaling_arg = ["-a"] if autoscaling_info else []
|
|
509
|
-
if autoscaling_arg and verbose < 2:
|
|
510
|
-
verbose_arg = ["-vv"]
|
|
511
|
-
groupings_args = ["-g", *groupings] if groupings else []
|
|
512
|
-
cache_arg = ["--use-mesos-cache"] if use_mesos_cache else []
|
|
513
|
-
cmd_args = [*verbose_arg, *groupings_args, *autoscaling_arg, *cache_arg]
|
|
514
|
-
return cmd_args, timeout
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
def run_paasta_metastatus(
|
|
518
|
-
master: str,
|
|
519
|
-
groupings: Sequence[str],
|
|
520
|
-
verbose: int = 0,
|
|
521
|
-
autoscaling_info: bool = False,
|
|
522
|
-
use_mesos_cache: bool = False,
|
|
523
|
-
) -> Tuple[int, str]:
|
|
524
|
-
cmd_args, timeout = get_paasta_metastatus_cmd_args(
|
|
525
|
-
groupings=groupings,
|
|
526
|
-
verbose=verbose,
|
|
527
|
-
autoscaling_info=autoscaling_info,
|
|
528
|
-
use_mesos_cache=use_mesos_cache,
|
|
529
|
-
)
|
|
530
|
-
command = (
|
|
531
|
-
"ssh -A -n -o StrictHostKeyChecking=no {} sudo paasta_metastatus {}".format(
|
|
532
|
-
master, " ".join(cmd_args)
|
|
533
|
-
)
|
|
534
|
-
).strip()
|
|
535
|
-
return_code, output = _run(command, timeout=timeout)
|
|
536
|
-
return return_code, output
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
def run_paasta_cluster_boost(master, action, pool, duration, override, boost, verbose):
|
|
540
|
-
timeout = 20
|
|
541
|
-
|
|
542
|
-
verbose_flag: Optional[str]
|
|
543
|
-
if verbose > 0:
|
|
544
|
-
verbose_flag = "-{}".format("v" * verbose)
|
|
545
|
-
else:
|
|
546
|
-
verbose_flag = None
|
|
547
|
-
|
|
548
|
-
pool_flag = f"--pool {pool}"
|
|
549
|
-
duration_flag = f"--duration {duration}" if duration is not None else ""
|
|
550
|
-
boost_flag = f"--boost {boost}" if boost is not None else ""
|
|
551
|
-
override_flag = "--force" if override is not None else ""
|
|
552
|
-
|
|
553
|
-
cmd_args = " ".join(
|
|
554
|
-
filter(
|
|
555
|
-
None,
|
|
556
|
-
[action, pool_flag, duration_flag, boost_flag, override_flag, verbose_flag],
|
|
557
|
-
)
|
|
558
|
-
)
|
|
559
|
-
command = (
|
|
560
|
-
"ssh -A -n -o StrictHostKeyChecking=no {} paasta_cluster_boost {}".format(
|
|
561
|
-
master, cmd_args
|
|
562
|
-
)
|
|
563
|
-
).strip()
|
|
564
|
-
return_code, output = _run(command, timeout=timeout)
|
|
565
|
-
return return_code, output
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
def execute_paasta_cluster_boost_on_remote_master(
|
|
569
|
-
clusters,
|
|
570
|
-
system_paasta_config,
|
|
571
|
-
action,
|
|
572
|
-
pool,
|
|
573
|
-
duration=None,
|
|
574
|
-
override=None,
|
|
575
|
-
boost=None,
|
|
576
|
-
verbose=0,
|
|
577
|
-
):
|
|
578
|
-
"""Returns a string containing an error message if an error occurred.
|
|
579
|
-
Otherwise returns the output of run_paasta_cluster_boost().
|
|
580
|
-
"""
|
|
581
|
-
result = {}
|
|
582
|
-
for cluster in clusters:
|
|
583
|
-
try:
|
|
584
|
-
master = connectable_master(cluster, system_paasta_config)
|
|
585
|
-
except NoMasterError as e:
|
|
586
|
-
result[cluster] = (255, str(e))
|
|
587
|
-
continue
|
|
588
|
-
|
|
589
|
-
result[cluster] = run_paasta_cluster_boost(
|
|
590
|
-
master=master,
|
|
591
|
-
action=action,
|
|
592
|
-
pool=pool,
|
|
593
|
-
duration=duration,
|
|
594
|
-
override=override,
|
|
595
|
-
boost=boost,
|
|
596
|
-
verbose=verbose,
|
|
597
|
-
)
|
|
598
|
-
|
|
599
|
-
audit_details = {
|
|
600
|
-
"boost_action": action,
|
|
601
|
-
"pool": pool,
|
|
602
|
-
"duration": duration,
|
|
603
|
-
"override": override,
|
|
604
|
-
"boost": boost,
|
|
605
|
-
}
|
|
606
|
-
_log_audit(
|
|
607
|
-
action="cluster-boost", action_details=audit_details, cluster=cluster
|
|
608
|
-
)
|
|
609
|
-
|
|
610
|
-
aggregated_code = 0
|
|
611
|
-
aggregated_output = ""
|
|
612
|
-
for cluster in result:
|
|
613
|
-
code = result[cluster][0]
|
|
614
|
-
output = result[cluster][1]
|
|
615
|
-
if not code == 0:
|
|
616
|
-
aggregated_code = 1
|
|
617
|
-
aggregated_output += f"\n{cluster}: \n{output}\n"
|
|
618
|
-
return (aggregated_code, aggregated_output)
|
|
619
|
-
|
|
620
|
-
|
|
621
495
|
def run_on_master(
|
|
622
496
|
cluster,
|
|
623
497
|
system_paasta_config,
|
|
@@ -153,14 +153,6 @@ def get_mesos_leader(mesos_config_path: Optional[str] = None) -> str:
|
|
|
153
153
|
raise ValueError("Expected to receive a valid URL, got: %s" % url)
|
|
154
154
|
|
|
155
155
|
|
|
156
|
-
def is_mesos_leader(hostname: str = MY_HOSTNAME) -> bool:
|
|
157
|
-
"""Check if a hostname is the current mesos leader.
|
|
158
|
-
|
|
159
|
-
:param hostname: The hostname to query mesos-master on
|
|
160
|
-
:returns: True if hostname is the mesos-master leader, False otherwise"""
|
|
161
|
-
return get_mesos_leader() == hostname
|
|
162
|
-
|
|
163
|
-
|
|
164
156
|
class MesosLeaderUnavailable(Exception):
|
|
165
157
|
pass
|
|
166
158
|
|
|
@@ -18,7 +18,6 @@ import math
|
|
|
18
18
|
import re
|
|
19
19
|
from collections import Counter
|
|
20
20
|
from collections import namedtuple
|
|
21
|
-
from collections import OrderedDict
|
|
22
21
|
from typing import Any
|
|
23
22
|
from typing import Callable
|
|
24
23
|
from typing import Mapping
|
|
@@ -474,60 +473,6 @@ def assert_kube_pods_running(
|
|
|
474
473
|
)
|
|
475
474
|
|
|
476
475
|
|
|
477
|
-
def assert_no_duplicate_frameworks(
|
|
478
|
-
state: MesosState, framework_list: Sequence[str]
|
|
479
|
-
) -> HealthCheckResult:
|
|
480
|
-
"""A function which asserts that there are no duplicate frameworks running, where
|
|
481
|
-
frameworks are identified by their name.
|
|
482
|
-
|
|
483
|
-
Note the extra spaces in the output strings: this is to account for the extra indentation
|
|
484
|
-
we add, so we can have:
|
|
485
|
-
|
|
486
|
-
frameworks:
|
|
487
|
-
framework: tron count: 1
|
|
488
|
-
|
|
489
|
-
:param state: the state info from the Mesos master
|
|
490
|
-
:returns: a tuple containing (output, ok): output is a log of the state of frameworks, ok a boolean
|
|
491
|
-
indicating if there are any duplicate frameworks.
|
|
492
|
-
"""
|
|
493
|
-
output = ["Frameworks:"]
|
|
494
|
-
status = True
|
|
495
|
-
frameworks = state["frameworks"]
|
|
496
|
-
for name in framework_list:
|
|
497
|
-
shards = [x["name"] for x in frameworks if x["name"].startswith(name)]
|
|
498
|
-
for framework, count in OrderedDict(sorted(Counter(shards).items())).items():
|
|
499
|
-
if count > 1:
|
|
500
|
-
status = False
|
|
501
|
-
output.append(
|
|
502
|
-
" CRITICAL: There are %d connected %s frameworks! "
|
|
503
|
-
"(Expected 1)" % (count, framework)
|
|
504
|
-
)
|
|
505
|
-
output.append(" Framework: %s count: %d" % (name, len(shards)))
|
|
506
|
-
|
|
507
|
-
return HealthCheckResult(message=("\n").join(output), healthy=status)
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
def assert_frameworks_exist(
|
|
511
|
-
state: MesosState, expected: Sequence[str]
|
|
512
|
-
) -> HealthCheckResult:
|
|
513
|
-
frameworks = [f["name"] for f in state["frameworks"]]
|
|
514
|
-
not_found = []
|
|
515
|
-
ok = True
|
|
516
|
-
|
|
517
|
-
for f in expected:
|
|
518
|
-
if f not in frameworks:
|
|
519
|
-
ok = False
|
|
520
|
-
not_found.append(f)
|
|
521
|
-
|
|
522
|
-
if ok:
|
|
523
|
-
return HealthCheckResult(message="all expected frameworks found", healthy=ok)
|
|
524
|
-
else:
|
|
525
|
-
return HealthCheckResult(
|
|
526
|
-
message="CRITICAL: framework(s) %s not found" % ", ".join(not_found),
|
|
527
|
-
healthy=ok,
|
|
528
|
-
)
|
|
529
|
-
|
|
530
|
-
|
|
531
476
|
def get_mesos_slaves_health_status(
|
|
532
477
|
metrics: MesosMetrics,
|
|
533
478
|
) -> Tuple[int, int]:
|
|
@@ -25,7 +25,6 @@ from paasta_tools.paastaapi.model_utils import ( # noqa: F401
|
|
|
25
25
|
)
|
|
26
26
|
from paasta_tools.paastaapi.model.deploy_queue import DeployQueue
|
|
27
27
|
from paasta_tools.paastaapi.model.inline_object import InlineObject
|
|
28
|
-
from paasta_tools.paastaapi.model.meta_status import MetaStatus
|
|
29
28
|
|
|
30
29
|
|
|
31
30
|
class DefaultApi(object):
|
|
@@ -350,123 +349,6 @@ class DefaultApi(object):
|
|
|
350
349
|
callable=__get_service_autoscaler_pause
|
|
351
350
|
)
|
|
352
351
|
|
|
353
|
-
def __metastatus(
|
|
354
|
-
self,
|
|
355
|
-
cmd_args,
|
|
356
|
-
**kwargs
|
|
357
|
-
):
|
|
358
|
-
"""Get metastatus # noqa: E501
|
|
359
|
-
|
|
360
|
-
This method makes a synchronous HTTP request by default. To make an
|
|
361
|
-
asynchronous HTTP request, please pass async_req=True
|
|
362
|
-
|
|
363
|
-
>>> thread = api.metastatus(cmd_args, async_req=True)
|
|
364
|
-
>>> result = thread.get()
|
|
365
|
-
|
|
366
|
-
Args:
|
|
367
|
-
cmd_args ([str]): comma separated list of command arguments
|
|
368
|
-
|
|
369
|
-
Keyword Args:
|
|
370
|
-
_return_http_data_only (bool): response data without head status
|
|
371
|
-
code and headers. Default is True.
|
|
372
|
-
_preload_content (bool): if False, the urllib3.HTTPResponse object
|
|
373
|
-
will be returned without reading/decoding response data.
|
|
374
|
-
Default is True.
|
|
375
|
-
_request_timeout (float/tuple): timeout setting for this request. If one
|
|
376
|
-
number provided, it will be total request timeout. It can also
|
|
377
|
-
be a pair (tuple) of (connection, read) timeouts.
|
|
378
|
-
Default is None.
|
|
379
|
-
_check_input_type (bool): specifies if type checking
|
|
380
|
-
should be done one the data sent to the server.
|
|
381
|
-
Default is True.
|
|
382
|
-
_check_return_type (bool): specifies if type checking
|
|
383
|
-
should be done one the data received from the server.
|
|
384
|
-
Default is True.
|
|
385
|
-
_host_index (int/None): specifies the index of the server
|
|
386
|
-
that we want to use.
|
|
387
|
-
Default is read from the configuration.
|
|
388
|
-
async_req (bool): execute request asynchronously
|
|
389
|
-
|
|
390
|
-
Returns:
|
|
391
|
-
MetaStatus
|
|
392
|
-
If the method is called asynchronously, returns the request
|
|
393
|
-
thread.
|
|
394
|
-
"""
|
|
395
|
-
kwargs['async_req'] = kwargs.get(
|
|
396
|
-
'async_req', False
|
|
397
|
-
)
|
|
398
|
-
kwargs['_return_http_data_only'] = kwargs.get(
|
|
399
|
-
'_return_http_data_only', True
|
|
400
|
-
)
|
|
401
|
-
kwargs['_preload_content'] = kwargs.get(
|
|
402
|
-
'_preload_content', True
|
|
403
|
-
)
|
|
404
|
-
kwargs['_request_timeout'] = kwargs.get(
|
|
405
|
-
'_request_timeout', None
|
|
406
|
-
)
|
|
407
|
-
kwargs['_check_input_type'] = kwargs.get(
|
|
408
|
-
'_check_input_type', True
|
|
409
|
-
)
|
|
410
|
-
kwargs['_check_return_type'] = kwargs.get(
|
|
411
|
-
'_check_return_type', True
|
|
412
|
-
)
|
|
413
|
-
kwargs['_host_index'] = kwargs.get('_host_index')
|
|
414
|
-
kwargs['cmd_args'] = \
|
|
415
|
-
cmd_args
|
|
416
|
-
return self.call_with_http_info(**kwargs)
|
|
417
|
-
|
|
418
|
-
self.metastatus = Endpoint(
|
|
419
|
-
settings={
|
|
420
|
-
'response_type': (MetaStatus,),
|
|
421
|
-
'auth': [],
|
|
422
|
-
'endpoint_path': '/metastatus',
|
|
423
|
-
'operation_id': 'metastatus',
|
|
424
|
-
'http_method': 'GET',
|
|
425
|
-
'servers': None,
|
|
426
|
-
},
|
|
427
|
-
params_map={
|
|
428
|
-
'all': [
|
|
429
|
-
'cmd_args',
|
|
430
|
-
],
|
|
431
|
-
'required': [
|
|
432
|
-
'cmd_args',
|
|
433
|
-
],
|
|
434
|
-
'nullable': [
|
|
435
|
-
],
|
|
436
|
-
'enum': [
|
|
437
|
-
],
|
|
438
|
-
'validation': [
|
|
439
|
-
]
|
|
440
|
-
},
|
|
441
|
-
root_map={
|
|
442
|
-
'validations': {
|
|
443
|
-
},
|
|
444
|
-
'allowed_values': {
|
|
445
|
-
},
|
|
446
|
-
'openapi_types': {
|
|
447
|
-
'cmd_args':
|
|
448
|
-
([str],),
|
|
449
|
-
},
|
|
450
|
-
'attribute_map': {
|
|
451
|
-
'cmd_args': 'cmd_args',
|
|
452
|
-
},
|
|
453
|
-
'location_map': {
|
|
454
|
-
'cmd_args': 'query',
|
|
455
|
-
},
|
|
456
|
-
'collection_format_map': {
|
|
457
|
-
'cmd_args': 'csv',
|
|
458
|
-
}
|
|
459
|
-
},
|
|
460
|
-
headers_map={
|
|
461
|
-
'accept': [
|
|
462
|
-
'application/json'
|
|
463
|
-
],
|
|
464
|
-
'content_type': [],
|
|
465
|
-
},
|
|
466
|
-
api_client=api_client,
|
|
467
|
-
callable=__metastatus
|
|
468
|
-
)
|
|
469
|
-
|
|
470
352
|
def __show_version(
|
|
471
353
|
self,
|
|
472
354
|
**kwargs
|
|
@@ -49,7 +49,6 @@ from paasta_tools.paastaapi.model.kubernetes_pod_event import KubernetesPodEvent
|
|
|
49
49
|
from paasta_tools.paastaapi.model.kubernetes_pod_v2 import KubernetesPodV2
|
|
50
50
|
from paasta_tools.paastaapi.model.kubernetes_replica_set import KubernetesReplicaSet
|
|
51
51
|
from paasta_tools.paastaapi.model.kubernetes_version import KubernetesVersion
|
|
52
|
-
from paasta_tools.paastaapi.model.meta_status import MetaStatus
|
|
53
52
|
from paasta_tools.paastaapi.model.resource import Resource
|
|
54
53
|
from paasta_tools.paastaapi.model.resource_item import ResourceItem
|
|
55
54
|
from paasta_tools.paastaapi.model.resource_value import ResourceValue
|