paasta-tools 1.12.1__tar.gz → 1.13.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {paasta-tools-1.12.1/paasta_tools.egg-info → paasta-tools-1.13.0}/PKG-INFO +1 -1
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/__init__.py +1 -1
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/api.py +19 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/client.py +8 -1
- paasta-tools-1.13.0/paasta_tools/api/tweens/__init__.py +6 -0
- paasta-tools-1.13.0/paasta_tools/api/tweens/auth.py +125 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0/paasta_tools.egg-info}/PKG-INFO +1 -1
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools.egg-info/SOURCES.txt +1 -0
- paasta-tools-1.12.1/paasta_tools/tron/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/MANIFEST.in +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/README.md +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/k8s_itests/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/k8s_itests/test_autoscaling.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/k8s_itests/utils.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/adhoc_tools.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/api_docs/swagger.json +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/settings.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/tweens/profiling.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/tweens/request_logger.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/views/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/views/autoscaler.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/views/exception.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/views/flink.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/views/instance.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/views/pause_autoscaler.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/views/resources.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/views/service.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/views/version.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/apply_external_resources.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/async_utils.py +0 -0
- {paasta-tools-1.12.1/paasta_tools/api/tweens → paasta-tools-1.13.0/paasta_tools/autoscaling}/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/autoscaling/forecasting.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/autoscaling/utils.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/bounce_lib.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/broadcast_log_to_services.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cassandracluster_tools.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/check_autoscaler_max_instances.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/check_flink_services_health.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/check_kubernetes_api.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/check_kubernetes_services_replication.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/check_oom_events.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/check_services_replication_tools.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/check_spark_jobs.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cleanup_tron_namespaces.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cli.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/autoscale.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/check.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/cook_image.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/get_image_version.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/info.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/itest.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/list.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/list_clusters.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/list_namespaces.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/local_run.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/logs.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/mesh_status.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/remote_run.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/rollback.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/secret.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/security_check.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/spark_run.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/status.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/validate.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/fsm/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/fsm/autosuggest.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/fsm/template/README.md +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/kubernetes-PROD.yaml +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/fsm_cmd.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/eks_schema.json +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/kubernetes_schema.json +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/service_schema.json +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/tron_schema.json +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/utils.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/clusterman.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/config_utils.py +0 -0
- {paasta-tools-1.12.1/paasta_tools/autoscaling → paasta-tools-1.13.0/paasta_tools/contrib}/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/check_orphans.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/create_paasta_playground.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/habitat_fixer.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/ide_helper.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/kill_bad_containers.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/mock_patch_checker.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/paasta_update_soa_memcpu.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/render_template.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/service_shard_remove.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/service_shard_update.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/shared_ip_check.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/delete_kubernetes_deployments.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/deployment_utils.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/docker_wrapper.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/docker_wrapper_imports.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/drain_lib.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/dump_locally_running_services.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/eks_tools.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/envoy_tools.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/firewall.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/firewall_logging.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/firewall_update.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/flink_tools.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/flinkeks_tools.py +0 -0
- {paasta-tools-1.12.1/paasta_tools/contrib → paasta-tools-1.13.0/paasta_tools/frameworks}/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/frameworks/adhoc_scheduler.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/frameworks/constraints.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/frameworks/native_scheduler.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/frameworks/native_service_config.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/frameworks/task_store.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/generate_all_deployments +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/generate_authenticating_services.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/generate_deployments_for_service.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/generate_services_file.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/generate_services_yaml.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/hacheck.py +0 -0
- {paasta-tools-1.12.1/paasta_tools/frameworks → paasta-tools-1.13.0/paasta_tools/instance}/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/instance/kubernetes.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/iptables.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/kafkacluster_tools.py +0 -0
- {paasta-tools-1.12.1/paasta_tools/instance → paasta-tools-1.13.0/paasta_tools/kubernetes}/__init__.py +0 -0
- {paasta-tools-1.12.1/paasta_tools/kubernetes → paasta-tools-1.13.0/paasta_tools/kubernetes/application}/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/kubernetes/application/controller_wrappers.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/kubernetes/application/tools.py +0 -0
- {paasta-tools-1.12.1/paasta_tools/kubernetes/application → paasta-tools-1.13.0/paasta_tools/kubernetes/bin}/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/kubernetes_tools.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/list_kubernetes_service_instances.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/list_tron_namespaces.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/log_task_lifecycle_events.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/long_running_service_tools.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mac_address.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/marathon_dashboard.py +0 -0
- {paasta-tools-1.12.1/paasta_tools/kubernetes/bin → paasta-tools-1.13.0/paasta_tools/mesos}/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/cfg.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/cluster.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/exceptions.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/framework.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/log.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/master.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/mesos_file.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/parallel.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/slave.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/task.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/util.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/zookeeper.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos_maintenance.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos_tools.py +0 -0
- {paasta-tools-1.12.1/paasta_tools/mesos → paasta-tools-1.13.0/paasta_tools/metrics}/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/metrics/metastatus_lib.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/metrics/metrics_lib.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/monitoring/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/monitoring_tools.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/monkrelaycluster_tools.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/nrtsearchservice_tools.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/oom_logger.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paasta_deploy_tron_jobs +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paasta_execute_docker_command.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paasta_native_serviceinit.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paasta_remote_run.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paasta_service_config_loader.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/api/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/api/default_api.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/api/resources_api.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/api/service_api.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/api_client.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/apis/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/configuration.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/exceptions.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/flink_config.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/flink_job.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/inline_object.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_status.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/resource.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/resource_item.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/resource_value.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model_utils.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/models/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/rest.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/prune_completed_pods.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/puppet_service_tools.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/py.typed +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/remote_git.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/run-paasta-api-playground.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/secret_providers/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/secret_providers/vault.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/secret_tools.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/setup_istio_mesh.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/setup_kubernetes_cr.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/setup_kubernetes_crd.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/setup_kubernetes_job.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/setup_tron_namespace.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/slack.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/smartstack_tools.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/spark_tools.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
- {paasta-tools-1.12.1/paasta_tools/metrics → paasta-tools-1.13.0/paasta_tools/tron}/__init__.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/tron/client.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/tron/tron_command_context.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/tron/tron_timeutils.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/tron_tools.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/utils.py +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools.egg-info/dependency_links.txt +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools.egg-info/entry_points.txt +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools.egg-info/requires.txt +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools.egg-info/top_level.txt +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/pyproject.toml +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/requirements-minimal.txt +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/setup.cfg +0 -0
- {paasta-tools-1.12.1 → paasta-tools-1.13.0}/setup.py +0 -0
|
@@ -31,6 +31,7 @@ from wsgicors import CORS
|
|
|
31
31
|
import paasta_tools.api
|
|
32
32
|
from paasta_tools import kubernetes_tools
|
|
33
33
|
from paasta_tools.api import settings
|
|
34
|
+
from paasta_tools.api.tweens import auth
|
|
34
35
|
from paasta_tools.api.tweens import profiling
|
|
35
36
|
from paasta_tools.api.tweens import request_logger
|
|
36
37
|
from paasta_tools.utils import load_system_paasta_config
|
|
@@ -79,6 +80,18 @@ def parse_paasta_api_args():
|
|
|
79
80
|
default=4,
|
|
80
81
|
help="Number of gunicorn workers to run",
|
|
81
82
|
)
|
|
83
|
+
parser.add_argument(
|
|
84
|
+
"--auth-endpoint",
|
|
85
|
+
type=str,
|
|
86
|
+
default="",
|
|
87
|
+
help="External API authorization endpoint",
|
|
88
|
+
)
|
|
89
|
+
parser.add_argument(
|
|
90
|
+
"--auth-enforce",
|
|
91
|
+
action="store_true",
|
|
92
|
+
default=False,
|
|
93
|
+
help="Enforce API authorization",
|
|
94
|
+
)
|
|
82
95
|
args = parser.parse_args()
|
|
83
96
|
return args
|
|
84
97
|
|
|
@@ -105,6 +118,7 @@ def make_app(global_config=None):
|
|
|
105
118
|
|
|
106
119
|
config.include("pyramid_swagger")
|
|
107
120
|
config.include(request_logger)
|
|
121
|
+
config.include(auth)
|
|
108
122
|
|
|
109
123
|
config.add_route(
|
|
110
124
|
"flink.service.instance.jobs", "/v1/flink/{service}/{instance}/jobs"
|
|
@@ -257,6 +271,11 @@ def main(argv=None):
|
|
|
257
271
|
if args.cluster:
|
|
258
272
|
os.environ["PAASTA_API_CLUSTER"] = args.cluster
|
|
259
273
|
|
|
274
|
+
if args.auth_endpoint:
|
|
275
|
+
os.environ["PAASTA_API_AUTH_ENDPOINT"] = args.auth_endpoint
|
|
276
|
+
if args.auth_enforce:
|
|
277
|
+
os.environ["PAASTA_API_AUTH_ENFORCE"] = "1"
|
|
278
|
+
|
|
260
279
|
gunicorn_args = [
|
|
261
280
|
"gunicorn",
|
|
262
281
|
"-w",
|
|
@@ -48,6 +48,7 @@ def get_paasta_oapi_client_by_url(
|
|
|
48
48
|
cert_file: Optional[str] = None,
|
|
49
49
|
key_file: Optional[str] = None,
|
|
50
50
|
ssl_ca_cert: Optional[str] = None,
|
|
51
|
+
auth_token: str = "",
|
|
51
52
|
) -> PaastaOApiClient:
|
|
52
53
|
server_variables = dict(scheme=parsed_url.scheme, host=parsed_url.netloc)
|
|
53
54
|
config = paastaapi.Configuration(
|
|
@@ -63,6 +64,9 @@ def get_paasta_oapi_client_by_url(
|
|
|
63
64
|
client.rest_client.pool_manager.connection_pool_kw[
|
|
64
65
|
"timeout"
|
|
65
66
|
] = load_system_paasta_config().get_api_client_timeout()
|
|
67
|
+
# SEC-19555: support auth in PaaSTA APIs
|
|
68
|
+
if auth_token:
|
|
69
|
+
client.set_default_header("Authorization", f"Bearer {auth_token}")
|
|
66
70
|
return PaastaOApiClient(
|
|
67
71
|
autoscaler=paastaapis.AutoscalerApi(client),
|
|
68
72
|
default=paastaapis.DefaultApi(client),
|
|
@@ -79,6 +83,7 @@ def get_paasta_oapi_client(
|
|
|
79
83
|
cluster: str = None,
|
|
80
84
|
system_paasta_config: SystemPaastaConfig = None,
|
|
81
85
|
http_res: bool = False,
|
|
86
|
+
auth_token: str = "",
|
|
82
87
|
) -> Optional[PaastaOApiClient]:
|
|
83
88
|
if not system_paasta_config:
|
|
84
89
|
system_paasta_config = load_system_paasta_config()
|
|
@@ -94,4 +99,6 @@ def get_paasta_oapi_client(
|
|
|
94
99
|
parsed = urlparse(api_endpoints[cluster])
|
|
95
100
|
cert_file = key_file = ssl_ca_cert = None
|
|
96
101
|
|
|
97
|
-
return get_paasta_oapi_client_by_url(
|
|
102
|
+
return get_paasta_oapi_client_by_url(
|
|
103
|
+
parsed, cert_file, key_file, ssl_ca_cert, auth_token
|
|
104
|
+
)
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# Copyright 2015-2016 Yelp Inc.
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
import json
|
|
16
|
+
import logging
|
|
17
|
+
import os
|
|
18
|
+
from typing import NamedTuple
|
|
19
|
+
from typing import Optional
|
|
20
|
+
|
|
21
|
+
import cachetools.func
|
|
22
|
+
import pyramid
|
|
23
|
+
import requests
|
|
24
|
+
from pyramid.config import Configurator
|
|
25
|
+
from pyramid.httpexceptions import HTTPForbidden
|
|
26
|
+
from pyramid.registry import Registry
|
|
27
|
+
from pyramid.request import Request
|
|
28
|
+
from pyramid.response import Response
|
|
29
|
+
|
|
30
|
+
from paasta_tools.api.tweens import Handler
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
logger = logging.getLogger(__name__)
|
|
34
|
+
AUTH_CACHE_SIZE = 50000
|
|
35
|
+
AUTH_CACHE_TTL = 30 * 60
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class AuthorizationOutcome(NamedTuple):
|
|
39
|
+
authorized: bool
|
|
40
|
+
reason: str
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class AuthTweenFactory:
|
|
44
|
+
def __init__(self, handler: Handler, registry: Registry) -> None:
|
|
45
|
+
self.handler = handler
|
|
46
|
+
self.registry = registry
|
|
47
|
+
self.enforce = bool(os.getenv("PAASTA_API_AUTH_ENFORCE", ""))
|
|
48
|
+
self.endpoint = os.getenv("PAASTA_API_AUTH_ENDPOINT")
|
|
49
|
+
self.session = requests.Session()
|
|
50
|
+
|
|
51
|
+
def __call__(self, request: Request) -> Response:
|
|
52
|
+
"""
|
|
53
|
+
Extracts relevant metadata from request, and checks if it is authorized
|
|
54
|
+
"""
|
|
55
|
+
token = request.headers.get("Authorization", "").strip()
|
|
56
|
+
token = token.split()[-1] if token else "" # removes "Bearer" prefix
|
|
57
|
+
auth_outcome = self.is_request_authorized(
|
|
58
|
+
request.path,
|
|
59
|
+
token,
|
|
60
|
+
request.method,
|
|
61
|
+
request.swagger_data.get("service", None),
|
|
62
|
+
)
|
|
63
|
+
if self.enforce and not auth_outcome.authorized:
|
|
64
|
+
return HTTPForbidden(
|
|
65
|
+
body=json.dumps({"reason": auth_outcome.reason}),
|
|
66
|
+
headers={"X-Auth-Failure-Reason": auth_outcome.reason},
|
|
67
|
+
content_type="application/json",
|
|
68
|
+
charset="utf-8",
|
|
69
|
+
)
|
|
70
|
+
return self.handler(request)
|
|
71
|
+
|
|
72
|
+
@cachetools.func.ttl_cache(maxsize=AUTH_CACHE_SIZE, ttl=AUTH_CACHE_TTL)
|
|
73
|
+
def is_request_authorized(
|
|
74
|
+
self,
|
|
75
|
+
path: str,
|
|
76
|
+
token: str,
|
|
77
|
+
method: str,
|
|
78
|
+
service: Optional[str],
|
|
79
|
+
) -> AuthorizationOutcome:
|
|
80
|
+
"""Check if API request is authorized
|
|
81
|
+
|
|
82
|
+
:param str path: API path
|
|
83
|
+
:param str token: authentication token
|
|
84
|
+
:param str method: http method
|
|
85
|
+
:return: auth outcome
|
|
86
|
+
"""
|
|
87
|
+
try:
|
|
88
|
+
response = self.session.post(
|
|
89
|
+
url=self.endpoint,
|
|
90
|
+
json={
|
|
91
|
+
"input": {
|
|
92
|
+
"path": path,
|
|
93
|
+
"backend": "paasta",
|
|
94
|
+
"token": token,
|
|
95
|
+
"method": method,
|
|
96
|
+
"service": service,
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
timeout=2,
|
|
100
|
+
).json()
|
|
101
|
+
except Exception as e:
|
|
102
|
+
logger.exception(f"Issue communicating with auth endpoint: {e}")
|
|
103
|
+
return AuthorizationOutcome(False, "Auth backend error")
|
|
104
|
+
|
|
105
|
+
auth_result_allowed = response.get("result", {}).get("allowed")
|
|
106
|
+
if auth_result_allowed is None:
|
|
107
|
+
return AuthorizationOutcome(False, "Malformed auth response")
|
|
108
|
+
|
|
109
|
+
if not auth_result_allowed:
|
|
110
|
+
reason = response["result"].get("reason", "Denied")
|
|
111
|
+
return AuthorizationOutcome(False, reason)
|
|
112
|
+
|
|
113
|
+
reason = response["result"].get("reason", "Ok")
|
|
114
|
+
return AuthorizationOutcome(True, reason)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
def includeme(config: Configurator):
|
|
118
|
+
if os.getenv("PAASTA_API_AUTH_ENDPOINT"):
|
|
119
|
+
config.add_tween(
|
|
120
|
+
"paasta_tools.api.tweens.auth.AuthTweenFactory",
|
|
121
|
+
under=(
|
|
122
|
+
pyramid.tweens.INGRESS,
|
|
123
|
+
"paasta_tools.api.tweens.request_logger.request_logger_tween_factory",
|
|
124
|
+
),
|
|
125
|
+
)
|
|
@@ -99,6 +99,7 @@ paasta_tools/api/client.py
|
|
|
99
99
|
paasta_tools/api/settings.py
|
|
100
100
|
paasta_tools/api/api_docs/swagger.json
|
|
101
101
|
paasta_tools/api/tweens/__init__.py
|
|
102
|
+
paasta_tools/api/tweens/auth.py
|
|
102
103
|
paasta_tools/api/tweens/profiling.py
|
|
103
104
|
paasta_tools/api/tweens/request_logger.py
|
|
104
105
|
paasta_tools/api/views/__init__.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/autoscaling/autoscaling_service_lib.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/autoscaling/max_all_k8s_services.py
RENAMED
|
File without changes
|
{paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/autoscaling/pause_service_autoscaler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/check_kubernetes_services_replication.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/check_services_replication_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/pause_service_autoscaler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/autoscaling_schema.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/bounce_log_latency_parser.py
RENAMED
|
File without changes
|
{paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/check_manual_oapi_changes.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/create_paasta_playground.py
RENAMED
|
File without changes
|
{paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/emit_allocated_cpu_metrics.py
RENAMED
|
File without changes
|
{paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/get_running_task_allocation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/paasta_update_soa_memcpu.py
RENAMED
|
File without changes
|
|
File without changes
|
{paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/rightsizer_soaconfigs_update.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.12.1/paasta_tools/contrib → paasta-tools-1.13.0/paasta_tools/frameworks}/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/frameworks/native_service_config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/generate_authenticating_services.py
RENAMED
|
File without changes
|