{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":268493641,"defaultBranch":"master","name":"velia","ownerLogin":"CESNET","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-06-01T10:40:27.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1116469?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1715337904.0","currentOid":""},"activityList":{"items":[{"before":"52d5046662fc1ce007a8ec1b344736a141fb97ac","after":"9bd612744ff4139c87ec830be5709e15a4f3996c","ref":"refs/heads/master","pushedAt":"2024-02-13T14:58:17.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"hardware: push alarm-inventory alarms in one batch\n\nThis reduces the first initial push to alarm-inventory from 4 edits to\n1.\n\nWhat a simple diff in src/ and what a mess under tests/.\n\nChange-Id: I07f38e529341f2bcdcc51e2e9562b641971c553e","shortMessageHtmlLink":"hardware: push alarm-inventory alarms in one batch"}},{"before":"2848fd0bd0455c749b8e93777b2fc06f1445f385","after":"52d5046662fc1ce007a8ec1b344736a141fb97ac","ref":"refs/heads/master","pushedAt":"2024-02-12T11:23:42.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"tests: allow batch resource updates in sysrepo alarm expectations\n\nChange-Id: I6723bbcca7b8b9a1e114283426f4851c6e74506a","shortMessageHtmlLink":"tests: allow batch resource updates in sysrepo alarm expectations"}},{"before":"c1aee5c3b026c0dda405ff9c4946d4100829fa22","after":"2848fd0bd0455c749b8e93777b2fc06f1445f385","ref":"refs/heads/master","pushedAt":"2024-01-30T15:52:49.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"hardware: properly set up alarm-inventory\n\nWhile pushing data to alarm-inventory we missed the mandatory will-clear\nparameter. It did not raised any error because operational datastore\ncontent can be invalid.\n\nHowever, I think it is still wrong. Let's change the way how we\nintroduce alarms in ietf-hardware. Register all the alarms without any\nresources first. Then add the resources.\nThis involves adding 4 calls for alarm-inventory. In the next commit we\ncan make it a little bit more efficient.\n\nChange-Id: Ia7072c659b0da3395a35c0f18d214987d59eb129","shortMessageHtmlLink":"hardware: properly set up alarm-inventory"}},{"before":"94ebc36420e05bf4b83ede037c851f75d5d50ca2","after":"c1aee5c3b026c0dda405ff9c4946d4100829fa22","ref":"refs/heads/master","pushedAt":"2024-01-30T15:27:37.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"utils: put alarms into separate namespace\n\nThe interface for managing alarms and also the identifiers are somewhat\ncomplicated. I want to make it simpler and more readable. Let's start\nwith moving the alarms into their own velia::alarms namespace to clean\nthings up. The function names can be made shorter then.\n\nChange-Id: Iee8902a68d3f837cf11a21776f54c7f7637aa3b0","shortMessageHtmlLink":"utils: put alarms into separate namespace"}},{"before":"7eb645922762487237b47be5546b708c17977041","after":"94ebc36420e05bf4b83ede037c851f75d5d50ca2","ref":"refs/heads/master","pushedAt":"2024-01-26T00:01:40.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"health: read systemd unit state from ListUnits call\n\nWhen we are registering units after listing all units, we did query\ntheir state explicitly using another DBus call. This is, however, not\nrequired, because ListUnits() method returns both the ActiveState,\nand the SubState of the unit [1].\n\n[1] https://www.freedesktop.org/wiki/Software/systemd/dbus/#Manager-ListUnits\n\nChange-Id: I5fb6a1d214833c98675e8ab9c92d427c926fd321","shortMessageHtmlLink":"health: read systemd unit state from ListUnits call"}},{"before":"370e2bf891b489a4a07ddccfd85a821301892f18","after":"7eb645922762487237b47be5546b708c17977041","ref":"refs/heads/master","pushedAt":"2024-01-25T10:09:01.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"tests: encapsulate datastore changes watcher into a single class\n\nThis commit only generalizes watcher for datastore changes and wraps it\ninto a single class so it can be reused in the future.\n\nChange-Id: Iccab13930c2b2fb50009f9fc3a99e76fee19bf5e","shortMessageHtmlLink":"tests: encapsulate datastore changes watcher into a single class"}},{"before":"26b3821d6fb0ef0b194ff7d91ac71b0df101a5d9","after":"370e2bf891b489a4a07ddccfd85a821301892f18","ref":"refs/heads/master","pushedAt":"2024-01-19T12:56:51.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"Merge changes I6c158f07,I311cc4cd,Ifdb3991f,I28558181\n\n* changes:\n system: deny reading other user's authorised keys\n system: add NACM rules allowing to change password and modify keys\n tests: remove useless section\n tests: use TEST_SYSREPO_INIT* macros","shortMessageHtmlLink":"Merge changes I6c158f07,I311cc4cd,Ifdb3991f,I28558181"}},{"before":"cdc899b76fb6c376c1cb41228884f9154b612f5e","after":"26b3821d6fb0ef0b194ff7d91ac71b0df101a5d9","ref":"refs/heads/master","pushedAt":"2024-01-19T12:56:32.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"hardware: raise alarms when FspYh read failures happen\n\nWhen the PDU or PSU read failure happen, we should also raise an alarm.\nThe read failures are detected inside the FspYh class which does not\nhave access to sysrepo. Therefore during the data polling we should also\npick up any alarms that data readers want to be published.\n\nChange-Id: I42b1709d59a960b7f9ef65a65b47a0ef9b4a93d8","shortMessageHtmlLink":"hardware: raise alarms when FspYh read failures happen"}},{"before":"e259aaa8ca99fb03d6adae839f3db204a3dd1e46","after":"cdc899b76fb6c376c1cb41228884f9154b612f5e","ref":"refs/heads/master","pushedAt":"2024-01-16T09:50:19.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"tests: sysrepo: don't print \"not interesting\" nodes\n\nIn sysrepo, a non-presence container is \"always there\" as long as its\nparent node is \"there\". Let's not waste time printing that. Also do not\nprint list entries themselves; there's always a node below that that\ngets printed already. Together, these changes make it possible to use a\ncommon macro for the first alarm in the inventory.\n\nChange-Id: I2bad49cd75b618146b8939af0774364ffbb71256\nSee-also: https://gerrit.cesnet.cz/c/CzechLight/velia/+/6753/comment/71da4e9e_f823259e/","shortMessageHtmlLink":"tests: sysrepo: don't print \"not interesting\" nodes"}},{"before":"00771ab395b7d5389016bcf663e943b2232a24a7","after":"e259aaa8ca99fb03d6adae839f3db204a3dd1e46","ref":"refs/heads/master","pushedAt":"2024-01-11T20:30:29.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"Merge \"system: allow to configure remote journal upload\"","shortMessageHtmlLink":"Merge \"system: allow to configure remote journal upload\""}},{"before":"c0991cee33cdc8bfbd59e63d9b3178260166fe4d","after":"00771ab395b7d5389016bcf663e943b2232a24a7","ref":"refs/heads/master","pushedAt":"2024-01-11T19:35:39.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"hardware: remove unused data_reader::Group\n\nThis was used for grouping together reading PDU values from sysfs. This\nis however not needed after previous commits.\n\nChange-Id: I779be9d80d4e58102b0d506cdca6213c3304bb4e","shortMessageHtmlLink":"hardware: remove unused data_reader::Group"}},{"before":"bf39bcb976ed09ffe4d1c6fdcf8fd00e48f303d9","after":"c0991cee33cdc8bfbd59e63d9b3178260166fe4d","ref":"refs/heads/master","pushedAt":"2024-01-11T11:56:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"hardware: add new sensors to alarm-inventory\n\nAfter previous commits we saw failures on live boxes that nonoperational\nalarm is not registered in alarm-inventory for some components.\nAnd indeed. We fill alarm-inventory right after the Hardware classes\nare constructed. However, when the pluggable components are not present\nat that time, then its thresholds would not get passed to IETFHardware.\nAnd we read active sensors based on the keys of sensor XPath to\nThresholds mapping.\n\nThe simple solution was to load all the active sensors and their\nthresholds with every HW state poll. Then, we'd sync the\nalarm-inventory with the current state of the active sensors. However,\nthis could not work. If the sensor is unplugged, we'd delete all\nalarm-inventory entries for this sensor but then we can't publish the\nmissing sensor alarm.\n\nTherefore, let's do it like in health tracking alarms for systemd\nservices: Publish new alarm-inventory entries but do not delete them.\n\nChange-Id: I8a9b85e3b11f3ea4d66a48241d39b808a8b5dffa","shortMessageHtmlLink":"hardware: add new sensors to alarm-inventory"}},{"before":"5a23d7d3d70a9cbb3e1a661fd95e4c52e89fa364","after":"bf39bcb976ed09ffe4d1c6fdcf8fd00e48f303d9","ref":"refs/heads/master","pushedAt":"2024-01-11T10:13:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"tests: DRY a bit on these XPath strings\n\nChange-Id: I15c68519dab60666556d95e544af817e3e6f785d","shortMessageHtmlLink":"tests: DRY a bit on these XPath strings"}},{"before":"5a4c035f621e0ef5237907b72216ba10234d2778","after":"5a23d7d3d70a9cbb3e1a661fd95e4c52e89fa364","ref":"refs/heads/master","pushedAt":"2024-01-02T10:08:35.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"docs: sync the Boost version with the CI\n\nChange-Id: Id368c28400b9e47ccab8a5ec0cb204bd3c94bab5","shortMessageHtmlLink":"docs: sync the Boost version with the CI"}},{"before":"343011faa5bdb52e6428eeefd732d33bbf70f710","after":"5a4c035f621e0ef5237907b72216ba10234d2778","ref":"refs/heads/master","pushedAt":"2023-12-12T12:53:30.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"hardware: invoke alarm when sensor goes nonoperational\n\nChange-Id: I88266d453bbade1cb8d703d4f7f0b87cd7e454d7","shortMessageHtmlLink":"hardware: invoke alarm when sensor goes nonoperational"}},{"before":"613f07f95d77575aeddbd89c51a085b9b7829adf","after":"343011faa5bdb52e6428eeefd732d33bbf70f710","ref":"refs/heads/master","pushedAt":"2023-11-13T17:38:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"Fix build failure with GCC 13.2\n\nAfter a system update, this stopped building:\n\n velia/src/system/Authentication.cpp: In function ‘auto velia::system::impl::file_open(const char*, const char*)’:\n velia/src/system/Authentication.cpp:58:65: error: ignoring attributes on template argument ‘int (*)(FILE*)’ [-Werror=ignored-attributes]\n 58 | auto res = std::unique_ptr(std::fopen(filename, mode), std::fclose);\n | ^\n\nThe root cause is that fclose's argument has\n__attribute__((nonnull(1))), and that attribute triggers that warning.\n\nIt turns out that this pattern is actually not strictly speaking correct\nbecause one is not allowed to take the address of a standard function\nlike this. Also, declaring the unique_ptr with a function-pointer\ndestructor is a wee bit less effective because this type would offer\nruntime customization of its behavior, whereas we do not really need\nto consult this function pointer at runtime.\n\nFortunately, as of C++20 it's OK to use a decltype(lambda) as the\nsecond template type to unique_ptr (and then it's OK to rely on its\nimplicit \"construction\" for the actual destructor), so the fix is pretty\nshort. Yay!\n\nChange-Id: Ibd0397ad3446c0fe95de297f36d11637eb74d96c\nLink: https://stackoverflow.com/questions/76867698/what-does-ignoring-attributes-on-template-argument-mean-in-this-context\nLink: https://stackoverflow.com/a/76867913/2245623","shortMessageHtmlLink":"Fix build failure with GCC 13.2"}},{"before":"0d8e90770c9c162fca812bb1c1ce33cabb53754b","after":"613f07f95d77575aeddbd89c51a085b9b7829adf","ref":"refs/heads/master","pushedAt":"2023-11-06T11:19:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"tests: rely on doctest+trompeloeil integration from upstream\n\nThere's been a behavior change in doctest 2.8.9 which changed how\nstrings are printed. This was fixed in Trompeloeil v43. Unfortunately,\nwe were bundling that one trivial file that sends error info from\nTrompeloeil to Doctest, and that means that we were not getting the fix\nfrom Trompeloeil. As a result, failed expectations were (sometimes)\nprinted as a pointer instead of the usual useful text.\n\nWhy did we bundle this? That's an excellent question. It goes back to\ncla-sysrepo and pre-doctest days. It appears to have been introduced\nback when we switched from Catch v1 to Catch v2 in cla-sysrepo's commit\n59cc09af22899579a354c2ab1c6ae2f1ae40ac2d. That in itself was just a\nmodification to something from cla-sysrepo commit\n321a3424a179e41df7bb43d101cf853993ef1c00 which refers to the upstream\nwiki. Chances are that they were not providing the\n`$UnitTestFramework/trompeloeil.hpp` file, so we might have had to\ncopy-paste like that.\n\nSeven years later, let's just make our lives easier.\n\nBug: https://github.com/rollbear/trompeloeil/issues/279\nChange-Id: I926951e106c8b2aa4eb5eb8e3481e046021ddcde","shortMessageHtmlLink":"tests: rely on doctest+trompeloeil integration from upstream"}},{"before":"6141d58212c764e4fe726dcdb47674e2b7c1eb51","after":"0d8e90770c9c162fca812bb1c1ce33cabb53754b","ref":"refs/heads/master","pushedAt":"2023-09-29T15:02:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"fix build with fmtlib==10\n\nSince fmt 10 we apparently should provide fmt::formatter specialization\nfor every type that fmt should format using operator<< [1].\n\n[1] https://fmt.dev/10.1.0/api.html#std-ostream-support\n\nChange-Id: I64fb5d580f5d4840e7c4b3d9743c7bed9e3bef1b","shortMessageHtmlLink":"fix build with fmtlib==10"}},{"before":"c852385d9f1610f30f3a4888115f05a7b10942c4","after":"6141d58212c764e4fe726dcdb47674e2b7c1eb51","ref":"refs/heads/master","pushedAt":"2023-09-29T12:43:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"Adapt to a breakage revert in upstream libyang\n\nThe identity values are now once again prefixed.\n\nThis (partially) reverts commit\n315838ea5f0efeba4d68647ff612fc4141eb1190.\n\nDepends-on: https://gerrit.cesnet.cz/c/CzechLight/dependencies/+/6490\nChange-Id: I1b1bc3381c36d47d7ebdc5cdf6aa65cb1711c6fe","shortMessageHtmlLink":"Adapt to a breakage revert in upstream libyang"}},{"before":"70dd828bfa968786b0ac68107d3ba2ecd591dc9a","after":"c852385d9f1610f30f3a4888115f05a7b10942c4","ref":"refs/heads/master","pushedAt":"2023-08-31T06:35:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"system: eth2 is a valid interface name on add-drop\n\nAdd-drop devices have three ethernet ports named eth{0,1,2}. However,\nvelia and YANG models for network did not allow an interface named eth2.\n\nChange-Id: Ide48c8f04f6ac1e1bed3b4d3b980c62131149ddb","shortMessageHtmlLink":"system: eth2 is a valid interface name on add-drop"}},{"before":"5927f8e143d2b7a0f4abdcedf3a3a1c5a9fb0043","after":"70dd828bfa968786b0ac68107d3ba2ecd591dc9a","ref":"refs/heads/master","pushedAt":"2023-08-30T09:12:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"clearfog: relax voltage thresholds a bit\n\nOne box currently reports 5.218V at the 5V rail of the PDU. My volt\nmeter shows 5.103V at the ATX connector. Let's not be too strict about\nthis and relax all of these voltage thresholds a little bit, it's still\nin-spec.\n\nChange-Id: Id628722c6a4c7b81056a0d8379a63170fc6a08f7","shortMessageHtmlLink":"clearfog: relax voltage thresholds a bit"}},{"before":"f3806b0583a7aa9c8156c378209d6ac064ac8c1f","after":"5927f8e143d2b7a0f4abdcedf3a3a1c5a9fb0043","ref":"refs/heads/master","pushedAt":"2023-07-13T21:54:31.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"Merge \"depend on fmt 8+\"","shortMessageHtmlLink":"Merge \"depend on fmt 8+\""}},{"before":"97b34f75d5b33d36846f645560e2b70b89eaf0d0","after":"f3806b0583a7aa9c8156c378209d6ac064ac8c1f","ref":"refs/heads/master","pushedAt":"2023-07-13T21:54:17.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"Merge \"docs: document installation requirements\"","shortMessageHtmlLink":"Merge \"docs: document installation requirements\""}},{"before":"4929d5cff5fa1ab191b023cb1da01afd0d8d7fb0","after":"97b34f75d5b33d36846f645560e2b70b89eaf0d0","ref":"refs/heads/master","pushedAt":"2023-07-13T20:31:54.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"Merge \"utils: fix not working discard-only call to utils::valuesPush\"","shortMessageHtmlLink":"Merge \"utils: fix not working discard-only call to utils::valuesPush\""}},{"before":"457016b7292c78d20c672ec3c134038f5c4ec764","after":"4929d5cff5fa1ab191b023cb1da01afd0d8d7fb0","ref":"refs/heads/master","pushedAt":"2023-07-12T19:16:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"CI: Switch to Fedora 38\n\nChange-Id: I87b3203d37671d6485f2616210513de7505d66e1\nDepends-on: https://gerrit.cesnet.cz/c/CzechLight/dependencies/+/6230","shortMessageHtmlLink":"CI: Switch to Fedora 38"}},{"before":"119a3ee91e74fe230283972d59cb91a476bd19e2","after":"457016b7292c78d20c672ec3c134038f5c4ec764","ref":"refs/heads/master","pushedAt":"2023-07-12T15:42:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"tests: increase sleep in health_systemd-units test\n\nI have seen the attached log output in a failed test. Honestly, I am not\nsure but it might be caused by a short sleep under asan/ubsan. The last\nlines of the log are not supposed to happen like this (unit4 shall not\nbe picked as active/running after its registration but it's state should\nbe failed/failed).\n\n 2023-07-12 10:45:24.650301 | w | 23.209 [3224 health T] Registered systemd unit watcher for 'unit1.service'\n 2023-07-12 10:45:24.650306 | w | 23.211 [3224 health D] Systemd unit 'unit1.service' changed state (active running)\n 2023-07-12 10:45:24.650311 | w | 23.223 [3224 health T] Registered systemd unit watcher for 'unit2.service'\n 2023-07-12 10:45:24.650322 | w | 23.224 [3224 health D] Systemd unit 'unit2.service' changed state (activating auto-restart)\n 2023-07-12 10:45:24.650327 | w | 23.234 [3224 health T] Registered systemd unit watcher for 'unit3.service'\n 2023-07-12 10:45:24.650331 | w | 23.236 [3224 health D] Systemd unit 'unit3.service' changed state (failed failed)\n 2023-07-12 10:45:24.650335 | w | 23.340 [3224 main E] dataFrom /ietf-alarms:alarms/alarm-inventory\n 2023-07-12 10:45:24.650339 | w | 23.356 [3253 health D] Systemd unit 'unit2.service' changed state (active running)\n 2023-07-12 10:45:24.650343 | w | [doctest] doctest version is \"2.4.11\"\n 2023-07-12 10:45:24.650347 | w | [doctest] run with \"--help\" for options\n 2023-07-12 10:45:24.650352 | w | /home/ci/src/cesnet-gerrit-public/CzechLight/velia/tests/health_systemd-units.cpp:79\n 2023-07-12 10:45:24.650357 | w | fakeAlarmServer.rpcCalled(alarmRPC, std::map{ {\"/sysrepo-ietf-alarms:create-or-update-alarm/alarm-text\", \"systemd unit state: (active, running)\"}, {\"/sysrepo-ietf-alarms:create-or-update-alarm/alarm-type-id\", \"velia-alarms:systemd-unit-failure\"}, {\"/sysrepo-ietf-alarms:create-or-update-alarm/alarm-type-qualifier\", \"\"}, {\"/sysrepo-ietf-alarms:create-or-update-alarm/resource\", \"unit1.service\"}, {\"/sysrepo-ietf-alarms:create-or-update-alarm/severity\", \"cleared\"} }) with.\n 2023-07-12 10:45:24.650362 | w | param _1 == /sysrepo-ietf-alarms:create-or-update-alarm\n 2023-07-12 10:45:24.650381 | w | param _2 == { { /sysrepo-ietf-alarms:create-or-update-alarm/alarm-text, systemd unit state: (active, running) }, { /sysrepo-ietf-alarms:create-or-update-alarm/alarm-type-id, velia-alarms:systemd-unit-failure }, { /sysrepo-ietf-alarms:create-or-update-alarm/alarm-type-qualifier, }, { /sysrepo-ietf-alarms:create-or-update-alarm/resource, unit1.service }, { /sysrepo-ietf-alarms:create-or-update-alarm/severity, cleared } }\n 2023-07-12 10:45:24.650395 | w |\n 2023-07-12 10:45:24.650399 | w | /home/ci/src/cesnet-gerrit-public/CzechLight/velia/tests/health_systemd-units.cpp:81\n 2023-07-12 10:45:24.650412 | w | fakeAlarmServer.rpcCalled(alarmRPC, std::map{ {\"/sysrepo-ietf-alarms:create-or-update-alarm/alarm-text\", \"systemd unit state: (activating, auto-restart)\"}, {\"/sysrepo-ietf-alarms:create-or-update-alarm/alarm-type-id\", \"velia-alarms:systemd-unit-failure\"}, {\"/sysrepo-ietf-alarms:create-or-update-alarm/alarm-type-qualifier\", \"\"}, {\"/sysrepo-ietf-alarms:create-or-update-alarm/resource\", \"unit2.service\"}, {\"/sysrepo-ietf-alarms:create-or-update-alarm/severity\", \"critical\"} }) with.\n 2023-07-12 10:45:24.650422 | w | param _1 == /sysrepo-ietf-alarms:create-or-update-alarm\n 2023-07-12 10:45:24.650441 | w | param _2 == { { /sysrepo-ietf-alarms:create-or-update-alarm/alarm-text, systemd unit state: (activating, auto-restart) }, { /sysrepo-ietf-alarms:create-or-update-alarm/alarm-type-id, velia-alarms:systemd-unit-failure }, { /sysrepo-ietf-alarms:create-or-update-alarm/alarm-type-qualifier, }, { /sysrepo-ietf-alarms:create-or-update-alarm/resource, unit2.service }, { /sysrepo-ietf-alarms:create-or-update-alarm/severity, critical } }\n 2023-07-12 10:45:24.650452 | w |\n 2023-07-12 10:45:24.650455 | w | /home/ci/src/cesnet-gerrit-public/CzechLight/velia/tests/health_systemd-units.cpp:83\n 2023-07-12 10:45:24.650459 | w | fakeAlarmServer.rpcCalled(alarmRPC, std::map{ {\"/sysrepo-ietf-alarms:create-or-update-alarm/alarm-text\", \"systemd unit state: (failed, failed)\"}, {\"/sysrepo-ietf-alarms:create-or-update-alarm/alarm-type-id\", \"velia-alarms:systemd-unit-failure\"}, {\"/sysrepo-ietf-alarms:create-or-update-alarm/alarm-type-qualifier\", \"\"}, {\"/sysrepo-ietf-alarms:create-or-update-alarm/resource\", \"unit3.service\"}, {\"/sysrepo-ietf-alarms:create-or-update-alarm/severity\", \"critical\"} }) with.\n 2023-07-12 10:45:24.650463 | w | param _1 == /sysrepo-ietf-alarms:create-or-update-alarm\n 2023-07-12 10:45:24.650468 | w | param _2 == { { /sysrepo-ietf-alarms:create-or-update-alarm/alarm-text, systemd unit state: (failed, failed) }, { /sysrepo-ietf-alarms:create-or-update-alarm/alarm-type-id, velia-alarms:systemd-unit-failure }, { /sysrepo-ietf-alarms:create-or-update-alarm/alarm-type-qualifier, }, { /sysrepo-ietf-alarms:create-or-update-alarm/resource, unit3.service }, { /sysrepo-ietf-alarms:create-or-update-alarm/severity, critical } }\n 2023-07-12 10:45:24.650471 | w |\n 2023-07-12 10:45:24.650475 | w | /home/ci/src/cesnet-gerrit-public/CzechLight/velia/tests/health_systemd-units.cpp:103\n 2023-07-12 10:45:24.650483 | w | fakeAlarmServer.rpcCalled(alarmRPC, std::map{ {\"/sysrepo-ietf-alarms:create-or-update-alarm/alarm-text\", \"systemd unit state: (active, running)\"}, {\"/sysrepo-ietf-alarms:create-or-update-alarm/alarm-type-id\", \"velia-alarms:systemd-unit-failure\"}, {\"/sysrepo-ietf-alarms:create-or-update-alarm/alarm-type-qualifier\", \"\"}, {\"/sysrepo-ietf-alarms:create-or-update-alarm/resource\", \"unit2.service\"}, {\"/sysrepo-ietf-alarms:create-or-update-alarm/severity\", \"cleared\"} }) with.\n 2023-07-12 10:45:24.650487 | w | param _1 == /sysrepo-ietf-alarms:create-or-update-alarm\n 2023-07-12 10:45:24.650492 | w | param _2 == { { /sysrepo-ietf-alarms:create-or-update-alarm/alarm-text, systemd unit state: (active, running) }, { /sysrepo-ietf-alarms:cr23.365 [3253 health D] Systemd unit 'unit3.service' changed state (active running)\n 2023-07-12 10:45:24.650513 | w | 23.387 [3253 health T] Systemd unit 'unit3.service' changed state but it is the same state as before (active, running)\n 2023-07-12 10:45:24.650517 | w | 23.391 [3253 health T] Registered systemd unit watcher for 'unit4.service'\n 2023-07-12 10:45:24.650521 | w | 23.406 [3253 health D] Systemd unit 'unit4.service' changed state (active running)\n 2023-07-12 10:45:24.650533 | w | terminate called after throwing an instance of 'doctest::detail::TestFailureException'\n\nChange-Id: I393ff4a935ce6929bca10795b615da8f87217cff","shortMessageHtmlLink":"tests: increase sleep in health_systemd-units test"}},{"before":"315838ea5f0efeba4d68647ff612fc4141eb1190","after":"119a3ee91e74fe230283972d59cb91a476bd19e2","ref":"refs/heads/master","pushedAt":"2023-06-15T12:41:13.776Z","pushType":"push","commitsCount":8,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"Merge changes I3b9ded84,I8b69dbdd,I729effa8,Ic537ffbf,Ieff1bf5b, ...\n\n* changes:\n hardware: set PDU voltage thresholds\n hardware: set PSU voltage thresholds\n hardware: set PSU input voltage thresholds\n hardware: set temperature thresholds for PDU and PSU\n hardware: set thresholds to PSU fan\n hardware: set thresholds for fans\n hardware: reformat FspYhPsu file","shortMessageHtmlLink":"Merge changes I3b9ded84,I8b69dbdd,I729effa8,Ic537ffbf,Ieff1bf5b, ..."}},{"before":"9af47396128643041cf6c98055f1ae1190987891","after":"315838ea5f0efeba4d68647ff612fc4141eb1190","ref":"refs/heads/master","pushedAt":"2023-06-15T12:29:40.096Z","pushType":"push","commitsCount":1,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"Adapt to changes in libyang and sysrepo-cpp\n\nUpstream libyang changed the way how identityrefs are handled, and\nsysrepo-cpp fancy prints errors.\n\nChange-Id: I73b8b0e444ee2187c1bdcf91037f47933bfc93ec\nDepends-on: https://gerrit.cesnet.cz/c/CzechLight/dependencies/+/6294","shortMessageHtmlLink":"Adapt to changes in libyang and sysrepo-cpp"}},{"before":"d2322ad553cc76ea73d89df86f9304a59242aefe","after":"9af47396128643041cf6c98055f1ae1190987891","ref":"refs/heads/master","pushedAt":"2023-05-31T12:20:02.411Z","pushType":"push","commitsCount":4,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"hardware: invoke sensor threshold crossing alarms\n\nEnable reporting alarms about crossing threshold values. We use alarms\ndefined in previous commits. We use same alarm for warning and critical\ncrossings of thresholds, only the severities change.\n\nThe only caveat here was a limitation of our RPC-based alarm API from\nsysrepo-ietf-alarmsd. The problem happens when the value changes\nstraight from low to high (or the other direction). However, the RPC\ncan only create/modify one alarm per one invocation so we can't clear\nthe low alarm and set the high alarm by one sysrepo edit (to make it\nappear as both changes happened at one time). Instead we first set the\nnew alarm and then clear the old alarm so that the resource is in\n\"alarmable\" state for the whole duration.\nPerhaps we should change the alarms RPC to accept a list of changes\ninstead of a single change.\n\nChange-Id: I28bafcc498e5887b70584d86aa1a0e6ac25f03ea","shortMessageHtmlLink":"hardware: invoke sensor threshold crossing alarms"}},{"before":"ad8169c5a8284f2d24a73b1b05c62c59c40e9220","after":"d2322ad553cc76ea73d89df86f9304a59242aefe","ref":"refs/heads/master","pushedAt":"2023-05-31T08:50:39.569Z","pushType":"push","commitsCount":4,"pusher":{"login":"jktjkt","name":"Jan Kundrát","path":"/jktjkt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2631925?s=80&v=4"},"commit":{"message":"hardware: enumerate registered sensors in IETFHardware\n\nFor the alarm-inventory listing we will need all the sensors that\nIETFHardware knows about and can possibly create alarm on them.\n\nChange-Id: I852d90dc76edad92544a6f91860c6076c52b6d95","shortMessageHtmlLink":"hardware: enumerate registered sensors in IETFHardware"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAD-ZsIWgA","startCursor":null,"endCursor":null}},"title":"Activity · CESNET/velia"}