summaryrefslogtreecommitdiff
path: root/kpov_judge/tasks/copy_rename_20_files_tail_env
diff options
context:
space:
mode:
authorgasperfele@fri1.uni-lj.si <gasperfele@fri1.uni-lj.si@5cf9fbd1-b2bc-434c-b4b7-e852f4f63414>2015-01-30 22:19:26 +0000
committergasperfele@fri1.uni-lj.si <gasperfele@fri1.uni-lj.si@5cf9fbd1-b2bc-434c-b4b7-e852f4f63414>2015-01-30 22:19:26 +0000
commitd0760e008319975f04444c3fd1f30673f7260d7c (patch)
tree6bdf00394a0a7fd73980c38b94c27cd7fff44884 /kpov_judge/tasks/copy_rename_20_files_tail_env
parent0e87104d21bdf9273780196f94b66dc55a86e100 (diff)
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
Diffstat (limited to 'kpov_judge/tasks/copy_rename_20_files_tail_env')
-rw-r--r--kpov_judge/tasks/copy_rename_20_files_tail_env/task.py39
1 files changed, 30 insertions, 9 deletions
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