)]}'
{".zuul.yaml":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"change_message_id":"f2f914285a1e160cf3ee56fcce5b510096e0f3c6","unresolved":false,"context_lines":[{"line_number":308,"context_line":"    parent: tempest-full"},{"line_number":309,"context_line":"    override-checkout: stable/pike"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"- job:"},{"line_number":312,"context_line":"    name: tempest-tox-plugin-sanity-check"},{"line_number":313,"context_line":"    parent: tox"},{"line_number":314,"context_line":"    description: |"},{"line_number":315,"context_line":"      Run tempest plugin sanity check script using tox."},{"line_number":316,"context_line":"    nodeset: ubuntu-xenial"},{"line_number":317,"context_line":"    vars:"},{"line_number":318,"context_line":"      tox_envlist: plugin-sanity-check"},{"line_number":319,"context_line":"    voting: false"},{"line_number":320,"context_line":"    timeout: 5000"},{"line_number":321,"context_line":"    irrelevant-files:"},{"line_number":322,"context_line":"      - ^.*\\.rst$"},{"line_number":323,"context_line":"      - ^doc/.*$"},{"line_number":324,"context_line":"      - ^etc/.*$"},{"line_number":325,"context_line":"      - ^releasenotes/.*$"},{"line_number":326,"context_line":"      - ^tempest/hacking/.*$"},{"line_number":327,"context_line":"      - ^tempest/tests/.*$"},{"line_number":328,"context_line":"    required-projects:"},{"line_number":329,"context_line":"      - git.openstack.org/openstack/airship-tempest-plugin"},{"line_number":330,"context_line":"      - git.openstack.org/openstack/almanach"},{"line_number":331,"context_line":"      - git.openstack.org/openstack/aodh"},{"line_number":332,"context_line":"      - git.openstack.org/openstack/barbican-tempest-plugin"},{"line_number":333,"context_line":"      - git.openstack.org/openstack/blazar-tempest-plugin"},{"line_number":334,"context_line":"      - git.openstack.org/openstack/ceilometer"},{"line_number":335,"context_line":"      - git.openstack.org/openstack/cinder-tempest-plugin"},{"line_number":336,"context_line":"      - git.openstack.org/openstack/congress-tempest-plugin"},{"line_number":337,"context_line":"      - git.openstack.org/openstack/designate-tempest-plugin"},{"line_number":338,"context_line":"      - git.openstack.org/openstack/ec2api-tempest-plugin"},{"line_number":339,"context_line":"      - git.openstack.org/openstack/freezer"},{"line_number":340,"context_line":"      - git.openstack.org/openstack/freezer-api"},{"line_number":341,"context_line":"      - git.openstack.org/openstack/freezer-tempest-plugin"},{"line_number":342,"context_line":"      - git.openstack.org/openstack/gce-api"},{"line_number":343,"context_line":"      - git.openstack.org/openstack/glare"},{"line_number":344,"context_line":"      - git.openstack.org/openstack/heat-tempest-plugin"},{"line_number":345,"context_line":"      - git.openstack.org/openstack/intel-nfv-ci-tests"},{"line_number":346,"context_line":"      - git.openstack.org/openstack/ironic-tempest-plugin"},{"line_number":347,"context_line":"      - git.openstack.org/openstack/ironic-inspector"},{"line_number":348,"context_line":"      - git.openstack.org/openstack/keystone-tempest-plugin"},{"line_number":349,"context_line":"      - git.openstack.org/openstack/kingbird"},{"line_number":350,"context_line":"      - git.openstack.org/openstack/kuryr-tempest-plugin"},{"line_number":351,"context_line":"      - git.openstack.org/openstack/magnum"},{"line_number":352,"context_line":"      - git.openstack.org/openstack/magnum-tempest-plugin"},{"line_number":353,"context_line":"      - git.openstack.org/openstack/manila"},{"line_number":354,"context_line":"      - git.openstack.org/openstack/manila-tempest-plugin"},{"line_number":355,"context_line":"      - git.openstack.org/openstack/mistral-tempest-plugin"},{"line_number":356,"context_line":"      - git.openstack.org/openstack/mogan"},{"line_number":357,"context_line":"      - git.openstack.org/openstack/monasca-api"},{"line_number":358,"context_line":"      - git.openstack.org/openstack/monasca-log-api"},{"line_number":359,"context_line":"      - git.openstack.org/openstack/monasca-tempest-plugin"},{"line_number":360,"context_line":"      - git.openstack.org/openstack/murano-tempest-plugin"},{"line_number":361,"context_line":"      - git.openstack.org/openstack/networking-bgpvpn"},{"line_number":362,"context_line":"      - git.openstack.org/openstack/networking-cisco"},{"line_number":363,"context_line":"      - git.openstack.org/openstack/networking-fortinet"},{"line_number":364,"context_line":"      - git.openstack.org/openstack/networking-generic-switch"},{"line_number":365,"context_line":"      - git.openstack.org/openstack/networking-l2gw-tempest-plugin"},{"line_number":366,"context_line":"      - git.openstack.org/openstack/networking-midonet"},{"line_number":367,"context_line":"      - git.openstack.org/openstack/networking-plumgrid"},{"line_number":368,"context_line":"      - git.openstack.org/openstack/networking-sfc"},{"line_number":369,"context_line":"      - git.openstack.org/openstack/neutron"},{"line_number":370,"context_line":"      - git.openstack.org/openstack/neutron-dynamic-routing"},{"line_number":371,"context_line":"      - git.openstack.org/openstack/neutron-fwaas"},{"line_number":372,"context_line":"      - git.openstack.org/openstack/neutron-lbaas"},{"line_number":373,"context_line":"      - git.openstack.org/openstack/neutron-tempest-plugin"},{"line_number":374,"context_line":"      - git.openstack.org/openstack/neutron-vpnaas"},{"line_number":375,"context_line":"      - git.openstack.org/openstack/nova-lxd"},{"line_number":376,"context_line":"      - git.openstack.org/openstack/novajoin-tempest-plugin"},{"line_number":377,"context_line":"      - git.openstack.org/openstack/octavia-tempest-plugin"},{"line_number":378,"context_line":"      - git.openstack.org/openstack/oswin-tempest-plugin"},{"line_number":379,"context_line":"      - git.openstack.org/openstack/panko"},{"line_number":380,"context_line":"      - git.openstack.org/openstack/patrole"},{"line_number":381,"context_line":"      - git.openstack.org/openstack/qinling"},{"line_number":382,"context_line":"      - git.openstack.org/openstack/requirements"},{"line_number":383,"context_line":"      - git.openstack.org/openstack/sahara-tests"},{"line_number":384,"context_line":"      - git.openstack.org/openstack/senlin"},{"line_number":385,"context_line":"      - git.openstack.org/openstack/senlin-tempest-plugin"},{"line_number":386,"context_line":"      - git.openstack.org/openstack/tap-as-a-service"},{"line_number":387,"context_line":"      - git.openstack.org/openstack/tempest-horizon"},{"line_number":388,"context_line":"      - git.openstack.org/openstack/triple-common-tempest-plugin"},{"line_number":389,"context_line":"      - git.openstack.org/openstack/trove-tempest-plugin"},{"line_number":390,"context_line":"      - git.openstack.org/openstack/valet"},{"line_number":391,"context_line":"      - git.openstack.org/openstack/vitrage-tempest-plugin"},{"line_number":392,"context_line":"      - git.openstack.org/openstack/vmware-nsx-tempest-plugin"},{"line_number":393,"context_line":"      - git.openstack.org/openstack/watcher-tempest-plugin"},{"line_number":394,"context_line":"      - git.openstack.org/openstack/zaqar-tempest-plugin"},{"line_number":395,"context_line":"      - git.openstack.org/openstack/zun-tempest-plugin"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"- job:"},{"line_number":398,"context_line":"    name: tempest-cinder-v2-api"},{"line_number":399,"context_line":"    parent: devstack-tempest"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3f79a3b5_48cc7332","line":396,"range":{"start_line":311,"start_character":2,"end_line":396,"end_character":0},"updated":"2018-11-07 04:07:52.000000000","message":"Unknown project git.openstack.org/openstack/triple-common-tempest-plugin","commit_id":"43ac91ce25c32602cec1f8917a763dd37b898cda"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"change_message_id":"f2f914285a1e160cf3ee56fcce5b510096e0f3c6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3f79a3b5_e8d45fbe","line":590,"range":{"start_line":448,"start_character":2,"end_line":590,"end_character":0},"updated":"2018-11-07 04:07:52.000000000","message":"Job tempest-tox-plugin-sanity-check not defined","commit_id":"43ac91ce25c32602cec1f8917a763dd37b898cda"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"change_message_id":"686061a3cc8ee311fcbf3a8a944af501b9ca9370","unresolved":false,"context_lines":[{"line_number":459,"context_line":"        ENABLE_FILE_INJECTION: true"},{"line_number":460,"context_line":"        DATABASE_TYPE: postgresql"},{"line_number":461,"context_line":""},{"line_number":462,"context_line":"- project:"},{"line_number":463,"context_line":"    templates:"},{"line_number":464,"context_line":"      - check-requirements"},{"line_number":465,"context_line":"      - integrated-gate"},{"line_number":466,"context_line":"      - integrated-gate-py35"},{"line_number":467,"context_line":"      - openstack-cover-jobs"},{"line_number":468,"context_line":"      - openstack-python-jobs"},{"line_number":469,"context_line":"      - openstack-python35-jobs"},{"line_number":470,"context_line":"      - openstack-python36-jobs"},{"line_number":471,"context_line":"      - publish-openstack-docs-pti"},{"line_number":472,"context_line":"      - release-notes-jobs-python3"},{"line_number":473,"context_line":"    check:"},{"line_number":474,"context_line":"      # jobs:"},{"line_number":475,"context_line":"      #   - devstack-tempest:"},{"line_number":476,"context_line":"      #       files:"},{"line_number":477,"context_line":"      #         - ^playbooks/"},{"line_number":478,"context_line":"      #         - ^roles/"},{"line_number":479,"context_line":"      #         - ^.zuul.yaml$"},{"line_number":480,"context_line":"      #   - devstack-tempest-ipv6:"},{"line_number":481,"context_line":"      #       voting: false"},{"line_number":482,"context_line":"      #       files:"},{"line_number":483,"context_line":"      #         - ^playbooks/"},{"line_number":484,"context_line":"      #         - ^roles/"},{"line_number":485,"context_line":"      #         - ^.zuul.yaml$"},{"line_number":486,"context_line":"      #   - nova-multiattach:"},{"line_number":487,"context_line":"      #       # Define list of irrelevant files to use everywhere else"},{"line_number":488,"context_line":"      #       irrelevant-files: \u0026tempest-irrelevant-files"},{"line_number":489,"context_line":"      #         - ^(test-|)requirements.txt$"},{"line_number":490,"context_line":"      #         - ^.*\\.rst$"},{"line_number":491,"context_line":"      #         - ^doc/.*$"},{"line_number":492,"context_line":"      #         - ^etc/.*$"},{"line_number":493,"context_line":"      #         - ^releasenotes/.*$"},{"line_number":494,"context_line":"      #         - ^setup.cfg$"},{"line_number":495,"context_line":"      #         - ^tempest/hacking/.*$"},{"line_number":496,"context_line":"      #         - ^tempest/tests/.*$"},{"line_number":497,"context_line":"      #         - ^tools/.*$"},{"line_number":498,"context_line":"      #   - tempest-full-parallel:"},{"line_number":499,"context_line":"      #       irrelevant-files: *tempest-irrelevant-files"},{"line_number":500,"context_line":"      #   - tempest-full-py3:"},{"line_number":501,"context_line":"      #       irrelevant-files: *tempest-irrelevant-files"},{"line_number":502,"context_line":"      #   - tempest-full-py36:"},{"line_number":503,"context_line":"      #       irrelevant-files: *tempest-irrelevant-files"},{"line_number":504,"context_line":"      #   - tempest-full-py3-ipv6:"},{"line_number":505,"context_line":"      #       voting: false"},{"line_number":506,"context_line":"      #       irrelevant-files: *tempest-irrelevant-files"},{"line_number":507,"context_line":"      #   - tempest-full-rocky:"},{"line_number":508,"context_line":"      #       irrelevant-files: *tempest-irrelevant-files"},{"line_number":509,"context_line":"      #   - tempest-full-rocky-py3:"},{"line_number":510,"context_line":"      #       irrelevant-files: *tempest-irrelevant-files"},{"line_number":511,"context_line":"      #   - tempest-full-queens:"},{"line_number":512,"context_line":"      #       irrelevant-files: *tempest-irrelevant-files"},{"line_number":513,"context_line":"      #   - tempest-full-queens-py3:"},{"line_number":514,"context_line":"      #       irrelevant-files: *tempest-irrelevant-files"},{"line_number":515,"context_line":"      #   - tempest-full-pike:"},{"line_number":516,"context_line":"      #       irrelevant-files: *tempest-irrelevant-files"},{"line_number":517,"context_line":"      #   - tempest-multinode-full:"},{"line_number":518,"context_line":"      #       irrelevant-files: *tempest-irrelevant-files"},{"line_number":519,"context_line":"        - tempest-tox-plugin-sanity-check:"},{"line_number":520,"context_line":"            irrelevant-files: \u0026tempest-irrelevant-files"},{"line_number":521,"context_line":"              - ^(test-|)requirements.txt$"},{"line_number":522,"context_line":"              - ^.*\\.rst$"},{"line_number":523,"context_line":"              - ^doc/.*$"},{"line_number":524,"context_line":"              - ^etc/.*$"},{"line_number":525,"context_line":"              - ^releasenotes/.*$"},{"line_number":526,"context_line":"              - ^setup.cfg$"},{"line_number":527,"context_line":"              - ^tempest/hacking/.*$"},{"line_number":528,"context_line":"              - ^tempest/tests/.*$"},{"line_number":529,"context_line":"              - ^tools/.*$"},{"line_number":530,"context_line":"        # - tempest-slow:"},{"line_number":531,"context_line":"        #     irrelevant-files: *tempest-irrelevant-files"},{"line_number":532,"context_line":"        # - nova-cells-v1:"},{"line_number":533,"context_line":"        #     irrelevant-files: *tempest-irrelevant-files"},{"line_number":534,"context_line":"        # - nova-live-migration:"},{"line_number":535,"context_line":"        #     voting: false"},{"line_number":536,"context_line":"        #     irrelevant-files: *tempest-irrelevant-files"},{"line_number":537,"context_line":"        # - neutron-grenade-multinode:"},{"line_number":538,"context_line":"        #     irrelevant-files: *tempest-irrelevant-files"},{"line_number":539,"context_line":"        # - neutron-grenade:"},{"line_number":540,"context_line":"        #     irrelevant-files: *tempest-irrelevant-files"},{"line_number":541,"context_line":"        # - devstack-plugin-ceph-tempest:"},{"line_number":542,"context_line":"        #     voting: false"},{"line_number":543,"context_line":"        #     irrelevant-files: *tempest-irrelevant-files"},{"line_number":544,"context_line":"        # - puppet-openstack-integration-4-scenario001-tempest-centos-7:"},{"line_number":545,"context_line":"        #     voting: false"},{"line_number":546,"context_line":"        #     irrelevant-files: *tempest-irrelevant-files"},{"line_number":547,"context_line":"        # - puppet-openstack-integration-4-scenario002-tempest-centos-7:"},{"line_number":548,"context_line":"        #     voting: false"},{"line_number":549,"context_line":"        #     irrelevant-files: *tempest-irrelevant-files"},{"line_number":550,"context_line":"        # - puppet-openstack-integration-4-scenario003-tempest-centos-7:"},{"line_number":551,"context_line":"        #     voting: false"},{"line_number":552,"context_line":"        #     irrelevant-files: *tempest-irrelevant-files"},{"line_number":553,"context_line":"        # - puppet-openstack-integration-4-scenario004-tempest-centos-7:"},{"line_number":554,"context_line":"        #     voting: false"},{"line_number":555,"context_line":"        #     irrelevant-files: *tempest-irrelevant-files"},{"line_number":556,"context_line":"        # - neutron-tempest-dvr:"},{"line_number":557,"context_line":"        #     irrelevant-files: *tempest-irrelevant-files"},{"line_number":558,"context_line":"        # - legacy-tempest-dsvm-neutron-full-ocata:"},{"line_number":559,"context_line":"        #     irrelevant-files: *tempest-irrelevant-files"},{"line_number":560,"context_line":"        # - tempest-full:"},{"line_number":561,"context_line":"        #     irrelevant-files: *tempest-irrelevant-files"},{"line_number":562,"context_line":"        # - interop-tempest-consistency:"},{"line_number":563,"context_line":"        #     voting: false"},{"line_number":564,"context_line":"        #     irrelevant-files: *tempest-irrelevant-files"},{"line_number":565,"context_line":"        # - tempest-full-test-account-py3:"},{"line_number":566,"context_line":"        #     voting: false"},{"line_number":567,"context_line":"        #     irrelevant-files: *tempest-irrelevant-files"},{"line_number":568,"context_line":"        # - tempest-full-test-account-no-admin-py3:"},{"line_number":569,"context_line":"        #     voting: false"},{"line_number":570,"context_line":"        #     irrelevant-files: *tempest-irrelevant-files"},{"line_number":571,"context_line":"    gate:"},{"line_number":572,"context_line":"      jobs:"},{"line_number":573,"context_line":"        - nova-multiattach:"},{"line_number":574,"context_line":"            irrelevant-files: *tempest-irrelevant-files"},{"line_number":575,"context_line":"        - tempest-slow:"},{"line_number":576,"context_line":"            irrelevant-files: *tempest-irrelevant-files"},{"line_number":577,"context_line":"        - neutron-grenade-multinode:"},{"line_number":578,"context_line":"            irrelevant-files: *tempest-irrelevant-files"},{"line_number":579,"context_line":"        - tempest-full:"},{"line_number":580,"context_line":"            irrelevant-files: *tempest-irrelevant-files"},{"line_number":581,"context_line":"        - neutron-grenade:"},{"line_number":582,"context_line":"            irrelevant-files: *tempest-irrelevant-files"},{"line_number":583,"context_line":"    experimental:"},{"line_number":584,"context_line":"      jobs:"},{"line_number":585,"context_line":"        - tempest-cinder-v2-api:"},{"line_number":586,"context_line":"            irrelevant-files: *tempest-irrelevant-files"},{"line_number":587,"context_line":"        - tempest-all:"},{"line_number":588,"context_line":"            irrelevant-files: *tempest-irrelevant-files"},{"line_number":589,"context_line":"        - legacy-tempest-dsvm-neutron-dvr-multinode-full:"},{"line_number":590,"context_line":"            irrelevant-files: *tempest-irrelevant-files"},{"line_number":591,"context_line":"        - neutron-tempest-dvr-ha-multinode-full:"},{"line_number":592,"context_line":"            irrelevant-files: *tempest-irrelevant-files"},{"line_number":593,"context_line":"        - legacy-tempest-dsvm-nova-v20-api:"},{"line_number":594,"context_line":"            irrelevant-files: *tempest-irrelevant-files"},{"line_number":595,"context_line":"        - legacy-tempest-dsvm-lvm-multibackend:"},{"line_number":596,"context_line":"            irrelevant-files: *tempest-irrelevant-files"},{"line_number":597,"context_line":"        - devstack-plugin-ceph-tempest-py3:"},{"line_number":598,"context_line":"            irrelevant-files: *tempest-irrelevant-files"},{"line_number":599,"context_line":"        - tempest-pg-full:"},{"line_number":600,"context_line":"            irrelevant-files: *tempest-irrelevant-files"},{"line_number":601,"context_line":"        - tempest-full-py3-opensuse150:"},{"line_number":602,"context_line":"            irrelevant-files: *tempest-irrelevant-files"},{"line_number":603,"context_line":"    periodic-stable:"},{"line_number":604,"context_line":"      jobs:"},{"line_number":605,"context_line":"        - tempest-full-rocky"},{"line_number":606,"context_line":"        - tempest-full-rocky-py3"},{"line_number":607,"context_line":"        - tempest-full-queens"},{"line_number":608,"context_line":"        - tempest-full-queens-py3"},{"line_number":609,"context_line":"        - tempest-full-pike"},{"line_number":610,"context_line":"        - legacy-periodic-tempest-dsvm-neutron-full-ocata"},{"line_number":611,"context_line":"    periodic:"},{"line_number":612,"context_line":"      jobs:"},{"line_number":613,"context_line":"        - tempest-all"},{"line_number":614,"context_line":"        - tempest-full-oslo-master"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3f79a3b5_a3575659","line":614,"range":{"start_line":462,"start_character":2,"end_line":614,"end_character":0},"updated":"2018-11-07 21:05:48.000000000","message":"expected a dictionary for dictionary value @ data[\u0027check\u0027]","commit_id":"e5c29ff4a3002e3f9f0eecefac838417ab42dd65"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"b8e313d9fd95e0449a887d36bd725ba3fdac3d2e","unresolved":false,"context_lines":[{"line_number":519,"context_line":"              - ^setup.cfg$"},{"line_number":520,"context_line":"              - ^tempest/hacking/.*$"},{"line_number":521,"context_line":"              - ^tempest/tests/.*$"},{"line_number":522,"context_line":"              # tools/ is not here since this relies on a script in tools/."},{"line_number":523,"context_line":"        - tempest-slow:"},{"line_number":524,"context_line":"            irrelevant-files: *tempest-irrelevant-files"},{"line_number":525,"context_line":"        - nova-cells-v1:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3f79a3b5_8a92b854","line":522,"updated":"2018-11-20 09:23:37.000000000","message":"yeah, make sense","commit_id":"68273ac78a199a3ef3a879625e4237c2c8c33aa7"}],"tools/tempest-plugin-sanity.sh":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"b8e313d9fd95e0449a887d36bd725ba3fdac3d2e","unresolved":false,"context_lines":[{"line_number":106,"context_line":"# Function to run sanity check on each project"},{"line_number":107,"context_line":"function plugin_sanity_check() {"},{"line_number":108,"context_line":"    clone_project \"$1\"  \u0026\u0026  install_project \"$1\"  \u0026\u0026  tempest_sanity \"$1\" \\"},{"line_number":109,"context_line":"    \u0026\u0026  uninstall_project \"$1\"  \u0026\u0026  \"$TVENV\" pip install ."},{"line_number":110,"context_line":"}"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"# Log status"}],"source_content_type":"text/x-sh","patch_set":7,"id":"3f79a3b5_6a971c48","line":109,"updated":"2018-11-20 09:23:37.000000000","message":"This indentation should be better.","commit_id":"68273ac78a199a3ef3a879625e4237c2c8c33aa7"}]}
