[ARVADOS] updated: 2.1.0-1169-gd801f8930

Git user git at public.arvados.org
Mon Aug 9 15:29:21 UTC 2021


Summary of changes:
 doc/admin/upgrading.html.textile.liquid          |  4 ++++
 lib/config/config.default.yml                    |  3 +++
 services/api/app/models/collection.rb            |  2 +-
 services/api/app/models/container.rb             |  2 +-
 services/api/app/models/container_request.rb     |  2 +-
 services/api/test/unit/collection_test.rb        | 13 +++++++++++++
 services/api/test/unit/container_request_test.rb | 22 ++++++++++++++--------
 7 files changed, 37 insertions(+), 11 deletions(-)

       via  d801f8930c20f82fbde6cd93686572ed190e7d12 (commit)
       via  13ab78a6ba36ef69007d62ffa73600defd79972d (commit)
      from  2de3b2e44f2196c227c7bbd57b211d1095e59aad (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit d801f8930c20f82fbde6cd93686572ed190e7d12
Author: Tom Clegg <tom at curii.com>
Date:   Mon Aug 9 11:29:10 2021 -0400

    17967: Test new behavior for default storage_classes_desired.
    
    Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at curii.com>

diff --git a/services/api/app/models/collection.rb b/services/api/app/models/collection.rb
index 5edca82a0..d1d5ace0c 100644
--- a/services/api/app/models/collection.rb
+++ b/services/api/app/models/collection.rb
@@ -17,7 +17,7 @@ class Collection < ArvadosModel
   # Posgresql JSONB columns should NOT be declared as serialized, Rails 5
   # already know how to properly treat them.
   attribute :properties, :jsonbHash, default: {}
-  attribute :storage_classes_desired, :jsonbArray, default: Rails.configuration.DefaultStorageClasses
+  attribute :storage_classes_desired, :jsonbArray, default: lambda { Rails.configuration.DefaultStorageClasses }
   attribute :storage_classes_confirmed, :jsonbArray, default: []
 
   before_validation :default_empty_manifest
diff --git a/services/api/app/models/container.rb b/services/api/app/models/container.rb
index a880b65ac..d6a44c802 100644
--- a/services/api/app/models/container.rb
+++ b/services/api/app/models/container.rb
@@ -22,7 +22,7 @@ class Container < ArvadosModel
   attribute :secret_mounts, :jsonbHash, default: {}
   attribute :runtime_status, :jsonbHash, default: {}
   attribute :runtime_auth_scopes, :jsonbArray, default: []
-  attribute :output_storage_classes, :jsonbArray, default: Rails.configuration.DefaultStorageClasses
+  attribute :output_storage_classes, :jsonbArray, default: lambda { Rails.configuration.DefaultStorageClasses }
 
   serialize :environment, Hash
   serialize :mounts, Hash
diff --git a/services/api/app/models/container_request.rb b/services/api/app/models/container_request.rb
index f603d4dd7..4a580816c 100644
--- a/services/api/app/models/container_request.rb
+++ b/services/api/app/models/container_request.rb
@@ -23,7 +23,7 @@ class ContainerRequest < ArvadosModel
   # already know how to properly treat them.
   attribute :properties, :jsonbHash, default: {}
   attribute :secret_mounts, :jsonbHash, default: {}
-  attribute :output_storage_classes, :jsonbArray, default: Rails.configuration.DefaultStorageClasses
+  attribute :output_storage_classes, :jsonbArray, default: lambda { Rails.configuration.DefaultStorageClasses }
 
   serialize :environment, Hash
   serialize :mounts, Hash
diff --git a/services/api/test/unit/collection_test.rb b/services/api/test/unit/collection_test.rb
index 916ca0958..e6912217d 100644
--- a/services/api/test/unit/collection_test.rb
+++ b/services/api/test/unit/collection_test.rb
@@ -693,6 +693,19 @@ class CollectionTest < ActiveSupport::TestCase
     end
   end
 
+  test "storage_classes_desired default respects config" do
+    saved = Rails.configuration.DefaultStorageClasses
+    Rails.configuration.DefaultStorageClasses = ["foo"]
+    begin
+      act_as_user users(:active) do
+        c = Collection.create!
+        assert_equal ["foo"], c.storage_classes_desired
+      end
+    ensure
+      Rails.configuration.DefaultStorageClasses = saved
+    end
+  end
+
   test "storage_classes_desired cannot be empty" do
     act_as_user users(:active) do
       c = collections(:collection_owned_by_active)
diff --git a/services/api/test/unit/container_request_test.rb b/services/api/test/unit/container_request_test.rb
index 7686e1a14..9f412c7bb 100644
--- a/services/api/test/unit/container_request_test.rb
+++ b/services/api/test/unit/container_request_test.rb
@@ -1292,14 +1292,20 @@ class ContainerRequestTest < ActiveSupport::TestCase
   end
 
   test "default output_storage_classes" do
-    act_as_user users(:active) do
-      cr = create_minimal_req!(priority: 1,
-                               state: ContainerRequest::Committed,
-                               output_name: 'foo')
-      run_container(cr)
-      cr.reload
-      output = Collection.find_by_uuid(cr.output_uuid)
-      assert_equal ["default"], output.storage_classes_desired
+    saved = Rails.configuration.DefaultStorageClasses
+    Rails.configuration.DefaultStorageClasses = ["foo"]
+    begin
+      act_as_user users(:active) do
+        cr = create_minimal_req!(priority: 1,
+                                 state: ContainerRequest::Committed,
+                                 output_name: 'foo')
+        run_container(cr)
+        cr.reload
+        output = Collection.find_by_uuid(cr.output_uuid)
+        assert_equal ["foo"], output.storage_classes_desired
+      end
+    ensure
+      Rails.configuration.DefaultStorageClasses = saved
     end
   end
 

commit 13ab78a6ba36ef69007d62ffa73600defd79972d
Author: Tom Clegg <tom at curii.com>
Date:   Mon Aug 9 11:11:32 2021 -0400

    17967: Link to config doc page from conf file and upgrade notes.
    
    Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom at curii.com>

diff --git a/doc/admin/upgrading.html.textile.liquid b/doc/admin/upgrading.html.textile.liquid
index dfb6a0ad6..b40082deb 100644
--- a/doc/admin/upgrading.html.textile.liquid
+++ b/doc/admin/upgrading.html.textile.liquid
@@ -39,6 +39,10 @@ h2(#main). development main (as of 2021-07-15)
 
 "Upgrading from 2.2.0":#v2_2_0
 
+h3. Storage classes must be defined explicitly
+
+If your configuration uses the StorageClasses attribute on any Keep volumes, you must add a new @StorageClasses@ section that lists all of your storage classes. Refer to the updated documentation about "configuring storage classes":{{site.baseurl}}/admin/storage-classes.html for details.
+
 h3. keep-balance requires access to PostgreSQL
 
 Make sure the keep-balance process can connect to your PostgreSQL server using the settings in your config file. (In previous versions, keep-balance accessed the database through controller instead of connecting to the database server directly.)
diff --git a/lib/config/config.default.yml b/lib/config/config.default.yml
index eb05c22fd..8640e7141 100644
--- a/lib/config/config.default.yml
+++ b/lib/config/config.default.yml
@@ -1233,6 +1233,9 @@ Clusters:
       # If you use multiple storage classes, specify them here, using
       # the storage class name as the key (in place of "SAMPLE" in
       # this sample entry).
+      #
+      # Further info/examples:
+      # https://doc.arvados.org/admin/storage-classes.html
       SAMPLE:
 
         # Priority determines the order volumes should be searched

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list