Skip to content

Commit

Permalink
Updates for basic discovery scan tests in alpha (#832)
Browse files Browse the repository at this point in the history
  • Loading branch information
grafnu authored Mar 11, 2024
1 parent 28883ce commit 741b615
Show file tree
Hide file tree
Showing 239 changed files with 9,551 additions and 3,470 deletions.
41 changes: 21 additions & 20 deletions .gencode_hash.txt
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
433b3c972a2d4de6f54cf32f00f918fa7e3fd80d4bf29a2c7bee182f532bc660 gencode/docs/command_discovery.html
158e714e54b2a6d0b90bfca00d178369b04508dc4fa84a979690a813ca2dd724 gencode/docs/command_mapping.html
4e2480661fabd32eba35d3ae9a4af94f08eb7cfdd62e75b45ade560078fe389c gencode/docs/config.html
ed32119f7cf4c6a1328b3ee5523b0c6e5ef36783b98f0a56fdecfda8a3cc5f7b gencode/docs/config.html
22bfb3fd7c0e73dac4cbd830aa7983714917ec6da813f6bf5768ce3aa9786fb2 gencode/docs/config_mapping.html
14058fe7266ccd7a5747f99485a212f57a08eaf70e082a0db42d228ebce78548 gencode/docs/configuration_endpoint.html
1cf54abf2d62bc8e9fd36ffa506cb68f05e2ad7f87884c11a19a9c14ff0154e6 gencode/docs/configuration_execution.html
3a659e95751c0c1e48a60c117d25e783f8afc9c154fbcc7b56ffdc3322602b46 gencode/docs/configuration_execution.html
a76b0665d740b608d72bcbd6631ff1f35f4cb164af71fe7ed8c6018215319179 gencode/docs/configuration_pod.html
4c830ff76095aee3c1345757ec0b7931d32412442acb31ee8e97e581cbf9f8e3 gencode/docs/configuration_pubber.html
f24d15e549f1b143b50d6011f2f7fd03286e1cd128a3e25591195b25f8efc472 gencode/docs/data_template.html
2a8d51c8bc21af55a1ed973b1b2f27c356d6c660f28bab13cdecf5285d13373b gencode/docs/event.html
b36a53e81b65975f741bfc84563d8db188f6c6181fe8e0309cb40165f33d6b22 gencode/docs/event_discovery.html
5cdda4703458401acfe87f2dff822fa18accee40f3eaccfbf32d9222d718ede3 gencode/docs/event.html
27e0ae48c284becc25107d887bb09fdaee95f9e6c41626f3ead7b0ee466347d8 gencode/docs/event_discovery.html
b9dde27aceea28283a4c51f8f9b74db72b305a06ff4f68c625b035dc86267f8c gencode/docs/event_mapping.html
f6ca85990e940f109a48e35b25102d8860e5707a7b2145412046f44d599ef635 gencode/docs/event_pointset.html
f849ebe1085d81fb0f16654b7c9d3d14c59b56b1c75154e100b85398694657fd gencode/docs/event_system.html
e702bedda9d2dd94dcbdaacff29972a8d130a5d85959896010b9cc8b0922132c gencode/docs/event_system.html
a4a99c4be9483e889c2d0d180d72d2ed332d587ac9305c7615da0e70fd55a56d gencode/docs/event_validation.html
b85cba5453c6cd7fe576c418d9119d494e9fa85b9d171c5389cd8fab6b299786 gencode/docs/metadata.html
93bfecd5facd0ead4c75a90f350fa715e6fb8bdab71d81b1f3e46994f03c1c2e gencode/docs/monitoring.html
d1d133e034b76721c4aca84b0e0a75403005ea23f6d466211c0b1674aa17f2b1 gencode/docs/metadata.html
73904167416e789e598d9060aaa109b903ac537598e9377f590426b2fd876af8 gencode/docs/monitoring.html
5973d5653584078a947b1cbfba0b2b9ab39881b63ecc66bae2a30d1a8eba28c4 gencode/docs/persistent_device.html
5d039d607af9ec75ee552dfe36b16c702687ea16f5663f41fc49b4533b86e00d gencode/docs/properties.html
17926cbeea31e21766680be7c6e503897929cdf3f779db3ada9e41f2cd765cdb gencode/docs/query_cloud.html
55115bf72d62f7fc2f5deabc3133b7a2b39081c43ff2fa900029f6927597f70a gencode/docs/readme.md
741b880216be3743f6747800a042f2dbd89f3b0344c6b0a965f4bc010f03a930 gencode/docs/schema_doc.css
878ea88206c974f40643c3cc430875f9c4e8c5e3fd6bcd6358bd3eb6d48699a9 gencode/docs/schema_doc.min.js
7ed934930aee763e0beebc349725ba3909115e8d346bb762f28bcbe745bb163a gencode/docs/schema_extras.js
dadeb50ae80ff361095487176febef4f096ec858f14655f10e1c3a0d47f5af91 gencode/docs/state.html
6d4821365b3ab4d724b11e9d9cd8dcdd8920f1d2748115336d00d41d9d0f56f8 gencode/docs/state.html
b2398e7f9e352c47867e38f97168f3eb88e23280c7dd576f13e038c8c3f714c9 gencode/docs/state_mapping.html
567b27a9257816eb9a9063ce089fe0f58c5962f10ea449bb7c653bd6151365a8 gencode/docs/state_udmi.html
c47793798acffff5a0db724674bb21c1d5780789c63379b57be698aafd12b477 gencode/docs/state_validation.html
Expand All @@ -42,6 +42,7 @@ fcbed49f1af8b791d8c52bcbe18f65521a79d9ac3eb33ec3afd9b342ab2bfc56 gencode/java/u
ec164962f2f00924ecb41ae07c2e01d6bf027951ccc605e0210988370b987973 gencode/java/udmi/schema/Category.java
0b7001efbd1729710f91f4feaaa7707bb39e3b5f4486d88fcbf9463597b0660b gencode/java/udmi/schema/CloudModel.java
5fe3c216af47f0dcfad7030280548de00859d1788233ccbbfd5bf1885c7ed973 gencode/java/udmi/schema/CloudQuery.java
992fb7d6bb8ce9eaf7fdfe69af575e442214bb62f82f846987eee473e952e980 gencode/java/udmi/schema/Common.java
377eb78de936317676faaf7ec5a32ad17f2c2c54a3280df87f5fcc2d36c7014d gencode/java/udmi/schema/Config.java
cf9762392e02b5d04c6498963222cc0c00f7be6c3cd82bde3d063a5eceba2b65 gencode/java/udmi/schema/Connections.java
8164e93ccc76d78548d456890e064df8427a09bbcd50686b37a10d3ff5ad429f gencode/java/udmi/schema/Credential.java
Expand All @@ -50,21 +51,21 @@ cf9762392e02b5d04c6498963222cc0c00f7be6c3cd82bde3d063a5eceba2b65 gencode/java/u
9b3e011019ecd3bd2c7b64714c6c30d765e879d7ab00f9cddb212dd3f51502eb gencode/java/udmi/schema/DevicePersistent.java
d4a82e132b2d223c4a82384d22455283c0b64aba3100fc210e72f9700b9df2d0 gencode/java/udmi/schema/DeviceValidationEvent.java
73399ed2459902c3d81e95fde2caa5033c76f8cfd89e96338c8923529763e52c gencode/java/udmi/schema/DiscoveryCommand.java
8a92ae5440b6beeb5965c836a36207bc0db0c8d5af4bc4d297c414703815db78 gencode/java/udmi/schema/DiscoveryConfig.java
ff327fb6ec2831b1087ff97a2ad72515afabc3bd6f10d70ab1928c8dedf34215 gencode/java/udmi/schema/DiscoveryEvent.java
ea90103e88db5d2413bfd2f87bf13dbb9024a8028504766af828e95ceec38b7e gencode/java/udmi/schema/DiscoveryModel.java
b632725290607273c7796d0b73ad8cead3a249217b1c158897c40acd224d7cda gencode/java/udmi/schema/DiscoveryState.java
a1c85a3db330b226baa8e541b161f2f12942aba270b5f0b8241cb89ce8449a0a gencode/java/udmi/schema/DiscoveryConfig.java
53765856531c0a65060b2633e06c701a5073ae72c4fbf5e27668ddb6c0dc7a1f gencode/java/udmi/schema/DiscoveryEvent.java
bb4509f13e30ebc9964e213eabf3e36f0c7d73a54a052fea281a484ad84c3596 gencode/java/udmi/schema/DiscoveryModel.java
fbe412e8c874139d828021a034cf6a6a6e1d35d01ccffe98ae35ac48187de753 gencode/java/udmi/schema/DiscoveryState.java
2c0dfcd05efc27247cd851121b267dbde1c956cda48d06b43e595f61f11034b0 gencode/java/udmi/schema/EndpointConfiguration.java
dc25e685886e11a741418be9191a478e13c0244647b5a0cac65d6c1e55055578 gencode/java/udmi/schema/Entry.java
aa39553b6498bcc2876a525b24b7797c860a4d6deb5c3b4b48312383333d6270 gencode/java/udmi/schema/Enumerate.java
8a51984458d96d1798d067005902defa57410167a27dcfb0b730ea38a3326011 gencode/java/udmi/schema/Envelope.java
c6cdc63b7044af906236f1ae545079dc07279adddd4d67ef98c595174a712e36 gencode/java/udmi/schema/Event.java
9ff3d1819b5a92713b26f56d08c77dcbb467c6ffc10f75744c6b6a227a13319b gencode/java/udmi/schema/ExecutionConfiguration.java
33dbb9485fe72ef64ad81f7427bbb41a6c323972b535c3f7124335d426603b29 gencode/java/udmi/schema/ExecutionConfiguration.java
25815abe54d4671858f55bd5d911292bd50f122b80878064b014afcfcbd86ea7 gencode/java/udmi/schema/FamilyDiscovery.java
2e77a29988e6c17875d3f781be931e3b835bb310639f60d3bb28f24405a86bed gencode/java/udmi/schema/FamilyDiscoveryConfig.java
5f50abca612a3ef122f76e07590ccd9f674698ebef63e4901d49a62a0382c957 gencode/java/udmi/schema/FamilyDiscoveryModel.java
5ad9bf328fa1500250ff8bc75f2044b3815c5c11cb368e1cc228ac8ca16639c2 gencode/java/udmi/schema/FamilyDiscoveryState.java
09be38b6d52ea4150fecc3e97adc6793030fcf71da01df12ccb05dc4dd3dad9d gencode/java/udmi/schema/FamilyLocalnetModel.java
f2b1f2ea4ebb689077f3d6883d5cd42ff0eec6be44a1e523d74eaa2a02545ed1 gencode/java/udmi/schema/FamilyDiscoveryState.java
59d1090fcd12eba33ce984a6eef700709e0d29b6f16b8eb6f1205079ffe70d93 gencode/java/udmi/schema/FamilyLocalnetModel.java
a7ad0cf79a86a92c8d22b5ac3e609f321454ba4834065e24de208b1f6ebba447 gencode/java/udmi/schema/FamilyLocalnetState.java
d0f9e9a2576b322c42b25ec656501797204ce4209cd4031b86c8e492e2131a22 gencode/java/udmi/schema/FeatureDiscovery.java
d3fdb2d8b485c1e61786dfde45cc8be08294339bb31a1b8f02180485789a3ab2 gencode/java/udmi/schema/FeatureValidationState.java
Expand All @@ -75,8 +76,8 @@ ce79df57185ee108f6a60efb49c2ea80f249e678d3ccd4d91e702b653571c21b gencode/java/u
b0d4bff14a65ebddc2dd253c996708a4cce99592e82978f057f32a6d9c7768a1 gencode/java/udmi/schema/Jwt.java
a5e5adfc187709e8646a11c92e804acfb67743f9d72149008aaca954df3177f6 gencode/java/udmi/schema/Level.java
06ed183b1a25179efbb9fdc3f077a09f5c84bf689b973cb027f892f90729cddd gencode/java/udmi/schema/LocalnetConfig.java
910c68183db7703b00bcb81146ad73e6fe0d4bbc4caec4dc9c621f3cc2e5eee5 gencode/java/udmi/schema/LocalnetModel.java
f6dd2fff0e100160f84a5d62c137c618ed616c82f8722a0530f5393bfc82e281 gencode/java/udmi/schema/LocalnetState.java
f33492dcb3570d5073113376e306156f0cbdf22a18d7fe12cb43b87b13819b50 gencode/java/udmi/schema/LocalnetModel.java
5fa1983db1022beebf978f217a3eb1f0ddf86bc6d9573d4cd151f4c0adbc9d13 gencode/java/udmi/schema/LocalnetState.java
2df4ae32d0bbecc21f7c3f6a416a195baa766a6210cfa8abca4a7bb45b9c7961 gencode/java/udmi/schema/Location.java
7f71faa644ac86f3dcaf832d39a0deecfe443fc6a3bff912c0a66c09243c4cd9 gencode/java/udmi/schema/MappingCommand.java
0f6f85a4aaffb90735acc2565e8e4afa349d3ded5781cb1dce1ebbaa237feaa7 gencode/java/udmi/schema/MappingConfig.java
Expand Down Expand Up @@ -134,7 +135,7 @@ dab4f5fca272ec48c2881bca2b6bc43786ada47fa1f6dd935c35f7ce0eb6b0f6 gencode/python
470b688984b89b25fcdfa8e08bd95b0c5d8c551d53a6ab5512503ee39419e6fa gencode/python/udmi/schema/category.py
6578d68f65b87b781086e72566de910db4bef365599fe3188862d4d8a81e84fb gencode/python/udmi/schema/command_discovery.py
2a858a05c8717002c909ebf9e4661abedd5affeada33e2a114d440eccc677e03 gencode/python/udmi/schema/command_mapping.py
741b37355b360f2daeb99a1e6c2ce4f4673168d443b0e7cab8d67f5101460bbb gencode/python/udmi/schema/common.py
7be9cf5102de91953662a3e42a202482fa34404be2e1beb9d330fe91454c15ff gencode/python/udmi/schema/common.py
53961cd8a6ddd118143457ca60d765e12b21bcdf98fc2d648ebac0172ffca880 gencode/python/udmi/schema/config.py
79eb0299b3751d93c01a5de65eacc717283e99caf0996f3db48a15247f69c8eb gencode/python/udmi/schema/config_blobset.py
59039eaf2812392329c641ad387f7e27790cf804fc94a014626d2da5ab426e3d gencode/python/udmi/schema/config_blobset_blob.py
Expand All @@ -150,7 +151,7 @@ ac3facbd96f7cb2f7e387e7497d6a36af379a2687329571f250c5670f9933244 gencode/python
cce623b34fd694880039a1c080214c33e00acaef5bc72276cf11a3bb2de40000 gencode/python/udmi/schema/config_system_testing.py
30b1809e364cb3f7070002bb4a9954b11b25543b099b4bbe450d280001e4de55 gencode/python/udmi/schema/config_udmi.py
f8c663748b6ea1c9542c789fed90a3b6d123dc20a35588da3f84545ab1908741 gencode/python/udmi/schema/configuration_endpoint.py
14fd646b9a8638b87e4c421c9dadfb7ed2e66ad02b256217423e3b5dd6c39fd1 gencode/python/udmi/schema/configuration_execution.py
093921954e26b1d6db16277ec9f87fddb85cc00f3bd3da32f998aa6148a0d9d9 gencode/python/udmi/schema/configuration_execution.py
afc89a204d7099791303cf9231b19cc6ba320d1de95a921381f5e47bbafac842 gencode/python/udmi/schema/configuration_pod.py
c61ee66daa7e632850bc2705370baa8c057e7a34792c6a29b9e4ca00c0eb195b gencode/python/udmi/schema/configuration_pod_base.py
ef61eea743cc2629893b18411636672cdfec0e209e58eb7918b33b43edab5196 gencode/python/udmi/schema/configuration_pod_bridge.py
Expand Down Expand Up @@ -196,7 +197,7 @@ e604cf0280fe772de5f4e5ecf10dc6c564b6177eeff9cd9fb8b385af8fe10a95 gencode/python
4a908cee3fb8afb559bcbfa594e57dbc515a35e4468e02600751b2fcce05a238 gencode/python/udmi/schema/state_blobset.py
182e07b534403dcc121d980672e41b0fa2ee55c4da1f5c56f0dad5d599450c80 gencode/python/udmi/schema/state_blobset_blob.py
8c6fc5fd63ab50768cb3662228ed893eb8b9d563cd062efaed12f5079a652d0c gencode/python/udmi/schema/state_discovery.py
624af8bc5b9db460daf9458e141ebc0e29e24d698ebadd6022596d655098e771 gencode/python/udmi/schema/state_discovery_family.py
e09027cb4633e49f829646c6da8bd68c2d54f51794f49efdde8aab60693f69ce gencode/python/udmi/schema/state_discovery_family.py
b492296db941daf0c104e53fe5bc0030b89a1f1167db2601f5c6a2f0075aa6cf gencode/python/udmi/schema/state_gateway.py
09ef5dc99116cf84b987a3cb014bdeb74577ccc04a4fc6b4278c8cfab9b180f4 gencode/python/udmi/schema/state_localnet.py
041415747e97a3bdcf8a0974fe280e4f1852c0837e981e1006f01b4bdf2ba0ab gencode/python/udmi/schema/state_localnet_family.py
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ __pycache__/

.vscode

#Terraform authentication and template files.
# Terraform authentication and template files.
cloud/gcp/terraform.tfvars
cloud/gcp/udmi-sites.tf
cloud/gcp/main.tf
Expand Down
3 changes: 3 additions & 0 deletions bin/pubber
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ if [[ -d $config_file ]]; then
site_model=$config_file
site_config=$site_model/cloud_iot_config.json
cloud_region=$(jq -r .cloud_region $site_config)
[[ $cloud_region == null ]] && cloud_region=us-central1
registry_id=$(jq -r .registry_id $site_config)
elif [[ ! -f $config_file ]]; then
fail Missing config file $(realpath $config_file)
Expand Down Expand Up @@ -106,6 +107,8 @@ elif [[ -z $broker_hostname ]]; then
broker_hostname=mqtt.googleapis.com
fi

[[ $registry_id == null ]] && fail registry_id not defined

registry_actual=${udmi_prefix}${registry_id}${registry_suffix}

if [[ ! -f /tmp/endpoint.json ]]; then
Expand Down
3 changes: 3 additions & 0 deletions bin/reset_config
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ cd ${ROOT}

dst_config=/tmp/${device_id}_config.json
src_config=${site_dir}/devices/${device_id}/out/$config_file
if [[ ! -f $src_config ]]; then
src_config=${site_dir}/devices/${device_id}/config/$config_file
fi
ls -l ${src_config}
now_date=$(python3 -c 'import datetime; print(datetime.datetime.utcnow().isoformat() + "Z")')
echo Setting config timestamp ${now_date}
Expand Down
3 changes: 2 additions & 1 deletion bin/run_tests
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ function test_wrap {
}

case "$1" in
install_dependencies)
install_dependencies)
sudo true # Proactively update before test_wrap is called.
test_wrap bin/setup_base
test_wrap bin/clone_model
sudo ln -fs $PWD/bin/udmi /usr/local/bin/
Expand Down
16 changes: 13 additions & 3 deletions bin/sequencer
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,18 @@ fi
registry_suffix=null
alt_registry=null

test_names="$@"
udmi_version=`git describe --always --dirty`

sequences=
for test_name in "$@"; do
sequences+=\"$test_name\",
done
if [[ -n $sequences ]]; then
sequences=[${sequences%,}]
else
sequences=null
fi

cd $UDMI_ROOT

if ! bin/which_venv_pip3; then
Expand Down Expand Up @@ -156,6 +165,7 @@ if [[ ! $site_path -ef $SEQUENCER_CONFIG ]]; then
"udmi_version": "$udmi_version",
"udmi_root": "$UDMI_ROOT",
"reflector_endpoint": $endpoint,
"sequences": $sequences,
"key_file": "$site_model/reflector/rsa_private.pkcs8"
}
EOF
Expand All @@ -165,9 +175,9 @@ cat $SEQUENCER_CONFIG

validator/bin/build

echo $JAVA_CMD $test_names
echo $JAVA_CMD
result=0
$JAVA_CMD $test_names 2>&1 | tee $SEQUENCER_LOG
$JAVA_CMD 2>&1 | tee $SEQUENCER_LOG

echo
echo Extracting sequence results:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ public static boolean dateEquals(Date dateBase, Date dateTarget) {
return cleanDate(dateBase).equals(cleanDate(dateTarget));
}

public static Date cleanInstantDate(Instant instant) {
return cleanDate(Date.from(instant));
}

@Override
public Date parse(String source) throws ParseException {
return cleanDate(super.parse(source));
Expand Down
1 change: 1 addition & 0 deletions common/src/main/java/com/google/udmi/util/Common.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ public abstract class Common {
public static final String SUBFOLDER_PROPERTY_KEY = "subFolder";
public static final String PROJECT_ID_PROPERTY_KEY = "projectId";
public static final String REGISTRY_ID_PROPERTY_KEY = "deviceRegistryId";
public static final String DEFAULT_REGION = "us-central1";
public static final String DEVICE_ID_KEY = "deviceId";
public static final String GATEWAY_ID_KEY = "gatewayId";
public static final String MESSAGE_SOURCE_PROPERTY_KEY = "source";
Expand Down
37 changes: 30 additions & 7 deletions common/src/main/java/com/google/udmi/util/GeneralUtils.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.google.udmi.util;

import static com.google.common.collect.Sets.symmetricDifference;
import static com.google.udmi.util.JsonUtil.isoConvert;
import static com.google.udmi.util.ProperPrinter.OutputFormat.COMPRESSED;
import static com.google.udmi.util.ProperPrinter.OutputFormat.VERBOSE;
Expand All @@ -17,7 +18,6 @@
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Sets;
import com.google.common.collect.Sets.SetView;
import com.google.common.hash.Hashing;
import com.google.daq.mqtt.util.ValidationException;
import com.google.udmi.util.ProperPrinter.OutputFormat;
Expand Down Expand Up @@ -281,11 +281,18 @@ public static <T> void ifNotTrueThen(Object conditional, Runnable action) {
}
}

public static <T> T ifTrueGet(Object conditional, T value) {
public static <T> T ifTrueGet(Boolean conditional, T value) {
return ifTrueGet(conditional, () -> value);
}

public static <T> T ifTrueGet(Object conditional, Supplier<T> action) {
public static <T> T ifTrueGet(Boolean conditional, Supplier<T> action) {
if (isTrue(conditional)) {
return action.get();
}
return null;
}

public static <T> T ifTrueGet(Supplier<Boolean> conditional, Supplier<T> action) {
if (isTrue(conditional)) {
return action.get();
}
Expand All @@ -300,6 +307,10 @@ public static <T> T ifTrueGet(Object conditional, Supplier<T> action, T alternat
return isTrue(conditional) ? action.get() : alternate;
}

public static <T> T ifTrueGet(Object conditional, T value, Supplier<T> alternate) {
return isTrue(conditional) ? value : alternate.get();
}

public static <T> void ifTrueThen(Object conditional, Runnable action) {
ifTrueThen(conditional, action, null);
}
Expand All @@ -312,10 +323,18 @@ public static <T> void ifTrueThen(Object conditional, Runnable action, Runnable
}
}

public static <T> T ifNotTrueGet(Object conditional, Supplier<T> supplier) {
public static <T> T ifNotTrueGet(Boolean conditional, Supplier<T> supplier) {
return isTrue(conditional) ? null : supplier.get();
}

public static <T> T ifNotTrueGet(Supplier<Boolean> conditional, Supplier<T> supplier) {
return isTrue(catchToNull(conditional)) ? null : supplier.get();
}

public static boolean isNotTrue(Boolean value) {
return !isTrue(value);
}

public static boolean isTrue(Object value) {
return Boolean.TRUE.equals(value);
}
Expand Down Expand Up @@ -372,6 +391,11 @@ public static <T> T catchToNull(Supplier<T> provider) {
return catchToElse(provider, (T) null);
}

public static String joinOrNull(String prefix, Set<Object> setDifference) {
return ifTrueGet(setDifference == null || setDifference.isEmpty(), (String) null,
() -> prefix + CSV_JOINER.join(setDifference));
}

public static <U> U mapReplace(U previous, U added) {
return added;
}
Expand Down Expand Up @@ -528,8 +552,7 @@ public static String getTimestamp() {
return isoConvert(getNow());
}

public static String prefixedDifference(String prefix, Set<String> setA, Set<String> setB) {
SetView<String> differences = Sets.symmetricDifference(setA, setB);
return differences.isEmpty() ? null : prefix + CSV_JOINER.join(differences);
public static String prefixedDifference(String prefix, Set<String> a, Set<String> b) {
return joinOrNull(prefix, symmetricDifference(a, b));
}
}
2 changes: 1 addition & 1 deletion docs/specs/sequences/discovery.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ a _sporadic scan_ is used to trigger an on-prem agent (often an IoT Gateway) to
Depending on the system, this might encompass a number of different network protocols (e.g. BACnet, IPv4, etc...).

* [_start config_](../../../tests/schemas/config/discovery.json): Starts a discovery scan, triggered
by the `generation` timestamp (defined and not-the-same as the previous scan generation).
by the `generation` timestamp (defined, not-the-same as the previous scan generation, and after the device's last start time).
* [_start state_](../../../tests/schemas/state/discovery.json): Indicates the device is actively
scanning, with `generation` should match that of _config_, and the `active` as `true`.
* [_discovery event_](../../../tests/schemas/event_discovery/discovery.json): Streaming results
Expand Down
8 changes: 6 additions & 2 deletions etc/sequencer.out
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
RESULT pass discovery.scan periodic_scan ALPHA 5/5 Sequence complete
RESULT pass discovery.scan single_scan ALPHA 5/5 Sequence complete
RESULT skip discovery.scan cancel_before_start ALPHA 0/0 Not yet implemented
RESULT skip discovery.scan cancel_periodic ALPHA 0/0 Not yet implemented
RESULT fail discovery.scan periodic_scan_fixed ALPHA 0/5 scan iteration
RESULT skip discovery.scan periodic_scan_floating ALPHA 0/0 Not yet implemented
RESULT pass discovery.scan single_scan_future ALPHA 5/5 Sequence complete
RESULT pass discovery.scan single_scan_past ALPHA 5/5 Sequence complete
RESULT pass endpoint.config endpoint_connection_bad_hash ALPHA 5/5 Sequence complete
RESULT pass endpoint.config endpoint_connection_error PREVIEW 5/5 Sequence complete
RESULT pass endpoint.config endpoint_connection_retry PREVIEW 5/5 Sequence complete
Expand Down
Loading

0 comments on commit 741b615

Please sign in to comment.