#!/usr/bin/env python # -*- coding: utf-8 -*- # kpov_random_helpers should be imported by add_assignment.py # TODO (polz): instructions = { 'si':u""" Prijavi se na sistem. 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 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 - S pomočjo programa cURL shrani vsebino spletne strani www.google.com v datoteko z imenom website.txt - 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 """, 'en':u""" Log into the system. In your home folder you will find a directory called Folder containing 20 files. - Rename all files replacing minus sign with the underscore - Specify the shortest command for copying all the files located in /home/user/Folder into the folder /home/user/new - Specify the shortest command, which will, using the grep command, write all normal (not hidden) files containing a string "mama" located in working directory (pwd) into file "mama.txt" while writing errors such as files in current directory being folders or symbolic links in the file called "Errors.txt" - Specify a command, which will track the contents of /var/log/syslog for 5s. In case it finds the entry "confusion" in syslog, print "got it". In addition, let the program subtrack 1 from the counter every second(5 to 1) to show the status of the tracker. - Set the variable TEST, which will have the same value as the variable USER + the number of variables that do not include the name TEST, for example polz37. - With the help of cURL fetch the website content of www.google.com and save it into file named website.txt - In directory "Mapa" exists file count.txt - Install packet "cowsay" and test it :) - Write shortest command possible which will with the help of Python start a simple (integrated) HTTP server and will serve the files from the current directory on port 8000.""" } computers = { 'malishell': { 'disks': [ { 'name': 'malishell', }, #{ 'name': 'CDROM', # 'options':{'readonly': True}, # 'parts': [],# no parts, no mounting. #} ], 'network_interfaces': [{'network': 'net1'}], 'flavor': 'm1.tiny', 'config_drive': False }, 'SimpleArbiter': { 'disks': [ { 'name': 'simpleArbiterDhcp', # attempt automount }, #{ 'name': 'CDROM', # 'options': {'readonly': True}, # 'parts': [{'dev': 'b1', 'path': '/cdrom'}], #}, ], 'network_interfaces': [{'network': 'net1'}, {'network': 'test-net'}], 'flavor': 'm1.tiny', 'config_drive': False } } networks = { 'net1': {'public': False}, 'test-net': {'public': True} } params_meta = { 'IP_NM': {'descriptions': {'si': 'Naslov maliNetworkManager'}, 'w': False, 'public':True, 'type': 'IP', 'generated': True}, } def task(): # TODO: (polz) this has to be changed! Get a move on! # Z primozem lavricem sva skusala nekaj narediti (ostali pa se itak ne oglasajo) # Ker gen params ni narejen, sklepam da je "Mapa" na namizju, # imena datotek pa so: 1,1-,2,2-,3,3-,4,5,6,7,8,9,.mama1,mama2,mama3,mama4,mama5,mojimenik,novi,oce1 # v mojimenik se nahaja mojimenikfile # mama2 vsebuje "mama" #Stirje subt-aski dodani.By Mihec. import subprocess results = dict() p = subprocess.check_output(["ls","-a", "/home/student/Desktop/Mapa"]) results['preimenuj'] = p # ta more met mojimenikfile results['novi'] = subprocess.check_output(["ls", "/home/student/Desktop/Mapa/novi"]) # ta more bit prazen results['mojimenik'] = subprocess.check_output(["ls", "/home/student/Desktop/Mapa/mojimenik"]) # ta more met mama2 results['mamatxt'] = subprocess.check_output(["cat", "/home/student/Desktop/mama.txt"]) # ta pa grep: mojimenik: Is a directory, grep: novi: Is a directory results['napaketxt'] = subprocess.check_output(["cat", "/home/student/Desktop/napake.txt"]) results['curl'] = subprocess.check_output(["cat","/home/student/Desktop/website.txt"]) results['count'] = subprocess.check_output(["wc","/home/student/Desktop/count.txt"]) results['cowsay'] = subprocess.check_output(["dpkg --get-selections | grep","cowsay"]) results['phttp'] = subprocess.check_output(["ps aux | grep ","SimpleHTTPServer"]) return results def gen_params(user_id, params_meta): #PLEASE FINISH gen_params I NEED IT FOR TASK CHECK (Primoz Lavric) import random params = dict() r = random.Random(user_id) # IP_NM, DNS_NM, IP_static, DNS_static) dns_servers = ['193.2.1.66', '193.2.1.72', '8.8.8.8', '8.8.4.4', '208.67.222.222', '208.67.220.220'] net = kpov_random_helpers.IPv4_subnet_gen(r, '172.23.128.0/18', 24) params['DNS_NM'] = r.choice(dns_servers) params['IP_NM'], params['IP_static'] = kpov_random_helpers.IPv4_addr_gen(r, net, 2) params['DNS_static'] = r.choice(dns_servers) count = 0 while(count -1: score += 1 #TASK 2 if results['novi'].find('NoFormatATM'.format(params['NoNameAtm'])) > -1: score += 1 #TASK 3 if results['mojimenik'].find('NoFormatATM'.format(params['NoNameAtm'])) > -1: score += 1 #TASK 4 if results['mamatxt'].find('NoFormatATM'.format(params['NoNameAtm'])) > -1: score += 1 #TAKS 5 if results['napaketxt'].find('NoFormatATM'.format(params['NoNameAtm'])) > -1: score += 1 #TASK 6 if results['curl'].find('NoFormatATM'.format(params['NoNameAtm'])) > -1: score += 1 #TASK 7 if results['count'].find('NoFormatATM'.format(params['NoNameAtm'])) > -1: score += 1 #TASK 8 if results['cowsay'].find('NoFormatATM'.format(params['NoNameAtm'])) > -1: score += 1 #TASK 9 if results['phttp'].find('NoFormatATM'.format(params['NoNameAtm'])) > -1: score += 2 return score def prepare_disks(templates, params): # d = templates['simpleArbiterDhcp'] pass #preimenuj vse datoteke tako, da zmenjas minuse s podcrtaji def rename(): import os for filename in os.listdir('.'): os.rename(filename, filename.replace('-','_')) #napisi cimkrajsi ukaz, ki vse datoteke iz /home/user/mapa/mojimenik premakne v /hostuser/novi def mv_novi(): import os for filename in os.filename("/home/user/mapa/mojimenik/"): os.rename('/home/user/mapa/mojimenik/' + filename, '/home/user/novi/' + filename)