)]}'
{
  "commit": "32b192929c34e408bec6286de471313a4cfce5e2",
  "tree": "5a05f888581a3749ede7f09340119171422150e2",
  "parents": [
    "08cb464d60f859ad029a52abe161cae02a0bf405"
  ],
  "author": {
    "name": "Mateusz Zalega",
    "email": "mateusz@monogon.tech",
    "time": "Tue May 17 13:26:55 2022 +0200"
  },
  "committer": {
    "name": "Mateusz Zalega",
    "email": "mateusz@monogon.tech",
    "time": "Fri May 27 10:24:27 2022 +0000"
  },
  "message": "m/n/core: implement node heartbeats\n\nThis change introduces cluster member node health monitoring by\nimplementing a bidirectional RPC stream the nodes will periodically\nsend their heartbeat updates through. Management.GetNodes call was\nmodified to include the new node health information.\n\nRelevant data available through the management API is non-persistent,\nand stored within current Curator leader\u0027s local state. As such, it\nwill become briefly unavailable in an event of leader re-election. The\ninformation returned, however, is guaranteed to be correct.\n\nChange-Id: I916ac48f496941a7decc09d672ecf72a914b0d88\nReviewed-on: https://review.monogon.dev/c/monogon/+/694\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d6894a26d8a0c54c7b1c7a0ded6c986427cad49e",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/impl_leader.go",
      "new_id": "095ee894a010bcc7f07bb02a58eb624564f32793",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/impl_leader.go"
    },
    {
      "type": "modify",
      "old_id": "6f48d457be5340ff4afe3e15597629ffab33d3ba",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/impl_leader_curator.go",
      "new_id": "296e8562505ae64ace9c2ff9bddbaebf1ee4e24c",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/impl_leader_curator.go"
    },
    {
      "type": "modify",
      "old_id": "c24a53da3774228ed3d758f69caffe0653c416e2",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/impl_leader_management.go",
      "new_id": "86a1af6e38812861f384fb9bd23061f518eafe34",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/impl_leader_management.go"
    },
    {
      "type": "modify",
      "old_id": "fffe69ce8e2fe085e453bf6234d8921da1c4cb93",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/impl_leader_test.go",
      "new_id": "9fa6bb418f189b4e9a3daa392c83ae05389d1d33",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/impl_leader_test.go"
    },
    {
      "type": "modify",
      "old_id": "425051f98d1e04795f94161ae400f15f230276b6",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/proto/api/api.proto",
      "new_id": "01998f9e69845356d3a9b76aa4d112dbdb66bb9d",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/proto/api/api.proto"
    },
    {
      "type": "modify",
      "old_id": "413d9a0d137c4e091f68965e2803bff3357d9869",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/roleserve/BUILD.bazel",
      "new_id": "3ac818d4cdd89a61cbe7903a14690aaf864ce29e",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/roleserve/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "667564da1995e31486b2ba4103bcf21ad6263c63",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/roleserve/roleserve.go",
      "new_id": "82e7cca327c993dc3885cbe1b55311a77c933df7",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/roleserve/roleserve.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "db068453323fc7bf550b09b9c8820c38c497679a",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/roleserve/worker_heartbeat.go"
    },
    {
      "type": "modify",
      "old_id": "ba50849ebc6d500f446affee2b0f192933060c2e",
      "old_mode": 33188,
      "old_path": "metropolis/proto/api/management.proto",
      "new_id": "88cab77c6fb495dabe55f91435287dc554074d66",
      "new_mode": 33188,
      "new_path": "metropolis/proto/api/management.proto"
    },
    {
      "type": "modify",
      "old_id": "c0af1fd4825f22c019dea941e8c6c384ac5f67f7",
      "old_mode": 33188,
      "old_path": "metropolis/test/e2e/main_test.go",
      "new_id": "89df286630f9539861bd0b7580cebdde7bf0ca47",
      "new_mode": 33188,
      "new_path": "metropolis/test/e2e/main_test.go"
    }
  ]
}
