mirror of
https://github.com/Dannecron/netology-devops.git
synced 2025-12-25 23:32:37 +03:00
homework 4.2: add questions 1-2, move homework to subdir
This commit is contained in:
@@ -17,4 +17,4 @@
|
|||||||
* [3.8. Компьютерные сети, лекция 3](/src/homework/03-sysadmin/3.8)
|
* [3.8. Компьютерные сети, лекция 3](/src/homework/03-sysadmin/3.8)
|
||||||
* [3.9. Элементы безопасности информационных систем](/src/homework/03-sysadmin/3.9)
|
* [3.9. Элементы безопасности информационных систем](/src/homework/03-sysadmin/3.9)
|
||||||
* [4.1. Командная оболочка Bash: Практические навыки](/src/homework/4.1)
|
* [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)
|
||||||
|
|||||||
7
src/homework/04-script/4.2/q1_1.py
Executable file
7
src/homework/04-script/4.2/q1_1.py
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
a = 1
|
||||||
|
b = '2'
|
||||||
|
c = a + b
|
||||||
|
|
||||||
|
print(a, b, c)
|
||||||
7
src/homework/04-script/4.2/q1_2.py
Executable file
7
src/homework/04-script/4.2/q1_2.py
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
a = '1'
|
||||||
|
b = '2'
|
||||||
|
c = a + b
|
||||||
|
|
||||||
|
print(a, b, c)
|
||||||
7
src/homework/04-script/4.2/q1_3.py
Executable file
7
src/homework/04-script/4.2/q1_3.py
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
a = 1
|
||||||
|
b = 2
|
||||||
|
c = a + b
|
||||||
|
|
||||||
|
print(a, b, c)
|
||||||
13
src/homework/04-script/4.2/q2.py
Executable file
13
src/homework/04-script/4.2/q2.py
Executable file
@@ -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)
|
||||||
@@ -14,11 +14,11 @@ c = a + b
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### Вопросы:
|
#### Вопросы:
|
||||||
| Вопрос | Ответ |
|
| Вопрос | Ответ |
|
||||||
| ------------- | ------------- |
|
|------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| Какое значение будет присвоено переменной `c`? | ??? |
|
| Какое значение будет присвоено переменной `c`? | Переменной не будет присвоено никакое значение, потому что производится сложение целого числа и строки, при этом будет инициировано исключение `TypeError: unsupported operand type(s) for +: 'int' and 'str'` |
|
||||||
| Как получить для переменной `c` значение 12? | ??? |
|
| Как получить для переменной `c` значение 12? | Для этого необходимо присвоить переменной `a` строковое значение `'1'`, чтобы была произведена конкатенация строк. [script](./q1_2.py) |
|
||||||
| Как получить для переменной `c` значение 3? | ??? |
|
| Как получить для переменной `c` значение 3? | Для этого необходимо присвоить переменной `b` целочисленное значение `2` (без кавычек). [script](./q1_3.py) |
|
||||||
|
|
||||||
### Обязательная задача 2
|
### Обязательная задача 2
|
||||||
Мы устроились на работу в компанию, где раньше уже был DevOps Engineer. Он написал скрипт, позволяющий узнать, какие файлы модифицированы в репозитории, относительно локальных изменений. Этим скриптом недовольно начальство, потому что в его выводе есть не все изменённые файлы, а также непонятен полный путь к директории, где они находятся. Как можно доработать скрипт ниже, чтобы он исполнял требования вашего руководителя?
|
Мы устроились на работу в компанию, где раньше уже был DevOps Engineer. Он написал скрипт, позволяющий узнать, какие файлы модифицированы в репозитории, относительно локальных изменений. Этим скриптом недовольно начальство, потому что в его выводе есть не все изменённые файлы, а также непонятен полный путь к директории, где они находятся. Как можно доработать скрипт ниже, чтобы он исполнял требования вашего руководителя?
|
||||||
@@ -39,13 +39,36 @@ for result in result_os.split('\n'):
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### Ваш скрипт:
|
#### Ваш скрипт:
|
||||||
|
|
||||||
|
[script](./q2.py)
|
||||||
|
|
||||||
```python
|
```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
|
### Обязательная задача 3
|
||||||
Reference in New Issue
Block a user