Skip to content

Commit

Permalink
Fix schema validation, output file cleanup, and migrate udms-reflect …
Browse files Browse the repository at this point in the history
…-> udmi-reflect (#671)
  • Loading branch information
grafnu committed Jun 26, 2023
1 parent e1b7b29 commit b852806
Show file tree
Hide file tree
Showing 50 changed files with 5,335 additions and 336 deletions.
32 changes: 17 additions & 15 deletions .gencode_hash.txt
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
b35646a2f3d7c30fd34e3ea6ab6a1070b39c469fd1de49cab1093ff32faaf06d gencode/docs/command_discovery.html
061a71bd5678099e7e9f3cf5ad95ae1cf89adc7bff2b31250376552abfbd2c44 gencode/docs/command_mapping.html
d3758eba2529d4a5f1dfd5ed3355a536936b02285ddde7cc75b1f41f4916203a gencode/docs/command_mapping.html
e693079943921c88e24140521637c58bc9aadfb9aee96dfba414bbaa7be958d0 gencode/docs/config.html
be1a8f90f09893f0dec4eea418c3134b0f2525a555c64548564ff767abf3cfbe gencode/docs/config_mapping.html
d40bfc9f4a30c56986435dc08f1e5f42401e5ac043359a1e359011c913cad673 gencode/docs/config_mapping.html
7933c756d45dfb24f9f6e34661b98126654fd58a61e81b7434f7cd0d578226b8 gencode/docs/configuration_endpoint.html
a580d0aed508642dfd537540a269b99f56593dde7eadbce82fba2802708c2efa gencode/docs/configuration_execution.html
18eb64d2798022402c0e4cdb56fa6a9f62c1ecb7004b2b17c2395ce287fba612 gencode/docs/configuration_pod.html
732c6acc2116974000ec25bfdfa00ba6e3c5c2af13d0e3a0d71b3d4b8eeda059 gencode/docs/configuration_pubber.html
0428bbfb1c46c66d9ee0c90cb89f36f4f9be5fc535aabace698716978bf50876 gencode/docs/event.html
09bb8486e02f703768a09d5755753fe232d651555a1219d1101a37d21a1368b7 gencode/docs/event_discovery.html
146508fe1ad8644852aaa06ca5babb4e1c7810a3984368275ca18e4b2cef79a5 gencode/docs/event_mapping.html
9fae85cb33d19e10fd8ce57a01fe6b22d76d1c23ad59d627e15feadbab7b4e80 gencode/docs/event.html
d1d908d7b27b7dcbc4fbbcc63a9c62e9e148e0132c0e9b4459218de35f680656 gencode/docs/event_discovery.html
542ef5498c0478986c36681e0827b73b146898351bafa86bfe93582ad22ea03d gencode/docs/event_mapping.html
71fe25d3b17d1dc87b52c049a3235c20527f73e12ffa53fa4800a15e53f73732 gencode/docs/event_pointset.html
543d315086fa5fcef14c1815c3ee5fcb5437a39dd1b8ccc3c056faf81afaba23 gencode/docs/event_system.html
9df4ec9a06769373c54638b3278ea81976cd493195ece8430876a2a798293249 gencode/docs/event_validation.html
acd50976d1afd771d55177db9a1b9452a0c6a35e3e15b2e444c799991294808d gencode/docs/event_system.html
816481f69d3b1bdeb2224eaad6e3751a991d20eb98294d89f888b1323505209c gencode/docs/event_validation.html
d94dda13552e2634037ee14f6a8470be58ef2b5fcb0600c070b1f943f7fbbbba gencode/docs/metadata.html
607a8a4d675c722db3f03c03926f2ed5b475ad6a9128bb4246150323d463b596 gencode/docs/monitoring.html
4db86e0b979a1873d73da07d68a432df39282cb8b94ea509514d2b411411d55e gencode/docs/monitoring.html
720e14674aa65f36166084ff29c77e3c97a5f5ae034cbc96efe581a831567da1 gencode/docs/persistent_device.html
5d039d607af9ec75ee552dfe36b16c702687ea16f5663f41fc49b4533b86e00d gencode/docs/properties.html
1766f84518a315fe57e4a4bf934c0a386ad61d87091754a6bab097c686c16019 gencode/docs/readme.md
741b880216be3743f6747800a042f2dbd89f3b0344c6b0a965f4bc010f03a930 gencode/docs/schema_doc.css
878ea88206c974f40643c3cc430875f9c4e8c5e3fd6bcd6358bd3eb6d48699a9 gencode/docs/schema_doc.min.js
7ed934930aee763e0beebc349725ba3909115e8d346bb762f28bcbe745bb163a gencode/docs/schema_extras.js
5c124b108a020dc8fabe13a9f10c51184c801422973ec563af1b76d6ec909d6d gencode/docs/state.html
dcef90bcd3c402aea046be9746ec6e2e4d51e5c773889829b8f5dd482d1a85ea gencode/docs/state_mapping.html
b8ad9a1f33cd55f912b40681947d0fdaa1d9dedca36ab2e082d54efacf099f28 gencode/docs/state.html
f4a52cdad2cd9a9646da4d84cc1f3962ddd151a8d348255e5cff30eadfee283c gencode/docs/state_mapping.html
9dc52450e6f703cb8e17682c0788a515c06896891494bb4c6a53712e156954ea gencode/docs/state_udmi.html
b41c79f99dedc6a55985c80dcc35b4ac18b1c018614876f8800b920ffe81aa48 gencode/docs/state_validation.html
73c46704899d8a65d4faacb61dd2e9b35d61811e42c61c9fb67174a0684a2532 gencode/docs/state_validation.html
d39d7fe37a41c74a40080af7b0a429d201ab1fdff7444428c4b98eb7b38c332b gencode/java/udmi/schema/Asset.java
b405ce628f7819b46b19950aeaba89ee938fea54261000616bc534b9f81bd59c gencode/java/udmi/schema/Auth_provider.java
0825a5cec83003bb0a6488c4ed7010a04ae0d3848ef36fe01bb4e6718ba7b96d gencode/java/udmi/schema/Aux.java
Expand All @@ -35,7 +35,7 @@ fcbed49f1af8b791d8c52bcbe18f65521a79d9ac3eb33ec3afd9b342ab2bfc56 gencode/java/u
e28c3899bf2cb08cf456dbca29ccc3d4559c1d2145e252095689b171be82b4c6 gencode/java/udmi/schema/BridgePodConfiguration.java
2e7c0912c6f43b8dae9e9149b7361d3640bde4f01de6e13d8e487fe01be2c2c0 gencode/java/udmi/schema/Bucket.java
0a4f6bcd5065418c1cdc6c05b900b3de31744847d25b6ab6de7aabb1e724710e gencode/java/udmi/schema/BuildingTranslation.java
e9b33c58dabf10dba345b5801313a9cbdf73699fedac044abfc7b8efdb63f24d gencode/java/udmi/schema/Category.java
f63dd9577a096720c067c2317ca4f2d4ff7dc8680dedf08025a8e58e7bef8f21 gencode/java/udmi/schema/Category.java
251836ed429f0bd2b3fdcca66c252f246d45ef88bd1520c911817e15ddc6afba gencode/java/udmi/schema/CloudModel.java
ff79de9390aa25bb45fb3e2ebb682c865ccab764f56d9644377d9d28c0ab10e4 gencode/java/udmi/schema/Config.java
cf9762392e02b5d04c6498963222cc0c00f7be6c3cd82bde3d063a5eceba2b65 gencode/java/udmi/schema/Connections.java
Expand Down Expand Up @@ -99,6 +99,7 @@ ca2e7566106818ca7e5190c8041eb86f0c9b3251b0bda8c3ea7ce11a0c891a0a gencode/java/u
3df66bb1a37a9e0b2b6cf392f8c64d404a73c83e5e13c02bb4844f09b9a04b70 gencode/java/udmi/schema/Properties.java
2f48b09437aab980a40ebf06c3334a7b33843b160d7618da20789e3d628e9650 gencode/java/udmi/schema/PubberConfiguration.java
f67e410412f6c5eed3b9c70fa7e99a8994353c8ff04b8c649a30e5dcc647ce31 gencode/java/udmi/schema/PubberOptions.java
703ed0cecb60f284b52e76dc4d612eb798ba3e8781cc40698a46611b36e6b0c9 gencode/java/udmi/schema/SchemaValidationState.java
6da1708f597a0c64ce30dcbe739095fc7ebc091d63b98af88c73f70706af31ca gencode/java/udmi/schema/SequenceValidationState.java
6e9a8a3b23851216dd0a375c5ff5259009de99091e635b870a74e96393429ade gencode/java/udmi/schema/SetupUdmiConfig.java
379227aa39dd3f7eae33a14facf4b317b877cc2e6a14adc158258faa0d5d0390 gencode/java/udmi/schema/SetupUdmiState.java
Expand All @@ -117,10 +118,10 @@ d3968b92497e83a63f18cc0e74484a9807f1bb92db0c92d556ec2caaa143d645 gencode/java/u
2958978ce5b7418320835e7d6731bd8db6700643f02bb48eed4edc3dd90b686f gencode/java/udmi/schema/UdmiConfig.java
7c16b9a77e96793aef69353e7caae64c81d5c391b6e650b7169f27b0387e2775 gencode/java/udmi/schema/UdmiState.java
ac6f8fd87c8986cce01e872460c15ff6fe71e3816f9bde610acfe25f7d38c8d4 gencode/java/udmi/schema/ValidationEvent.java
b1dbcd3f4b5c34651d5a4f22feae54344b5b643226ded921d8fa2c37c3ffd1e7 gencode/java/udmi/schema/ValidationState.java
63494b22585e54b5ccdf2f1e000774d2c0ccd447ebe165bc77d748828a54a872 gencode/java/udmi/schema/ValidationState.java
e007ddd1ceeae3603c85110c33e1bb4a418ff9c7a791ca0df25b7ea3caeafd36 gencode/java/udmi/schema/ValidationSummary.java
b77d953fd22e655c0f10ae32deeaa222769d971f8c38b3379eba45720fb910cc gencode/java/udmi/schema/VirtualEquipmentLinks.java
a53342802ea70e6529a8502f145c3bd0490bb189ceb1939ae8d123f3e9cde088 gencode/python/udmi/schema/__init__.py
52ffdf97896cffb96cdd273abdd5fa385fadbd258355863c1110c48c3cf97687 gencode/python/udmi/schema/__init__.py
19c37b9957bc0ccfeee77133a275fea8d912b131320c7f45054735ed282fb996 gencode/python/udmi/schema/access_iot.py
4b25dd95f863059b761269f93adcae7049507924a1c6e74d6856849203c179db gencode/python/udmi/schema/ancillary_properties.py
dab4f5fca272ec48c2881bca2b6bc43786ada47fa1f6dd935c35f7ce0eb6b0f6 gencode/python/udmi/schema/building_translation.py
Expand Down Expand Up @@ -198,7 +199,8 @@ ee5cc804c59d8216cc3555741748c2d67e30ad5ac2a801ad18b44569835e4f75 gencode/python
8a0bf4294fb70533a056322a6bfc6f13a963381d2100d1468d8b6de757cd72e9 gencode/python/udmi/schema/state_system_hardware.py
37c55dce0e38dddad3cebb3d40270128a4dbb7b586657d1746bb96dac90e2ac1 gencode/python/udmi/schema/state_system_operation.py
b463dd068241e6fd706ef31c1c208b8aab70179938321c5656c37b3b2cc25ccf gencode/python/udmi/schema/state_udmi.py
26a22fc412a97672dedf75f32ee8ab212e3a6250e75e7990f8178b2a9ff12e17 gencode/python/udmi/schema/state_validation.py
3d508cc1c7b105c27adf2c77d97053d036aec4e4b352fd234b3d102b39fa507c gencode/python/udmi/schema/state_validation.py
5d24e4bf0fa0213d380e8058f562f6b9382041ade57cd7d6d9d38d84a68aa1fd gencode/python/udmi/schema/state_validation_feature.py
37e676d07b49be43c07af86ffb6d265173bed0e62fcbd72f4d03d3540e0c2161 gencode/python/udmi/schema/state_validation_schema.py
1f80d6abdd46beaf38a02e7c885ba002d0a76162fac28eb1ae58d78652753400 gencode/python/udmi/schema/state_validation_sequence.py
83a57db63df10d43b1789c3f115a515c23bb7bc7a8cc8c2accdc17d0cbac89fe gencode/python/udmi/schema/virtual_links.py
23 changes: 11 additions & 12 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -171,13 +171,13 @@ jobs:
- name: schema validation output
if: ${{ always() }}
run: |
echo ==================================
cat out/schema_validation.out
echo ==================================
find sites/udmi_site_model/out/devices/ -name RESULT.log | xargs fgrep SCHEMA
echo ============ out/schemas.out
cat out/schemas.out || true
echo ============ find RESULT.log
find sites/udmi_site_model/out/devices/ -name RESULT.log | xargs fgrep -i schema
- name: pubber logs
if: ${{ always() }}
run: more pubber.out* out/pubber.out* pubber/out/*/*.json || true
run: more out/pubber.out* pubber/out/*/*.json || true
- name: output logs
if: ${{ always() }}
run: cd sites/udmi_site_model/out && more `find . -type f` || true
Expand Down Expand Up @@ -212,7 +212,7 @@ jobs:
run: cat sites/udmi_site_model/out/devices/AHU-1/sequencer_state.json || true
- name: pubber logs
if: ${{ always() }}
run: more pubber.out* out/pubber.out* pubber/out/*/*.json || true
run: more out/pubber.out* pubber/out/*/*.json || true
- name: output logs
if: ${{ always() }}
run: cd sites/udmi_site_model/out && more `find . -type f` || true
Expand Down Expand Up @@ -247,14 +247,13 @@ jobs:
run: |
cd sites/udmi_site_model/out && more `find . -type f` || true
- name: itemized sequencer tests
if: ${{ always() }}
run: |
bin/test_itemized $GCP_TARGET_PROJECT
more out/test_itemized.out
- name: pubber logs
- name: itemized output logs
if: ${{ always() }}
run: |
more pubber.out* out/pubber.out* || true
more pubber/out/*/*.json
more out/test_itemized.out out/schemas_itemized.out | cat
redirect:
name: Endpoint Redirection
Expand Down Expand Up @@ -283,8 +282,8 @@ jobs:
- name: pubber.out.1
run: |
echo ::::::: pubber.out.1
cat pubber.out.1
cat out/pubber.out.1
- name: pubber.out.2
run: |
echo ::::::: pubber.out.2
cat pubber.out.2
cat out/pubber.out.2
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ workspace.xml
codegen/
.DS_Store
tmp/
check_links.out
.gradle/
.firebase/
udmis/functions/node_modules/
Expand All @@ -31,8 +30,6 @@ credentials.json
/venv/
/local/
.pubber.pid
pubber.out*
/sequencer.out
__pycache__/
/tests/sites/*/out/
/tests/sites/*/devices/*/out/
Expand Down
15 changes: 2 additions & 13 deletions bin/clone_model
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@ mkdir -p $ROOT_DIR/sites
cd $ROOT_DIR/sites

MODEL_DIR=udmi_site_model
MODEL_VER=1.10
MODEL_VER=1.11
TEST_SITE_GIT=https://github.com/faucetsdn/$MODEL_DIR.git
MODEL_REPO=origin
KEY_DIR=validator

echo Cloning model as $PWD/$MODEL_DIR
if [[ -d $MODEL_DIR ]]; then
Expand All @@ -20,15 +19,5 @@ fi
cd $MODEL_DIR

git fetch $MODEL_REPO $MODEL_VER
git checkout $MODEL_VER
git checkout -q $MODEL_VER
git log -n 1

if [[ -f $KEY_DIR/rsa_private.pkcs8 ]]; then
echo Validator key file already exists for $KEY_DIR/rsa_private.pkcs8
else
mkdir -p validator
echo Creating validator key file from devices/AHU-1/rsa_private.pkcs8
echo Copied from devices/AHU-1/rsa_private.pkcs8 > $KEY_DIR/rsa_private.SOURCE
cp devices/AHU-1/rsa_private.pkcs8 $KEY_DIR/
fi

30 changes: 20 additions & 10 deletions bin/sequencer
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,17 @@
#

ROOT_DIR=$(realpath $(dirname $0)/..)
TEST_LOG=/tmp/test_log.txt
TEST_LOG=$ROOT_DIR/out/sequencer.out
SCHEMA_OUT=$ROOT_DIR/out/schemas.out
log_level=INFO
alt_registry=${UDMI_ALT_REGISTRY:-ZZ-REDIRECT-NA}
min_stage=PREVIEW
export UDMI_VERSION=`cd $ROOT; git describe`
export UDMI_VERSION=`cd $ROOT_DIR; git describe`

# For cross-env sort stability
export LC_ALL=C

rm -f $TEST_LOG $SCHEMA_OUT

while [[ $1 =~ ^- ]]; do
if [[ $1 == '-a' ]]; then
Expand All @@ -26,11 +32,11 @@ while [[ $1 =~ ^- ]]; do
done

if [[ $# < 3 ]]; then
echo Usage: $0 [-v] [-vv] [-a] SITE_PATH PROJECT_ID DEVICE_ID [SERIAL_NO] [TEST_NAMES...]
echo Usage: $0 [-v] [-vv] [-a] SITE_MODEL PROJECT_ID DEVICE_ID [SERIAL_NO] [TEST_NAMES...]
false
fi

site_path=$(realpath $1)
site_model=$(realpath $1)
project_id=$2
device_id=$3
shift 3
Expand All @@ -56,8 +62,8 @@ udmi_version=`git describe --always --dirty`

cd $ROOT_DIR

if [[ ! -d $site_path ]]; then
echo Site model $site_path not found.
if [[ ! -d $site_model ]]; then
echo Site model $site_model not found.
false
fi

Expand All @@ -69,7 +75,7 @@ echo Writing config to $VALIDATOR_CONFIG:
cat <<EOF > $VALIDATOR_CONFIG
{
"project_id": "$project_id",
"site_model": "$site_path",
"site_model": "$site_model",
"device_id": "$device_id",
"alt_registry": "$alt_registry",
"registry_suffix": $registry_suffix,
Expand All @@ -78,7 +84,7 @@ cat <<EOF > $VALIDATOR_CONFIG
"min_stage": "$min_stage",
"udmi_version": "$udmi_version",
"udmi_root": "$ROOT_DIR",
"key_file": "$site_path/validator/rsa_private.pkcs8"
"key_file": "$site_model/reflector/rsa_private.pkcs8"
}
EOF

Expand All @@ -92,11 +98,15 @@ $JAVA_CMD $test_names 2>&1 | tee $TEST_LOG

echo
# Sort by test name (6th field)
fgrep 'RESULT ' $TEST_LOG | sort -k 6 | tee /tmp/sequencer.out
fgrep 'RESULT ' $TEST_LOG | fgrep NOTICE | sort -k 6 | tee out/sequencer.res

if [[ `wc -l < /tmp/sequencer.out` -eq 0 ]]; then
if [[ $(wc -l < out/sequencer.res) -eq 0 ]]; then
echo No test results found.
exit 1
fi

# Sort by test name (4th field)
fgrep RESULT $site_model/out/devices/$device_id/RESULT.log | \
fgrep ' schemas ' | sort -k 3 | tee $SCHEMA_OUT

bin/check_version
27 changes: 1 addition & 26 deletions bin/sequencer_cache
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ ROOT_DIR=$(realpath $(dirname $0)/..)
cd $ROOT_DIR
TEST_LIST=out/sequencer_tests.txt
RESULT_OUT=out/sequencer.out
SCHEMA_OUT=out/schema_validation.out
CACHE_ROOT=validator/sequences
TEST_ROOT=sites/udmi_site_model/out/devices/AHU-1

Expand All @@ -30,7 +29,7 @@ find $CACHE_ROOT/ -name sequencer.log | xargs fgrep -H RESULT | awk '{print $7}'
find $TEST_ROOT/ -name sequencer.log | xargs fgrep -H RESULT | awk '{print $7}'>> $TEST_LIST
sort < $TEST_LIST | uniq | sponge $TEST_LIST
all_tests=$(cat $TEST_LIST)
rm -f $RESULT_OUT $SCHEMA_OUT
rm -f $RESULT_OUT

for test in $all_tests; do
src_dir=$TEST_ROOT/tests/$test
Expand All @@ -48,33 +47,9 @@ for test in $all_tests; do
fi

fgrep RESULT $cache_dir/sequencer.log | sed -e 's/.*sequence RESULT/RESULT/' >> $RESULT_OUT
fgrep SCHEMA $cache_dir/sequencer.log | sed -e 's/.*sequence SCHEMA/SCHEMA/' >> $SCHEMA_OUT
done

sort -k 3 < $RESULT_OUT | fgrep -v " DISABLED " | sponge $RESULT_OUT
sort -k 3 < $SCHEMA_OUT | fgrep -v " DISABLED " | sponge $SCHEMA_OUT

function check_schemas {
stage=$1
STAGE=${stage^^}
pass=$(fgrep "SCHEMA pass " $SCHEMA_OUT | fgrep " $STAGE " | awk '{ print $6 }')
fail=$(fgrep -v "SCHEMA pass " $SCHEMA_OUT | fgrep " $STAGE " | awk '{ print $6 }')
if [[ -n $fail ]]; then
result=fail
message="Failing schema validations"
elif [[ -n $pass ]]; then
result=pass
message="All messages passed validation"
else
result=skip
message="No matching schema results found"
fi
echo RESULT $result schemas schema_$stage $STAGE 5 $message in $SCHEMA_OUT >> $RESULT_OUT
}

check_schemas alpha
check_schemas beta
check_schemas stable

echo
echo Resulting $RESULT_OUT:
Expand Down
14 changes: 11 additions & 3 deletions bin/test_itemized
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,12 @@ PUBBER_OUT=out/pubber.out
SEQUENCER_OUT=out/sequencer.out
RESULTS_OUT=out/test_itemized.out
GOLDEN_FILE=etc/test_itemized.out
SCHEMAS_OUT=out/schemas_itemized.out
GOLDEN_SCHEMAS=etc/schemas_itemized.out

rm -f $RESULTS_OUT $SEQUENCER_OUT $PUBBER_OUT
rm -f $RESULTS_OUT $SEQUENCER_OUT $PUBBER_OUT $SCHEMAS_OUT
mkdir -p out
touch $RESULTS_OUT $SEQUENCER_OUT $PUBBER_OUT
touch $RESULTS_OUT $SEQUENCER_OUT $PUBBER_OUT $SCHEMAS_OUT

cat <<EOF > $udmi_profile
{
Expand Down Expand Up @@ -73,9 +75,15 @@ while read -u 7 action test_name remainder; do
result=$(grep -E -m 1 "RESULT [a-z]+ [a-z.]+ $test_name " $SEQUENCER_OUT)
echo ${result/*sequence RESULT/RESULT} >> $RESULTS_OUT

echo =========== $test_name >> $SCHEMAS_OUT
cat out/schemas.out >> $SCHEMAS_OUT

sleep 2

done 7< $GOLDEN_FILE

echo Comparing diff $RESULTS_OUT $GOLDEN_FILE
diff -u out/test_itemized.out etc/test_itemized.out
diff -u $RESULTS_OUT $GOLDEN_FILE

echo Comparing diff $SCHEMAS_OUT $GOLDEN_SCHEMAS
diff -u $SCHEMAS_OUT $GOLDEN_SCHEMAS
4 changes: 3 additions & 1 deletion bin/test_proxy
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,14 @@ site_config=$site_path/cloud_iot_config.json
cloud_region=$(jq -r .cloud_region $site_config)
registry_id=$(jq -r .registry_id $site_config)

PUBBER_OUT=pubber.out
PUBBER_OUT=out/pubber.out
rm -f $PUBBER_OUT.*

validator/bin/build
pubber/bin/build

bin/registrar $site_path

echo Killing running pubber instances...
ps ax | fgrep pubber | fgrep java | awk '{print $1}' | xargs kill || true

Expand Down
Loading

0 comments on commit b852806

Please sign in to comment.