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())
|
|
|
|
|
|
|
|
|
|
|