# Deploy with Capistrano
# gem 'capistrano'
-# To use debugger
-#gem 'byebug'
-
gem 'passenger', :group => :production
gem 'andand'
gem 'RedCloth'
i18n (>= 0.7, < 2)
minitest (~> 5.1)
tzinfo (~> 1.1)
- addressable (2.6.0)
- public_suffix (>= 2.0.2, < 4.0)
+ addressable (2.7.0)
+ public_suffix (>= 2.0.2, < 5.0)
andand (1.3.3)
angularjs-rails (1.3.15)
arel (7.1.4)
- arvados (1.3.1.20190320201707)
+ arvados (1.3.3.20190320201707)
activesupport (>= 3)
andand (~> 1.3, >= 1.3.3)
arvados-google-api-client (>= 0.7, < 0.8.9)
flamegraph (0.9.5)
globalid (0.4.2)
activesupport (>= 4.2.0)
- googleauth (0.8.1)
+ googleauth (0.9.0)
faraday (~> 0.12)
jwt (>= 1.4, < 3.0)
memoist (~> 0.16)
actionpack (>= 4)
less (~> 2.6.0)
sprockets (>= 2)
- libv8 (3.16.14.19)
+ libv8 (3.16.14.19-x86_64-linux)
lograge (0.10.0)
actionpack (>= 4)
activesupport (>= 4)
morrisjs-rails (0.5.1.2)
railties (> 3.1, < 6)
multi_json (1.13.1)
- multipart-post (2.0.0)
+ multipart-post (2.1.1)
net-scp (2.0.0)
net-ssh (>= 2.6.5, < 6.0.0)
net-sftp (2.1.2)
mini_portile2 (~> 2.4.0)
npm-rails (0.2.1)
rails (>= 3.2)
- oj (3.7.11)
- os (1.0.0)
+ oj (3.7.12)
+ os (1.0.1)
passenger (6.0.2)
rack
rake (>= 0.8.1)
cliver (~> 0.3.1)
multi_json (~> 1.0)
websocket-driver (>= 0.2.0)
- public_suffix (3.0.3)
+ public_suffix (4.0.1)
rack (2.0.7)
rack-mini-profiler (1.0.2)
rack (>= 1.2.0)
h3. delete
-Delete an existing Container.
+Delete a Container.
+
+This API requires admin privileges. In normal operation, it should not be used at all. API clients like Workbench might not work correctly when a container request references a container that has been deleted.
Arguments:
s.add_runtime_dependency 'andand', '~> 1.3', '>= 1.3.3'
s.add_runtime_dependency 'oj', '~> 3.0'
s.add_runtime_dependency 'curb', '~> 0.8'
+ # arvados-google-api-client 0.8.7.2 is incompatible with faraday 0.16.2
+ s.add_dependency('faraday', '< 0.16')
s.homepage =
'https://arvados.org'
end
manifest_text: foo_manifest
}.to_json)
end
- assert /^([0-9a-z]{5}-4zz18-[0-9a-z]{15})?$/.match(out)
+ assert(/^([0-9a-z]{5}-4zz18-[0-9a-z]{15})?$/.match(out))
assert_equal '', err
end
assert_arv('--format', 'uuid',
'collection', 'create', '--collection', tempfile.path)
end
- assert /^([0-9a-z]{5}-4zz18-[0-9a-z]{15})?$/.match(out)
+ assert(/^([0-9a-z]{5}-4zz18-[0-9a-z]{15})?$/.match(out))
assert_equal '', err
ensure
tempfile.unlink
def create_arv_object_with_value(value)
out, err = capture_subprocess_io do
system("arv", "tag", "add", value, "--object", "testing")
- assert $?.success?, "Command failure running `arv tag`: #{$?}"
end
assert_equal '', err
+ assert $?.success?, "Command failure running `arv tag`: #{$?}"
assert_operator 0, :<, out.strip.length
out.strip
end
assert_arv_get false
end
assert_equal '', out
- assert_match /^usage:/, err
+ assert_match(/^usage:/, err)
end
def test_get_version
end
$stderr.write err
assert_equal '', err
- assert_match /^usage:/, out
+ assert_match(/^usage:/, out)
end
def test_file_to_dev_stdout
out, err = capture_subprocess_io do
assert_arv_get false, @@foo_manifest_locator + '/foo', 'tmp/foo'
end
- assert_match /Local file tmp\/foo already exists/, err
+ assert_match(/Local file tmp\/foo already exists/, err)
assert_equal '', out
assert_equal 'baz', IO.read('tmp/foo')
end
out, err = capture_subprocess_io do
assert_arv_get false, @@foo_manifest_locator + '/', 'tmp/'
end
- assert_match /Local file tmp\/foo already exists/, err
+ assert_match(/Local file tmp\/foo already exists/, err)
assert_equal '', out
assert_equal 'baz', IO.read('tmp/foo')
end
assert_arv_get false, @@foo_manifest_locator + '/', 'tmp/foo'
end
assert_equal '', out
- assert_match /^usage:/, err
+ assert_match(/^usage:/, err)
end
def test_dir_to_empty_string
assert_arv_get false, @@foo_manifest_locator + '/', ''
end
assert_equal '', out
- assert_match /^usage:/, err
+ assert_match(/^usage:/, err)
end
def test_nonexistent_block
assert_arv_get false, 'e796ab2294f3e48ec709ffa8d6daf58c'
end
assert_equal '', out
- assert_match /ERROR:/, err
+ assert_match(/ERROR:/, err)
end
def test_nonexistent_manifest
assert_arv_get false, 'acbd18db4cc2f85cedef654fccc4a4d8/', 'tmp/'
end
assert_equal '', out
- assert_match /ERROR:/, err
+ assert_match(/ERROR:/, err)
end
def test_manifest_root_to_dir
end
$stderr.write err
assert_empty err
- assert_match /^usage:/, out
+ assert_match(/^usage:/, out)
end
def test_raw_stdin
assert_equal(false, arv_put('--filename', 'foo', './tmp/empty_dir/.'),
'arv-put --filename refuses directory')
end
- assert_match /^usage:.*error:/m, err
+ assert_match(/^usage:.*error:/m, err)
assert_empty out
end
'./tmp/empty_file'),
'arv-put --filename refuses directory')
end
- assert_match /^usage:.*error:/m, err
+ assert_match(/^usage:.*error:/m, err)
assert_empty out
end
out, err = capture_subprocess_io do
assert arv_put('--no-cache', '--manifest', '--progress', './tmp/foo')
end
- assert_match /%/, err
+ assert_match(/%/, err)
assert match_collection_uuid(out)
end
out, err = capture_subprocess_io do
assert arv_put('--no-cache', '--manifest', '--batch-progress', './tmp/foo')
end
- assert_match /: 0 written 3 total/, err
- assert_match /: 3 written 3 total/, err
+ assert_match(/: 0 written 3 total/, err)
+ assert_match(/: 3 written 3 total/, err)
assert match_collection_uuid(out)
end
arv_put('--progress', '--batch-progress', './tmp/foo'),
'arv-put --progress --batch-progress is contradictory')
end
- assert_match /^usage:.*error:/m, err
+ assert_match(/^usage:.*error:/m, err)
assert_empty out
end
assert_equal false, arv_tag
end
assert_empty out
- assert_match /^usage:/i, err
+ assert_match(/^usage:/i, err)
end
# Test adding and removing a single tag on a single object.
end
def test_arv_ws_get_help
- out, err = capture_subprocess_io do
+ _, err = capture_subprocess_io do
system ('arv-ws -h')
end
assert_equal '', err
end
def test_arv_ws_such_option
- out, err = capture_subprocess_io do
+ _, err = capture_subprocess_io do
system ('arv-ws --junk')
end
refute_equal '', err
# work around undeclared dependency on i18n in some activesupport 3.x.x:
s.add_dependency('i18n', '~> 0')
s.add_dependency('json', '>= 1.7.7', '<3')
+ # arvados-google-api-client 0.8.7.2 is incompatible with faraday 0.16.2
+ s.add_dependency('faraday', '< 0.16')
s.add_runtime_dependency('jwt', '<2', '>= 0.1.5')
s.homepage =
'https://arvados.org'
current_user.andand.is_admin
end
+ def permission_to_destroy
+ current_user.andand.is_admin
+ end
+
def ensure_owner_uuid_is_permitted
# validate_change ensures owner_uuid can't be changed at all --
# except during create, which requires admin privileges. Checking
end
end
+ test "user cannot delete" do
+ set_user_from_auth :active
+ c, _ = minimal_new
+ assert_raises ArvadosModel::PermissionDeniedError do
+ c.destroy
+ end
+ assert Container.find_by_uuid(c.uuid)
+ end
+
[
{state: Container::Complete, exit_code: 0, output: '1f4b0bc7583c2a7f9102c395f4ffc5e3+45'},
{state: Container::Cancelled},
func newAzureBlobVolume(cluster *arvados.Cluster, volume arvados.Volume, logger logrus.FieldLogger, metrics *volumeMetricsVecs) (Volume, error) {
v := &AzureBlobVolume{
- StorageBaseURL: storage.DefaultBaseURL,
RequestTimeout: azureDefaultRequestTimeout,
WriteRaceInterval: azureDefaultWriteRaceInterval,
WriteRacePollTime: azureDefaultWriteRacePollTime,
if v.ListBlobsMaxAttempts == 0 {
v.ListBlobsMaxAttempts = azureDefaultListBlobsMaxAttempts
}
+ if v.StorageBaseURL == "" {
+ v.StorageBaseURL = storage.DefaultBaseURL
+ }
if v.ContainerName == "" || v.StorageAccountName == "" || v.StorageAccountKey == "" {
return nil, errors.New("DriverParameters: ContainerName, StorageAccountName, and StorageAccountKey must be provided")
}
PATH
remote: .
specs:
- arvados-login-sync (1.4.0.20190729193732)
+ arvados-login-sync (1.4.1.20190930204434)
arvados (~> 1.3.0, >= 1.3.0)
+ faraday (< 0.16)
GEM
remote: https://rubygems.org/
i18n (>= 0.7, < 2)
minitest (~> 5.1)
tzinfo (~> 1.1)
- addressable (2.6.0)
- public_suffix (>= 2.0.2, < 4.0)
+ addressable (2.7.0)
+ public_suffix (>= 2.0.2, < 5.0)
andand (1.3.3)
arvados (1.3.3.20190320201707)
activesupport (>= 3)
extlib (0.9.16)
faraday (0.15.4)
multipart-post (>= 1.2, < 3)
- googleauth (0.8.1)
+ googleauth (0.9.0)
faraday (~> 0.12)
jwt (>= 1.4, < 3.0)
memoist (~> 0.16)
multi_json (1.13.1)
multipart-post (2.1.1)
os (1.0.1)
- public_suffix (3.1.1)
+ public_suffix (4.0.1)
rake (12.3.2)
retriable (1.4.1)
signet (0.11.0)
s.executables << "arvados-login-sync"
s.required_ruby_version = '>= 2.1.0'
s.add_runtime_dependency 'arvados', '~> 1.3.0', '>= 1.3.0'
+ # arvados-google-api-client 0.8.7.2 is incompatible with faraday 0.16.2
+ s.add_dependency('faraday', '< 0.16')
s.homepage =
'https://arvados.org'
end
cd /usr/src/composer
-npm -d install --prefix /usr/local --global yarn
+npm -d install --prefix /usr/local --global yarn@1.17.3
yarn install
cd /usr/src/workbench2
-npm -d install --prefix /usr/local --global yarn
+npm -d install --prefix /usr/local --global yarn@1.17.3
yarn install