コード例 #1
0
 def test_web_download_revert_with_failure_without_path(self,
                                                        mock_store_api):
     result = failure.Failure.from_exception(
         glance.common.exception.ImportTaskError())
     web_download_task = web_download._WebDownload(
         self.task.task_id, self.task_type, self.task_repo,
         self.image_id, self.uri)
     web_download_task.revert(result)
     mock_store_api.delete_from_backend.assert_not_called()
コード例 #2
0
 def test_web_download_failed(self):
     web_download_task = web_download._WebDownload(
         self.task.task_id, self.task_type, self.task_repo,
         self.image_id, self.uri)
     with mock.patch.object(script_utils,
                            "get_image_data_iter") as mock_iter:
         mock_iter.side_effect = glance.common.exception.NotFound
         self.assertRaises(glance.common.exception.NotFound,
                           web_download_task.execute)
コード例 #3
0
ファイル: test_web_download.py プロジェクト: mahak/glance
 def test_web_download_failed(self):
     web_download_task = web_download._WebDownload(
         self.task.task_id, self.task_type, self.task_repo,
         self.image_id, self.uri)
     with mock.patch.object(script_utils,
                            "get_image_data_iter") as mock_iter:
         mock_iter.side_effect = glance.common.exception.NotFound
         self.assertRaises(glance.common.exception.NotFound,
                           web_download_task.execute)
コード例 #4
0
ファイル: test_web_download.py プロジェクト: weiqiLee/glance
 def test_web_download(self, mock_add):
     web_download_task = web_download._WebDownload(
         self.task.task_id, self.task_type, self.task_repo,
         self.image_id, self.uri)
     with mock.patch.object(script_utils,
                            'get_image_data_iter') as mock_iter:
         mock_iter.return_value = b"dddd"
         web_download_task.execute()
         mock_add.assert_called_once_with(self.image_id, b"dddd", 0)
コード例 #5
0
ファイル: test_web_download.py プロジェクト: mahak/glance
 def test_web_download(self, mock_add):
     web_download_task = web_download._WebDownload(
         self.task.task_id, self.task_type, self.task_repo,
         self.image_id, self.uri)
     with mock.patch.object(script_utils,
                            'get_image_data_iter') as mock_iter:
         mock_iter.return_value = b"dddd"
         web_download_task.execute()
         mock_add.assert_called_once_with(self.image_id, b"dddd", 0)
コード例 #6
0
 def test_web_download_with_invalid_content_length(self, mock_add):
     web_download_task = web_download._WebDownload(
         self.task.task_id, self.task_type, self.task_repo,
         self.image_id, self.uri)
     with mock.patch.object(script_utils,
                            'get_image_data_iter') as mock_iter:
         mock_iter.return_value.headers = {'content-length': "not_valid"}
         mock_add.return_value = ["path", 4]
         self.assertEqual(web_download_task.execute(), "path")
         mock_add.assert_called_once_with(self.image_id,
                                          mock_iter.return_value, 0)
コード例 #7
0
 def test_web_download_delete_fails_on_revert(self, mock_store_api):
     result = failure.Failure.from_exception(
         glance.common.exception.ImportTaskError())
     mock_store_api.delete_from_backend.side_effect = Exception
     web_download_task = web_download._WebDownload(
         self.task.task_id, self.task_type, self.task_repo,
         self.image_id, self.uri)
     web_download_task._path = "/path/to_downloaded_data"
     # this will verify that revert does not break because of failure
     # while deleting data in staging area
     web_download_task.revert(result)
コード例 #8
0
 def test_web_download_fails_when_data_size_different(self, mock_add):
     web_download_task = web_download._WebDownload(
         self.task.task_id, self.task_type, self.task_repo,
         self.image_id, self.uri)
     with mock.patch.object(script_utils,
                            'get_image_data_iter') as mock_iter:
         mock_iter.return_value.headers = {'content-length': '4'}
         mock_add.return_value = ["path", 3]
         self.assertRaises(
             glance.common.exception.ImportTaskError,
             web_download_task.execute)
コード例 #9
0
 def test_web_download_revert_with_failure_with_path(self, mock_store_api):
     result = failure.Failure.from_exception(
         glance.common.exception.ImportTaskError())
     web_download_task = web_download._WebDownload(self.task.task_id,
                                                   self.task_type, self.uri,
                                                   self.action_wrapper,
                                                   ['foo'])
     web_download_task._path = "/path/to_downloaded_data"
     web_download_task.revert(result)
     mock_store_api.delete_from_backend.assert_called_once_with(
         "/path/to_downloaded_data")
コード例 #10
0
 def test_web_download(self, mock_add):
     web_download_task = web_download._WebDownload(self.task.task_id,
                                                   self.task_type, self.uri,
                                                   self.action_wrapper,
                                                   ['foo'])
     with mock.patch.object(script_utils,
                            'get_image_data_iter') as mock_iter:
         mock_add.return_value = ["path", 4]
         mock_iter.return_value.headers = {}
         self.assertEqual(web_download_task.execute(), "path")
         mock_add.assert_called_once_with(self.image_id,
                                          mock_iter.return_value, 0)
コード例 #11
0
 def test_web_download_revert_without_failure_multi_store(
         self, mock_store_api):
     enabled_backends = {'fast': 'file', 'cheap': 'file'}
     self.config(enabled_backends=enabled_backends)
     web_download_task = web_download._WebDownload(self.task.task_id,
                                                   self.task_type, self.uri,
                                                   self.action_wrapper,
                                                   ['foo'])
     web_download_task._path = "/path/to_downloaded_data"
     web_download_task.revert("/path/to_downloaded_data")
     mock_store_api.delete.assert_called_once_with(
         "/path/to_downloaded_data", None)
コード例 #12
0
    def test_web_download_revert_with_failure(self, mock_store_api,
                                              mock_add):
        web_download_task = web_download._WebDownload(
            self.task.task_id, self.task_type, self.task_repo,
            self.image_id, self.uri)
        with mock.patch.object(script_utils,
                               'get_image_data_iter') as mock_iter:
            mock_iter.return_value.headers = {'content-length': '4'}
            mock_add.return_value = "/path/to_downloaded_data", 3
            self.assertRaises(
                glance.common.exception.ImportTaskError,
                web_download_task.execute)

        web_download_task.revert(None)
        mock_store_api.delete_from_backend.assert_called_once_with(
            "/path/to_downloaded_data")
コード例 #13
0
    def test_web_download_revert_with_failure_without_path(
            self, mock_store_api):
        image = self.image_repo.get.return_value
        image.status = 'importing'
        image.extra_properties['os_glance_importing_to_stores'] = 'foo'
        image.extra_properties['os_glance_failed_import'] = ''
        result = failure.Failure.from_exception(
            glance.common.exception.ImportTaskError())
        web_download_task = web_download._WebDownload(self.task.task_id,
                                                      self.task_type, self.uri,
                                                      self.action_wrapper,
                                                      ['foo'])
        web_download_task.revert(result)
        mock_store_api.delete_from_backend.assert_not_called()

        # NOTE(danms): Since we told revert that we were the problem,
        # we should have updated the image status and moved the stores
        # to the failed list.
        self.image_repo.save.assert_called_once_with(image, 'importing')
        self.assertEqual('queued', image.status)
        self.assertEqual(
            '', image.extra_properties['os_glance_importing_to_stores'])
        self.assertEqual('foo',
                         image.extra_properties['os_glance_failed_import'])
コード例 #14
0
    def test_web_download_revert_with_failure(self, mock_store_api, mock_add):
        image = self.image_repo.get.return_value
        image.extra_properties['os_glance_importing_to_stores'] = 'foo'
        image.extra_properties['os_glance_failed_import'] = ''
        web_download_task = web_download._WebDownload(self.task.task_id,
                                                      self.task_type, self.uri,
                                                      self.action_wrapper,
                                                      ['foo'])
        with mock.patch.object(script_utils,
                               'get_image_data_iter') as mock_iter:
            mock_iter.return_value.headers = {'content-length': '4'}
            mock_add.return_value = "/path/to_downloaded_data", 3
            self.assertRaises(glance.common.exception.ImportTaskError,
                              web_download_task.execute)

        web_download_task.revert(None)
        mock_store_api.delete_from_backend.assert_called_once_with(
            "/path/to_downloaded_data")
        # NOTE(danms): Since we told revert that we were not at fault,
        # we should not have updated the image.
        self.image_repo.save.assert_not_called()
        self.assertEqual(
            'foo', image.extra_properties['os_glance_importing_to_stores'])
        self.assertEqual('', image.extra_properties['os_glance_failed_import'])