Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curii.com>
18 files changed:
clear_temp() {
if [[ -z "$temp" ]]; then
# we did not even get as far as making a temp dir
clear_temp() {
if [[ -z "$temp" ]]; then
# we did not even get as far as making a temp dir
+ if [[ -n "$ignore_sigint" ]]; then
+ echo >&2 "ignored SIGINT"
+ return
+ fi
failures+=("($(basename $0) interrupted)")
exit_cleanly
}
failures+=("($(basename $0) interrupted)")
exit_cleanly
}
setnextcmd
HISTFILE="$WORKSPACE/tmp/.history"
history -r
setnextcmd
HISTFILE="$WORKSPACE/tmp/.history"
history -r
while read -p 'What next? ' -e -i "$nextcmd" nextcmd; do
history -s "$nextcmd"
history -w
while read -p 'What next? ' -e -i "$nextcmd" nextcmd; do
history -s "$nextcmd"
history -w
"git.arvados.org/arvados.git/lib/lsf"
"git.arvados.org/arvados.git/lib/recovercollection"
"git.arvados.org/arvados.git/services/githttpd"
"git.arvados.org/arvados.git/lib/lsf"
"git.arvados.org/arvados.git/lib/recovercollection"
"git.arvados.org/arvados.git/services/githttpd"
+ keepbalance "git.arvados.org/arvados.git/services/keep-balance"
keepweb "git.arvados.org/arvados.git/services/keep-web"
"git.arvados.org/arvados.git/services/keepproxy"
"git.arvados.org/arvados.git/services/keepstore"
keepweb "git.arvados.org/arvados.git/services/keep-web"
"git.arvados.org/arvados.git/services/keepproxy"
"git.arvados.org/arvados.git/services/keepstore"
"git-httpd": githttpd.Command,
"install": install.Command,
"init": install.InitCommand,
"git-httpd": githttpd.Command,
"install": install.Command,
"init": install.InitCommand,
+ "keep-balance": keepbalance.Command,
"keep-web": keepweb.Command,
"keepproxy": keepproxy.Command,
"keepstore": keepstore.Command,
"keep-web": keepweb.Command,
"keepproxy": keepproxy.Command,
"keepstore": keepstore.Command,
format(args.action, actions),
file=sys.stderr)
sys.exit(1)
format(args.action, actions),
file=sys.stderr)
sys.exit(1)
+ # Create a new process group so our child processes don't exit on
+ # ^C in run-tests.sh interactive mode.
+ os.setpgid(0, 0)
if args.action == 'start':
stop(force=('ARVADOS_TEST_API_HOST' not in os.environ))
run(leave_running_atexit=True)
if args.action == 'start':
stop(force=('ARVADOS_TEST_API_HOST' not in os.environ))
run(leave_running_atexit=True)
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
"context"
"flag"
"fmt"
"io"
"context"
"flag"
"fmt"
"io"
"git.arvados.org/arvados.git/lib/cmd"
"git.arvados.org/arvados.git/lib/config"
"git.arvados.org/arvados.git/lib/cmd"
"git.arvados.org/arvados.git/lib/config"
"github.com/jmoiron/sqlx"
_ "github.com/lib/pq"
"github.com/prometheus/client_golang/prometheus"
"github.com/jmoiron/sqlx"
_ "github.com/lib/pq"
"github.com/prometheus/client_golang/prometheus"
- "github.com/sirupsen/logrus"
-func main() {
- os.Exit(runCommand(os.Args[0], os.Args[1:], os.Stdin, os.Stdout, os.Stderr))
-}
-func runCommand(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer) int {
- logger := ctxlog.FromContext(context.Background())
+func (command) RunCommand(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer) int {
var options RunOptions
flags := flag.NewFlagSet(prog, flag.ContinueOnError)
flags.BoolVar(&options.Once, "once", false,
var options RunOptions
flags := flag.NewFlagSet(prog, flag.ContinueOnError)
flags.BoolVar(&options.Once, "once", false,
"send trash requests (delete unreferenced old blocks, and excess replicas of overreplicated blocks)")
flags.BoolVar(&options.CommitConfirmedFields, "commit-confirmed-fields", true,
"update collection fields (replicas_confirmed, storage_classes_confirmed, etc.)")
"send trash requests (delete unreferenced old blocks, and excess replicas of overreplicated blocks)")
flags.BoolVar(&options.CommitConfirmedFields, "commit-confirmed-fields", true,
"update collection fields (replicas_confirmed, storage_classes_confirmed, etc.)")
- dumpFlag := flags.Bool("dump", false, "dump details for each block to stdout")
- pprofAddr := flags.String("pprof", "", "serve Go profile data at `[addr]:port`")
- // "show version" is implemented by service.Command, so we
- // don't need the var here -- we just need the -version flag
+ // These options are implemented by service.Command, so we
+ // don't need the vars here -- we just need the flags
// to pass flags.Parse().
// to pass flags.Parse().
+ flags.Bool("dump", false, "dump details for each block to stdout")
+ flags.String("pprof", "", "serve Go profile data at `[addr]:port`")
flags.Bool("version", false, "Write version information to stdout and exit 0")
flags.Bool("version", false, "Write version information to stdout and exit 0")
- if *pprofAddr != "" {
- go func() {
- logrus.Println(http.ListenAndServe(*pprofAddr, nil))
- }()
- }
-
- loader := config.NewLoader(os.Stdin, logger)
+ logger := ctxlog.New(stderr, "json", "info")
+ loader := config.NewLoader(&bytes.Buffer{}, logger)
munged := loader.MungeLegacyConfigArgs(logger, args, "-legacy-keepbalance-config")
if ok, code := cmd.ParseFlags(flags, prog, munged, "", stderr); !ok {
return code
}
munged := loader.MungeLegacyConfigArgs(logger, args, "-legacy-keepbalance-config")
if ok, code := cmd.ParseFlags(flags, prog, munged, "", stderr); !ok {
return code
}
- if *dumpFlag {
- dumper := logrus.New()
- dumper.Out = os.Stdout
- dumper.Formatter = &logrus.TextFormatter{}
- options.Dumper = dumper
- }
-
// Drop our custom args that would be rejected by the generic
// service.Command
args = nil
// Drop our custom args that would be rejected by the generic
// service.Command
args = nil
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
func (s *mainSuite) TestVersionFlag(c *check.C) {
var stdout, stderr bytes.Buffer
func (s *mainSuite) TestVersionFlag(c *check.C) {
var stdout, stderr bytes.Buffer
- runCommand("keep-balance", []string{"-version"}, nil, &stdout, &stderr)
+ Command.RunCommand("keep-balance", []string{"-version"}, nil, &stdout, &stderr)
c.Check(stderr.String(), check.Equals, "")
c.Log(stdout.String())
c.Check(stdout.String(), check.Matches, `keep-balance.*\(go1.*\)\n`)
c.Check(stderr.String(), check.Equals, "")
c.Log(stdout.String())
c.Check(stdout.String(), check.Matches, `keep-balance.*\(go1.*\)\n`)
c.Assert(err, check.IsNil)
var stdout bytes.Buffer
c.Assert(err, check.IsNil)
var stdout bytes.Buffer
- go runCommand("keep-balance", []string{"-config", "-"}, bytes.NewBuffer(config), &stdout, &stdout)
+ go Command.RunCommand("keep-balance", []string{"-config", "-"}, bytes.NewBuffer(config), &stdout, &stdout)
done := make(chan struct{})
go func() {
defer close(done)
done := make(chan struct{})
go func() {
defer close(done)
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0
//
// SPDX-License-Identifier: AGPL-3.0