Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
a7f7fb1
Enable ota blob updates in pubber
khyatimahendru Apr 7, 2026
dfa0f86
Fix typo
khyatimahendru Apr 7, 2026
27045fa
Fix CI job
khyatimahendru Apr 7, 2026
fc19ade
Fix failing tests
khyatimahendru Apr 7, 2026
810075f
Sequencer tests for OTA blob updates
khyatimahendru Apr 7, 2026
8bf8bbd
Add sequencer golden files
khyatimahendru Apr 8, 2026
c117632
remove redundant pubber flag
khyatimahendru Apr 8, 2026
ee337df
More tests for OTA updates
khyatimahendru Apr 14, 2026
415387d
Merge branch 'master' into ota-updates
khyatimahendru Apr 14, 2026
263c1c0
Add missing import
khyatimahendru Apr 14, 2026
3d2b354
Fix pubber build
khyatimahendru Apr 14, 2026
5d7e09b
Fix validator build
khyatimahendru Apr 14, 2026
266e2a7
Fix schema tests
khyatimahendru Apr 14, 2026
53de1c4
Fix pubber build
khyatimahendru Apr 14, 2026
4401506
Fix OTA updates test script
khyatimahendru Apr 14, 2026
2edd259
Rename blob update target and fix validator build
khyatimahendru Apr 14, 2026
9181ae8
Restore golden files
khyatimahendru Apr 14, 2026
a9aa0b8
Restore golden files
khyatimahendru Apr 14, 2026
84039aa
Cleanup
khyatimahendru Apr 15, 2026
93eadbb
Fix validator and pubber builds
khyatimahendru Apr 15, 2026
9b93182
Fix gencode and schemas test
khyatimahendru Apr 15, 2026
f31b902
Add golden files for sequencer tests
khyatimahendru Apr 15, 2026
fa365e2
Add golden files for itemized tests
khyatimahendru Apr 16, 2026
78bf4b4
Fix category level for blob fetch success
khyatimahendru Apr 16, 2026
13ee247
Add new log categories
khyatimahendru Apr 16, 2026
3ed643a
Use new log categories in pubber and validator
khyatimahendru Apr 16, 2026
ab530ae
Remove redundant pubber options
khyatimahendru Apr 16, 2026
7891e30
Streamline blob update log categories
khyatimahendru Apr 17, 2026
62b9a48
Add more tests and cleanup
khyatimahendru Apr 27, 2026
4f22182
Merge branch 'master' into ota-updates
khyatimahendru Apr 27, 2026
559972f
Refactor blob handling in pubber
khyatimahendru Apr 28, 2026
028a2ad
Fix github testing job
khyatimahendru Apr 28, 2026
5a64636
Add sequencer tests for blob updates
khyatimahendru Apr 28, 2026
ef8f277
Update golden files
khyatimahendru Apr 28, 2026
21850ca
Fix failing tests
khyatimahendru Apr 28, 2026
1e48864
Fix typo
khyatimahendru Apr 28, 2026
ac363ab
Fix failing tests
khyatimahendru Apr 29, 2026
893f1b1
Merge branch 'master' into ota-updates
khyatimahendru May 4, 2026
bfd0aef
Merge branch 'master' into ota-updates
khyatimahendru May 4, 2026
b600acb
Restore a category
khyatimahendru May 4, 2026
ccb1b54
Regenerate golden files
khyatimahendru May 4, 2026
4590200
Update noState golden file
khyatimahendru May 5, 2026
62eb11f
Add spec docs for blob updates
khyatimahendru May 5, 2026
3c7b075
Update wordlist
khyatimahendru May 5, 2026
21976ef
Fix result in no state golden file
khyatimahendru May 5, 2026
07718a3
Fix order of results in etc/sequencer.out
khyatimahendru May 6, 2026
5664841
Merge branch 'master' into ota-updates
khyatimahendru May 6, 2026
48abc4a
Fix failing test
khyatimahendru May 6, 2026
f08de23
Fix node js warning
khyatimahendru May 6, 2026
2b3755a
Merge branch 'master' into ota-updates
khyatimahendru May 11, 2026
c096b63
Update env var in blob updates ci job
khyatimahendru May 11, 2026
983c389
Add 2 more tests
khyatimahendru May 11, 2026
94db050
Add to wordlist
khyatimahendru May 11, 2026
ff2b5b1
Add script for update_blob
khyatimahendru May 11, 2026
053db33
Cleanup state after processing blob update
khyatimahendru May 11, 2026
a45e873
Merge branch 'master' into ota-updates
khyatimahendru May 11, 2026
ca7f5cb
Update docs
khyatimahendru May 11, 2026
faccea2
Undo delete TODO
khyatimahendru May 11, 2026
7e5cf84
Add to wordlist
khyatimahendru May 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
48 changes: 25 additions & 23 deletions .gencode_hash.txt
Original file line number Diff line number Diff line change
@@ -1,33 +1,33 @@
5c70161462ba15e3fd390ee725a721d35e95fa675e225fb30a605b5399b5a36e gencode/docs/building_config_entity.html
c21266e8de23b6e8acfac16a177db782375bf71df470c343c3f8eb8b822ef56a gencode/docs/commands_discovery.html
7bd462fd9b31a1a35b27f069194051161c484600161d7ef3fa7a4f8efa4e65fb gencode/docs/commands_mapping.html
5456be173c9df0174b545184f7976453635efa306623814f873c3eb739a730ea gencode/docs/commands_mapping.html
a65e8177ca59cd51c4a8ff63ecaa194897f7e22b82afb14708d63efbd7b96a84 gencode/docs/config.html
0bb798c8db6be37266946569a096e2f0b7520ee54d65e7e8d37675ef17820f14 gencode/docs/configuration_endpoint.html
7caf6f29bff7c358536444c0d8502169f708bcc6f32a3d0a8aae155708b2cd04 gencode/docs/configuration_execution.html
f9bfd4cf442d3fd3a91faace3a91da5600b93ce9528525f1bd6f71589c14ff60 gencode/docs/configuration_execution.html
11b21f73b6a4065102968a4c09979639b8a7ea6efb20e40d52cd21b2a60167bb gencode/docs/configuration_pod.html
b34c136cee32cb88f32a427ff400c3898ed49168f6dcaca1bc9ba65365bc5ae4 gencode/docs/configuration_pubber.html
1057fa40fb7a31a23bb2773d21c38cf4590a935bd8b5ea4218e695c6204f5dd9 gencode/docs/data_template.html
ffd9325c940b8e832a608a595c8ccc8903b935e899f42219ddc3c79ec65f6202 gencode/docs/events.html
43bc12668f97ba09efaf166d3191b772270522359efc7216e9e28feb8abddf6f gencode/docs/events.html
70e57ad6ef39330d958727ebf9dcd61ef6ea30e4c8653eac412bf1867fdb3a70 gencode/docs/events_alarmset.html
e0268db0f292834ad051fba0315cdf0b2c9850fbb4266414041d7d8e10aa312d gencode/docs/events_discovery.html
808ad1cad37e9f4bf08ea3631162a663998ce60fe8935cbd0ca5e548c3b6df2a gencode/docs/events_mapping.html
44abbbae91d066fa3df01b89ce12f9eef426fcc65ca4b321003058e2e6744e0f gencode/docs/events_discovery.html
338267271e24f91f5803b90eb4587483d35fb372ed600865deb5cb1f0f891a22 gencode/docs/events_mapping.html
eafcc3c48189f605f114cde051fea9d13fc5f1a3e395d64fb0a91cb53d4c9aeb gencode/docs/events_pointset.html
cac253f57c5c92ef32e2a5f91b6cec8229e8db1dcffcc96a58f06da068e741e7 gencode/docs/events_system.html
151c1b62db35e84e51d5ff2a7464f61ced4d7fb0c7eb795715c245ee0a1b3436 gencode/docs/events_udmi.html
73dbe799e7943ec20ac58b544998e986a39539d4ef0cb4f5023e92e7634d3124 gencode/docs/events_validation.html
cebf265b0c3d3a6e9c9e8c4e6c723ac36bc088dfabbc789e775388c3d2ec83d0 gencode/docs/metadata.html
c86682715d348bd3dd971fa5bd925a8a3d0f3c2944c65a47c4b64fe1a5ccdea2 gencode/docs/monitoring.html
474ca16edc9f3cad2bb3ab40b6993cbced90263f762f66ee6cd246a6c4a0d18f gencode/docs/persistent_device.html
11e08eb8cd0bf0cbd46f556a664f9cf224c65a30738bfdc8e7b1a6c924f92bdd gencode/docs/events_system.html
df0c4bc706e6a87258905537a5ebc325d6d55695bd9bbbd4c543b62ba501e0b4 gencode/docs/events_udmi.html
3f0e8452d3607ed17cb1df85db533aded0aa012ca5eb19e05a9c27193d7f4357 gencode/docs/events_validation.html
b0652b904de31e72bf3f5d42f9cb415da29f1b8be2d262476ff39d9121a177fe gencode/docs/metadata.html
a19694f3b9dfa5c99d9edc77908bd318e45d7c9764087304e08a8826f3155d97 gencode/docs/monitoring.html
7d5ce87e98473627d6d37cc5e282526a8eba20fdac015d4f94ccfe83ca4318ee gencode/docs/persistent_device.html
e11595fd11477947a27461f8ef4fb6facb5f60e2abd6212193f7581ab123ff84 gencode/docs/properties.html
c006d0f46c8f007caa90ac76c713cead907669c14c09f4a288fac5b25afe05dd gencode/docs/query_cloud.html
6f2cd8163a129667beb79f297f193ecd14d40c4f1ac06570db13d912ab98fd3f gencode/docs/readme.md
2768fd01a875d1f58273e76fef9b421986824d2ab02251853840bca777b625c0 gencode/docs/schema_doc.css
165a29291d7d66653e46fd1ac5868f63e18f9d67c06ea9ebcb95d4830a528e68 gencode/docs/schema_doc.min.js
7ed934930aee763e0beebc349725ba3909115e8d346bb762f28bcbe745bb163a gencode/docs/schema_extras.js
7a1bbe014c739078d354ec484147325e1d0bd19468f275a53da38add43ebe089 gencode/docs/site_metadata.html
95b953e99a5f202bf3f4348a48d9db62acd4ee9406523a37dcb230513026c4dd gencode/docs/state.html
a47043c68388aa21f5c906e9aa773ed3defb9239771d604153d5d4006e0e4fb9 gencode/docs/state_mapping.html
0b18cfdc1e87e61e696f35d9edd11ffec19dac82260e6f33e8c154dc676f5cc8 gencode/docs/state_validation.html
33c73d5c46282107129c3cc451feafb9ee0c0d1f56299728b5255fa55783c8d5 gencode/docs/state.html
a3aacef4c1749b5d1df946c50485eb89046fa86c84600f9a474a667ee89e45a1 gencode/docs/state_mapping.html
83bc5d0e50b88400c3d97ecb76882a05cb6bb12124df8c6857e37e008685af08 gencode/docs/state_validation.html
17803b0912ffdf0759564572dc98875a89e866d01801025ca01b0e9a21b7b7e4 gencode/java/udmi/schema/AlarmAlarmsetConfig.java
d2ef5bfa9f149d18e71a7767f5790cb6ff8ae2739aedd5a6dbf3113e56b62b12 gencode/java/udmi/schema/AlarmAlarmsetEvents.java
c3f989ff5f5f7a3c5c7ef0e94c6ac524ae61850ce37b0fbaa4e930a65aa2bb09 gencode/java/udmi/schema/AlarmAlarmsetModel.java
Expand All @@ -43,14 +43,15 @@ fa94295bc0c97518634c7232e7e55e1c923d7eb42bfa3004651ed183e1ccbb40 gencode/java/u
7364ee9662c193c1066d0c65ebaaf9b21874395ec9fd3558410a03b8b3ee7624 gencode/java/udmi/schema/Basic.java
33fd1a7b98e904f46a98b5229e692a4190e2cb685c7069a7d80f77a76cf1c18d gencode/java/udmi/schema/BlobBlobsetConfig.java
14055abcc28b9dccc8807ff0e3de201a3fa94cd57b879c22bd7f4fab40d109d9 gencode/java/udmi/schema/BlobBlobsetState.java
492ec19e8150728cf1e4863898de3b7fe37693fa0f5990ea33fb909abd78bcf3 gencode/java/udmi/schema/BlobUpdateTestingModel.java
1fe0e6cd4b82a54a0d696f0dd43998c3b08cf7d8b78f63b53fcd9c06d49f589c gencode/java/udmi/schema/BlobsetConfig.java
8c8e8941e34da08cddb0401ec296828d8b7aac1810dbfab6ae9ba5d7019c0dd0 gencode/java/udmi/schema/BlobsetState.java
1110d57d04d4e5da14f6b02d40053cc9b9dabf8e24e44b7441a4a7c66cb546ac gencode/java/udmi/schema/BridgePodConfiguration.java
2e7c0912c6f43b8dae9e9149b7361d3640bde4f01de6e13d8e487fe01be2c2c0 gencode/java/udmi/schema/Bucket.java
d9f2924753c34ea5c8c9532d3a94c0c2fe2891d2cc8766646d40b1e90636f372 gencode/java/udmi/schema/Bucket.java
8773da8131fdc0f9409df0c04132abdaa01f658d0ec0e73dd8aa714b24454bdc gencode/java/udmi/schema/BuildingConfigEntity.java
519ead2ee2fe3e6fe48547266dec9a545521d52d262646f261ebfbbf8500d25f gencode/java/udmi/schema/BuildingTranslation.java
27ca4f61bd43beca0871b465f3906785a1030a4526605f1fa9b10e3adda8df05 gencode/java/udmi/schema/CapabilityValidationState.java
224c6be2cb6d90a47d181fa30ba1418cf6cc5385ec1c010fe112728382a70216 gencode/java/udmi/schema/Category.java
cfd1b02bc51497c3cdf0c35d6e81f32360873694e0cd6c0d30e4eba4c225b478 gencode/java/udmi/schema/Category.java
ed9a4802c21fffdedb27040f74714b2cf467d0e32cd9e3d8d864a4f1836612b5 gencode/java/udmi/schema/CloudModel.java
051b4a7c85a2f1a310787f88f336be2fc9b87c99a94ac2f970955d2fe1daa931 gencode/java/udmi/schema/CloudQuery.java
3e6572b16184bde7557eb67334405e7c5b58446e64802658cf0d5ef3b0018909 gencode/java/udmi/schema/Common.java
Expand All @@ -61,7 +62,7 @@ ed9a4802c21fffdedb27040f74714b2cf467d0e32cd9e3d8d864a4f1836612b5 gencode/java/u
256ecb8fe4388ed5b16c4bbc292a655e423e67c3d5102f18cc053ae6110bf085 gencode/java/udmi/schema/Credential.java
4cfcfcb79aed8b6a0319b17efeb43ad601cb8d7f746ab4352d8ec30e75a61274 gencode/java/udmi/schema/DeviceMappingConfig.java
625c58696de0d960d93195d79f9e88dfcd5717697fb0f0a6310e5114fb7e6438 gencode/java/udmi/schema/DeviceMappingState.java
fd289a9a132a880bf0a14b80ed082ab1dcd77caab54175f8d6ccfc381d2d21ab gencode/java/udmi/schema/DevicePersistent.java
5d5e59bc0305713de8b7a658066c30a0aa0b7d70cd3952376e3d97a3be27088d gencode/java/udmi/schema/DevicePersistent.java
6869d00b063748e9995ba6940f6a323916074a7af28ab1d227772b86a39600bb gencode/java/udmi/schema/DeviceValidationEvents.java
ec863d0b69880bd2c3030abcdce1d2b8992a475908ead979cc30722b25c1ead2 gencode/java/udmi/schema/Dimension.java
09c9d674ffdde05f00878924a00ef81dc18d1135d5969e8ab9a8db80038198b7 gencode/java/udmi/schema/DiscoveryCommand.java
Expand Down Expand Up @@ -148,7 +149,7 @@ d36e487e0f59e6d9416c661aa6a70589a7e5b1763a2ff5a556fea7984b40200f gencode/java/u
f2d5c41298ad9cc1e8411ca1e094ada7d6457f1ee71743bcd163f77c51d8d9c0 gencode/java/udmi/schema/SystemModel.java
18a5e1e4daf656776d101aeda94021e6cab6f47f2caab88b7aba8abbbf5d2a7a gencode/java/udmi/schema/SystemState.java
7db128c5607f7f2a701e60895da9f49ae8b2c75a8daf7792fd155d537978fdd0 gencode/java/udmi/schema/TargetTestingModel.java
f9c304ff024f26654ee7f6a06661a825dfaf312a4fffd0cf753f4eea5958060b gencode/java/udmi/schema/TestingModel.java
2f3a162104c16b60f130748f03b3ca29c113d8c7a0e97d25a11c7801f735ef68 gencode/java/udmi/schema/TestingModel.java
6e2a7c00d3f228d798ab67d5f843b379f97d03a31afe3e7a9124f5f0473ff287 gencode/java/udmi/schema/TestingSystemConfig.java
18720de528285d01e9dbe891af0ad043e291dd848f4b35dd1413462eb9ff0d6d gencode/java/udmi/schema/UdmiConfig.java
c45ee5bfab48d0f152c57d646a91e7ccd7e33148b4bd1d643813d16fb3c284a0 gencode/java/udmi/schema/UdmiEvents.java
Expand All @@ -159,14 +160,14 @@ eadc72e31b4796273479967303513b16563af0f946d1e1c7eba1748f9b133d40 gencode/java/u
11f8dab5296d41e86cd623a4ed27b972ae673b141907cb913397d4eb53880c59 gencode/java/udmi/schema/Water.java
0d863349462e546bbfad54e75032170d9967f4ed95aa6bd900f36398fba012a4 gencode/presentation/presentation.json
4cf98cbd132cde0cc8813ac35cf3712cb46014154c817c04ad2902c268cdd8fe gencode/python/pyproject.toml
a98b84029d33a421872a08f7bfb1bd2f23f8dc3bebc8d7a1c2a7f1c8596510bf gencode/python/udmi/schema/__init__.py
109691e3c64245d5cb5e3aa4fb9e60a7e640fa9a326a119f0454a4dd13679f6e gencode/python/udmi/schema/__init__.py
f9d90861e568b27445bef241f04cce64cc44731c95c8bd9e3f65cef79d42dab0 gencode/python/udmi/schema/_base.py
0e18050ec17fde8162f75a76d9dc623d3f6ddca4396441bd603189827ed21a80 gencode/python/udmi/schema/access_iot.py
32a951e2bf13f556082f8d94be079b3df6cc081b6ff59f71a82d32782cf8f8f6 gencode/python/udmi/schema/ancillary_properties.py
9f27d0a731ced4b83c9769661fed2656814983394532aac9e2a97c71dd185e2a gencode/python/udmi/schema/bucket.py
2cde1ab831cfe9e06f772bcafd32540111617596b138ecfdcc8af6bc20e29b67 gencode/python/udmi/schema/bucket.py
b4f4a394ce4049fafe267a146458d5b1725e2532788c5811b4b0b96f84715e31 gencode/python/udmi/schema/building_config_entity.py
6289f299f33104a14be1c67762c8bcb494c008d34a2ff906ef3760164538fc82 gencode/python/udmi/schema/building_translation.py
9839ac82da64c8ad1b9ae144fa6be9d819a68f8e22336403321cad9af0d0033f gencode/python/udmi/schema/category.py
2c850815ce5ba6d7b9fad5d3257fd87f5a1085303a85e18428f717184adce0db gencode/python/udmi/schema/category.py
e92d040fe84cc1bbc6e6b2d81a39dae156e1501e1c07a0b6cfc42e1599403e64 gencode/python/udmi/schema/commands_discovery.py
8468bc35ad108e4618555cab711bdee700b64780e0d8c18f641c6a0ed21e2338 gencode/python/udmi/schema/commands_mapping.py
9e15cea83255f018e6e85fdbf8051211561c10ea34caa926a21eb140de31d82c gencode/python/udmi/schema/common.py
Expand Down Expand Up @@ -234,12 +235,13 @@ f65ab38c968d1dc2ffb2d3eaf632f401e2b722ff0d6fe69abf20227f694c0d33 gencode/python
53cc53278a4d387bd2f6f9d564be0b80dd470aae5d32bd79d0019fc6ec8dc138 gencode/python/udmi/schema/model_relationships.py
241c702f6a877f41c0ebd997c7e431ba8e6d6c0d1b21bc95a9fc57592ff094a7 gencode/python/udmi/schema/model_system.py
1db2fca012d3da953438b78acd2a5c15d94e46df8b77c459876e20ef2598dfbd gencode/python/udmi/schema/model_system_hardware.py
954806649d0e7364c482f84f75e19b01ce926990d64a79e76400f32043ddda66 gencode/python/udmi/schema/model_testing.py
7329091df4ef03454f2cd2711bfab7246a95a0dff97f13ac642bf31f3d109917 gencode/python/udmi/schema/model_testing.py
345ee1c07dc58c9a2daabf0820e15d881c4af271a8ea85044c45cd4dca3c0afa gencode/python/udmi/schema/model_testing_target.py
0d33512daea525f13629d9d8e541e0ca8de0282fb24c9f1493005ca181ea7f7d gencode/python/udmi/schema/model_testing_update.py
f65537d0d2f8a255b9cbc52fd5d52558e3af4e58f6e2f28a43d4eaf4b99adc73 gencode/python/udmi/schema/monitoring.py
5e9531a0fec79fb0bcd637ac68d6b6f38119c054e9b18fe624f2ca283ac2e9bf gencode/python/udmi/schema/monitoring_metric.py
336a38ea7d8fbf81a8f4e7fa56a2365fe849e4a1f86981d62be4a4c44168b104 gencode/python/udmi/schema/options_pubber.py
1a6304a669099579df6226bb83bb7b4dcfef8450206ab86182970244f50a5ce0 gencode/python/udmi/schema/persistent_device.py
ceebc2dc7cdb264730f64036312c42c9e16e8aaea5168ee3bf01bbe1f8c6950d gencode/python/udmi/schema/persistent_device.py
0fd2f78dfc89df3055d617b6f9f70c46c14b5dc307cc5b7705b09d9d782c33c2 gencode/python/udmi/schema/properties.py
debb60af8af183f2382f6def95a7a3d051c8b34d68de094e76e7d8636532c3d2 gencode/python/udmi/schema/query_cloud.py
272205c7292ffbf67d58c83fdab293e40d2ddfac8c5d1d480286d09152f542cc gencode/python/udmi/schema/site_externals_link.py
Expand Down
37 changes: 36 additions & 1 deletion .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -320,11 +320,46 @@ jobs:
name: udmi-support_${{ github.run_id }}-r
path: '*_udmi-support_*.tgz'

blobupdates:
name: Blob Updates
runs-on: ubuntu-24.04
timeout-minutes: 15
env:
TARGET_PROJECT: ${{ vars.TARGET_PROJECT || '//mqtt/localhost' }}
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '21'
- name: base setup
run: bin/run_tests install_dependencies
- name: local setup
run: bin/start_local sites/udmi_site_model $TARGET_PROJECT
- name: regclean
run: bin/test_regclean $TARGET_PROJECT
- name: bin/test_blob_updates
run: bin/test_blob_updates $TARGET_PROJECT
- name: pubber.log
if: ${{ !cancelled() }}
run: more out/pubber.log* | cat
- name: support bundle
if: ${{ !cancelled() }}
run: UDMI_REGISTRY_SUFFIX=_blobupdates bin/support ${{ github.repository_owner }}_${{ github.job }}_
- uses: actions/upload-artifact@v7
if: ${{ !cancelled() }}
with:
if-no-files-found: error
name: udmi-support_${{ github.run_id }}-blobupdates
path: '*_udmi-support_*.tgz'

posttest:
name: Post-test Summarization
runs-on: ubuntu-24.04
timeout-minutes: 5
needs: [ baseline, sequencer, endpoint, runlocal ]
needs: [ baseline, sequencer, endpoint, runlocal, blobupdates ]
if: ${{ !cancelled() }}
env:
TARGET_PROJECT: ${{ vars.TARGET_PROJECT || '//mqtt/localhost' }}
Expand Down
8 changes: 8 additions & 0 deletions .wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ bambi
BCD
bcd
blobset
blobsets
BMS
boolean
BOS
Expand All @@ -38,6 +39,8 @@ contextualise
coreutils
CoV
cron
cryptographic
cryptographically
datapoint
DBO
DBP
Expand Down Expand Up @@ -87,6 +90,7 @@ hostname
http
https
IAM
idempotency
idToken
integrations
invoker
Expand All @@ -106,6 +110,7 @@ KNX
kube
kubectl
Kubernetes
lifecycle
localhost
localnet
logentry
Expand All @@ -128,13 +133,15 @@ niversal
nmap
npm
nterface
observability
OIDC
Onboarding
onboarding
OPC
optionality
Optionality
OSS
oversized
pagent
parameterization
parsers
Expand Down Expand Up @@ -212,6 +219,7 @@ UI
uint
unconfigured
underspecified
unencoded
uniqs
unitid
UNK
Expand Down
2 changes: 1 addition & 1 deletion bin/clone_model
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ cd $SITE_DIR

MODEL_LINK=site_model
MODEL_DIR=udmi_site_model
MODEL_VER=1.22
MODEL_VER=1.23
TEST_SITE_GIT=https://github.com/faucetsdn/$MODEL_DIR.git
MODEL_REPO=origin

Expand Down
79 changes: 79 additions & 0 deletions bin/test_blob_updates
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
#!/bin/bash -e

ROOT_DIR=$(realpath $(dirname $0)/..)
cd $ROOT_DIR

if [[ $# != 1 ]]; then
echo Usage: $0 PROJECT_SPEC
false
fi

project_spec=$1
shift

function log {
$ROOT_DIR/bin/timestamp $@
}

function fail {
$ROOT_DIR/bin/timestamp $@
false
}

site_path=sites/udmi_site_model
device_id=AHU-1
serial_no=sequencer-$RANDOM

# Use tag v2 for module update
target_commit="v2"
# shellcheck disable=SC2089
payload='{"version": "'${target_commit}'"}'

mkdir -p out/

rm -f out/blobs.json
pubber_log=out/pubber.log.${serial_no}

log "Starting pubber with serial $serial_no..."
bin/pubber $site_path $project_spec $device_id $serial_no > $pubber_log 2>&1 &
pubber_pid=$!

log "Waiting for pubber to start..."
sleep 20

log "Target commit for update: $target_commit"

log "Generating and applying blob update config..."
generation_payload=$(date -u +"%Y-%m-%dT%H:%M:%SZ")

bin/update_blob $site_path $project_spec $device_id pubber_module "$payload" --generation "$generation_payload"

log "Waiting for pubber to process update..."
sleep 20

log "Verifying logs..."
if grep -q "Updating pubber module to: $target_commit" $pubber_log; then
log "Update trigger detected."
else
fail "Update trigger NOT detected."
fi

# Wait for update to complete and state to propagate
sleep 20

if grep -q "Mock module update completed" $pubber_log; then
log "Blob update success detected."
else
fail "Blob success NOT detected."
fi

if jq -e --arg gen "$generation_payload" '.blobset.blobs.pubber_module.phase == "final" and .blobset.blobs.pubber_module.generation == $gen' pubber/out/state.json > /dev/null; then
log "Blob state phase: FINAL verified in state"
else
fail "Blob state phase: FINAL NOT found in state"
fi

log "Blob update test passed!"

echo Cleaning up pubber background process...
kill $pubber_pid
2 changes: 1 addition & 1 deletion bin/test_runlocal
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ cat out/message_capture.log
echo Captured $(wc -l out/message_capture.log) messages.

systems=$(find out/registries/ -name \*update_model.json | xargs jq .system | fgrep -v null | wc -l) || true
[[ $systems == 269 ]] || fail Expected 269 system operations, found $systems
[[ $systems == 274 ]] || fail Expected 269 system operations, found $systems

deletes=$(find out/registries/ -name \*update_model.json | xargs jq .operation | fgrep DELETE | wc -l) || true
[[ $deletes == 1 ]] || fail Expected 1 delete operations, found $deletes
Expand Down
Loading
Loading