Пример #1
0
 def test_cleanup_failure_clients_delete_object(self, mock_clients):
     context = test.get_test_context()
     context.update({
         "tenants": {
             "t1": {
                 "name":
                 "t1_name",
                 "containers": [{
                     "user": {
                         "id": "u1",
                         "tenant_id": "t1",
                         "credential": mock.MagicMock()
                     },
                     "container": "c1",
                     "objects": ["oooo"] * 3
                 }]
             }
         }
     })
     mock_swift = mock_clients.return_value.swift.return_value
     mock_swift.delete_object.side_effect = [True, Exception, True]
     objects_ctx = objects.SwiftObjectGenerator(context)
     objects_ctx._delete_containers = mock.MagicMock()
     objects_ctx.cleanup()
     self.assertEqual(
         1,
         sum([
             len(container["objects"])
             for container in context["tenants"]["t1"]["containers"]
         ]))
Пример #2
0
 def test_cleanup_failure_clients_delete_container(self, mock_clients):
     context = {
         "task": {
             "uuid": "id123"
         },
         "tenants": {
             "t1": {
                 "name":
                 "t1_name",
                 "containers": [{
                     "user": {
                         "id": "u1",
                         "tenant_id": "t1",
                         "endpoint": "e1"
                     },
                     "container": "coooon",
                     "objects": []
                 }] * 3
             }
         }
     }
     mock_swift = mock_clients.return_value.swift.return_value
     mock_swift.delete_container.side_effect = [True, True, Exception]
     objects_ctx = objects.SwiftObjectGenerator(context)
     objects_ctx.cleanup()
     self.assertEqual(1, len(context["tenants"]["t1"]["containers"]))
Пример #3
0
 def test_setup_failure_clients_put_object(self, mock_clients):
     context = test.get_test_context()
     context.update({
         "tenants": {
             "t1": {
                 "name": "t1_name"
             },
             "t2": {
                 "name": "t2_name"
             }
         },
         "users": [{
             "id": "u1",
             "tenant_id": "t1",
             "credential": mock.MagicMock()
         }, {
             "id": "u2",
             "tenant_id": "t2",
             "credential": mock.MagicMock()
         }]
     })
     mock_swift = mock_clients.return_value.swift.return_value
     mock_swift.put_object.side_effect = [Exception, True]
     objects_ctx = objects.SwiftObjectGenerator(context)
     self.assertRaisesRegex(exceptions.ContextSetupFailure,
                            "objects, expected 2 but got 1",
                            objects_ctx.setup)
Пример #4
0
 def test_setup_failure_clients_put_object(self, mock_clients):
     context = {
         "task": {
             "uuid": "id123"
         },
         "tenants": {
             "t1": {
                 "name": "t1_name"
             },
             "t2": {
                 "name": "t2_name"
             }
         },
         "users": [{
             "id": "u1",
             "tenant_id": "t1",
             "endpoint": "e1"
         }, {
             "id": "u2",
             "tenant_id": "t2",
             "endpoint": "e2"
         }]
     }
     mock_swift = mock_clients.return_value.swift.return_value
     mock_swift.put_object.side_effect = [Exception, True]
     objects_ctx = objects.SwiftObjectGenerator(context)
     self.assertRaisesRegexp(exceptions.ContextSetupFailure,
                             "objects, expected 2 but got 1",
                             objects_ctx.setup)
Пример #5
0
    def test_cleanup(self, mock_swift_scenario, mock_clients):
        context = {
            "config": {
                "swift_objects": {
                    "resource_management_workers": 1
                }
            },
            "task": {
                "uuid": "id123"
            },
            "tenants": {
                "t1": {
                    "name":
                    "t1_name",
                    "containers": [{
                        "user": {
                            "id": "u1",
                            "tenant_id": "t1",
                            "endpoint": "e1"
                        },
                        "container": "c1",
                        "objects": ["o1", "o2", "o3"]
                    }]
                },
                "t2": {
                    "name":
                    "t2_name",
                    "containers": [{
                        "user": {
                            "id": "u2",
                            "tenant_id": "t2",
                            "endpoint": "e2"
                        },
                        "container": "c2",
                        "objects": ["o4", "o5", "o6"]
                    }]
                }
            }
        }

        objects_ctx = objects.SwiftObjectGenerator(context)
        objects_ctx.cleanup()

        expected_containers = ["c1", "c2"]
        mock_swift_scenario.return_value._delete_container.assert_has_calls(
            [mock.call(con) for con in expected_containers], any_order=True)

        expected_objects = [("c1", "o1"), ("c1", "o2"), ("c1", "o3"),
                            ("c2", "o4"), ("c2", "o5"), ("c2", "o6")]
        mock_swift_scenario.return_value._delete_object.assert_has_calls(
            [mock.call(con, obj) for con, obj in expected_objects],
            any_order=True)

        for tenant_id in context["tenants"]:
            self.assertEqual(0,
                             len(context["tenants"][tenant_id]["containers"]))
Пример #6
0
    def test_setup(self, mock_clients):
        containers_per_tenant = 2
        objects_per_container = 7
        context = {
            "config": {
                "swift_objects": {
                    "containers_per_tenant": containers_per_tenant,
                    "objects_per_container": objects_per_container,
                    "object_size": 1024,
                    "resource_management_workers": 10
                }
            },
            "task": {
                "uuid": "id123"
            },
            "tenants": {
                "t1": {
                    "name": "t1_name"
                },
                "t2": {
                    "name": "t2_name"
                }
            },
            "users": [{
                "id": "u1",
                "tenant_id": "t1",
                "endpoint": "e1"
            }, {
                "id": "u2",
                "tenant_id": "t2",
                "endpoint": "e2"
            }]
        }

        objects_ctx = objects.SwiftObjectGenerator(context)
        objects_ctx.setup()

        for tenant_id in context["tenants"]:
            containers = context["tenants"][tenant_id]["containers"]
            self.assertEqual(containers_per_tenant, len(containers))
            for container in containers:
                self.assertIn("rally_container_", container["container"])
                self.assertEqual(objects_per_container,
                                 len(container["objects"]))
                for obj in container["objects"]:
                    self.assertIn("rally_object_", obj)
Пример #7
0
    def test_setup(self, mock_clients):
        containers_per_tenant = 2
        objects_per_container = 7
        context = test.get_test_context()
        context.update({
            "config": {
                "swift_objects": {
                    "containers_per_tenant": containers_per_tenant,
                    "objects_per_container": objects_per_container,
                    "object_size": 1024,
                    "resource_management_workers": 10
                }
            },
            "tenants": {
                "t1": {
                    "name": "t1_name"
                },
                "t2": {
                    "name": "t2_name"
                }
            },
            "users": [{
                "id": "u1",
                "tenant_id": "t1",
                "credential": mock.MagicMock()
            }, {
                "id": "u2",
                "tenant_id": "t2",
                "credential": mock.MagicMock()
            }]
        })

        objects_ctx = objects.SwiftObjectGenerator(context)
        objects_ctx.setup()

        for tenant_id in context["tenants"]:
            containers = context["tenants"][tenant_id]["containers"]
            self.assertEqual(containers_per_tenant, len(containers))
            for container in containers:
                self.assertEqual(objects_per_container,
                                 len(container["objects"]))
Пример #8
0
 def test_setup_failure_clients_put_container(self, mock_clients):
     context = {
         "config": {
             "swift_objects": {
                 "containers_per_tenant": 2,
                 "object_size": 10,
                 "resource_management_workers": 5
             }
         },
         "task": {
             "uuid": "id123"
         },
         "tenants": {
             "t1": {
                 "name": "t1_name"
             },
             "t2": {
                 "name": "t2_name"
             }
         },
         "users": [{
             "id": "u1",
             "tenant_id": "t1",
             "endpoint": "e1"
         }, {
             "id": "u2",
             "tenant_id": "t2",
             "endpoint": "e2"
         }]
     }
     mock_swift = mock_clients.return_value.swift.return_value
     mock_swift.put_container.side_effect = [
         Exception, True, Exception, Exception
     ]
     objects_ctx = objects.SwiftObjectGenerator(context)
     self.assertRaisesRegexp(exceptions.ContextSetupFailure,
                             "containers, expected 4 but got 1",
                             objects_ctx.setup)
Пример #9
0
 def test_setup_failure_clients_put_container(self, mock_clients):
     context = test.get_test_context()
     context.update({
         "config": {
             "swift_objects": {
                 "containers_per_tenant": 2,
                 "object_size": 10,
                 "resource_management_workers": 5
             }
         },
         "tenants": {
             "t1": {
                 "name": "t1_name"
             },
             "t2": {
                 "name": "t2_name"
             }
         },
         "users": [{
             "id": "u1",
             "tenant_id": "t1",
             "credential": mock.MagicMock()
         }, {
             "id": "u2",
             "tenant_id": "t2",
             "credential": mock.MagicMock()
         }]
     })
     mock_swift = mock_clients.return_value.swift.return_value
     mock_swift.put_container.side_effect = [
         Exception, True, Exception, Exception
     ]
     objects_ctx = objects.SwiftObjectGenerator(context)
     self.assertRaisesRegex(exceptions.ContextSetupFailure,
                            "containers, expected 4 but got 1",
                            objects_ctx.setup)