arvados.git
8 years ago8464: Add stdout redirection in crunch2.
radhika [Thu, 5 May 2016 21:51:47 +0000 (17:51 -0400)]
8464: Add stdout redirection in crunch2.

8 years agoRelax arvados-cli gem dependency version constraints in order to be
Tom Clegg [Tue, 3 May 2016 20:42:00 +0000 (16:42 -0400)]
Relax arvados-cli gem dependency version constraints in order to be
compatible with the latest arvados gem.

No issue #

8 years agoMerge branch '9120-node-manager-search-ex-methods-wip'
Brett Smith [Tue, 3 May 2016 19:22:33 +0000 (15:22 -0400)]
Merge branch '9120-node-manager-search-ex-methods-wip'

Closes #9120, #9124.

8 years ago9120: search_for_now falls back to real driver methods when needed.
Brett Smith [Mon, 2 May 2016 21:06:09 +0000 (17:06 -0400)]
9120: search_for_now falls back to real driver methods when needed.

This fixes a regression introduced in 32eb510594.

8 years ago9120: Add tests for BaseComputeNodeDriver's search_for methods.
Brett Smith [Mon, 2 May 2016 20:59:21 +0000 (16:59 -0400)]
9120: Add tests for BaseComputeNodeDriver's search_for methods.

8 years agoMerge branch '9118-arv-put-nameerror-fix-wip'
Brett Smith [Tue, 3 May 2016 19:22:00 +0000 (15:22 -0400)]
Merge branch '9118-arv-put-nameerror-fix-wip'

Closes #9118, #9127.

8 years ago9118: Fix arv-put crash when finishing without output.
Brett Smith [Mon, 2 May 2016 21:47:45 +0000 (17:47 -0400)]
9118: Fix arv-put crash when finishing without output.

8 years agoMerge branch '9119-oj-load-strict'
Tom Clegg [Tue, 3 May 2016 16:48:01 +0000 (12:48 -0400)]
Merge branch '9119-oj-load-strict'

refs #9119

8 years ago9119: Use Oj strict mode for decoding JSON.
Peter Amstutz [Tue, 3 May 2016 15:04:24 +0000 (11:04 -0400)]
9119: Use Oj strict mode for decoding JSON.

8 years agoUpdate version pin for cwltool fpm packages. refs #8653
Peter Amstutz [Tue, 3 May 2016 13:23:34 +0000 (09:23 -0400)]
Update version pin for cwltool fpm packages. refs #8653

8 years agoMerge branch '8998-optimize-decode-www-form-component' closes #8998
Peter Amstutz [Tue, 3 May 2016 13:20:46 +0000 (09:20 -0400)]
Merge branch '8998-optimize-decode-www-form-component' closes #8998

8 years agoFix inverted test for pypi/gem upload logic. Make upload more verbose.
Ward Vandewege [Mon, 2 May 2016 21:29:30 +0000 (17:29 -0400)]
Fix inverted test for pypi/gem upload logic. Make upload more verbose.

No issue #

8 years agoUse "grep -xF ... >/dev/null" instead of "grep -qxF ..."
Tom Clegg [Mon, 2 May 2016 21:13:35 +0000 (17:13 -0400)]
Use "grep -xF ... >/dev/null" instead of "grep -qxF ..."

1. -q "Exit immediately with zero status if any match is found, even if
an error was detected." --grep(1)

Depending on buffering and timing, if grep exits early (before
consuming stdin) "docker images" can receive SIGPIPE and exit
non-zero. We use "set -o pipefail" here, so this fails the "docker
load" phase and then the whole job.

2. "Portable shell scripts should avoid both -q and -s and should
redirect standard and error output to /dev/null instead." --grep(1)

No issue #

8 years agoMerge branch '8653-cwl-to-template'
Tom Clegg [Mon, 2 May 2016 20:27:16 +0000 (16:27 -0400)]
Merge branch '8653-cwl-to-template'

refs #8653

8 years ago8653: Add arvados-cwl-runner --create-template flag
Tom Clegg [Wed, 27 Apr 2016 18:58:11 +0000 (14:58 -0400)]
8653: Add arvados-cwl-runner --create-template flag

8 years ago8653: DRY testing code.
Tom Clegg [Thu, 21 Apr 2016 19:15:56 +0000 (15:15 -0400)]
8653: DRY testing code.

8 years ago8653: Turn off debug messages / verbose logging in test suite.
Tom Clegg [Thu, 21 Apr 2016 14:55:18 +0000 (10:55 -0400)]
8653: Turn off debug messages / verbose logging in test suite.

8 years ago8653: Fix whitespace.
Tom Clegg [Thu, 21 Apr 2016 14:54:11 +0000 (10:54 -0400)]
8653: Fix whitespace.

8 years ago8998: Monkey patch URI.decode_www_form_component to validate efficiently.
Peter Amstutz [Fri, 29 Apr 2016 13:11:15 +0000 (09:11 -0400)]
8998: Monkey patch URI.decode_www_form_component to validate efficiently.

Rack uses the standard library method URI.decode_www_form_component to process
parameters.  This method first validates the string with a regular expression,
and then decodes it using another regular expression.  Ruby 2.1 and earlier has
a bug is in the validation; the regular expression that is used generates many
backtracking points, which results in exponential memory growth when matching
large strings.  The fix is to monkey-patch the version of the method from Ruby
2.2 which checks that the string is not invalid instead of checking it is
valid.

8 years agoFix arvbox only run pipelines with crunch-dispatch0 to avoid submitting duplicated...
Peter Amstutz [Mon, 2 May 2016 20:01:26 +0000 (16:01 -0400)]
Fix arvbox only run pipelines with crunch-dispatch0 to avoid submitting duplicated jobs. no issue #

8 years agorefs #8937
radhika [Mon, 2 May 2016 18:36:02 +0000 (14:36 -0400)]
refs #8937
Merge branch '8937-arv-put-cache-check'

8 years ago8937: refactor cache check logic into a check_cache method and update all references.
radhika [Wed, 27 Apr 2016 15:56:01 +0000 (11:56 -0400)]
8937: refactor cache check logic into a check_cache method and update all references.

8 years ago8937: invalidate cache and create new one if there are errors on head request during...
radhika [Mon, 25 Apr 2016 13:36:19 +0000 (09:36 -0400)]
8937: invalidate cache and create new one if there are errors on head request during ResumeCache.

8 years ago8937: updated arvados_testutil.py to skip setting resp_body to writer when it is...
radhika [Thu, 21 Apr 2016 18:22:46 +0000 (14:22 -0400)]
8937: updated arvados_testutil.py to skip setting resp_body to writer when it is a boolean.

8 years ago8937: Return True for Head requests in KeepClients. The tests in KeepClientRetryHeadT...
radhika [Thu, 21 Apr 2016 14:13:15 +0000 (10:13 -0400)]
8937: Return True for Head requests in KeepClients. The tests in KeepClientRetryHeadTestCase are failing due to this and need to be worked on.

8 years ago8937: test updates
radhika [Wed, 20 Apr 2016 22:28:19 +0000 (18:28 -0400)]
8937: test updates

8 years ago8937: bypass cache for all head requests.
radhika [Wed, 20 Apr 2016 21:28:31 +0000 (17:28 -0400)]
8937: bypass cache for all head requests.

8 years ago8937: add head request to python keep client.
radhika [Wed, 20 Apr 2016 19:54:03 +0000 (15:54 -0400)]
8937: add head request to python keep client.

8 years agoRead resource object from a file, e.g., arv collection create --collection /tmp/foo...
Tom Clegg [Mon, 2 May 2016 18:22:47 +0000 (14:22 -0400)]
Read resource object from a file, e.g., arv collection create --collection /tmp/foo.json

No issue #

8 years agoLog a banner at the top of each test.
Tom Clegg [Sat, 30 Apr 2016 17:18:42 +0000 (13:18 -0400)]
Log a banner at the top of each test.

No issue #

8 years agoMerge branch '8963-arv-copy-link-properties-wip'
Brett Smith [Fri, 29 Apr 2016 21:28:15 +0000 (17:28 -0400)]
Merge branch '8963-arv-copy-link-properties-wip'

Closes #8963, #9110.

8 years ago8963: arv-keepdocker copies metadata links' properties.
Brett Smith [Thu, 28 Apr 2016 21:32:38 +0000 (17:32 -0400)]
8963: arv-keepdocker copies metadata links' properties.

8 years agoMerge branch '9066-max-requests'
Tom Clegg [Fri, 29 Apr 2016 17:00:11 +0000 (13:00 -0400)]
Merge branch '9066-max-requests'

refs #9066

8 years ago9066: Add keepstore -max-requests argument.
Tom Clegg [Thu, 28 Apr 2016 13:11:33 +0000 (09:11 -0400)]
9066: Add keepstore -max-requests argument.

8 years agoMerge branch '9017-skip-slow-tests'
Tom Clegg [Tue, 26 Apr 2016 22:07:07 +0000 (18:07 -0400)]
Merge branch '9017-skip-slow-tests'

refs #9017

8 years ago9017: Add run-tests.sh --short flag to skip (some) slow tests.
Tom Clegg [Tue, 26 Apr 2016 22:06:53 +0000 (18:06 -0400)]
9017: Add run-tests.sh --short flag to skip (some) slow tests.

8 years agoMerge branch '8931-event-thread-catch-exceptions' closes #8931
Peter Amstutz [Tue, 26 Apr 2016 17:00:25 +0000 (13:00 -0400)]
Merge branch '8931-event-thread-catch-exceptions' closes #8931

8 years ago8931: Fix indentation mistakes. Fix tests.
Peter Amstutz [Tue, 26 Apr 2016 16:01:45 +0000 (12:01 -0400)]
8931: Fix indentation mistakes.  Fix tests.

8 years agoFix centos6 packages build.
Ward Vandewege [Tue, 26 Apr 2016 15:58:53 +0000 (11:58 -0400)]
Fix centos6 packages build.

No issue #

8 years ago8931: Use RetryLoop around websocket reconnect. Create a new _EventClient
Peter Amstutz [Tue, 26 Apr 2016 13:51:53 +0000 (09:51 -0400)]
8931: Use RetryLoop around websocket reconnect.  Create a new _EventClient
object on each loop iteration.  Handle unexpected exceptions in PollClient
retry loop.

8 years agocloses #8936
radhika [Mon, 25 Apr 2016 21:31:12 +0000 (17:31 -0400)]
closes #8936
Merge branch '8936-ttl-in-signing-key'

8 years agoMerge branch 'master' into 8936-ttl-in-signing-key
radhika [Mon, 25 Apr 2016 21:30:50 +0000 (17:30 -0400)]
Merge branch 'master' into 8936-ttl-in-signing-key

8 years agoMerge branch '8831-crunchrunner-doc'
Tom Clegg [Mon, 25 Apr 2016 21:15:43 +0000 (17:15 -0400)]
Merge branch '8831-crunchrunner-doc'

closes #8831

8 years ago8831: Add crunchrunner to shell node dependencies.
Tom Clegg [Mon, 25 Apr 2016 21:15:08 +0000 (17:15 -0400)]
8831: Add crunchrunner to shell node dependencies.

8 years ago8831: Add crunchrunner to compute node dependencies.
Tom Clegg [Mon, 18 Apr 2016 21:41:50 +0000 (17:41 -0400)]
8831: Add crunchrunner to compute node dependencies.

8 years ago8936: add test to verify blobSignatureTTL from discovery when it is not provided.
radhika [Mon, 25 Apr 2016 19:38:24 +0000 (15:38 -0400)]
8936: add test to verify blobSignatureTTL from discovery when it is not provided.

8 years agoFix building packages: work around pip having a mind of its own with
Ward Vandewege [Mon, 25 Apr 2016 15:38:52 +0000 (11:38 -0400)]
Fix building packages: work around pip having a mind of its own with
regard to downloading zip or tar archives.

This requires the addition of the 'unzip' tool to the docker images used
to build packages, so they will need to be rebuilt.

No issue #

8 years ago8936: update keep-block-check and keep-rsync to properly use blob-signature-ttl to...
radhika [Fri, 22 Apr 2016 22:51:17 +0000 (18:51 -0400)]
8936: update keep-block-check and keep-rsync to properly use blob-signature-ttl to perform the signature verification.

8 years agoFix a bunch of misspellings in our Go code (all in comments).
Ward Vandewege [Fri, 22 Apr 2016 01:51:12 +0000 (21:51 -0400)]
Fix a bunch of misspellings in our Go code (all in comments).

Thank you https://goreportcard.com/report/github.com/curoverse/arvados#misspell

No issue #

8 years agoBump cwltool fpm package version to fix package builds. no issue #
Peter Amstutz [Thu, 21 Apr 2016 20:11:05 +0000 (16:11 -0400)]
Bump cwltool fpm package version to fix package builds.  no issue #

8 years ago8931: Use RetryLoop to retry api calls. Add max_wait to RetryLoop. Add test
Peter Amstutz [Thu, 21 Apr 2016 19:39:00 +0000 (15:39 -0400)]
8931: Use RetryLoop to retry api calls.  Add max_wait to RetryLoop.  Add test
for api error retry.

8 years agocloses #8936
radhika [Thu, 21 Apr 2016 18:34:20 +0000 (14:34 -0400)]
closes #8936
Merge branch '8936-ttl-in-signing-key'

8 years agoFix race conditions in test_node_undrained_when_shutdown_cancelled
Peter Amstutz [Thu, 21 Apr 2016 18:02:54 +0000 (14:02 -0400)]
Fix race conditions in test_node_undrained_when_shutdown_cancelled
and test_boot_new_node_when_all_nodes_busy. refs #8953

8 years ago8936: updated blob_test.rb to continue to use the default blob_signature_ttl.
radhika [Thu, 21 Apr 2016 17:23:32 +0000 (13:23 -0400)]
8936: updated blob_test.rb to continue to use the default blob_signature_ttl.

8 years ago8936: update go tests to use a blob-signature-ttl different than 1s.
radhika [Thu, 21 Apr 2016 17:04:59 +0000 (13:04 -0400)]
8936: update go tests to use a blob-signature-ttl different than 1s.

8 years agoPin bump cwltool dependency and pin version so it doesn't break again due to
Peter Amstutz [Thu, 21 Apr 2016 15:03:19 +0000 (11:03 -0400)]
Pin bump cwltool dependency and pin version so it doesn't break again due to
external changes.  no issue #

8 years ago8936: update the blob_test to use a specific blob_signature_ttl to ensure consistent...
radhika [Thu, 21 Apr 2016 15:00:11 +0000 (11:00 -0400)]
8936: update the blob_test to use a specific blob_signature_ttl to ensure consistent results.

8 years ago8936: update comment on keepstore and go fmt
radhika [Thu, 21 Apr 2016 13:52:50 +0000 (09:52 -0400)]
8936: update comment on keepstore and go fmt

8 years ago8936: address review comments
radhika [Thu, 21 Apr 2016 13:32:11 +0000 (09:32 -0400)]
8936: address review comments

8 years agoMerge branch '8936-ttl-in-signing-key-TC' into 8936-ttl-in-signing-key
radhika [Thu, 21 Apr 2016 11:23:00 +0000 (07:23 -0400)]
Merge branch '8936-ttl-in-signing-key-TC' into 8936-ttl-in-signing-key

8 years agoArvbox run websockets in separate puma server instead of in API server process.
Peter Amstutz [Wed, 20 Apr 2016 20:19:20 +0000 (16:19 -0400)]
Arvbox run websockets in separate puma server instead of in API server process.
no issue #

8 years agoDon't shut down if state is ('down', 'closed', 'boot wait', *) refs #8953
Peter Amstutz [Wed, 20 Apr 2016 18:26:15 +0000 (14:26 -0400)]
Don't shut down if state is ('down', 'closed', 'boot wait', *) refs #8953

8 years agoMerge branch '8697-ruby187-compat'
Tom Clegg [Wed, 20 Apr 2016 14:30:04 +0000 (10:30 -0400)]
Merge branch '8697-ruby187-compat'

refs #8697
refs #8689

8 years agoMerge branch '9014-keep-block-check-package'
Nico Cesar [Wed, 20 Apr 2016 13:58:57 +0000 (09:58 -0400)]
Merge branch '9014-keep-block-check-package'

closes #9014

8 years agoadding new package for block checks
Nico Cesar [Wed, 20 Apr 2016 13:28:55 +0000 (09:28 -0400)]
adding new package for block checks

refs #9014

8 years agoMerge branch '8953-no-double-count' refs #8953
Peter Amstutz [Wed, 20 Apr 2016 13:10:33 +0000 (09:10 -0400)]
Merge branch '8953-no-double-count' refs #8953

8 years ago6833: Fix excessive debug logging in TokenExpiryTest and subsequent tests.
Tom Clegg [Tue, 19 Apr 2016 20:57:41 +0000 (16:57 -0400)]
6833: Fix excessive debug logging in TokenExpiryTest and subsequent tests.

Excessive logging was introduced (seemingly unintentionally) in d3313e65.

refs #6833

8 years agoDon't double-count nodes that are shutting down. refs #8953
Peter Amstutz [Sat, 16 Apr 2016 02:48:13 +0000 (22:48 -0400)]
Don't double-count nodes that are shutting down.  refs #8953

8 years agoMerge branch '9009-keep-web-close-conns'
Tom Clegg [Tue, 19 Apr 2016 18:44:45 +0000 (14:44 -0400)]
Merge branch '9009-keep-web-close-conns'

closes #9009

8 years ago9009: Fix missing Close() in collectionreader.
Tom Clegg [Tue, 19 Apr 2016 15:43:09 +0000 (11:43 -0400)]
9009: Fix missing Close() in collectionreader.

8 years agoMerge branch '9004-close-keep-connections'
Tom Clegg [Tue, 19 Apr 2016 15:17:07 +0000 (11:17 -0400)]
Merge branch '9004-close-keep-connections'

refs #9004
refs #9005

8 years agoChange Check to Assert to avoid crash after failure. No issue #
Tom Clegg [Tue, 19 Apr 2016 15:17:00 +0000 (11:17 -0400)]
Change Check to Assert to avoid crash after failure. No issue #

8 years ago9005: Workaround: Close idle connections aggressively.
Tom Clegg [Tue, 19 Apr 2016 14:18:51 +0000 (10:18 -0400)]
9005: Workaround: Close idle connections aggressively.

Currently, the SDK code never reuses connections anyway, so it's best
to shut them down right away.

8 years ago8936: Warn about disruptive effect of modifying blob_signature_ttl and blob_signing_key.
Tom Clegg [Mon, 18 Apr 2016 20:23:01 +0000 (16:23 -0400)]
8936: Warn about disruptive effect of modifying blob_signature_ttl and blob_signing_key.

8 years ago8936: update blob-signing-ttl related documentation.
radhika [Mon, 18 Apr 2016 15:44:16 +0000 (11:44 -0400)]
8936: update blob-signing-ttl related documentation.

8 years ago8936: consider blobSigningTtl while generating and verifying signatures.
radhika [Sat, 16 Apr 2016 22:16:46 +0000 (18:16 -0400)]
8936: consider blobSigningTtl while generating and verifying signatures.

8 years agoDon't issue drain when shutdown has been cancelled. refs #8953
Peter Amstutz [Sat, 16 Apr 2016 02:31:21 +0000 (22:31 -0400)]
Don't issue drain when shutdown has been cancelled.  refs #8953

8 years agoDon't try to drain node if no nodeename associated. refs #8953
Peter Amstutz [Sat, 16 Apr 2016 02:20:54 +0000 (22:20 -0400)]
Don't try to drain node if no nodeename associated.  refs #8953

8 years agoMerge branch '8953-node-manager-FSM' closes #8953
Peter Amstutz [Fri, 15 Apr 2016 20:18:32 +0000 (16:18 -0400)]
Merge branch '8953-node-manager-FSM' closes #8953

8 years ago8953: Don't start shutdown on 'drng*' or 'alloc*'.
Peter Amstutz [Fri, 15 Apr 2016 19:50:06 +0000 (15:50 -0400)]
8953: Don't start shutdown on 'drng*' or 'alloc*'.

8 years ago8953: Assign to tuple (eligible, reason)
Peter Amstutz [Fri, 15 Apr 2016 18:06:29 +0000 (14:06 -0400)]
8953: Assign to tuple (eligible, reason)

8 years ago8953: shutdown_eligible() returns a tuple. Report reason for shutdown decision.
Peter Amstutz [Fri, 15 Apr 2016 15:29:50 +0000 (11:29 -0400)]
8953: shutdown_eligible() returns a tuple.  Report reason for shutdown decision.

8 years ago8953: Clarify how to use return value from consulting transitions table and shutdown_...
Peter Amstutz [Fri, 15 Apr 2016 15:13:12 +0000 (11:13 -0400)]
8953: Clarify how to use return value from consulting transitions table and shutdown_eligible().

8 years ago8953: Fix indentation of shutdown_eligible().
Peter Amstutz [Fri, 15 Apr 2016 14:37:34 +0000 (10:37 -0400)]
8953: Fix indentation of shutdown_eligible().

8 years ago8953: Add missing transitions.py
Peter Amstutz [Fri, 15 Apr 2016 14:32:16 +0000 (10:32 -0400)]
8953: Add missing transitions.py

8 years agoFixup test_node_undrained_when_shutdown_cancelled and test_alloc_node_undrained_when_...
Peter Amstutz [Fri, 15 Apr 2016 14:26:46 +0000 (10:26 -0400)]
Fixup test_node_undrained_when_shutdown_cancelled and test_alloc_node_undrained_when_shutdown_cancelled.

8 years ago8953: Tests pass, with some removed due to removal of the corresponding behavior.
Peter Amstutz [Fri, 15 Apr 2016 12:10:13 +0000 (08:10 -0400)]
8953: Tests pass, with some removed due to removal of the corresponding behavior.

8 years ago8953: Node manager shutdown policy change WIP. Still fixing tests.
Peter Amstutz [Thu, 14 Apr 2016 20:02:16 +0000 (16:02 -0400)]
8953: Node manager shutdown policy change WIP.  Still fixing tests.

8 years agoAdd /var/lib/gopath and /var/lib/pip permissions fixup to Arvbox createusers.sh
Peter Amstutz [Thu, 14 Apr 2016 13:57:41 +0000 (09:57 -0400)]
Add /var/lib/gopath and /var/lib/pip permissions fixup to Arvbox createusers.sh
to fix demo build, no issue #

8 years ago8697: Fix Locator.parse() (was failing on locators with hints).
Tom Clegg [Wed, 13 Apr 2016 14:57:09 +0000 (10:57 -0400)]
8697: Fix Locator.parse() (was failing on locators with hints).

8 years ago8697: ruby 1.8.7 compatibility in arvados/collection.
Tom Clegg [Wed, 13 Apr 2016 14:24:14 +0000 (10:24 -0400)]
8697: ruby 1.8.7 compatibility in arvados/collection.

8 years ago8697: Move error messages from stdout to stderr.
Tom Clegg [Tue, 22 Mar 2016 21:29:29 +0000 (17:29 -0400)]
8697: Move error messages from stdout to stderr.

8 years ago8697: Relax version constraints so gem can be used in ruby187/ree projects.
Tom Clegg [Tue, 22 Mar 2016 21:28:39 +0000 (17:28 -0400)]
8697: Relax version constraints so gem can be used in ruby187/ree projects.

8 years agoMerge branch '8959-python-gflags-dependencies'
Nico Cesar [Wed, 13 Apr 2016 17:30:35 +0000 (13:30 -0400)]
Merge branch '8959-python-gflags-dependencies'

8 years agoRevert "I <3 pythong-gflags"
Nico Cesar [Wed, 13 Apr 2016 17:29:08 +0000 (13:29 -0400)]
Revert "I <3 pythong-gflags"

This reverts commit e935e107a4ac6250ae64878262c3145d7a62b8e8.

8 years agoMerge branch '8959-python-gflags-dependencies'
Nico Cesar [Wed, 13 Apr 2016 15:43:39 +0000 (11:43 -0400)]
Merge branch '8959-python-gflags-dependencies'

8 years agoI <3 pythong-gflags
Nico Cesar [Wed, 13 Apr 2016 15:41:16 +0000 (11:41 -0400)]
I <3 pythong-gflags

closes #8959

8 years ago8959: pinning out the version of python-gflags
Nico Cesar [Wed, 13 Apr 2016 14:42:17 +0000 (10:42 -0400)]
8959: pinning out the version of python-gflags

refs #8959

8 years agoMerge branch '8893-crunch-job-volumes-array-wip'
Brett Smith [Tue, 12 Apr 2016 20:20:39 +0000 (16:20 -0400)]
Merge branch '8893-crunch-job-volumes-array-wip'

Closes #8893, #8921.

8 years ago8893: Safer quoting of crunch-job's conditional volume switches.
Brett Smith [Fri, 8 Apr 2016 14:56:34 +0000 (10:56 -0400)]
8893: Safer quoting of crunch-job's conditional volume switches.

Packing arguments into an array allows us to both have a variable
number of switches, with correct word splitting, even when the
indivdiual arguments in the array have whitespace.