)]}'
{
  "log": [
    {
      "commit": "9a4ad21edc8398a51f4c834fc0cfa8f7e80100ba",
      "tree": "be89b80a8bce78fdb9b6924d0779b388e105e21b",
      "parents": [
        "7301f22343f8dff8b5ab7c26c3b1b1526169aee3"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Oct 01 18:04:25 2020 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Mon Nov 09 16:06:06 2020 -0600"
      },
      "message": "Multi env support and Kube client integration\n\nKube friendly Beta\n\nPackage versions supports Kube env\n\nAdded:\n  - Env type detection\n  - New option: --use-env, for selecting env\n    when function supports multiple detected envs\n  - Updated config loading\n  - Each module and command type has supported env check\n    and stops execution if it is on unsupported env\n  - Functions can support multiple envs\n  - Kubernetes dependency\n  - Kubenernetes API detection: local and remote\n  - Package checking class hierachy for using Salt or Kube\n  - Remote pod execution routine\n  - Flexible SSH/SSH Forwarder classes: with, ssh,do(), etc\n  - Multithreaded SSH script execution\n  - Number of workers parameter, default 5\n\nFixed:\n  - Config dependency\n  - Command loading with supported envs list\n  - Unittests structure and execution flow updated\n  - Unittests fixes\n  - Fixed debug mode handling\n  - Unified command type/support routine\n  - Nested attrs getter/setter\n\nChange-Id: I3ade693ac21536e2b5dcee4b24d511749dc72759\nRelated-PROD: PROD-35811\n"
    },
    {
      "commit": "3bc95f6ff248b80380f709db4e92b42fc1da18c8",
      "tree": "ab345bd216403f13fff388a8b141daa1b7cd0b0c",
      "parents": [
        "2e213b2573f84188872a4ed0bf1cf76b901d9ddf"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Mar 05 17:00:04 2020 -0600"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue Mar 10 18:27:36 2020 -0500"
      },
      "message": "Migrating to Python v3\n\n - support for Python v3.8.x\n - support for Python v3.5.x\n - new tag, 2019.2.8\n - updates class generation and iterators\n - unittests updated with coverage \u003e75%\n - new coverage routines\n - unittests profiling\n - full fake data for unittests\n - unittest testrun is ~1.5 seconds long\n\nBugfixes\n - 34834, proper use of \u0027sudo\u0027 option\n - multiple proper iterator use\n - 37919, show warning when installed and candidate versions\n   are newer comparing to release version\n\nChange-Id: Idd6b889f7ce94ae0c832e2f0a0346e4fdc3264a3\nRelated-PROD: PROD-34834 PROD-34664 PROD-34919\n"
    },
    {
      "commit": "1839bbfbba18b60aba82fbfbb1823a6ec678a007",
      "tree": "0bd6cd1792a3acd0dddd8bec3d8e17f2dfdf1b4a",
      "parents": [
        "836fac892c2e094ea6e5e121bf3f9d6d3073633f"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Aug 22 17:17:21 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Sep 05 11:45:43 2019 -0500"
      },
      "message": "Additions and fixes to network check\n\n- Per interface tree maps\n- proper virtial nodes detection\n- KVM nodes listing\n- CPU count fix\n- Basic service fail check (wip)\n\nChange-Id: I62b68793404eeff957ef70468c954df2fda869a5\nRelated-PROD: PROD-38972\n"
    },
    {
      "commit": "836fac892c2e094ea6e5e121bf3f9d6d3073633f",
      "tree": "73435e2fee445eadb49afdf00d40d7072cf01bee",
      "parents": [
        "c12e7995b6c1eea7ddb54cfad62e85bc6e85fbda"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Aug 22 13:36:16 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Aug 22 13:36:16 2019 -0500"
      },
      "message": "Network check HTML report\n\n- uniform map generation\n- POC for additional checks on env\n\nChange-Id: I52edcc94f4d9826cbfb1159e5311514097a15f62\nRelated-PROD: PROD-32792\n"
    },
    {
      "commit": "9e4bfafc262405b51c88aed7423846f489b57424",
      "tree": "053d2e2a9fc6f12ac20308bb1e47c2a4accde66c",
      "parents": [
        "3b8e543bf8516d576b74b5bf96aa075f59bc6667"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue Jun 11 15:21:59 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Fri Jun 14 12:43:42 2019 -0500"
      },
      "message": "Fixed net errors, optimizations and sniffer WIP\n\nQuick fix for package versions compare logic:\n - repo update is OK when candidate is the same\n - repo update is not ok when all versions different\n\nChange-Id: I6602d5486b98375b254d0d92a6071fb26582b770\nRelated-PROD: PROD-28199\n"
    },
    {
      "commit": "d0391d4103f0378fdbdeb2b07783f14267c45fa5",
      "tree": "5d3a9624157f1ef4e429267e48cd402ee0699e80",
      "parents": [
        "29ee76f6ff8ca61d1783173a376057826f79af2e"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue May 21 18:48:55 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Wed May 29 20:53:09 2019 -0500"
      },
      "message": "Package report/repo parser integration\n\n - parser able to filter package versions using keywords\n - warning message on missing tag\n - on the fly versions lookup (excluding \u0027*.hotfix\u0027)\n - updated versions compare routine\n - lexical compare uses numbers, not ordinal values\n - updated release version detection\n - final report lists pkg section/app if no description given\n - final report shows repo info for detected release version\n\nFixes:\n - shorter alternate entrpoints: mcp-pkg, mcp-net, cmp-reclass\n - flake8 syntax\n - proper mirantis/non-mirantis versions getting\n - exit on unexpected arguments\n - salt-master class now gets linux codename by default and architecture\n\nChange-Id: I0a2daadca8a1acaecafc8680226dc00d20cc24ce\nRelated-PROD: PROD-28199\n"
    },
    {
      "commit": "e0c5b9ed9c75744676769b45ad0c78199d677551",
      "tree": "f853192fcdefa6c3e1cab90910ec480122188e3a",
      "parents": [
        "bab1efe50cbbb7cdb3ecf840d1282a75a6b67d67"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue Apr 23 18:51:23 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Fri May 03 15:07:21 2019 -0500"
      },
      "message": "Refactor working with Networks and Pinger class\n\n- Mapper moved to separate module\n- Other modules can use Mapper to get desired networks\n- salt_master is now a separate single instance\n- Updated file handling on salt\n- ping.py, an scripted flexible interface to ping command\n  multithreaded ping execution, 15 at once\n- New commands in network: \u0027ping\u0027 and \u0027list\u0027\n- New error when runtime has no network listed in reclass\n\nFixes:\n- Master node code handling\n- Unknown node codes detection\n- Proper node code search and handling\n- File upload procedures updated\n- Packages report fix\n\nChange-Id: I5959210aed53b20b04b05ea880218e93239bb661\nRelated-PROD: PROD-28199\n"
    },
    {
      "commit": "3ebc5637dd19e6c87680e44bac5dc4f8d680bd47",
      "tree": "ad60a9a1d611868ee54cf43611f2f7e448bf6bb0",
      "parents": [
        "fa3b0f26e72824d0215c86ecc95feb4042f66f2b"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Apr 18 16:47:18 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Fri Apr 19 18:39:23 2019 -0500"
      },
      "message": "Network check fixes\n\n- Proper network mapping\n- Proper reclass lookup\n- VIP detection\n- Simple error gathering\n- IP shown as \u0027exploded\u0027, i.e. in CIDR format\n- MTU matching and detection\n- Errors class for handling errors, including codes and indices\n- Summary and detailed errors view\n- Flake8 refactoring\n\nChange-Id: I8ee37d345bdc21c7ad930bf8305acd28f8c121c8\nRelated-PROD: PROD-28199\n"
    },
    {
      "commit": "682e7df1663e5f80ac50243fe9ed77e426b106b0",
      "tree": "322ef53af505add29d4f05bf394aaa8054c7b17e",
      "parents": [
        "4148552173c5ca56d19d14a3b799a667a61230ce"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Fri Apr 12 17:51:55 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Fri Apr 12 17:56:58 2019 -0500"
      },
      "message": "Fix for \u0027full\u0027 parameter\n\nChange-Id: Iffdd19e7bd6b0058fefffe24706c4d94d3117665\nRelated-PROD: PROD-28199\n"
    },
    {
      "commit": "d79dde10ad3a0d2be82d1b6d23de47d45bdd47b0",
      "tree": "f6e815a06ac9edcb3b023304fce71a1a1d6f6b52",
      "parents": [
        "588b2c429b03793013018f5322d7b3882eeb866b"
      ],
      "author": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Wed Mar 13 19:07:46 2019 -0500"
      },
      "committer": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Wed Mar 13 19:07:46 2019 -0500"
      },
      "message": "Routes runtime and reclass parsing and matching\n"
    },
    {
      "commit": "73aa99a1f04fa1ae287cb99920808c26a4cd3b4c",
      "tree": "e0fff5c09b0f25d7de0dc1c18dd6674b48513d94",
      "parents": [
        "c9055712b9974f18790776a6751c99d11f936de8"
      ],
      "author": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Wed Mar 06 10:02:43 2019 -0600"
      },
      "committer": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Wed Mar 06 10:02:43 2019 -0600"
      },
      "message": "Sniffer init\n"
    },
    {
      "commit": "cba3b368b31f2b560bf9a73d424f41ee6f2a2eff",
      "tree": "fc91016223bc48e28cd2398528b8b90d44acc47b",
      "parents": [
        "06ab17d0a42b3cdae5699c7314502b46a07cc273"
      ],
      "author": {
        "name": "Alexander",
        "email": "a.savex@gmail.com",
        "time": "Wed Feb 27 10:06:43 2019 -0600"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 27 10:06:43 2019 -0600"
      },
      "message": "Delete net_checks.py"
    },
    {
      "commit": "bd256e888e76fc2fcc83f1fc14fd9d63ee6dfd50",
      "tree": "66680e0fc56023c6524d0158405a655f5d7da2d7",
      "parents": [
        "5d1eebb08c224f803fb420cc3c346a132c010f7b"
      ],
      "author": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Fri Jan 25 18:27:01 2019 +0100"
      },
      "committer": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Fri Jan 25 18:27:01 2019 +0100"
      },
      "message": "upper device var type fix\n"
    },
    {
      "commit": "5d1eebb08c224f803fb420cc3c346a132c010f7b",
      "tree": "b06c79a252d6b53bc1c2bf070c4e87182845adeb",
      "parents": [
        "0137dad43af437cd81eba416eb13c05ff0e8a089"
      ],
      "author": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Fri Jan 25 18:15:36 2019 +0100"
      },
      "committer": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Fri Jan 25 18:15:36 2019 +0100"
      },
      "message": "Added if dev type detection\n"
    },
    {
      "commit": "0137dad43af437cd81eba416eb13c05ff0e8a089",
      "tree": "781774acd36a128dfa7bb91fd75c5f9a989026ab",
      "parents": [
        "f00743b9c6dbc59ae1e15297acae51e933e351e7"
      ],
      "author": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Fri Jan 25 16:18:42 2019 +0100"
      },
      "committer": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Fri Jan 25 16:18:42 2019 +0100"
      },
      "message": "Improvements in ifs_data.py script and some wording\n"
    },
    {
      "commit": "d48994d994fd5e3dedd1ef0fdd2bc17a51f38506",
      "tree": "14ae9b71bd1fe1d5923e04bb978ca676a61952ec",
      "parents": [
        "0f77e1403b0a6dab7478d923c8e93bb92e5f41e8"
      ],
      "author": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Thu Dec 13 12:13:00 2018 +0100"
      },
      "committer": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Thu Dec 13 12:13:00 2018 +0100"
      },
      "message": "Refactored to include varios reports and checks\n"
    },
    {
      "commit": "fb9f943433b3e9aadd7dd69b2f808c16a4d83b40",
      "tree": "5bf44797737539b66aa545a9dce090986c147234",
      "parents": [
        "ce010bae8c6500066e93ffd862c5221eea600bf8"
      ],
      "author": {
        "name": "Oleksandr Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Fri Nov 23 17:39:12 2018 +0100"
      },
      "committer": {
        "name": "Oleksandr Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Fri Nov 23 17:39:12 2018 +0100"
      },
      "message": "Script to parse \u0027ip a\u0027 output\n"
    },
    {
      "commit": "4448e1358a791a9c6e6bb0134a0b4ac764be9fb6",
      "tree": "7b3a7a158a3b2e6ac7c3b7a2e65f92a836b4c3cd",
      "parents": [
        "93c34bef69451ca3a366725c6753890b08d8cbe0"
      ],
      "author": {
        "name": "savex",
        "email": "a.savex@gmail.com",
        "time": "Wed Apr 25 15:51:14 2018 +0200"
      },
      "committer": {
        "name": "savex",
        "email": "a.savex@gmail.com",
        "time": "Wed Apr 25 15:51:14 2018 +0200"
      },
      "message": "Initial version of installed packages report\n"
    }
  ]
}
