summaryrefslogtreecommitdiff
path: root/kpov_judge/tasks/snmp_agent_uptime/task.py
diff options
context:
space:
mode:
authoraf7140@student.uni-lj.si <af7140@student.uni-lj.si@5cf9fbd1-b2bc-434c-b4b7-e852f4f63414>2014-12-22 19:29:08 +0000
committeraf7140@student.uni-lj.si <af7140@student.uni-lj.si@5cf9fbd1-b2bc-434c-b4b7-e852f4f63414>2014-12-22 19:29:08 +0000
commit792b601a248a912532fb18a680f46ba2ab679849 (patch)
tree56ebb557a22275140b7d523970877307b219b959 /kpov_judge/tasks/snmp_agent_uptime/task.py
parentb5521af65b4a3f7d7e90b6257eb2f9b6c85ec7e0 (diff)
git-svn-id: https://svn.lusy.fri.uni-lj.si/kpov-public-svn/kpov-public@128 5cf9fbd1-b2bc-434c-b4b7-e852f4f63414
Diffstat (limited to 'kpov_judge/tasks/snmp_agent_uptime/task.py')
-rw-r--r--kpov_judge/tasks/snmp_agent_uptime/task.py82
1 files changed, 48 insertions, 34 deletions
diff --git a/kpov_judge/tasks/snmp_agent_uptime/task.py b/kpov_judge/tasks/snmp_agent_uptime/task.py
index c549480..e3f395c 100644
--- a/kpov_judge/tasks/snmp_agent_uptime/task.py
+++ b/kpov_judge/tasks/snmp_agent_uptime/task.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+ #!/usr/bin/env python
# -*- coding: utf-8 -*-
# kpov_random_helpers should be imported by add_assignment.py
@@ -20,7 +20,7 @@ NET-SNMP-EXTEND-MIB::nsExtendOutput2Table sporocal, koliko casa je vklopljen
v sekundah.
Napiši skripto, poimenovano beri.sh, ki prek SNMP prebere vrednost s strežnika
- SNMPServer na OID 1.3.6.1.4.1.8072.1.3.2.4.1.2
+ SNMPServer na OID 1.3.6.1.4.1.8072.1.3.2.4.1.4.
Postavi jo na SNMP klienta, v domaci imenik uporabnika test z geslom test.
Napiši skripto gen_params(), ki uporabnikom generira razlicne parametre in
@@ -93,54 +93,68 @@ computers = {
}
networks = { 'net1': {'public': False}, 'test-net': {'public': True} }
-w = ali lahko študent ta parameter spremeni
-public = ali povemeo študentu parameter
-type = tip spremenljivke
-generated = ali se zgenerira
-params_meta = {
- 'SNMP_VALUE': {'descriptions': {'si': 'Vrednost, dostopna prek SNMP',...}Value:0, 'w': False, 'public':True, 'type': 'number', 'generated': True},
- 'SNMP_OID_ON_SERVER': {'descriptions': {'si': 'OID, na katerem je vrednost dostopna'},'OID':'1.3.6.1.4.1.8072.1.3.2.4', 'w': False, 'public':True, 'type': 'OID', 'generated': True},
- 'SNMP_OID_ON_CLIENT': {'descriptions': {'si': 'OID, ki naj ga klient bere'}'OID':'1.3.6.1.4.1.8072.1.3.2.4.1.4', 'w': False, 'public':True, 'type': 'OID', 'generated': True},
-}
+
+params_meta = {'SNMP_VALUE': {'descriptions': {'si': 'Vrednost, dostopna prek SNMP'}, 'w': False, 'public':True, 'type': 'number', 'generated': True}, 'SNMP_OID_ON_SERVER': {'descriptions': {'si': 'OID, na katerem je vrednost dostopna'}, 'w': False, 'public':True, 'type': 'str', 'generated': True}, 'SNMP_OID_ON_CLIENT': {'descriptions': {'si': 'OID, ki naj ga klient bere'}, 'w': False, 'public':True, 'type': 'OID', 'generated': True}, }
def task(SNMP_VALUE, SNMP_OID_ON_SERVER, SNMP_OID_ON_CLIENT):
+ print SNMP_VALUE
+ print SNMP_OID_ON_SERVER
+ print SNMP_OID_ON_CLIENT
+
+
+ # 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')
+ #import netsnmp
+ #session = netsnmp.Session(DestHost=SNMP_VALUE['type'],Version=2,Community='public')
#Dobimo vrednost casa
- vars=netsnmp.Varbind(SNMP_OID_ON_SERVER['type'])
+ #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['descriptions'['si'],'0',session.get(vars),SNMP_OID_ON_SERVER['type'])
- netsnmp.snmpset(var,Version=2,DestHost=SNMP_VALUE['type'],Community='public')
+ #var=netsnmp.Varbind(SNMP_OID_ON_SERVER['descriptions'['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 session.get(vars)
+ return 0
def gen_params(user_id, params_meta):
- params = dict()
- r = random.randrange(1,255,1)
- params_meta[SNMP_VAULE[Value]]=r
- return r
+ 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
+
+ params['SNMP_VALUE'] = str(r.randint(0, 255))
+ params['SNMP_OID_ON_SERVER'] = 'NET-SNMP-EXTEND-MIB::nsExtendOutput2Table'
+ params['SNMP_OID_ON_CLIENT'] = '1.3.6.1.4.1.8072.1.3.2.4.1.4'
+
+ return params
def task_check(results, params):
-#cakam na predhodnike in pomagam tistim ki kaj ne vejo
- import re
- score = -9
- if results['NM_nslookup'].find('Server:\t\t{0}\r'.format(params['DNS_NM'])) > -1:
- score += 3
- if results['static_nslookup'].find('Server:\t\t{0}\r'.format(params['DNS_static'])) > -1:
- score += 3
- if re.search(r'eth0 +802-.*connected', results['NM_nmcli']):
- score += 2
- if not re.search(r'eth0 +802-.*connected', results['static_nmcli']):
- score += 2
- score = 0
- return score
+# TODO (polz) Zacnite s pisanjem testov glede na to, kar vidite v task()
+ import re
+ score = 0
+ if results['NM_nslookup'].find('Server:\t\t{0}\r'.format(params['DNS_NM'])) > -1:
+ score += 3
+ if results['static_nslookup'].find('Server:\t\t{0}\r'.format(params['DNS_static'])) > -1:
+ score += 3
+ if re.search(r'eth0 +802-.*connected', results['NM_nmcli']):
+ score += 2
+ if not re.search(r'eth0 +802-.*connected', results['static_nmcli']):
+ score += 2
+ return score
def prepare_disks(templates, params):
# d = templates['simpleArbiterDhcp']
pass
+
+
+
+