From 8081a5520a441b43a8a7a73f3a90c7aacfaa8e10 Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Sun, 24 Feb 2019 21:05:27 +0100 Subject: Move everything one level up --- kpov_judge/tasks/copy_rename_100_files/task.py | 120 ------------------------- 1 file changed, 120 deletions(-) delete mode 100644 kpov_judge/tasks/copy_rename_100_files/task.py (limited to 'kpov_judge/tasks/copy_rename_100_files/task.py') diff --git a/kpov_judge/tasks/copy_rename_100_files/task.py b/kpov_judge/tasks/copy_rename_100_files/task.py deleted file mode 100644 index 9dcf69a..0000000 --- a/kpov_judge/tasks/copy_rename_100_files/task.py +++ /dev/null @@ -1,120 +0,0 @@ -# TODO: -# - check if everything is filled in (computers, params, preparation) -# - improve scoring -# - test -# - switch to a real SSH/SFTP client to properly handle filenames - -instructions = { - 'si':""" -
Ustvari dva navidezna računalnika. Za prvega uporabi sliko diska simpleArbiterDhcp. Na drugem računalniku
-ustvari uporabnika test z geslom test.
-Na sliki diska simpleArbiterDhcp najdeš imenik s 100 datotekami. Prekopiraj vse datoteke na drugi računalnik v domači imenik uporabnika test.
-Spremeni vsebino datotek tako, da vse male črke spremeniš v velike.  Poskrbi, da se bo s prvega računalnika (simpleArbiterDhcp) mogoče prek
-ssh prijaviti na drugi računalnik in prebrati predelane datoteke.
-""", - 'en': ''' -
Create two virtual machines. For the first, use the `simpleArbiterDhcp' image.
-On the second machine, create a user `test' with the password `test'.
-The `simpleArbiterDhcp' disk image contains a folder with 100 files. Copy all
-of these files to the other computer into the home folder of theuser `test'.
-Modify the content of these files by converting all lowercase letters into
-uppercase. Make sure that the first machine (`simpleArbiterDhcp') can use ssh
-to access the second machine and read the processed files.
-''', -} - -computers = { - 'SimpleArbiter': { - 'disks': [ - { - 'name': 'simpleArbiterDhcp', - }, - ], - 'network_interfaces': [ - { - 'network': 'net1', - }, - ], - 'flavor': 'm1.tiny', - 'config_drive': False, - } -} - -networks = { - 'net1': { - 'public': True, - }, -} - -params_meta = { - 'folder': { - 'descriptions': { - 'si': 'Mapa, ki vsebuje 100 datotek', - 'en': 'A folder with 100 files', - }, - 'w': False, - 'public': True, - 'type': 'dirname', - 'generated': False, - }, - 'host': { - 'descriptions': { - 'si': 'Naslov racunalnika, na katerega kopiramo datoteke', - 'en': 'The address of the computer to which the files are copied', - }, - 'w': True, - 'public': True, - 'type': 'IP', - 'generated': False, - }, -} - -def task(host, folder): - return kpov_util.ssh_test(host, 'test', 'test', ( - ('files', 'ls -1'), # XXX: file may have newlines - ('contents', 'cat *'), # XXX: may include other files in $HOME - )) - -def gen_params(user_id, params_meta): - pass - -def task_check(results, params): - import os - - score = 0 - hints = [] - if results['ssh'] is not True: - hints += ['ssh failed: ' + results['ssh']] - - matched = 0 - files = os.listdir(params['folder']) - for fn in files: - if fn in results['files'].splitlines(): - matched += 1 - if matched > 0: - score = 1 - else: - hints += ["no files"] - if matched > len(files)/2: - score += 2 - else: - hints += ["less than half the files"] - if (matched == len(files)): - score += 3 - else: - hints += ["wrong number of files"] - rl = results['contents'].splitlines() - rl.sort() - tl = [] - for fn in files: - with open(os.path.join(params['folder'], fn)) as f: - tl += f.read().upper().splitlines() - tl.sort() - if rl == tl: - score += 4 - else: - hints += ["wrong files"] - return score, hints - -def prepare_disks(templates, task_params, global_params): - pass -- cgit v1.2.1