@@ -114,28 +114,27 @@ def _prepare_dir(self, destroy):
114114 # Return path to new node
115115 return dest_base_dir
116116
117- def spawn_primary (self , name , destroy = True , use_logging = False ):
117+ def spawn_primary (self , name = None , destroy = True , use_logging = False ):
118118 """
119119 Create a primary node from a backup.
120120
121121 Args:
122- name: name for a new node .
122+ name: primary's application name .
123123 destroy: should we convert this backup into a node?
124124 use_logging: enable python logging.
125125
126126 Returns:
127127 New instance of PostgresNode.
128128 """
129129
130+ # Prepare a data directory for this node
130131 base_dir = self ._prepare_dir (destroy )
131132
132133 # Build a new PostgresNode
133134 from .node import PostgresNode
134- node = PostgresNode (
135- name = name ,
136- base_dir = base_dir ,
137- master = self .original_node ,
138- use_logging = use_logging )
135+ node = PostgresNode (name = name ,
136+ base_dir = base_dir ,
137+ use_logging = use_logging )
139138
140139 # New nodes should always remove dir tree
141140 node ._should_rm_dirs = True
@@ -145,22 +144,27 @@ def spawn_primary(self, name, destroy=True, use_logging=False):
145144
146145 return node
147146
148- def spawn_replica (self , name , destroy = True , use_logging = False ):
147+ def spawn_replica (self , name = None , destroy = True , use_logging = False ):
149148 """
150149 Create a replica of the original node from a backup.
151150
152151 Args:
153- name: name for a new node .
152+ name: replica's application name .
154153 destroy: should we convert this backup into a node?
155154 use_logging: enable python logging.
156155
157156 Returns:
158157 New instance of PostgresNode.
159158 """
160159
161- node = self .spawn_primary (name , destroy , use_logging = use_logging )
162- node ._create_recovery_conf (username = self .username ,
163- master = self .original_node )
160+ # Build a new PostgresNode
161+ node = self .spawn_primary (name = name ,
162+ destroy = destroy ,
163+ use_logging = use_logging )
164+
165+ # Assign it a master and a recovery file (private magic)
166+ node ._assign_master (self .original_node )
167+ node ._create_recovery_conf (username = self .username )
164168
165169 return node
166170
0 commit comments