)]}'
{"devstack/lib/ironic":[{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"101cfb3ceca4afd30209d030e5700e8f06499980","unresolved":false,"context_lines":[{"line_number":245,"context_line":"# Virtual PDU configs"},{"line_number":246,"context_line":"IRONIC_VPDU_CONFIG_FILE\u003d${IRONIC_VPDU_CONFIG_FILE:-$HOME/.vpdu/virtualpdu.conf}"},{"line_number":247,"context_line":"IRONIC_VPDU_PORT_RANGE_START\u003d${IRONIC_VPDU_PORT_RANGE_START:-1}"},{"line_number":248,"context_line":"IRONIC_VPDU_LISEN_PORT\u003d${IRONIC_VPDU_LISEN_PORT:-1161}"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"# To explicitly enable configuration of Glance with Swift"},{"line_number":251,"context_line":"# (which is required by some vendor drivers), set this"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"fa6399be_7f674e25","line":248,"range":{"start_line":248,"start_character":12,"end_line":248,"end_character":17},"updated":"2016-10-18 18:02:46.000000000","message":"LISTEN","commit_id":"280b7f5975d01b1ff23c62ddb502e4b67e908440"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"101cfb3ceca4afd30209d030e5700e8f06499980","unresolved":false,"context_lines":[{"line_number":430,"context_line":"    iniset $IRONIC_VPDU_CONFIG_FILE global debug True"},{"line_number":431,"context_line":"    iniset $IRONIC_VPDU_CONFIG_FILE global libvirt_uri \"qemu:///system\""},{"line_number":432,"context_line":"    iniset $IRONIC_VPDU_CONFIG_FILE PDU listen_address \"127.0.0.1\""},{"line_number":433,"context_line":"    iniset $IRONIC_VPDU_CONFIG_FILE PDU listen_port ${IRONIC_VPDU_LISEN_PORT}"},{"line_number":434,"context_line":"    iniset $IRONIC_VPDU_CONFIG_FILE PDU community \"private\""},{"line_number":435,"context_line":"    iniset $IRONIC_VPDU_CONFIG_FILE PDU ports $(_generate_pdu_ports)"},{"line_number":436,"context_line":"    iniset $IRONIC_VPDU_CONFIG_FILE PDU outlet_default_state \"OFF\""}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"fa6399be_bf71e6e2","line":433,"updated":"2016-10-18 18:02:46.000000000","message":"LISTEN","commit_id":"280b7f5975d01b1ff23c62ddb502e4b67e908440"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"101cfb3ceca4afd30209d030e5700e8f06499980","unresolved":false,"context_lines":[{"line_number":476,"context_line":"    if is_deployed_by_ipmitool \u0026\u0026 [[ \"$IRONIC_IS_HARDWARE\" \u003d\u003d \"False\" ]]; then"},{"line_number":477,"context_line":"        setup_virtualbmc"},{"line_number":478,"context_line":"    fi"},{"line_number":479,"context_line":"    "},{"line_number":480,"context_line":"    if is_deployed_by_snmp \u0026\u0026 [[ \"$IRONIC_IS_HARDWARE\" \u003d\u003d \"False\" ]]; then"},{"line_number":481,"context_line":"        setup_virtualpdu"},{"line_number":482,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"fa6399be_3f7eb6ae","line":479,"updated":"2016-10-18 18:02:46.000000000","message":"trailing spaces","commit_id":"280b7f5975d01b1ff23c62ddb502e4b67e908440"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"101cfb3ceca4afd30209d030e5700e8f06499980","unresolved":false,"context_lines":[{"line_number":1089,"context_line":"                -i ipmi_password\u003dpassword\""},{"line_number":1090,"context_line":"        elif is_deployed_by_snmp; then"},{"line_number":1091,"context_line":"            local node_options\u003d\"\\"},{"line_number":1092,"context_line":"                -i snmp_driver\u003dapc_rackpdu \\"},{"line_number":1093,"context_line":"                -i snmp_address\u003d127.0.0.1 \\"},{"line_number":1094,"context_line":"                -i snmp_port\u003d1161 \\"},{"line_number":1095,"context_line":"                -i snmp_protocol\u003d2c \\"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"fa6399be_5f30ca07","line":1092,"range":{"start_line":1092,"start_character":31,"end_line":1092,"end_character":42},"updated":"2016-10-18 18:02:46.000000000","message":"I suggest making this configureable, or at the very least in a variable.\n\n    IRONIC_VPDU_SNMP_DRIVER\u003d${IRONIC_VPDU_SNMP_DRIVER:-\"apc_rackpdu\"}","commit_id":"280b7f5975d01b1ff23c62ddb502e4b67e908440"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"101cfb3ceca4afd30209d030e5700e8f06499980","unresolved":false,"context_lines":[{"line_number":1091,"context_line":"            local node_options\u003d\"\\"},{"line_number":1092,"context_line":"                -i snmp_driver\u003dapc_rackpdu \\"},{"line_number":1093,"context_line":"                -i snmp_address\u003d127.0.0.1 \\"},{"line_number":1094,"context_line":"                -i snmp_port\u003d1161 \\"},{"line_number":1095,"context_line":"                -i snmp_protocol\u003d2c \\"},{"line_number":1096,"context_line":"                -i snmp_community\u003dprivate\""},{"line_number":1097,"context_line":"        else"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"fa6399be_9f3a62e6","line":1094,"updated":"2016-10-18 18:02:46.000000000","message":"ditto","commit_id":"280b7f5975d01b1ff23c62ddb502e4b67e908440"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"101cfb3ceca4afd30209d030e5700e8f06499980","unresolved":false,"context_lines":[{"line_number":1093,"context_line":"                -i snmp_address\u003d127.0.0.1 \\"},{"line_number":1094,"context_line":"                -i snmp_port\u003d1161 \\"},{"line_number":1095,"context_line":"                -i snmp_protocol\u003d2c \\"},{"line_number":1096,"context_line":"                -i snmp_community\u003dprivate\""},{"line_number":1097,"context_line":"        else"},{"line_number":1098,"context_line":"            local node_options\u003d\"\\"},{"line_number":1099,"context_line":"                -i ssh_virt_type\u003d$IRONIC_SSH_VIRT_TYPE \\"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"fa6399be_bf3f26d5","line":1096,"updated":"2016-10-18 18:02:46.000000000","message":"ditto","commit_id":"280b7f5975d01b1ff23c62ddb502e4b67e908440"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a9f860a74b4bd1b9c9e1daa9f3ee9d59349b37cc","unresolved":false,"context_lines":[{"line_number":1115,"context_line":"                -i ipmi_address\u003d127.0.0.1 \\"},{"line_number":1116,"context_line":"                -i ipmi_username\u003dadmin \\"},{"line_number":1117,"context_line":"                -i ipmi_password\u003dpassword\""},{"line_number":1118,"context_line":"        elif is_deployed_by_snmp; then"},{"line_number":1119,"context_line":"            local node_options\u003d\"\\"},{"line_number":1120,"context_line":"                -i snmp_driver\u003d${IRONIC_VPDU_SNMPDRIVER} \\"},{"line_number":1121,"context_line":"                -i snmp_address\u003d127.0.0.1 \\"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"9a629dbe_131c5611","line":1118,"updated":"2016-11-09 10:41:21.000000000","message":"snmp is only power interface, we should add these options in addition to ipmi or ssh options I think.","commit_id":"e3dc77c69decf45290deb4279950efc538ec09ba"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"e1f3c7973a113ee132cddef98bd068049b38624e","unresolved":false,"context_lines":[{"line_number":236,"context_line":"# ``*_pxe_oneview`` and ``pxe_drac``"},{"line_number":237,"context_line":"IRONIC_DEPLOY_DRIVER\u003d${IRONIC_DEPLOY_DRIVER:-pxe_ssh}"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"# Add the driver to the enabled drivers if it\u0027s missing"},{"line_number":240,"context_line":"if [[ -n \"${IRONIC_ENABLED_DRIVERS%%*$IRONIC_DEPLOY_DRIVER*}\" ]]; then"},{"line_number":241,"context_line":"    IRONIC_ENABLED_DRIVERS\u003d${IRONIC_DEPLOY_DRIVER},${IRONIC_ENABLED_DRIVERS}"},{"line_number":242,"context_line":"fi"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"# Support entry points installation of console scripts"},{"line_number":245,"context_line":"IRONIC_BIN_DIR\u003d$(get_python_exec_prefix)"}],"source_content_type":"application/x-shellscript","patch_set":11,"id":"3a71b18c_cee09dcf","line":242,"range":{"start_line":239,"start_character":0,"end_line":242,"end_character":2},"updated":"2016-12-02 12:34:41.000000000","message":"This conflicts with https://review.openstack.org/#/c/387657/ but adding driver to list of enabled drivers seems to be good way.\n\nIf the deploy_driver name is part of already enabled driver, this check will work wrongly:\n\n$ if [[ -n ${IRONIC_ENABLED_DRIVERS%%*$IRONIC_DEPLOY_DRIVER*} ]]; then echo \"True\"; fi\n$ IRONIC_ENABLED_DRIVERS\u003dfake_ssh\n$ IRONIC_DEPLOY_DRIVER\u003dfake\n$ if [[ -n ${IRONIC_ENABLED_DRIVERS%%*$IRONIC_DEPLOY_DRIVER*} ]]; then echo \"True\"; fi\n$\n\nI would suggest to replace check with:\n\nif ! echo \"$IRONIC_ENABLED_DRIVERS\" | grep -qw $IRONIC_DEPLOY_DRIVER; then ....; fi","commit_id":"438438cd8b76871358c8d8910460e5d6fd8ca11b"},{"author":{"_account_id":20902,"name":"Félix Bouliane","email":"fbouliane@inap.com","username":"fbouliane"},"change_message_id":"0acf2b05d5da789f05771f34b3683ab336fd66c9","unresolved":false,"context_lines":[{"line_number":236,"context_line":"# ``*_pxe_oneview`` and ``pxe_drac``"},{"line_number":237,"context_line":"IRONIC_DEPLOY_DRIVER\u003d${IRONIC_DEPLOY_DRIVER:-pxe_ssh}"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"# Add the driver to the enabled drivers if it\u0027s missing"},{"line_number":240,"context_line":"if [[ -n \"${IRONIC_ENABLED_DRIVERS%%*$IRONIC_DEPLOY_DRIVER*}\" ]]; then"},{"line_number":241,"context_line":"    IRONIC_ENABLED_DRIVERS\u003d${IRONIC_DEPLOY_DRIVER},${IRONIC_ENABLED_DRIVERS}"},{"line_number":242,"context_line":"fi"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"# Support entry points installation of console scripts"},{"line_number":245,"context_line":"IRONIC_BIN_DIR\u003d$(get_python_exec_prefix)"}],"source_content_type":"application/x-shellscript","patch_set":11,"id":"3a71b18c_26c12681","line":242,"range":{"start_line":239,"start_character":0,"end_line":242,"end_character":2},"in_reply_to":"3a71b18c_cee09dcf","updated":"2016-12-02 18:07:22.000000000","message":"I removed it, we made a related change on devstack which my commit now depends on","commit_id":"438438cd8b76871358c8d8910460e5d6fd8ca11b"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"e1f3c7973a113ee132cddef98bd068049b38624e","unresolved":false,"context_lines":[{"line_number":497,"context_line":"        pip_install \"virtualpdu\""},{"line_number":498,"context_line":"    fi"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"    if [[ ! -d $(dirname $IRONIC_VPDU_CONFIG_FILE) ]]; then"},{"line_number":501,"context_line":"        mkdir -p $(dirname $IRONIC_VPDU_CONFIG_FILE)"},{"line_number":502,"context_line":"    fi"},{"line_number":503,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":11,"id":"3a71b18c_ce633d40","line":500,"updated":"2016-12-02 12:34:41.000000000","message":"nit: might not check for directory, mkdir will exit silently if directory exist.","commit_id":"438438cd8b76871358c8d8910460e5d6fd8ca11b"},{"author":{"_account_id":20902,"name":"Félix Bouliane","email":"fbouliane@inap.com","username":"fbouliane"},"change_message_id":"0acf2b05d5da789f05771f34b3683ab336fd66c9","unresolved":false,"context_lines":[{"line_number":497,"context_line":"        pip_install \"virtualpdu\""},{"line_number":498,"context_line":"    fi"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"    if [[ ! -d $(dirname $IRONIC_VPDU_CONFIG_FILE) ]]; then"},{"line_number":501,"context_line":"        mkdir -p $(dirname $IRONIC_VPDU_CONFIG_FILE)"},{"line_number":502,"context_line":"    fi"},{"line_number":503,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":11,"id":"3a71b18c_86383aa2","line":500,"in_reply_to":"3a71b18c_ce633d40","updated":"2016-12-02 18:07:22.000000000","message":"done","commit_id":"438438cd8b76871358c8d8910460e5d6fd8ca11b"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"e1f3c7973a113ee132cddef98bd068049b38624e","unresolved":false,"context_lines":[{"line_number":1108,"context_line":"    fi"},{"line_number":1109,"context_line":""},{"line_number":1110,"context_line":"    local vbmc_port\u003d$IRONIC_VBMC_PORT_RANGE_START"},{"line_number":1111,"context_line":"    local pdu_outlet\u003d$IRONIC_VPDU_PORT_RANGE_START"},{"line_number":1112,"context_line":"    local vm_name"},{"line_number":1113,"context_line":"    local vm_opts\u003d\"\""},{"line_number":1114,"context_line":"    if [[ -n \"$IRONIC_VM_EMULATOR\" ]]; then"}],"source_content_type":"application/x-shellscript","patch_set":11,"id":"3a71b18c_eee8f97e","line":1111,"updated":"2016-12-02 12:34:41.000000000","message":"nit: better to add -o option only when it needed like VM_EMULATOR.","commit_id":"438438cd8b76871358c8d8910460e5d6fd8ca11b"},{"author":{"_account_id":20902,"name":"Félix Bouliane","email":"fbouliane@inap.com","username":"fbouliane"},"change_message_id":"0acf2b05d5da789f05771f34b3683ab336fd66c9","unresolved":false,"context_lines":[{"line_number":1108,"context_line":"    fi"},{"line_number":1109,"context_line":""},{"line_number":1110,"context_line":"    local vbmc_port\u003d$IRONIC_VBMC_PORT_RANGE_START"},{"line_number":1111,"context_line":"    local pdu_outlet\u003d$IRONIC_VPDU_PORT_RANGE_START"},{"line_number":1112,"context_line":"    local vm_name"},{"line_number":1113,"context_line":"    local vm_opts\u003d\"\""},{"line_number":1114,"context_line":"    if [[ -n \"$IRONIC_VM_EMULATOR\" ]]; then"}],"source_content_type":"application/x-shellscript","patch_set":11,"id":"3a71b18c_c69a3263","line":1111,"in_reply_to":"3a71b18c_eee8f97e","updated":"2016-12-02 18:07:22.000000000","message":"It\u0027s a good idea, however, the script which receive this information (create_node) returns a list of arguments in a list spaced csv. The arguments position are hardcoded below [2]. Therefore, making this argument optional force us to make a optional argument in [1], which make it a little weird  :\nWe could force the code in [2] to support different position for their arguments .\nWe could add an empty value for port_outlet when it\u0027s not passed.\n\nBoth solution doesn\u0027t seems optimal, I\u0027m open to alternatives.\n\n[1] https://github.com/openstack/ironic/blob/master/devstack/tools/ironic/scripts/create-node.sh#L124\n[2] https://github.com/openstack/ironic/blob/master/devstack/lib/ironic#L1152","commit_id":"438438cd8b76871358c8d8910460e5d6fd8ca11b"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"e1f3c7973a113ee132cddef98bd068049b38624e","unresolved":false,"context_lines":[{"line_number":1197,"context_line":"        elif is_deployed_by_snmp; then"},{"line_number":1198,"context_line":"            local node_options\u003d\"\\"},{"line_number":1199,"context_line":"                -i snmp_driver\u003d${IRONIC_VPDU_SNMPDRIVER} \\"},{"line_number":1200,"context_line":"                -i snmp_address\u003d127.0.0.1 \\"},{"line_number":1201,"context_line":"                -i snmp_port\u003d${IRONIC_VPDU_LISTEN_PORT} \\"},{"line_number":1202,"context_line":"                -i snmp_protocol\u003d2c \\"},{"line_number":1203,"context_line":"                -i snmp_community\u003d${IRONIC_VPDU_COMMUNITY}\""}],"source_content_type":"application/x-shellscript","patch_set":11,"id":"3a71b18c_8ef8654b","line":1200,"updated":"2016-12-02 12:34:41.000000000","message":"please don\u0027t hardcode to 127.0.0.1 use ${HOST_IP} instead","commit_id":"438438cd8b76871358c8d8910460e5d6fd8ca11b"},{"author":{"_account_id":20902,"name":"Félix Bouliane","email":"fbouliane@inap.com","username":"fbouliane"},"change_message_id":"0acf2b05d5da789f05771f34b3683ab336fd66c9","unresolved":false,"context_lines":[{"line_number":1197,"context_line":"        elif is_deployed_by_snmp; then"},{"line_number":1198,"context_line":"            local node_options\u003d\"\\"},{"line_number":1199,"context_line":"                -i snmp_driver\u003d${IRONIC_VPDU_SNMPDRIVER} \\"},{"line_number":1200,"context_line":"                -i snmp_address\u003d127.0.0.1 \\"},{"line_number":1201,"context_line":"                -i snmp_port\u003d${IRONIC_VPDU_LISTEN_PORT} \\"},{"line_number":1202,"context_line":"                -i snmp_protocol\u003d2c \\"},{"line_number":1203,"context_line":"                -i snmp_community\u003d${IRONIC_VPDU_COMMUNITY}\""}],"source_content_type":"application/x-shellscript","patch_set":11,"id":"3a71b18c_66aa3e72","line":1200,"in_reply_to":"3a71b18c_8ef8654b","updated":"2016-12-02 18:07:22.000000000","message":"done","commit_id":"438438cd8b76871358c8d8910460e5d6fd8ca11b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7caa9698ad509c1f2c3bae0db55b92b0be18757d","unresolved":false,"context_lines":[{"line_number":1194,"context_line":"                -i snmp_driver\u003d${IRONIC_VPDU_SNMPDRIVER} \\"},{"line_number":1195,"context_line":"                -i snmp_address\u003d${HOST_IP} \\"},{"line_number":1196,"context_line":"                -i snmp_port\u003d${IRONIC_VPDU_LISTEN_PORT} \\"},{"line_number":1197,"context_line":"                -i snmp_protocol\u003d2c \\"},{"line_number":1198,"context_line":"                -i snmp_community\u003d${IRONIC_VPDU_COMMUNITY}\""},{"line_number":1199,"context_line":"        else"},{"line_number":1200,"context_line":"            local node_options\u003d\"\\"}],"source_content_type":"application/x-shellscript","patch_set":13,"id":"3a71b18c_1715f247","line":1197,"range":{"start_line":1197,"start_character":33,"end_line":1197,"end_character":35},"updated":"2016-12-05 17:58:50.000000000","message":"does it make sense to configure it eventually?","commit_id":"1a4f34266f7611409e45fea3c0de8b28be3f5d7f"},{"author":{"_account_id":20902,"name":"Félix Bouliane","email":"fbouliane@inap.com","username":"fbouliane"},"change_message_id":"cb8b200726cd0456e441758efe3ae47a5c8fd709","unresolved":false,"context_lines":[{"line_number":1194,"context_line":"                -i snmp_driver\u003d${IRONIC_VPDU_SNMPDRIVER} \\"},{"line_number":1195,"context_line":"                -i snmp_address\u003d${HOST_IP} \\"},{"line_number":1196,"context_line":"                -i snmp_port\u003d${IRONIC_VPDU_LISTEN_PORT} \\"},{"line_number":1197,"context_line":"                -i snmp_protocol\u003d2c \\"},{"line_number":1198,"context_line":"                -i snmp_community\u003d${IRONIC_VPDU_COMMUNITY}\""},{"line_number":1199,"context_line":"        else"},{"line_number":1200,"context_line":"            local node_options\u003d\"\\"}],"source_content_type":"application/x-shellscript","patch_set":13,"id":"3a71b18c_62f826c4","line":1197,"range":{"start_line":1197,"start_character":33,"end_line":1197,"end_character":35},"in_reply_to":"3a71b18c_1715f247","updated":"2016-12-05 18:06:01.000000000","message":"Of course, It would make sense to have some node on a v3 driver, and some other on v2c. However it would require some work (minor) to ensure virtualpdu supports v3 and it\u0027s tested properly.","commit_id":"1a4f34266f7611409e45fea3c0de8b28be3f5d7f"}]}
