use of com.google.api.services.compute.model.Subnetwork in project cloudbreak by hortonworks.
the class GcpPlatformResources method networks.
@Override
public CloudNetworks networks(CloudCredential cloudCredential, Region region, Map<String, String> filters) throws Exception {
Compute compute = GcpStackUtil.buildCompute(cloudCredential);
String projectId = GcpStackUtil.getProjectId(cloudCredential);
Map<String, Set<CloudNetwork>> result = new HashMap<>();
Set<CloudNetwork> cloudNetworks = new HashSet<>();
if (compute != null) {
NetworkList networkList = compute.networks().list(projectId).execute();
List<Subnetwork> subnetworkList = compute.subnetworks().list(projectId, region.value()).execute().getItems();
for (Network network : networkList.getItems()) {
Map<String, Object> properties = new HashMap<>();
properties.put("gatewayIPv4", Strings.nullToEmpty(network.getGatewayIPv4()));
properties.put("description", Strings.nullToEmpty(network.getDescription()));
properties.put("IPv4Range", Strings.nullToEmpty(network.getIPv4Range()));
properties.put("creationTimestamp", Strings.nullToEmpty(network.getCreationTimestamp()));
Map<String, String> subnets = new HashMap<>();
if (subnetworkList != null && network.getSubnetworks() != null) {
for (Subnetwork subnetwork : subnetworkList) {
if (network.getSubnetworks().contains(subnetwork.getSelfLink())) {
subnets.put(subnetwork.getName(), subnetwork.getName());
}
}
}
CloudNetwork cloudNetwork = new CloudNetwork(network.getName(), network.getId().toString(), subnets, properties);
cloudNetworks.add(cloudNetwork);
}
result.put(region.value(), cloudNetworks);
}
return new CloudNetworks(result);
}
Aggregations