From 4f38ace54ea9349236f1a27e9c4afeb899852705 Mon Sep 17 00:00:00 2001 From: Stephen Salinas Date: Fri, 24 May 2019 14:41:37 -0400 Subject: [PATCH] Alternative way to specify auth for the http api --- .../config/MesosConfiguration.java | 19 +++++++++++++++++++ .../mesos/SingularityMesosSchedulerImpl.java | 7 ++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/SingularityService/src/main/java/com/hubspot/singularity/config/MesosConfiguration.java b/SingularityService/src/main/java/com/hubspot/singularity/config/MesosConfiguration.java index 7a65d705af..2886e8aef8 100644 --- a/SingularityService/src/main/java/com/hubspot/singularity/config/MesosConfiguration.java +++ b/SingularityService/src/main/java/com/hubspot/singularity/config/MesosConfiguration.java @@ -69,6 +69,9 @@ public class MesosConfiguration { private double recheckMetricsLoad1Threshold = 0.75; private double recheckMetricsLoad5Threshold = 0.8; + private Optional mesosUsername; + private Optional mesosPassword; + public int getMaxNumInstancesPerRequest() { return maxNumInstancesPerRequest; } @@ -372,4 +375,20 @@ public double getRecheckMetricsLoad5Threshold() { public void setRecheckMetricsLoad5Threshold(double recheckMetricsLoad5Threshold) { this.recheckMetricsLoad5Threshold = recheckMetricsLoad5Threshold; } + + public Optional getMesosUsername() { + return mesosUsername; + } + + public void setMesosUsername(Optional mesosUsername) { + this.mesosUsername = mesosUsername; + } + + public Optional getMesosPassword() { + return mesosPassword; + } + + public void setMesosPassword(Optional mesosPassword) { + this.mesosPassword = mesosPassword; + } } diff --git a/SingularityService/src/main/java/com/hubspot/singularity/mesos/SingularityMesosSchedulerImpl.java b/SingularityService/src/main/java/com/hubspot/singularity/mesos/SingularityMesosSchedulerImpl.java index 4755ec9bc9..0d1c01893c 100644 --- a/SingularityService/src/main/java/com/hubspot/singularity/mesos/SingularityMesosSchedulerImpl.java +++ b/SingularityService/src/main/java/com/hubspot/singularity/mesos/SingularityMesosSchedulerImpl.java @@ -431,9 +431,14 @@ public void start() throws Exception { } URI masterUri = URI.create(nextMaster); + String userInfo = masterUri.getUserInfo(); + if (userInfo == null && mesosConfiguration.getMesosUsername().isPresent() && mesosConfiguration.getMesosPassword().isPresent()) { + userInfo = String.format("%s:%s", mesosConfiguration.getMesosUsername().get(), mesosConfiguration.getMesosPassword().get()); + } + mesosSchedulerClient.subscribe(new URI( masterUri.getScheme() == null ? "http" : masterUri.getScheme(), - masterUri.getUserInfo(), + userInfo, masterUri.getHost(), masterUri.getPort(), Strings.isNullOrEmpty(masterUri.getPath()) ? "/api/v1/scheduler" : masterUri.getPath(),