1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# SPDX-License-Identifier: AGPL-3.0-or-later
# kpov_util should be imported by add_assignment.py
instructions = {
'si':"""
<pre>Ustvari dva navidezna računalnika. Za disk enega (imenujmo ga SimpleArbiter) uporabite
sliko diska Test. Na drugega (imenujmo ga A) namesti poljubno Linux distribucijo. Na SimpleArbiter
preberi uporabniško ime in geslo uporabnika, ki ga moraš ustvariti na A. Poskrbi, da se bo novoustvarjeni
uporabnik s svojim geslom lahko na A prijavil z Interneta.</pre>
"""
}
computers = {
'SimpleArbiter': {
'disks':[
{ 'name': 'simpleArbiter' }],
'network_interfaces':[{'network':'net1'}],
},
'A': {
'disks':[],
'network_interfaces':[{'network':'net2'}],
}
}
networks = { 'net1': {'public': True}, 'net2': {'public': True} }
params_meta = {
'peer_ip': {'descriptions': {'si': 'Naslov ssh strežnika'}, 'w': True, 'public':True, 'type': 'IP', 'generated': False},
'peer_user': {'descriptions': {'si': 'ime uporabnika'}, 'w': False, 'public': True, 'type': 'username', 'generated': True},
'peer_passwd': {'descriptions': {'si': 'geslo uporabnika'}, 'w': False, 'public': True, 'type': 'password', 'generated': True},
}
def task(peer_ip, peer_user, peer_passwd):
return dict()
def gen_params(user_id, params_meta):
return kpov_util.default_gen(user_id, params_meta)
def task_check(results, params):
from pexpect import pxssh
ip, user, passwd = params['peer_ip'], params['peer_user'], params['peer_passwd']
results = {}
try:
s = pxssh.pxssh(encoding='utf-8')
s.login(ip, user, passwd)
s.logout()
return 10, []
except Exception as ex:
return 0, [str(ex)]
def prepare_disks(templates, task_params, global_params):
write_default_config(templates['simpleArbiter'], global_params)
|