package com.sequenceiq.cloudbreak.cloud.azure.view;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.sequenceiq.cloudbreak.cloud.model.Group;
import com.sequenceiq.cloudbreak.cloud.model.PortDefinition;
import com.sequenceiq.cloudbreak.cloud.model.SecurityRule;
public class AzureSecurityView {
private Map<String, List<AzurePortView>> ports = new HashMap<>();
public AzureSecurityView(List<Group> groups) {
for (Group group : groups) {
List<AzurePortView> groupPorts = new ArrayList<>();
for (SecurityRule securityRule : group.getSecurity().getRules()) {
for (PortDefinition port : securityRule.getPorts()) {
if (port.isRange()) {
String portRange = String.format("%s-%s", port.getFrom(), port.getTo());
groupPorts.add(new AzurePortView(securityRule.getCidr(), portRange, securityRule.getProtocol()));
} else {
groupPorts.add(new AzurePortView(securityRule.getCidr(), port.getFrom(), securityRule.getProtocol()));
}
}
}
ports.put(group.getName(), groupPorts);
}
}
public Map<String, List<AzurePortView>> getPorts() {
return ports;
}
}