)]}'
{
  "log": [
    {
      "commit": "0bcf31bb53db3f3f74bb5b90dbe9b2c1b893ee89",
      "tree": "29ddd7bcc7dab0dd262c6f58f1cb046411271307",
      "parents": [
        "f6563ea4dfe1500029582136c006ceb9f5330e29"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue Mar 29 17:38:58 2022 -0500"
      },
      "committer": {
        "name": "Oleksandr Savatieiev",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu May 25 22:42:55 2023 +0000"
      },
      "message": "Log collector module\n\nNew:\n  - [Done] multiple namespace selector\n  - [Done] keyword-based pod selector\n  - [Done] per-pod logs syntax detection and parsing\n  - [Differed] in-place filtering for shorter logs\n  - [Done] individual logs timestamp detection\n  - [Done] Unix time bases Timestamp sorting\n  - [Done] Single file logs output using common format\n  - [Done] add all log types from all MOS namespaces and pods\n\nUpdate:\n  - resource preparation can be skipped per module\n  - updated log collection using multiple threads\n  - new setting LOG_COLLECT_THREADS\n\nFixes:\n  - Network MTU fix\n  - Faster cmd execution on single pod\n  - Ceph benchmark validations\n  - Ceph benchmark report sorting\n  - Daemonset deployment with nodes skipped\n  - Network tree debugging script\n  - Tree depth limiter, i.e. stackoverflow prevention\n\n  Related-PROD: PROD-36845\n\nChange-Id: Icf229ac62078c6418ab4dbdff12b0d27ed42af1d\n"
    },
    {
      "commit": "163aa0432876cb578275cc9d035fb3cc3b95993a",
      "tree": "ddd2ff4c980c2644e2a00c78c8768538036338b8",
      "parents": [
        "6b4e8fece146c6415da610ec839a04d946863e14"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Dec 01 11:58:32 2022 -0600"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Dec 01 11:58:32 2022 -0600"
      },
      "message": "Skiplist hotfix and recoursion depth check\n\n  Related-PROD: PROD-37028\n\nChange-Id: Id47ebbca3d1e549f8d7b28b08be74c6498bd3955\n"
    },
    {
      "commit": "0989ecf8c7a726af65ba89a36a85c4e98c6f4884",
      "tree": "583cac67bdcbf201b3504af67a5ef2f94eda501e",
      "parents": [
        "41dd0ccfc44bd496a363c4af276c0e5d7f5b63ee"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue Mar 29 13:43:21 2022 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue Mar 29 13:43:21 2022 -0500"
      },
      "message": "Add copyright info to all python files and bump version\n\n  Related-PROD: PROD-36846\n\nChange-Id: I47c25d81d4173286e1729cef7a1cc321a495316f\n"
    },
    {
      "commit": "b21295478cc3e6b36c6daf4dcb299b51db5abdce",
      "tree": "35d717f9b5d9102d5835ec014d0a2f8e74bcc855",
      "parents": [
        "3034ba5d483b9d286fa0cea70daec79b791c34d4"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue Nov 23 15:49:42 2021 -0600"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue Nov 23 15:49:42 2021 -0600"
      },
      "message": "cfg-checker ceph bench module alpha version\n\n - Ceph benchmark report (beta)\n - Updated result time choosing. Now results reported based on start time\n - New methods for listing\n - Cleanup-only mode\n - Unified results processing\n - Additional ceph info gather\n - Experimental barchart graph example\n\nFixes:\n - Kube API client recreated each time for stability (HTTP/WebSocket specifics)\n - args naming fixes\n -\n\nChange-Id: Id541f789a00ab4ee827603c5b6f7f07899aaa7c5\n"
    },
    {
      "commit": "b78191f88af533c428b67a54a01740a9d7f4b80e",
      "tree": "94491e0d8b241755205b9c992526df78dfe359e4",
      "parents": [
        "df9cc3adbaf9180c1750e2a4828d5e2171a28dee"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue Nov 02 16:35:46 2021 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Nov 04 15:07:17 2021 -0500"
      },
      "message": "mcp-agent mode for mcp-checker with web-info and REST API\n\nNew:\n - agent index page serving on 0.0.0.0:8765\n - REST API with modular approach to modules\n - \u0027fio\u0027 module working via thread-safe Thread able to return\n   real-time info on its status\n - \u0027fio\u0027 module scheduled run option\n - ability to preserve multiple testrun results while active\n - dockerfile for agent image\n\nFixed:\n - Network report fixes to work on Kube envs\n - Fixed function for running commands inside daemonset pods\n\n Related-PROD: PROD-36669\n\nChange-Id: I57e73001247af9187680bfc5744590eef219d93c\n"
    },
    {
      "commit": "dcb792f43d9c49135f96777d40f453e6fe96ff05",
      "tree": "37eacf9c0f35bd89ce31b017e20cc833e220e552",
      "parents": [
        "7b0ee9a9232f7a7628ff931b110c9c01a630bed5"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Mon Oct 04 14:24:21 2021 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue Oct 12 13:13:57 2021 -0500"
      },
      "message": "Ceph Info command\n\n Updates\n - ceph module with \u0027info\u0027, \u0027report\u0027 and \u0027bench\u0027 commands\n - mcp-checker ceph info command is collecting Ceph config\n   and creates an archive\n - ceph report command creates HTML document with\n   info collected from Ceph cluster\n - Basic SMART data output in info and full output in report\n - skeleton of the ceph bench command to run synced tests\n\n Fixes\n - kube helper commands uses proper naming\n\nChange-Id: Ia5aaa343f7d1c38a67d34e60215801bbb0fea097\nRelated-PROD: PROD-36605\n"
    },
    {
      "commit": "7b0ee9a9232f7a7628ff931b110c9c01a630bed5",
      "tree": "b2bf27a65733e5c4c3fe5ac068b655edb96ab46b",
      "parents": [
        "3cdb1bd8643934ccc80fd5f3acf165d4e8cf17e4"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue Sep 21 17:16:17 2021 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Wed Sep 22 12:07:02 2021 -0500"
      },
      "message": "Updated ping command to work with MCC/MOS\n\n  - updated Pinger class with inherited structure for Salt and Kube\n  - implemented DeamonSet handling in KubeApi interface\n  - implemented put-textfile and series of ConfigMap methods in KubeApi\n  - updated Pinger to use multiple --cidr commands at once\n  - update Summary section to be more informative and human readable\n\nChange-Id: Iac18a619d0bb9a36a286a07f38aeba8f99a454ca\nRelated-PROD: PROD-36603\n"
    },
    {
      "commit": "3cdb1bd8643934ccc80fd5f3acf165d4e8cf17e4",
      "tree": "7e6fbb0e8551972f5fc8d3465905f9f37553dda4",
      "parents": [
        "f6ec91ba6448049088fa60375b2e0b23dac0c52d"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Fri Sep 10 15:51:11 2021 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Fri Sep 10 15:51:11 2021 -0500"
      },
      "message": "Updates for network checker\n\n - New checks for uniform MTU and Duplicate IPs\n - Updated mapping for K8s envs\n - K8s envs can skip networks using IF name keywords. Defaults to \"docker\"\n - Network listing now gives details on Names and used MTU\n\n Related-PROD: PROD-35288\n\nChange-Id: Ida345ce1762038f744c460805d607d1439e434b8\n"
    },
    {
      "commit": "1f90e7bf57e879abae4e474e47273741b50fd3f3",
      "tree": "2e459768906c6c496318e41947fdb885000261d4",
      "parents": [
        "c4f596293b9e049a575a73cae1718d7a506a5c5d"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Fri Sep 03 15:31:28 2021 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Fri Sep 03 15:31:28 2021 -0500"
      },
      "message": "Network check for MCC/MOS\n\n - Network info gathering using DaemonSet with \u0027hostNetwork\u003dTrue\u0027\n - DaemonSet handling routines\n - Mapper and Checker refactoring for Kube\n\nFixes\n - SSH timeouts handling using env vars\n   MCP_SSH_TIMEOUT when connecting\n   MCP_SCRIPT_RUN_TIMEOUT when running command\n - Progress class supports 0 as an index\n\n Related-PROD: PROD-36575\n\nChange-Id: Ie03a9051007eeb788901acae3696ea2bfdfe33e2\n"
    },
    {
      "commit": "c4f596293b9e049a575a73cae1718d7a506a5c5d",
      "tree": "d64196097f69f38a22b706d563237f7a1c2d6eab",
      "parents": [
        "e8643648b25e23c35f05406861dd61fb24db3fd2"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Fri Aug 27 13:42:00 2021 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Fri Aug 27 13:42:00 2021 -0500"
      },
      "message": "Updates to kube env interaction\n\n - local KUBECONFIG var detection\n - proper handling of env vars\n - fixes for KUBECONFIG loading when env file is given/not given\n - main IP extraction\n - wording fixes\n\n Related-PROD: PROD-35903\n\nChange-Id: I68f1fd18a72a99502460d3b6158a43cd60d7cf1b\n"
    },
    {
      "commit": "e8643648b25e23c35f05406861dd61fb24db3fd2",
      "tree": "ed4ed92df4c1eaefa719375d8cf90fadff6b09a4",
      "parents": [
        "359e57542081f8b6fa92032fd91787e118571a1b"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Mon Aug 23 14:08:46 2021 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Mon Aug 23 14:08:46 2021 -0500"
      },
      "message": "Update package versions to 2019.2.15 and fix flake8\n\nChange-Id: I491a6f23065189390f7287b1ce756ac5e88d2b99\n"
    },
    {
      "commit": "359e57542081f8b6fa92032fd91787e118571a1b",
      "tree": "691554e8dddd3eb85be90d2f0d7c0cc7bd81151a",
      "parents": [
        "effa068a16d721f448a6d6c3b4657525d110a29d"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Mon Aug 16 17:28:30 2021 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Mon Aug 16 17:28:30 2021 -0500"
      },
      "message": "Multiple K8s integration issues\n\n   - Fixed config loading issue on remote env\n   - Fixed kube.conf path passing\n   - Fixed skip.list handling\n\n  Related-PROD: PROD-35903\n\nChange-Id: I4c22607dcbfab7dfe15d86b5a6ece77c32aaac2c\n"
    },
    {
      "commit": "c85654542f012792c5af429cf74ce6d004f0d24c",
      "tree": "d9159e74337ba9f0fdeccfdd1cbab78326c9ae44",
      "parents": [
        "f0c628cf3539a32fa3a23aa0459858d4d2d0ac4f"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Dec 31 12:01:28 2020 -0600"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Dec 31 12:01:28 2020 -0600"
      },
      "message": "Pinger errors summary hotfix\n\nChange-Id: I373f3e9184fad91065995a149aee7810ecfdae03\nRelated-PROD: PROD-35903\n"
    },
    {
      "commit": "f0c628cf3539a32fa3a23aa0459858d4d2d0ac4f",
      "tree": "24c16afe0dcc04a68bd6449f05255efe122e9aac",
      "parents": [
        "aae5804c60eb6d2b6ce6c6f2c657ed8401e0b9bf"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Dec 31 11:56:45 2020 -0600"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Dec 31 11:56:45 2020 -0600"
      },
      "message": "Network pinger hotfixes\n\nChange-Id: I0b6bc80037cebe13c5e6bc79510b9522f64e9606\nRelated-PROD: PROD-35903\n"
    },
    {
      "commit": "aae5804c60eb6d2b6ce6c6f2c657ed8401e0b9bf",
      "tree": "a903f9f19e59d29671e903bd71b3ff5718f39fa5",
      "parents": [
        "34874cd4872d17646b604c0820aaec2e4f5fa8f6"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Dec 31 11:48:28 2020 -0600"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Dec 31 11:48:28 2020 -0600"
      },
      "message": "Network pinger module fix\n\nChange-Id: I7fc47c4db8e995d40da104ffc0802cc67b39ec32\nRelated-PROD: PROD-35903\n"
    },
    {
      "commit": "205546cffe1faf855e571574a460fe3a1e0d8bb4",
      "tree": "6466a8c522237b0b4e3f7369da18ac6c76615489",
      "parents": [
        "363089453bbb82e066b64bd92829938fc1ac0b1d"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Wed Dec 30 19:22:30 2020 -0600"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Wed Dec 30 19:26:23 2020 -0600"
      },
      "message": "Network Module class structure for Kube support\n\nRelated-PROD: PROD-35903\n\nChange-Id: I474a347452b472df3e2272357d1a036b4893e844\n"
    },
    {
      "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": "e9908f7008af986053465f73224dbdacca8e5f0a",
      "tree": "00ecc3c2723dfbf49aa2de0c16a2d961747c352a",
      "parents": [
        "386a2b4e209e8094c434011cd2cd48175ff5380e"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue May 19 16:04:53 2020 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Wed Jun 17 16:27:55 2020 -0500"
      },
      "message": "Skip nodes functionality for Package and Network modules\n\nAdded to main entrypoint\n- Skip nodes using simple argument with \u0027*\u0027 as a trailing wildcard\n- Skip nodes using file list\n\nUsability improovement\n- Node list preview in status line\n- Node stats alignment in net report\n\nMinor fixes:\n- Python version detection (3.5+)\n- Node counter for each status\n- Proper node skip handling\n\nChange-Id: I086ef501bc06f0e739df25349257f1c63a2e2fcf\nRelated-PROD: PROD-35009\n"
    },
    {
      "commit": "9b2c1d14852be3eff3958c55d19261ac86b2c658",
      "tree": "dd4f57c691282fac1eb94a80ebe3f808d4feb2a1",
      "parents": [
        "3bc95f6ff248b80380f709db4e92b42fc1da18c8"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Mar 19 09:32:35 2020 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Mar 19 09:32:35 2020 -0500"
      },
      "message": "Migration follow up patch 1\n\n - fix format alignment if column is empty\n\nChange-Id: I0f4eda95a8dd1ee7d7029c04a0ae9b8cc2a3dcc4\nRelated-PROD: PROD-34664\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": "2e213b2573f84188872a4ed0bf1cf76b901d9ddf",
      "tree": "176081bc746034dd97d37a42d5d4e0816f14f8d8",
      "parents": [
        "db4c4108b28ea16d5edf43067e5c91a38328c00d"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Dec 05 10:40:29 2019 -0600"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Dec 05 10:40:29 2019 -0600"
      },
      "message": "New package versions and Network ping hotfix\n\n- added packages for 2.6 and 2.7\n- method hotfix for --detailed option in mcp-net ping command\n- some draft routines to get BIOS versions in net report\n\nChange-Id: I927a95eb6a3041989e9d3099a1fa11b5edfd9757\nRelated-PROD: PROD-34257\n"
    },
    {
      "commit": "f3dbe86b9b1b6ced44a4536fa2ee739e422abfdf",
      "tree": "1d7bde79252c044fa7586ae95f7aabe87cceb2af",
      "parents": [
        "c6566d8737c2a9821745e46c63f3686de17732f9"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Mon Oct 07 15:17:04 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Mon Oct 07 15:17:04 2019 -0500"
      },
      "message": "Fixes for Network check report\n\n - default values if nodee check failed\n - net interface mapping fix\n - net tree creation fix for multi-branched bonds\n\nChange-Id: Ic1a4709d258201c7ed4a7a70aaef98bb9aa53f7b\nRelated-PROD: PROD-32792\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": "3b8e543bf8516d576b74b5bf96aa075f59bc6667",
      "tree": "a00b4f605e64d70729da6f7a8f8838fb793c3819",
      "parents": [
        "b3dc859a7b556255bbc12d62ff5641781fd054fa"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue Jun 11 15:21:59 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue Jun 11 15:21:59 2019 -0500"
      },
      "message": "Fixed net errors and slight optimizations\n\nChange-Id: Ic4257875764b77e7565271b5d2d5759ef704f6d2\nRelated-PROD: PROD-28199\n"
    },
    {
      "commit": "b3dc859a7b556255bbc12d62ff5641781fd054fa",
      "tree": "4b88f11c849f5a809ad1fd2435f1d32f799e8eee",
      "parents": [
        "4067f004f60bea544f5c6a0bce46d6c04614db0b"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue Jun 11 13:20:36 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue Jun 11 13:24:11 2019 -0500"
      },
      "message": "Fixes for routes detection and proper interface names extraction\n\n - proper bond naming hierachy saving/mapping\n - proper default gate match with current net\n - MTU matching fix\n\nChange-Id: I4494a6ef695248dc29dabc5f54678a5d6f578c81\nRelated-PROD: PROD-28199\n"
    },
    {
      "commit": "4067f004f60bea544f5c6a0bce46d6c04614db0b",
      "tree": "12c45324de54752efb6ee6c9f20d28c68f8ec7f7",
      "parents": [
        "ab232e46fc41385ae6481f7a1a27836b2dee63b7"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue Jun 11 10:47:16 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue Jun 11 10:47:16 2019 -0500"
      },
      "message": "Fix for _d_gate\n\nChange-Id: I1526536f622e3d25f12b837aacfcfd26a669d73f\nRelated-PROD: PROD-28199\n"
    },
    {
      "commit": "ab232e46fc41385ae6481f7a1a27836b2dee63b7",
      "tree": "9d984a5b87abbdc5a4799ab1a257e2fae975dc9d",
      "parents": [
        "6b633ecac90b2467cf2ab925dac54812106857ef"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Jun 06 19:44:34 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Tue Jun 11 10:40:15 2019 -0500"
      },
      "message": "Updates to mapper and network check\n\n - support for proto types: DHCP, MANUAL, STATIC\n - proper interface mappings reclass/runtime\n - updated map\n - first step in bridge check support\n\nChange-Id: I2f3293332913df57917be552dcb0ac66fc2c68bc\nRelated-PROD: PROD-28199\n"
    },
    {
      "commit": "6b633ecac90b2467cf2ab925dac54812106857ef",
      "tree": "83f6f32e0f059fab95df346e7363d15f7aeb05b8",
      "parents": [
        "e9547d89fdf2f93082a500f79687bc82932657c7"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Jun 06 19:44:34 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu Jun 06 19:44:34 2019 -0500"
      },
      "message": "Updates to mapper and network check\n\n - support for proto types: DHCP, MANUAL, STATIC\n - proper interface mappings reclass/runtime\n - updated map\n - first step in bridge check support\n\nChange-Id: Idd9f2aa22e34bcaa59a18776c8ebb6be086d598f\nRelated-PROD: PROD-28199\n"
    },
    {
      "commit": "e9547d89fdf2f93082a500f79687bc82932657c7",
      "tree": "ce7a201633dada52718a05e8d3a0fd6d45d93d68",
      "parents": [
        "6df29ad5441bbc72150a77a0a0d154cc7ebdf7f1"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Mon Jun 03 15:22:50 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Mon Jun 03 15:28:04 2019 -0500"
      },
      "message": "Fixes after live cloud run\n\n - ping, proper handling of multiple IPs on one interface\n - node skips accounted on gathering linux versions\n - \u0027--force-tag\u0027 option for package report\n - \u0027--exclude-keywords\u0027 option for package report\n - \u0027versions\u0027 foldereincluded on \u0027setup.py install\u0027\n\nChange-Id: I5e1b84f187270789223d50887d9d5d5cb78ee5ba\nRelated-PROD: PROD-28199\n"
    },
    {
      "commit": "92e07cebbcd2dea0b38f23dc465a7a1384af60bf",
      "tree": "aabf3d117bf9a95c9ea26c52c736fd859e30cbd7",
      "parents": [
        "cf91b18b916874ea5f669297cd9cc386445fa0b2"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Fri May 31 16:00:03 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Fri May 31 16:11:22 2019 -0500"
      },
      "message": "Parsing Ping return codes and saving iteration details\n\n - ping command detects error types and saves events\n - exit on no packets to send\n - ping now uses runtime map (as reclass can have DHCP set)\n\nChange-Id: Iad66bd90d0c5a43e04fd785f02f8e1c2769dda62\nRelated-PROD: PROD-28199\n"
    },
    {
      "commit": "cf91b18b916874ea5f669297cd9cc386445fa0b2",
      "tree": "797d1337d4cf1e7a79b6c01682c01f62b3e07842",
      "parents": [
        "d0391d4103f0378fdbdeb2b07783f14267c45fa5"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Fri May 31 11:57:07 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Fri May 31 11:57:07 2019 -0500"
      },
      "message": "Regression fixes for command execution\n\nChange-Id: I8591a206268b7afcb8f561f2eab4fc21b2172fc1\nRelated-PROD: PROD-28199\n"
    },
    {
      "commit": "d9fd85e5bfd7ba5d800021ac7af0545c5123a7c9",
      "tree": "ec3ba4916481cb7c0173b5223b61d57f38b29213",
      "parents": [
        "e0c5b9ed9c75744676769b45ad0c78199d677551"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu May 16 16:58:24 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Thu May 16 17:07:25 2019 -0500"
      },
      "message": "Automated Paсkage versions update for tags\n\nModule repos.py\n - ReposInfo(), walks mirror using HTTP and builds\n   all repos map available\n - RepoManager(), using repos map builds package versions map\n   either for specific tags or for all of them\n\nFixes:\n - Progress class clears line remainder on change\n\nUtils:\n - Download GZ file into memory\n - TGZ file interface, CRU (no deletion)\n\nChange-Id: Ifdb37aa4b68fb25f642b2089cf16cd242ed25a0b\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": "bab1efe50cbbb7cdb3ecf840d1282a75a6b67d67",
      "tree": "d2c8e491ca80ba0cae18400b2766c792ccfd5f61",
      "parents": [
        "265f45e512bcc5ddade343d798c5560873696d0a"
      ],
      "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 Apr 26 11:56:48 2019 -0500"
      },
      "message": "Unified command execution and unit tests\n\n- All arguments inits moved to own clases\n- Added unified way to execute commands\n- Unit test structure and very basic tests\n- Command line script to test coverage\n- Argument parsers moved to corresponding commands\n- Automatic parsers and command mapping\n\nChange-Id: Id099d14702d9590729583dfd9574bd57022efac5\nRelated-PROD: PROD-28199\n"
    },
    {
      "commit": "b151fbeca03fb2ee6625d23d9c64317191b1d3d0",
      "tree": "780d4ecda3bde7c1e71d0448151d3ee0fccb351d",
      "parents": [
        "ec688e099a2dcdef147db3a0d61477ade519479e"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Mon Apr 22 16:53:30 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Mon Apr 22 16:53:30 2019 -0500"
      },
      "message": "Updates on error logging and handling\n\n- iterative error log storage\n- config like value storage\n- updates logging format for improved readablility\n\nChange-Id: I171a1b44452c1225340a7d7b1f7593ab9b8ce7c2\nRelated-PROD: PROD-28199\n"
    },
    {
      "commit": "ec688e099a2dcdef147db3a0d61477ade519479e",
      "tree": "781d1c4fc1cc0ba41da27718dadc46cee2aa0465",
      "parents": [
        "a05f74ed4492d68932438c9e476188beb9928705"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Mon Apr 22 12:05:06 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Mon Apr 22 12:06:38 2019 -0500"
      },
      "message": "Network checks updates\n\n- Node specific network errors\n\nChange-Id: I4cc830aeaa129db20895a6902a429facf8622b20\nRelated-PROD: PROD-28199\n"
    },
    {
      "commit": "a05f74ed4492d68932438c9e476188beb9928705",
      "tree": "95f5f0809437dfc8d70405fbf229861d6617ddfb",
      "parents": [
        "7c9494ea784eb07457bef105fef4290451bf0b14"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Mon Apr 22 10:57:25 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Mon Apr 22 10:57:25 2019 -0500"
      },
      "message": "Quick fix on network mapping output\n\nChange-Id: I1966b681f718729f82a507bfde55319d4a996344\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": "4148552173c5ca56d19d14a3b799a667a61230ce",
      "tree": "2d9cdaba78345b72ad1ef1dd616e2280b8ac406b",
      "parents": [
        "3db12a7e1ebe77a19ba33185fd69c18988c62153"
      ],
      "author": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Fri Apr 12 17:26:18 2019 -0500"
      },
      "committer": {
        "name": "Alex",
        "email": "osavatieiev@mirantis.com",
        "time": "Fri Apr 12 17:33:57 2019 -0500"
      },
      "message": "Merge upstream version\n\nRelated-PROD: PROD-28199\n\nChange-Id: I5d9dbde1c3ac577fb30fa5d6b1ff18bcee28a0d7\n"
    },
    {
      "commit": "ccebcbe415b2bfc6751f1ca5ff8247ea693130fc",
      "tree": "b46a4882e28c1e26d1dbeecfd30d5eb94db07362",
      "parents": [
        "30d8c5294c58a3e00ca0f9475f39533ca33e2f99"
      ],
      "author": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Mon Mar 18 17:31:15 2019 -0500"
      },
      "committer": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Mon Mar 18 17:31:15 2019 -0500"
      },
      "message": "gateway search quickfix\n"
    },
    {
      "commit": "30d8c5294c58a3e00ca0f9475f39533ca33e2f99",
      "tree": "b3f1efb22f7081c15198ed097f5da0221a824a1b",
      "parents": [
        "a1f6f8ca4af207e1f5186fa40d853763cdfc589a"
      ],
      "author": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Mon Mar 18 17:27:21 2019 -0500"
      },
      "committer": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Mon Mar 18 17:27:21 2019 -0500"
      },
      "message": "no IF handling\n"
    },
    {
      "commit": "a1f6f8ca4af207e1f5186fa40d853763cdfc589a",
      "tree": "be37abce3d84b5a81815f04002700ccb3ee846c9",
      "parents": [
        "08428f260e2b700d01fdfa036baa03642c68546e"
      ],
      "author": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Mon Mar 18 17:13:55 2019 -0500"
      },
      "committer": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Mon Mar 18 17:13:55 2019 -0500"
      },
      "message": "Node skip on no IF in reclass\n"
    },
    {
      "commit": "08428f260e2b700d01fdfa036baa03642c68546e",
      "tree": "776382438f020bd3b45d2c14a82a7942722e899a",
      "parents": [
        "efa79c4dffabfc5aa3b3042fe5e6e3e62591be55"
      ],
      "author": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Thu Mar 14 21:21:31 2019 -0500"
      },
      "committer": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Thu Mar 14 21:21:31 2019 -0500"
      },
      "message": "Reverted to simple network matching\n"
    },
    {
      "commit": "efa79c4dffabfc5aa3b3042fe5e6e3e62591be55",
      "tree": "38f5d1df7dbb74a990447df4de327d114d54507a",
      "parents": [
        "d79dde10ad3a0d2be82d1b6d23de47d45bdd47b0"
      ],
      "author": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Thu Mar 14 19:14:04 2019 -0500"
      },
      "committer": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Thu Mar 14 19:14:04 2019 -0500"
      },
      "message": "Skipping nodes, error handling\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": "588b2c429b03793013018f5322d7b3882eeb866b",
      "tree": "f9e4c392f65775bb12d9fa8e65c5f17ee5431323",
      "parents": [
        "6d010be027c6c41bdb011354ea365f5fd96cc1dd"
      ],
      "author": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Mon Mar 11 10:39:21 2019 -0500"
      },
      "committer": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Mon Mar 11 10:39:21 2019 -0500"
      },
      "message": "Network  cli formatting\n"
    },
    {
      "commit": "42b89fa5e55dec37e75371dce776ee1aee86e748",
      "tree": "9d70f80bc07a912cd2a92cfc9138b492830dd04d",
      "parents": [
        "01f0d7f4867073b93a1012f3db42432603367c3f"
      ],
      "author": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Thu Mar 07 18:45:26 2019 -0600"
      },
      "committer": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Thu Mar 07 18:45:26 2019 -0600"
      },
      "message": "Reclass values print and message updates\n"
    },
    {
      "commit": "01f0d7f4867073b93a1012f3db42432603367c3f",
      "tree": "b7bb20bf20652fcc7a641bb05c5108c3cffad524",
      "parents": [
        "f526dc0c913c3080b11b8db6ce2946f71f9d4afb"
      ],
      "author": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Thu Mar 07 17:53:29 2019 -0600"
      },
      "committer": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Thu Mar 07 17:53:29 2019 -0600"
      },
      "message": "Reclass networks and data collection refactoring\n"
    },
    {
      "commit": "f526dc0c913c3080b11b8db6ce2946f71f9d4afb",
      "tree": "513ed37fa66e9aa025052766f33be8615c39acec",
      "parents": [
        "73aa99a1f04fa1ae287cb99920808c26a4cd3b4c"
      ],
      "author": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Wed Mar 06 10:11:32 2019 -0600"
      },
      "committer": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Wed Mar 06 10:11:32 2019 -0600"
      },
      "message": "Import fixes\n"
    },
    {
      "commit": "c9055712b9974f18790776a6751c99d11f936de8",
      "tree": "c00f31730be98a45b6f8a1d54a18298181bc3fe0",
      "parents": [
        "f808cd25aa60c6d85e17e8baa6e8d0ed64e1d961"
      ],
      "author": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Fri Mar 01 14:43:56 2019 -0600"
      },
      "committer": {
        "name": "Alex Savatieiev",
        "email": "a.savex@gmail.com",
        "time": "Fri Mar 01 14:43:56 2019 -0600"
      },
      "message": "Module refactoring and dynamic loading\n"
    }
  ]
}
