)]}'
{
  "log": [
    {
      "commit": "1c1a25631024278b7caeb6a1dde34d5de326df6c",
      "tree": "1365985043a035fda1ce576f3695f58f4365ab9d",
      "parents": [
        "3bc59c1786633d06fd9d8016e3ba36a611e635f4"
      ],
      "author": {
        "name": "Gabriel Cuba",
        "email": "gcuba@whitestack.com",
        "time": "Mon Nov 20 01:08:39 2023 -0500"
      },
      "committer": {
        "name": "cubag",
        "email": "gcuba@whitestack.com",
        "time": "Fri Dec 01 07:54:40 2023 +0100"
      },
      "message": "Feature 10997: Adds helm OCI registry login\n\nChange-Id: I1bc12bdf52f082900c3388d03c31e52841017b94\nSigned-off-by: Gabriel Cuba \u003cgcuba@whitestack.com\u003e\n"
    },
    {
      "commit": "3bc59c1786633d06fd9d8016e3ba36a611e635f4",
      "tree": "7eb1a2aea0953187f853748675a4429ae36f4b7f",
      "parents": [
        "dfb624e236597b96658da80fe7436b0f92416cc3"
      ],
      "author": {
        "name": "almagia",
        "email": "silvia.almagia@etsi.org",
        "time": "Thu Nov 30 19:50:02 2023 +0200"
      },
      "committer": {
        "name": "almagia",
        "email": "silvia.almagia@etsi.org",
        "time": "Thu Nov 30 19:50:02 2023 +0200"
      },
      "message": "Revert \"Revert \"Feature 11002: Deprecate helmv2\"\"\n\nThis reverts commit dfb624e236597b96658da80fe7436b0f92416cc3.\n\nTSC request on 30.11\n\nChange-Id: Ieb1e64d052c913b8aaedfe07620245054aa82a08\n"
    },
    {
      "commit": "dfb624e236597b96658da80fe7436b0f92416cc3",
      "tree": "8d3b669db05c1986ba7cf9dc9281539e9d772146",
      "parents": [
        "c81293be8ba0656a5bc7994e4333fedf73b527ff"
      ],
      "author": {
        "name": "cubag",
        "email": "gcuba@whitestack.com",
        "time": "Wed Nov 29 23:07:12 2023 +0200"
      },
      "committer": {
        "name": "cubag",
        "email": "gcuba@whitestack.com",
        "time": "Wed Nov 29 23:07:12 2023 +0200"
      },
      "message": "Revert \"Feature 11002: Deprecate helmv2\"\n\nThis reverts commit c81293be8ba0656a5bc7994e4333fedf73b527ff.\n\nChange-Id: I89c7d1009c4f059ba497a76557f045434a1d2186\nSigned-off-by: Gabriel Cuba \u003cgcuba@whitestack.com\u003e\n"
    },
    {
      "commit": "c81293be8ba0656a5bc7994e4333fedf73b527ff",
      "tree": "7eb1a2aea0953187f853748675a4429ae36f4b7f",
      "parents": [
        "0571e0ef3ff495bce12dd26d3843fe2ff76a3132"
      ],
      "author": {
        "name": "Luis Vega",
        "email": "lvega@whitestack.com",
        "time": "Fri Oct 13 14:44:26 2023 +0000"
      },
      "committer": {
        "name": "Luis Vega",
        "email": "lvega@whitestack.com",
        "time": "Fri Oct 13 14:44:26 2023 +0000"
      },
      "message": "Feature 11002: Deprecate helmv2\n\nChange-Id: I639916d8aeef5a984a4fda2643b68e5bb589b19e\nSigned-off-by: Luis Vega \u003clvega@whitestack.com\u003e\n"
    },
    {
      "commit": "4ab954c482f704ac8b7291bc80c3f362f3c13388",
      "tree": "c36666bd436c16cb704299fae70760269d015b06",
      "parents": [
        "de6984b39684c3a8587ea4111c757ab878942aba"
      ],
      "author": {
        "name": "Dario Faccin",
        "email": "dario.faccin@canonical.com",
        "time": "Fri Jun 16 10:21:38 2023 +0200"
      },
      "committer": {
        "name": "calvinosanc1",
        "email": "guillermo.calvino@canonical.com",
        "time": "Thu Jul 06 12:16:42 2023 +0200"
      },
      "message": "Remove EE Charms when VNF has only day-1 operations\n\nAdd paramter in EE deletion method to allow deletion of a single\napplication instead of the whole model\n\nChange-Id: I4d1ebdd0c44c21a01c4d1e0e1f10b63ac983d787\nSigned-off-by: Dario Faccin \u003cdario.faccin@canonical.com\u003e\n"
    },
    {
      "commit": "d21509c14b0bef94d5ace71a4b5c7592851b453d",
      "tree": "20bb6157744a98bbf58caeb2494fffd047824197",
      "parents": [
        "5f069332606e512f74791c6497af40326b611344"
      ],
      "author": {
        "name": "Gabriel Cuba",
        "email": "gcuba@whitestack.com",
        "time": "Wed May 17 01:30:15 2023 -0500"
      },
      "committer": {
        "name": "Gabriel Cuba",
        "email": "gcuba@whitestack.com",
        "time": "Mon May 29 00:48:55 2023 -0500"
      },
      "message": "Feature 10948: Set labels to new namespaces\n\nChange-Id: I0f40d198d398c79f3e9badd8def8f884f60fb7f8\nSigned-off-by: Gabriel Cuba \u003cgcuba@whitestack.com\u003e\n"
    },
    {
      "commit": "5f069332606e512f74791c6497af40326b611344",
      "tree": "2d074ceaa579fa23a0d753e2a16d54d1d77ec9c9",
      "parents": [
        "fb79786bd154505ea9c7578e6247dea565ea9c41"
      ],
      "author": {
        "name": "Gabriel Cuba",
        "email": "gcuba@whitestack.com",
        "time": "Tue Apr 25 19:26:19 2023 -0500"
      },
      "committer": {
        "name": "Gabriel Cuba",
        "email": "gcuba@whitestack.com",
        "time": "Mon May 22 15:31:30 2023 -0500"
      },
      "message": "Feature 10957: Add methods for creation of namespace, secret and RBAC\n\nChange-Id: Iada9d3caa9e8a926e421fe96894be618f36fb37e\nSigned-off-by: Gabriel Cuba \u003cgcuba@whitestack.com\u003e\n"
    },
    {
      "commit": "2c3c146360fe5ce949a81e0e55e0e62e7f805d0b",
      "tree": "1e7c860839325cbd69e4f5ca5fef2843873787a9",
      "parents": [
        "fcbd881700fec0522c81e8b32e3a982fb3ccbd80"
      ],
      "author": {
        "name": "Mark Beierl",
        "email": "mark.beierl@canonical.com",
        "time": "Mon May 15 16:17:02 2023 -0400"
      },
      "committer": {
        "name": "Mark Beierl",
        "email": "mark.beierl@canonical.com",
        "time": "Mon May 15 16:20:10 2023 -0400"
      },
      "message": "Python3.10/Ubuntu 22.04 part 2\n\nRemoval of loop from all methods\n\nChange-Id: I05bfe90f82b8c8acba3172de89c7d8e0ee08402b\nSigned-off-by: Mark Beierl \u003cmark.beierl@canonical.com\u003e\n"
    },
    {
      "commit": "1138656db9f4f3bce15ec609d5448474d1e0cea1",
      "tree": "3b71429e7efe13006dd2802c7ff6505b89f11e74",
      "parents": [
        "fedf9150c2041deb65fc54944e9be245e4b6fd21"
      ],
      "author": {
        "name": "Gulsum Atici",
        "email": "gulsum.atici@canonical.com",
        "time": "Sat Jan 28 23:55:19 2023 +0300"
      },
      "committer": {
        "name": "calvinosanc1",
        "email": "guillermo.calvino@canonical.com",
        "time": "Tue Feb 07 16:37:03 2023 +0100"
      },
      "message": "Feature 10950: Replace pycrypto with pycryptodome\n\nRemove the encryption methods from N2VC and import them from common\n\nChange-Id: Ia2c9a305a27cf6c9daaa14edab5319c735e33835\nSigned-off-by: Gulsum Atici \u003cgulsum.atici@canonical.com\u003e\n"
    },
    {
      "commit": "fedf9150c2041deb65fc54944e9be245e4b6fd21",
      "tree": "548a21c1a8dd279c2d08c4ed9b8dde27c4278c84",
      "parents": [
        "2b2dc52b95660e3b4a5564914aa1f490d88a2b9f"
      ],
      "author": {
        "name": "Patricia Reinoso",
        "email": "patricia.reinoso@canonical.com",
        "time": "Tue Jan 17 08:39:44 2023 +0000"
      },
      "committer": {
        "name": "reinosop",
        "email": "patricia.reinoso@canonical.com",
        "time": "Thu Feb 02 11:07:39 2023 +0100"
      },
      "message": "Feature 10974: Add juju instantiation params.\n\nInstantiation paramaters are added using\na bundle overlay.\n\nBundle overlay is passed to juju library at the\nmoment of deployment.\n\nBundle overlay is a YAML file created at instantiation.\n\nWe check that all the applications in overlay already\nexist in original bundle\n\nChange-Id: Idbc7d2bc02915a1023e213e26a01531d93f24798\nSigned-off-by: Patricia Reinoso \u003cpatricia.reinoso@canonical.com\u003e\n"
    },
    {
      "commit": "2b2dc52b95660e3b4a5564914aa1f490d88a2b9f",
      "tree": "97bee9432869e00eb5534653fb894c142065461a",
      "parents": [
        "03241da419ceb2bb6892b749dee9a1444a80bb28"
      ],
      "author": {
        "name": "Patricia Reinoso",
        "email": "patricia.reinoso@canonical.com",
        "time": "Wed Feb 01 16:14:39 2023 +0000"
      },
      "committer": {
        "name": "Patricia Reinoso",
        "email": "patricia.reinoso@canonical.com",
        "time": "Wed Feb 01 16:14:39 2023 +0000"
      },
      "message": "Reformat files according to new black validation\n\nChange-Id: Ifebf4e97ae22b0131d0e84c58a18468b454ee6a7\nSigned-off-by: Patricia Reinoso \u003cpatricia.reinoso@canonical.com\u003e\n"
    },
    {
      "commit": "a07f69539ffcb24fd44371960be23ab9e4a32573",
      "tree": "edefca3ae6308f8b268eeca8f1f7c6e664a73975",
      "parents": [
        "085942e581b846f59ac6cb94b0e6ff72663d86e2"
      ],
      "author": {
        "name": "Patricia Reinoso",
        "email": "patricia.reinoso@canonical.com",
        "time": "Wed Jan 04 10:40:10 2023 +0000"
      },
      "committer": {
        "name": "Patricia Reinoso",
        "email": "patricia.reinoso@canonical.com",
        "time": "Thu Jan 05 12:22:54 2023 +0000"
      },
      "message": "Fix Basic_22 robot test\n\nWhen adding a juju relation that already exists\na JujuAPIError exception is raised.\n\nThe \"already exists\" message is contained in\nJujuAPIError.error_code field.\n\nException is handle in an except block and\nis not propagated.\n\nChange-Id: I0ac0d875cb9580959a474e486595144473873d24\nSigned-off-by: Patricia Reinoso \u003cpatricia.reinoso@canonical.com\u003e\n"
    },
    {
      "commit": "085942e581b846f59ac6cb94b0e6ff72663d86e2",
      "tree": "96a6a98080843fbebf83accfccc6c9278b7f00ca",
      "parents": [
        "fb03e9084403d6fc2adf427a371ff9827f3c1238"
      ],
      "author": {
        "name": "Patricia Reinoso",
        "email": "patricia.reinoso@canonical.com",
        "time": "Mon Dec 05 16:55:51 2022 +0000"
      },
      "committer": {
        "name": "Patricia Reinoso",
        "email": "patricia.reinoso@canonical.com",
        "time": "Wed Dec 07 14:34:45 2022 +0000"
      },
      "message": "Fix cross-model relation condition\n\nProvider and requirer are in different\ncontrollers.\n\nChange-Id: Icd6d82571d62c562517292d368241244cbe06f3e\nSigned-off-by: Patricia Reinoso \u003cpatricia.reinoso@canonical.com\u003e\n"
    },
    {
      "commit": "fb03e9084403d6fc2adf427a371ff9827f3c1238",
      "tree": "e84565ae643426d81515d3c939737a71c2ba5c37",
      "parents": [
        "085fa8d4658a9b621354d5a08853086e2696abdc"
      ],
      "author": {
        "name": "Gabriel Cuba",
        "email": "gcuba@whitestack.com",
        "time": "Fri Oct 07 11:40:03 2022 -0500"
      },
      "committer": {
        "name": "garciadeblas",
        "email": "gerardo.garciadeblas@telefonica.com",
        "time": "Fri Nov 25 12:47:27 2022 +0100"
      },
      "message": "Feature 10947: Add methods to create certificates\n\nChange-Id: Icc85c4b23e3f22c4b1b34dfd86e90cb0b53819d8\nSigned-off-by: Gabriel Cuba \u003cgcuba@whitestack.com\u003e\n"
    },
    {
      "commit": "085fa8d4658a9b621354d5a08853086e2696abdc",
      "tree": "c4e7bccaa7c06ebd0f40fe646c5814e3d2a77cf9",
      "parents": [
        "2e69dc6c54da708a5ea45763eca0cf65785fb7dc"
      ],
      "author": {
        "name": "Gabriel Cuba",
        "email": "gcuba@whitestack.com",
        "time": "Mon Oct 10 12:13:55 2022 -0500"
      },
      "committer": {
        "name": "Gabriel Cuba",
        "email": "gcuba@whitestack.com",
        "time": "Wed Nov 23 11:35:52 2022 -0500"
      },
      "message": "Feature 10956: Add namespace and force arguments to helm upgrade\n\nChange-Id: I8e37e43b72c5f7f63c4b9f49542905727610fa5a\nSigned-off-by: Gabriel Cuba \u003cgcuba@whitestack.com\u003e\n"
    },
    {
      "commit": "0a2060ce3db8e457c732c83b87030923cbac6e11",
      "tree": "74f2a2be025bef716b22198cc085dee79a5a5cdb",
      "parents": [
        "0631399f81ccd9823aa611911ecf2fd1cbcd4c0c"
      ],
      "author": {
        "name": "Pedro Escaleira",
        "email": "escaleira@av.it.pt",
        "time": "Thu Jul 07 22:18:35 2022 +0100"
      },
      "committer": {
        "name": "calvinosanc1",
        "email": "guillermo.calvino@canonical.com",
        "time": "Mon Nov 14 18:19:23 2022 +0100"
      },
      "message": "Bug 2104 fixed\n\n- Added the --reuse-values flag to the upgrade command;\n- Also, removed the duplicated code from the _get_upgrade_scale_command\n  method, and not this method only calls the _get_upgrade_command to get\n  the command to upgrade/scale the Helm Chart\n\nChange-Id: I8bda5450f1f9bd5e2b9771f284e1b904b82fb3df\nSigned-off-by: Pedro Escaleira \u003cescaleira@av.it.pt\u003e\n"
    },
    {
      "commit": "552a601c25f23e892ff4ffec580c5d472b29c6ba",
      "tree": "60532fd8e351f05e2b7071cdc7cc11124cd915d8",
      "parents": [
        "d1f257efe741f230f09fc6e52b49e88ffba33f4b"
      ],
      "author": {
        "name": "Gulsum Atici",
        "email": "gulsum.atici@canonical.com",
        "time": "Mon Oct 17 14:40:39 2022 +0300"
      },
      "committer": {
        "name": "Gulsum Atici",
        "email": "gulsum.atici@canonical.com",
        "time": "Mon Oct 17 14:48:47 2022 +0300"
      },
      "message": "Fixing Bug 2181 Application name creation for Helm chart\n\nChange-Id: Id0a83e2b5fee1dbb4c4109f7974b073fc7c3abd7\nSigned-off-by: Gulsum Atici \u003cgulsum.atici@canonical.com\u003e\n"
    },
    {
      "commit": "d1f257efe741f230f09fc6e52b49e88ffba33f4b",
      "tree": "d6be1a05646a4f630bd5ff5a7cf7d132ba5e1847",
      "parents": [
        "90a5c32230d290d3b0b654e57e9b72f6f3bb0815"
      ],
      "author": {
        "name": "Gulsum Atici",
        "email": "gulsum.atici@canonical.com",
        "time": "Sun Oct 16 21:13:53 2022 +0300"
      },
      "committer": {
        "name": "beierlm",
        "email": "mark.beierl@canonical.com",
        "time": "Sun Oct 16 20:48:12 2022 +0200"
      },
      "message": "Fix Bug 2181\n\nVDU level charm application name creation problem has been fixed.\n\nChange-Id: Ie9e039ae2a3b8734dc6bf0b6dfc14b3455941b84\nSigned-off-by: Gulsum Atici \u003cgulsum.atici@canonical.com\u003e\n"
    },
    {
      "commit": "4b68cb610f768a4d59e9dd67b974eb1a4f61038b",
      "tree": "b11394de2377f036333982a6c6406c3440a7657b",
      "parents": [
        "6343d434fa3cec28d8b9b470054d3a13ada8865a"
      ],
      "author": {
        "name": "Patricia Reinoso",
        "email": "patricia.reinoso@canonical.com",
        "time": "Tue Aug 30 16:08:48 2022 +0000"
      },
      "committer": {
        "name": "calvinosanc1",
        "email": "guillermo.calvino@canonical.com",
        "time": "Thu Sep 01 15:53:34 2022 +0200"
      },
      "message": "Fix bug 2149\n\nSet appropriate delete method for\ncluster role bindings in case of exception\n\nChange-Id: I187ec50dbec37ed9ff51e18234ab51e02c42ce40\nSigned-off-by: Patricia Reinoso \u003cpatricia.reinoso@canonical.com\u003e\n"
    },
    {
      "commit": "6343d434fa3cec28d8b9b470054d3a13ada8865a",
      "tree": "459f69824adfc238dfd87f2ec6611316b7bf90c6",
      "parents": [
        "015abee87f591b8e28f6b982ae4fb9c67e8791bb"
      ],
      "author": {
        "name": "Patricia Reinoso",
        "email": "patricia.reinoso@canonical.com",
        "time": "Tue Aug 23 06:22:01 2022 +0000"
      },
      "committer": {
        "name": "calvinosanc1",
        "email": "guillermo.calvino@canonical.com",
        "time": "Mon Aug 29 11:22:04 2022 +0200"
      },
      "message": "Fix bug 2071: create secret\n\nManually create a service-account-token secret\nfor service account when k8s cluster is created\nin case k8s version \u003e\u003d1.24.\n\nServiceAccount object should be created first.\nWhen deleting a k8s cluster. Corresponding\nServiceAccount and Secret are automatically\ndeleted as well.\n\nIn k8s \u003c 1.24, secret is automatically created.\n\nChange-Id: I160b1f87a64cf7a1bbb1fa8587259d8fbd3e6cd4\nSigned-off-by: Patricia Reinoso \u003cpatricia.reinoso@canonical.com\u003e\n"
    },
    {
      "commit": "4c856b3bae4f30d9e1bdd429884c1ae84bc629f0",
      "tree": "03b230f232436f8cce542b73897f4f53433d9bb7",
      "parents": [
        "01244641fdac89ce2afd5490e5c6d2bcf7ad05ae"
      ],
      "author": {
        "name": "aticig",
        "email": "gulsum.atici@canonical.com",
        "time": "Fri Aug 19 19:58:13 2022 +0300"
      },
      "committer": {
        "name": "aticig",
        "email": "gulsum.atici@canonical.com",
        "time": "Sat Aug 20 20:45:07 2022 +0300"
      },
      "message": "Fixing charm application name creation if DU is Helm Chart/KDU\n\nIf deployment unit is a Helm chart/KDU,\nvdu_profile_id and vdu_count will be empty string.\n\nChange-Id: Ifb6aed0f08f2d7687d0cd6a31506268926ac7f63\nSigned-off-by: aticig \u003cgulsum.atici@canonical.com\u003e\n"
    },
    {
      "commit": "01244641fdac89ce2afd5490e5c6d2bcf7ad05ae",
      "tree": "b616e77c4be2a5e2ff4182272088f44f2b17ddd7",
      "parents": [
        "3c443f5899f2cc953b27ed4ac4c5d1a247248c5e"
      ],
      "author": {
        "name": "aticig",
        "email": "gulsum.atici@canonical.com",
        "time": "Thu Jul 28 01:12:03 2022 +0300"
      },
      "committer": {
        "name": "calvinosanc1",
        "email": "guillermo.calvino@canonical.com",
        "time": "Wed Aug 17 16:12:49 2022 +0200"
      },
      "message": "Feature 10944 Change naming of charms\n\nModifying n2vc_conn.py/N2VCConnector _get_application_name\nmethod to generate new application naming for charms\n\nChange-Id: I1908bdbe4ce1a959a8a407f77913a414ec23fbb4\nSigned-off-by: aticig \u003cgulsum.atici@canonical.com\u003e\n"
    },
    {
      "commit": "3c443f5899f2cc953b27ed4ac4c5d1a247248c5e",
      "tree": "65f8f9cf6ead63e47a32eb72128cca6d891907f3",
      "parents": [
        "9e297a4a8ddae703467a57d87538d01b76b12d17"
      ],
      "author": {
        "name": "limon",
        "email": "alimonj@indra.es",
        "time": "Thu Jul 21 13:55:55 2022 +0200"
      },
      "committer": {
        "name": "limon",
        "email": "alimonj@indra.es",
        "time": "Thu Jul 21 17:00:01 2022 +0200"
      },
      "message": "Ensure async calls are performed\n\nChange-Id: I3f8afe4c7aa4e5ab1e5f2b19edf4c07b5d6a5d64\nSigned-off-by: limon \u003calimonj@indra.es\u003e\n"
    },
    {
      "commit": "553d1b7cf256eb95f8fdb9822a23ac755e1764f3",
      "tree": "649bd6e8bf01360ff04de388fddd5ad5182e7b18",
      "parents": [
        "1f222a91e4d79c3799bb921e3fee3cbc2b2a11a1"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Tue Jun 21 11:26:57 2022 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Tue Jun 21 11:26:57 2022 +0200"
      },
      "message": "Fix bug 2036\n\nThe unit tests were failing because of a wrong mock\n\nChange-Id: Ie8fd9f6cf926e0aee72c1cd5b1601c073c9928ba\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "b46f88d2ce319c7661dc6064c8c76d020e314fb6",
      "tree": "584d5df9289edbae00ea7a7b9a6aafc25cede894",
      "parents": [
        "764d8664333e7a6f16353bc8f578c5681f66433f"
      ],
      "author": {
        "name": "Pedro Escaleira",
        "email": "escaleira@av.it.pt",
        "time": "Sat Apr 23 19:55:45 2022 +0100"
      },
      "committer": {
        "name": "garciadav",
        "email": "david.garcia@canonical.com",
        "time": "Tue Jun 21 10:30:25 2022 +0200"
      },
      "message": "Bug 2005 fixed: removed the while true from K8sHelmBaseConnector._store_status\n\nMade the necessary refactor and fixed the tests accordingly. Now, the\n`_store_status` method is not executed forever, it is only executed once\neach time is called.\n\nChange-Id: Ia96ab3152fe7f838d1b81dd02c2d22373b805f4a\nSigned-off-by: Pedro Escaleira \u003cescaleira@av.it.pt\u003e\n"
    },
    {
      "commit": "764d8664333e7a6f16353bc8f578c5681f66433f",
      "tree": "cd3c6f875f1556def7c01ff501973ddd7043731f",
      "parents": [
        "aa5deb75e23991d357e30d90fbb68c03f6ba5bd4"
      ],
      "author": {
        "name": "Pedro Escaleira",
        "email": "escaleira@av.it.pt",
        "time": "Tue Apr 19 20:40:09 2022 +0100"
      },
      "committer": {
        "name": "garciadav",
        "email": "david.garcia@canonical.com",
        "time": "Tue Jun 21 10:18:27 2022 +0200"
      },
      "message": "Bug 1995 fixed: possibility of defining the K8s namespace for Juju Bundles\n\nNow, N2VC will use the namespace passed by argument to the methods\ninstall and get_services. Also added this argument to other functions\nwhere it should be passed. When it is not passed, for now it is obtained\nfrom the nsrs, but it should be always passed to avoid queries to the\ndatabase, while mainaining backward compatibility.\nUpdated the N2VC tests accordingly.\n\nChange-Id: Iace944506ba212034efdbb87c6f2d74f8265ea4e\nSigned-off-by: Pedro Escaleira \u003cescaleira@av.it.pt\u003e\n"
    },
    {
      "commit": "93bee7ea8407c7501daf04190f1bae7947e7d74c",
      "tree": "3d0aa3325b92ba6dc2f74318676106949afe8594",
      "parents": [
        "1608b5679d337a5a9c40499049e2eee9d12828ce"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu May 26 12:46:14 2022 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu May 26 12:51:16 2022 +0200"
      },
      "message": "Fix bug 2047: Remove fetching of actions for charms on update_vca_status\n\nChange-Id: If599baf949b74d420400fd2752aeac6e4fd117f6\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "8070c3c8260010f052ee9fe546c85bed4aa6b2eb",
      "tree": "580f75b667ba56812dbaced05f951768e4786dfa",
      "parents": [
        "7faf4eca072c56c5d179207013a436593a14aa9b"
      ],
      "author": {
        "name": "aticig",
        "email": "gulsum.atici@canonical.com",
        "time": "Mon Apr 18 00:31:42 2022 +0300"
      },
      "committer": {
        "name": "aticig",
        "email": "gulsum.atici@canonical.com",
        "time": "Tue May 10 00:33:53 2022 +0300"
      },
      "message": "Feature 10908 pass over upgrade request to Libjuju\n\nChange-Id: I7a4ea434f22b939a80f58941a892ed92dae62ee6\nSigned-off-by: aticig \u003cgulsum.atici@canonical.com\u003e\n"
    },
    {
      "commit": "069f0a310433dcfe57431fd7146ef95f87c1505d",
      "tree": "a7fb048a5c48dc308e9e90bce9b4f93481bc0d67",
      "parents": [
        "d4cee8c1edd901a2922bb2593e5b643844f83b3a"
      ],
      "author": {
        "name": "garciadeblas",
        "email": "gerardo.garciadeblas@telefonica.com",
        "time": "Wed May 04 11:07:41 2022 +0200"
      },
      "committer": {
        "name": "garciadav",
        "email": "david.garcia@canonical.com",
        "time": "Fri May 06 13:50:03 2022 +0200"
      },
      "message": "Update only the repo that was added instead of all repos\n\nChange-Id: I70c75ced584b40873566a36f2dfc900abc824767\nSigned-off-by: garciadeblas \u003cgerardo.garciadeblas@telefonica.com\u003e\n"
    },
    {
      "commit": "d4cee8c1edd901a2922bb2593e5b643844f83b3a",
      "tree": "59eccab3385c5215108b978631af3aab7645b118",
      "parents": [
        "cd986064a281ab1658023fa7172a57612f270684"
      ],
      "author": {
        "name": "garciadeblas",
        "email": "gerardo.garciadeblas@telefonica.com",
        "time": "Wed May 04 10:57:36 2022 +0200"
      },
      "committer": {
        "name": "garciadav",
        "email": "david.garcia@canonical.com",
        "time": "Fri May 06 13:49:19 2022 +0200"
      },
      "message": "Update helm repo after adding the repo\n\nChange-Id: I4cd2a073cb862fac4d7646e65f7b3df6068a1c5a\nSigned-off-by: garciadeblas \u003cgerardo.garciadeblas@telefonica.com\u003e\n"
    },
    {
      "commit": "db1d37bb9855e2c5649a14bf03bf940b26a49690",
      "tree": "0943c3dd81d5126f1086da558a636004dddb84be",
      "parents": [
        "7e887b22fdc176021b215c3b83a052276fdbeefc"
      ],
      "author": {
        "name": "beierlm",
        "email": "mark.beierl@canonical.com",
        "time": "Thu Apr 14 16:33:51 2022 -0400"
      },
      "committer": {
        "name": "garciadav",
        "email": "david.garcia@canonical.com",
        "time": "Mon May 02 09:17:46 2022 +0200"
      },
      "message": "Feature 10908: Add Upgrade Charm\n\nAdds ability to wait for a unit to go idle\nAdds new method to upgrade charm in a particular application\n\nChange-Id: I329286e63519c6398fc1f2229f306eec0b15551a\nSigned-off-by: beierlm \u003cmark.beierl@canonical.com\u003e\n"
    },
    {
      "commit": "0ebadd80cf20e478677b1af7b57a3faaefcc239a",
      "tree": "aea79fb6c7b3197a034033d057bf47f2fe30f614",
      "parents": [
        "a8980cc3f6508f2659dc4ba4fcbeed65ba3c8e95"
      ],
      "author": {
        "name": "Pedro Escaleira",
        "email": "escaleira@av.it.pt",
        "time": "Mon Mar 21 17:54:45 2022 +0000"
      },
      "committer": {
        "name": "garciadav",
        "email": "david.garcia@canonical.com",
        "time": "Fri Apr 22 18:03:06 2022 +0200"
      },
      "message": "Bug 1939 fixed: : added a random suffix to the end of the Juju app name, in order to allow multiple Juju charms per VDU\n\nI followed the second option of the bug\u0027s description. Now, Juju\napplications have a random suffix with size\u003d5 (the random suffix\nsize used by K8s), in order to avoid collisions between applications\u0027\nnames;\n\nAlso fixed unit-test on test_n2vc_juju_conn.py\n\nChange-Id: I5d3eb8282889e58361f7c21214b11071a7530d26\nSigned-off-by: Pedro Escaleira \u003cescaleira@av.it.pt\u003e\n"
    },
    {
      "commit": "a8980cc3f6508f2659dc4ba4fcbeed65ba3c8e95",
      "tree": "ea038da70c3396f5145e69758f837d2c40aef7ac",
      "parents": [
        "0ab522fe8c79942cfd3fad643071b579327c2087"
      ],
      "author": {
        "name": "Pedro Escaleira",
        "email": "escaleira@av.it.pt",
        "time": "Tue Apr 05 17:32:13 2022 +0100"
      },
      "committer": {
        "name": "garciadav",
        "email": "david.garcia@canonical.com",
        "time": "Fri Apr 22 12:54:31 2022 +0200"
      },
      "message": "Bug 1980 fixed\n\nAdded the `yaml_format` argument to the `status_kdu` abstract method of\nthe class `K8sConnector`, and changed the corresponding Helm connectors\nmethods accordingly, while maintaining backward compatibility\n\nChange-Id: Ic78c951825b7654ccf8246c4fe1fc4d488221bfc\nSigned-off-by: Pedro Escaleira \u003cescaleira@av.it.pt\u003e\n"
    },
    {
      "commit": "b41de17df6282334088ffbd887fbc01e496e1797",
      "tree": "3663037e3730d474baa8c8760fa298455634ecc1",
      "parents": [
        "156677967e417604682fda05ed0099f07f1a3129"
      ],
      "author": {
        "name": "Pedro Escaleira",
        "email": "escaleira@av.it.pt",
        "time": "Sat Apr 02 00:44:08 2022 +0100"
      },
      "committer": {
        "name": "Pedro Escaleira",
        "email": "escaleira@av.it.pt",
        "time": "Sat Apr 02 14:05:40 2022 +0100"
      },
      "message": "Bug 1962 fixed: removed the variable cluster_uuid from init_env method\n\nThis was applied to the class K8sHelmBaseConnector, and then returned\nthe variable cluster_id instead of cluster_uuid;\n\nAlso, refactored the overall Helm related code, in order to use the correct cluster uuid (and fixed the corresponding tests);\n\nAlso made a small fix in the function _uninstall_sw, to remove the service accounts when using different namespaces\n\nChange-Id: Ibfdc82f325abf5fd27a225e73f949483a4e68fe2\nSigned-off-by: Pedro Escaleira \u003cescaleira@av.it.pt\u003e\n"
    },
    {
      "commit": "867418c142ece1ef0e4c9e083bc747c1f3d13a3c",
      "tree": "09c74de724c8d3a7050104858d83077d1cbe096d",
      "parents": [
        "7bd5c6affb2805caba1b832b56d0ad5712396306"
      ],
      "author": {
        "name": "aktas",
        "email": "emin.aktas@ulakhaberlesme.com.tr",
        "time": "Tue Oct 19 18:26:13 2021 +0300"
      },
      "committer": {
        "name": "aktas",
        "email": "emin.aktas@ulakhaberlesme.com.tr",
        "time": "Tue Jan 04 18:35:52 2022 +0300"
      },
      "message": "Feature 10886 manual scaling for KNF (helm chart) deployment\n\nChange-Id: Ibdcabd4e3f077bf86749f49e8aeb75aec2935ea2\nSigned-off-by: aktas \u003cemin.aktas@ulakhaberlesme.com.tr\u003e\n"
    },
    {
      "commit": "7bd5c6affb2805caba1b832b56d0ad5712396306",
      "tree": "d9c0902044b244e79a21107ed80c756464b1bfb4",
      "parents": [
        "582b923b8f3f7104411c39ebdba63949d606ecd1"
      ],
      "author": {
        "name": "bravof",
        "email": "fbravo@whitestack.com",
        "time": "Wed Nov 17 11:14:57 2021 -0300"
      },
      "committer": {
        "name": "bravof",
        "email": "fbravo@whitestack.com",
        "time": "Thu Nov 18 14:46:09 2021 -0300"
      },
      "message": "bugfix: kubeconfig passed for helm commands. Bug 1789\n\nChange-Id: Idf8e9141e46296d45dbaa0260e8c9a55b445eb54\nSigned-off-by: bravof \u003cfbravo@whitestack.com\u003e\n"
    },
    {
      "commit": "582b923b8f3f7104411c39ebdba63949d606ecd1",
      "tree": "c15dd086ff30eaa4d1078f495c9537ea38b038da",
      "parents": [
        "7114f65ca3ba581281fa03639f21db61a111b53e"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Tue Oct 26 12:30:44 2021 +0200"
      },
      "committer": {
        "name": "garciadav",
        "email": "david.garcia@canonical.com",
        "time": "Thu Nov 04 12:06:33 2021 +0100"
      },
      "message": "Feature 10887: Add cross-model relations support\n\nChanges:\n- Extend `add_relation` method in N2VCJujuConn to include the CMR case\n- Add `add_relation` method to K8sJujuConn\n- Add n2vc/definitions.py file that includes definition ofjects for\nOffer and RelationEndpoint.\n- Change `n2vc.libjuju.Libjuju.list_offers` method to be private, and accept a filter `offer_name` parameter.\n- Update `n2vc.libjuju.Libjuju.consume` method arguments.\n- Add `n2vc.libjuju.Libjuju.offer` method to create an offer.\n\nUnit tests associated to the code changes have been either created or\nupdated accordingly\n\nChange-Id: Ibf8d574528dee0fa898e0e97578dd3a6aa68316a\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "fa02f8a90b7fe1e1b7a80feedef4132bef1ca3e4",
      "tree": "8b481b694c34bc737422509ecf0ad4395a154a16",
      "parents": [
        "ba1d07263821169bc36b3f9f9f93cbed93baad4a"
      ],
      "author": {
        "name": "aktas",
        "email": "emin.aktas@ulakhaberlesme.com.tr",
        "time": "Thu Jul 29 17:41:40 2021 +0300"
      },
      "committer": {
        "name": "garciadav",
        "email": "david.garcia@canonical.com",
        "time": "Tue Aug 17 12:26:48 2021 +0200"
      },
      "message": "Bug 1609 fix\n\nThis patch changes the behaviour of native charm deployments.\nit  won\u0027t deploy another application for the same vnf or\nvdu charm at initial deployment or scaling process.\nIt scales the application.\n\nChange-Id: I3fc52a5ddb0cb7cb16937bc12cf343f7d869c9ee\nSigned-off-by: aktas \u003cemin.aktas@ulakhaberlesme.com.tr\u003e\n"
    },
    {
      "commit": "4ae527ee394a9794c25e7a90fe895aa446c6c797",
      "tree": "6b7ef933262741b2d1701bd73b31a348c94dce83",
      "parents": [
        "d8d4b6e70c0e4410a4b5c274faecd37ee821f3b7"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Mon Jul 26 16:04:59 2021 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Tue Jul 27 11:09:58 2021 +0200"
      },
      "message": "Unit tests improvements\n\n- From now on, black must pass. Jenkins will give a -1 if it doesn\u0027t\n- Ignore E203 because it is not pep8 compliant, and conflicts with black\n    https://github.com/psf/black/issues/315#issuecomment-395457972\n- Black fixes and minor fix in unit test\n- Fix devops-stages/stage-test.sh: jenkins was not giving a -1 when tox\nwas failing\n\nChange-Id: Ic7318dcb6d4006a271607cd064a1f36d0936b7b9\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "d8d4b6e70c0e4410a4b5c274faecd37ee821f3b7",
      "tree": "9de6fb7e8dcc56292a905d50432384cba3d4c836",
      "parents": [
        "2a3ffde1771ec4431eef96f4908b3572a883ef01"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Jun 24 18:47:22 2021 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Wed Jun 30 16:55:30 2021 +0200"
      },
      "message": "Upgrade to libjuju 2.9.2\n\n- The upgrade to libjuju enables Pebble support\n- Libjuju requires a newer version of Kubernetes so I updated it to the\nlatest one\n- Additionally, a group of functions were moved from k8s_juju_conn.p to\nkubectl.py, because they fit better there.\n\nRelated feature number: 10884\n\nChange-Id: I354a2f49e7fc7b87a204bf60131a8d52a4f74cac\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "2a3ffde1771ec4431eef96f4908b3572a883ef01",
      "tree": "18d9c77b2410fe8c799dd2b1ebe5d215bd3bf524",
      "parents": [
        "d80f038732548191c8214f8387a95bd7919473f1"
      ],
      "author": {
        "name": "aktas",
        "email": "emin.aktas@ulakhaberlesme.com.tr",
        "time": "Thu Jun 24 11:37:11 2021 +0300"
      },
      "committer": {
        "name": "aktas",
        "email": "emin.aktas@ulakhaberlesme.com.tr",
        "time": "Thu Jun 24 11:45:47 2021 +0300"
      },
      "message": "Fix Bug 1575\n\nThis fixes the race condtion when k8s cluster responding too fast\n\nChange-Id: I3f9e18c7bba942689e4b056ead60349fdb72c795\nSigned-off-by: aktas \u003cemin.aktas@ulakhaberlesme.com.tr\u003e\n"
    },
    {
      "commit": "4395cfa6c7d0d80980c00d9f078440e0333fd826",
      "tree": "137673ea7ec94683dcb1a4d900371d0fad33e8aa",
      "parents": [
        "f643c1359c1edbe8bb851ce935416e534b234e74"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Fri May 28 16:21:51 2021 +0200"
      },
      "committer": {
        "name": "garciadav",
        "email": "david.garcia@canonical.com",
        "time": "Wed Jun 02 15:25:02 2021 +0200"
      },
      "message": "Fix 1539: Add --skip-repo option for Helm\n\nIf stablerepourl is not set, Helm will skip adding the stablerepo.\n\nDepends on:\n- https://osm.etsi.org/gerrit/#/c/osm/devops/+/10915\n\nChange-Id: I11f10fdfba24ec274d463f12c07d7b0247b37068\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "82b591ceed704c798ead2d9104085a08e75b511b",
      "tree": "9841a2576098f83e7d5df7e37fad8ff3904c9f58",
      "parents": [
        "2962f3e7aba84b4584d2deac30d1c163f6441a03"
      ],
      "author": {
        "name": "garciadeblas",
        "email": "gerardo.garciadeblas@telefonica.com",
        "time": "Wed Mar 24 09:22:13 2021 +0100"
      },
      "committer": {
        "name": "garciadeblas",
        "email": "gerardo.garciadeblas@telefonica.com",
        "time": "Thu May 20 17:37:10 2021 +0200"
      },
      "message": "Reformat N2VC to standardized format\n\nChange-Id: I7bfc2236cd5f059dc1b659e9fb746fef619124b8\nSigned-off-by: garciadeblas \u003cgerardo.garciadeblas@telefonica.com\u003e\n"
    },
    {
      "commit": "2962f3e7aba84b4584d2deac30d1c163f6441a03",
      "tree": "8e9650469c10a66fb4ccc97f9e7080b213081f60",
      "parents": [
        "e69aea9ff905a2cd9376ca1a6f2c1a345d78daca"
      ],
      "author": {
        "name": "aktas",
        "email": "emin.aktas@ulakhaberlesme.com.tr",
        "time": "Mon Mar 15 11:05:35 2021 +0300"
      },
      "committer": {
        "name": "aktas",
        "email": "emin.aktas@ulakhaberlesme.com.tr",
        "time": "Mon May 17 12:38:47 2021 +0300"
      },
      "message": "Feature 10509 manual scaling for native k8s charm\n\nJuju version has to be upgraded to 2.8.6 because of a typo error.\nYou can see bug report: https://github.com/juju/python-libjuju/issues/477\nand release note: https://github.com/juju/python-libjuju/commit/facd1f19eae65728b6c7c3b823939bb35ae45ed2\n\nChange-Id: Iae4262e64debdf6b4d36b37778ec29f0dd46bac1\nSigned-off-by: aktas \u003cemin.aktas@ulakhaberlesme.com.tr\u003e\n"
    },
    {
      "commit": "eb8943a887e2fb8cce0240382811f9e504f3c7fb",
      "tree": "5c4c40b579e897a4914a87c8dae1ae0ac19a1b07",
      "parents": [
        "6331b04745fcd6d44b1b0320ca6e3e63cdebd0e8"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Mon Apr 12 12:07:37 2021 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Mon May 03 13:30:40 2021 +0200"
      },
      "message": "Feature 10239: Distributed VCA\n\n- Add vca_id in all calls that invoke libjuju. This is for being able to\ntalk to the default VCA or the VCA associated to the VIM\n- Add store.py: Abstraction to talk to the database.\n  - DBMongoStore: Use the db from common to talk to the database\n  - MotorStore: Use motor, an asynchronous mongodb client to talk to the\ndatabase\n- Add vca/connection.py: Represents the data needed to connect the VCA\n- Add EnvironConfig in config.py: Class to get the environment config,\nand avoid LCM from passing that\n\nChange-Id: I28625e0c56ce408114022c83d4b7cacbb649434c\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "561202994dc290e20a5f15ae8ffd07f20fb84069",
      "tree": "389282770aa2f5e2480f3bba5d7db0d800022e33",
      "parents": [
        "4c5efa8389c2c2da64364624ae4a8d8e4bf0ded5"
      ],
      "author": {
        "name": "aktas",
        "email": "emin.aktas@ulakhaberlesme.com.tr",
        "time": "Fri Feb 26 15:32:39 2021 +0300"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Mon Apr 26 18:22:42 2021 +0200"
      },
      "message": "Fix 1462\n\nWait until Juju application is destroyed in\nn2vc.libjuju.Libjuju.destroy_application()\n\nChange-Id: Ie7992f229872ffffbea87ca3e8e20825bfec7b6d\nSigned-off-by: aktas \u003cemin.aktas@ulakhaberlesme.com.tr\u003e\n"
    },
    {
      "commit": "19da2b852804c27c7d04484eea89feb212874254",
      "tree": "a9715e97f7b8bbe3525db1ca31a49d0bec11b685",
      "parents": [
        "f8c25c9ceeeca8ac91caa62faa402a8b6dab02e1"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Apr 15 10:15:29 2021 +0200"
      },
      "committer": {
        "name": "garciadav",
        "email": "david.garcia@canonical.com",
        "time": "Thu Apr 15 11:03:33 2021 +0200"
      },
      "message": "Fix bug 1505\n\nDelete ssh-key generation in N2VCConnector initialization\n\nChange-Id: I5f33adf683ffeef34de270bf9b458a172dd4059d\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "f8c25c9ceeeca8ac91caa62faa402a8b6dab02e1",
      "tree": "9b43e972411b6ff1afc78213ec09c45594e8c06a",
      "parents": [
        "b84e4a7d4324087219ffb25887319e9ffefdb659"
      ],
      "author": {
        "name": "ksaikiranr",
        "email": "saikiran.k@tataelxsi.co.in",
        "time": "Wed Mar 17 12:54:15 2021 +0530"
      },
      "committer": {
        "name": "ksaikiranr",
        "email": "saikiran.k@tataelxsi.co.in",
        "time": "Wed Apr 14 10:08:02 2021 +0530"
      },
      "message": "Feature-9904: Enhancing NG-UI to enable Juju operational view dashboard\n\nAdded unit test for update_vca_status method for KNF\n\nChange-Id: Iba6285d0d5deeaa7bef685a22abeba0ae535ab19\nSigned-off-by: jayaramans \u003cselvi.j@tataelxsi.co.in\u003e\nSigned-off-by: ksaikiranr \u003csaikiran.k@tataelxsi.co.in\u003e\n"
    },
    {
      "commit": "b84e4a7d4324087219ffb25887319e9ffefdb659",
      "tree": "cfc3b7e863f1ead969700e55fcc59c2e07be1184",
      "parents": [
        "b816d822dcc61a709b22f475085c3f94dceca61d"
      ],
      "author": {
        "name": "ksaikiranr",
        "email": "saikiran.k@tataelxsi.co.in",
        "time": "Wed Mar 17 12:53:20 2021 +0530"
      },
      "committer": {
        "name": "ksaikiranr",
        "email": "saikiran.k@tataelxsi.co.in",
        "time": "Wed Apr 14 10:07:47 2021 +0530"
      },
      "message": "Feature-9904: Enhancing NG-UI to enable Juju operational view dashboard\n\nUnit testing added for new functions\n    - UpdateVcaStatus in test_n2vc_juju_conn.py\n    - GetExecutedActionsTest in test_libjuju.py\n    - GetApplicationConfigsTest in test_libjuju.py\n\nChange-Id: I7d750d8c39bc7bc061568c28d29f53d1b87c4c23\nSigned-off-by: gspri \u003cpriyadharshini.g@tataelxsi.co.in\u003e\nSigned-off-by: ksaikiranr \u003csaikiran.k@tataelxsi.co.in\u003e\n"
    },
    {
      "commit": "a71d4a04c1e8ad3ffe1a129024e6dbc14d6d3bd5",
      "tree": "c10fb305bebe6d48c10ee5714d525a18fef0fa58",
      "parents": [
        "057866a49c1fbc2d9636275e2078568b91e07555"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Wed Mar 10 20:00:53 2021 +0100"
      },
      "committer": {
        "name": "garciadav",
        "email": "david.garcia@canonical.com",
        "time": "Wed Mar 17 15:26:57 2021 +0100"
      },
      "message": "Add ModelConfig\n\nThis class maps the model-config from the vca_config. That config will\nbe passed every time a model is added.\n\nChange-Id: I0a1e47ba7d708f3514c64a6f20d410a21fe8ea1d\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "b0a8f409e149715bf37d30c414474888c8a499f3",
      "tree": "6573b2c74b4d4beb74671ba3dfaaf7887add776d",
      "parents": [
        "435b86410c96c0e034a892ac5df9ebc9547e3b7d"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Mon Mar 15 18:41:34 2021 +0100"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Mon Mar 15 18:52:20 2021 +0100"
      },
      "message": "Fix bug 1467\n\nDo not raise exceptions in n2vc.libjuju.add_model() or n2vc.libjuju.destroy_model() functions\n\nIn general, functions should be as idempotent as possible. In this\nparticular case, executing the add_model() function several times with\nthe same arguments should just work. Same thing for destroy_model(). If\nthe model has already been destroyed, it should return and not give any\nerrors saying that the model doesn\u0027t exist.\n\nChange-Id: I87e11ea0fe1b4063b2f89900fcc2bbf1f915b953\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "435b86410c96c0e034a892ac5df9ebc9547e3b7d",
      "tree": "69c5a64663495b32cac222bdca4823fcd29ed741",
      "parents": [
        "c344117335d4ffbd06ef90ae8dce9cb3910165fb"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Wed Mar 10 17:09:44 2021 +0100"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Wed Mar 10 17:53:52 2021 +0100"
      },
      "message": "Minor improvements to libjuju.py\n\n- Increase default timeout to connect to the controller\n- Minor fix in destroy_model function\n- Fix unit tests. Now they run faster :-)\n\nChange-Id: Ia2cbcb3e052fe91f4e712ea572ecf444b1d5894f\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "d1d5541e1fd65d04675edae6e82f3d8a9035592c",
      "tree": "bf2d93d8e8480f49b6e9e6f8f48180ce88eb68e5",
      "parents": [
        "c4da25cc55411e6cea1e83d29c206bce421f0728"
      ],
      "author": {
        "name": "aktas",
        "email": "emin.aktas@ulakhaberlesme.com.tr",
        "time": "Sun Feb 21 19:36:20 2021 +0300"
      },
      "committer": {
        "name": "aktas",
        "email": "emin.aktas@ulakhaberlesme.com.tr",
        "time": "Thu Feb 25 23:43:38 2021 +0300"
      },
      "message": "Fixes for scaling proxy and native charm\n\nWith changes in here, it can remove application while scaling in\nand it can add application existed k8s proxy charm model.\n\nChange-Id: If4fd378fdafd925fa1750ce4769506b44adc233c\nSigned-off-by: aktas \u003cemin.aktas@ulakhaberlesme.com.tr\u003e\n"
    },
    {
      "commit": "c4da25cc55411e6cea1e83d29c206bce421f0728",
      "tree": "a68c67e921cb27ac1fbf225f696ccb63a4fa24b9",
      "parents": [
        "5ab1064304b993ea6364b5d932c5c0cb7434cfb7"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Tue Feb 23 11:47:29 2021 +0100"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Feb 25 19:00:02 2021 +0100"
      },
      "message": "Add generate_kdu_instance_name method in K8sConn\n\nThe reason for adding this method is for LCM to call it before calling\nK8sConn.install(). That way, LCM can record it in the DB before\nfinishing the instantiation of the KDU.\n\nThis will help fixing bug 1412.\n\nChange-Id: Iacf71c4d2040dbdc966cff2bddd697c4ea1c9a06\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "5ab1064304b993ea6364b5d932c5c0cb7434cfb7",
      "tree": "9fce702be0b583681ae8cca915aec9fbabfb3f7e",
      "parents": [
        "bb60728e5f59728c2905ccf5dad174ddac5d66b6"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Fri Feb 12 17:18:39 2021 +0100"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Fri Feb 12 17:18:39 2021 +0100"
      },
      "message": "Fix flake8 minor issues\n\nChange-Id: I1348e9807b8071a1cbf50b97144069a5b6709def\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "7d0735dcfe5634bc9eebedeb67527495f6751a43",
      "tree": "c44bfb38d977da0ef76443cb730f9fe0bd4e3ead",
      "parents": [
        "3ea7d6cc2568563e2776be6b24aeeba1274ce9cd"
      ],
      "author": {
        "name": "lloretgalleg",
        "email": "illoret@indra.es",
        "time": "Thu Dec 17 09:19:30 2020 +0000"
      },
      "committer": {
        "name": "lloretgalleg",
        "email": "illoret@indra.es",
        "time": "Thu Dec 17 09:46:57 2020 +0000"
      },
      "message": "Changed url stable repository for helm3\n\nChange-Id: I28c45df018e32a7bc984645a8f058baaa1f7b6c7\nSigned-off-by: lloretgalleg \u003cilloret@indra.es\u003e\n"
    },
    {
      "commit": "095392b4b80e0b63c66282f283c1139ec0536750",
      "tree": "4167d65bd239e5a98c41bece7db1b692957a1024",
      "parents": [
        "f6e9b00b6f7cd35e45ace4c84b53fe8d12b2438c"
      ],
      "author": {
        "name": "lloretgalleg",
        "email": "illoret@indra.es",
        "time": "Fri Nov 20 11:28:08 2020 +0000"
      },
      "committer": {
        "name": "garciadav",
        "email": "david.garcia@canonical.com",
        "time": "Wed Dec 09 15:44:30 2020 +0100"
      },
      "message": "Corrected bugs on support for helm v3\n\nChange-Id: I064a8d45490989c75a31384cf16e7ab8755542c3\nSigned-off-by: lloretgalleg \u003cilloret@indra.es\u003e\n"
    },
    {
      "commit": "f6e9b00b6f7cd35e45ace4c84b53fe8d12b2438c",
      "tree": "86711bb6ca5aaf63d032860441dc8f605e067a2d",
      "parents": [
        "1c83f2e4d061ad37ba898e114cb42e70fdee5145"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Fri Nov 27 15:32:02 2020 +0100"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Sat Nov 28 11:12:41 2020 +0100"
      },
      "message": "Fix bug 1298\n\nThis bug was caused because a bad parsing of the kubeconfig.\nThe token should be the secret from k8s for the created service\naccount.\n\nWhen adding a k8s cluster, a clusterrole, clusterrolebinding, and\nserviceaccounts are created.\n\nTests are needed for oauth2 and userpass kubeconfigs.\n\nChange-Id: I6a4a2834bd6477f255e8ca48e7f53cd3a0d3fddf\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "1c83f2e4d061ad37ba898e114cb42e70fdee5145",
      "tree": "307b49ebaa4b8b365cf87273770a2875b8f3888e",
      "parents": [
        "e308c71201537413caf28f8814051470f0418504"
      ],
      "author": {
        "name": "lloretgalleg",
        "email": "illoret@indra.es",
        "time": "Thu Oct 22 09:12:35 2020 +0000"
      },
      "committer": {
        "name": "lloretgalleg",
        "email": "illoret@indra.es",
        "time": "Fri Nov 13 10:14:17 2020 +0000"
      },
      "message": "Support for helm v3\n\nAdded support for helm3 and included unit tests for helm and helm v3\n\nChange-Id: I1a4a14be2e0a5c82445b97a9d263fd67139fd25b\nSigned-off-by: lloretgalleg \u003cilloret@indra.es\u003e\n"
    },
    {
      "commit": "5b802c9d0ee35b529cdac7e6db237aab2fe409d8",
      "tree": "574f60f61f7702662327d091236f5f0a2fba364d",
      "parents": [
        "9a63e8d905b4b98f567acccce745b39919fa6860"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Wed Nov 11 16:56:06 2020 +0100"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Wed Nov 11 17:02:09 2020 +0100"
      },
      "message": "Fix minor bug in configure application\n\nVariable model was unassigned if the connection to the controller was\nfailing\n\nChange-Id: I14764079f505c46ff7c9af7adec8079b43eca14e\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "9a63e8d905b4b98f567acccce745b39919fa6860",
      "tree": "d297ae75adc90eb2f0aff6a7ddcb3d7caacd9707",
      "parents": [
        "667696ef11356f3267df58f2a81c6ecebb0e94b9"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Tue Nov 03 20:37:06 2020 +0100"
      },
      "committer": {
        "name": "garciadav",
        "email": "david.garcia@canonical.com",
        "time": "Mon Nov 09 14:06:29 2020 +0100"
      },
      "message": "Feature 9952: Distributed Proxy Charms\n\nAdd cloud_name and cloud_credential arguments in these functions to\nallow allocating proxy charms in different clouds:\n  - create_execution_environment\n  - register_execution_environment\n  - install_k8s_proxy_charm\nChange-Id: I3e57c6e5b9e25f9abfb7a579a188cf98d457e2b2\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "667696ef11356f3267df58f2a81c6ecebb0e94b9",
      "tree": "ea2805559407bdbb73a0beacd1aa17973dd5ac9c",
      "parents": [
        "a4f57d6260e6520aa6a89e86f9d1b2ca5e0a3a08"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Tue Sep 22 14:52:32 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Wed Nov 04 13:34:50 2020 +0100"
      },
      "message": "Feature 9751: Centralized VCA for KNFs\n\n- Use libjuju.py for the communication with VCA\n- Add the k8s_cloud as an external cloud to the VCA\n- Add unit tests\n\nChange-Id: Id55bfada3957f35e13cef7b4bfcc7acb72452df0\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "a4f57d6260e6520aa6a89e86f9d1b2ca5e0a3a08",
      "tree": "ade0629b5759e1f62cff3db58a8a42f596e47f85",
      "parents": [
        "168bb198ea5c86aaa2cd8d0e20c634ac896e385f"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Oct 22 10:50:56 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Oct 22 10:56:24 2020 +0200"
      },
      "message": "Fix bug 1263\n\nUpdate database endpoints when a new VCA_HOST_IP is provided\n\nBefore, we were not considering the that the VCA_HOST_IP could be\nupdated, in that case, the old ips stored in the database should be\nreplace by the new one. Of course, this won\u0027t do any model migration\nfrom the previous VCA to the new one. It will only start pointing to\nthe new VCA provided.\n\nChange-Id: I5e259f773f90e4f440d87c4b6342cd82425c0e0c\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "5ef42a14f766aa00a5917845ba1b3e04cc3c15f7",
      "tree": "3f0c4072d7307bd40de98ef2c35ba83cb8cd2e10",
      "parents": [
        "59f520da90fb12b9d9871889dfbc5d57aa14c591"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Tue Sep 29 19:48:13 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Wed Oct 21 16:24:02 2020 +0200"
      },
      "message": "Fix bug 1216: Force model deletion\n\nChange-Id: I3f41eead305349eba5d404f5f3d61d33f0536aca\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "59f520da90fb12b9d9871889dfbc5d57aa14c591",
      "tree": "56c43333879f27690ea51ccf0d5aa4ef824c8c43",
      "parents": [
        "7077e2601a209a87f7fe397b35586e7701ca759a"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Oct 15 13:16:45 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Wed Oct 21 13:28:23 2020 +0200"
      },
      "message": "Fix bug 1236: Retry if leader unit is not obtained\n\nThere a racing condition when N2VC tries to get the leader unit, but there\nleader-elected hook has not been triggered. In that case, day-1 action might fail.\n\nThis commit solved this issue by retrying a couple of times.\n\nChange-Id: If79cd243aa9ebdf8ed0e6235481eeb9fd2640612\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "475a7221e3598ad1c75ce802c5ad74ef7ecf72f1",
      "tree": "d4d2a9a5d1430567848e4721d9ba7e4eea869189",
      "parents": [
        "85755d17a807df83d0e472e6e73500a4d743296b"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Mon Sep 21 16:19:15 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Tue Sep 22 18:24:22 2020 +0200"
      },
      "message": "Add new kubectl.py functions, modify some libjuju.py functions, add unit tests\n\n- Kubectl.py: two new functions added (get_configuration and get_default_storage_class)\n  - get_configuration(): Returns a kubernetes Configuration object.\n    It can be used to properly parse the kubeconfig.\n  - get_default_storage_class(): Searches for the default storage class of a k8s cluster.\n- Libjuju.py: modified add_k8s function and get_k8s_cloud_credential function was added.\n  - add_k8s(): Improves the way of generation Cloud and CloudCredential objects for the K8s Cloud\n  - get_k8s_cloud_credential(): It parses the kubeconfig to properly determine the authentication\n    method type that should be used for that k8s cluster.\n- Unit tests: Added unit tests for all the new functions added.\n- Exceptions: Make all Juju Exceptions to inherit from N2VC Exception.\n  Now Juju exceptions have the message attribute, that is useful for unit testing, to not only check that\n  an exception raised, but to check the message too.\n- Move get_k8s_cloud_credential() function to n2vc/utils in order to share that code between different connectors.\n\nChange-Id: Ife9027d80663fe95f1f3ad883cb9a3376b047d0b\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "85755d17a807df83d0e472e6e73500a4d743296b",
      "tree": "0fcb9cf17689dbf6ca0c1921afd6a9168988c5fa",
      "parents": [
        "12b29244e5d333341166ea92760b8eb245c16b27"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Mon Sep 21 19:51:23 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Mon Sep 21 19:51:23 2020 +0200"
      },
      "message": "Add get_metrics command to n2vc_juju_conn and libjuju\n\nChange-Id: I6cde1528579c8ca7aa72d935c5e570004468bb1a\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "12b29244e5d333341166ea92760b8eb245c16b27",
      "tree": "2994f77c9ed622a5c1a74f38973a70304cfb49f5",
      "parents": [
        "c38a696d168531e3c067451044262ef4d78ef11f"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Sep 17 16:01:48 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Sep 17 16:01:48 2020 +0200"
      },
      "message": "Add add_k8s, add_cloud, and remove_cloud commands to libjuju.py and unit tests\n\n- add_k8s: Generates Cloud and CloudCredential objects for adding a Kubernetes cloud to the VCA\n- add_cloud: Takes Cloud and CloudCredential as arguments for adding the cloud to the VCA\n- remove_cloud: Remove cloud from VCA\n\nChange-Id: Ia6b4c0cbd06f38df6fe4c52414f5bcb8ffb9a5a8\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "c38a696d168531e3c067451044262ef4d78ef11f",
      "tree": "333db0a26afb040e3daf5c484bd08c2c42ecbb3a",
      "parents": [
        "ba6e532cda6464759381585452b18f9fd1a19dd3"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Wed Sep 16 13:31:33 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Wed Sep 16 18:59:27 2020 +0200"
      },
      "message": "Remove EntityType from juju watcher and workaround juju bug for retrieving the status\n\n- The juju watcher was doing an unnecessary translation with the entity types. The entity already provides an attribute .entity_type\n- Juju has a bug in version 2.8.2 that returns a wrong status. Therefore, charms were getting stuck in waiting for ever.\nChange-Id: I44709190acc41601e8a67f4c52074fda00c3d495\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "ba6e532cda6464759381585452b18f9fd1a19dd3",
      "tree": "efeee69a69dc4c48684b812afb5baeccde361212",
      "parents": [
        "8bfcc14713a71f43f155e3cddec168380134d344"
      ],
      "author": {
        "name": "almagia",
        "email": "silvia.almagia@etsi.org",
        "time": "Wed Sep 16 09:44:40 2020 +0200"
      },
      "committer": {
        "name": "almagia",
        "email": "silvia.almagia@etsi.org",
        "time": "Wed Sep 16 09:44:40 2020 +0200"
      },
      "message": "Revert \"Revert \"\"Remove unused lines of code\"\"\"\n\nThis reverts commit 8bfcc14713a71f43f155e3cddec168380134d344.\n\napproved by TSC on 15/09/20\n\nChange-Id: I176b1b625cbc2d94013921401b2e6048aed675f8\n"
    },
    {
      "commit": "8bfcc14713a71f43f155e3cddec168380134d344",
      "tree": "299eadf613408c0131016accff68e9452e52090a",
      "parents": [
        "e8102d9e28e5c502fc66ca842d14e1ad29efbfda"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Mon Sep 14 15:10:04 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Mon Sep 14 15:10:37 2020 +0200"
      },
      "message": "Revert \"\"Remove unused lines of code\"\"\n\nThis reverts commit e8102d9e28e5c502fc66ca842d14e1ad29efbfda.\n\nChange-Id: Ic22f292f601f45451d3fdd56ab98bfa4ea9161eb\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "e8102d9e28e5c502fc66ca842d14e1ad29efbfda",
      "tree": "efeee69a69dc4c48684b812afb5baeccde361212",
      "parents": [
        "68b007225cc1fd432dba07fe42a5d1362925bc32"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Tue Jul 07 10:34:33 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Fri Sep 11 15:57:26 2020 +0200"
      },
      "message": "\"Remove unused lines of code\"\n\nChange-Id: I02be0efe4918083d95a4017c898bfabaf269e779\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "68b007225cc1fd432dba07fe42a5d1362925bc32",
      "tree": "299eadf613408c0131016accff68e9452e52090a",
      "parents": [
        "8331f7ce83ebe7b1c9b2ca25610dfa7fab3a0e64"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Fri Sep 11 15:05:00 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Fri Sep 11 15:08:05 2020 +0200"
      },
      "message": "Add consume to libjuju.py\n\nThis function allows to consume an offered endpoint in another model\n\nChange-Id: I320978aac654fbb8199fdfbf4e928b0e2ba5458b\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "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": "37004983e8e484d5504ae4253bdb75204ff389d9",
      "tree": "704c2d727211989aa20768c5ff20047a53e00b52",
      "parents": [
        "810459632a4fb28e1bde897aaef8775cba342b4b"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Jul 16 17:53:20 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Aug 20 11:47:32 2020 +0200"
      },
      "message": "Fix an issue with the service ports in Kubectl.py\n\nThe ports were retrieved as V1ServicePort classes, and LCM cannot store that in the database\n\nChange-Id: I451ab65478f36c5cb7f33594b4454bd315c22878\nSigned-off-by: David Garcia \u003cdavid.garcia@canonical.com\u003e\n"
    },
    {
      "commit": "0c478257d6bd8126b27d80f76d128c7cc21d0609",
      "tree": "3e33fbcccfbd0b03aa05cd330e3cc2aef590404e",
      "parents": [
        "4d0bef5003a86170683da70259b67a8815a9e865"
      ],
      "author": {
        "name": "Dominik Fleischmann",
        "email": "dominik.fleischmann@canonical.com",
        "time": "Wed Jul 15 14:44:45 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Aug 20 11:47:32 2020 +0200"
      },
      "message": "Add unit tests for K8s Proxy Charm Feature\n\nThis commit also makes an initial template for\nfuture test in n2vc_juju_conn.py\n\nChange-Id: I34cb0f52bc2e6ce6b514ea4f99658f109e21875f\nSigned-off-by: Dominik Fleischmann \u003cdominik.fleischmann@canonical.com\u003e\n"
    },
    {
      "commit": "5d79939ab780d4717fe36bfd62f398b922f84829",
      "tree": "bbcb0cd986c1a4d073dd2d20d083f006cc245474",
      "parents": [
        "7ff392f6b60850ac7408f96fd42ab16b005ec2bf"
      ],
      "author": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Jul 02 13:56:58 2020 +0200"
      },
      "committer": {
        "name": "David Garcia",
        "email": "david.garcia@canonical.com",
        "time": "Thu Aug 20 11:47:32 2020 +0200"
      },
      "message": "Implement get_service and get_services methods for K8sJujuConnector\n\n- Add a new class (n2vc.kubectl.Kubectl) for managing the Kubectl commands\n  - Add unit tests\n- Add get_config_file() method for getting the path of the kubeconfig in K8sJujuConnector\n- Implement get_service() and get_services() methods in K8sJujuConnector\n\nChange-Id: I883ec21dad519c2dc65cb9bd601e539685336756\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": "0a8c9afacca5010da381e6382b01e31dd4e59d23",
      "tree": "4cff69de6d8ff4603ac6ed61a8ac1a97dcbe10f4",
      "parents": [
        "32b3812aaf09482ed9eb2b4492525bfccad3d0d2"
      ],
      "author": {
        "name": "beierlm",
        "email": "mark.beierl@canonical.com",
        "time": "Tue May 12 15:26:37 2020 -0400"
      },
      "committer": {
        "name": "beierlm",
        "email": "mark.beierl@canonical.com",
        "time": "Thu May 14 11:59:21 2020 -0400"
      },
      "message": "Change to sane default timeout\n\nChanges the default timeout from ~28 hours to 1 hour.\nFixed syntax errors in two log messages.\nAdds unit tests for timeouts.\nAdds nose config to create Junit style output.\n\nFixes bug 1014\n\nChange-Id: I7d1c2d28b397adc3ac638aa2366925dc744eade3\nSigned-off-by: beierlm \u003cmark.beierl@canonical.com\u003e\n"
    },
    {
      "commit": "f52cb7cfeb4e24febe7c66af3d5bb275a50d7f99",
      "tree": "889ee6b370ccb8c912040e29104047815422f82d",
      "parents": [
        "347aae6ea48b962db7ab868cb0533edf7b450349"
      ],
      "author": {
        "name": "beierlm",
        "email": "mark.beierl@canonical.com",
        "time": "Tue Apr 21 16:36:35 2020 -0400"
      },
      "committer": {
        "name": "beierlm",
        "email": "mark.beierl@canonical.com",
        "time": "Mon May 04 11:10:08 2020 -0400"
      },
      "message": "Enable lint, flake8 and unit tests\n\nCleans up non pep compliant code.\nAdds a simple unit test.\nFormats according to black.\n\nTox automatically runs lint, flake8 and unit test suite\nwith coverage.  To run each individually, execute:\n\ntox -e pylint\ntox -e black\ntox -e flake8\ntox -e cover\n\nNote that these are all run for each patch via Jenkins.  The full\ntox suite should be run locally before any commit to ensure it\nwill not fail in Jenkins.\n\nChange-Id: I2f87abe3d5086d6d65ac33a27780c498fc7b1cd3\nSigned-off-by: beierlm \u003cmark.beierl@canonical.com\u003e\n"
    }
  ]
}
