From f446e30895a99d6ede9a22a5b511a95d8c67937b Mon Sep 17 00:00:00 2001 From: Jonathan Cobb Date: Wed, 17 Jun 2020 01:49:52 -0400 Subject: [PATCH] avoid NPE, fix mock compute driver --- .../compute/ComputeServiceDriverBase.java | 20 ++++++++++--------- .../cloud/compute/mock/MockComputeDriver.java | 6 ++++++ 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/bubble-server/src/main/java/bubble/cloud/compute/ComputeServiceDriverBase.java b/bubble-server/src/main/java/bubble/cloud/compute/ComputeServiceDriverBase.java index 224ea7bf..504e6be2 100644 --- a/bubble-server/src/main/java/bubble/cloud/compute/ComputeServiceDriverBase.java +++ b/bubble-server/src/main/java/bubble/cloud/compute/ComputeServiceDriverBase.java @@ -59,15 +59,17 @@ public abstract class ComputeServiceDriverBase @Getter(lazy=true) private final List regions = initRegions(); private List initRegions() { final ArrayList cloudRegions = new ArrayList<>(); - for (CloudRegion configRegion : config.getRegions()) { - final CloudRegion cloudRegion = getCloudRegions().stream() - .filter(s -> s.getInternalName().equalsIgnoreCase(configRegion.getInternalName())) - .findFirst() - .orElse(null); - if (cloudRegion == null) { - log.warn("initRegions: config region not found: "+configRegion.getInternalName()); - } else { - cloudRegions.add(configRegion.setId(cloudRegion.getId())); + if (config != null && config.getRegions() != null) { + for (CloudRegion configRegion : config.getRegions()) { + final CloudRegion cloudRegion = getCloudRegions().stream() + .filter(s -> s.getInternalName().equalsIgnoreCase(configRegion.getInternalName())) + .findFirst() + .orElse(null); + if (cloudRegion == null) { + log.warn("initRegions: config region not found: " + configRegion.getInternalName()); + } else { + cloudRegions.add(configRegion.setId(cloudRegion.getId())); + } } } return cloudRegions; diff --git a/bubble-server/src/main/java/bubble/cloud/compute/mock/MockComputeDriver.java b/bubble-server/src/main/java/bubble/cloud/compute/mock/MockComputeDriver.java index 85a59c09..d6dab18a 100644 --- a/bubble-server/src/main/java/bubble/cloud/compute/mock/MockComputeDriver.java +++ b/bubble-server/src/main/java/bubble/cloud/compute/mock/MockComputeDriver.java @@ -29,12 +29,18 @@ public class MockComputeDriver extends ComputeServiceDriverBase { .setName("nyc_mock") .setLocation(MockGeoLocationDriver.MOCK_LOCAION)); + @Override public List getRegions() { return getCloudRegions(); } + @Getter private final List cloudSizes = singletonList(new ComputeNodeSize() .setName("standard") .setType(ComputeNodeSizeType.small)); + @Override public List getSizes() { return getCloudSizes(); } + @Getter private final List cloudOsImages = singletonList(new OsImage().setName("dummy operating system")); + @Getter(lazy=true) private final OsImage os = new OsImage().setName("Ubuntu 20.04 x84").setId("ubuntu20.04x84"); + @Override public BubbleNode start(BubbleNode node) throws Exception { node.setIp4("127.0.0.1"); node.setIp6("::1");