From 9234c457124f33c85e249ba5859b306dccb40ea5 Mon Sep 17 00:00:00 2001 From: Trevor Date: Wed, 15 May 2024 08:23:53 -0700 Subject: [PATCH] Add test function for listing devices in a site registry (#889) --- .../ClearBladeIotAccessProvider.xml | 19 +++++++++++++ .../access/ClearBladeIotAccessProvider.java | 27 ++++++++++++++++++- 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 udmis/.idea/runConfigurations/ClearBladeIotAccessProvider.xml diff --git a/udmis/.idea/runConfigurations/ClearBladeIotAccessProvider.xml b/udmis/.idea/runConfigurations/ClearBladeIotAccessProvider.xml new file mode 100644 index 0000000000..7a89db79f3 --- /dev/null +++ b/udmis/.idea/runConfigurations/ClearBladeIotAccessProvider.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/udmis/src/main/java/com/google/bos/udmi/service/access/ClearBladeIotAccessProvider.java b/udmis/src/main/java/com/google/bos/udmi/service/access/ClearBladeIotAccessProvider.java index b8a14efa15..ddcc257d3c 100644 --- a/udmis/src/main/java/com/google/bos/udmi/service/access/ClearBladeIotAccessProvider.java +++ b/udmis/src/main/java/com/google/bos/udmi/service/access/ClearBladeIotAccessProvider.java @@ -67,7 +67,9 @@ import com.google.common.collect.BiMap; import com.google.common.collect.ImmutableBiMap; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; +import com.google.udmi.util.JsonUtil; import java.util.AbstractMap.SimpleEntry; import java.util.Base64; import java.util.Date; @@ -95,7 +97,8 @@ public class ClearBladeIotAccessProvider extends IotAccessBase { public static final String REGISTRIES_FIELD_MASK = "id,name"; - private static final Set CLOUD_REGIONS = ImmutableSet.of("us-central1"); + public static final String DEFAULT_REGION = "us-central1"; + private static final Set CLOUD_REGIONS = ImmutableSet.of(DEFAULT_REGION); private static final String EMPTY_JSON = "{}"; private static final BiMap AUTH_TYPE_MAP = ImmutableBiMap.of( Key_format.RS_256, PublicKeyFormat.RSA_PEM, @@ -117,9 +120,31 @@ public class ClearBladeIotAccessProvider extends IotAccessBase { private static final String UDMI_STATE_TOPIC = "udmi_state"; // TODO: Make this not hardcoded. private static final String TOPIC_NAME_FORMAT = "projects/%s/topics/%s"; private static final CharSequence BOUND_TO_GATEWAY_MARKER = " it's associated "; + public static final String CONFIG_ENV = "CLEARBLADE_CONFIGURATION"; private final String projectId; private final DeviceManagerInterface deviceManager; + /** + * Core test function for listing the devices in a registry. + */ + public static void main(String[] args) { + requireNonNull(System.getenv(CONFIG_ENV), CONFIG_ENV + " not defined"); + IotAccess iotAccess = new IotAccess(); + if (args.length != 1) { + System.err.println("Usage: registry_id"); + return; + } + final String registryId = args[0]; + Map stringObjectMap = JsonUtil.loadMap(System.getenv(CONFIG_ENV)); + iotAccess.project_id = (String) requireNonNull(stringObjectMap.get("project")); + System.err.println("Extracted project from ClearBlade config file: " + iotAccess.project_id); + ClearBladeIotAccessProvider clearBladeIotAccessProvider = + new ClearBladeIotAccessProvider(iotAccess); + clearBladeIotAccessProvider.populateRegistryRegions(); + CloudModel cloudModel = clearBladeIotAccessProvider.listDevices(registryId); + System.err.printf("Found %d results%n", cloudModel.device_ids.size()); + } + /** * Create a new instance for interfacing with GCP IoT Core. */