testgres-pg-probackup2 0.2.2__tar.gz → 0.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (15) hide show
  1. {testgres_pg_probackup2-0.2.2 → testgres_pg_probackup2-0.4.0}/PKG-INFO +1 -1
  2. {testgres_pg_probackup2-0.2.2 → testgres_pg_probackup2-0.4.0}/pg_probackup2/app.py +25 -8
  3. {testgres_pg_probackup2-0.2.2 → testgres_pg_probackup2-0.4.0}/setup.py +1 -1
  4. {testgres_pg_probackup2-0.2.2 → testgres_pg_probackup2-0.4.0}/testgres_pg_probackup2.egg-info/PKG-INFO +1 -1
  5. {testgres_pg_probackup2-0.2.2 → testgres_pg_probackup2-0.4.0}/README.md +0 -0
  6. {testgres_pg_probackup2-0.2.2 → testgres_pg_probackup2-0.4.0}/pg_probackup2/__init__.py +0 -0
  7. {testgres_pg_probackup2-0.2.2 → testgres_pg_probackup2-0.4.0}/pg_probackup2/gdb.py +0 -0
  8. {testgres_pg_probackup2-0.2.2 → testgres_pg_probackup2-0.4.0}/pg_probackup2/init_helpers.py +0 -0
  9. {testgres_pg_probackup2-0.2.2 → testgres_pg_probackup2-0.4.0}/pg_probackup2/storage/__init__.py +0 -0
  10. {testgres_pg_probackup2-0.2.2 → testgres_pg_probackup2-0.4.0}/pg_probackup2/storage/fs_backup.py +0 -0
  11. {testgres_pg_probackup2-0.2.2 → testgres_pg_probackup2-0.4.0}/setup.cfg +0 -0
  12. {testgres_pg_probackup2-0.2.2 → testgres_pg_probackup2-0.4.0}/testgres_pg_probackup2.egg-info/SOURCES.txt +0 -0
  13. {testgres_pg_probackup2-0.2.2 → testgres_pg_probackup2-0.4.0}/testgres_pg_probackup2.egg-info/dependency_links.txt +0 -0
  14. {testgres_pg_probackup2-0.2.2 → testgres_pg_probackup2-0.4.0}/testgres_pg_probackup2.egg-info/requires.txt +0 -0
  15. {testgres_pg_probackup2-0.2.2 → testgres_pg_probackup2-0.4.0}/testgres_pg_probackup2.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: testgres_pg_probackup2
3
- Version: 0.2.2
3
+ Version: 0.4.0
4
4
  Summary: Plugin for testgres that manages pg_probackup2
5
5
  Home-page: https://github.com/postgrespro/testgres
6
6
  Author: Postgres Professional
@@ -64,7 +64,10 @@ class ProbackupApp:
64
64
  self.valgrind_sup_path = init_params.valgrind_sup_path
65
65
 
66
66
  def form_daemon_process(self, cmdline, env):
67
- def stream_output(stream: subprocess.PIPE) -> None:
67
+ if self.test_class.output is None:
68
+ self.test_class.output = str()
69
+
70
+ def stream_output(stream) -> None:
68
71
  try:
69
72
  for line in iter(stream.readline, ''):
70
73
  print(line)
@@ -82,11 +85,11 @@ class ProbackupApp:
82
85
  logging.info(f"Process started in background with PID: {self.process.pid}")
83
86
 
84
87
  if self.process.stdout and self.process.stderr:
85
- stdout_thread = threading.Thread(target=stream_output, args=(self.process.stdout,), daemon=True)
86
- stderr_thread = threading.Thread(target=stream_output, args=(self.process.stderr,), daemon=True)
88
+ self.stdout_thread = threading.Thread(target=stream_output, args=(self.process.stdout,), daemon=True)
89
+ self.stderr_thread = threading.Thread(target=stream_output, args=(self.process.stderr,), daemon=True)
87
90
 
88
- stdout_thread.start()
89
- stderr_thread.start()
91
+ self.stdout_thread.start()
92
+ self.stderr_thread.start()
90
93
 
91
94
  return self.process.pid
92
95
 
@@ -195,7 +198,14 @@ class ProbackupApp:
195
198
  # Execute command
196
199
  start_time = time.time()
197
200
  if daemonize:
198
- return self.form_daemon_process(cmdline, env)
201
+ pid = self.form_daemon_process(cmdline, env)
202
+ if expect_error:
203
+ _timeout = 120
204
+ if self.stdout_thread:
205
+ self.stdout_thread.join(_timeout)
206
+ if self.stderr_thread:
207
+ self.stderr_thread.join(_timeout)
208
+ return pid
199
209
  else:
200
210
  self.test_class.output = subprocess.check_output(
201
211
  cmdline,
@@ -561,7 +571,7 @@ class ProbackupApp:
561
571
  backup_list.append(backup)
562
572
 
563
573
  if backup_id is not None:
564
- assert False, "Failed to find backup with ID: {0}".format(backup_id)
574
+ raise RuntimeError("Failed to find backup with ID: {0}".format(backup_id))
565
575
 
566
576
  return backup_list
567
577
  else:
@@ -619,7 +629,7 @@ class ProbackupApp:
619
629
  specific_record[name.strip()] = var
620
630
 
621
631
  if not specific_record:
622
- assert False, "Failed to find backup with ID: {0}".format(backup_id)
632
+ raise RuntimeError("Failed to find backup with ID: {0}".format(backup_id))
623
633
 
624
634
  return specific_record
625
635
 
@@ -768,6 +778,13 @@ class ProbackupApp:
768
778
  log_level=False, archive_timeout=False,
769
779
  custom_archive_command=None):
770
780
 
781
+ # check instance existing
782
+ instances_json = self.show(instance=None, as_json=True, expect_error=False, as_text=True)
783
+ instances_data = json.loads(instances_json)
784
+ if not any(inst_data.get('instance') == instance for inst_data in instances_data):
785
+ raise RuntimeError("Instance '{0}' does not exist. " \
786
+ "Please add the instance first using add_instance() or init_pb_node().".format(instance))
787
+
771
788
  # parse postgresql.auto.conf
772
789
  options = {}
773
790
  if replica:
@@ -4,7 +4,7 @@ except ImportError:
4
4
  from distutils.core import setup
5
5
 
6
6
  setup(
7
- version='0.2.2',
7
+ version='0.4.0',
8
8
  name='testgres_pg_probackup2',
9
9
  packages=['pg_probackup2', 'pg_probackup2.storage'],
10
10
  description='Plugin for testgres that manages pg_probackup2',
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: testgres_pg_probackup2
3
- Version: 0.2.2
3
+ Version: 0.4.0
4
4
  Summary: Plugin for testgres that manages pg_probackup2
5
5
  Home-page: https://github.com/postgrespro/testgres
6
6
  Author: Postgres Professional