File: tablespace_utils.py

package info (click to toggle)
pg-auto-failover 2.2-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,368 kB
  • sloc: ansic: 58,369; python: 5,515; sql: 3,177; makefile: 629; sh: 35
file content (71 lines) | stat: -rw-r--r-- 1,651 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import time
from tests.pgautofailover_utils import QueryRunner
from tests.pgautofailover_utils import StatefulNode


class PGNodeTS(QueryRunner):
    def run_sql_query(self, query, *args):
        return super().run_sql_query(query, True, *args)

    def connection_string(self):
        return "postgresql://%s@%s:%s/%s" % (
            self.username,
            self.service_name,
            self.port,
            self.database,
        )


class MonitorNodeTS(PGNodeTS):
    def __init__(self, port, service_name):
        self.port = port
        self.service_name = service_name
        self.monitor = self
        self.username = "autoctl_node"
        self.database = "pg_auto_failover"


class DataNodeTS(PGNodeTS, StatefulNode):
    def __init__(self, port, service_name, monitor_node):
        self.port = port
        self.service_name = service_name
        self.monitor = monitor_node
        self.username = "docker"
        self.database = "postgres"

    def logger_name(self):
        return self.service_name

    def sleep(self, sleep_time):
        time.sleep(sleep_time)

    def print_debug_logs(self):
        # no-op, can't get logs easily in this test-type
        return

    def get_state(self):
        return super().get_state(
            "node with port %s not found on the monitor" % self.port,
            """
    SELECT reportedstate, goalstate
    FROM pgautofailover.node
    WHERE nodeport=%s
    """,
            self.port,
        )


monitor = MonitorNodeTS(
    "5432",
    "monitor",
)
node1 = DataNodeTS(
    "5433",
    "node1",
    monitor,
)
node2 = DataNodeTS(
    "5434",
    "node2",
    monitor,
)