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='******')
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
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
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
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='******')
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='******')