Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>
cluster.Containers.SLURM.KeepServices = make(map[string]arvados.Service)
}
if cluster.Containers.SLURM.KeepServices["00000-bi6l4-000000000000000"].InternalURLs == nil {
cluster.Containers.SLURM.KeepServices = make(map[string]arvados.Service)
}
if cluster.Containers.SLURM.KeepServices["00000-bi6l4-000000000000000"].InternalURLs == nil {
- cluster.Containers.SLURM.KeepServices["00000-bi6l4-000000000000000"].InternalURLs = map[arvados.URL]arvados.ServiceInstance{}
+ cluster.Containers.SLURM.KeepServices["00000-bi6l4-000000000000000"] = arvados.Service{InternalURLs: make(map[arvados.URL]arvados.ServiceInstance)}
- cluster.Containers.SLURM.KeepServices["00000-bi6l4-000000000000000"].InternalURLs[arvados.URL(p)] = struct{}{}
+ if err == nil {
+ cluster.Containers.SLURM.KeepServices["00000-bi6l4-000000000000000"].InternalURLs[arvados.URL(*p)] = struct{}{}
+ }
SLURM:
PrioritySpread: 0
SbatchArgumentsList: []
SLURM:
PrioritySpread: 0
SbatchArgumentsList: []
+ KeepServices:
+ SAMPLE:
+ InternalURLs: {}
Managed:
# Path to dns server configuration directory
# (e.g. /etc/unbound.d/conf.d). If false, do not write any config
Managed:
# Path to dns server configuration directory
# (e.g. /etc/unbound.d/conf.d). If false, do not write any config
os.Setenv("ARVADOS_API_HOST_INSECURE", "1")
}
ks := ""
os.Setenv("ARVADOS_API_HOST_INSECURE", "1")
}
ks := ""
- if length(disp.cluster.Containers.SLURM.KeepServices) > 0 {
+ if len(disp.cluster.Containers.SLURM.KeepServices) > 0 {
for _, svc := range disp.cluster.Containers.SLURM.KeepServices {
for k, _ := range svc.InternalURLs {
for _, svc := range disp.cluster.Containers.SLURM.KeepServices {
for k, _ := range svc.InternalURLs {
+ u := url.URL(k)
+ ks += u.String()
- os.Setenv("ARVADOS_KEEP_SERVICES", ks)
+ os.Setenv("ARVADOS_KEEP_SERVICES", strings.TrimSuffix(ks, " "))
os.Setenv("ARVADOS_EXTERNAL_CLIENT", "")
} else {
disp.logger.Warnf("Client credentials missing from config, so falling back on environment variables (deprecated).")
os.Setenv("ARVADOS_EXTERNAL_CLIENT", "")
} else {
disp.logger.Warnf("Client credentials missing from config, so falling back on environment variables (deprecated).")
"net/http"
"net/http/httptest"
"os"
"net/http"
"net/http/httptest"
"os"
Client:
APIHost: example.com
AuthToken: abcdefg
Client:
APIHost: example.com
AuthToken: abcdefg
- KeepServices:
- - https://example.com/keep
+ KeepServiceURIs:
+ - https://example.com/keep1
+ - https://example.com/keep2
SbatchArguments: ["--foo", "bar"]
PollPeriod: 12s
PrioritySpread: 42
SbatchArguments: ["--foo", "bar"]
PollPeriod: 12s
PrioritySpread: 42
`)
tmpfile, err := ioutil.TempFile("", "example")
if err != nil {
`)
tmpfile, err := ioutil.TempFile("", "example")
if err != nil {
}
defer os.Remove(tmpfile.Name()) // clean up
if _, err := tmpfile.Write(content); err != nil {
}
defer os.Remove(tmpfile.Name()) // clean up
if _, err := tmpfile.Write(content); err != nil {
}
if err := tmpfile.Close(); err != nil {
}
if err := tmpfile.Close(); err != nil {
}
err = s.disp.configure("crunch-dispatch-slurm", []string{"-config", tmpfile.Name()})
}
err = s.disp.configure("crunch-dispatch-slurm", []string{"-config", tmpfile.Name()})
c.Check(s.disp.cluster.Containers.ReserveExtraRAM, Equals, arvados.ByteSize(12345))
c.Check(s.disp.cluster.Containers.MinRetryPeriod, Equals, arvados.Duration(13*time.Second))
c.Check(s.disp.cluster.API.MaxItemsPerResponse, Equals, 99)
c.Check(s.disp.cluster.Containers.ReserveExtraRAM, Equals, arvados.ByteSize(12345))
c.Check(s.disp.cluster.Containers.MinRetryPeriod, Equals, arvados.Duration(13*time.Second))
c.Check(s.disp.cluster.API.MaxItemsPerResponse, Equals, 99)
- c.Check(s.disp.cluster.Containers.SLURM.KeepServices, DeepEquals, map[string]Service{
- "00000-bi6l4-000000000000000": Service{
- InternalURLs: map[string]struct{}{
- "https://example.com/keep": struct{}{},
+ c.Check(s.disp.cluster.Containers.SLURM.KeepServices, DeepEquals, map[string]arvados.Service{
+ "00000-bi6l4-000000000000000": arvados.Service{
+ InternalURLs: map[arvados.URL]arvados.ServiceInstance{
+ arvados.URL{Scheme: "https", Path: "/keep1", Host: "example.com"}: struct{}{},
+ arvados.URL{Scheme: "https", Path: "/keep2", Host: "example.com"}: struct{}{},
+ ks := os.Getenv("ARVADOS_KEEP_SERVICES")
+ if ks != "https://example.com/keep1 https://example.com/keep2" && ks != "https://example.com/keep2 https://example.com/keep1" {
+ c.Assert(ks, Equals, "https://example.com/keep1 https://example.com/keep2")
+ }