MCPcopy Create free account
hub / github.com/pgadmin-org/pgadmin4 / _create_process

Method _create_process

web/pgadmin/misc/bgprocess/processes.py:191–262  ·  view source on GitHub ↗
(self, _desc, _cmd, _args)

Source from the content-addressed store, hash-verified

189 self.process_state = p.process_state
190
191 def _create_process(self, _desc, _cmd, _args):
192 ctime = get_current_time(format='%y%m%d%H%M%S%f')
193 log_dir = os.path.join(
194 config.SESSION_DB_PATH, 'process_logs'
195 )
196
197 def random_number(size):
198 import secrets
199 import string
200
201 return ''.join(secrets.choice(string.digits) for _ in range(size))
202
203 created = False
204 size = 0
205 uid = ctime
206 while not created:
207 try:
208 uid += random_number(size)
209 log_dir = os.path.join(log_dir, uid)
210 size += 1
211 if not os.path.exists(log_dir):
212 os.makedirs(log_dir, int('700', 8))
213 created = True
214 except OSError as oe:
215 import errno
216 if oe.errno != errno.EEXIST:
217 raise
218
219 # ID
220 self.id = ctime
221 # Description
222 self.desc = _desc
223 # Status Acknowledged time
224 self.atime = None
225 # Command
226 self.cmd = _cmd
227 # Log Directory
228 self.log_dir = log_dir
229 # Standard ouput log file
230 self.stdout = os.path.join(log_dir, 'out')
231 # Standard error log file
232 self.stderr = os.path.join(log_dir, 'err')
233 # Start time
234 self.stime = None
235 # End time
236 self.etime = None
237 # Exit code
238 self.ecode = None
239 # Process State
240 self.process_state = PROCESS_NOT_STARTED
241
242 # Arguments
243 self.args = _args
244 args_csv_io = StringIO()
245 csv_writer = csv.writer(
246 args_csv_io, delimiter=str(','), quoting=csv.QUOTE_MINIMAL
247 )
248 csv_writer.writerow(_args)

Callers 1

__init__Method · 0.95

Calls 6

ProcessClass · 0.90
joinMethod · 0.80
get_current_timeFunction · 0.70
existsMethod · 0.45
writerowMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected