Ejemplo n.º 1
0
    def setUp(self):
        super(TestCopyImageTask, self).setUp()

        self.db = unit_test_utils.FakeDB(initialize=False)
        self._create_images()
        self.image_repo = mock.MagicMock()
        self.task_repo = mock.MagicMock()
        self.image_id = UUID1
        self.staging_store = mock.MagicMock()
        self.task_factory = domain.TaskFactory()

        task_input = {
            "import_req": {
                'method': {
                    'name': 'copy-image',
                },
                'stores': ['fast']
            }
        }
        task_ttl = CONF.task.task_time_to_live

        self.task_type = 'import'
        self.task = self.task_factory.new_task(self.task_type,
                                               TENANT1,
                                               task_time_to_live=task_ttl,
                                               task_input=task_input)

        stores = {'cheap': 'file', 'fast': 'file'}
        self.config(enabled_backends=stores)
        store_api.register_store_opts(CONF, reserved_stores=RESERVED_STORES)
        self.config(default_backend='fast', group='glance_store')
        store_api.create_multi_stores(CONF, reserved_stores=RESERVED_STORES)
Ejemplo n.º 2
0
    def setUp(self):
        super(TestImportTask, self).setUp()
        self.task_factory = domain.TaskFactory()
        task_input = {
            "import_from": "http://cloud.foo/image.qcow2",
            "import_from_format": "qcow2",
            "image_properties": mock.sentinel.image_properties
        }
        task_ttl = CONF.task.task_time_to_live

        self.task_type = 'import'
        self.task = self.task_factory.new_task(self.task_type,
                                               TENANT1,
                                               task_time_to_live=task_ttl,
                                               task_input=task_input)

        self.context = mock.Mock()
        self.img_repo = mock.Mock()
        self.task_repo = mock.Mock()
        self.img_factory = mock.Mock()

        glance_store.register_opts(CONF)
        self.config(default_store='file',
                    stores=['file', 'http'],
                    filesystem_store_datadir=self.test_dir,
                    group="glance_store")
        glance_store.create_stores(CONF)
Ejemplo n.º 3
0
    def setUp(self):
        super(TestWebDownloadTask, self).setUp()

        self.config(node_staging_uri='/tmp/staging')
        self.image_repo = mock.MagicMock()
        self.image_id = mock.MagicMock()
        self.uri = mock.MagicMock()
        self.task_factory = domain.TaskFactory()

        task_input = {
            "import_req": {
                'method': {
                    'name': 'web_download',
                    'uri': 'http://cloud.foo/image.qcow2'
                }
            }
        }
        task_ttl = CONF.task.task_time_to_live

        self.task_type = 'import'
        request_id = 'fake_request_id'
        user_id = 'fake_user'
        self.task = self.task_factory.new_task(self.task_type,
                                               TENANT1,
                                               self.image_id,
                                               user_id,
                                               request_id,
                                               task_time_to_live=task_ttl,
                                               task_input=task_input)

        self.task_id = self.task.task_id
        self.action_wrapper = api_image_import.ImportActionWrapper(
            self.image_repo, self.image_id, self.task_id)
        self.image_repo.get.return_value = mock.MagicMock(
            extra_properties={'os_glance_import_task': self.task_id})
Ejemplo n.º 4
0
 def setUp(self):
     super(TestTask, self).setUp()
     self.task_factory = domain.TaskFactory()
     task_type = 'import'
     owner = TENANT1
     task_ttl = CONF.task.task_time_to_live
     self.task = self.task_factory.new_task(task_type,
                                            owner,
                                            task_time_to_live=task_ttl)
Ejemplo n.º 5
0
 def setUp(self):
     super(TestTask, self).setUp()
     self.task_factory = domain.TaskFactory()
     task_type = 'import'
     task_input = ('{"import_from": "file:///home/a.img",'
                   ' "import_from_format": "qcow2"}')
     owner = TENANT1
     self.gateway = unittest_utils.FakeGateway()
     self.task = self.task_factory.new_task(task_type, task_input, owner)
Ejemplo n.º 6
0
    def setUp(self):
        super(TestConvertImageTask, self).setUp()

        glance_store.register_opts(CONF)
        self.config(default_store='file',
                    stores=['file', 'http'],
                    filesystem_store_datadir=self.test_dir,
                    group="glance_store")
        self.config(output_format='qcow2', group='image_conversion')
        glance_store.create_stores(CONF)

        self.work_dir = os.path.join(self.test_dir, 'work_dir')
        utils.safe_mkdirs(self.work_dir)
        self.config(work_dir=self.work_dir, group='task')

        self.context = mock.MagicMock()
        self.img_repo = mock.MagicMock()
        self.task_repo = mock.MagicMock()
        self.image_id = UUID1

        self.gateway = gateway.Gateway()
        self.task_factory = domain.TaskFactory()
        self.img_factory = self.gateway.get_image_factory(self.context)
        self.image = self.img_factory.new_image(image_id=self.image_id,
                                                disk_format='raw',
                                                container_format='bare')

        task_input = {
            "import_from": "http://cloud.foo/image.raw",
            "import_from_format": "raw",
            "image_properties": {
                'disk_format': 'raw',
                'container_format': 'bare'
            }
        }

        task_ttl = CONF.task.task_time_to_live

        self.task_type = 'import'
        request_id = 'fake_request_id'
        user_id = 'fake_user'
        self.task = self.task_factory.new_task(self.task_type,
                                               TENANT1,
                                               self.image_id,
                                               user_id,
                                               request_id,
                                               task_time_to_live=task_ttl,
                                               task_input=task_input)

        self.image.extra_properties = {
            'os_glance_import_task': self.task.task_id
        }
        self.wrapper = import_flow.ImportActionWrapper(self.img_repo,
                                                       self.image_id,
                                                       self.task.task_id)
Ejemplo n.º 7
0
 def test_task_stub_init(self):
     self.task_factory = domain.TaskFactory()
     task = domain.TaskStub(self.task_id, self.task_type, 'status',
                            self.owner, 'expires_at', 'created_at',
                            'updated_at')
     self.assertEqual(self.task_id, task.task_id)
     self.assertEqual(self.task_type, task.type)
     self.assertEqual(self.owner, task.owner)
     self.assertEqual('status', task.status)
     self.assertEqual('expires_at', task.expires_at)
     self.assertEqual('created_at', task.created_at)
     self.assertEqual('updated_at', task.updated_at)
Ejemplo n.º 8
0
 def setUp(self):
     super(TestTask, self).setUp()
     self.task_factory = domain.TaskFactory()
     task_type = 'import'
     image_id = 'fake_image_id'
     user_id = 'fake_user'
     request_id = 'fake_request_id'
     owner = TENANT1
     task_ttl = CONF.task.task_time_to_live
     self.task = self.task_factory.new_task(task_type,
                                            owner,
                                            image_id,
                                            user_id,
                                            request_id,
                                            task_time_to_live=task_ttl)
Ejemplo n.º 9
0
    def setUp(self):
        # NOTE(danms): Makes sure that we have a model set to something
        glance.async_._THREADPOOL_MODEL = None
        glance.async_.set_threadpool_model('eventlet')

        super(TestTaskExecutor, self).setUp()

        glance_store.register_opts(CONF)
        self.config(default_store='file',
                    stores=['file', 'http'],
                    filesystem_store_datadir=self.test_dir,
                    group="glance_store")
        glance_store.create_stores(CONF)

        self.config(engine_mode='serial', group='taskflow_executor')

        self.context = mock.Mock()
        self.task_repo = mock.Mock()
        self.image_repo = mock.Mock()
        self.image_factory = mock.Mock()

        task_input = {
            "import_from": "http://cloud.foo/image.qcow2",
            "import_from_format": "qcow2",
            "image_properties": {
                'disk_format': 'qcow2',
                'container_format': 'bare'
            }
        }
        task_ttl = CONF.task.task_time_to_live

        self.task_type = 'import'
        image_id = 'fake-image-id'
        request_id = 'fake_request_id'
        user_id = 'fake_user'
        self.task_factory = domain.TaskFactory()
        self.task = self.task_factory.new_task(self.task_type,
                                               TENANT1,
                                               image_id,
                                               user_id,
                                               request_id,
                                               task_time_to_live=task_ttl,
                                               task_input=task_input)

        self.executor = taskflow_executor.TaskExecutor(self.context,
                                                       self.task_repo,
                                                       self.image_repo,
                                                       self.image_factory)
Ejemplo n.º 10
0
    def setUp(self):
        super(TestImportTask, self).setUp()

        glance_store.register_opts(CONF)
        self.config(default_store='file',
                    stores=['file', 'http'],
                    filesystem_store_datadir=self.test_dir,
                    group="glance_store")
        glance_store.create_stores(CONF)

        self.work_dir = os.path.join(self.test_dir, 'work_dir')
        utils.safe_mkdirs(self.work_dir)
        self.config(work_dir=self.work_dir, group='task')

        self.context = context.RequestContext(user_id=TENANT1,
                                              project_id=TENANT1,
                                              overwrite=False)
        self.img_repo = mock.MagicMock()
        self.task_repo = mock.MagicMock()

        self.gateway = gateway.Gateway()
        self.task_factory = domain.TaskFactory()
        self.img_factory = self.gateway.get_image_factory(self.context)
        self.image = self.img_factory.new_image(image_id=UUID1,
                                                disk_format='qcow2',
                                                container_format='bare')

        task_input = {
            "import_from": "http://cloud.foo/image.qcow2",
            "import_from_format": "qcow2",
            "image_properties": {
                'disk_format': 'qcow2',
                'container_format': 'bare'
            }
        }
        task_ttl = CONF.task.task_time_to_live

        self.task_type = 'import'
        request_id = 'fake_request_id'
        user_id = 'fake_user'
        self.task = self.task_factory.new_task(self.task_type,
                                               TENANT1,
                                               UUID1,
                                               user_id,
                                               request_id,
                                               task_time_to_live=task_ttl,
                                               task_input=task_input)
Ejemplo n.º 11
0
    def setUp(self):
        super(TestTaskExecutor, self).setUp()

        glance_store.register_opts(CONF)
        self.config(default_store='file',
                    stores=['file', 'http'],
                    filesystem_store_datadir=self.test_dir,
                    group="glance_store")
        glance_store.create_stores(CONF)

        self.config(engine_mode='serial', group='taskflow_executor')

        self.context = mock.Mock()
        self.task_repo = mock.Mock()
        self.image_repo = mock.Mock()
        self.image_factory = mock.Mock()

        task_input = {
            "import_from": "http://cloud.foo/image.qcow2",
            "import_from_format": "qcow2",
            "image_properties": {
                'disk_format': 'qcow2',
                'container_format': 'bare'
            }
        }
        task_ttl = CONF.task.task_time_to_live

        self.task_type = 'import'
        self.task_factory = domain.TaskFactory()
        self.task = self.task_factory.new_task(self.task_type,
                                               TENANT1,
                                               task_time_to_live=task_ttl,
                                               task_input=task_input)

        self.executor = taskflow_executor.TaskExecutor(self.context,
                                                       self.task_repo,
                                                       self.image_repo,
                                                       self.image_factory)
Ejemplo n.º 12
0
    def setUp(self):
        super(TestWebDownloadTask, self).setUp()

        self.config(node_staging_uri='/tmp/staging')
        self.task_repo = mock.MagicMock()
        self.image_id = mock.MagicMock()
        self.uri = mock.MagicMock()
        self.task_factory = domain.TaskFactory()

        task_input = {
            "import_req": {
                'method': {
                    'name': 'web_download',
                    'uri': 'http://cloud.foo/image.qcow2'
                }
            }
        }
        task_ttl = CONF.task.task_time_to_live

        self.task_type = 'import'
        self.task = self.task_factory.new_task(self.task_type, TENANT1,
                                               task_time_to_live=task_ttl,
                                               task_input=task_input)
Ejemplo n.º 13
0
 def setUp(self):
     super(TestTaskFactory, self).setUp()
     self.task_factory = domain.TaskFactory()