@@ -172,6 +172,8 @@ def make_bnode(self, base_dir=None, allows_streaming=False, options={}):
172172
173173return node
174174
175+ # def print_started(self, fname):
176+ # print
175177
176178def make_simple_node (self ,base_dir = None ,set_replication = False ,
177179set_archiving = False ,initdb_params = [],pg_options = {}):
@@ -234,23 +236,21 @@ def get_md5_per_page_for_fork(self, file, size):
234236os .close (file )
235237return md5_per_page
236238
237- def get_ptrack_bits_per_for_fork (self ,file ,size ):
239+ def get_ptrack_bits_per_page_for_fork (self ,file ,size ):
240+ ptrack_bits_for_fork = []
238241byte_size = os .path .getsize (file + '_ptrack' )
239242byte_size_minus_header = byte_size - 24
240243file = os .open (file + '_ptrack' ,os .O_RDONLY )
241244os .lseek (file ,24 ,0 )
242245lot_of_bytes = os .read (file ,byte_size_minus_header )
243- ptrack_bits_per_for_fork = []
244246for byte in lot_of_bytes :
245247byte_inverted = bin (ord (byte ))[2 :].rjust (8 ,'0' )[::- 1 ]
246248# byte_to_bits = (byte >> x) & 1 for x in range(7, -1, -1)
247249for bit in byte_inverted :
248- while len (ptrack_bits_per_for_fork )!= size :
249- ptrack_bits_per_for_fork .append (int (bit ))
250- # print 'Size: {}'.format(size)
251- # print ptrack_bits_per_for_fork
250+ if len (ptrack_bits_for_fork )< size :
251+ ptrack_bits_for_fork .append (int (bit ))
252252os .close (file )
253- return ptrack_bits_per_for_fork
253+ return ptrack_bits_for_fork
254254
255255def check_ptrack_sanity (self ,idx_dict ):
256256success = True
@@ -284,7 +284,7 @@ def check_ptrack_sanity(self, idx_dict):
284284PageNum ,idx_dict ['type' ],idx_dict ['ptrack' ][PageNum ])
285285print idx_dict
286286if PageNum == 0 and idx_dict ['type' ]== 'spgist' :
287- print 'SPGIST is a specialshowflake , so don`tfreat about losing ptrack for blknum 0'
287+ print 'SPGIST is a specialsnowflake , so don`tfret about losing ptrack for blknum 0'
288288continue
289289success = False
290290else :
@@ -468,19 +468,26 @@ def delete_pb(self, node, id=None, options=[]):
468468# print(cmd_list)
469469return self .run_pb (cmd_list + options )
470470
471- def retention_purge_pb (self ,node ,options = []):
471+ def delete_expired (self ,node ,options = []):
472472cmd_list = [
473- "retention " ,"purge " ,
473+ "delete " ,"--expired " ,
474474"-B" ,self .backup_dir (node ),
475475 ]
476476return self .run_pb (cmd_list + options )
477477
478- def retention_show (self ,node ,options = []):
478+ def show_config (self ,node ):
479+ out_dict = {}
479480cmd_list = [
480- "config" ,
481+ "show- config" ,
481482"-B" ,self .backup_dir (node ),
482483 ]
483- return self .run_pb (cmd_list + options )
484+ res = self .run_pb (cmd_list ).splitlines ()
485+ for line in res :
486+ if not line .startswith ('#' ):
487+ name ,var = line .partition (" = " )[::2 ]
488+ out_dict [name ]= var
489+ return out_dict
490+
484491
485492def get_recovery_conf (self ,node ):
486493out_dict = {}