Ejemplo n.º 1
0
 def test_mark_for_deletion_two_updates_with_yield(self):
     ts = '1558463777.42739'
     with FakeInternalClient([
         swob.Response(json.dumps([
             {'name': 'obj1'},
             {'name': 'obj2'},
             {'name': 'obj3'},
             {'name': u'obj4-\N{SNOWMAN}'},
             {'name': 'obj5'},
             {'name': 'obj6'},
         ])),
         swob.Response(status=202),
         swob.Response(json.dumps([
         ])),
         swob.Response(status=202),
     ]) as swift:
         self.assertEqual(list(container_deleter.mark_for_deletion(
             swift,
             'account',
             'container',
             '',
             'end',
             'pre',
             timestamp=utils.Timestamp(ts),
             yield_time=0,
         )), [(5, 'obj5'), (6, 'obj6'), (6, None)])
         self.assertEqual(swift.calls, [
             ('GET', '/v1/account/container',
              'format=json&marker=&end_marker=end&prefix=pre', {}, None),
             ('UPDATE', '/v1/.expiring_objects/' + ts.split('.')[0], '', {
                 'X-Backend-Allow-Private-Methods': 'True',
                 'X-Backend-Storage-Policy-Index': '0',
                 'X-Timestamp': ts}, mock.ANY),
             ('GET', '/v1/account/container',
              'format=json&marker=obj6&end_marker=end&prefix=pre',
              {}, None),
             ('UPDATE', '/v1/.expiring_objects/' + ts.split('.')[0], '', {
                 'X-Backend-Allow-Private-Methods': 'True',
                 'X-Backend-Storage-Policy-Index': '0',
                 'X-Timestamp': ts}, mock.ANY),
         ])
         self.assertEqual(
             json.loads(swift.calls[-3].body),
             container_deleter.make_delete_jobs(
                 'account', 'container',
                 ['obj1', 'obj2', 'obj3', u'obj4-\N{SNOWMAN}', 'obj5'],
                 utils.Timestamp(ts)
             )
         )
         self.assertEqual(
             json.loads(swift.calls[-1].body),
             container_deleter.make_delete_jobs(
                 'account', 'container', ['obj6'],
                 utils.Timestamp(ts)
             )
         )
Ejemplo n.º 2
0
 def test_mark_for_deletion_one_update_no_yield(self):
     ts = '1558463777.42739'
     with FakeInternalClient([
             swob.Response(
                 json.dumps([
                     {
                         'name': '/obj1'
                     },
                     {
                         'name': 'obj2'
                     },
                     {
                         'name': 'obj3'
                     },
                 ])),
             swob.Response(json.dumps([])),
             swob.Response(status=202),
     ]) as swift:
         self.assertEqual(
             container_deleter.mark_for_deletion(
                 swift,
                 'account',
                 'container',
                 '',
                 '',
                 '',
                 timestamp=utils.Timestamp(ts),
                 yield_time=None,
             ), 3)
         self.assertEqual(swift.calls, [
             ('GET', '/v1/account/container',
              'format=json&marker=&end_marker=&prefix=', {}, None),
             ('GET', '/v1/account/container',
              'format=json&marker=obj3&end_marker=&prefix=', {}, None),
             ('UPDATE', '/v1/.expiring_objects/' + ts.split('.')[0], '', {
                 'X-Backend-Allow-Private-Methods': 'True',
                 'X-Backend-Storage-Policy-Index': '0',
                 'X-Timestamp': ts
             }, mock.ANY),
         ])
         self.assertEqual(
             json.loads(swift.calls[-1].body),
             container_deleter.make_delete_jobs('account', 'container',
                                                ['/obj1', 'obj2', 'obj3'],
                                                utils.Timestamp(ts)))
Ejemplo n.º 3
0
 def test_mark_for_deletion_empty_no_yield(self):
     with FakeInternalClient([
             swob.Response(json.dumps([])),
     ]) as swift:
         self.assertEqual(
             container_deleter.mark_for_deletion(
                 swift,
                 'account',
                 'container',
                 'marker',
                 'end',
                 'prefix',
                 timestamp=None,
                 yield_time=None,
             ), 0)
         self.assertEqual(swift.calls, [
             ('GET', '/v1/account/container',
              'format=json&marker=marker&end_marker=end&prefix=prefix', {},
              None),
         ])
Ejemplo n.º 4
0
 def test_mark_for_deletion_empty_with_yield(self):
     with FakeInternalClient([
         swob.Response(json.dumps([
         ])),
     ]) as swift:
         self.assertEqual(list(container_deleter.mark_for_deletion(
             swift,
             'account',
             'container',
             'marker',
             'end',
             'prefix',
             timestamp=None,
             yield_time=0.5,
         )), [(0, None)])
         self.assertEqual(swift.calls, [
             ('GET', '/v1/account/container',
              'format=json&marker=marker&end_marker=end&prefix=prefix',
              {}, None),
         ])