)]}'
{
  "log": [
    {
      "commit": "8331f7ce83ebe7b1c9b2ca25610dfa7fab3a0e64",
      "tree": "fa8f12619efc434d25527bff18948c6aec562caf",
      "parents": [
        "bc538e4dc147558118094252f31b762d35392623"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Tue Aug 25 16:10:07 2020 +0200"
      },
      "committer": {
        "name": "garciadav",
        "email": "david.garcia@canonical.com",
        "time": "Fri Sep 11 14:34:31 2020 +0200"
      },
      "message": "Change add_relation function in libjuju.py to accept saas\n\nBefore, app_1, endpoint1, app_2, endpoint2 parameters were needed.\nNow we directly pass the endpoint names of the relation with the right format.\nIf \"app:endpoint\", it is understood that the endpoint it of a charm in the current model.\nIf \"name\", it is understood that the endpoint is a consumed endpoint from another model.\n\nThis function allows to cross-model-relate charms to external models\n\nChange-Id: I84ab45ba735a1960ab742d9ec731c357ec1042c6\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "bc538e4dc147558118094252f31b762d35392623",
      "tree": "7f030a7b791339ef9c7c4b41db987162904865e8",
      "parents": [
        "42f328a34a3ec7c066350de81e1331632a3fee92"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Tue Aug 25 15:22:30 2020 +0200"
      },
      "committer": {
        "name": "garciadav",
        "email": "david.garcia@canonical.com",
        "time": "Fri Sep 11 14:34:10 2020 +0200"
      },
      "message": "Add list_offers function to libjuju.py\n\nThis function return the list of offers available in a model\n\nChange-Id: Iebc9f55c79f27caab5b2f5a2874e1d2d93dc9bc4\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "42f328a34a3ec7c066350de81e1331632a3fee92",
      "tree": "f2116ce23f24c019addea804506f66c6540eca1e",
      "parents": [
        "f414edf8e9f6247e6ededbeed2318abe8027257a"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Tue Aug 25 15:03:01 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Fri Sep 11 14:33:20 2020 +0200"
      },
      "message": "Add models_exist function to libjuju.py\n\nThis function checks if a gives list of model names exist in the controller.\nAdditionally, it returns the list of unexisting models from the given list.\n\nChange-Id: I2a9290ef1a4ee1308626f3a31dba0a83127fdd8c\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "810459632a4fb28e1bde897aaef8775cba342b4b",
      "tree": "f428dd5dffde55cb33b541a5f20568644bb45003",
      "parents": [
        "0c478257d6bd8126b27d80f76d128c7cc21d0609"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Jul 16 12:37:13 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Aug 20 11:47:32 2020 +0200"
      },
      "message": "Make API Proxy optional and avoid replacing existing SSH Keys in the provisioner\n\n- Fixes bug 1154\n- Fixes bug 1083\nChange-Id: I0ee5e092f5ff205089c2b80ece9f4262572d58d2\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "7ff392f6b60850ac7408f96fd42ab16b005ec2bf",
      "tree": "9fd2dc9d16915371e3472311a9a01a8563baec6d",
      "parents": [
        "891732a9f4f1381a49e506cb9d39132b328aaa1c"
      ],
      "author": {
        "name": "Dominik Fleischmann",
        "email": "dominik.fleischmann@canonical.com",
        "time": "Tue Jul 07 13:11:19 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Aug 20 11:47:32 2020 +0200"
      },
      "message": "Add unit tests to N2VC refactor\n\nThis commit adds unit tests for the following\nmodules:\njuju_watcher.py 96% coverage\nlibjuju.py 72% coverage\nutils.py 100% coverage\n\nMinor libjuju.py fixes found with unit testing\nFix testing with tox\n\nChange-Id: I9f23ce2f18aac6765edfa955ed200802c27d9047\nSigned-off-by: Dominik Fleischmann \u003cdominik.fleischmann@canonical.com\u003e\n"
    },
    {
      "commit": "2cf8b2e0cd32ab2e8f3913ae9c5e156710465240",
      "tree": "431a8152d78b2d9581b430b8735eae1590cee241",
      "parents": [
        "d745e229c23053e565c89231c4e239186ba3e332"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Wed Jul 01 20:25:30 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Wed Jul 01 20:26:47 2020 +0200"
      },
      "message": "Update database with api_endpoints of VCA on initialization\n\nChange-Id: Id5666d8c93d357632efde93e8e60abafdad56e35\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "b8ff39bee1fffc09564f911ab522269306163f84",
      "tree": "327d893d3b4dd535780474633bf13f9a2fb00a28",
      "parents": [
        "7ace6faf03350236447f49ea6435e271a3f84aae"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Jun 25 17:18:31 2020 +0200"
      },
      "committer": {
        "name": "garciadav",
        "email": "david.garcia@canonical.com",
        "time": "Tue Jun 30 08:12:40 2020 +0200"
      },
      "message": "Fix model deletion\n\n- Model deletion is failing with Juju 2.8\n\nChange-Id: I6d7fc85ac9166a4eb7ff5851c231490400d64787\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "b95133489d1cd16e1692085b1193d24d52c858fc",
      "tree": "59b6bc32b3061d9f221283541f63d324f3ebeb7b",
      "parents": [
        "f8a9d46e66f1222d7aefdf5a641e4490ef1a40b8"
      ],
      "author": {
        "name": "Dominik Fleischmann",
        "email": "dominik.fleischmann@canonical.com",
        "time": "Tue Jun 09 11:57:14 2020 +0200"
      },
      "committer": {
        "name": "Dominik Fleischmann",
        "email": "dominik.fleischmann@canonical.com",
        "time": "Mon Jun 29 13:28:21 2020 +0200"
      },
      "message": "8716 - K8s Proxy Charms\n\nThis commit enables the possibility to deploy\nProxy Charms on Kubernetes.\n\nIt depends on a new LCM environment variable\ncalled `k8s_cloud` which will state the k8s name\nin VCA that will be used for deploying the proxy\ncharms.\n\nIt will also check the k8s model for status\nand delete the k8s model if it exists.\n\nFinally it will now retry the verify ssh\ncredential action when the action fails, instead\nof only retrying when a excpetion is launched.\n\nChange-Id: I09510dcec00f747da945f88d54c2e25c1402d56c\nSigned-off-by: Dominik Fleischmann \u003cdominik.fleischmann@canonical.com\u003e\n"
    },
    {
      "commit": "f8a9d46e66f1222d7aefdf5a641e4490ef1a40b8",
      "tree": "1b65dfcce22b5a078452f9e9170cf8668c37015c",
      "parents": [
        "2f66c4df28308b5b2747bb207e7797932e502436"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Wed Mar 25 18:19:02 2020 +0100"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Fri Jun 26 16:36:47 2020 +0200"
      },
      "message": "Feature 8720: Add scale support\n\nChange-Id: Ie94521fb6a1ce0a765f9558de749f4f438cf8b93\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "2f66c4df28308b5b2747bb207e7797932e502436",
      "tree": "4dd7b55986e55b0cf59fab4b36bf27f589b65262",
      "parents": [
        "41b40a10384cd725be87f1800242cc8eba38e991"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Fri Jun 19 11:40:18 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Fri Jun 26 13:40:16 2020 +0200"
      },
      "message": "Feature 8681: Add VCA HA capabilities\n\n- juju watcher: fix exception handling when websocket is closed\n- libjuju.py:\n  - Get vca endpoints from database (if exists)\n  - Update vca endpoints in database\n  - Get controller per operation (remove controller from class attribute)\n  - Add health check: Every 5 minutes the connection to the controller will be tested.\n- Dockerfile: update it to 18.04\n\nChange-Id: Ifa0a3a705d48fd736a9634b0722bdc914003b497\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "4fee80e46dff88732b7927e502007203fcd8a15c",
      "tree": "cafcf533d4c649c7a3b30e2f699c52fc0e138f27",
      "parents": [
        "d3de135758e35c4d511b067c6ebeea378f63d79e"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Wed May 13 12:18:38 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Jun 18 14:21:31 2020 +0200"
      },
      "message": "Initial refactor of N2VC\n\n- Add libjuju.py to encapsulate all code related with the communication using libjuju\n- Replace juju_observer with juju_watcher\n- Add utils with some utilities like EntityType, FinalStatus, and JujuStatusToOSM\n\nChange-Id: I5d46ad65d6ed37b49bf2504209bfdd46d1b5a7e4\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    }
  ]
}
