diff --git a/scheduler/main.py b/scheduler/main.py index ed0c78e31..e7bd9d964 100644 --- a/scheduler/main.py +++ b/scheduler/main.py @@ -96,7 +96,7 @@ def gc(): headers={'Accept': 'application/json'}) assert result.status_code == 200 builds = json.loads(result.content) - running = {build['build_num'] for build in builds if build['status'] == 'running'} + running = {build['build_num'] for build in builds if not build.get('stop_time')} logging.info("Runnings builds: %r", running) # Stop VMs for builds that aren't running diff --git a/socks/main.go b/socks/main.go index 171b5fc13..6cde493d3 100644 --- a/socks/main.go +++ b/socks/main.go @@ -13,13 +13,18 @@ import ( "github.com/weaveworks/weave/common/mflagext" ) +type pacFileParameters struct { + HostMatch string + Aliases map[string]string +} + const ( pacfile = ` function FindProxyForURL(url, host) { - if(shExpMatch(host, "*.weave.local")) { + if(shExpMatch(host, "{{.HostMatch}}")) { return "SOCKS5 localhost:8000"; } - {{range $key, $value := .}} + {{range $key, $value := .Aliases}} if (host == "{{$key}}") { return "SOCKS5 localhost:8000"; } @@ -30,8 +35,12 @@ function FindProxyForURL(url, host) { ) func main() { - var as []string + var ( + as []string + hostMatch string + ) mflagext.ListVar(&as, []string{"a", "-alias"}, []string{}, "Specify hostname aliases in the form alias:hostname. Can be repeated.") + mflag.StringVar(&hostMatch, []string{"h", "-host-match"}, "*.weave.local", "Specify main host shExpMatch expression in pacfile") mflag.Parse() var aliases = map[string]string{} @@ -50,7 +59,7 @@ func main() { t := template.Must(template.New("pacfile").Parse(pacfile)) http.HandleFunc("/proxy.pac", func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/x-ns-proxy-autoconfig") - t.Execute(w, aliases) + t.Execute(w, pacFileParameters{hostMatch, aliases}) }) if err := http.ListenAndServe(":8080", nil); err != nil { diff --git a/test b/test index 9250f6280..73a5952ef 100755 --- a/test +++ b/test @@ -50,7 +50,8 @@ TESTDIRS=$(find . -type f -name '*_test.go' | xargs -n1 dirname | grep -vE '^\./ # If running on circle, use the scheduler to work out what tests to run on what shard if [ -n "$CIRCLECI" -a -z "$NO_SCHEDULER" -a -x "$DIR/sched" ]; then - TESTDIRS=$(echo $TESTDIRS | "$DIR/sched" sched units-$CIRCLE_BUILD_NUM $CIRCLE_NODE_TOTAL $CIRCLE_NODE_INDEX) + PREFIX=$(go list -e ./ | sed -e 's/\//-/g') + TESTDIRS=$(echo $TESTDIRS | "$DIR/sched" sched $PREFIX-$CIRCLE_BUILD_NUM $CIRCLE_NODE_TOTAL $CIRCLE_NODE_INDEX) echo $TESTDIRS fi