)]}'
{
  "log": [
    {
      "commit": "8565c344371592779073078fd984aba0c0f4ebcb",
      "tree": "e86d018b966d34b638f41444c41bf8dad6aecc69",
      "parents": [
        "80ce0200638f7bac338b8128c2ba2117e5650fcb"
      ],
      "author": {
        "name": "Dennis Dmitriev",
        "email": "ddmitriev@mirantis.com",
        "time": "Mon Feb 11 23:45:03 2019 +0200"
      },
      "committer": {
        "name": "Dennis Dmitriev",
        "email": "ddmitriev@mirantis.com",
        "time": "Tue Feb 12 00:14:19 2019 +0200"
      },
      "message": "Add reporting of [CVP Sanity] results\n\n- add a new method get_artifact() to JenkinsClient\n- add a CLI tool get_jenkins_job_artifact.py , example usage:\n\n    export ENV_NAME\u003dcookied-cicd-queens-dvr-sl\n    . tcp_tests/utils/env_salt\n    . tcp_tests/utils/env_jenkins_cicd\n    tcp_tests/utils/get_jenkins_job_artifact.py \\\n        --job-name cvp-sanity \\\n        --build-number lastBuild \\\n        --artifact-path validation_artifacts/cvp-sanity_report.xml \\\n        --destination-name ./cvp-sanity_report.xml\n\n- add the XML report downloader to the test \"test_run_cvp_func_sanity\"\n- add new report type \"CVP Sanity\" to the testrail reporter\n  swarm-testrail-report.groovy\n\nCloses-Bug: #PROD-25356\nChange-Id: Ic34d76c62c7f70ada5b941e3ffc5b22e1be769d0\n"
    },
    {
      "commit": "80ce0200638f7bac338b8128c2ba2117e5650fcb",
      "tree": "ff69d687489b69319b92001bf133bb3a5fc305cc",
      "parents": [
        "4a84d66b802de839400bdbf914decfd37a683f0d"
      ],
      "author": {
        "name": "Dmitry Tyzhnenko",
        "email": "t.dmitry@gmail.com",
        "time": "Thu Feb 07 13:27:19 2019 +0200"
      },
      "committer": {
        "name": "Dmitry Tyzhnenko",
        "email": "t.dmitry@gmail.com",
        "time": "Mon Feb 11 14:40:23 2019 +0200"
      },
      "message": "Support changes for 2019.2.0 release\n\nChange-Id: Ia2e00ef74198818c8f73fa6fff08c47c947e1e52\n"
    },
    {
      "commit": "13e804b50a4da7ad971ec42b99b57d0921e570f3",
      "tree": "24309bc2e00f1e31cd60c75bd9e706fe919594bf",
      "parents": [
        "236db655b37d4fab2f3f01d0e2d5d3ab1810daeb"
      ],
      "author": {
        "name": "Dennis Dmitriev",
        "email": "ddmitriev@mirantis.com",
        "time": "Tue Oct 09 19:25:14 2018 +0300"
      },
      "committer": {
        "name": "Dennis Dmitriev",
        "email": "dis.xcom@gmail.com",
        "time": "Wed Oct 10 13:29:01 2018 +0000"
      },
      "message": "Fix timeout processing in CICD jobs\n\n- default timeout increased from 1800 to 2400 sec because \u0027core\u0027\n  component deployment takes more than 30 min now\n- print the timeout message in run_jenkins_job.py to stdout along\n  with stderr\n- do not fail get_jenkins_job_stages.py if info[\u0027result\u0027] contains\n  \u0027None\u0027 in cases when the job is failed by timeout. Wait for few\n  seconds, then report the workflow stages \u0027as is\u0027:\n    Create infrastructure: SUCCESS\n    Install core infrastructure: SUCCESS\n    Install infra: IN_PROGRESS\n\nChange-Id: I2ca592a8f5069bb38ec7659f15eb72e4bfba1722\nCloses-Bug:#PROD-23815\n"
    },
    {
      "commit": "27a9679628355f0ce871731a8e45c65ba6ead6bd",
      "tree": "0f8d3e847768dcdbe238aa9c06d57577422de2bc",
      "parents": [
        "7467c4c61094b48e0bbdc57db395282ae885b72e"
      ],
      "author": {
        "name": "Dennis Dmitriev",
        "email": "ddmitriev@mirantis.com",
        "time": "Mon Jul 30 07:52:03 2018 +0300"
      },
      "committer": {
        "name": "Dennis Dmitriev",
        "email": "ddmitriev@mirantis.com",
        "time": "Mon Jul 30 20:31:44 2018 +0300"
      },
      "message": "Grab failure details from pipeline jobs\n\n- if a job fails, try to get the stages from the job\n- if there are stages, get from non-SUCCESS stages all the\n  workflow \u0027nodes\u0027 (the commands performed in the stage, like\n  \u0027running shell script\u0027 or \u0027echo\u0027), and get the log from the\n  failed node only.\n- if there are no stages found (assuming that this is\n  a pipeline job), get the complete job console output\n\nWhen a pipeline job failed, the parent job is failed throwing\nthe exception contaied the found details.\n\nChange-Id: Ie5c2171e5373345b1951de55ba604b5d484340d3\n"
    },
    {
      "commit": "3ec2e53d4b55ecf267671dcd0ac1745c5f69aaf8",
      "tree": "73797b09f3ee58a7711ed6ebb250d50642ce391c",
      "parents": [
        "a397f2649cbda6f976583ec6b145035a848c6243"
      ],
      "author": {
        "name": "Dennis Dmitriev",
        "email": "ddmitriev@mirantis.com",
        "time": "Fri Jun 08 04:33:34 2018 +0300"
      },
      "committer": {
        "name": "Dennis Dmitriev",
        "email": "ddmitriev@mirantis.com",
        "time": "Fri Jun 08 20:58:08 2018 +0300"
      },
      "message": "Add tools to run jenkins jobs and remote commands\n\n- ./tcp_tests/utils/create_devops_env.py\n  Creates a fuel-devops enviromnet with VMs in disabled\n  state, to generate networks and addresses for inventory.\n  Required parameters:\n    export ENV_NAME\u003dtest\n    export LAB_CONFIG_NAME\u003d\u003ctemplate directory with underlay.yml\u003e\n    export MANAGER\u003ddevops\n  Other parameters may be required for the underlay.yml\n\n  CLI example:\n    export PYTHONPATH\u003d$(pwd)\n    python ./tcp_tests/utils/create_devops_env.py\n\n- ./tcp_tests/utils/run_jenkins_job.py\n  Run a jenkins job with parameters, wait for completion,\n  print the console output to stdout while waiting.\n  Required parameters:\n    export JENKINS_URL\u003dhttp://host:port/\n    export JENKINS_USER\u003dadmin\n    export JENKINS_PASS\u003dadmin\n  CLI example:\n\n    JOB_PARAMETERS\u003d\"{\n      \\\"SALT_MASTER_URL\\\": \\\"${SALTAPI_URL}\\\",\n      \\\"STACK_INSTALL\\\": \\\"core,cicd\\\"\n    }\"\n    JOB_PREFIX\u003d\"[ {job_name} #{build_number}:cicd {time} ] \"\n\n    python ./tcp_tests/utils/run_jenkins_job.py \\\n        --verbose \\\n        --job-name\u003ddeploy_openstack \\\n        --job-parameters\u003d\"$JOB_PARAMETERS\" \\\n        --job-output-prefix\u003d\"$JOB_PREFIX\"\n\n- ./tcp_tests/utils/get_param.py\n  Get a single parameter from the salt pillar.\n  Useful to get addresses and other scalar values.\n  Required parameters are the same as for \u0027pepper\u0027 CLI:\n    export SALTAPI_URL\u003dhttp://${SALT_MASTER_IP}:6969/\n    export SALTAPI_USER\u003d\u0027salt\u0027\n    export SALTAPI_PASS\u003d\u0027icecream12345!\u0027\n    export SALTAPI_EAUTH\u003d\u0027pam\u0027\n  CLI example:\n  export JENKINS_HOST\u003d$(./tcp_tests/utils/get_param.py \\\n    -C \u0027I@docker:client:stack:jenkins\u0027 \\\n    pillar.get jenkins:client:master:host)\n\n- ./tcp_tests/utils/run_template_commands.py\n  Run remote commands from the ./tcp_tests/templates/\n  No environment varialbes are required, but may be\n  useful to provide the INI config from some completed\n  deployment.\n  CLI example:\n\n    export TESTS_CONFIGS\u003d$(pwd)/test_salt_deployed.ini\n    ./tcp_tests/utils/run_template_commands.py \\\n        ./tcp_tests/templates/\u003clab_name\u003e/common_services.yaml\n\n- some env files for sourcing to get access to different APIs.\n  This will simplify using the scripts above.\n\n    . ./tcp_tests/utils/env_salt          # salt-api access\n    . ./tcp_tests/utils/env_jenkins_day01 # jenkins on salt-master\n    . ./tcp_tests/utils/env_jenkins_cicd  # jenkins on cicd\n    . ./tcp_tests/utils/env_k8s           # k8s api access\n\n- fixed UnderlayManager.sudo_check_call() to remove\n  deprecation warning.\n\nImprovements to JenkisClient:\n- Add JenkinsWrapper class to workaround the bug\n  https://bugs.launchpad.net/python-jenkins/+bug/1775047\n  which is happened to CICD Jenkins behind the haproxy\n- improved waiting for start of the job in run_build()\n- new argument \u0027interval\u0027 in wait_end_of_build(), to set\n  the polling interval while waiting the job\n- new argument \u0027job_output_prefix\u0027 in wait_end_of_build(),\n  which allows to set the prefix to each line of the console\n  output of the job; with some pre-defined template keys.\n- improved printing the job output in case of non-unicode characters\n\nChange-Id: Ie7d1324d8247e55ba9c0f0492ca39fc176ff4935\n"
    },
    {
      "commit": "a5bd16593a80e272883ed98c45d923a8db345aa8",
      "tree": "c76ae4c12786b7b4b45067c915737e20bb71f488",
      "parents": [
        "940453e873f0e1a070cb9da0743e7f1d642cf44a"
      ],
      "author": {
        "name": "Dennis Dmitriev",
        "email": "ddmitriev@mirantis.com",
        "time": "Thu May 31 20:57:19 2018 +0300"
      },
      "committer": {
        "name": "Dennis Dmitriev",
        "email": "ddmitriev@mirantis.com",
        "time": "Thu May 31 21:34:13 2018 +0300"
      },
      "message": "Add waiting for the correct build_id in the JenkinClient:run_build()\n\nIf the job is queued while waiting for the free executors, then\nthe method was getting the wrong build_id belonging to the\nprevious job, for instance it will return build_id\u003d28 in this example:\n\n  №2​9 (pending—Build #28 is already in progress (ETA:17 min))\n  №2​8 [In progress]  May 31, 2018 6:07 PM\n\n* Add \u0027timeout\u0027 parameter (default 600sec) in run_build()\n  to wait until the queued build is started\n* Add pooling the queue until the build is started, get the\n  build number assigned to build in queue object\n* Add \u0027verbose\u0027 parameter (default False) to show the reason\n  from Jenkins why the build is not started yet, for example:\n\n    pending the job \u0027deploy_openstack\u0027 : Build #22 is already in progress (ETA:1 min 48 sec)\n    pending the job \u0027deploy_openstack\u0027 : Build #22 is already in progress (ETA:1 min 18 sec)\n    pending the job \u0027deploy_openstack\u0027 : Build #22 is already in progress (ETA:48 sec)\n\n* Rename the parameter \u0027print_job_output\u0027 to \u0027verbose\u0027\n  in the method wait_end_of_build() to have the common parameter\n  naming.\n\nChange-Id: Id49b5b45a8127e769b89860b19424081f37f6f38\n"
    },
    {
      "commit": "6111511ab86962c8524c3fd7807b492e31c52a19",
      "tree": "c3e10c9244df7c9c491fcfefc47fb7edc1cb376b",
      "parents": [
        "8b26b6519dd96aa40dbbad7d3483e2dcd8981ab2"
      ],
      "author": {
        "name": "Dennis Dmitriev",
        "email": "ddmitriev@mirantis.com",
        "time": "Thu May 31 06:48:43 2018 +0300"
      },
      "committer": {
        "name": "Dennis Dmitriev",
        "email": "ddmitriev@mirantis.com",
        "time": "Thu May 31 06:57:29 2018 +0300"
      },
      "message": "Add possibility to follow a Jenkins job output during building\n\n* New parameter for JenkinsClient:wait_end_of_build()\n  \u0027print_job_output\u0027: bool\n\nIf \u0027print_job_output\u0027 is True, wait_end_of_build() prints\nthe job output to stdout \u0027as is\u0027, with all html and color tags.\n\n- add the method get_progressive_build_output() to jenkins manager.\n  It is pulling the ./logText/progressiveHtml and gets the\n  text chunks from \u0027start\u0027 to the current latest position of the\n  job console output.\n\nChange-Id: I25112c4c46715aa1837714740c7ee6b327704d4a\n"
    },
    {
      "commit": "b610afd6e3bd7c332c25abca7a0a504bdea58f23",
      "tree": "10a33350bed36f0b573c86e5727e302554c2bff0",
      "parents": [
        "d444b6db04ac04ef01f0440b8602470bf6b6bcd7"
      ],
      "author": {
        "name": "Dmitry Tyzhnenko",
        "email": "t.dmitry@gmail.com",
        "time": "Mon Feb 19 15:43:45 2018 +0200"
      },
      "committer": {
        "name": "Dennis Dmitriev",
        "email": "ddmitriev@mirantis.com",
        "time": "Thu May 17 16:05:40 2018 +0300"
      },
      "message": "Update offline deployment test\n\nChange-Id: I3c935be8ad6f038ce6c25221de6d09e93619c94d\n"
    },
    {
      "commit": "5a5d8da146025c618c21a90b97133f24cc374662",
      "tree": "eeffecd3ff58d0451d45f34eb71a791cf4769024",
      "parents": [
        "839d2ce7cc3602d3bb1c1bdd10e39f9aa49141b9"
      ],
      "author": {
        "name": "Dmitry Tyzhnenko",
        "email": "t.dmitry@gmail.com",
        "time": "Thu Dec 14 14:14:42 2017 +0200"
      },
      "committer": {
        "name": "Dmitry Tyzhnenko",
        "email": "t.dmitry@gmail.com",
        "time": "Fri Feb 09 15:00:12 2018 +0200"
      },
      "message": "Template and deploy test for day01 deployment\n\nAdd physical-mcp-ocata-offline-ovs template\nAdd day01 offline test\n\nChange-Id: I61211150575a84d8f3e44be2ef9c64855e5f2db3\n"
    }
  ]
}
