Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: deps: bump to use simple-sqlite3-orm v0.5.0, update the otaproxy accordingly #454

Merged
merged 9 commits into from
Dec 16, 2024

Conversation

Bodong-Yang
Copy link
Member

@Bodong-Yang Bodong-Yang commented Dec 16, 2024

Introduction

This PR bumps to use simple-sqlite3-orm v0.5.0 for otaproxy, and updates the otaproxy accordingly. Also missing indexes for ota_cache metadata db (previously defined before otaclient v3.7.1) are added back to otaproxy.

Other minor changes:

  1. lru_cache_helper: use burst_suppressed_logger for loggings that might be flooded.

Tests

  • normal OTA e2e test with VM.
  • fully interrupt OTA, and re-OTA again with OTA cache.
  • shutdown network and restart network, try several times during OTA.
  • test cache rotating.

@Bodong-Yang Bodong-Yang added feature New feature is introduced dependencies Pull requests that update a dependency file labels Dec 16, 2024
Copy link
Contributor

github-actions bot commented Dec 16, 2024

Coverage

Coverage Report
FileStmtsMissCoverMissing
src/ota_metadata/legacy
   __init__.py10100% 
   parser.py3354885%106, 170, 175, 211–212, 222–223, 226, 238, 289–291, 295–298, 324–327, 396, 399, 407–409, 422, 431–432, 435–436, 601–603, 653–654, 657, 685–686, 689–690, 692, 696, 698–699, 753, 756–758
   types.py841384%37, 40–42, 112–116, 122–125
src/ota_metadata/utils
   cert_store.py86890%58–59, 73, 87, 91, 102, 123, 127
src/ota_proxy
   __init__.py15660%48, 50, 52, 61, 71–72
   __main__.py880%16, 18–20, 22, 24–25, 27
   _consts.py170100% 
   cache_control_header.py68494%71, 91, 113, 121
   cache_streaming.py1442284%154–156, 184–186, 211, 225, 229–230, 265–266, 268, 280, 349, 355–356, 359, 367–370
   config.py200100% 
   db.py801877%103, 109, 167, 173–174, 177, 183, 185, 209–216, 218–219
   errors.py50100% 
   external_cache.py282028%31, 35, 40–42, 44–45, 48–49, 51–53, 60, 63–65, 69–72
   lru_cache_helper.py48295%95–96
   ota_cache.py2346472%71–72, 143, 146–147, 159–160, 192–193, 210, 231, 250–254, 258–260, 262, 264–271, 273–275, 278–279, 283–284, 288, 335, 343–345, 418, 445, 448–449, 471–473, 477–479, 485, 487–489, 494, 520–522, 557–559, 586, 592, 607
   server_app.py1413972%79, 82, 88, 107, 111, 170, 179, 221–222, 224–226, 229, 234–235, 238, 241–242, 245, 248, 251, 254, 267–268, 271–272, 274, 277, 303–306, 309, 323–325, 331–333
   utils.py140100% 
src/otaclient
   __init__.py5260%17, 19
   __main__.py110%16
   _logging.py513335%43–44, 46–47, 49–54, 56–57, 59–60, 62–65, 67, 77, 80–82, 84–86, 89–90, 92–96
   _otaproxy_ctx.py43430%20, 22–30, 32–37, 39, 41–42, 45, 47–51, 54–57, 60–61, 63–64, 66–68, 70, 75–79, 81
   _status_monitor.py1851492%56–57, 169, 172, 192, 195, 211–212, 220, 223, 286, 308, 325–326
   _types.py960100% 
   _utils.py30293%80–81
   errors.py120199%97
   main.py25250%17, 19–29, 31–33, 35, 37, 41–42, 44–46, 48–50
   ota_core.py34213959%121, 123–124, 128–129, 131–133, 137–138, 143–144, 150, 152, 211–214, 337, 369–370, 372, 381, 384, 389–390, 393, 399, 401–405, 412, 418, 453–456, 459–470, 473–476, 512–515, 531–532, 536–537, 605–612, 617, 620–627, 652–653, 659, 663–664, 670, 695–697, 699, 739, 761, 788–790, 799–805, 819–825, 827–828, 833–834, 842, 844, 850, 852, 858, 860, 864, 870, 872, 878, 881–883, 893–894, 905–907, 909–910, 912, 914–915, 920, 922, 927
src/otaclient/boot_control
   __init__.py40100% 
   _firmware_package.py932276%82, 86, 136, 180, 186, 209–210, 213–218, 220–221, 224–229, 231
   _grub.py41812769%214, 262–265, 271–275, 312–313, 320–325, 328–334, 337, 340–341, 346, 348–350, 359–365, 367–368, 370–372, 381–383, 385–387, 466–467, 471–472, 524, 530, 556, 578, 582–583, 598–600, 624–627, 639, 643–645, 647–649, 708–711, 736–739, 762–765, 777–778, 781–782, 817, 823, 843–844, 846, 871–873, 891–894, 919–922, 929–932, 937–945, 950–957
   _jetson_cboot.py2612610%20, 22–25, 27–29, 35–40, 42, 58–60, 62, 64–65, 71, 75, 134, 137, 139–140, 143, 150–151, 159–160, 163, 169–170, 178, 187–191, 193, 199, 202–203, 209, 212–213, 218–219, 221, 227–228, 231–232, 235–237, 239, 245, 250–252, 254–256, 261, 263–266, 268–269, 278–279, 282–283, 288–289, 292–296, 299–300, 305–306, 309, 312–316, 321–324, 327, 330–331, 334, 337–338, 341, 345–350, 354–355, 359, 362–363, 366, 369–372, 374, 377–378, 382, 385, 388–391, 393, 400, 404–405, 408–409, 415–416, 422, 424–425, 429, 431, 433–435, 438, 442, 445, 448–449, 451, 454, 462–463, 470, 480, 483, 491–492, 497–500, 502, 509, 511–513, 519–520, 524–525, 528, 532, 535, 537, 544–548, 550, 562–565, 568, 571, 573, 580, 590–592, 594, 596, 599, 602, 605, 607–608, 611–615, 619–621, 623, 631–635, 637, 640, 644, 647, 658–659, 664, 674, 677–683, 687–693, 697–706, 710–718, 722, 724, 726–728
   _jetson_common.py1724573%132, 140, 288–291, 294, 311, 319, 354, 359–364, 382, 408–409, 411–413, 417–420, 422–423, 425–429, 431, 438–439, 442–443, 453, 456–457, 460, 462, 506–507
   _jetson_uefi.py40427432%124–126, 131–132, 151–153, 158–161, 328, 446, 448–451, 455, 459–460, 462–470, 472, 484–485, 488–489, 492–493, 496–498, 502–503, 508–510, 514, 518–519, 522–523, 526–527, 531, 534–535, 537, 542–543, 547, 550–551, 556, 560–561, 564, 568–570, 572, 576–579, 581–582, 604–605, 609–610, 612, 616, 620–621, 624–625, 632, 635–637, 640, 642–643, 648–649, 652–655, 657–658, 663, 665–666, 674, 677–680, 682–683, 685, 689–690, 694, 702–706, 709–710, 712, 715–719, 722, 725–729, 733–734, 737–742, 745–746, 749–752, 754–755, 762–763, 773–776, 779, 782–785, 788–792, 795–796, 799, 802–805, 808, 810, 815–816, 819, 822–825, 827, 833, 838–839, 858–859, 862, 870–871, 878, 888, 891, 898–899, 904–907, 915–918, 926–927, 939–942, 944, 947, 950, 958, 969–971, 973–975, 977–981, 986–987, 989, 1002, 1006, 1009, 1019, 1024, 1032–1033, 1036, 1040, 1042–1044, 1050–1051, 1056, 1064–1069, 1074–1079, 1084–1092, 1097–1104, 1112–1114
   _ota_status_control.py1021189%117, 122, 127, 240, 244–245, 248, 255, 257–258, 273
   _rpi_boot.py28713353%53, 56, 120–121, 125, 133–136, 150–153, 158–159, 161–162, 167–168, 171–172, 181–182, 222, 228–232, 235, 253–255, 259–261, 266–268, 272–274, 284–285, 288, 291, 293–294, 296–297, 299–301, 307, 310–311, 321–324, 332–336, 338, 340–341, 346–347, 354, 357–362, 393, 395–398, 408–411, 415–416, 418–422, 450–453, 472–475, 501–504, 509–517, 522–529, 544–547, 554–557, 565–567
   _slot_mnt_helper.py100100% 
   configs.py510100% 
   protocol.py60100% 
   selecter.py412929%44–46, 49–50, 54–55, 58–60, 63, 65, 69, 77–79, 81–82, 84–85, 89, 91, 93–94, 96, 98–99, 101, 103
src/otaclient/configs
   __init__.py170100% 
   _cfg_configurable.py470100% 
   _cfg_consts.py47197%97
   _common.py80100% 
   _ecu_info.py56492%59, 64–65, 112
   _proxy_info.py50590%84, 86–87, 89, 100
   cfg.py190100% 
src/otaclient/create_standby
   __init__.py13192%36
   common.py2264480%59, 62–63, 67–69, 71, 75–76, 78, 126, 174–176, 178–180, 182, 185–188, 192, 203, 279–280, 282–287, 299, 339, 367, 370–372, 388–389, 403, 407, 429–430
   interface.py70100% 
   rebuild_mode.py1151091%98–100, 119, 150–155
src/otaclient/grpc/api_v2
   ecu_status.py1611093%75, 78, 81, 150, 175, 177, 307, 382–383, 419
   ecu_tracker.py54540%17, 19–22, 24–30, 32–33, 35, 46–47, 50, 52, 58–61, 63, 65, 67–70, 77, 81–84, 88–89, 91, 93, 95–103, 107–108, 110, 112–115
   main.py41410%17, 19–24, 26–27, 29, 32, 39, 41–42, 44–45, 47–48, 50–55, 57–59, 61, 64, 70, 72–73, 76–77, 79–82, 84–85, 87
   servicer.py1169518%57–61, 63–64, 66–67, 73–77, 81–82, 87, 90, 94–96, 100–102, 110–112, 115–119, 128–138, 145, 151, 154–156, 167–169, 172–174, 179, 186–189, 192, 196–197, 202, 205, 209–211, 215–217, 225–226, 229–233, 242–251, 258, 264, 267–269, 274–275, 278
   types.py44295%78–79
src/otaclient_api/v2
   api_caller.py39684%45–47, 83–85
   types.py2563287%61, 64, 67–70, 86, 89–92, 131, 209–210, 212, 259, 262–263, 506–508, 512–513, 515, 518–519, 522–523, 578, 585–586, 588
src/otaclient_common
   __init__.py341555%42–44, 61, 63, 68–77
   _io.py64198%41
   cmdhelper.py130100% 
   common.py1061090%148, 151–153, 168, 175–177, 271, 275
   downloader.py1991094%107–108, 126, 153, 369, 424, 428, 516–517, 526
   linux.py611575%51–53, 59, 69, 74, 76, 108–109, 133–134, 190, 195–196, 198
   logging.py29196%55
   persist_file_handling.py1181884%113, 118, 150–152, 163, 192–193, 228–232, 242–244, 246–247
   proto_streamer.py42880%33, 48, 66–67, 72, 81–82, 100
   proto_wrapper.py3985785%87, 134–141, 165, 172, 184–186, 189–190, 205, 210, 221, 257, 263, 268, 299, 303, 307, 402, 462, 469, 472, 492, 499, 501, 526, 532, 535, 537, 562, 568, 571, 573, 605, 609, 611, 625, 642, 669, 672, 676, 692, 707, 713, 762–763, 765, 803–805
   retry_task_map.py129993%134–135, 153–154, 207–208, 210, 230–231
   shm_status.py952177%79–80, 83–84, 105, 120–122, 134, 139, 156–160, 169–170, 172, 179, 192, 204
   typing.py31487%48, 97–98, 100
TOTAL6710188871% 

Tests Skipped Failures Errors Time
228 0 💤 0 ❌ 0 🔥 12m 2s ⏱️

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The missing bucket_id index and last_access index are added back now.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All the fields of cache_meta table schema are using native data types, so no need to apply validation to any of the fields.
Since in lru_cache_helper we use table_spec_no_validation as row_factory specifier, no need to use SkipValidation hint on each field.

@Bodong-Yang Bodong-Yang enabled auto-merge (squash) December 16, 2024 06:29
@Bodong-Yang Bodong-Yang merged commit 3ffaf90 into main Dec 16, 2024
9 checks passed
@Bodong-Yang Bodong-Yang deleted the feat/bump_to_use_simple_sqlite3_orm_v0.5.0 branch December 16, 2024 06:30
Bodong-Yang added a commit that referenced this pull request Dec 17, 2024
…y accordingly (#454)

This PR bumps to use simple-sqlite3-orm v0.5.0 for otaproxy, and updates the otaproxy accordingly. Also missing indexes for ota_cache metadata db (previously defined before otaclient v3.7.1) are added back to otaproxy.

Other minor changes:
1. lru_cache_helper: use burst_suppressed_logger for loggings that might be flooded.
Bodong-Yang added a commit that referenced this pull request Dec 18, 2024
commit b4b9547
Author: bodong.yang <[email protected]>
Date:   Wed Dec 18 07:51:29 2024 +0000

    ota_core: wait on any_child_ecu_in_update not set

commit 1fd8994
Author: bodong.yang <[email protected]>
Date:   Wed Dec 18 07:35:21 2024 +0000

    minor fix

commit 276deff
Author: bodong.yang <[email protected]>
Date:   Wed Dec 18 07:33:38 2024 +0000

    fix up test_ecu_status

commit 2f5d322
Author: bodong.yang <[email protected]>
Date:   Wed Dec 18 07:22:29 2024 +0000

    fix up test_ecu_status

commit 7a57a6f
Author: bodong.yang <[email protected]>
Date:   Wed Dec 18 07:11:40 2024 +0000

    ecu_status: set ecu_status_flags.any_child_ecu_in_update accordingly

commit 1ac7cc9
Author: bodong.yang <[email protected]>
Date:   Wed Dec 18 07:08:32 2024 +0000

    otaclient.main: MultipleECUStatusFlags: rename any_in_update to any_child_ecu_in_update

commit f19560c
Author: bodong.yang <[email protected]>
Date:   Wed Dec 18 07:08:11 2024 +0000

    otaclient._types: MultipleECUStatusFlags: rename any_in_update to any_child_ecu_in_update

commit 3d05444
Author: Keisuke Nakata <[email protected]>
Date:   Tue Dec 17 10:21:54 2024 +0900

    docs: update DEVELOPMENT.md (#455)

    update DEVELOPMENT.md

commit b710bb0
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Dec 17 09:53:24 2024 +0900

    build(deps): Update uvicorn[standard] requirement (#457)

    Updates the requirements on [uvicorn[standard]](https://github.com/encode/uvicorn) to permit the latest version.
    - [Release notes](https://github.com/encode/uvicorn/releases)
    - [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
    - [Commits](encode/uvicorn@0.30.0...0.34.0)

    ---
    updated-dependencies:
    - dependency-name: uvicorn[standard]
      dependency-type: direct:production
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 3ffaf90
Author: Bodong Yang <[email protected]>
Date:   Mon Dec 16 15:30:09 2024 +0900

    feat: deps: bump to use simple-sqlite3-orm v0.5.0, update the otaproxy accordingly (#454)

    This PR bumps to use simple-sqlite3-orm v0.5.0 for otaproxy, and updates the otaproxy accordingly. Also missing indexes for ota_cache metadata db (previously defined before otaclient v3.7.1) are added back to otaproxy.

    Other minor changes:
    1. lru_cache_helper: use burst_suppressed_logger for loggings that might be flooded.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file feature New feature is introduced
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant