From d0760e008319975f04444c3fd1f30673f7260d7c Mon Sep 17 00:00:00 2001 From: "gasperfele@fri1.uni-lj.si" Date: Fri, 30 Jan 2015 22:19:26 +0000 Subject: Started work on task 04. Not finished yet. git-svn-id: https://svn.lusy.fri.uni-lj.si/kpov-public-svn/kpov-public@256 5cf9fbd1-b2bc-434c-b4b7-e852f4f63414 --- .../tasks/copy_rename_20_files_tail_env/task.py | 39 +++++++++++++++++----- 1 file changed, 30 insertions(+), 9 deletions(-) (limited to 'kpov_judge/tasks/copy_rename_20_files_tail_env') diff --git a/kpov_judge/tasks/copy_rename_20_files_tail_env/task.py b/kpov_judge/tasks/copy_rename_20_files_tail_env/task.py index 28b76c9..112f85d 100644 --- a/kpov_judge/tasks/copy_rename_20_files_tail_env/task.py +++ b/kpov_judge/tasks/copy_rename_20_files_tail_env/task.py @@ -5,18 +5,19 @@ # TODO (polz): instructions = { 'si':u""" -Prijavi se na sistem. +Prijavi se na sistem kot uporabnik student z geslom vaje. V domači mapi najdeš imenik Mapa z 20 datotekami. - Preimenuj vse datoteke tako, da zamenjaš minuse s podčrtaji - - Napiši čim krajši ukaz, ki vse datoteke iz /home/user/mapa/mojimenik premakne v /home/user/novi + - Napiši čim krajši ukaz v bash, ki vse datoteke iz enega (izvornega) podanega imenika premakne v drug (ciljni) podani imenik. Spravi ga v /home/student/mv_ukaz. Pazi, da bodo ob testiranju v izvornem imeniku iste datoteke, kot so bile, ko je bila virtualka nova, ciljni imenik pa bo prazen. - Napiši ukaz, ki s pomočjo ukaza grep v datoteko "mama.txt" izpiše vse navade (ne skrite) datoteke v trenutnem imeniku, ki vsebujejo niz "mama", v datoteko "napake.txt" pa izpiše vse morebitne napake (npr. to, da so nekateri objekti v trenutnem imeniku dejansko imeniki ali napačne simbolične povezave) - Napiši ukaz, ki bo 5s sledil vsebini /var/log/syslog. V primeru, da se v syslogu pojavi niz "zmeda", naj program izpiše "imam ga". Poleg tega naj program med sledenjem syslog-u odšteva od 5 do 1 (vsako sekundo naj se izpiše naslednja številka. - Nastavi okoljsko spremenljivko TEST, da bo imela isto vrednost kot okoljska spremenljivka USER + število okoljskih spremenljivk, ki v imenu ali vrednosti ne vsebujejo besede TEST. Primer: polz37 +# tole je zoprno, ker se lahko zelo hitro spremeni. Treba bo izbrati +# neko drugo stran - recimo http://localhost/mojastran.html - S pomočjo programa cURL preštej pojavitev niza "images" v html kodi (shranjena stran 24ur.com) in število zapiši v spremenljivko $images. - V imeniku "Mapa" najdeš datoteko count.txt. Preštej število vrstic v njej in rezultat zapiši v novo datoteko lines.txt - Namesti paket "cowsay" in ga preizkusi :) - - Napiši najkrajši ukaz, ki s pomočjo Pythona zažene preprost (integriran) HTTP strežnik kateri streže datoteke iz imenika iz katerega je bil pognan na vratih 8000 - + - Napiši najkrajši ukaz, ki s pomočjo Pythona zažene preprost (integriran) HTTP strežnik kateri streže datoteke iz imenika, ki ga dobite podanega. """, 'en':u""" Log into the system. @@ -75,9 +76,13 @@ networks = { 'net1': {'public': False}, 'test-net': {'public': True} } params_meta = { 'IP_malishell': {'descriptions': {'si': 'Naslov malishell'}, 'w': False, 'public':True, 'type': 'IP', 'generated': True}, 'file_creator_random_seed': {'descriptions': {'si': 'random file creator seed'}, 'w': False, 'public':False, 'type': None, 'generated': True}, + '20_file_dirname': {'descriptions': {'si': 'imenik z datotekami, ki naj se jih preimenuje'}, 'w': False, 'public':True, 'type': 'dirname', 'generated': True}, + 'mv_src_dir': {'descriptions': {'si': 'imenik, iz katerega premakni datoteke'}, 'w': False, 'public':True, 'type': 'dirname', 'generated': True}, + 'mv_dst_dir': {'descriptions': {'si': 'imenik, v katerega premakni datoteke'}, 'w': False, 'public':True, 'type': 'dirname', 'generated': True}, + 'cowsay_string': {'descriptions': {'si': 'Kaj rece krava?'}, 'w': False, 'public':True, 'type': 'short', 'generated': True}, } -def task(): +def task(IP_malishell, 20_file_dirname, mv_src_dir, mv_dst_dir, cowsay_string): import pxssh # TODO: (polz) this has to be changed! Get a move on! # @@ -90,9 +95,23 @@ def task(): results = dict() conn = pxssh.pxssh() conn.login(IP_malishell, 'student', 'vaje') - conn.sendline('ls -a /home/student/Desktop') + conn.sendline('ls -a {}'.format()) + conn.prompt() + results['preimenuj'] = conn.before + conn.sendline('ls -a {}'.format(mv_src_dir)) + conn.prompt() + results['pre_mv_src'] = conn.before + conn.sendline('ls -a {}'.format(mv_dst_dir)) + conn.prompt() + results['pre_mv_dst'] = conn.before + conn.sendline('. ~/mv_ukaz') + conn.sendline('ls -a {}'.format(mv_src_dir)) conn.prompt() - results['preimenuj'] = conn.before() + results['post_mv_src'] = conn.before + conn.sendline('ls -a {}'.format(mv_dst_dir)) + conn.prompt() + results['post_mv_dst'] = conn.before + conn.logout() # ta more met mojimenikfile # results['novi'] = subprocess.check_output(["ls", "/home/student/Desktop/Mapa/novi"]) @@ -172,11 +191,13 @@ def task_check(results, params): def prepare_disks(templates, params): # d = templates['simpleArbiterDhcp'] + import random print "Haha!" print params print templates d = templates['malishell'] - d.touch('/home/student/mamica_je_ena_sama.txt') - d.chown('student', 'www-data', '/home/student/mamica_je_ena_sama.txt') + r = random.Random(params['file_creator_random_seed']) + + d.mkdir('student', 'www-data', '/home/student/mamica_je_ena_sama.txt') pass -- cgit v1.2.1