)]}'
{
  "log": [
    {
      "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"
    },
    {
      "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": "d598914ec9d1be351c0c15739629a910d0ff59a5",
      "tree": "7017d837d8eaa1607ec9b9a0982380113a26205c",
      "parents": [
        "e370f3b118f2fa4ce4e5a7fdecdf40c999d0e6be"
      ],
      "author": {
        "name": "beierlm",
        "email": "mark.beierl@canonical.com",
        "time": "Wed May 06 12:05:16 2020 -0400"
      },
      "committer": {
        "name": "beierlm",
        "email": "mark.beierl@canonical.com",
        "time": "Wed May 06 18:07:44 2020 +0200"
      },
      "message": "Adds skipdist back\n\nThe merge has been failing, probably due to unmaintained distribution\ncode for debian packages that are no longer needed.  This patch\nreinstates the skipdist step to tox.ini\n\nChange-Id: Ia4134222f85075fda9e9a535493eb77ceabb855f\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"
    },
    {
      "commit": "19c5cfca317615597be6bf1051e9d2fa903adb97",
      "tree": "ba5e04e382618f7258cd99b6d13b5ba89277899a",
      "parents": [
        "e8e6de12ba5fb659891be3181cca4b48776bc193"
      ],
      "author": {
        "name": "Adam Israel",
        "email": "adam.israel@canonical.com",
        "time": "Thu Oct 03 12:35:38 2019 -0400"
      },
      "committer": {
        "name": "Adam Israel",
        "email": "adam.israel@canonical.com",
        "time": "Wed Oct 09 09:36:02 2019 -0400"
      },
      "message": "Remove dependency on vendored libjuju\n\nThis patch removes the dependency on the embedded version of libjuju,\ninstead relying on the upstream library.\n\nChange-Id: I88bd762006e5a182eaea74b5eba636ad03d524b0\nSigned-off-by: Adam Israel \u003cadam.israel@canonical.com\u003e\n"
    },
    {
      "commit": "b2a07f566be558a8b59b8b5dedfe8da5ae1b0132",
      "tree": "c4232cd2cc9df6f612eb3d0859a5aa53c75306b5",
      "parents": [
        "d420a8b6f1fecde3983369b131da1f042c7c8a14"
      ],
      "author": {
        "name": "Adam Israel",
        "email": "adam.israel@canonical.com",
        "time": "Thu Apr 25 17:17:05 2019 -0400"
      },
      "committer": {
        "name": "Adam Israel",
        "email": "adam.israel@canonical.com",
        "time": "Fri Apr 26 12:35:41 2019 -0400"
      },
      "message": "Add Juju Public Key\n\nThis commit adds the requirement to provide the Juju public key to N2VC\n\n- Updates integration testing to use public key\n- Updates N2VC to accept juju_public_key and ca-cert\n- Updated docstring of N2VC constructor\n\nChange-Id: I4cad1f8c39024137a23060000d7502aad56ac644\nSigned-off-by: Adam Israel \u003cadam.israel@canonical.com\u003e\n"
    },
    {
      "commit": "b2c234b2056b9d8cb9f6eda268c2cf1845f88371",
      "tree": "283483b484519918ac3958216c3af42417a73ae8",
      "parents": [
        "caf6efba68120623038efc361cf46e1f60de452b"
      ],
      "author": {
        "name": "Adam Israel",
        "email": "adam.israel@canonical.com",
        "time": "Fri Apr 05 10:17:25 2019 -0400"
      },
      "committer": {
        "name": "Adam Israel",
        "email": "adam.israel@canonical.com",
        "time": "Fri Apr 05 10:23:45 2019 -0400"
      },
      "message": "Bug 666: Fix window_size overflow with Paramiko\n\nThis commit fixes integration testing around bug fixes in the sshproxy\nlayer that were causing a window_size overflow.\n\nThis also improves reliability around testing machine charms, by\nverifying the sshd service is running inside the target machine (lxd)\nbefore running tests.\n\nChange-Id: I465d51521bf87b8e4b3dc5cac07c163fac836393\nSigned-off-by: Adam Israel \u003cadam.israel@canonical.com\u003e\n"
    },
    {
      "commit": "6d84dbd8746388114361e09300697da471de20ca",
      "tree": "efa9accf616e79a2311e81c71d62fbfe958d9e8f",
      "parents": [
        "1afb30a22cc175cf67572b7195609be6a484258c"
      ],
      "author": {
        "name": "Adam Israel",
        "email": "adam.israel@canonical.com",
        "time": "Fri Mar 08 18:33:35 2019 -0500"
      },
      "committer": {
        "name": "Adam Israel",
        "email": "adam.israel@canonical.com",
        "time": "Thu Mar 14 12:33:12 2019 -0400"
      },
      "message": "Fix bug 628 - Better handling of model management\n\nIn order to address the issue raised in bug 628, we\u0027ve improved the\nhandling of how N2VC creates and destroys models. Previously this was\ndone transparently, but now they are explicit operations that will need\nto be performed by the LCM.\n\nThe LCM will be required to call `CreateNetworkService()` prior to\ncalling `DeployCharms`. This will return True if successful, or raise an\nexception if the model can\u0027t be created.\n\nAfter LCM has called `RemoveCharms()`, it will need to call\n`DestroyNetworkService()` to remove the model from the Juju controller.\n\n- Fix lint errors\n- Implement the `DestroyNetworkService` method, which will destroy the\nmodel per Network Service, and any applications deployed to it.\n- Adds a new test for creating and deleting models\n- Add `CreateNetworkService` to explicitly create a new model for a\nNetwork Service.\n- Add proper return values from `logout()` so we can assert against it\nduring tests\n- Add dependency on pytest-assume so we can test multiple failures per\ntest. This allows us to properly assert and still tear down the juju\nclient.\n- Use pytest.assume. If a method asserts, we can continue with the\nteardown of the client.\n\nChange-Id: I3031b008f4ed79f978ecd84ade72e125153729a7\nSigned-off-by: Adam Israel \u003cadam.israel@canonical.com\u003e\n"
    },
    {
      "commit": "fc511ed0e2f3bbbdc0ccaa6b0d6ae7cc57b029f9",
      "tree": "0fff4cfc832ed8a26577e5e77954bca5aa300caf",
      "parents": [
        "13950825f557fdc7f8e0859c1d10b63c5e57cfea"
      ],
      "author": {
        "name": "Adam Israel",
        "email": "adam.israel@canonical.com",
        "time": "Fri Sep 21 14:20:55 2018 +0200"
      },
      "committer": {
        "name": "Adam Israel",
        "email": "adam.israel@canonical.com",
        "time": "Tue Sep 25 13:59:28 2018 -0400"
      },
      "message": "Improved integration tests\n\nThis merge includes a refactored integration test framework, to better\ntake advantage of asyncio, and clarifies the test logic so it\u0027s easier\nto extend in the future. It also supports testing of more complex VNFs,\nsuch as multi-vdu, multi-charm VNFs.\n\nn2vc/vnf.py:\n- Remove duplicate status filtering, as it was a poor solution and lead\nto situations where some callbacks were not sent.\n- Added an internal refcount to track libjuju instantiation (helpful in\ndebugging)\n\ntests/charms/layers/proxy-ci/reactive/proxy_ci.py:\n- Fix name of install function (remove confusion while reading logs)\n\ntests/base.py:\n- Add debug() for more consistent and useful logging\n- Refactor: remove parse_metrics\n- Improved error handling\n- Better LXD network connectivity verification\n- Refactor test framework:\n    - Better use of async coded\n    - Make handling of test phase more robust\n    - Support more complex test cases, such as multi-vdu, multi-charm\n\ntests/integration/*\n- Update to use refactored test framework\n\nOther:\n- `make clean` now removes charm artifacts in tests/charms/builds/\n- `make lint` now ignores charm artifacts\n\nSigned-off-by: Adam Israel \u003cadam.israel@canonical.com\u003e\nChange-Id: I43a6d573a7bafdfe3ccb0bb0f0f7d75dcc9c42b1\n"
    },
    {
      "commit": "5e08a0e8fa4fd9d0156d28f8f4e53e5b176c704a",
      "tree": "9c54be88e745853203f046e6d2a4eb542e6563b1",
      "parents": [
        "427f57893cb4bf8aebc0b6f56d0cb3f178d23cf1"
      ],
      "author": {
        "name": "Adam Israel",
        "email": "adam.israel@canonical.com",
        "time": "Thu Sep 06 19:22:47 2018 -0400"
      },
      "committer": {
        "name": "Adam Israel",
        "email": "adam.israel@canonical.com",
        "time": "Thu Sep 13 13:01:10 2018 -0400"
      },
      "message": "Tox + Integration testing\n\nThis commit implements a VNF Descriptor-driven integration\ntest framework, which will lead to integration tests being able\nto run via jenkins, and more robust testing in general.\n\nN2VC:\n\n- Allow the use of an event loop passed when instantiating N2VC\n- Refactor the execution of the initial-config-primitive so that it can\nbe easily re-run, such as the case of when a proxy charm is deployed\nbefore the VNF\u0027s VM is created.\n- Refactor GetPrimitiveStatus, to return the status (queued, running,\ncomplete, failed) of a primitive.\n- Add GetPrimitiveOutput, to return the output of a completed primitive\n- Fix model disconnection when executing a primitive (it was happening\nin the wrong scope)\n- Fix wait_for_application, which was previously unused and broken\n- Add support for parameter\u0027s \u0027data-type\u0027 field\n- Add support for better SSH key management, allowing for a proxy charm\nto be deployed before the VNF, so that it\u0027s public SSH key can be\ninjected when the VNF\u0027s VM is created.\n\nIntegration Tests:\n\nThe integration tests are intended to exercise the expected\nfunctionality of a VNF/charm: deploy the charm, configure it as required\n(i.e., ssh credentials), and execute the VNF\u0027s\ninitial-config-primitives.\n\n- test_native_charm: deploy a native charm to a juju-managed machine and\nverify primitive execution works\n- test_proxy_charm: deploy a proxy charm, configured to talk to a remote\nmachine, and verify primitive execution works\n- test_metrics_native: deploy a native charm and collect a metric\n- test_metrics_proxy: deploy a proxy charm and collect a metric from the\nvnf\n- test_no_initial-config-primitive: deploy a vnf without an\ninitial-config-primitive\n- test_non-string_parameter: deploy a vnf with a non-string parameter in\ninitial-config-primitive\n- test_no_parameter: deploy a vnf with a primitive with no parameters\n\nGeneral:\n- Add a build target to tox.ini so that a .deb is built via Jenkins\n\nTODO (in a follow-up commit):\n- test multi-vdu, multi-charm\n- test deploying a native charm to a manually-provisioned machine\n- Update inline pydoc\n- Add more integration tests\n- Add global per-test timeout to catch stalled tests\n\nSigned-off-by: Adam Israel \u003cadam.israel@canonical.com\u003e\nChange-Id: Id322b45d65c44714e8051fc5764f8c20b76d846c\n"
    },
    {
      "commit": "4b81dfabae6b883bd5cde9c97614bcb410103429",
      "tree": "6f31ecbdae26291f8f903c6624a62e1dc670d0a6",
      "parents": [
        "88a49630895a6045586e6f547c0b6ad118110f25"
      ],
      "author": {
        "name": "Mike Marchetti",
        "email": "mmarchetti@sandvine.com",
        "time": "Wed Apr 18 10:52:18 2018 -0400"
      },
      "committer": {
        "name": "Mike Marchetti",
        "email": "mmarchetti@sandvine.com",
        "time": "Wed Apr 18 11:10:13 2018 -0400"
      },
      "message": "add devops stages for pipeline\n\nSigned-off-by: Mike Marchetti \u003cmmarchetti@sandvine.com\u003e\n"
    },
    {
      "commit": "c3e6c2ec9a1fddfc8e9bd31509b366e633b6d99e",
      "tree": "d4d32d63c22297f7443eb3e9f1960c3e7e970e4d",
      "parents": [
        "1a15d1c84fc826fa7996c1c9d221a324edd33432"
      ],
      "author": {
        "name": "Adam Israel",
        "email": "adam.israel@canonical.com",
        "time": "Thu Mar 01 09:31:50 2018 -0500"
      },
      "committer": {
        "name": "Adam Israel",
        "email": "adam.israel@canonical.com",
        "time": "Fri Apr 06 19:45:40 2018 -0400"
      },
      "message": "New N2VC interface + updated libjuju\n\nThis commit introduces the Python3 N2VC module, which acts as a standard\ninterface to the VCA.\n\nThe goal of this is to provide a common way for modules to interface\nwith the VCA.\n\n- Updated libjuju from 0.6.1 to 0.7.3\n\nSigned-off-by: Adam Israel \u003cadam.israel@canonical.com\u003e\nChange-Id: Ide70fb5ae5797eb6486de24653dc09a23f9c009e\n"
    }
  ]
}
