summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kpov_judge/tasks/isc_dhcp_live_boot/task.py33
1 files changed, 32 insertions, 1 deletions
diff --git a/kpov_judge/tasks/isc_dhcp_live_boot/task.py b/kpov_judge/tasks/isc_dhcp_live_boot/task.py
index 0c7af4f..b446450 100644
--- a/kpov_judge/tasks/isc_dhcp_live_boot/task.py
+++ b/kpov_judge/tasks/isc_dhcp_live_boot/task.py
@@ -88,7 +88,38 @@ params_meta = {
def task(IP_DHCP, IP_GW, MAC_BOOT, BOOT_FNAME):
# check the IP
- # ping the DHCP server
+ import socket
+ import os
+ results={}
+ try:
+ if IP_DHCP.count('.')!=3 or IP_GW.count('.')!=3:
+ results['IPcheck']=False
+ socket.inet_pton(socket.AF_INET,IP_DHCP)
+ socket.inet_pton(socket.AF_INET,IP_GW)
+ results['IPcheck']=True
+ # ping the DHCP server
+ if os.system("ping "+IP_DHCP)==0:
+ results[PingDHCP]=True
+ print("Povezava z DHCP strežnikom je OK")
+ # check whether the fname served by the dhcp server is
+ # correct
+ datoteka=open(BOOT_FNAME,"r")
+ array=[]
+ for line in datoteka:
+ array.append(line)
+ datoteka.close()
+ #greš skozi array preverit ce je vse ok
+ else:
+ print("Povezava s strežnikom ni OK")
+ results['PingDHCP']=False
+ except FileNotFoundError:
+ results['BootFname']=False
+ return "Datoteka ne obstaja"
+ except IOError:
+ results['BootFname']=False
+ return "I/O napaka"
+ except OSError:
+ results['IPcheck']=False
# check whether the fname served by the dhcp server is correct
# connect to the service in the special ISO
# check the MAC of the server on IP_BOOT