Пример #1
0
    def test_volume_attached(self):
        '''
        Test to check if a block volume is attached.
        '''
        name = 'mycloud'
        server_name = 'mycloud_server'
        disk_name = 'trogdor'

        ret = {'name': name, 'result': False, 'changes': {}, 'comment': ''}

        mock = MagicMock(return_value=False)
        mock_dict = MagicMock(side_effect=[{
            name: {
                'name': disk_name,
                'attachments': True
            }
        }, {}, {
            name: {
                'name': disk_name,
                'attachments': False
            }
        }, {
            name: {
                'name': disk_name,
                'attachments': False
            }
        }, {
            name: {
                'name': disk_name,
                'attachments': False
            }
        }])
        with patch.dict(cloud.__salt__, {
                'cloud.volume_list': mock_dict,
                'cloud.action': mock
        }):
            with patch.object(salt.utils.cloud, 'check_name',
                              MagicMock(side_effect=[True, False, True])):
                comt = ('Invalid characters in name.')
                ret.update({'comment': comt})
                self.assertDictEqual(cloud.volume_attached(name, server_name),
                                     ret)

                ret.update({'name': server_name})
                self.assertDictEqual(cloud.volume_attached(name, server_name),
                                     ret)

            comt = ('Volume {0} is already attached: True'.format(disk_name))
            ret.update({'comment': comt, 'result': True})
            self.assertDictEqual(cloud.volume_attached(name, server_name), ret)

            comt = ('Volume {0} does not exist'.format(name))
            ret.update({'comment': comt, 'result': False})
            self.assertDictEqual(cloud.volume_attached(name, server_name), ret)

            comt = ('Server {0} does not exist'.format(server_name))
            ret.update({'comment': comt, 'result': False})
            self.assertDictEqual(cloud.volume_attached(name, server_name), ret)

            mock = MagicMock(return_value=True)
            with patch.dict(cloud.__salt__, {
                    'cloud.action': mock,
                    'cloud.volume_attach': mock
            }):
                with patch.dict(cloud.__opts__, {'test': True}):
                    comt = (
                        'Volume {0} will be will be attached.'.format(name))
                    ret.update({'comment': comt, 'result': None})
                    self.assertDictEqual(
                        cloud.volume_attached(name, server_name), ret)

                with patch.dict(cloud.__opts__, {'test': False}):
                    comt = ('Volume {0} was created'.format(name))
                    ret.update({
                        'comment': comt,
                        'result': True,
                        'changes': {
                            'new': True,
                            'old': {
                                'name': disk_name,
                                'attachments': False
                            }
                        }
                    })
                    self.assertDictEqual(
                        cloud.volume_attached(name, server_name), ret)
Пример #2
0
def test_volume_attached():
    """
    Test to check if a block volume is attached.
    """
    name = "mycloud"
    server_name = "mycloud_server"
    disk_name = "trogdor"

    ret = {"name": name, "result": False, "changes": {}, "comment": ""}

    mock = MagicMock(return_value=False)
    mock_dict = MagicMock(side_effect=[
        {
            name: {
                "name": disk_name,
                "attachments": True
            }
        },
        {},
        {
            name: {
                "name": disk_name,
                "attachments": False
            }
        },
        {
            name: {
                "name": disk_name,
                "attachments": False
            }
        },
        {
            name: {
                "name": disk_name,
                "attachments": False
            }
        },
    ])
    with patch.dict(cloud.__salt__, {
            "cloud.volume_list": mock_dict,
            "cloud.action": mock
    }):
        with patch.object(
                salt.utils.cloud,
                "check_name",
                MagicMock(side_effect=[True, False, True]),
        ):
            comt = "Invalid characters in name."
            ret.update({"comment": comt})
            assert cloud.volume_attached(name, server_name) == ret

            ret.update({"name": server_name})
            assert cloud.volume_attached(name, server_name) == ret

        comt = "Volume {} is already attached: True".format(disk_name)
        ret.update({"comment": comt, "result": True})
        assert cloud.volume_attached(name, server_name) == ret

        comt = "Volume {} does not exist".format(name)
        ret.update({"comment": comt, "result": False})
        assert cloud.volume_attached(name, server_name) == ret

        comt = "Server {} does not exist".format(server_name)
        ret.update({"comment": comt, "result": False})
        assert cloud.volume_attached(name, server_name) == ret

        mock = MagicMock(return_value=True)
        with patch.dict(cloud.__salt__, {
                "cloud.action": mock,
                "cloud.volume_attach": mock
        }):
            with patch.dict(cloud.__opts__, {"test": True}):
                comt = "Volume {} will be will be attached.".format(name)
                ret.update({"comment": comt, "result": None})
                assert cloud.volume_attached(name, server_name) == ret

            with patch.dict(cloud.__opts__, {"test": False}):
                comt = "Volume {} was created".format(name)
                ret.update({
                    "comment": comt,
                    "result": True,
                    "changes": {
                        "new": True,
                        "old": {
                            "name": disk_name,
                            "attachments": False
                        },
                    },
                })
                assert cloud.volume_attached(name, server_name) == ret
Пример #3
0
    def test_volume_attached(self):
        '''
        Test to check if a block volume is attached.
        '''
        name = 'mycloud'
        server_name = 'mycloud_server'
        disk_name = 'trogdor'

        ret = {'name': name,
               'result': False,
               'changes': {},
               'comment': ''}

        mock = MagicMock(return_value=False)
        mock_dict = MagicMock(side_effect=[{name: {'name': disk_name, 'attachments': True}}, {},
                                           {name: {'name': disk_name, 'attachments': False}},
                                           {name: {'name': disk_name, 'attachments': False}},
                                           {name: {'name': disk_name, 'attachments': False}}])
        with patch.dict(cloud.__salt__, {'cloud.volume_list': mock_dict,
                                         'cloud.action': mock}):
            with patch.object(salt.utils.cloud, 'check_name',
                              MagicMock(side_effect=[True, False, True])):
                comt = ('Invalid characters in name.')
                ret.update({'comment': comt})
                self.assertDictEqual(cloud.volume_attached(name, server_name),
                                     ret)

                ret.update({'name': server_name})
                self.assertDictEqual(cloud.volume_attached(name, server_name),
                                     ret)

            comt = ('Volume {0} is already attached: True'.format(disk_name))
            ret.update({'comment': comt, 'result': True})
            self.assertDictEqual(cloud.volume_attached(name, server_name), ret)

            comt = ('Volume {0} does not exist'.format(name))
            ret.update({'comment': comt, 'result': False})
            self.assertDictEqual(cloud.volume_attached(name, server_name), ret)

            comt = ('Server {0} does not exist'.format(server_name))
            ret.update({'comment': comt, 'result': False})
            self.assertDictEqual(cloud.volume_attached(name, server_name), ret)

            mock = MagicMock(return_value=True)
            with patch.dict(cloud.__salt__, {'cloud.action': mock,
                                             'cloud.volume_attach': mock}):
                with patch.dict(cloud.__opts__, {'test': True}):
                    comt = ('Volume {0} will be will be attached.'.format(name))
                    ret.update({'comment': comt, 'result': None})
                    self.assertDictEqual(cloud.volume_attached(name,
                                                               server_name),
                                         ret)

                with patch.dict(cloud.__opts__, {'test': False}):
                    comt = ('Volume {0} was created'.format(name))
                    ret.update({'comment': comt, 'result': True,
                                'changes': {'new': True,
                                            'old': {'name': disk_name,
                                                    'attachments': False}}})
                    self.assertDictEqual(cloud.volume_attached(name,
                                                               server_name),
                                         ret)