summaryrefslogtreecommitdiff
path: root/tasks/public_ip_ssh/task.py
diff options
context:
space:
mode:
Diffstat (limited to 'tasks/public_ip_ssh/task.py')
-rw-r--r--tasks/public_ip_ssh/task.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/tasks/public_ip_ssh/task.py b/tasks/public_ip_ssh/task.py
new file mode 100644
index 0000000..8dcb858
--- /dev/null
+++ b/tasks/public_ip_ssh/task.py
@@ -0,0 +1,52 @@
+# 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)