Files
netology-devops/src/homework/04-script/4.3

Выполнение домашнего задания по теме "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
            }
        ]
    }

Нужно найти и исправить все ошибки, которые допускает наш сервис.

Решение:

{ 
  "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 файле.

Ваш скрипт:

???

Вывод скрипта при запуске при тестировании:

???

json-файл(ы), который(е) записал ваш скрипт:

???

yml-файл(ы), который(е) записал ваш скрипт:

???

Дополнительное задание (со звездочкой*) - необязательно к выполнению

Так как команды в нашей компании никак не могут прийти к единому мнению о том, какой формат разметки данных использовать: JSON или YAML, нам нужно реализовать парсер из одного формата в другой. Он должен уметь:

  • Принимать на вход имя файла
  • Проверять формат исходного файла. Если файл не json или yml - скрипт должен остановить свою работу
  • Распознавать какой формат данных в файле. Считается, что файлы *.json и *.yml могут быть перепутаны
  • Перекодировать данные из исходного формата во второй доступный (из JSON в YAML, из YAML в JSON)
  • При обнаружении ошибки в исходном файле - указать в стандартном выводе строку с ошибкой синтаксиса и её номер
  • Полученный файл должен иметь имя исходного файла, разница в наименовании обеспечивается разницей расширения файлов

Ваш скрипт:

???

Пример работы скрипта:

???