Пример #1
0
    def test_sr_primary_enabled_basic(self):
        '''
        Test to check sr_primary_enabled when hana is already set as primary
        node with basic setup
        '''
        name = 'SITE1'

        ret = {
            'name': name,
            'changes': {
                'primary': name
            },
            'result': True,
            'comment': 'HANA node set as {}'.format('PRIMARY')
        }

        mock_installed = MagicMock(return_value=True)
        mock_running = MagicMock(return_value=True)
        mock_state = MagicMock(side_effect=['DISABLED', 'PRIMARY'])
        mock_enable = MagicMock()
        with patch.dict(
                hanamod.__salt__, {
                    'hana.is_installed': mock_installed,
                    'hana.is_running': mock_running,
                    'hana.get_sr_state': mock_state,
                    'hana.sr_enable_primary': mock_enable
                }):
            assert hanamod.sr_primary_enabled(name, 'pdr', '00', 'pass') == ret
            mock_enable.assert_called_once_with(name=name,
                                                sid='pdr',
                                                inst='00',
                                                password='******')
Пример #2
0
    def test_sr_primary_enabled_test(self):
        '''
        Test to check sr_primary_enabled in test mode
        '''
        name = 'SITE1'

        ret = {
            'name': name,
            'changes': {
                'primary': name,
                'backup': None,
                'userkey': None
            },
            'result': None,
            'comment': '{} would be enabled as a primary node'.format(name)
        }

        mock_installed = MagicMock(return_value=True)
        mock_running = MagicMock(return_value=True)
        mock_state = MagicMock()
        with patch.dict(
                hanamod.__salt__, {
                    'hana.is_installed': mock_installed,
                    'hana.is_running': mock_running,
                    'hana.get_sr_state': mock_state
                }):
            with patch.dict(hanamod.__opts__, {'test': True}):
                assert hanamod.sr_primary_enabled(name, 'pdr', '00',
                                                  'pass') == ret
Пример #3
0
    def test_sr_primary_enabled(self):
        '''
        Test to check sr_primary_enabled when hana is already set as primary
        node
        '''
        name = 'SITE1'

        ret = {
            'name': name,
            'changes': {},
            'result': True,
            'comment': 'HANA node already set as primary and running'
        }

        mock_installed = MagicMock(return_value=True)
        with patch.dict(hanamod.__salt__,
                        {'hana.is_installed': mock_installed}):
            mock_running = MagicMock(return_value=True)
            mock_state = MagicMock(return_value='PRIMARY')

            with patch.dict(hanamod.__salt__, {
                    'hana.is_running': mock_running,
                    'hana.get_sr_state': mock_state
            }):
                assert hanamod.sr_primary_enabled(name, 'pdr', '00',
                                                  'pass') == ret
Пример #4
0
    def test_sr_primary_enabled_not_installed(self):
        '''
        Test to check sr_primary_enabled when hana is not installed
        '''
        name = 'SITE1'

        ret = {
            'name': name,
            'changes': {},
            'result': False,
            'comment': 'HANA is not installed properly with the provided data'
        }

        mock_installed = MagicMock(return_value=False)
        with patch.dict(hanamod.__salt__,
                        {'hana.is_installed': mock_installed}):
            assert hanamod.sr_primary_enabled(name, 'pdr', '00', 'pass') == ret
Пример #5
0
    def test_sr_primary_enabled_error(self):
        '''
        Test to check sr_primary_enabled when hana is already set as primary
        node and some hana command fail
        '''
        name = 'SITE1'

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

        mock_installed = MagicMock(return_value=True)
        mock_running = MagicMock(return_value=False)
        state = MagicMock()
        state_primary = MagicMock()
        state_primary.name = 'PRIMARY'
        mock_state = MagicMock(side_effect=[state, state_primary])
        mock_start = MagicMock()
        mock_enable = MagicMock(
            side_effect=exceptions.CommandExecutionError('hana command error'))
        with patch.dict(
                hanamod.__salt__, {
                    'hana.is_installed': mock_installed,
                    'hana.is_running': mock_running,
                    'hana.get_sr_state': mock_state,
                    'hana.start': mock_start,
                    'hana.sr_enable_primary': mock_enable
                }):
            assert hanamod.sr_primary_enabled(name, 'pdr', '00', 'pass') == ret
            mock_start.assert_called_once_with(sid='pdr',
                                               inst='00',
                                               password='******')
            mock_enable.assert_called_once_with(name=name,
                                                sid='pdr',
                                                inst='00',
                                                password='******')
Пример #6
0
    def test_sr_primary_enabled_complex(self):
        '''
        Test to check sr_primary_enabled when hana is already set as primary
        node with complex setup (backup and userkey created)
        '''
        name = 'SITE1'

        ret = {
            'name': name,
            'changes': {
                'primary': name,
                'userkey': 'key',
                'backup': 'file'
            },
            'result': True,
            'comment': 'HANA node set as {}'.format('PRIMARY')
        }

        userkey = [{
            'key_name': 'key'
        }, {
            'environment': 'env'
        }, {
            'user_name': 'user'
        }, {
            'user_password': '******'
        }, {
            'database': 'database'
        }]

        backup = [{
            'key_name': 'key'
        }, {
            'user_name': 'user'
        }, {
            'user_password': '******'
        }, {
            'database': 'database'
        }, {
            'file': 'file'
        }]

        mock_installed = MagicMock(return_value=True)
        mock_running = MagicMock(return_value=False)
        mock_state = MagicMock(side_effect=['DISABLED', 'PRIMARY'])
        mock_start = MagicMock()
        mock_enable = MagicMock()
        mock_userkey = MagicMock()
        mock_backup = MagicMock()
        with patch.dict(
                hanamod.__salt__, {
                    'hana.is_installed': mock_installed,
                    'hana.is_running': mock_running,
                    'hana.get_sr_state': mock_state,
                    'hana.start': mock_start,
                    'hana.sr_enable_primary': mock_enable,
                    'hana.create_user_key': mock_userkey,
                    'hana.create_backup': mock_backup
                }):
            assert hanamod.sr_primary_enabled(name,
                                              'pdr',
                                              '00',
                                              'pass',
                                              userkey=userkey,
                                              backup=backup) == ret
            mock_start.assert_called_once_with(sid='pdr',
                                               inst='00',
                                               password='******')
            mock_enable.assert_called_once_with(name=name,
                                                sid='pdr',
                                                inst='00',
                                                password='******')
            mock_userkey.assert_called_once_with(key_name='key',
                                                 environment='env',
                                                 user_name='user',
                                                 user_password='******',
                                                 database='database',
                                                 sid='pdr',
                                                 inst='00',
                                                 password='******')
            mock_backup.assert_called_once_with(key_name='key',
                                                user_name='user',
                                                user_password='******',
                                                database='database',
                                                backup_name='file',
                                                sid='pdr',
                                                inst='00',
                                                password='******')