Skip to content

Shamil-R/ipchain

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Задание:

Есть 3 yaml файла следующего содержания

a) содержимое файла project_global.yaml

project:
	name: MyFirstConfigProject
	debug: false
web:
	port: 80
service:
	google:
		host: http://google.com
		enabled: true

b) содержимое файла project_qa.yaml

project:
	name: QaProject
	debug: true
service:
	google:
		host: http://qa.google.com
		enabled: false

c) содержимое файла project_local.yaml

web:
	port: 8080
service:
	google:
		enabled: true

Необходимо написать пакет, который сканирует все вышеуказанные файлы и наполняет структуру данных значениями из файлов. Необходимо учитывать, что ключ depends означает, что значения наследуются от содержимого файла, которое формируется на основании значения из поля depends. Например depends: qa означает что структура данных заполнится сначала значениями из project_qa.yaml, а затем значения из текущего файла перепишут значения из project_qa.yaml. Наполнение данных должно происходить в зависимости от передаваемого ключа (local/qa/global) Пакет не должен зависит от заполняемой структуры данных.

Тип структуры, которая должна быть заполнена и подается на вход пакету вместе с ключем (local/qa/global)

type Config struct {
	Project struct {
		Name string
		Debug bool
	}
	Web struct {
		Port int
	}
	Service struct {
		Google struct {
			Host string
			Enabled bool
		}
	}
}

Решение: Для изменения ключа необходимо в файле Dockerfile изменить 22 строчку, задав необходимый ключ. Правильно было бы ключ брать из environment'а, но я следовал заданию.

Далее в терминале в корне проекта выполнить команду docker-compose up --build В ответе будет содержаться конфиг, соответствующий ключу.

About

Тестовое задание от ipchain

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published