)]}'
{
  "commit": "f0b4da54afc17f4b2b1c31ddb9433ee888aea699",
  "tree": "a4ef4b8154c4024714209710696310bfd7bc2764",
  "parents": [
    "35e43d133a16750adfa1683473f5c2648a010b1a"
  ],
  "author": {
    "name": "Serge Bazanski",
    "email": "serge@nexantic.com",
    "time": "Mon Jun 21 20:05:59 2021 +0200"
  },
  "committer": {
    "name": "Sergiusz Bazanski",
    "email": "serge@nexantic.com",
    "time": "Wed Jul 07 13:31:45 2021 +0000"
  },
  "message": "m/n/core/curator: implement leader and Node/PKI state\n\nThis implements actual Curator logic for nodes and PKI. These will\nreplace the cluster manager\u0027s equivalent logic.\n\nThere are two entry points to this logic:\n\n - the gRPC service\u0027s Watch method for accessing node status\n - bootstrap logic to create a node when the cluster manager bootstraps\n   the cluster.\n\nTest plan: a followup CR will introduce tests for the Curator - more\ngranular than the full E2E suite. DO NOT MERGE UNTIL THEN, as this is\ncritical code.\n\nChange-Id: I8c40a821b846012b90cf9a5df27901d1b49f388c\nReviewed-on: https://review.monogon.dev/c/monogon/+/186\nReviewed-by: Lorenz Brun \u003clorenz@nexantic.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f52233df75c901ad66158238b98166d40cb5a05e",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/BUILD.bazel",
      "new_id": "aa9eb95d6dd29342979c0dfd6c7511156a232573",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "253ba72452d3519285b1475877d71dfd3b45ae4f",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/bootstrap.go"
    },
    {
      "type": "modify",
      "old_id": "2f19fd5f6e6532725ab38b2d55f0729380c63616",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/impl_leader.go",
      "new_id": "885dee00fabb991b7b537d49bdd7a4c2d1bacd36",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/impl_leader.go"
    },
    {
      "type": "modify",
      "old_id": "29b1167c6811e1d0f705360e241aa561f125c275",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/listener.go",
      "new_id": "ae158b937fe6ee9e344306e97336043e89421af8",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/listener.go"
    },
    {
      "type": "modify",
      "old_id": "d926d560ea9efa8e6f1f78c72978796a4eef42c0",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/proto/private/BUILD.bazel",
      "new_id": "e3c032d33c85545e902503eb4d01e18fa09a515e",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/proto/private/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5ad01c4a29f189ecb4f793c69e5adc3b572b778c",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/proto/private/storage.proto"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6668b197bf47f3f6af72dcece289e8928cd91a1a",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/state_node.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ce28aac6b0da7ca72190e77e0619fd3a9c753af9",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/state_pki.go"
    }
  ]
}
