Как написать файл конфигурации YAML для образов докеровJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как написать файл конфигурации YAML для образов докеров

Сообщение Anonymous »

Я пытаюсь автоматизировать процесс с помощью Java, в котором я записываю конфигурацию YAML в файл.
Хотя большую часть этого я могу выполнить, я застрял в последней части «ссылок» и нуждаюсь в помощи. чтобы решить эту проблему, распознав для нее соответствующую структуру данных. Также я хочу понять, где я ошибаюсь.
Ожидаемый YAML:
name: srlceos01
topology:
nodes:
srl:
kind: nokia_srlinux
image: ghcr.io/nokia/srlinux
ceos:
kind: ceos
image: ceos:4.25.0F
links:
- endpoints: ["srl:e1-1", "ceos:eth1"]

Насколько я понимаю, «ссылки» — это массив списков массивов «конечных точек». Я получаю результат ниже:
Фактический результат:
!!xx.xx.xx.bean.Container (Unwanted and wanted to remove)
links:
linkArray:
- endpoints:
- endpoints:
- srl:e1-1
- ceos:eth1
- null
- null
- null
- null
name: srlceos01
topology:
srl:
image: ghcr.io/nokia/srlinux
kind: nokia_srlinux

Мой код:
public class Container {

private String name;
private Map topology;
private LinksArray links;

}

public class LinksArray {

private Links[] linkArray;
}

public class Links {

private List endpoints;
}

public class Endpoint {

private String[] endpoints;
}

public class Nodes {

private String kind;
private String image;
}

import org.springframework.stereotype.Service;
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.DumperOptions.FlowStyle;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.nodes.Tag;
import xx.xx.Container;

@Service
public class GenerateYamlFileImpl {

public void writeYamlfile(Container yamlConfig) {

DumperOptions dpo = new DumperOptions();
dpo.setDefaultFlowStyle(FlowStyle.BLOCK);
Yaml yaml = new Yaml(dpo);
System.out.println(yaml.dump(yamlConfig));
}

}

@SpringBootApplication
@ComponentScan("xx.xx.xx")
public class EmulateGuiBackendApplication {

public static void main(String[] args) {
SpringApplication.run(EmulateGuiBackendApplication.class, args);
GenerateYamlFile gf = new GenerateYamlFile();
gf.createYamlFile();
}
}

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import xx.xx.Container;
import xx.xx.Endpoint;
import xx.xx.Links;
import xx.xx.LinksArray;
import xx.xx.Nodes;
import xx.xx.service.GenerateYamlFileImpl;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

@Component
public class GenerateYamlFile {

Logger logger = LogManager.getLogger(GenerateYamlFile.class);

public void createYamlFile() {
Container container = new Container();
container.setName("srlceos01");
Map topo = new LinkedHashMap();
Nodes node = new Nodes();
node.setImage("ghcr.io/nokia/srlinux");
node.setKind("nokia_srlinux");
topo.put("srl", node);
String[] link = {"srl:e1-1","ceos:eth1"};
Endpoint end = new Endpoint();
end.setEndpoints(link);
List endpointList = new ArrayList();
endpointList.add(end);
Links newLink = new Links();
newLink.setEndpoints(endpointList);
Links[] lkarray = new Links[5];
lkarray[0]=newLink;
LinksArray lArr = new LinksArray();
lArr.setLinkArray(lkarray);
container.setTopology(topo);
container.setLinks(lArr);
GenerateYamlFileImpl yamlService = new GenerateYamlFileImpl();
yamlService.writeYamlfile(container);
}
}


Подробнее здесь: https://stackoverflow.com/questions/783 ... ker-images
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»