diff options
author | Zuul <zuul@review.opendev.org> | 2021-03-02 02:29:16 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2021-03-02 02:29:16 +0000 |
commit | 31cfe2175e47b267c7a33df7494b9cb5385831f9 (patch) | |
tree | 2e76e19f6dbf4a9fb20f46e5a70068d0edebc9d0 | |
parent | 4d8124f31839b9940bdfe1e3e3badb76a9e168b4 (diff) | |
parent | 87c7684fb09ebb80b08039cc4153f339cb2bdb14 (diff) | |
download | swift-31cfe2175e47b267c7a33df7494b9cb5385831f9.tar.gz |
Merge "sharder: downgrade 'no data dirs' warning to info"
-rw-r--r-- | swift/container/sharder.py | 2 | ||||
-rw-r--r-- | test/unit/container/test_sharder.py | 23 |
2 files changed, 24 insertions, 1 deletions
diff --git a/swift/container/sharder.py b/swift/container/sharder.py index 37a111c75..357792c6a 100644 --- a/swift/container/sharder.py +++ b/swift/container/sharder.py @@ -1876,7 +1876,7 @@ class ContainerSharder(ContainerReplicator): partitions_to_shard) dirs.append((datadir, node, part_filt)) if not dirs: - self.logger.warning('Found no data dirs!') + self.logger.info('Found no containers directories') for part, path, node in self.roundrobin_datadirs(dirs): # NB: get_part_nodes always provides an 'index' key; # this will be used in leader selection diff --git a/test/unit/container/test_sharder.py b/test/unit/container/test_sharder.py index a7e975ee7..1aab95e03 100644 --- a/test/unit/container/test_sharder.py +++ b/test/unit/container/test_sharder.py @@ -805,6 +805,29 @@ class TestSharder(BaseTestSharder): self._assert_stats( expected_in_progress_stats, sharder, 'sharding_in_progress') + def test_one_shard_cycle_no_containers(self): + conf = {'recon_cache_path': self.tempdir, + 'devices': self.tempdir, + 'mount_check': False} + + with self._mock_sharder(conf) as sharder: + for dev in sharder.ring.devs: + os.mkdir(os.path.join(self.tempdir, dev['device'])) + with mock.patch('swift.container.sharder.is_local_device', + return_value=True): + sharder._one_shard_cycle(Everything(), Everything()) + self.assertEqual([], sharder.logger.get_lines_for_level('warning')) + self.assertIn('Found no containers directories', + sharder.logger.get_lines_for_level('info')) + with self._mock_sharder(conf) as sharder: + os.mkdir(os.path.join(self.tempdir, dev['device'], 'containers')) + with mock.patch('swift.container.sharder.is_local_device', + return_value=True): + sharder._one_shard_cycle(Everything(), Everything()) + self.assertEqual([], sharder.logger.get_lines_for_level('warning')) + self.assertNotIn('Found no containers directories', + sharder.logger.get_lines_for_level('info')) + def test_ratelimited_roundrobin(self): n_databases = 100 |