mirror of
https://github.com/Dannecron/netology-devops.git
synced 2025-12-25 23:32:37 +03:00
add homework 4.3 skeleton
This commit is contained in:
@@ -16,5 +16,6 @@
|
|||||||
* [3.7. Компьютерные сети, лекция 2](/src/homework/03-sysadmin/3.7)
|
* [3.7. Компьютерные сети, лекция 2](/src/homework/03-sysadmin/3.7)
|
||||||
* [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/04-script/4.1)
|
||||||
* [4.2. Использование Python для решения типовых DevOps задач](/src/homework/04-script/4.2)
|
* [4.2. Использование Python для решения типовых DevOps задач](/src/homework/04-script/4.2)
|
||||||
|
* [4.3. Языки разметки JSON и YAML](/src/homework/04-script/4.3)
|
||||||
|
|||||||
75
src/homework/04-script/4.3/readme.md
Normal file
75
src/homework/04-script/4.3/readme.md
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
Выполнение [домашнего задания](https://github.com/netology-code/sysadm-homeworks/blob/devsys10/04-script-03-yaml/README.md)
|
||||||
|
по теме "4.3. Языки разметки JSON и YAML".
|
||||||
|
|
||||||
|
## Q/A
|
||||||
|
|
||||||
|
### Обязательная задача 1
|
||||||
|
|
||||||
|
Мы выгрузили JSON, который получили через API запрос к нашему сервису:
|
||||||
|
|
||||||
|
```
|
||||||
|
{ "info" : "Sample JSON output from our service\t",
|
||||||
|
"elements" :[
|
||||||
|
{ "name" : "first",
|
||||||
|
"type" : "server",
|
||||||
|
"ip" : 7175
|
||||||
|
}
|
||||||
|
{ "name" : "second",
|
||||||
|
"type" : "proxy",
|
||||||
|
"ip : 71.78.22.43
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Нужно найти и исправить все ошибки, которые допускает наш сервис
|
||||||
|
|
||||||
|
### Обязательная задача 2
|
||||||
|
|
||||||
|
В прошлый рабочий день мы создавали скрипт, позволяющий опрашивать веб-сервисы и получать их IP. К уже реализованному функционалу нам нужно добавить возможность записи JSON и YAML файлов, описывающих наши сервисы. Формат записи JSON по одному сервису: `{ "имя сервиса" : "его IP"}`. Формат записи YAML по одному сервису: `- имя сервиса: его IP`. Если в момент исполнения скрипта меняется IP у сервиса - он должен так же поменяться в yml и json файле.
|
||||||
|
|
||||||
|
#### Ваш скрипт:
|
||||||
|
|
||||||
|
```python
|
||||||
|
???
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Вывод скрипта при запуске при тестировании:
|
||||||
|
|
||||||
|
```
|
||||||
|
???
|
||||||
|
```
|
||||||
|
|
||||||
|
#### json-файл(ы), который(е) записал ваш скрипт:
|
||||||
|
|
||||||
|
```json
|
||||||
|
???
|
||||||
|
```
|
||||||
|
|
||||||
|
#### yml-файл(ы), который(е) записал ваш скрипт:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
???
|
||||||
|
```
|
||||||
|
|
||||||
|
### Дополнительное задание (со звездочкой*) - необязательно к выполнению
|
||||||
|
|
||||||
|
Так как команды в нашей компании никак не могут прийти к единому мнению о том, какой формат разметки данных использовать: JSON или YAML, нам нужно реализовать парсер из одного формата в другой. Он должен уметь:
|
||||||
|
* Принимать на вход имя файла
|
||||||
|
* Проверять формат исходного файла. Если файл не json или yml - скрипт должен остановить свою работу
|
||||||
|
* Распознавать какой формат данных в файле. Считается, что файлы *.json и *.yml могут быть перепутаны
|
||||||
|
* Перекодировать данные из исходного формата во второй доступный (из JSON в YAML, из YAML в JSON)
|
||||||
|
* При обнаружении ошибки в исходном файле - указать в стандартном выводе строку с ошибкой синтаксиса и её номер
|
||||||
|
* Полученный файл должен иметь имя исходного файла, разница в наименовании обеспечивается разницей расширения файлов
|
||||||
|
|
||||||
|
#### Ваш скрипт:
|
||||||
|
|
||||||
|
```python
|
||||||
|
???
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Пример работы скрипта:
|
||||||
|
|
||||||
|
```
|
||||||
|
???
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user