)]}'
{"devstack/lib/ironic":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"c341a88d3a6634728b14933ddfc8f4026102a796","unresolved":false,"context_lines":[{"line_number":1452,"context_line":"    node_prefix\u003d$(get_ironic_node_prefix)"},{"line_number":1453,"context_line":""},{"line_number":1454,"context_line":"    if [[ \"$IRONIC_IS_HARDWARE\" \u003d\u003d \"False\" ]]; then"},{"line_number":1455,"context_line":"        local interface_info"},{"line_number":1456,"context_line":"        interface_info\u003d$(echo $hardware_info | awk \u0027{print $1}\u0027)"},{"line_number":1457,"context_line":"        local ironic_node_cpu\u003d$IRONIC_VM_SPECS_CPU"},{"line_number":1458,"context_line":"        local ironic_node_ram\u003d$IRONIC_VM_SPECS_RAM"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"dfeb2761_c2495cb7","line":1455,"updated":"2017-04-05 09:27:17.000000000","message":"Please move this outside of if to L1453","commit_id":"e6cf79e712b1ca49b8cd9f6d08c03973c5f1ed84"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"c341a88d3a6634728b14933ddfc8f4026102a796","unresolved":false,"context_lines":[{"line_number":1600,"context_line":"                    -i drac_username\u003d$bmc_username\""},{"line_number":1601,"context_line":"            fi"},{"line_number":1602,"context_line":""},{"line_number":1603,"context_line":"            local interface_info"},{"line_number":1604,"context_line":"            interface_info\u003d\"${mac_address},None;\""},{"line_number":1605,"context_line":"        fi"},{"line_number":1606,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"dfeb2761_c2f71c59","line":1603,"updated":"2017-04-05 09:27:17.000000000","message":"this may be removed","commit_id":"e6cf79e712b1ca49b8cd9f6d08c03973c5f1ed84"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"c341a88d3a6634728b14933ddfc8f4026102a796","unresolved":false,"context_lines":[{"line_number":1601,"context_line":"            fi"},{"line_number":1602,"context_line":""},{"line_number":1603,"context_line":"            local interface_info"},{"line_number":1604,"context_line":"            interface_info\u003d\"${mac_address},None;\""},{"line_number":1605,"context_line":"        fi"},{"line_number":1606,"context_line":""},{"line_number":1607,"context_line":"        # First node created will be used for testing in ironic w/o glance"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"dfeb2761_42ec2c8e","line":1604,"updated":"2017-04-05 09:27:17.000000000","message":"just add interface_info\u003d\"$mac_address\"","commit_id":"e6cf79e712b1ca49b8cd9f6d08c03973c5f1ed84"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"b8dad9513656a4837f6455abaddefbd6a0a11d0a","unresolved":false,"context_lines":[{"line_number":962,"context_line":"        fi"},{"line_number":963,"context_line":"        add_user_to_group $STACK_USER $LIBVIRT_GROUP"},{"line_number":964,"context_line":""},{"line_number":965,"context_line":"        # Add /dev/net/tun to cgroup_device_acls, needed for type\u003dethernet interfaces"},{"line_number":966,"context_line":"        if ! sudo grep -q \u0027^cgroup_device_acl\u0027 /etc/libvirt/qemu.conf; then"},{"line_number":967,"context_line":"            cat \u003c\u003cEOF | sudo tee -a /etc/libvirt/qemu.conf"},{"line_number":968,"context_line":"cgroup_device_acl \u003d ["}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"5ff73747_13d34d62","line":965,"range":{"start_line":965,"start_character":47,"end_line":965,"end_character":48},"updated":"2017-04-26 18:05:45.000000000","message":"nit: no \u0027s\u0027","commit_id":"e60c970c2af3a2ae268bba3fc9c5ceb0a7727ca2"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"f0b8d84484dfa5757fc61f6c449316a838808852","unresolved":false,"context_lines":[{"line_number":962,"context_line":"        fi"},{"line_number":963,"context_line":"        add_user_to_group $STACK_USER $LIBVIRT_GROUP"},{"line_number":964,"context_line":""},{"line_number":965,"context_line":"        # Add /dev/net/tun to cgroup_device_acls, needed for type\u003dethernet interfaces"},{"line_number":966,"context_line":"        if ! sudo grep -q \u0027^cgroup_device_acl\u0027 /etc/libvirt/qemu.conf; then"},{"line_number":967,"context_line":"            cat \u003c\u003cEOF | sudo tee -a /etc/libvirt/qemu.conf"},{"line_number":968,"context_line":"cgroup_device_acl \u003d ["}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"5ff73747_e8166c49","line":965,"range":{"start_line":965,"start_character":47,"end_line":965,"end_character":48},"in_reply_to":"5ff73747_13d34d62","updated":"2017-04-28 08:18:59.000000000","message":"Done","commit_id":"e60c970c2af3a2ae268bba3fc9c5ceb0a7727ca2"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"b8dad9513656a4837f6455abaddefbd6a0a11d0a","unresolved":false,"context_lines":[{"line_number":965,"context_line":"        # Add /dev/net/tun to cgroup_device_acls, needed for type\u003dethernet interfaces"},{"line_number":966,"context_line":"        if ! sudo grep -q \u0027^cgroup_device_acl\u0027 /etc/libvirt/qemu.conf; then"},{"line_number":967,"context_line":"            cat \u003c\u003cEOF | sudo tee -a /etc/libvirt/qemu.conf"},{"line_number":968,"context_line":"cgroup_device_acl \u003d ["},{"line_number":969,"context_line":"    \"/dev/null\", \"/dev/full\", \"/dev/zero\","},{"line_number":970,"context_line":"    \"/dev/random\", \"/dev/urandom\","},{"line_number":971,"context_line":"    \"/dev/ptmx\", \"/dev/kvm\", \"/dev/kqemu\","}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"5ff73747_a6e0d5fb","line":968,"updated":"2017-04-26 18:05:45.000000000","message":"Man, there is like zero documentation on the Internet about this :(\n\nhttps://github.com/libvirt/libvirt/blob/b63de148a4299dc8de4210fb181fb65f95970590/src/qemu/qemu_conf.c#L680\n\nIs about the best I could find. A comment that explains what this does would be great.\n\nBut I see this is similar to what is in openstack-dev/devstack","commit_id":"e60c970c2af3a2ae268bba3fc9c5ceb0a7727ca2"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"f0b8d84484dfa5757fc61f6c449316a838808852","unresolved":false,"context_lines":[{"line_number":965,"context_line":"        # Add /dev/net/tun to cgroup_device_acls, needed for type\u003dethernet interfaces"},{"line_number":966,"context_line":"        if ! sudo grep -q \u0027^cgroup_device_acl\u0027 /etc/libvirt/qemu.conf; then"},{"line_number":967,"context_line":"            cat \u003c\u003cEOF | sudo tee -a /etc/libvirt/qemu.conf"},{"line_number":968,"context_line":"cgroup_device_acl \u003d ["},{"line_number":969,"context_line":"    \"/dev/null\", \"/dev/full\", \"/dev/zero\","},{"line_number":970,"context_line":"    \"/dev/random\", \"/dev/urandom\","},{"line_number":971,"context_line":"    \"/dev/ptmx\", \"/dev/kvm\", \"/dev/kqemu\","}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"5ff73747_887b6879","line":968,"in_reply_to":"5ff73747_a6e0d5fb","updated":"2017-04-28 08:18:59.000000000","message":"Done","commit_id":"e60c970c2af3a2ae268bba3fc9c5ceb0a7727ca2"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"b8dad9513656a4837f6455abaddefbd6a0a11d0a","unresolved":false,"context_lines":[{"line_number":1380,"context_line":"    fi"},{"line_number":1381,"context_line":""},{"line_number":1382,"context_line":"    local bridge_mac"},{"line_number":1383,"context_line":"    bridge_mac\u003d$(ip link show dev $IRONIC_VM_NETWORK_BRIDGE | egrep -o \"ether [A-Za-z0-9:]+\"|sed \"s/ether\\ //\")"},{"line_number":1384,"context_line":""},{"line_number":1385,"context_line":"    for vm_name in $(_ironic_bm_vm_names); do"},{"line_number":1386,"context_line":"        sudo -E su $STACK_USER -c \"$IRONIC_SCRIPTS_DIR/create-node.sh -n $vm_name \\"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"5ff73747_8695d942","line":1383,"updated":"2017-04-26 18:05:45.000000000","message":"FYI: From grep man page:\n\nIn addition, the variant programs egrep and fgrep are the same as grep -E and grep -F, respectively.  These variants are deprecated, but are provided for backward compatibility.","commit_id":"e60c970c2af3a2ae268bba3fc9c5ceb0a7727ca2"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"f0b8d84484dfa5757fc61f6c449316a838808852","unresolved":false,"context_lines":[{"line_number":1380,"context_line":"    fi"},{"line_number":1381,"context_line":""},{"line_number":1382,"context_line":"    local bridge_mac"},{"line_number":1383,"context_line":"    bridge_mac\u003d$(ip link show dev $IRONIC_VM_NETWORK_BRIDGE | egrep -o \"ether [A-Za-z0-9:]+\"|sed \"s/ether\\ //\")"},{"line_number":1384,"context_line":""},{"line_number":1385,"context_line":"    for vm_name in $(_ironic_bm_vm_names); do"},{"line_number":1386,"context_line":"        sudo -E su $STACK_USER -c \"$IRONIC_SCRIPTS_DIR/create-node.sh -n $vm_name \\"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"5ff73747_48420040","line":1383,"in_reply_to":"5ff73747_8695d942","updated":"2017-04-28 08:18:59.000000000","message":"Done","commit_id":"e60c970c2af3a2ae268bba3fc9c5ceb0a7727ca2"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"b8dad9513656a4837f6455abaddefbd6a0a11d0a","unresolved":false,"context_lines":[{"line_number":1454,"context_line":"    local interface_info"},{"line_number":1455,"context_line":""},{"line_number":1456,"context_line":"    if [[ \"$IRONIC_IS_HARDWARE\" \u003d\u003d \"False\" ]]; then"},{"line_number":1457,"context_line":"        interface_info\u003d$(echo $hardware_info | awk \u0027{print $1}\u0027)"},{"line_number":1458,"context_line":"        local ironic_node_cpu\u003d$IRONIC_VM_SPECS_CPU"},{"line_number":1459,"context_line":"        local ironic_node_ram\u003d$IRONIC_VM_SPECS_RAM"},{"line_number":1460,"context_line":"        local ironic_node_disk\u003d$IRONIC_VM_SPECS_DISK"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"5ff73747_a63e95d7","line":1457,"updated":"2017-04-26 18:05:45.000000000","message":"Where is \u0027hardware_info\u0027 defined? I see it below on line 1502.\n\nIs this line needed?\n\n-1 for this","commit_id":"e60c970c2af3a2ae268bba3fc9c5ceb0a7727ca2"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"f0b8d84484dfa5757fc61f6c449316a838808852","unresolved":false,"context_lines":[{"line_number":1454,"context_line":"    local interface_info"},{"line_number":1455,"context_line":""},{"line_number":1456,"context_line":"    if [[ \"$IRONIC_IS_HARDWARE\" \u003d\u003d \"False\" ]]; then"},{"line_number":1457,"context_line":"        interface_info\u003d$(echo $hardware_info | awk \u0027{print $1}\u0027)"},{"line_number":1458,"context_line":"        local ironic_node_cpu\u003d$IRONIC_VM_SPECS_CPU"},{"line_number":1459,"context_line":"        local ironic_node_ram\u003d$IRONIC_VM_SPECS_RAM"},{"line_number":1460,"context_line":"        local ironic_node_disk\u003d$IRONIC_VM_SPECS_DISK"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"5ff73747_886da8cd","line":1457,"in_reply_to":"5ff73747_a63e95d7","updated":"2017-04-28 08:18:59.000000000","message":"Done","commit_id":"e60c970c2af3a2ae268bba3fc9c5ceb0a7727ca2"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"b8dad9513656a4837f6455abaddefbd6a0a11d0a","unresolved":false,"context_lines":[{"line_number":1975,"context_line":"    configure_iptables"},{"line_number":1976,"context_line":"}"},{"line_number":1977,"context_line":""},{"line_number":1978,"context_line":"function cleanup_baremetal_basic_ops {"},{"line_number":1979,"context_line":"    if [[ \"$IRONIC_BAREMETAL_BASIC_OPS\" !\u003d \"True\" ]]; then"},{"line_number":1980,"context_line":"        return 0"},{"line_number":1981,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"5ff73747_c900926a","line":1978,"updated":"2017-04-26 18:05:45.000000000","message":"Not directly related to this patch.\n\nWhen is this called? So far looking at various log files I don\u0027t see anything call this.\n\nI have checked grenade, multinode, and normal jobs. I\u0027m confused...\n\nSupposed to happen with \u0027unstack\u0027. Is this done on any of our gate jobs?","commit_id":"e60c970c2af3a2ae268bba3fc9c5ceb0a7727ca2"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"f0b8d84484dfa5757fc61f6c449316a838808852","unresolved":false,"context_lines":[{"line_number":1975,"context_line":"    configure_iptables"},{"line_number":1976,"context_line":"}"},{"line_number":1977,"context_line":""},{"line_number":1978,"context_line":"function cleanup_baremetal_basic_ops {"},{"line_number":1979,"context_line":"    if [[ \"$IRONIC_BAREMETAL_BASIC_OPS\" !\u003d \"True\" ]]; then"},{"line_number":1980,"context_line":"        return 0"},{"line_number":1981,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"5ff73747_e85d4c15","line":1978,"in_reply_to":"5ff73747_c900926a","updated":"2017-04-28 08:18:59.000000000","message":"it is called when doing unstack [0], but this spec is not executed on CI.\n\nhttps://github.com/openstack/ironic/blob/master/devstack/plugin.sh#L82","commit_id":"e60c970c2af3a2ae268bba3fc9c5ceb0a7727ca2"}],"devstack/tools/ironic/templates/vm.xml":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"18881b66dc0469d69d2cb53a974944148ab43414","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    \u003cinterface type\u003d\u0027ethernet\u0027\u003e"},{"line_number":49,"context_line":"      \u003ctarget dev\u003d\u0027{{ \"tap-\" + name + \"i\" + n|string }}\u0027/\u003e"},{"line_number":50,"context_line":"      \u003cmodel type\u003d\u0027{{ nicdriver }}\u0027/\u003e"},{"line_number":51,"context_line":"      \u003cscript path\u003d\u0027no\u0027/\u003e"},{"line_number":52,"context_line":"      \u003caddress type\u003d\u0027pci\u0027 domain\u003d\u00270x0000\u0027 bus\u003d\u00270x01\u0027 slot\u003d\u0027{{ \"0x0\" + n|string }}\u0027 function\u003d\u00270x0\u0027/\u003e"},{"line_number":53,"context_line":"    \u003c/interface\u003e"},{"line_number":54,"context_line":"    {% endfor %}"}],"source_content_type":"application/xml","patch_set":2,"id":"7ffa3b31_2ff4adf1","line":51,"updated":"2017-04-18 21:03:09.000000000","message":"after libvirt upgrade to 2.5.0 this causes domain start failure:\n\n\"2017-04-18 20:59:52,739.739 4218 ERROR VirtualBMC [-] Error powering on the domain node-0. Error: Cannot find \u0027no\u0027 in path: No such file or directory\"","commit_id":"7f0a325b1932a76e0bbefab6671c56a74e5252c9"}]}
