)]}'
{
  "commit": "5839e97231f31fac6730a1d553fe7114d37a1521",
  "tree": "9a3da7bf6f6546c527750bd8e5c101ecb3824740",
  "parents": [
    "54c4f181c3195f4cc4e53aa5f8311ee161c75bbd"
  ],
  "author": {
    "name": "Serge Bazanski",
    "email": "serge@monogon.tech",
    "time": "Tue Nov 16 15:46:19 2021 +0100"
  },
  "committer": {
    "name": "Sergiusz Bazanski",
    "email": "serge@monogon.tech",
    "time": "Wed Feb 23 16:15:54 2022 +0000"
  },
  "message": "m/n/core/{curator,cluster}: refactor against new Consensus API\n\nThis updates the Curator and the Cluster Manager to use the new\nConsensus API, notably to use JoinParameters and ServiceHandle.Watch.\n\nUsing JoinParameters end-to-end requires piping them through a node\u0027s\nroles. For this we create a new ConsensusMember role and replicate all\nthe data from JoinParameters there.\n\nWe also move a whole bunch of logic that used to live in the Cluster\nManager\u0027s Status object away from it. Instead, now the Consensus\nServiceHandle is exposed directly to downstream users, providing the\nsame functionality.\n\nChange-Id: I8cfa247011554553836019f60ea172dd6069f49c\nReviewed-on: https://review.monogon.dev/c/monogon/+/522\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fe29abd5fc713a533ea1b841821eea05607387f6",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/cluster/cluster.go",
      "new_id": "ea3bfee49d432cb2321aacbe7be80585baa31e52",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/cluster/cluster.go"
    },
    {
      "type": "modify",
      "old_id": "d83913de772c1b58520a94176a6c814efd747b6c",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/cluster/cluster_bootstrap.go",
      "new_id": "c5167a587afdb277e929f3eb991a25b714f65ae0",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/cluster/cluster_bootstrap.go"
    },
    {
      "type": "modify",
      "old_id": "81db8c9bdd510c16ce1d0c81fc56c7579e7cdfa4",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/cluster/cluster_register.go",
      "new_id": "1a413c60177cfc5e153b3f34dcfee6b92d13d705",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/cluster/cluster_register.go"
    },
    {
      "type": "modify",
      "old_id": "481c81869d5977aefa7ebe8fcc1e138b07f1e77c",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/cluster/status.go",
      "new_id": "da898bfc19d96e11a0aa998250fd07330a3a534e",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/cluster/status.go"
    },
    {
      "type": "modify",
      "old_id": "f6e30e79746202f407db3a37da945b939fb9673a",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/consensus/BUILD.bazel",
      "new_id": "c4f65ec9fa75eede18002c484d223e2c63b7351f",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/consensus/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "f19e92381776f3c438e9d573618405dc9d97aacd",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/consensus/consensus.go",
      "new_id": "d4ab96436e6ff5a97e33f0607da679a66afd5921",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/consensus/consensus.go"
    },
    {
      "type": "modify",
      "old_id": "8028dd99ee2cd328af80a1c440370a49a1df9eec",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/consensus/consensus_test.go",
      "new_id": "b11a05306561f86e7f30887db8f995c6b5e92600",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/consensus/consensus_test.go"
    },
    {
      "type": "modify",
      "old_id": "04b13fafec86d4b3f65304d224563482348d7e89",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/consensus/status.go",
      "new_id": "43a70fddff0095874e85b67a1cac2c709d6388b5",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/consensus/status.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "627a2788fff5a37c7ba8448849557d608453d886",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/consensus/testhelpers.go"
    },
    {
      "type": "modify",
      "old_id": "3f39af312c730b3effe86af9aa24bea1a893409f",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/BUILD.bazel",
      "new_id": "571a7ca9d344fb95b7bbc2a7d0c315edcd8175e8",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "e1add0d0cbf6e3065688fd33c7f05be85b5791f6",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/bootstrap.go",
      "new_id": "d05a76449ef6587917cd84e02b008e80e1c60985",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/bootstrap.go"
    },
    {
      "type": "modify",
      "old_id": "6d16d62eec7d515a3444bd83ca14a87c2e326552",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/curator.go",
      "new_id": "e2472969c01b4c8eccc092526e4407957d5a0174",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/curator.go"
    },
    {
      "type": "modify",
      "old_id": "5529e5dea60d50c4ff4ae71e6621bfebf888eb49",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/curator_test.go",
      "new_id": "9212a524adb0e65fa82e69a3aff07330ce3d78a3",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/curator_test.go"
    },
    {
      "type": "modify",
      "old_id": "a1b9941a2250ce10fa3fcd3dab59002ab42b751e",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/impl_leader.go",
      "new_id": "75ede5d0e3c2cfef1eb1e6717f61e4d2ebf1e22f",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/impl_leader.go"
    },
    {
      "type": "modify",
      "old_id": "348ec2c81af54f29d3014a6778a39a7e07a3423f",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/impl_leader_curator.go",
      "new_id": "26f30042e9f2b7748a230bdfd3cb50e2d3222262",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/impl_leader_curator.go"
    },
    {
      "type": "modify",
      "old_id": "a893b874fb2b8dd33f55e3ea704cd8a1cd5c4258",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/impl_leader_test.go",
      "new_id": "e4829bf2295217e8ed511b0e4933aa4ff28cc065",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/impl_leader_test.go"
    },
    {
      "type": "modify",
      "old_id": "b0b8d5dcf48a78006879db624b4d21be7bbfe9e1",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/listener.go",
      "new_id": "d14285118d4d0aae056c2a06592f318c9e5e3f43",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/listener.go"
    },
    {
      "type": "modify",
      "old_id": "e4012cd0e382a744ce633588850b50a0f38b43fd",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/state_node.go",
      "new_id": "f20f981fe298bea3e3aa23b64b92a8023ee01881",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/state_node.go"
    },
    {
      "type": "modify",
      "old_id": "f14b589e936e9efc742adae5d44e33a19df92a40",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/main.go",
      "new_id": "34fa05e8c228a90c35d1e41f4ebc004e8bee4706",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/main.go"
    },
    {
      "type": "modify",
      "old_id": "57e6a7a97491159f7cc34cf5be9716155ec8b3ab",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/roleserve/roleserve.go",
      "new_id": "557ed688c2cbf4ca7f5a66c7f2767d04bc44947b",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/roleserve/roleserve.go"
    },
    {
      "type": "modify",
      "old_id": "63e6cfb5948c3835813b3e5a739f28bdb7464612",
      "old_mode": 33188,
      "old_path": "metropolis/proto/common/common.proto",
      "new_id": "07ff4601412600c89f80cb9e8654f694862bc893",
      "new_mode": 33188,
      "new_path": "metropolis/proto/common/common.proto"
    }
  ]
}
