Skip to content

Commit a2243f9

Browse files
authored
Fix state query startup delay for ClearBlade (#722)
1 parent 5535dcf commit a2243f9

File tree

14 files changed

+109
-37
lines changed

14 files changed

+109
-37
lines changed

bin/reset_config

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,25 @@ echo Setting config timestamp ${now_date}
3636
jq < ${src_config} .timestamp=\"${now_date}\" |\
3737
jq .system.testing.sequence_name=\"${config_file%.json}\" > ${dst_config}
3838

39+
if [[ -n $project_id ]]; then
40+
quoted_id=\"${project_id##*/}\"
41+
else
42+
quoted_id=null
43+
fi
44+
45+
if [[ $project_id =~ ^// ]]; then
46+
sans_project=${project_id%/*}
47+
iot_provider=\"${sans_project#//}\"
48+
else
49+
iot_provider=null
50+
fi
51+
3952
echo Resetting device ${device_id} config...
4053
echo Writing config to $REFLECTOR_CONFIG
4154
cat <<EOF > $REFLECTOR_CONFIG
4255
{
43-
"project_id": "$project_id",
56+
"iot_provider": $iot_provider,
57+
"project_id": $quoted_id,
4458
"site_model": "$site_dir",
4559
"device_id": "$device_id",
4660
"registry_suffix": $registry_suffix

tests/traces/simple/devices/AHU-22/003_event_system.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"logentries" : [ {
33
"message" : "2022-07-19T05:04:39Z sent message #70",
44
"category" : "device.log_message",
5-
"timestamp" : "2022-07-19T05:04:39Z",
5+
"timestamp" : "2022-07-19T05:04:32Z",
66
"level" : 200
77
} ],
88
"timestamp" : "2022-07-19T05:04:39Z",

tests/traces/simple/devices/AHU-22/004_event_pointset.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@
1010
"present_value" : 21
1111
}
1212
},
13-
"timestamp" : "2022-07-19T05:04:39Z",
13+
"timestamp" : "2022-07-19T05:04:49Z",
1414
"version" : "1.3.14"
15-
}
15+
}

udmis/.idea/runConfigurations/UdmiServicePod_configured.xml renamed to udmis/.idea/runConfigurations/UdmiServicePod_ClearBlade.xml

Lines changed: 5 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

udmis/bin/pod_logs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/bin/bash -e
2+
3+
ROOT=$(dirname $0)/..
4+
cd $ROOT
5+
mkdir -p out
6+
cd out
7+
8+
podprefix=udmis-pods-
9+
10+
pods=$(kubectl get pods | fgrep $podprefix | awk '{print $1}')
11+
echo Getting logs for pods $pods
12+
13+
rm -f ${podprefix}*.log
14+
15+
for pod in $pods; do
16+
kubectl logs $pod > $pod.log &
17+
done
18+
19+
wait
20+
21+
cat ${podprefix}*.log | fgrep "Z " | sort -k 1 > pods.log
22+
23+
echo Combined logs available in $(realpath pods.log)

udmis/src/main/java/com/google/bos/udmi/service/access/ClearBladeIotAccessProvider.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,10 +183,11 @@ protected String updateConfig(String registryId, String deviceId, String config,
183183
.setName(DeviceName.of(projectId, location, registryId, deviceId).toString())
184184
.setBinaryData(binaryData).setVersionToUpdate(updateVersion).build();
185185
DeviceConfig response = deviceManagerClient.modifyCloudToDeviceConfig(request);
186-
System.err.println("Config modified version " + response.getVersion());
186+
debug("Modified %s/%s config version %s", registryId, deviceId, response.getVersion());
187187
return config;
188188
} catch (Exception e) {
189-
throw new RuntimeException("While modifying device config", e);
189+
throw new RuntimeException(
190+
format("While modifying device config %s/%s", registryId, deviceId), e);
190191
}
191192
}
192193

udmis/src/main/java/com/google/bos/udmi/service/access/IotAccessBase.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,8 +280,7 @@ public final void sendCommand(String registryId, String deviceId, SubFolder fold
280280
backoffKey, getTimestamp(until)));
281281
}
282282
} else {
283-
debug("Dropping message because registry backoff for %s",
284-
backoffKey);
283+
debug("Dropping message because registry backoff for %s", backoffKey);
285284
}
286285
}
287286

udmis/src/main/java/com/google/bos/udmi/service/core/ReflectProcessor.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import static com.google.udmi.util.JsonUtil.convertTo;
1515
import static com.google.udmi.util.JsonUtil.convertToStrict;
1616
import static com.google.udmi.util.JsonUtil.fromStringStrict;
17+
import static com.google.udmi.util.JsonUtil.getTimestamp;
1718
import static com.google.udmi.util.JsonUtil.loadFileStrictRequired;
1819
import static com.google.udmi.util.JsonUtil.stringify;
1920
import static com.google.udmi.util.JsonUtil.stringifyTerse;
@@ -138,8 +139,8 @@ private void processException(Envelope reflection, Exception e) {
138139

139140
private void processReflection(Envelope reflection, Envelope envelope,
140141
Map<String, Object> payload) {
141-
debug("Processing reflection %s/%s %s", envelope.subType, envelope.subFolder,
142-
envelope.transactionId);
142+
debug("Processing reflection %s/%s %s %s", envelope.subType, envelope.subFolder,
143+
getTimestamp(envelope.publishTime), envelope.transactionId);
143144
updateProviderAffinity(envelope, reflection.source);
144145
CloudModel result = getReflectionResult(envelope, payload);
145146
ifNotNullThen(result,
@@ -231,7 +232,7 @@ private void reflectStateHandler(Envelope envelope, UdmiState toolState) {
231232

232233
Map<String, Object> configMap = new HashMap<>();
233234
configMap.put(SubFolder.UDMI.value(), udmiConfig);
234-
String contents = stringify(configMap);
235+
String contents = stringifyTerse(configMap);
235236
debug("Setting reflector config %s %s: %s", registryId, deviceId, contents);
236237
iotAccess.modifyConfig(registryId, deviceId, previous -> contents);
237238
}
@@ -264,7 +265,7 @@ private void updateRegistryRegions(Map<String, String> regions) {
264265

265266
@Override
266267
public void activate() {
267-
debug("Deployment configuration: " + stringify(DEPLOYED_CONFIG));
268+
debug("Deployment configuration: " + stringifyTerse(DEPLOYED_CONFIG));
268269
super.activate();
269270
}
270271

udmis/src/main/java/com/google/bos/udmi/service/messaging/impl/PubSubPipe.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,9 @@ public void receiveMessage(PubsubMessage message, AckReplyConsumer reply) {
138138
receiveMessage(attributesMap, messageString);
139139
Instant end = Instant.now();
140140
long seconds = Duration.between(start, end).getSeconds();
141-
debug("Receive message took %ss", seconds);
141+
if (seconds > 1) {
142+
warn("Receive message took %ss", seconds);
143+
}
142144
}
143145

144146
Publisher getPublisher(String topicName) {

udmis/src/main/java/com/google/bos/udmi/service/pod/ContainerBase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ private String getSimpleName() {
8080

8181
private void output(Level level, String message) {
8282
PrintStream printStream = level.value() >= Level.WARNING.value() ? System.err : System.out;
83-
printStream.printf("%s %s %s: %s %s%n", getExecutionContext(), JsonUtil.getTimestamp(),
83+
printStream.printf("%s %s %s: %s %s%n", JsonUtil.getTimestamp(), getExecutionContext(),
8484
level.name().charAt(0), getSimpleName(), message);
8585
printStream.flush();
8686
}

0 commit comments

Comments
 (0)