diff --git a/swift/obj/replicator.py b/swift/obj/replicator.py index 81cb531e63..c4df49deba 100644 --- a/swift/obj/replicator.py +++ b/swift/obj/replicator.py @@ -817,8 +817,8 @@ class ObjectReplicator(Daemon): self.logger.exception('ERROR creating %s' % obj_path) continue for partition in os.listdir(obj_path): - if (override_partitions is not None - and partition not in override_partitions): + if (override_partitions is not None and partition.isdigit() + and int(partition) not in override_partitions): continue if (partition.startswith('auditor_status_') and diff --git a/test/unit/obj/test_replicator.py b/test/unit/obj/test_replicator.py index 781a3de177..60d18b9b66 100644 --- a/test/unit/obj/test_replicator.py +++ b/test/unit/obj/test_replicator.py @@ -1401,10 +1401,10 @@ class TestObjectReplicator(unittest.TestCase): self.assertTrue(os.access(part_path, os.F_OK)) self.replicator.replicate(override_devices=['sdb']) self.assertTrue(os.access(part_path, os.F_OK)) - self.replicator.replicate(override_partitions=['9']) + self.replicator.replicate(override_partitions=[9]) self.assertTrue(os.access(part_path, os.F_OK)) self.replicator.replicate(override_devices=['sda'], - override_partitions=['1']) + override_partitions=[1]) self.assertFalse(os.access(part_path, os.F_OK)) def test_delete_policy_override_params(self):