paasta-tools 1.21.2__tar.gz → 1.21.4__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.21.4/PKG-INFO +73 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/README.md +1 -1
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/__init__.py +1 -1
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/authentication.py +6 -39
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/logs.py +7 -7
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/schemas/service_schema.json +4 -1
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/utils.py +5 -1
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/generate_deployments_for_service.py +4 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/setup_istio_mesh.py +1 -1
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/smartstack_tools.py +2 -2
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/spark_tools.py +2 -2
- paasta_tools-1.21.4/paasta_tools.egg-info/PKG-INFO +73 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools.egg-info/SOURCES.txt +52 -1
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools.egg-info/entry_points.txt +0 -1
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools.egg-info/requires.txt +1 -1
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/requirements-minimal.txt +1 -1
- paasta_tools-1.21.4/tests/test_adhoc_tools.py +66 -0
- paasta_tools-1.21.4/tests/test_apply_external_resources.py +159 -0
- paasta_tools-1.21.4/tests/test_async_utils.py +201 -0
- paasta_tools-1.21.4/tests/test_bounce_lib.py +524 -0
- paasta_tools-1.21.4/tests/test_check_flink_services_health.py +287 -0
- paasta_tools-1.21.4/tests/test_check_kubernetes_services_replication.py +151 -0
- paasta_tools-1.21.4/tests/test_check_oom_events.py +194 -0
- paasta_tools-1.21.4/tests/test_check_service_replication_tools.py +112 -0
- paasta_tools-1.21.4/tests/test_check_spark_jobs.py +208 -0
- paasta_tools-1.21.4/tests/test_cleanup_kubernetes_jobs.py +626 -0
- paasta_tools-1.21.4/tests/test_config_utils.py +385 -0
- paasta_tools-1.21.4/tests/test_delete_kubernetes_deployments.py +59 -0
- paasta_tools-1.21.4/tests/test_deployment_utils.py +75 -0
- paasta_tools-1.21.4/tests/test_docker_wrapper.py +489 -0
- paasta_tools-1.21.4/tests/test_drain_lib.py +203 -0
- paasta_tools-1.21.4/tests/test_eks_tools.py +79 -0
- paasta_tools-1.21.4/tests/test_envoy_tools.py +441 -0
- paasta_tools-1.21.4/tests/test_firewall.py +657 -0
- paasta_tools-1.21.4/tests/test_firewall_logging.py +149 -0
- paasta_tools-1.21.4/tests/test_firewall_update.py +294 -0
- paasta_tools-1.21.4/tests/test_flink_tools.py +246 -0
- paasta_tools-1.21.4/tests/test_flinkeks_tools.py +43 -0
- paasta_tools-1.21.4/tests/test_generate_authenticating_services.py +115 -0
- paasta_tools-1.21.4/tests/test_generate_deployments_for_service.py +240 -0
- paasta_tools-1.21.4/tests/test_generate_services_file.py +102 -0
- paasta_tools-1.21.4/tests/test_generate_services_yaml.py +58 -0
- paasta_tools-1.21.4/tests/test_hacheck.py +61 -0
- paasta_tools-1.21.4/tests/test_iptables.py +357 -0
- paasta_tools-1.21.4/tests/test_kubernetes_tools.py +5253 -0
- paasta_tools-1.21.4/tests/test_list_kubernetes_service_instances.py +61 -0
- paasta_tools-1.21.4/tests/test_long_running_service_tools.py +473 -0
- paasta_tools-1.21.4/tests/test_mac_address.py +82 -0
- paasta_tools-1.21.4/tests/test_mesos_tools.py +945 -0
- paasta_tools-1.21.4/tests/test_monitoring_tools.py +1217 -0
- paasta_tools-1.21.4/tests/test_nrtsearchserviceseks_tools.py +50 -0
- paasta_tools-1.21.4/tests/test_oom_logger.py +527 -0
- paasta_tools-1.21.4/tests/test_paasta_execute_docker_command.py +220 -0
- paasta_tools-1.21.4/tests/test_paasta_service_config_loader.py +336 -0
- paasta_tools-1.21.4/tests/test_puppet_service_tools.py +42 -0
- paasta_tools-1.21.4/tests/test_remote_git.py +146 -0
- paasta_tools-1.21.4/tests/test_secret_tools.py +342 -0
- paasta_tools-1.21.4/tests/test_setup_istio_mesh.py +97 -0
- paasta_tools-1.21.4/tests/test_setup_kubernetes_cr.py +501 -0
- paasta_tools-1.21.4/tests/test_setup_kubernetes_job.py +928 -0
- paasta_tools-1.21.4/tests/test_setup_prometheus_adapter_config.py +367 -0
- paasta_tools-1.21.4/tests/test_slack.py +39 -0
- paasta_tools-1.21.4/tests/test_smartstack_tools.py +437 -0
- paasta_tools-1.21.4/tests/test_spark_tools.py +181 -0
- paasta_tools-1.21.4/tests/test_task_processing.py +21 -0
- paasta_tools-1.21.4/tests/test_tron_tools.py +2211 -0
- paasta_tools-1.21.4/tests/test_utils.py +2969 -0
- paasta-tools-1.21.2/PKG-INFO +0 -12
- paasta-tools-1.21.2/paasta_tools.egg-info/PKG-INFO +0 -12
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/LICENSE +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/MANIFEST.in +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/k8s_itests/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/k8s_itests/test_autoscaling.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/k8s_itests/utils.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/adhoc_tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/api/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/api/api.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/api/api_docs/swagger.json +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/api/client.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/api/settings.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/api/tweens/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/api/tweens/auth.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/api/tweens/profiling.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/api/tweens/request_logger.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/api/views/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/api/views/autoscaler.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/api/views/exception.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/api/views/flink.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/api/views/instance.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/api/views/pause_autoscaler.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/api/views/remote_run.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/api/views/resources.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/api/views/service.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/api/views/version.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/apply_external_resources.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/async_utils.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/autoscaling/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/autoscaling/forecasting.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/autoscaling/utils.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/bounce_lib.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/broadcast_log_to_services.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cassandracluster_tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/check_autoscaler_max_instances.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/check_flink_services_health.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/check_kubernetes_api.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/check_kubernetes_services_replication.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/check_oom_events.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/check_services_replication_tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/check_spark_jobs.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cleanup_tron_namespaces.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cli.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/autoscale.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/check.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/cook_image.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/get_image_version.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/info.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/itest.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/list.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/list_clusters.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/list_namespaces.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/local_run.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/mesh_status.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/remote_run.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/rollback.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/secret.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/security_check.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/spark_run.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/status.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/validate.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/fsm/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/fsm/autosuggest.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/fsm/template/README.md +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/kubernetes-PROD.yaml +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/fsm_cmd.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/schemas/eks_schema.json +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/schemas/kubernetes_schema.json +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/cli/schemas/tron_schema.json +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/clusterman.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/config_utils.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/check_orphans.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/create_paasta_playground.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/habitat_fixer.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/ide_helper.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/kill_bad_containers.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/mock_patch_checker.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/paasta_update_soa_memcpu.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/render_template.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/service_shard_remove.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/service_shard_update.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/shared_ip_check.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/delete_kubernetes_deployments.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/deployment_utils.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/docker_wrapper.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/docker_wrapper_imports.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/drain_lib.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/dump_locally_running_services.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/eks_tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/envoy_tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/firewall.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/firewall_logging.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/firewall_update.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/flink_tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/flinkeks_tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/frameworks/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/frameworks/adhoc_scheduler.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/frameworks/constraints.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/frameworks/native_scheduler.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/frameworks/native_service_config.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/frameworks/task_store.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/generate_all_deployments +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/generate_authenticating_services.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/generate_services_file.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/generate_services_yaml.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/hacheck.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/instance/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/instance/kubernetes.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/iptables.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/kafkacluster_tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/kubernetes/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/kubernetes/application/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/kubernetes/application/controller_wrappers.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/kubernetes/application/tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/kubernetes/bin/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/kubernetes/bin/paasta_cleanup_remote_run_resources.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/kubernetes/remote_run.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/kubernetes_tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/list_kubernetes_service_instances.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/list_tron_namespaces.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/long_running_service_tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/mac_address.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/marathon_dashboard.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/mesos/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/mesos/cfg.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/mesos/cluster.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/mesos/exceptions.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/mesos/framework.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/mesos/log.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/mesos/master.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/mesos/mesos_file.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/mesos/parallel.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/mesos/slave.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/mesos/task.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/mesos/util.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/mesos/zookeeper.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/mesos_maintenance.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/mesos_tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/metrics/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/metrics/metastatus_lib.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/metrics/metrics_lib.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/monitoring/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/monitoring_tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/monkrelaycluster_tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/nrtsearchservice_tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/oom_logger.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paasta_deploy_tron_jobs +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paasta_execute_docker_command.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paasta_native_serviceinit.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paasta_service_config_loader.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/api/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/api/default_api.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/api/remote_run_api.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/api/resources_api.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/api/service_api.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/api_client.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/apis/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/configuration.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/exceptions.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/flink_config.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/flink_job.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/inline_object.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/instance_status.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/remote_run_outcome.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/remote_run_start.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/remote_run_stop.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/remote_run_token.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/resource.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/resource_item.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/resource_value.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/model_utils.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/models/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/paastaapi/rest.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/prune_completed_pods.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/puppet_service_tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/py.typed +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/remote_git.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/run-paasta-api-playground.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/secret_providers/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/secret_providers/vault.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/secret_tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/setup_kubernetes_cr.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/setup_kubernetes_crd.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/setup_kubernetes_job.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/setup_tron_namespace.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/slack.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/tron/__init__.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/tron/client.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/tron/tron_command_context.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/tron/tron_timeutils.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/tron_tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/utils.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/yaml_tools.py +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools.egg-info/dependency_links.txt +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools.egg-info/top_level.txt +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/pyproject.toml +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/setup.cfg +0 -0
- {paasta-tools-1.21.2 → paasta_tools-1.21.4}/setup.py +0 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: paasta-tools
|
|
3
|
+
Version: 1.21.4
|
|
4
|
+
Summary: Tools for Yelps SOA infrastructure
|
|
5
|
+
Author: Compute Infrastructure @ Yelp
|
|
6
|
+
Author-email: compute-infra@yelp.com
|
|
7
|
+
Provides: paasta_tools
|
|
8
|
+
Requires-Python: >=3.8.0
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Requires-Dist: a-sync>=0.5.0
|
|
11
|
+
Requires-Dist: aiohttp>=3.5.4
|
|
12
|
+
Requires-Dist: argcomplete>=0.8.1
|
|
13
|
+
Requires-Dist: boto
|
|
14
|
+
Requires-Dist: boto3
|
|
15
|
+
Requires-Dist: boto3-type-annotations
|
|
16
|
+
Requires-Dist: botocore
|
|
17
|
+
Requires-Dist: bravado>=10.2.0
|
|
18
|
+
Requires-Dist: certifi
|
|
19
|
+
Requires-Dist: choice>=0.1
|
|
20
|
+
Requires-Dist: containerd
|
|
21
|
+
Requires-Dist: cookiecutter>=1.4.0
|
|
22
|
+
Requires-Dist: croniter
|
|
23
|
+
Requires-Dist: docker
|
|
24
|
+
Requires-Dist: dulwich>=0.17.3
|
|
25
|
+
Requires-Dist: ephemeral-port-reserve>=1.0.1
|
|
26
|
+
Requires-Dist: graphviz
|
|
27
|
+
Requires-Dist: grpcio
|
|
28
|
+
Requires-Dist: gunicorn
|
|
29
|
+
Requires-Dist: humanfriendly
|
|
30
|
+
Requires-Dist: humanize>=0.5.1
|
|
31
|
+
Requires-Dist: inotify>=0.2.8
|
|
32
|
+
Requires-Dist: ipaddress>=1.0.22
|
|
33
|
+
Requires-Dist: isodate>=0.7.2
|
|
34
|
+
Requires-Dist: jsonschema[format]
|
|
35
|
+
Requires-Dist: kazoo>=2.0.0
|
|
36
|
+
Requires-Dist: kubernetes<26.0.0,>=18.20.0
|
|
37
|
+
Requires-Dist: ldap3
|
|
38
|
+
Requires-Dist: manhole
|
|
39
|
+
Requires-Dist: mypy-extensions>=0.3.0
|
|
40
|
+
Requires-Dist: nats-py
|
|
41
|
+
Requires-Dist: nulltype
|
|
42
|
+
Requires-Dist: objgraph
|
|
43
|
+
Requires-Dist: ply
|
|
44
|
+
Requires-Dist: progressbar2>=3.10.0
|
|
45
|
+
Requires-Dist: prometheus-client
|
|
46
|
+
Requires-Dist: pymesos>=0.2.0
|
|
47
|
+
Requires-Dist: pyramid>=1.8
|
|
48
|
+
Requires-Dist: pyramid-swagger>=2.3.0
|
|
49
|
+
Requires-Dist: pysensu-yelp>=0.3.4
|
|
50
|
+
Requires-Dist: PyStaticConfiguration
|
|
51
|
+
Requires-Dist: python-crontab>=2.1.1
|
|
52
|
+
Requires-Dist: python-dateutil>=2.4.0
|
|
53
|
+
Requires-Dist: python-iptables
|
|
54
|
+
Requires-Dist: pytimeparse>=1.1.0
|
|
55
|
+
Requires-Dist: pytz>=2014.10
|
|
56
|
+
Requires-Dist: requests<2.32.0,>=2.18.4
|
|
57
|
+
Requires-Dist: requests-cache>=0.4.10
|
|
58
|
+
Requires-Dist: retry
|
|
59
|
+
Requires-Dist: ruamel.yaml
|
|
60
|
+
Requires-Dist: sensu-plugin
|
|
61
|
+
Requires-Dist: service-configuration-lib>=3.3.2
|
|
62
|
+
Requires-Dist: signalfx
|
|
63
|
+
Requires-Dist: slackclient>=1.2.1
|
|
64
|
+
Requires-Dist: sticht>=1.1.0
|
|
65
|
+
Requires-Dist: syslogmp
|
|
66
|
+
Requires-Dist: task-processing
|
|
67
|
+
Requires-Dist: thriftpy2
|
|
68
|
+
Requires-Dist: transitions
|
|
69
|
+
Requires-Dist: typing-extensions
|
|
70
|
+
Requires-Dist: tzlocal
|
|
71
|
+
Requires-Dist: urllib3
|
|
72
|
+
Requires-Dist: utaw>=0.2.0
|
|
73
|
+
Requires-Dist: wsgicors
|
|
@@ -44,7 +44,7 @@ is a heavily customised version of SmartStack and Envoy, allows many systems at
|
|
|
44
44
|
to communicate with PaaSTA services and each other.
|
|
45
45
|
|
|
46
46
|
On the other hand, requiring lots of components, means lots of infrastructure to
|
|
47
|
-
setup before PaaSTA can work effectively!
|
|
47
|
+
setup before PaaSTA can work effectively! Realistically, running PaaSTA outside of Yelp
|
|
48
48
|
would not be sensible, because in addition to the integrations mentioned above we also
|
|
49
49
|
have strong opinions encoded in other tooling that you would need to replicate. Nevertheless,
|
|
50
50
|
we code PaaSTA in the open because we think it is useful to share our approach and hope that
|
|
@@ -12,63 +12,30 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
from functools import lru_cache
|
|
15
|
-
|
|
16
|
-
from botocore.credentials import InstanceMetadataFetcher
|
|
17
|
-
from botocore.credentials import InstanceMetadataProvider
|
|
15
|
+
from typing import Optional
|
|
18
16
|
|
|
19
17
|
from paasta_tools.utils import load_system_paasta_config
|
|
20
18
|
|
|
21
19
|
|
|
22
20
|
try:
|
|
23
|
-
from vault_tools.
|
|
24
|
-
from vault_tools.paasta_secret import get_vault_url
|
|
25
|
-
from vault_tools.paasta_secret import get_vault_ca
|
|
21
|
+
from vault_tools.oidc import get_instance_oidc_identity_token
|
|
26
22
|
from okta_auth import get_and_cache_jwt_default
|
|
27
23
|
except ImportError:
|
|
28
24
|
|
|
29
|
-
def
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
def get_vault_url(ecosystem: str) -> str:
|
|
33
|
-
return ""
|
|
34
|
-
|
|
35
|
-
def get_vault_ca(ecosystem: str) -> str:
|
|
25
|
+
def get_instance_oidc_identity_token(
|
|
26
|
+
role: str, ecosystem: Optional[str] = None
|
|
27
|
+
) -> str:
|
|
36
28
|
return ""
|
|
37
29
|
|
|
38
30
|
def get_and_cache_jwt_default(client_id: str) -> str:
|
|
39
31
|
return ""
|
|
40
32
|
|
|
41
33
|
|
|
42
|
-
def get_current_ecosystem() -> str:
|
|
43
|
-
"""Get current ecosystem from host configs, defaults to dev if no config is found"""
|
|
44
|
-
try:
|
|
45
|
-
with open("/nail/etc/ecosystem") as f:
|
|
46
|
-
return f.read().strip()
|
|
47
|
-
except IOError:
|
|
48
|
-
pass
|
|
49
|
-
return "devc"
|
|
50
|
-
|
|
51
|
-
|
|
52
34
|
@lru_cache(maxsize=1)
|
|
53
35
|
def get_service_auth_token() -> str:
|
|
54
36
|
"""Uses instance profile to authenticate with Vault and generate token for service authentication"""
|
|
55
|
-
ecosystem = get_current_ecosystem()
|
|
56
|
-
vault_client = get_vault_client(get_vault_url(ecosystem), get_vault_ca(ecosystem))
|
|
57
37
|
vault_role = load_system_paasta_config().get_service_auth_vault_role()
|
|
58
|
-
|
|
59
|
-
iam_role_fetcher=InstanceMetadataFetcher(),
|
|
60
|
-
)
|
|
61
|
-
instance_credentials = metadata_provider.load().get_frozen_credentials()
|
|
62
|
-
vault_client.auth.aws.iam_login(
|
|
63
|
-
instance_credentials.access_key,
|
|
64
|
-
instance_credentials.secret_key,
|
|
65
|
-
instance_credentials.token,
|
|
66
|
-
mount_point="aws-iam",
|
|
67
|
-
role=vault_role,
|
|
68
|
-
use_token=True,
|
|
69
|
-
)
|
|
70
|
-
response = vault_client.secrets.identity.generate_signed_id_token(name=vault_role)
|
|
71
|
-
return response["data"]["token"]
|
|
38
|
+
return get_instance_oidc_identity_token(vault_role)
|
|
72
39
|
|
|
73
40
|
|
|
74
41
|
def get_sso_auth_token(paasta_apis: bool = False) -> str:
|
|
@@ -178,7 +178,7 @@ def add_subparser(subparsers) -> None:
|
|
|
178
178
|
help=(
|
|
179
179
|
"The time to get logs up to. "
|
|
180
180
|
'This can be an ISO-8601 timestamp or a human readable duration parsable by pytimeparse such as "5m", "1d3h" etc. '
|
|
181
|
-
"
|
|
181
|
+
"Incompatible with --line-offset and --lines. "
|
|
182
182
|
"Defaults to now."
|
|
183
183
|
),
|
|
184
184
|
)
|
|
@@ -190,7 +190,7 @@ def add_subparser(subparsers) -> None:
|
|
|
190
190
|
help=(
|
|
191
191
|
"The number of lines to retrieve from the specified offset. "
|
|
192
192
|
'May optionally be prefixed with a "+" or "-" to specify which direction from the offset. '
|
|
193
|
-
"
|
|
193
|
+
"Incompatible with --from and --to. "
|
|
194
194
|
'Defaults to "-100".'
|
|
195
195
|
),
|
|
196
196
|
type=int,
|
|
@@ -204,7 +204,7 @@ def add_subparser(subparsers) -> None:
|
|
|
204
204
|
"For example, --line-offset 1 would be the first line. "
|
|
205
205
|
"Paired with --lines, --line-offset +100 would give you the first 100 lines of logs. "
|
|
206
206
|
"Some logging backends may not support line offsetting by time or lines. "
|
|
207
|
-
"
|
|
207
|
+
"Incompatible with --from and --to. "
|
|
208
208
|
"Defaults to the latest line's offset."
|
|
209
209
|
),
|
|
210
210
|
type=int,
|
|
@@ -804,7 +804,7 @@ class ScribeLogReader(LogReader):
|
|
|
804
804
|
# sure all the tailers are still running.
|
|
805
805
|
running_processes = [tt.is_alive() for tt in spawned_processes]
|
|
806
806
|
if not running_processes or not all(running_processes):
|
|
807
|
-
log.
|
|
807
|
+
log.warning(
|
|
808
808
|
"Quitting because I expected %d log tailers to be alive but only %d are alive."
|
|
809
809
|
% (len(spawned_processes), running_processes.count(True))
|
|
810
810
|
)
|
|
@@ -819,12 +819,12 @@ class ScribeLogReader(LogReader):
|
|
|
819
819
|
# This extra nested catch is because it's pretty easy to be in
|
|
820
820
|
# the above try block when the user hits Ctrl-C which otherwise
|
|
821
821
|
# dumps a stack trace.
|
|
822
|
-
log.
|
|
822
|
+
log.warning("Terminating.")
|
|
823
823
|
break
|
|
824
824
|
except KeyboardInterrupt:
|
|
825
825
|
# Die peacefully rather than printing N threads worth of stack
|
|
826
826
|
# traces.
|
|
827
|
-
log.
|
|
827
|
+
log.warning("Terminating.")
|
|
828
828
|
break
|
|
829
829
|
|
|
830
830
|
def print_logs_by_time(
|
|
@@ -1019,7 +1019,7 @@ class ScribeLogReader(LogReader):
|
|
|
1019
1019
|
tzinfo=pytz.utc
|
|
1020
1020
|
) - datetime.timedelta(hours=4)
|
|
1021
1021
|
if end_time > warning_end_time:
|
|
1022
|
-
log.
|
|
1022
|
+
log.warning("Recent logs might be incomplete. Consider tailing instead.")
|
|
1023
1023
|
|
|
1024
1024
|
# scribereader, sadly, is not based on UTC timestamps. It uses YST
|
|
1025
1025
|
# dates instead.
|
|
@@ -10,7 +10,10 @@
|
|
|
10
10
|
"type": "string"
|
|
11
11
|
},
|
|
12
12
|
"git_url": {
|
|
13
|
-
"type":
|
|
13
|
+
"type": [
|
|
14
|
+
"string",
|
|
15
|
+
"null"
|
|
16
|
+
],
|
|
14
17
|
"pattern": "^git@github.yelpcorp.com:[-a-z]+/[-_a-z0-9]+(\\.git)?$",
|
|
15
18
|
"$comment": "this is obviously very tied to how we name repos at Yelp"
|
|
16
19
|
},
|
|
@@ -1097,7 +1097,9 @@ def get_paasta_oapi_client_with_auth(
|
|
|
1097
1097
|
)
|
|
1098
1098
|
|
|
1099
1099
|
|
|
1100
|
-
def run_interactive_cli(
|
|
1100
|
+
def run_interactive_cli(
|
|
1101
|
+
cmd: str, shell: str = "/bin/bash", term: str = "xterm-256color"
|
|
1102
|
+
):
|
|
1101
1103
|
"""Runs interactive command in a pseudo terminal, handling terminal size management
|
|
1102
1104
|
|
|
1103
1105
|
:param str cmd: shell command
|
|
@@ -1105,6 +1107,8 @@ def run_interactive_cli(cmd: str, shell: str = "bash", term: str = "xterm-256col
|
|
|
1105
1107
|
:param str term: terminal type
|
|
1106
1108
|
"""
|
|
1107
1109
|
cols, rows = shutil.get_terminal_size()
|
|
1110
|
+
if not os.path.isabs(shell):
|
|
1111
|
+
shell = shutil.which(shell)
|
|
1108
1112
|
wrapped_cmd = (
|
|
1109
1113
|
f"export SHELL={shell};"
|
|
1110
1114
|
f"export TERM={term};"
|
{paasta-tools-1.21.2 → paasta_tools-1.21.4}/paasta_tools/generate_deployments_for_service.py
RENAMED
|
@@ -130,6 +130,10 @@ def get_deploy_group_mappings(
|
|
|
130
130
|
v2_mappings: V2_Mappings = {"deployments": {}, "controls": {}}
|
|
131
131
|
git_url = get_git_url(service=service, soa_dir=soa_dir)
|
|
132
132
|
|
|
133
|
+
# Some pseudo-services like toolboxes explicitly have no git_url, and therefore no deployments
|
|
134
|
+
if git_url is None:
|
|
135
|
+
return mappings, v2_mappings
|
|
136
|
+
|
|
133
137
|
# Most of the time of this function is in two parts:
|
|
134
138
|
# 1. getting remote refs from git. (Mostly IO, just waiting for git to get back to us.)
|
|
135
139
|
# 2. loading instance configs. (Mostly CPU, copy.deepcopying yaml over and over again)
|
|
@@ -103,7 +103,7 @@ def load_smartstack_namespaces(soa_dir: str = DEFAULT_SOA_DIR) -> Mapping:
|
|
|
103
103
|
for (ns, details) in svc_namespaces.items():
|
|
104
104
|
namespaces[f"{dir}.{ns}"] = details
|
|
105
105
|
except Exception as err:
|
|
106
|
-
log.
|
|
106
|
+
log.warning(f"Failed to load namespaces for {dir}: {err}")
|
|
107
107
|
|
|
108
108
|
return namespaces
|
|
109
109
|
|
|
@@ -473,7 +473,7 @@ def get_service_discovery_providers(
|
|
|
473
473
|
elif name == "envoy":
|
|
474
474
|
providers.append(EnvoyServiceDiscovery(system_paasta_config))
|
|
475
475
|
else:
|
|
476
|
-
log.
|
|
476
|
+
log.warning("unknown provider")
|
|
477
477
|
return providers
|
|
478
478
|
|
|
479
479
|
|
|
@@ -530,7 +530,7 @@ class BaseReplicationChecker(ReplicationChecker):
|
|
|
530
530
|
)
|
|
531
531
|
break
|
|
532
532
|
except Exception as e:
|
|
533
|
-
log.
|
|
533
|
+
log.warning(
|
|
534
534
|
f"Error while getting replication info for {location} from {hostname}: {e}"
|
|
535
535
|
)
|
|
536
536
|
if hostname == hostnames[-1]:
|
|
@@ -133,7 +133,7 @@ def setup_volume_mounts(volumes: List[DockerVolume]) -> Dict[str, str]:
|
|
|
133
133
|
)
|
|
134
134
|
|
|
135
135
|
if host_path in seen_paths:
|
|
136
|
-
log.
|
|
136
|
+
log.warning(f"Skipping {host_path} - already added a binding for it.")
|
|
137
137
|
continue
|
|
138
138
|
seen_paths.add(host_path)
|
|
139
139
|
|
|
@@ -209,7 +209,7 @@ def auto_add_timeout_for_spark_job(
|
|
|
209
209
|
f"'timeout' could not be added to spark command: '{cmd}' due to error '{e}'. "
|
|
210
210
|
"Please report to #spark."
|
|
211
211
|
)
|
|
212
|
-
log.
|
|
212
|
+
log.warning(err_msg)
|
|
213
213
|
print(PaastaColors.red(err_msg))
|
|
214
214
|
return cmd
|
|
215
215
|
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: paasta-tools
|
|
3
|
+
Version: 1.21.4
|
|
4
|
+
Summary: Tools for Yelps SOA infrastructure
|
|
5
|
+
Author: Compute Infrastructure @ Yelp
|
|
6
|
+
Author-email: compute-infra@yelp.com
|
|
7
|
+
Provides: paasta_tools
|
|
8
|
+
Requires-Python: >=3.8.0
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Requires-Dist: a-sync>=0.5.0
|
|
11
|
+
Requires-Dist: aiohttp>=3.5.4
|
|
12
|
+
Requires-Dist: argcomplete>=0.8.1
|
|
13
|
+
Requires-Dist: boto
|
|
14
|
+
Requires-Dist: boto3
|
|
15
|
+
Requires-Dist: boto3-type-annotations
|
|
16
|
+
Requires-Dist: botocore
|
|
17
|
+
Requires-Dist: bravado>=10.2.0
|
|
18
|
+
Requires-Dist: certifi
|
|
19
|
+
Requires-Dist: choice>=0.1
|
|
20
|
+
Requires-Dist: containerd
|
|
21
|
+
Requires-Dist: cookiecutter>=1.4.0
|
|
22
|
+
Requires-Dist: croniter
|
|
23
|
+
Requires-Dist: docker
|
|
24
|
+
Requires-Dist: dulwich>=0.17.3
|
|
25
|
+
Requires-Dist: ephemeral-port-reserve>=1.0.1
|
|
26
|
+
Requires-Dist: graphviz
|
|
27
|
+
Requires-Dist: grpcio
|
|
28
|
+
Requires-Dist: gunicorn
|
|
29
|
+
Requires-Dist: humanfriendly
|
|
30
|
+
Requires-Dist: humanize>=0.5.1
|
|
31
|
+
Requires-Dist: inotify>=0.2.8
|
|
32
|
+
Requires-Dist: ipaddress>=1.0.22
|
|
33
|
+
Requires-Dist: isodate>=0.7.2
|
|
34
|
+
Requires-Dist: jsonschema[format]
|
|
35
|
+
Requires-Dist: kazoo>=2.0.0
|
|
36
|
+
Requires-Dist: kubernetes<26.0.0,>=18.20.0
|
|
37
|
+
Requires-Dist: ldap3
|
|
38
|
+
Requires-Dist: manhole
|
|
39
|
+
Requires-Dist: mypy-extensions>=0.3.0
|
|
40
|
+
Requires-Dist: nats-py
|
|
41
|
+
Requires-Dist: nulltype
|
|
42
|
+
Requires-Dist: objgraph
|
|
43
|
+
Requires-Dist: ply
|
|
44
|
+
Requires-Dist: progressbar2>=3.10.0
|
|
45
|
+
Requires-Dist: prometheus-client
|
|
46
|
+
Requires-Dist: pymesos>=0.2.0
|
|
47
|
+
Requires-Dist: pyramid>=1.8
|
|
48
|
+
Requires-Dist: pyramid-swagger>=2.3.0
|
|
49
|
+
Requires-Dist: pysensu-yelp>=0.3.4
|
|
50
|
+
Requires-Dist: PyStaticConfiguration
|
|
51
|
+
Requires-Dist: python-crontab>=2.1.1
|
|
52
|
+
Requires-Dist: python-dateutil>=2.4.0
|
|
53
|
+
Requires-Dist: python-iptables
|
|
54
|
+
Requires-Dist: pytimeparse>=1.1.0
|
|
55
|
+
Requires-Dist: pytz>=2014.10
|
|
56
|
+
Requires-Dist: requests<2.32.0,>=2.18.4
|
|
57
|
+
Requires-Dist: requests-cache>=0.4.10
|
|
58
|
+
Requires-Dist: retry
|
|
59
|
+
Requires-Dist: ruamel.yaml
|
|
60
|
+
Requires-Dist: sensu-plugin
|
|
61
|
+
Requires-Dist: service-configuration-lib>=3.3.2
|
|
62
|
+
Requires-Dist: signalfx
|
|
63
|
+
Requires-Dist: slackclient>=1.2.1
|
|
64
|
+
Requires-Dist: sticht>=1.1.0
|
|
65
|
+
Requires-Dist: syslogmp
|
|
66
|
+
Requires-Dist: task-processing
|
|
67
|
+
Requires-Dist: thriftpy2
|
|
68
|
+
Requires-Dist: transitions
|
|
69
|
+
Requires-Dist: typing-extensions
|
|
70
|
+
Requires-Dist: tzlocal
|
|
71
|
+
Requires-Dist: urllib3
|
|
72
|
+
Requires-Dist: utaw>=0.2.0
|
|
73
|
+
Requires-Dist: wsgicors
|
|
@@ -299,4 +299,55 @@ paasta_tools/secret_providers/vault.py
|
|
|
299
299
|
paasta_tools/tron/__init__.py
|
|
300
300
|
paasta_tools/tron/client.py
|
|
301
301
|
paasta_tools/tron/tron_command_context.py
|
|
302
|
-
paasta_tools/tron/tron_timeutils.py
|
|
302
|
+
paasta_tools/tron/tron_timeutils.py
|
|
303
|
+
tests/test_adhoc_tools.py
|
|
304
|
+
tests/test_apply_external_resources.py
|
|
305
|
+
tests/test_async_utils.py
|
|
306
|
+
tests/test_bounce_lib.py
|
|
307
|
+
tests/test_check_flink_services_health.py
|
|
308
|
+
tests/test_check_kubernetes_services_replication.py
|
|
309
|
+
tests/test_check_oom_events.py
|
|
310
|
+
tests/test_check_service_replication_tools.py
|
|
311
|
+
tests/test_check_spark_jobs.py
|
|
312
|
+
tests/test_cleanup_kubernetes_jobs.py
|
|
313
|
+
tests/test_config_utils.py
|
|
314
|
+
tests/test_delete_kubernetes_deployments.py
|
|
315
|
+
tests/test_deployment_utils.py
|
|
316
|
+
tests/test_docker_wrapper.py
|
|
317
|
+
tests/test_drain_lib.py
|
|
318
|
+
tests/test_eks_tools.py
|
|
319
|
+
tests/test_envoy_tools.py
|
|
320
|
+
tests/test_firewall.py
|
|
321
|
+
tests/test_firewall_logging.py
|
|
322
|
+
tests/test_firewall_update.py
|
|
323
|
+
tests/test_flink_tools.py
|
|
324
|
+
tests/test_flinkeks_tools.py
|
|
325
|
+
tests/test_generate_authenticating_services.py
|
|
326
|
+
tests/test_generate_deployments_for_service.py
|
|
327
|
+
tests/test_generate_services_file.py
|
|
328
|
+
tests/test_generate_services_yaml.py
|
|
329
|
+
tests/test_hacheck.py
|
|
330
|
+
tests/test_iptables.py
|
|
331
|
+
tests/test_kubernetes_tools.py
|
|
332
|
+
tests/test_list_kubernetes_service_instances.py
|
|
333
|
+
tests/test_long_running_service_tools.py
|
|
334
|
+
tests/test_mac_address.py
|
|
335
|
+
tests/test_mesos_tools.py
|
|
336
|
+
tests/test_monitoring_tools.py
|
|
337
|
+
tests/test_nrtsearchserviceseks_tools.py
|
|
338
|
+
tests/test_oom_logger.py
|
|
339
|
+
tests/test_paasta_execute_docker_command.py
|
|
340
|
+
tests/test_paasta_service_config_loader.py
|
|
341
|
+
tests/test_puppet_service_tools.py
|
|
342
|
+
tests/test_remote_git.py
|
|
343
|
+
tests/test_secret_tools.py
|
|
344
|
+
tests/test_setup_istio_mesh.py
|
|
345
|
+
tests/test_setup_kubernetes_cr.py
|
|
346
|
+
tests/test_setup_kubernetes_job.py
|
|
347
|
+
tests/test_setup_prometheus_adapter_config.py
|
|
348
|
+
tests/test_slack.py
|
|
349
|
+
tests/test_smartstack_tools.py
|
|
350
|
+
tests/test_spark_tools.py
|
|
351
|
+
tests/test_task_processing.py
|
|
352
|
+
tests/test_tron_tools.py
|
|
353
|
+
tests/test_utils.py
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Copyright 2015-2016 Yelp Inc.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
import mock
|
|
15
|
+
|
|
16
|
+
from paasta_tools import adhoc_tools
|
|
17
|
+
from paasta_tools.utils import DeploymentsJsonV2
|
|
18
|
+
from paasta_tools.utils import NoConfigurationForServiceError
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def test_get_default_interactive_config():
|
|
22
|
+
with mock.patch(
|
|
23
|
+
"paasta_tools.adhoc_tools.load_adhoc_job_config", autospec=True
|
|
24
|
+
) as mock_load_adhoc_job_config:
|
|
25
|
+
mock_load_adhoc_job_config.return_value = adhoc_tools.AdhocJobConfig(
|
|
26
|
+
service="fake_service",
|
|
27
|
+
instance="interactive",
|
|
28
|
+
cluster="fake_cluster",
|
|
29
|
+
config_dict={},
|
|
30
|
+
branch_dict={"deploy_group": "fake_deploy_group"},
|
|
31
|
+
)
|
|
32
|
+
result = adhoc_tools.get_default_interactive_config(
|
|
33
|
+
"fake_service", "fake_cluster", "/fake/soa/dir", load_deployments=False
|
|
34
|
+
)
|
|
35
|
+
assert result.get_cpus() == 4
|
|
36
|
+
assert result.get_mem() == 10240
|
|
37
|
+
assert result.get_disk() == 1024
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def test_get_default_interactive_config_reads_from_tty():
|
|
41
|
+
with mock.patch(
|
|
42
|
+
"paasta_tools.adhoc_tools.prompt_pick_one", autospec=True
|
|
43
|
+
) as mock_prompt_pick_one, mock.patch(
|
|
44
|
+
"paasta_tools.adhoc_tools.load_adhoc_job_config", autospec=True
|
|
45
|
+
) as mock_load_adhoc_job_config, mock.patch(
|
|
46
|
+
"paasta_tools.adhoc_tools.load_v2_deployments_json", autospec=True
|
|
47
|
+
) as mock_load_deployments_json:
|
|
48
|
+
mock_prompt_pick_one.return_value = "fake_deploygroup"
|
|
49
|
+
mock_load_adhoc_job_config.side_effect = NoConfigurationForServiceError
|
|
50
|
+
mock_load_deployments_json.return_value = DeploymentsJsonV2(
|
|
51
|
+
service="fake-service",
|
|
52
|
+
config_dict={
|
|
53
|
+
"deployments": {
|
|
54
|
+
"fake_deploygroup": {
|
|
55
|
+
"docker_image": mock.sentinel.docker_image,
|
|
56
|
+
"git_sha": mock.sentinel.git_sha,
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"controls": {},
|
|
60
|
+
},
|
|
61
|
+
)
|
|
62
|
+
result = adhoc_tools.get_default_interactive_config(
|
|
63
|
+
"fake_service", "fake_cluster", "/fake/soa/dir", load_deployments=True
|
|
64
|
+
)
|
|
65
|
+
assert result.get_deploy_group() == "fake_deploygroup"
|
|
66
|
+
assert result.get_docker_image() == mock.sentinel.docker_image
|