2021-04-26 20:07:00 +02:00
|
|
|
#coding:utf-8
|
2022-01-27 20:08:36 +01:00
|
|
|
|
|
|
|
"""
|
|
|
|
ID: issue-6570
|
|
|
|
ISSUE: 6570
|
2022-06-19 08:56:44 +02:00
|
|
|
TITLE: GBAK with service_mgr and WinSSPI authentication for Windows SYSTEM user producing error in clumplet API
|
|
|
|
DESCRIPTION: Initially checked on 4.0.0.2066 SS/CS, 3.0.6.33212 SS/CS.
|
2022-01-27 20:08:36 +01:00
|
|
|
JIRA: CORE-6329
|
2022-02-02 15:46:19 +01:00
|
|
|
FBTEST: bugs.core_6329
|
2022-06-19 08:56:44 +02:00
|
|
|
NOTES:
|
|
|
|
[19.06.2022] pzotov
|
|
|
|
Confirmed bug on: 3.0.6.33301, 4.0.0.2035
|
|
|
|
Got: "gbak: ERROR:Internal error when using clumplet API: attempt to store <NNN> bytes in a clumplet with maximum size 255 bytes"
|
|
|
|
NB: ISC_* variables must be removed from environtment for this test properly run.
|
|
|
|
Checked on 4.0.1.2692, 3.0.8.33535.
|
2022-01-27 20:08:36 +01:00
|
|
|
"""
|
2022-06-19 08:56:44 +02:00
|
|
|
import os
|
|
|
|
import socket
|
|
|
|
import getpass
|
|
|
|
from pathlib import Path
|
2021-04-26 20:07:00 +02:00
|
|
|
|
|
|
|
import pytest
|
2022-01-27 20:08:36 +01:00
|
|
|
from firebird.qa import *
|
2021-04-26 20:07:00 +02:00
|
|
|
|
2022-06-19 08:56:44 +02:00
|
|
|
for v in ('ISC_USER','ISC_PASSWORD'):
|
|
|
|
try:
|
|
|
|
del os.environ[ v ]
|
|
|
|
except KeyError as e:
|
|
|
|
pass
|
2021-04-26 20:07:00 +02:00
|
|
|
|
2022-06-19 08:56:44 +02:00
|
|
|
db = db_factory()
|
2022-01-27 20:08:36 +01:00
|
|
|
act = python_act('db')
|
2021-04-26 20:07:00 +02:00
|
|
|
|
2022-06-19 08:56:44 +02:00
|
|
|
tmp_fbk = temp_file( filename = 'tmp_core_6329.fbk')
|
2021-04-26 20:07:00 +02:00
|
|
|
|
2022-01-27 20:08:36 +01:00
|
|
|
@pytest.mark.version('>=3.0.6')
|
|
|
|
@pytest.mark.platform('Windows')
|
2022-06-19 08:56:44 +02:00
|
|
|
def test_1(act: Action, tmp_fbk: Path, capsys):
|
|
|
|
THIS_COMPUTER_NAME = socket.gethostname()
|
|
|
|
CURRENT_WIN_USER = getpass.getuser()
|
|
|
|
|
|
|
|
map_sql = f"""
|
|
|
|
create or alter global mapping tmp_mapping_6329 using plugin win_sspi from user "{THIS_COMPUTER_NAME}\\{CURRENT_WIN_USER}" to user {act.db.user};
|
|
|
|
commit;
|
|
|
|
"""
|
|
|
|
|
|
|
|
act.expected_stdout = ''
|
|
|
|
act.isql(switches=['-q'], input=map_sql, combine_output = True)
|
|
|
|
act_retcode = act.return_code
|
|
|
|
assert act.clean_stdout == act.clean_expected_stdout
|
|
|
|
act.reset()
|
|
|
|
|
|
|
|
if act_retcode == 0:
|
|
|
|
try:
|
|
|
|
act.gbak(switches=['-b', '-se', 'localhost:service_mgr', str(act.db.db_path), str(tmp_fbk)], credentials=False)
|
|
|
|
finally:
|
|
|
|
act.isql(switches=['-q'], input='drop global mapping tmp_mapping_6329;', combine_output = True)
|