Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit0528541

Browse files
author
v.shepard
committed
PBCKP-588 fixes after review - add ConnectionParams
1 parent2e916df commit0528541

File tree

9 files changed

+53
-59
lines changed

9 files changed

+53
-59
lines changed

‎testgres/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
First, \
4747
Any
4848

49-
from .operations.os_opsimportOsOperations
49+
from .operations.os_opsimportOsOperations,ConnectionParams
5050
from .operations.local_opsimportLocalOperations
5151
from .operations.remote_opsimportRemoteOperations
5252

@@ -60,5 +60,5 @@
6060
"PostgresNode","NodeApp",
6161
"reserve_port","release_port","bound_ports","get_bin_path","get_pg_config","get_pg_version",
6262
"First","Any",
63-
"OsOperations","LocalOperations","RemoteOperations"
63+
"OsOperations","LocalOperations","RemoteOperations","ConnectionParams"
6464
]

‎testgres/api.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,10 @@ def get_new_node(name=None, base_dir=None, **kwargs):
3737
"""
3838
Simply a wrapper around :class:`.PostgresNode` constructor.
3939
See :meth:`.PostgresNode.__init__` for details.
40-
For remote connection you can add next parameters:
41-
host='127.0.0.1',
42-
hostname='localhost',
43-
ssh_key=None,
44-
username=default_username()
40+
For remote connection you can add the next parameter:
41+
conn_params = ConnectionParams(host='127.0.0.1',
42+
ssh_key=None,
43+
username=default_username())
4544
"""
4645
# NOTE: leave explicit 'name' and 'base_dir' for compatibility
4746
returnPostgresNode(name=name,base_dir=base_dir,**kwargs)

‎testgres/backup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ def spawn_primary(self, name=None, destroy=True):
139139

140140
# Build a new PostgresNode
141141
NodeClass=self.original_node.__class__
142-
withclean_on_error(NodeClass(name=name,base_dir=base_dir,os_ops=self.original_node.os_ops))asnode:
142+
withclean_on_error(NodeClass(name=name,base_dir=base_dir,conn_params=self.original_node.os_ops.conn_params))asnode:
143143

144144
# New nodes should always remove dir tree
145145
node._should_rm_dirs=True

‎testgres/node.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@
9494

9595
from .backupimportNodeBackup
9696

97+
from .operations.os_opsimportConnectionParams
9798
from .operations.local_opsimportLocalOperations
9899
from .operations.remote_opsimportRemoteOperations
99100

@@ -125,8 +126,7 @@ def __repr__(self):
125126

126127

127128
classPostgresNode(object):
128-
def__init__(self,name=None,port=None,base_dir=None,
129-
host='127.0.0.1',hostname='localhost',ssh_key=None,username=default_username(),os_ops=None):
129+
def__init__(self,name=None,port=None,base_dir=None,conn_params:ConnectionParams=ConnectionParams()):
130130
"""
131131
PostgresNode constructor.
132132
@@ -146,17 +146,14 @@ def __init__(self, name=None, port=None, base_dir=None,
146146
# basic
147147
self.name=nameorgenerate_app_name()
148148

149-
ifos_ops:
150-
self.os_ops=os_ops
151-
elifssh_key:
152-
self.os_ops=RemoteOperations(host=host,hostname=hostname,ssh_key=ssh_key,username=username)
149+
ifconn_params.ssh_key:
150+
self.os_ops=RemoteOperations(conn_params)
153151
else:
154-
self.os_ops=LocalOperations(host=host,hostname=hostname,username=username)
152+
self.os_ops=LocalOperations(conn_params)
155153

156-
self.port=self.os_ops.portorreserve_port()
154+
self.port=portorreserve_port()
157155

158156
self.host=self.os_ops.host
159-
self.hostname=self.os_ops.hostname
160157
self.ssh_key=self.os_ops.ssh_key
161158

162159
testgres_config.os_ops=self.os_ops
@@ -628,7 +625,7 @@ def status(self):
628625
status_code,out,err=execute_utility(_params,self.utils_log_file,verbose=True)
629626
if'does not exist'inerr:
630627
returnNodeStatus.Uninitialized
631-
elif'no server running'inout:
628+
elif'no server running'inout:
632629
returnNodeStatus.Stopped
633630
returnNodeStatus.Running
634631

‎testgres/operations/local_ops.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77

88
importpsutil
99

10-
fromtestgres.exceptionsimportExecUtilException
10+
from..exceptionsimportExecUtilException
1111

12-
from .os_opsimportOsOperations
12+
from .os_opsimportOsOperations,ConnectionParams
1313
from .os_opsimportpglib
1414

1515
try:
@@ -21,13 +21,12 @@
2121

2222

2323
classLocalOperations(OsOperations):
24-
def__init__(self,host='127.0.0.1',hostname='localhost',port=None,username=None):
25-
super().__init__(username)
26-
self.host=host
27-
self.hostname=hostname
28-
self.port=port
24+
def__init__(self,conn_params:ConnectionParams=ConnectionParams()):
25+
super().__init__(conn_params.username)
26+
self.conn_params=conn_params
27+
self.host=conn_params.host
2928
self.ssh_key=None
30-
self.username=usernameorself.get_user()
29+
self.username=conn_params.usernameorself.get_user()
3130

3231
# Command execution
3332
defexec_command(self,cmd,wait_exit=False,verbose=False,

‎testgres/operations/os_ops.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,16 @@
77
raiseImportError("You must have psycopg2 or pg8000 modules installed")
88

99

10+
classConnectionParams:
11+
def__init__(self,host='127.0.0.1',ssh_key=None,username=None):
12+
self.host=host
13+
self.ssh_key=ssh_key
14+
self.username=username
15+
16+
1017
classOsOperations:
1118
def__init__(self,username=None):
12-
self.hostname="localhost"
13-
self.remote=False
14-
self.ssh=None
19+
self.ssh_key=None
1520
self.username=username
1621

1722
# Command execution

‎testgres/operations/remote_ops.py

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
importparamiko
99
fromparamikoimportSSHClient
1010

11-
fromtestgres.exceptionsimportExecUtilException
11+
from..exceptionsimportExecUtilException
1212

13-
from .os_opsimportOsOperations
13+
from .os_opsimportOsOperations,ConnectionParams
1414
from .os_opsimportpglib
1515

1616
sshtunnel.SSH_TIMEOUT=5.0
@@ -37,15 +37,13 @@ def cmdline(self):
3737

3838

3939
classRemoteOperations(OsOperations):
40-
def__init__(self,host="127.0.0.1",hostname='localhost',port=None,ssh_key=None,username=None):
41-
super().__init__(username)
42-
self.host=host
43-
self.hostname=hostname
44-
self.port=port
45-
self.ssh_key=ssh_key
46-
self.remote=True
40+
def__init__(self,conn_params:ConnectionParams):
41+
super().__init__(conn_params.username)
42+
self.conn_params=conn_params
43+
self.host=conn_params.host
44+
self.ssh_key=conn_params.ssh_key
4745
self.ssh=self.ssh_connect()
48-
self.username=usernameorself.get_user()
46+
self.username=conn_params.usernameorself.get_user()
4947
self.tunnel=None
5048

5149
def__enter__(self):
@@ -70,14 +68,11 @@ def close_tunnel(self):
7068
time.sleep(0.5)
7169

7270
defssh_connect(self)->Optional[SSHClient]:
73-
ifnotself.remote:
74-
returnNone
75-
else:
76-
key=self._read_ssh_key()
77-
ssh=paramiko.SSHClient()
78-
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
79-
ssh.connect(self.host,username=self.username,pkey=key)
80-
returnssh
71+
key=self._read_ssh_key()
72+
ssh=paramiko.SSHClient()
73+
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
74+
ssh.connect(self.host,username=self.username,pkey=key)
75+
returnssh
8176

8277
def_read_ssh_key(self):
8378
try:

‎tests/test_remote.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,19 @@
22

33
fromtestgresimportExecUtilException
44
fromtestgresimportRemoteOperations
5+
fromtestgresimportConnectionParams
56

67

78
classTestRemoteOperations:
89

910
@pytest.fixture(scope="function",autouse=True)
1011
defsetup(self):
11-
self.operations=RemoteOperations(
12-
host="172.18.0.3",
13-
username="dev",
14-
ssh_key='../../container_files/postgres/ssh/id_ed25519'
15-
)
12+
conn_params=ConnectionParams(host="172.18.0.3",
13+
username="dev",
14+
ssh_key='../../container_files/postgres/ssh/id_ed25519')
15+
self.operations=RemoteOperations(conn_params)
1616

1717
yield
18-
1918
self.operations.__del__()
2019

2120
deftest_exec_command_success(self):

‎tests/test_simple_remote.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,12 @@
5050
# NOTE: those are ugly imports
5151
fromtestgresimportbound_ports
5252
fromtestgres.utilsimportPgVer
53-
fromtestgres.nodeimportProcessProxy
53+
fromtestgres.nodeimportProcessProxy,ConnectionParams
5454

55-
56-
os_ops=RemoteOperations(host='172.18.0.3',
57-
username='dev',
58-
ssh_key='../../container_files/postgres/ssh/id_ed25519')
55+
conn_params=ConnectionParams(host="172.18.0.3",
56+
username="dev",
57+
ssh_key='../../container_files/postgres/ssh/id_ed25519')
58+
os_ops=RemoteOperations(conn_params)
5959
testgres_config.set_os_ops(os_ops=os_ops)
6060

6161

@@ -94,7 +94,7 @@ def removing(f):
9494

9595

9696
defget_remote_node(name=None):
97-
returnget_new_node(name=name,host=os_ops.host,username=os_ops.username,ssh_key=os_ops.ssh_key)
97+
returnget_new_node(name=name,conn_params=conn_params)
9898

9999

100100
classTestgresRemoteTests(unittest.TestCase):

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp