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.
Files changed (296) hide show
  1. {paasta-tools-1.12.1/paasta_tools.egg-info → paasta-tools-1.13.0}/PKG-INFO +1 -1
  2. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/__init__.py +1 -1
  3. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/api.py +19 -0
  4. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/client.py +8 -1
  5. paasta-tools-1.13.0/paasta_tools/api/tweens/__init__.py +6 -0
  6. paasta-tools-1.13.0/paasta_tools/api/tweens/auth.py +125 -0
  7. {paasta-tools-1.12.1 → paasta-tools-1.13.0/paasta_tools.egg-info}/PKG-INFO +1 -1
  8. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools.egg-info/SOURCES.txt +1 -0
  9. paasta-tools-1.12.1/paasta_tools/tron/__init__.py +0 -0
  10. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/MANIFEST.in +0 -0
  11. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/README.md +0 -0
  12. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/k8s_itests/__init__.py +0 -0
  13. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/k8s_itests/test_autoscaling.py +0 -0
  14. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/k8s_itests/utils.py +0 -0
  15. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/adhoc_tools.py +0 -0
  16. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/__init__.py +0 -0
  17. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/api_docs/swagger.json +0 -0
  18. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/settings.py +0 -0
  19. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/tweens/profiling.py +0 -0
  20. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/tweens/request_logger.py +0 -0
  21. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/views/__init__.py +0 -0
  22. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/views/autoscaler.py +0 -0
  23. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/views/exception.py +0 -0
  24. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/views/flink.py +0 -0
  25. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/views/instance.py +0 -0
  26. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/views/pause_autoscaler.py +0 -0
  27. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/views/resources.py +0 -0
  28. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/views/service.py +0 -0
  29. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/api/views/version.py +0 -0
  30. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/apply_external_resources.py +0 -0
  31. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/async_utils.py +0 -0
  32. {paasta-tools-1.12.1/paasta_tools/api/tweens → paasta-tools-1.13.0/paasta_tools/autoscaling}/__init__.py +0 -0
  33. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/autoscaling/autoscaling_service_lib.py +0 -0
  34. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/autoscaling/forecasting.py +0 -0
  35. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/autoscaling/max_all_k8s_services.py +0 -0
  36. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/autoscaling/pause_service_autoscaler.py +0 -0
  37. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/autoscaling/utils.py +0 -0
  38. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/bounce_lib.py +0 -0
  39. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/broadcast_log_to_services.py +0 -0
  40. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cassandracluster_tools.py +0 -0
  41. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/check_autoscaler_max_instances.py +0 -0
  42. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/check_cassandracluster_services_replication.py +0 -0
  43. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/check_flink_services_health.py +0 -0
  44. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/check_kubernetes_api.py +0 -0
  45. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/check_kubernetes_services_replication.py +0 -0
  46. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/check_oom_events.py +0 -0
  47. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/check_services_replication_tools.py +0 -0
  48. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/check_spark_jobs.py +0 -0
  49. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cleanup_kubernetes_cr.py +0 -0
  50. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cleanup_kubernetes_crd.py +0 -0
  51. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cleanup_kubernetes_jobs.py +0 -0
  52. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cleanup_tron_namespaces.py +0 -0
  53. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/__init__.py +0 -0
  54. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cli.py +0 -0
  55. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/__init__.py +0 -0
  56. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/autoscale.py +0 -0
  57. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/check.py +0 -0
  58. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/cook_image.py +0 -0
  59. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/get_docker_image.py +0 -0
  60. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/get_image_version.py +0 -0
  61. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/get_latest_deployment.py +0 -0
  62. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/info.py +0 -0
  63. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/itest.py +0 -0
  64. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/list.py +0 -0
  65. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/list_clusters.py +0 -0
  66. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/list_deploy_queue.py +0 -0
  67. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/list_namespaces.py +0 -0
  68. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/local_run.py +0 -0
  69. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/logs.py +0 -0
  70. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/mark_for_deployment.py +0 -0
  71. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/mesh_status.py +0 -0
  72. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/pause_service_autoscaler.py +0 -0
  73. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/push_to_registry.py +0 -0
  74. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/remote_run.py +0 -0
  75. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/rollback.py +0 -0
  76. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/secret.py +0 -0
  77. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/security_check.py +0 -0
  78. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/spark_run.py +0 -0
  79. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/start_stop_restart.py +0 -0
  80. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/status.py +0 -0
  81. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/validate.py +0 -0
  82. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/cmds/wait_for_deployment.py +0 -0
  83. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/fsm/__init__.py +0 -0
  84. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/fsm/autosuggest.py +0 -0
  85. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/fsm/template/README.md +0 -0
  86. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/fsm/template/cookiecutter.json +0 -0
  87. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/kubernetes-PROD.yaml +0 -0
  88. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/monitoring.yaml +0 -0
  89. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/service.yaml +0 -0
  90. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/fsm/template/{{cookiecutter.service}}/smartstack.yaml +0 -0
  91. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/fsm_cmd.py +0 -0
  92. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/paasta_tabcomplete.sh +0 -0
  93. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/adhoc_schema.json +0 -0
  94. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/autoscaling_schema.json +0 -0
  95. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/autotuned_defaults/cassandracluster_schema.json +0 -0
  96. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/autotuned_defaults/kubernetes_schema.json +0 -0
  97. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/deploy_schema.json +0 -0
  98. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/eks_schema.json +0 -0
  99. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/kubernetes_schema.json +0 -0
  100. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/rollback_schema.json +0 -0
  101. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/service_schema.json +0 -0
  102. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/smartstack_schema.json +0 -0
  103. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/schemas/tron_schema.json +0 -0
  104. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/cli/utils.py +0 -0
  105. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/clusterman.py +0 -0
  106. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/config_utils.py +0 -0
  107. {paasta-tools-1.12.1/paasta_tools/autoscaling → paasta-tools-1.13.0/paasta_tools/contrib}/__init__.py +0 -0
  108. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/bounce_log_latency_parser.py +0 -0
  109. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/check_manual_oapi_changes.sh +0 -0
  110. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/check_orphans.py +0 -0
  111. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/create_dynamodb_table.py +0 -0
  112. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/create_paasta_playground.py +0 -0
  113. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/emit_allocated_cpu_metrics.py +0 -0
  114. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/get_running_task_allocation.py +0 -0
  115. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/habitat_fixer.py +0 -0
  116. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/ide_helper.py +0 -0
  117. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/is_pod_healthy_in_proxy.py +0 -0
  118. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/is_pod_healthy_in_smartstack.py +0 -0
  119. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/kill_bad_containers.py +0 -0
  120. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/mass-deploy-tag.sh +0 -0
  121. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/mock_patch_checker.py +0 -0
  122. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/paasta_update_soa_memcpu.py +0 -0
  123. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/render_template.py +0 -0
  124. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/rightsizer_soaconfigs_update.py +0 -0
  125. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/service_shard_remove.py +0 -0
  126. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/service_shard_update.py +0 -0
  127. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/shared_ip_check.py +0 -0
  128. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/contrib/timeouts_metrics_prom.py +0 -0
  129. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/delete_kubernetes_deployments.py +0 -0
  130. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/deployment_utils.py +0 -0
  131. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/docker_wrapper.py +0 -0
  132. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/docker_wrapper_imports.py +0 -0
  133. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/drain_lib.py +0 -0
  134. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/dump_locally_running_services.py +0 -0
  135. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/eks_tools.py +0 -0
  136. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/envoy_tools.py +0 -0
  137. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/firewall.py +0 -0
  138. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/firewall_logging.py +0 -0
  139. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/firewall_update.py +0 -0
  140. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/flink_tools.py +0 -0
  141. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/flinkeks_tools.py +0 -0
  142. {paasta-tools-1.12.1/paasta_tools/contrib → paasta-tools-1.13.0/paasta_tools/frameworks}/__init__.py +0 -0
  143. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/frameworks/adhoc_scheduler.py +0 -0
  144. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/frameworks/constraints.py +0 -0
  145. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/frameworks/native_scheduler.py +0 -0
  146. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/frameworks/native_service_config.py +0 -0
  147. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/frameworks/task_store.py +0 -0
  148. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/generate_all_deployments +0 -0
  149. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/generate_authenticating_services.py +0 -0
  150. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/generate_deployments_for_service.py +0 -0
  151. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/generate_services_file.py +0 -0
  152. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/generate_services_yaml.py +0 -0
  153. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/hacheck.py +0 -0
  154. {paasta-tools-1.12.1/paasta_tools/frameworks → paasta-tools-1.13.0/paasta_tools/instance}/__init__.py +0 -0
  155. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/instance/hpa_metrics_parser.py +0 -0
  156. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/instance/kubernetes.py +0 -0
  157. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/iptables.py +0 -0
  158. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/kafkacluster_tools.py +0 -0
  159. {paasta-tools-1.12.1/paasta_tools/instance → paasta-tools-1.13.0/paasta_tools/kubernetes}/__init__.py +0 -0
  160. {paasta-tools-1.12.1/paasta_tools/kubernetes → paasta-tools-1.13.0/paasta_tools/kubernetes/application}/__init__.py +0 -0
  161. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/kubernetes/application/controller_wrappers.py +0 -0
  162. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/kubernetes/application/tools.py +0 -0
  163. {paasta-tools-1.12.1/paasta_tools/kubernetes/application → paasta-tools-1.13.0/paasta_tools/kubernetes/bin}/__init__.py +0 -0
  164. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/kubernetes/bin/kubernetes_remove_evicted_pods.py +0 -0
  165. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/kubernetes/bin/paasta_cleanup_stale_nodes.py +0 -0
  166. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/kubernetes/bin/paasta_secrets_sync.py +0 -0
  167. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/kubernetes_tools.py +0 -0
  168. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/list_kubernetes_service_instances.py +0 -0
  169. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/list_tron_namespaces.py +0 -0
  170. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/log_task_lifecycle_events.py +0 -0
  171. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/long_running_service_tools.py +0 -0
  172. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mac_address.py +0 -0
  173. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/marathon_dashboard.py +0 -0
  174. {paasta-tools-1.12.1/paasta_tools/kubernetes/bin → paasta-tools-1.13.0/paasta_tools/mesos}/__init__.py +0 -0
  175. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/cfg.py +0 -0
  176. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/cluster.py +0 -0
  177. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/exceptions.py +0 -0
  178. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/framework.py +0 -0
  179. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/log.py +0 -0
  180. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/master.py +0 -0
  181. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/mesos_file.py +0 -0
  182. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/parallel.py +0 -0
  183. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/slave.py +0 -0
  184. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/task.py +0 -0
  185. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/util.py +0 -0
  186. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos/zookeeper.py +0 -0
  187. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos_maintenance.py +0 -0
  188. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/mesos_tools.py +0 -0
  189. {paasta-tools-1.12.1/paasta_tools/mesos → paasta-tools-1.13.0/paasta_tools/metrics}/__init__.py +0 -0
  190. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/metrics/metastatus_lib.py +0 -0
  191. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/metrics/metrics_lib.py +0 -0
  192. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/monitoring/__init__.py +0 -0
  193. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/monitoring/check_k8s_api_performance.py +0 -0
  194. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/monitoring_tools.py +0 -0
  195. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/monkrelaycluster_tools.py +0 -0
  196. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/nrtsearchservice_tools.py +0 -0
  197. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/nrtsearchserviceeks_tools.py +0 -0
  198. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/oom_logger.py +0 -0
  199. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paasta_deploy_tron_jobs +0 -0
  200. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paasta_execute_docker_command.py +0 -0
  201. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paasta_native_serviceinit.py +0 -0
  202. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paasta_remote_run.py +0 -0
  203. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paasta_service_config_loader.py +0 -0
  204. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/__init__.py +0 -0
  205. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/api/__init__.py +0 -0
  206. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/api/autoscaler_api.py +0 -0
  207. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/api/default_api.py +0 -0
  208. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/api/resources_api.py +0 -0
  209. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/api/service_api.py +0 -0
  210. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/api_client.py +0 -0
  211. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/apis/__init__.py +0 -0
  212. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/configuration.py +0 -0
  213. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/exceptions.py +0 -0
  214. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/__init__.py +0 -0
  215. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/adhoc_launch_history.py +0 -0
  216. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/autoscaler_count_msg.py +0 -0
  217. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/deploy_queue.py +0 -0
  218. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/deploy_queue_service_instance.py +0 -0
  219. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/envoy_backend.py +0 -0
  220. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/envoy_location.py +0 -0
  221. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/envoy_status.py +0 -0
  222. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/flink_cluster_overview.py +0 -0
  223. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/flink_config.py +0 -0
  224. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/flink_job.py +0 -0
  225. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/flink_job_details.py +0 -0
  226. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/flink_jobs.py +0 -0
  227. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/float_and_error.py +0 -0
  228. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/hpa_metric.py +0 -0
  229. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/inline_object.py +0 -0
  230. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/inline_response200.py +0 -0
  231. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/inline_response2001.py +0 -0
  232. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_bounce_status.py +0 -0
  233. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_mesh_status.py +0 -0
  234. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_status.py +0 -0
  235. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_status_adhoc.py +0 -0
  236. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_status_cassandracluster.py +0 -0
  237. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_status_flink.py +0 -0
  238. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_status_kafkacluster.py +0 -0
  239. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_status_kubernetes.py +0 -0
  240. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_status_kubernetes_autoscaling_status.py +0 -0
  241. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_status_kubernetes_v2.py +0 -0
  242. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_status_tron.py +0 -0
  243. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/instance_tasks.py +0 -0
  244. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/integer_and_error.py +0 -0
  245. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/kubernetes_container.py +0 -0
  246. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/kubernetes_container_v2.py +0 -0
  247. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/kubernetes_healthcheck.py +0 -0
  248. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/kubernetes_pod.py +0 -0
  249. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/kubernetes_pod_event.py +0 -0
  250. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/kubernetes_pod_v2.py +0 -0
  251. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/kubernetes_replica_set.py +0 -0
  252. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/kubernetes_version.py +0 -0
  253. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/resource.py +0 -0
  254. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/resource_item.py +0 -0
  255. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/resource_value.py +0 -0
  256. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/smartstack_backend.py +0 -0
  257. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/smartstack_location.py +0 -0
  258. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/smartstack_status.py +0 -0
  259. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model/task_tail_lines.py +0 -0
  260. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/model_utils.py +0 -0
  261. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/models/__init__.py +0 -0
  262. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/paastaapi/rest.py +0 -0
  263. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/prune_completed_pods.py +0 -0
  264. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/puppet_service_tools.py +0 -0
  265. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/py.typed +0 -0
  266. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/remote_git.py +0 -0
  267. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/run-paasta-api-in-dev-mode.py +0 -0
  268. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/run-paasta-api-playground.py +0 -0
  269. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/secret_providers/__init__.py +0 -0
  270. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/secret_providers/vault.py +0 -0
  271. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/secret_tools.py +0 -0
  272. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/setup_istio_mesh.py +0 -0
  273. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/setup_kubernetes_cr.py +0 -0
  274. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/setup_kubernetes_crd.py +0 -0
  275. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/setup_kubernetes_internal_crd.py +0 -0
  276. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/setup_kubernetes_job.py +0 -0
  277. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/setup_prometheus_adapter_config.py +0 -0
  278. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/setup_tron_namespace.py +0 -0
  279. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/slack.py +0 -0
  280. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/smartstack_tools.py +0 -0
  281. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/spark_tools.py +0 -0
  282. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/synapse_srv_namespaces_fact.py +0 -0
  283. {paasta-tools-1.12.1/paasta_tools/metrics → paasta-tools-1.13.0/paasta_tools/tron}/__init__.py +0 -0
  284. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/tron/client.py +0 -0
  285. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/tron/tron_command_context.py +0 -0
  286. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/tron/tron_timeutils.py +0 -0
  287. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/tron_tools.py +0 -0
  288. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools/utils.py +0 -0
  289. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools.egg-info/dependency_links.txt +0 -0
  290. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools.egg-info/entry_points.txt +0 -0
  291. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools.egg-info/requires.txt +0 -0
  292. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/paasta_tools.egg-info/top_level.txt +0 -0
  293. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/pyproject.toml +0 -0
  294. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/requirements-minimal.txt +0 -0
  295. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/setup.cfg +0 -0
  296. {paasta-tools-1.12.1 → paasta-tools-1.13.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: paasta-tools
3
- Version: 1.12.1
3
+ Version: 1.13.0
4
4
  Summary: Tools for Yelps SOA infrastructure
5
5
  Home-page: UNKNOWN
6
6
  Author: Compute Infrastructure @ Yelp
@@ -17,4 +17,4 @@
17
17
  # setup phase, the dependencies may not exist on disk yet.
18
18
  #
19
19
  # Don't bump version manually. See `make release` docs in ./Makefile
20
- __version__ = "1.12.1"
20
+ __version__ = "1.13.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(parsed, cert_file, key_file, ssl_ca_cert)
102
+ return get_paasta_oapi_client_by_url(
103
+ parsed, cert_file, key_file, ssl_ca_cert, auth_token
104
+ )
@@ -0,0 +1,6 @@
1
+ from typing import Callable
2
+
3
+ from pyramid.request import Request
4
+ from pyramid.response import Response
5
+
6
+ Handler = Callable[[Request], Response]
@@ -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
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: paasta-tools
3
- Version: 1.12.1
3
+ Version: 1.13.0
4
4
  Summary: Tools for Yelps SOA infrastructure
5
5
  Home-page: UNKNOWN
6
6
  Author: Compute Infrastructure @ Yelp
@@ -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