コード例 #1
0
    def test_get_image_data(self, mock_waitall, mock_start, mock_spawn,
                            create_pipe):
        mock_tarpipe_out = mock.Mock()
        mock_tarpipe_in = mock.Mock()
        create_pipe.return_value = (mock_tarpipe_out, mock_tarpipe_in)
        image_cmd = vdi_handler.GenerateImageStream(self.context, self.session,
                                                    self.instance,
                                                    self.host_url,
                                                    ['vdi_uuid'])
        mock_tarpipe_out.read.side_effect = ['chunk1', 'chunk2', '']

        image_chunks = []
        for chunk in image_cmd.get_image_data():
            image_chunks.append(chunk)

        create_pipe.assert_called_once_with()
        mock_spawn.assert_called_once_with(mock_start, mock_tarpipe_in)
        self.assertEqual(image_chunks, ['chunk1', 'chunk2'])
コード例 #2
0
    def test_start_stream_generator_none_level(self, mock_stream):
        # Verify the vdi_handler.DEFAULT_COMPRESSLEVEL should be used,
        # if no compresslevel specified in GenerateImageStream.
        mock_stream_obj = mock.Mock()
        mock_stream.return_value = mock_stream_obj
        generator = vdi_handler.GenerateImageStream(self.context, self.session,
                                                    self.instance,
                                                    self.host_url,
                                                    ['vdi_uuid'])
        fake_tarpipe_in = mock.Mock()

        generator.start_image_stream_generator(fake_tarpipe_in)

        mock_stream.assert_called_once_with(self.context, self.session,
                                            self.instance, self.host_url,
                                            ['vdi_uuid'], fake_tarpipe_in,
                                            vdi_handler.DEFAULT_COMPRESSLEVEL)
        mock_stream_obj.start.assert_called_once_with()
        fake_tarpipe_in.close.assert_called_once_with()
コード例 #3
0
    def test_start_stream_generator(self, mock_stream):
        # Verify the specified compress level should be used,
        # if a compresslevel specified in GenerateImageStream.
        compr_level = 9
        mock_stream_obj = mock.Mock()
        mock_stream.return_value = mock_stream_obj
        generator = vdi_handler.GenerateImageStream(self.context,
                                                    self.session,
                                                    self.instance,
                                                    self.host_url,
                                                    ['vdi_uuid'],
                                                    compresslevel=compr_level)
        fake_tarpipe_in = mock.Mock()

        generator.start_image_stream_generator(fake_tarpipe_in)

        mock_stream.assert_called_once_with(self.context, self.session,
                                            self.instance, self.host_url,
                                            ['vdi_uuid'], fake_tarpipe_in,
                                            compr_level)
        mock_stream_obj.start.assert_called_once_with()
        fake_tarpipe_in.close.assert_called_once_with()
コード例 #4
0
def stream_from_vdis(context, session, instance, host_url, vdi_uuids,
                     compresslevel=vdi_handler.DEFAULT_COMPRESSLEVEL):
    handler = vdi_handler.GenerateImageStream(context, session, instance,
                                              host_url, vdi_uuids,
                                              compresslevel)
    return handler.get_image_data()
コード例 #5
0
ファイル: __init__.py プロジェクト: LazyUncle/os-xenapi
def stream_from_vdis(context, session, instance, host_url, vdi_uuids):
    handler = vdi_handler.GenerateImageStream(context, session, instance,
                                              host_url, vdi_uuids)
    return handler.get_image_data()