53 lines
1002 B
Python
53 lines
1002 B
Python
|
# @brief
|
||
|
import os
|
||
|
import string
|
||
|
import subprocess
|
||
|
# Error thrower
|
||
|
def ThrowError(error_text):
|
||
|
raise Exception("[Error]: " + error_text)
|
||
|
|
||
|
def ExecAnsibleCommand(command):
|
||
|
output = os.popen(command).read()
|
||
|
if output.find("SUCCESS") != -1:
|
||
|
return 0
|
||
|
else:
|
||
|
return output
|
||
|
|
||
|
|
||
|
# Comupter informations
|
||
|
class Computer:
|
||
|
id = 0
|
||
|
name = ""
|
||
|
mac = "0000.0000.000"
|
||
|
status = False
|
||
|
logged_users = []
|
||
|
|
||
|
def __init__(self, name):
|
||
|
if name[:6] != "lab15-":
|
||
|
ThrowError("Bad computer name: '" + name + "'")
|
||
|
if (name[6:].isnumeric()) == False:
|
||
|
ThrowError("Bad computer number: '" + name[6:] +"'")
|
||
|
|
||
|
|
||
|
self.name = name
|
||
|
self.id = int(name[6:])
|
||
|
|
||
|
|
||
|
def GetStatus(self):
|
||
|
command = "ansible -i inventory/hosts.ini -m ping " + self.name + " -k"
|
||
|
if ExecAnsibleCommand(command):
|
||
|
return 0
|
||
|
return 1
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
# Tester
|
||
|
lab = Computer("lab15-10")
|
||
|
print(lab.GetStatus())
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|