From 2981f9cab86388a25dc93a4533ab5acc7864caa9 Mon Sep 17 00:00:00 2001 From: dannc Date: Thu, 7 Apr 2022 10:38:49 +0700 Subject: [PATCH] homework 4.2: add questions 1-2, move homework to subdir --- readme.md | 2 +- src/homework/04-script/4.2/q1_1.py | 7 ++++ src/homework/04-script/4.2/q1_2.py | 7 ++++ src/homework/04-script/4.2/q1_3.py | 7 ++++ src/homework/04-script/4.2/q2.py | 13 ++++++++ src/homework/{ => 04-script}/4.2/readme.md | 37 ++++++++++++++++++---- src/homework/{ => 04-script}/notes.md | 0 7 files changed, 65 insertions(+), 8 deletions(-) create mode 100755 src/homework/04-script/4.2/q1_1.py create mode 100755 src/homework/04-script/4.2/q1_2.py create mode 100755 src/homework/04-script/4.2/q1_3.py create mode 100755 src/homework/04-script/4.2/q2.py rename src/homework/{ => 04-script}/4.2/readme.md (74%) rename src/homework/{ => 04-script}/notes.md (100%) diff --git a/readme.md b/readme.md index e95430a..0d6e89c 100644 --- a/readme.md +++ b/readme.md @@ -17,4 +17,4 @@ * [3.8. Компьютерные сети, лекция 3](/src/homework/03-sysadmin/3.8) * [3.9. Элементы безопасности информационных систем](/src/homework/03-sysadmin/3.9) * [4.1. Командная оболочка Bash: Практические навыки](/src/homework/4.1) -* [4.2. Использование Python для решения типовых DevOps задач](/src/homework/4,2) +* [4.2. Использование Python для решения типовых DevOps задач](/src/homework/04-script/4.2) diff --git a/src/homework/04-script/4.2/q1_1.py b/src/homework/04-script/4.2/q1_1.py new file mode 100755 index 0000000..9156012 --- /dev/null +++ b/src/homework/04-script/4.2/q1_1.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python3 + +a = 1 +b = '2' +c = a + b + +print(a, b, c) diff --git a/src/homework/04-script/4.2/q1_2.py b/src/homework/04-script/4.2/q1_2.py new file mode 100755 index 0000000..2ec5c0c --- /dev/null +++ b/src/homework/04-script/4.2/q1_2.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python3 + +a = '1' +b = '2' +c = a + b + +print(a, b, c) diff --git a/src/homework/04-script/4.2/q1_3.py b/src/homework/04-script/4.2/q1_3.py new file mode 100755 index 0000000..bb61fcb --- /dev/null +++ b/src/homework/04-script/4.2/q1_3.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python3 + +a = 1 +b = 2 +c = a + b + +print(a, b, c) diff --git a/src/homework/04-script/4.2/q2.py b/src/homework/04-script/4.2/q2.py new file mode 100755 index 0000000..651fe56 --- /dev/null +++ b/src/homework/04-script/4.2/q2.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python3 + +import os +cd_command = "cd ~/netology/sysadm-homeworks" +bash_command = [cd_command, "git status"] +top_level_command = [cd_command, "git rev-parse --show-toplevel"] +top_level = os.popen(' && '.join(top_level_command)).read().replace('\n', '') +result_os = os.popen(' && '.join(bash_command)).read() +for result in result_os.split('\n'): + if result.find('modified') != -1: + prepare_result = result.replace('\tmodified: ', '') + full_path = top_level + '/' + prepare_result + print(full_path) diff --git a/src/homework/4.2/readme.md b/src/homework/04-script/4.2/readme.md similarity index 74% rename from src/homework/4.2/readme.md rename to src/homework/04-script/4.2/readme.md index 5a12516..c72415e 100644 --- a/src/homework/4.2/readme.md +++ b/src/homework/04-script/4.2/readme.md @@ -14,11 +14,11 @@ c = a + b ``` #### Вопросы: -| Вопрос | Ответ | -| ------------- | ------------- | -| Какое значение будет присвоено переменной `c`? | ??? | -| Как получить для переменной `c` значение 12? | ??? | -| Как получить для переменной `c` значение 3? | ??? | +| Вопрос | Ответ | +|------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Какое значение будет присвоено переменной `c`? | Переменной не будет присвоено никакое значение, потому что производится сложение целого числа и строки, при этом будет инициировано исключение `TypeError: unsupported operand type(s) for +: 'int' and 'str'` | +| Как получить для переменной `c` значение 12? | Для этого необходимо присвоить переменной `a` строковое значение `'1'`, чтобы была произведена конкатенация строк. [script](./q1_2.py) | +| Как получить для переменной `c` значение 3? | Для этого необходимо присвоить переменной `b` целочисленное значение `2` (без кавычек). [script](./q1_3.py) | ### Обязательная задача 2 Мы устроились на работу в компанию, где раньше уже был DevOps Engineer. Он написал скрипт, позволяющий узнать, какие файлы модифицированы в репозитории, относительно локальных изменений. Этим скриптом недовольно начальство, потому что в его выводе есть не все изменённые файлы, а также непонятен полный путь к директории, где они находятся. Как можно доработать скрипт ниже, чтобы он исполнял требования вашего руководителя? @@ -39,13 +39,36 @@ for result in result_os.split('\n'): ``` #### Ваш скрипт: + +[script](./q2.py) + ```python -??? +#!/usr/bin/env python3 + +import os +cd_command = "cd ~/netology/sysadm-homeworks" +bash_command = [cd_command, "git status"] +top_level_command = [cd_command, "git rev-parse --show-toplevel"] +top_level = os.popen(' && '.join(top_level_command)).read().replace('\n', '') +result_os = os.popen(' && '.join(bash_command)).read() +for result in result_os.split('\n'): + if result.find('modified') != -1: + prepare_result = result.replace('\tmodified: ', '') + full_path = top_level + '/' + prepare_result + print(full_path) ``` #### Вывод скрипта при запуске при тестировании: + +_note_: при запуске скрипта изменил путь до репозитория. ``` -??? +./q2.py +/home/dannc/code/learning/netology/readme.md +/home/dannc/code/learning/netology/src/homework/04-script/4.2/q1_2.py +/home/dannc/code/learning/netology/src/homework/04-script/4.2/q1_3.py +/home/dannc/code/learning/netology/src/homework/04-script/4.2/q2.py +/home/dannc/code/learning/netology/src/homework/04-script/4.2/readme.md + ``` ### Обязательная задача 3 diff --git a/src/homework/notes.md b/src/homework/04-script/notes.md similarity index 100% rename from src/homework/notes.md rename to src/homework/04-script/notes.md