From fa03f7fc1e965cedcde1c6775373aef4c1facef6 Mon Sep 17 00:00:00 2001 From: Arne Juul Date: Thu, 11 Apr 2024 13:23:14 +0000 Subject: add API for getting all ports with /state/v1 --- .../model/ApplicationConfigProducerRoot.java | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'config-model/src/main') diff --git a/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java b/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java index d9d7dd9eaf0..f324ceef5ab 100644 --- a/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java +++ b/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java @@ -233,6 +233,37 @@ public class ApplicationConfigProducerRoot extends TreeConfigProducer getStatePorts() { + List result = new ArrayList<>(); + for (HostResource modelHost : hostSystem().getHosts()) { + String hostName = modelHost.getHostname(); + for (Service modelService : modelHost.getServices()) { + String serviceName = modelService.getServiceName(); + String serviceType = modelService.getServiceType(); + PortsMeta portsMeta = modelService.getPortsMeta(); + for (int i = 0; i < portsMeta.getNumPorts(); i++) { + int portNumber = modelService.getRelativePort(i); + boolean hasState = false; + boolean isHttp = false; + for (String tag : portsMeta.getTagsAt(i)) { + if (tag.equals("state")) hasState = true; + if (tag.equals("http")) isHttp = true; + } + if (hasState && isHttp) { + result.add(new StatePortInfo(hostName, portNumber, serviceName, serviceType)); + } + } + } + } + return result; + } + private List getServices(HostResource modelHost) { List ret = new ArrayList<>(); for (Service modelService : modelHost.getServices()) { -- cgit v1.2.3