)]}'
{
  "log": [
    {
      "commit": "8180de90e9b90601cb87feac51426e7f39abc747",
      "tree": "dfe750f650d7d3b16972f541e521d3e01f3898f2",
      "parents": [
        "7c38eef75b395b0515e34e2059091f8b0f8d3daf"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu May 11 19:45:37 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue May 30 20:37:36 2023 +0000"
      },
      "message": "c/s/e/wrapngo: add more api wrappers\n\nChange-Id: I826a799cccc609d95b1ea3bd933b019558690c59\nReviewed-on: https://review.monogon.dev/c/monogon/+/1556\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "dea7cd0e3d0aeee571f25209d76b52cc495a389f",
      "tree": "9aa755c3488f2db6f15327a3f0feef7147a434a3",
      "parents": [
        "c50f69427b1bb1816fa1ae8ecbdd1f00651f1e7f"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Apr 26 13:58:17 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Apr 27 12:34:43 2023 +0000"
      },
      "message": "cloud/shepherd: add equinix API metrics\n\nThis adds the following signals to our interaction with the Equinix API:\n\n 1. Latency\n 2. Traffic\n 3. Errors\n 4. Saturation\n\nChange-Id: Ic2d5e36a7a26ab906ac1c2fa6741ebf86b9e551a\nReviewed-on: https://review.monogon.dev/c/monogon/+/1606\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "afd3cf8bb5c99e9a8db23a5f435f7c1e31c96f91",
      "tree": "092e34305b19af962cac644a1551822c436f1060",
      "parents": [
        "fac487481bf56e9510ff9a528c6729b2427d42b1"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Apr 19 17:43:46 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Apr 25 11:56:50 2023 +0000"
      },
      "message": "cloud/shepherd/equinix: update provider extra data\n\nThis adds a new sub-component to the Equinix Shepherd, the Updater.\n\nThe Updater periodically scans all machines backed by the Equinix\nprovider in the BMDB and queries the Equinix API for their status. The\nstatus then populates the new \u0027Provided\u0027 row data.\n\nChange-Id: I99657545aabfb13d71e165d36ce549c852feaf49\nReviewed-on: https://review.monogon.dev/c/monogon/+/1578\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "4969fd72246bf4d50436a22acbb1bdcdaa72a0e9",
      "tree": "5373a7a45fe6920443aa3639ce72aaa5c34c8ec2",
      "parents": [
        "1cd2696d61071b072a24dbe127d9d95874377d66"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Apr 19 17:43:12 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Apr 20 08:47:22 2023 +0000"
      },
      "message": "cloud/shepherd/equinix/wrapngo: allow specifying options when getting device\n\nChange-Id: Ib1f4a88d1a45d9c0da1c56bd8ee21bf18302d9f8\nReviewed-on: https://review.monogon.dev/c/monogon/+/1576\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "ae00468363b0006ecf1ae90ed3833bbe54820df5",
      "tree": "3dff4cdf264bed17e66f7aed2c8085b67738104d",
      "parents": [
        "86a714d6e81bb524dc59fda7baa63b45e7180489"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Apr 18 13:28:48 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Apr 19 13:55:01 2023 +0000"
      },
      "message": "cloud/shepherd/equinix: implement recoverer\n\nThis implements basic recovery functionality for \u0027stuck\u0027 agents. The\nshepherd will notice machines with a agent that either never sent a\nheartbeat, or stopped sending heartbeats, and will remove their agent\nstarted tags and reboot the machine. Then, the main agent start logic\nshould kick in again.\n\nMore complex recovery flows can be implemented later, this will do for\nnow.\n\nChange-Id: I2c1b0d0465e4e302cdecce950a041581c2dc8548\nReviewed-on: https://review.monogon.dev/c/monogon/+/1560\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "0d58cb9592852ddb9cc767a33958c65b5eab8deb",
      "tree": "dffec8a2fc8278408f3d22e35588b3ce024044cf",
      "parents": [
        "d1b174725e1fd9c40201bbd6047f6bc0755c8e34"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Apr 17 18:38:56 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Apr 18 16:13:46 2023 +0000"
      },
      "message": "c/shepherd/equinix/wrapngo: isolate live API tests\n\nSo far all wrapngo tests were fired directly against a live Equinix\nendpoint, and the entire test harness was skipped if such an endpoint\nwas not configured/available.\n\nThis consolidates all of the live tests into a single test with\nsub-tests, and only that test is skipped if endpoint data is not\nprovided.\n\nThis will in turn allow us to have some unit/regression tests for\nwrapngo that do not need to contact the live Equinix API.\n\nChange-Id: I2590a41b935b5d5417520d7510025f6289cece63\nReviewed-on: https://review.monogon.dev/c/monogon/+/1557\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "d1b174725e1fd9c40201bbd6047f6bc0755c8e34",
      "tree": "ea8bc7eddf418d30ed27e7b1847d0152b70abbb3",
      "parents": [
        "ea94663006eb84ab97d2097e989d5169c75deb2a"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 18 03:49:12 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 18 14:21:21 2023 +0000"
      },
      "message": "c/s/e/wrapngo: workaround for unstable pagination\n\nThe packngo API doesnt have a stable pagination. This leads to duplicate entries and invalid lists. To increase the chance of having a correct response, we sort the list by hostname and pray to the RNG gods\n\nChange-Id: Ie31b823eac8a3fef260ea56861894976b3354d71\nReviewed-on: https://review.monogon.dev/c/monogon/+/1555\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "b78919e7708904f042756e280015786caecf668c",
      "tree": "1593fe40c696e32ebcb6c509d34cb279ea4c08aa",
      "parents": [
        "e4a4ce1dbbc8abc8a0817f80fcb27437a9e6ca63"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Apr 17 15:51:58 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Apr 18 07:40:55 2023 +0000"
      },
      "message": "cloud/shepherd/wrapngo: don\u0027t crash on remote API errors\n\nA regression test for this will come in a subsequent CL.\n\nChange-Id: Ic2c1f872bcea510bef7adbdb6ed86f504733ecca\nReviewed-on: https://review.monogon.dev/c/monogon/+/1549\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "7448f28cad048a5a7c2fad432dbe31ef91a73867",
      "tree": "17581107a23c8b0002b33b44015ba90ab0a886bf",
      "parents": [
        "9eb903d18540192d22c626e80745eed0630930e6"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 14:15:51 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 23 09:37:40 2023 +0000"
      },
      "message": "cloud/equinix/wrapngo: implement configurable parallelism\n\nSetting this to a value higher than \u00271\u0027 is beneficial in case we want to\ncall some fast endpoints while we\u0027re executing a long-standing hardware\nreservation list call. This can happen in the Equinix Shepherd.\n\nChange-Id: I57cf416de1e5fe23cb28248ddf8bb1b2ad73b6a8\nReviewed-on: https://review.monogon.dev/c/monogon/+/1134\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "6a058e7e0c84306cb0470f2641102a284f98fc0b",
      "tree": "13b4ef9a4db8275a51bbaa5026f5d926efe67b3f",
      "parents": [
        "424e201b27ce334714d870c0ad0c6e9046a14981"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Wed Nov 30 18:03:07 2022 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 12:12:19 2023 +0000"
      },
      "message": "cloud/shepherd/equinix/wrapngo: init\n\nThis adds a wrapper extending packngo for use with the upcoming\nShepherd implementation.\n\nSupersedes: https://review.monogon.dev/c/monogon/+/989\nChange-Id: I55d1a609a8b5241704c5fe4ce8c2294122cfa0c8\nReviewed-on: https://review.monogon.dev/c/monogon/+/1128\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    }
  ]
}
