Merge branch 'main' into 15397-remove-obsolete-apis 15397-remove-obsolete-apis
authorPeter Amstutz <peter.amstutz@curii.com>
Mon, 3 Jun 2024 14:16:17 +0000 (10:16 -0400)
committerPeter Amstutz <peter.amstutz@curii.com>
Mon, 3 Jun 2024 14:16:17 +0000 (10:16 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>

14 files changed:
1  2 
doc/admin/upgrading.html.textile.liquid
lib/config/config.default.yml
sdk/go/arvados/config.go
sdk/python/arvados-v1-discovery.json
sdk/python/arvados/api.py
sdk/python/arvados/collection.py
sdk/python/arvados/keep.py
sdk/python/arvados/util.py
sdk/python/tests/arvados_testutil.py
sdk/python/tests/test_arv_keepdocker.py
sdk/python/tests/test_collections.py
sdk/python/tests/test_keep_client.py
sdk/python/tests/test_util.py
services/workbench2/src/views-components/data-explorer/renderers.tsx

index 3d2aa16f8e7e249de9e3971d75c9e0e678303756,4d4081e355041b338d3974927ecbe12ba030e399..e5e930d539b431a2fe6cff007227e65a85c783e3
@@@ -32,18 -32,10 +32,22 @@@ h2(#main). development mai
  
  "previous: Upgrading to 2.7.1":#v2_7_1
  
 +h3. Configuration entries have been removed or renamed
 +
 +The following configuration keys have been renamed or removed.  Renamed keys will still be loaded if they appear with their old names, but you should update your @/etc/arvados/config.yml@ file to avoid warnings when services start up.
 +* @Containers.JobsAPI.Enable@ has been removed
 +* @Mail.EmailFrom@ has been removed
 +* @Mail.IssueReporterEmailFrom@ has been removed
 +* @Mail.IssueReporterEmailTo@ has been removed
 +* @Mail.MailchimpAPIKey@ has been removed
 +* @Mail.MailchimpListID@ has been removed
 +* @Mail.SendUserSetupNotificationEmail@ has moved to @Users.SendUserSetupNotificationEmail@
 +* @Mail.SupportEmailAddress@ has moved to @Users.SupportEmailAddress@
 +
+ h3. S3 volume IAMRole configuration entry has been removed
+ The @Volumes.*.DriverParameters.IAMRole@ configuration entry for S3 volumes has been removed. You should remove it from your @/etc/arvados/config.yml@ file to avoid warnings when services start up. As before, if @AccessKeyID@ and @SecretAccessKey@ are blank, keepstore will retrieve IAM role credentials from instance metadata. Previously, documentation indicated that keepstore would refuse to use the IAM credentials if @IAMRole@ was specified and did not match the instance metadata, but that check has not been working for some time.
  h3. Legacy container logging system has been removed
  
  The following configuration keys are no longer supported. Remove them from your @/etc/arvados/config.yml@ file to avoid warnings when services start up.
Simple merge
Simple merge
index 27474d87c160183ffcf180f6a7127f243f319df1,0dcec6bb201179fb40771c4aedba553f7711b475..6ee37417057081c2ef6b8be2e89aeb9c4208f565
                "description": "Include items whose is_trashed attribute is true.",
                "location": "query"
              },
 -            "include": {
 +            "uuid": {
                "type": "string",
                "required": false,
 +              "default": "",
                "description": "",
                "location": "query"
-               "type": "string",
 +            },
 +            "recursive": {
 +              "type": "boolean",
 +              "required": false,
 +              "default": "false",
 +              "description": "Include contents from child groups recursively.",
 +              "location": "query"
 +            },
 +            "include": {
-               "description": "Include objects referred to by listed field in \"included\" (only owner_uuid).",
++              "type": "array",
 +              "required": false,
++              "description": "Include objects referred to by listed fields in \"included\" response field. Subsets of [\"owner_uuid\", \"container_uuid\"] are supported.",
 +              "location": "query"
 +            },
 +            "include_old_versions": {
 +              "type": "boolean",
 +              "required": false,
 +              "default": "false",
 +              "description": "Include past collection versions.",
 +              "location": "query"
              }
            },
            "response": {
Simple merge
Simple merge
Simple merge
index 63fee7093b7716c3c8e809633d076577611759aa,4f0c165e188f0797d933a09933abdb503d3e38ad..bc87bb83570710c3c4f4e16dbeb2e2c41e9c16c4
@@@ -66,7 -75,16 +75,9 @@@ link_uuid_pattern = re.compile(r'[a-z0-
  """Regular expression to match any Arvados link UUID"""
  user_uuid_pattern = re.compile(r'[a-z0-9]{5}-tpzed-[a-z0-9]{15}')
  """Regular expression to match any Arvados user UUID"""
 -job_uuid_pattern = re.compile(r'[a-z0-9]{5}-8i9sb-[a-z0-9]{15}')
 -"""Regular expression to match any Arvados job UUID
 -
 -.. WARNING:: Deprecated
 -   Arvados job resources are deprecated and will be removed in a future
 -   release. Prefer the containers API instead.
 -"""
  
+ logger = logging.getLogger('arvados')
  def _deprecated(version=None, preferred=None):
      """Mark a callable as deprecated in the SDK
  
Simple merge
index 6671aa10b5b0a537dac365548481c3f115ecdb5c,45e6056d190e9a6c1be7dc3cbe29d39cbe0bba24..ba59043536384420b1d6d4466dcd899888e334b6
@@@ -7,21 -8,30 +8,27 @@@ import datetim
  import os
  import random
  import re
+ import shutil
  import sys
- import datetime
- import ciso8601
+ import tempfile
  import time
  import unittest
- import parameterized
  
+ import parameterized
  from unittest import mock
  
 +from . import run_test_server
 +from arvados._ranges import Range, LocatorAndRange, locators_and_ranges
++
+ import arvados
+ import arvados.keep
++
  from arvados.collection import Collection, CollectionReader
+ from arvados._ranges import Range, LocatorAndRange
  from . import arvados_testutil as tutil
- from .arvados_testutil import make_block_cache
+ from . import run_test_server
  
 -class TestResumableWriter(arvados.ResumableCollectionWriter):
 -    KEEP_BLOCK_SIZE = 1024  # PUT to Keep every 1K.
 -
 -    def current_state(self):
 -        return self.dump_state(copy.deepcopy)
 -
 -
  @parameterized.parameterized_class([{"disk_cache": True}, {"disk_cache": False}])
  class ArvadosCollectionsTest(run_test_server.TestCaseWithServers,
                               tutil.ArvadosBaseTestCase):
          cls.api_client = arvados.api('v1')
          cls.keep_client = arvados.KeepClient(api_client=cls.api_client,
                                               local_store=cls.local_store,
-                                              block_cache=make_block_cache(cls.disk_cache))
+                                              block_cache=block_cache)
+     @classmethod
+     def tearDownClass(cls):
+         if cls._disk_cache_dir:
+             shutil.rmtree(cls._disk_cache_dir)
  
      def write_foo_bar_baz(self):
 -        cw = arvados.CollectionWriter(self.api_client)
 -        self.assertEqual(cw.current_stream_name(), '.',
 -                         'current_stream_name() should be "." now')
 -        cw.set_current_file_name('foo.txt')
 -        cw.write(b'foo')
 -        self.assertEqual(cw.current_file_name(), 'foo.txt',
 -                         'current_file_name() should be foo.txt now')
 -        cw.start_new_file('bar.txt')
 -        cw.write(b'bar')
 -        cw.start_new_stream('baz')
 -        cw.write(b'baz')
 -        cw.set_current_file_name('baz.txt')
 -        self.assertEqual(cw.manifest_text(),
 -                         ". 3858f62230ac3c915f300c664312c63f+6 0:3:foo.txt 3:3:bar.txt\n" +
 -                         "./baz 73feffa4b7f6bb68e44cf984c85f6e88+3 0:3:baz.txt\n",
 -                         "wrong manifest: got {}".format(cw.manifest_text()))
 +        with arvados.collection.Collection(api_client=self.api_client).open('zzz', 'wb') as f:
 +            f.write(b'foobar')
 +            f.flush()
 +            f.write(b'baz')
 +        cw = arvados.collection.Collection(
 +            api_client=self.api_client,
 +            manifest_locator_or_text=
 +            ". 3858f62230ac3c915f300c664312c63f+6 0:3:foo.txt 3:3:bar.txt\n" +
 +            "./baz 73feffa4b7f6bb68e44cf984c85f6e88+3 0:3:baz.txt\n")
          cw.save_new()
          return cw.portable_data_hash()
  
Simple merge
Simple merge