File: test_host_glance.py

package info (click to toggle)
python-os-xenapi 0.3.4-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 1,012 kB
  • sloc: python: 8,137; sh: 2,154; makefile: 45
file content (94 lines) | stat: -rw-r--r-- 3,875 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# Copyright 2017 Citrix Systems
#
#    Licensed under the Apache License, Version 2.0 (the "License"); you may
#    not use this file except in compliance with the License. You may obtain
#    a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#    License for the specific language governing permissions and limitations
#    under the License.

import mock

from os_xenapi.client import exception
from os_xenapi.client import host_glance
from os_xenapi.client import XenAPI
from os_xenapi.tests import base


class HostGlanceTestCase(base.TestCase):
    def test_upload_vhd(self):
        session = mock.Mock()
        num_retries = 'fake_num_retries'
        callback = 'fake_callback'
        retry_cb = 'fake_retry_cb'
        image_id = 'fake_image_id'
        sr_path = 'fake_sr_path'
        extra_headers = 'fake_extra_headers'
        vdi_uuids = 'fake_vdi_uuids'
        properties = {}
        args = {'image_id': image_id, 'sr_path': sr_path,
                'extra_headers': extra_headers, 'vdi_uuids': vdi_uuids,
                'properties': properties}
        host_glance.upload_vhd(session, num_retries, callback, retry_cb,
                               image_id, sr_path, extra_headers, vdi_uuids,
                               properties)
        session.call_plugin_serialized_with_retry.assert_called_with(
            'glance.py', 'upload_vhd2', num_retries, callback, retry_cb, **args
        )

    def test_upload_vhd_xenapi_failure_image_not_found(self):
        session = mock.Mock()
        num_retries = 'fake_num_retries'
        callback = 'fake_callback'
        retry_cb = 'fake_retry_cb'
        image_id = 'fake_image_id'
        sr_path = 'fake_sr_path'
        extra_headers = 'fake_extra_headers'
        vdi_uuids = 'fake_vdi_uuids'
        properties = {}
        args = {'image_id': image_id, 'sr_path': sr_path,
                'extra_headers': extra_headers, 'vdi_uuids': vdi_uuids,
                'properties': properties}

        session.call_plugin_serialized_with_retry.side_effect = XenAPI.Failure(
            ('XENAPI_PLUGIN_FAILURE', 'upload_vhd2',
             'PluginError', 'ImageNotFound')
        )
        self.assertRaises(exception.PluginImageNotFound,
                          host_glance.upload_vhd, session, num_retries,
                          callback, retry_cb, image_id, sr_path, extra_headers,
                          vdi_uuids, properties)

        session.call_plugin_serialized_with_retry.assert_called_with(
            'glance.py', 'upload_vhd2', num_retries, callback, retry_cb, **args
        )

    def test_upload_vhd_xenapi_failure_reraise(self):
        session = mock.Mock()
        num_retries = 'fake_num_retries'
        callback = 'fake_callback'
        retry_cb = 'fake_retry_cb'
        image_id = 'fake_image_id'
        sr_path = 'fake_sr_path'
        extra_headers = 'fake_extra_headers'
        vdi_uuids = 'fake_vdi_uuids'
        properties = {}
        args = {'image_id': image_id, 'sr_path': sr_path,
                'extra_headers': extra_headers, 'vdi_uuids': vdi_uuids,
                'properties': properties}

        session.call_plugin_serialized_with_retry.side_effect = XenAPI.Failure(
            ('untouch')
        )
        self.assertRaises(XenAPI.Failure, host_glance.upload_vhd, session,
                          num_retries, callback, retry_cb, image_id, sr_path,
                          extra_headers, vdi_uuids, properties)

        session.call_plugin_serialized_with_retry.assert_called_with(
            'glance.py', 'upload_vhd2', num_retries, callback, retry_cb, **args
        )