diff options
author | af7140@student.uni-lj.si <af7140@student.uni-lj.si@5cf9fbd1-b2bc-434c-b4b7-e852f4f63414> | 2014-12-24 22:46:04 +0000 |
---|---|---|
committer | af7140@student.uni-lj.si <af7140@student.uni-lj.si@5cf9fbd1-b2bc-434c-b4b7-e852f4f63414> | 2014-12-24 22:46:04 +0000 |
commit | d8e772e8e959ae213c84e34c8a4d2f7548ee7ce6 (patch) | |
tree | acd36bd990bce26f58a0283b46d2b4752ac4059a /kpov_judge/courses/fri_kpov/11 | |
parent | 971fd805c282ae6d42877ff3c6cd015abff3c50e (diff) |
def task(SNMP_VALUE, SNMP_OID_ON_SERVER, SNMP_OID_ON_CLIENT):
#<== Aleksander Fujs 6310020 ==>
# TODO popravi IPje
import netsnmp
from paramiko import SSHClient
return_results = {}
client = SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect('10.173.146.199', username='root', password='kaboom')
stdin, stdout, stderr = client.exec_command('uptime=$(</proc/uptime); uptime=${uptime%%.*}; echo $uptime')
return_results['server_uptime'] = stdout.readlines()
try:
session = netsnmp.Session(DestHost='10.173.146.199', Version=2, Community='studentje')
results_objs = netsnmp.VarList(netsnmp.Varbind(SNMP_OID_ON_SERVER)) #117.112.116.105.109.101 <-uptime
session.walk(results_objs)
for result in results_objs:
return_results['server_OID'] = ('%s.%s: %s') % (result.tag, result.iid, result.val)
except Exception as exception_error:
# Check for errors and print out results
print ('ERROR: Occurred during SNMPget for OID %s from %s: '
'(%s)') % (SNMP_OID_ON_SERVER, '10.173.146.194', exception_error)
sys.exit(2)
client.connect('10.173.146.194', username='test', password='test')
stdin, stdout, stderr = client.exec_command('/bin/bash /home/test/upminutes.sh')
#TODO preverit da ni v skripti hardcodan
return_results['client_script'] = stdout.readlines()
stdin, stdout, stderr = client.exec_command('uptime=$(</proc/uptime); uptime=${uptime%%.*}; echo $(( uptime/60 ))')
return_results['client_uptime'] = stdout.readlines()
#TODO add 3 part of assigement
return return_results
#<== Aleksander Fujs 6310020 ==>
# TODO (polz) start working on this. If gen_params doesn't yet work, change it to set the parameter values manually
# run cpu temp script on client
# run SNMP read SNMP_OID_ON_CLIENT script on client
# read data on SNMP_OID_ON_CLIENT
# read data from SNMP server
#import netsnmp
#session = netsnmp.Session(DestHost=SNMP_VALUE['type'],Version=2,Community='public')
#Dobimo vrednost casa
#vars=netsnmp.Varbind(SNMP_OID_ON_SERVER['type'])
#Shranimo vrednost casa v imenik od SNMP_OID_ON_SERVER
#var=netsnmp.Varbind(SNMP_OID_ON_SERVER['decdscriptions'['si'],'0',session.get(vars),SNMP_OID_ON_SERVER['type'])
#netsnmp.snmpset(var,Version=2,DestHost=SNMP_VALUE['type'],Community='public')
#return session.get(vars)
return 0
def gen_params(user_id, params_meta):
import random
params = dict()
# TODO (polz) this is wrong. Try something like:
r = random.Random(user_id)
#params['SNMP_VALUE'] = r.randint(0, 255)
#params_meta['SNMP_OID_ON_SERVER'] = '1.3.6.1.4.1.8072.1.3.2.4.1.4'
#params_meta['SNMP_OID_ON_CLIENT'] = '1.3.6.1.4.1.8072.1.3.2.4.1.4.'
# You can also create an OID creation function in kpov_random_helpers.
# this should probably return params_meta
#<== Aleksander Fujs 6310020 ==>
#TODO better random value
params['SNMP_VALUE'] = str(r.randint(0, 255))
params['SNMP_OID_ON_SERVER'] = 'NET-SNMP-EXTEND-MIB::nsExtendOutput2Table'
#TODO possible upgrade for last number to bi random between 0 and 255
params['SNMP_OID_ON_CLIENT'] = '1.3.6.1.4.1.8072.1.3.2.4.1.4'
#<== Aleksander Fujs 6310020 ==>
return params
def task_check(results, params):
#TODO improve regex
import re
score = 0
print results
if re.search(results['client_script'][0].strip(), results['client_uptime'][0].strip()):
score += 3
#TODO +- second or two of allowed error time
if re.search(results['server_OID'].split(':')[1].strip(), results['server_uptime'][0].strip()):
score += 3
print results['server_uptime'][0].strip()
print results['server_OID'].split(':')[1].strip()
print score
return score
git-svn-id: https://svn.lusy.fri.uni-lj.si/kpov-public-svn/kpov-public@134 5cf9fbd1-b2bc-434c-b4b7-e852f4f63414
Diffstat (limited to 'kpov_judge/courses/fri_kpov/11')
0 files changed, 0 insertions, 0 deletions