)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20902,"name":"Félix Bouliane","email":"fbouliane@inap.com","username":"fbouliane"},"change_message_id":"09fa1230567a7fcd2b7fab47fd34b910bbb1f34c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Vasyl Saienko \u003cvsaienko@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-04-18 20:53:58 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Allow to set neutron port timeout from config"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Unfortunatly there still no mechanizm to synchronize events with Neutron."},{"line_number":10,"context_line":"Sometimes server can get to PXE faster than Neutron configures port for netboot."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"1a122d0e_cc8b2ec2","line":7,"range":{"start_line":7,"start_character":26,"end_line":7,"end_character":33},"updated":"2016-04-19 13:54:12.000000000","message":"s/timeout/setup delay","commit_id":"a7869b99978e0956ea0b96271fd63e39ced05172"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"e186d30f1291b983b712ff34438f36c32eccae53","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Allow to set neutron port timeout from config"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Unfortunatly there still no mechanizm to synchronize events with Neutron."},{"line_number":10,"context_line":"Sometimes server can get to PXE faster than Neutron configures port for netboot."},{"line_number":11,"context_line":"It may occur with VMs, and hardware servers with fast boot enabled."},{"line_number":12,"context_line":"This patch introduce new config variable \u0027port_setup_delay\u0027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"1a122d0e_3a5787cf","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":12},"updated":"2016-04-19 06:37:50.000000000","message":"nit: s/Unfortunatly/Unfortunately","commit_id":"a7869b99978e0956ea0b96271fd63e39ced05172"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"e186d30f1291b983b712ff34438f36c32eccae53","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Allow to set neutron port timeout from config"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Unfortunatly there still no mechanizm to synchronize events with Neutron."},{"line_number":10,"context_line":"Sometimes server can get to PXE faster than Neutron configures port for netboot."},{"line_number":11,"context_line":"It may occur with VMs, and hardware servers with fast boot enabled."},{"line_number":12,"context_line":"This patch introduce new config variable \u0027port_setup_delay\u0027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"1a122d0e_7a5f3fe5","line":9,"range":{"start_line":9,"start_character":28,"end_line":9,"end_character":37},"updated":"2016-04-19 06:37:50.000000000","message":"nit: s/mechanizm/mechanism","commit_id":"a7869b99978e0956ea0b96271fd63e39ced05172"}],"devstack/lib/ironic":[{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"3b9393cc10581145411933543a5f1cdb480487a8","unresolved":false,"context_lines":[{"line_number":435,"context_line":"    fi"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    if [[ \"$IRONIC_IS_HARDWARE\" \u003d\u003d \"False\" ]]; then"},{"line_number":438,"context_line":"        iniset $IRONIC_CONF_FILE neutron port_timeout 15"},{"line_number":439,"context_line":"    fi"},{"line_number":440,"context_line":"}"},{"line_number":441,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"1af94dfe_26a90e7c","line":438,"range":{"start_line":438,"start_character":54,"end_line":438,"end_character":56},"updated":"2016-03-17 16:11:50.000000000","message":"it\u0027s better to add a IRONIC_PORT_TIMEOUT which default to 15 instead of the hardcode.","commit_id":"c5d727cb40a43a4f785ed9472fda852bca2edf22"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"24aed4d93f94bc9482feaf5649f9d9da9aac72f5","unresolved":false,"context_lines":[{"line_number":435,"context_line":"    fi"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    if [[ \"$IRONIC_IS_HARDWARE\" \u003d\u003d \"False\" ]]; then"},{"line_number":438,"context_line":"        iniset $IRONIC_CONF_FILE neutron port_timeout 15"},{"line_number":439,"context_line":"    fi"},{"line_number":440,"context_line":"}"},{"line_number":441,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"1af94dfe_b1f1d603","line":438,"range":{"start_line":438,"start_character":54,"end_line":438,"end_character":56},"in_reply_to":"1af94dfe_26a90e7c","updated":"2016-03-17 16:31:31.000000000","message":"This timeout has been hardcoded in the python code, I doubt that we need to have new global variable. It still may be changed via local.conf example:\n\n[[post-config|$Q_L3_CONF_FILE]]\n[DEFAULT]\nmetadata_port\u003d80","commit_id":"c5d727cb40a43a4f785ed9472fda852bca2edf22"},{"author":{"_account_id":7933,"name":"Philippe Godin","email":"godp1301@gmail.com","username":"godp1301"},"change_message_id":"e10ac83d03e476e490c321b24490777ada58eb43","unresolved":false,"context_lines":[{"line_number":461,"context_line":"        iniset $IRONIC_CONF_FILE deploy http_url \"http://$IRONIC_HTTP_SERVER:$IRONIC_HTTP_PORT\""},{"line_number":462,"context_line":"    fi"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"    if [[ \"$IRONIC_IS_HARDWARE\" \u003d\u003d \"False\" ]]; then"},{"line_number":465,"context_line":"        iniset $IRONIC_CONF_FILE neutron port_setup_timeout 15"},{"line_number":466,"context_line":"    fi"},{"line_number":467,"context_line":"}"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"# create_ironic_cache_dir() - Part of the init_ironic() process"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"7a1b2928_e4ee5feb","line":466,"range":{"start_line":464,"start_character":4,"end_line":466,"end_character":6},"updated":"2016-04-11 15:46:24.000000000","message":"not sure about this. does it means we only setup the port_timeout in devstack if ironic isn\u0027t using metal nodes?","commit_id":"d230def908c5bbcfdb62a37c17fd6cd04bc732c5"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"0660f088cbbb7eb5c0432876b16c859879d4518a","unresolved":false,"context_lines":[{"line_number":461,"context_line":"        iniset $IRONIC_CONF_FILE deploy http_url \"http://$IRONIC_HTTP_SERVER:$IRONIC_HTTP_PORT\""},{"line_number":462,"context_line":"    fi"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"    if [[ \"$IRONIC_IS_HARDWARE\" \u003d\u003d \"False\" ]]; then"},{"line_number":465,"context_line":"        iniset $IRONIC_CONF_FILE neutron port_setup_timeout 15"},{"line_number":466,"context_line":"    fi"},{"line_number":467,"context_line":"}"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"# create_ironic_cache_dir() - Part of the init_ironic() process"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"5a18252c_d7033775","line":466,"range":{"start_line":464,"start_character":4,"end_line":466,"end_character":6},"in_reply_to":"7a1b2928_e4ee5feb","updated":"2016-04-12 06:32:08.000000000","message":"Yes, booting baremetal server takes a time and in general neutron finished port operations before server request PXE.","commit_id":"d230def908c5bbcfdb62a37c17fd6cd04bc732c5"}],"etc/ironic/ironic.conf.sample":[{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"554363e90f8c19b618e73f5160b128bc369aff81","unresolved":false,"context_lines":[{"line_number":1540,"context_line":"#url_timeout\u003d30"},{"line_number":1541,"context_line":""},{"line_number":1542,"context_line":"# Timeout value to wait for Neutron port operations in"},{"line_number":1543,"context_line":"# seconds. (integer value)"},{"line_number":1544,"context_line":"#port_setup_timeout\u003d0"},{"line_number":1545,"context_line":""},{"line_number":1546,"context_line":"# Client retries in the case of a failed request. (integer"}],"source_content_type":"application/octet-stream","patch_set":11,"id":"5a18252c_06dee810","line":1543,"updated":"2016-04-13 03:31:22.000000000","message":"It should include the complete help_ message like:\n\nTimeout value to wait for Neutron port operations\nin seconds. In Newton default is overridden to 15\nseconds for drivers using SSHPower for backwards\ncompatibility, this will be removed in Ocata.\n\nyou should create sample using tox -e genconfig,","commit_id":"6cdb4b53fd79ddcbf87ed7b825370f7b000adcbc"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"c8f1cb6671283009cf5347cfcbe4cb584d06836d","unresolved":false,"context_lines":[{"line_number":1540,"context_line":"#url_timeout\u003d30"},{"line_number":1541,"context_line":""},{"line_number":1542,"context_line":"# Timeout value to wait for Neutron port operations in"},{"line_number":1543,"context_line":"# seconds. (integer value)"},{"line_number":1544,"context_line":"#port_setup_timeout\u003d0"},{"line_number":1545,"context_line":""},{"line_number":1546,"context_line":"# Client retries in the case of a failed request. (integer"}],"source_content_type":"application/octet-stream","patch_set":11,"id":"5a18252c_d7777c38","line":1543,"in_reply_to":"5a18252c_06dee810","updated":"2016-04-13 06:17:19.000000000","message":"Done","commit_id":"6cdb4b53fd79ddcbf87ed7b825370f7b000adcbc"}],"ironic/dhcp/neutron.py":[{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"3b9393cc10581145411933543a5f1cdb480487a8","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    cfg.IntOpt(\u0027url_timeout\u0027,"},{"line_number":40,"context_line":"               default\u003d30,"},{"line_number":41,"context_line":"               help\u003d_(\u0027Timeout value for connecting to neutron in seconds.\u0027)),"},{"line_number":42,"context_line":"    cfg.IntOpt(\u0027port_timeout\u0027,"},{"line_number":43,"context_line":"               default\u003d0,"},{"line_number":44,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":45,"context_line":"                      \u0027in seconds.\u0027)),"}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_26e3ce34","line":42,"range":{"start_line":42,"start_character":16,"end_line":42,"end_character":28},"updated":"2016-03-17 16:11:50.000000000","message":"use \u0027tox -egenconfig\u0027 to generate the sample config file with the new added option.","commit_id":"c5d727cb40a43a4f785ed9472fda852bca2edf22"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"24aed4d93f94bc9482feaf5649f9d9da9aac72f5","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    cfg.IntOpt(\u0027url_timeout\u0027,"},{"line_number":40,"context_line":"               default\u003d30,"},{"line_number":41,"context_line":"               help\u003d_(\u0027Timeout value for connecting to neutron in seconds.\u0027)),"},{"line_number":42,"context_line":"    cfg.IntOpt(\u0027port_timeout\u0027,"},{"line_number":43,"context_line":"               default\u003d0,"},{"line_number":44,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":45,"context_line":"                      \u0027in seconds.\u0027)),"}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_51d7b24a","line":42,"range":{"start_line":42,"start_character":16,"end_line":42,"end_character":28},"in_reply_to":"1af94dfe_26e3ce34","updated":"2016-03-17 16:31:31.000000000","message":"going to fix it.","commit_id":"c5d727cb40a43a4f785ed9472fda852bca2edf22"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"315f3735795ca0a9ccf2e947204897882faa4cc7","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    cfg.IntOpt(\u0027url_timeout\u0027,"},{"line_number":40,"context_line":"               default\u003d30,"},{"line_number":41,"context_line":"               help\u003d_(\u0027Timeout value for connecting to neutron in seconds.\u0027)),"},{"line_number":42,"context_line":"    cfg.IntOpt(\u0027port_timeout\u0027,"},{"line_number":43,"context_line":"               default\u003d0,"},{"line_number":44,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":45,"context_line":"                      \u0027in seconds.\u0027)),"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a1b2928_7acf95b0","line":42,"updated":"2016-04-11 13:42:04.000000000","message":"port_setup_timeout?","commit_id":"933857cfc91758e3bf1c50fb4ad3f76f60fc0d6b"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"abbdad18bd22ae5ef582645de47a2fc14d17ace7","unresolved":false,"context_lines":[{"line_number":40,"context_line":"               default\u003d30,"},{"line_number":41,"context_line":"               help\u003d_(\u0027Timeout value for connecting to neutron in seconds.\u0027)),"},{"line_number":42,"context_line":"    cfg.IntOpt(\u0027port_timeout\u0027,"},{"line_number":43,"context_line":"               default\u003d0,"},{"line_number":44,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":45,"context_line":"                      \u0027in seconds.\u0027)),"},{"line_number":46,"context_line":"    cfg.IntOpt(\u0027retries\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a1b2928_61b40ff2","line":43,"updated":"2016-04-11 12:17:26.000000000","message":"This still should be 15. I understand that it is a testing driver, but it\u0027s better not to break developers if it can be avoided :) (I\u0027m talking about the case when one upgrades ironic without restacking, this option would have to be populated manually). Also might be worth mentioning that it is for ssh driver in description.","commit_id":"933857cfc91758e3bf1c50fb4ad3f76f60fc0d6b"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"315f3735795ca0a9ccf2e947204897882faa4cc7","unresolved":false,"context_lines":[{"line_number":40,"context_line":"               default\u003d30,"},{"line_number":41,"context_line":"               help\u003d_(\u0027Timeout value for connecting to neutron in seconds.\u0027)),"},{"line_number":42,"context_line":"    cfg.IntOpt(\u0027port_timeout\u0027,"},{"line_number":43,"context_line":"               default\u003d0,"},{"line_number":44,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":45,"context_line":"                      \u0027in seconds.\u0027)),"},{"line_number":46,"context_line":"    cfg.IntOpt(\u0027retries\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a1b2928_3049bf8c","line":43,"in_reply_to":"7a1b2928_1aa144aa","updated":"2016-04-11 13:42:04.000000000","message":"Gotcha, yes, not sure about a good way to do that. Seems that this \"elif\" is the easiest way to go, it\u0027s a bit ugly but preserves the way it is now.","commit_id":"933857cfc91758e3bf1c50fb4ad3f76f60fc0d6b"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"60fb328b83d2d149838f085f3543c47804e3581e","unresolved":false,"context_lines":[{"line_number":40,"context_line":"               default\u003d30,"},{"line_number":41,"context_line":"               help\u003d_(\u0027Timeout value for connecting to neutron in seconds.\u0027)),"},{"line_number":42,"context_line":"    cfg.IntOpt(\u0027port_timeout\u0027,"},{"line_number":43,"context_line":"               default\u003d0,"},{"line_number":44,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":45,"context_line":"                      \u0027in seconds.\u0027)),"},{"line_number":46,"context_line":"    cfg.IntOpt(\u0027retries\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a1b2928_2e1b1b1d","line":43,"in_reply_to":"7a1b2928_3049bf8c","updated":"2016-04-11 14:37:45.000000000","message":"Done","commit_id":"933857cfc91758e3bf1c50fb4ad3f76f60fc0d6b"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"63303fe1f7438a3862bce70ceccfb72f99ca3b11","unresolved":false,"context_lines":[{"line_number":40,"context_line":"               default\u003d30,"},{"line_number":41,"context_line":"               help\u003d_(\u0027Timeout value for connecting to neutron in seconds.\u0027)),"},{"line_number":42,"context_line":"    cfg.IntOpt(\u0027port_timeout\u0027,"},{"line_number":43,"context_line":"               default\u003d0,"},{"line_number":44,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":45,"context_line":"                      \u0027in seconds.\u0027)),"},{"line_number":46,"context_line":"    cfg.IntOpt(\u0027retries\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a1b2928_1aa144aa","line":43,"in_reply_to":"7a1b2928_61b40ff2","updated":"2016-04-11 13:05:27.000000000","message":"It is not only for SSH. We may face with the bug when using virtualbmc, libvirt or other out of tree driver that boot node to fast.\nWe may add something like and add note to remove it during next release:\n\nif CONF.neutron.port_timeout:\n  ...\nelif isinstance(task.driver.power, ssh.SSHPower):\n    LOG.debug(\"Waiting 15 seconds for Neutron.\")\n    time.sleep(15)\n\nbut I\u0027m not sure that it is really needed.","commit_id":"933857cfc91758e3bf1c50fb4ad3f76f60fc0d6b"},{"author":{"_account_id":11929,"name":"Michael Turek","email":"mjturek@linux.vnet.ibm.com","username":"mjturek"},"change_message_id":"49031a97115ffdf81bed6879f47b91780225b283","unresolved":false,"context_lines":[{"line_number":40,"context_line":"               default\u003d30,"},{"line_number":41,"context_line":"               help\u003d_(\u0027Timeout value for connecting to neutron in seconds.\u0027)),"},{"line_number":42,"context_line":"    cfg.IntOpt(\u0027port_setup_timeout\u0027,"},{"line_number":43,"context_line":"               default\u003d0,"},{"line_number":44,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":45,"context_line":"                      \u0027in seconds.\u0027)),"},{"line_number":46,"context_line":"    cfg.IntOpt(\u0027retries\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a1b2928_28978591","line":43,"range":{"start_line":43,"start_character":23,"end_line":43,"end_character":24},"updated":"2016-04-11 17:46:20.000000000","message":"Still wondering if this could be a default of 15. See below.","commit_id":"d230def908c5bbcfdb62a37c17fd6cd04bc732c5"},{"author":{"_account_id":11929,"name":"Michael Turek","email":"mjturek@linux.vnet.ibm.com","username":"mjturek"},"change_message_id":"c71b22c2ffd02ef4709f13d34bf474b9990547d2","unresolved":false,"context_lines":[{"line_number":40,"context_line":"               default\u003d30,"},{"line_number":41,"context_line":"               help\u003d_(\u0027Timeout value for connecting to neutron in seconds.\u0027)),"},{"line_number":42,"context_line":"    cfg.IntOpt(\u0027port_setup_timeout\u0027,"},{"line_number":43,"context_line":"               default\u003d0,"},{"line_number":44,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":45,"context_line":"                      \u0027in seconds.\u0027)),"},{"line_number":46,"context_line":"    cfg.IntOpt(\u0027retries\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a18252c_b674abfd","line":43,"range":{"start_line":43,"start_character":23,"end_line":43,"end_character":24},"in_reply_to":"5a18252c_573f2725","updated":"2016-04-12 12:55:28.000000000","message":"Right, which is why I suggested below that you check to see if it\u0027s an affected driver and then only wait if it is.\n\nThis would allow a default value of 15 and then it would wait when an affected driver is used.","commit_id":"d230def908c5bbcfdb62a37c17fd6cd04bc732c5"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"0660f088cbbb7eb5c0432876b16c859879d4518a","unresolved":false,"context_lines":[{"line_number":40,"context_line":"               default\u003d30,"},{"line_number":41,"context_line":"               help\u003d_(\u0027Timeout value for connecting to neutron in seconds.\u0027)),"},{"line_number":42,"context_line":"    cfg.IntOpt(\u0027port_setup_timeout\u0027,"},{"line_number":43,"context_line":"               default\u003d0,"},{"line_number":44,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":45,"context_line":"                      \u0027in seconds.\u0027)),"},{"line_number":46,"context_line":"    cfg.IntOpt(\u0027retries\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a18252c_573f2725","line":43,"range":{"start_line":43,"start_character":23,"end_line":43,"end_character":24},"in_reply_to":"7a1b2928_28978591","updated":"2016-04-12 06:32:08.000000000","message":"If we set it to 15 by default, Ironic will wait 15 second for baremetal server also, previously we had this delay only for VMs since they booting to fast. Please have look at L200\n\nif isinstance(task.driver.power, ssh.SSHPower):\n            LOG.debug(\"Waiting 15 seconds for Neutron.\")\n            time.sleep(15)","commit_id":"d230def908c5bbcfdb62a37c17fd6cd04bc732c5"},{"author":{"_account_id":11929,"name":"Michael Turek","email":"mjturek@linux.vnet.ibm.com","username":"mjturek"},"change_message_id":"49031a97115ffdf81bed6879f47b91780225b283","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        # after Newton release."},{"line_number":208,"context_line":"        elif isinstance(task.driver.power, ssh.SSHPower):"},{"line_number":209,"context_line":"            port_timeout \u003d 15"},{"line_number":210,"context_line":"        if port_timeout:"},{"line_number":211,"context_line":"            LOG.debug(\"Waiting %d seconds for Neutron.\","},{"line_number":212,"context_line":"                      port_timeout)"},{"line_number":213,"context_line":"            time.sleep(port_timeout)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a1b2928_48c64168","line":210,"updated":"2016-04-11 17:46:20.000000000","message":"Instead of only waiting if port_setup_timeout is set, maybe you should only wait if it\u0027s an affected driver.","commit_id":"d230def908c5bbcfdb62a37c17fd6cd04bc732c5"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"830b875f7bebafd99b39cc976b4fbf78a5099698","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from ironic.common import keystone"},{"line_number":30,"context_line":"from ironic.common import network"},{"line_number":31,"context_line":"from ironic.dhcp import base"},{"line_number":32,"context_line":"from ironic.drivers.modules import ssh"},{"line_number":33,"context_line":"from ironic.objects.port import Port"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5a18252c_2d09782d","side":"PARENT","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":38},"updated":"2016-04-12 07:31:16.000000000","message":"I see we still use ssh in L208, so should keep this line.","commit_id":"f8e078930d5c238dc4caa6be2c75a852a74494d8"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"830b875f7bebafd99b39cc976b4fbf78a5099698","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        # agents have setup sufficient DHCP config for netboot."},{"line_number":202,"context_line":"        # It may occur when we using SSH, Libvirt, ipmitool with virtualbmc"},{"line_number":203,"context_line":"        # or other power drivers."},{"line_number":204,"context_line":"        if CONF.neutron.port_setup_timeout:"},{"line_number":205,"context_line":"            port_timeout  \u003d CONF.neutron.port_setup_timeout"},{"line_number":206,"context_line":"        # TODO(vsaienko) remove hardcoded value for SSH server"},{"line_number":207,"context_line":"        # after Newton release."}],"source_content_type":"text/x-python","patch_set":7,"id":"5a18252c_ad90e896","line":204,"range":{"start_line":204,"start_character":8,"end_line":204,"end_character":43},"updated":"2016-04-12 07:31:16.000000000","message":"nit: since we have default value CONF.neutron.port_setup_timeout\u003d0, so this if branch is not required, just run below line to get the timout configuration, it will be populated to 0 if default value enabled, and will work with below L210 if branch I think.","commit_id":"9a41b6644c51627175ab37e50901d56781d69cfb"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"93f9b78ade7eaca208f291627853f3e5b4cd8fd0","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        # after Newton release."},{"line_number":208,"context_line":"        if isinstance(task.driver.power, ssh.SSHPower):"},{"line_number":209,"context_line":"            port_timeout \u003d 15"},{"line_number":210,"context_line":"        if port_timeout:"},{"line_number":211,"context_line":"            LOG.debug(\"Waiting %d seconds for Neutron.\","},{"line_number":212,"context_line":"                      port_timeout)"},{"line_number":213,"context_line":"            time.sleep(port_timeout)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_c9c8b377","line":210,"updated":"2016-04-12 09:24:50.000000000","message":"nit: \n\nif port_timeout \u003e 0\n\nMostly to avoid someone setting it to a negative value and time.sleep() raising an error.","commit_id":"47c13c6a7907e172ac98dfbdbbbf804cb5b0283e"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"22259d58a1887020be5992edfb1073b00f03936a","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        # after Newton release."},{"line_number":208,"context_line":"        if isinstance(task.driver.power, ssh.SSHPower):"},{"line_number":209,"context_line":"            port_timeout \u003d 15"},{"line_number":210,"context_line":"        if port_timeout:"},{"line_number":211,"context_line":"            LOG.debug(\"Waiting %d seconds for Neutron.\","},{"line_number":212,"context_line":"                      port_timeout)"},{"line_number":213,"context_line":"            time.sleep(port_timeout)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a18252c_f2175852","line":210,"in_reply_to":"5a18252c_c9c8b377","updated":"2016-04-12 10:31:28.000000000","message":"Done","commit_id":"47c13c6a7907e172ac98dfbdbbbf804cb5b0283e"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"662f5dadb5518bfcc8a371c76fe41f136c7589c1","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    cfg.IntOpt(\u0027port_setup_timeout\u0027,"},{"line_number":44,"context_line":"               default\u003d0,"},{"line_number":45,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":46,"context_line":"                      \u0027in seconds.\u0027)),"},{"line_number":47,"context_line":"    cfg.IntOpt(\u0027retries\u0027,"},{"line_number":48,"context_line":"               default\u003d3,"},{"line_number":49,"context_line":"               help\u003d_(\u0027Client retries in the case of a failed request.\u0027)),"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_7dc4b991","line":46,"updated":"2016-04-12 10:36:34.000000000","message":"I wonder if we should add something in the help that says that for the ssh driver it will be ignored?","commit_id":"2b0a4a95ac65dc35ad143225339aacec49394294"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"d786126520bb1468c42525f29f0c38443038f5af","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    cfg.IntOpt(\u0027port_setup_timeout\u0027,"},{"line_number":44,"context_line":"               default\u003d0,"},{"line_number":45,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":46,"context_line":"                      \u0027in seconds.\u0027)),"},{"line_number":47,"context_line":"    cfg.IntOpt(\u0027retries\u0027,"},{"line_number":48,"context_line":"               default\u003d3,"},{"line_number":49,"context_line":"               help\u003d_(\u0027Client retries in the case of a failed request.\u0027)),"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_78e7a712","line":46,"in_reply_to":"5a18252c_1d5f8573","updated":"2016-04-12 11:02:16.000000000","message":"I think unless this is documented, we\u0027ll end up with people trying to use this config value and then being confused to why its still waiting for 15 seconds.","commit_id":"2b0a4a95ac65dc35ad143225339aacec49394294"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"ec95538a6670d278d6868ea7c01b65161985e6a7","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    cfg.IntOpt(\u0027port_setup_timeout\u0027,"},{"line_number":44,"context_line":"               default\u003d0,"},{"line_number":45,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":46,"context_line":"                      \u0027in seconds.\u0027)),"},{"line_number":47,"context_line":"    cfg.IntOpt(\u0027retries\u0027,"},{"line_number":48,"context_line":"               default\u003d3,"},{"line_number":49,"context_line":"               help\u003d_(\u0027Client retries in the case of a failed request.\u0027)),"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_1d5f8573","line":46,"in_reply_to":"5a18252c_7dc4b991","updated":"2016-04-12 10:44:33.000000000","message":"L208 will be removed and this parameter will take affect for all drivers when is set. It was done to provide compatibility if someone just checkout new ironic code without devstack reinstallation.","commit_id":"2b0a4a95ac65dc35ad143225339aacec49394294"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"d786126520bb1468c42525f29f0c38443038f5af","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        port_timeout \u003d CONF.neutron.port_setup_timeout"},{"line_number":206,"context_line":"        # TODO(vsaienko) remove hardcoded value for SSH server"},{"line_number":207,"context_line":"        # after Newton release."},{"line_number":208,"context_line":"        if isinstance(task.driver.power, ssh.SSHPower):"},{"line_number":209,"context_line":"            port_timeout \u003d 15"},{"line_number":210,"context_line":"        if port_timeout \u003e 0:"},{"line_number":211,"context_line":"            LOG.debug(\"Waiting %d seconds for Neutron.\","}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_989c436b","line":208,"updated":"2016-04-12 11:02:16.000000000","message":"I would prefer:\n\n    if isinstance(task.driver.power, ssh.SSHPower) and port_timeout \u003d\u003d 0:\n        port_timeout \u003d 15\n\nIf we do it like this then if someone does set the port_setup_timeout it won\u0027t get ignored, and its down to them to make sure its the right value for the driver they are trying to deploy.\n\nI also wonder if we should add a proper deprecation warning, e.g: \n\n    LOG.warn(\u0027Setting the port timeout to 15 by default, this will be removed in Otaka please set port_setup_time to 15\u0027)","commit_id":"2b0a4a95ac65dc35ad143225339aacec49394294"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"36347c751faa5ad666d5bfb0309c56c1ad6a4353","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        port_timeout \u003d CONF.neutron.port_setup_timeout"},{"line_number":206,"context_line":"        # TODO(vsaienko) remove hardcoded value for SSH server"},{"line_number":207,"context_line":"        # after Newton release."},{"line_number":208,"context_line":"        if isinstance(task.driver.power, ssh.SSHPower):"},{"line_number":209,"context_line":"            port_timeout \u003d 15"},{"line_number":210,"context_line":"        if port_timeout \u003e 0:"},{"line_number":211,"context_line":"            LOG.debug(\"Waiting %d seconds for Neutron.\","}],"source_content_type":"text/x-python","patch_set":9,"id":"5a18252c_ac7c6021","line":208,"in_reply_to":"5a18252c_989c436b","updated":"2016-04-12 11:18:19.000000000","message":"Done","commit_id":"2b0a4a95ac65dc35ad143225339aacec49394294"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"121d7ee9eca54a5e8c43a1b376349f392d3e5133","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    cfg.IntOpt(\u0027port_setup_timeout\u0027,"},{"line_number":44,"context_line":"               default\u003d0,"},{"line_number":45,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":46,"context_line":"                      \u0027in seconds.\u0027)),"},{"line_number":47,"context_line":"    cfg.IntOpt(\u0027retries\u0027,"},{"line_number":48,"context_line":"               default\u003d3,"},{"line_number":49,"context_line":"               help\u003d_(\u0027Client retries in the case of a failed request.\u0027)),"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a18252c_cf742eff","line":46,"updated":"2016-04-12 11:41:31.000000000","message":"I still think something as simple as \"... in seconds. In Newton default is overridden to 15 seconds for drivers using SSHPower for backwards compatibility, this will be removed in Ocata.\"","commit_id":"ff726b0e90e4bec2cb06ba0ce6af0a59f40638b5"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"121d7ee9eca54a5e8c43a1b376349f392d3e5133","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        # after Newton release."},{"line_number":208,"context_line":"        if isinstance(task.driver.power, ssh.SSHPower) and port_timeout \u003d\u003d 0:"},{"line_number":209,"context_line":"            LOG.warning(_LW(\"Setting the port timeout to 15 by default, \""},{"line_number":210,"context_line":"                            \"this will be removed in Otaka please set \""},{"line_number":211,"context_line":"                            \"port_setup_time to 15\"))"},{"line_number":212,"context_line":"            port_timeout \u003d 15"},{"line_number":213,"context_line":"        if port_timeout \u003e 0:"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a18252c_cc2c3cae","line":210,"range":{"start_line":210,"start_character":53,"end_line":210,"end_character":58},"updated":"2016-04-12 11:41:31.000000000","message":"s/Otaka/Ocata sorry my mistake","commit_id":"ff726b0e90e4bec2cb06ba0ce6af0a59f40638b5"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"554363e90f8c19b618e73f5160b128bc369aff81","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    cfg.IntOpt(\u0027port_setup_timeout\u0027,"},{"line_number":44,"context_line":"               default\u003d0,"},{"line_number":45,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":46,"context_line":"                      \u0027in seconds. In Newton default is overridden to 15 \u0027"},{"line_number":47,"context_line":"                      \u0027seconds for drivers using SSHPower for backwards \u0027"},{"line_number":48,"context_line":"                      \u0027compatibility, this will be removed in Ocata.\u0027)),"},{"line_number":49,"context_line":"    cfg.IntOpt(\u0027retries\u0027,"},{"line_number":50,"context_line":"               default\u003d3,"},{"line_number":51,"context_line":"               help\u003d_(\u0027Client retries in the case of a failed request.\u0027)),"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a18252c_e67c8ced","line":48,"range":{"start_line":46,"start_character":35,"end_line":48,"end_character":68},"updated":"2016-04-13 03:31:22.000000000","message":"This note seems should not be here, it will lead confuse.","commit_id":"6cdb4b53fd79ddcbf87ed7b825370f7b000adcbc"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"c8f1cb6671283009cf5347cfcbe4cb584d06836d","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    cfg.IntOpt(\u0027port_setup_timeout\u0027,"},{"line_number":44,"context_line":"               default\u003d0,"},{"line_number":45,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":46,"context_line":"                      \u0027in seconds. In Newton default is overridden to 15 \u0027"},{"line_number":47,"context_line":"                      \u0027seconds for drivers using SSHPower for backwards \u0027"},{"line_number":48,"context_line":"                      \u0027compatibility, this will be removed in Ocata.\u0027)),"},{"line_number":49,"context_line":"    cfg.IntOpt(\u0027retries\u0027,"},{"line_number":50,"context_line":"               default\u003d3,"},{"line_number":51,"context_line":"               help\u003d_(\u0027Client retries in the case of a failed request.\u0027)),"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a18252c_779f8850","line":48,"range":{"start_line":46,"start_character":35,"end_line":48,"end_character":68},"in_reply_to":"5a18252c_e67c8ced","updated":"2016-04-13 06:17:19.000000000","message":"Yeah, it is a little bit confusing. I have reworded it.","commit_id":"6cdb4b53fd79ddcbf87ed7b825370f7b000adcbc"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"9e57110ea3d21d8439e7977ea1b3ddfacb03e897","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    cfg.IntOpt(\u0027url_timeout\u0027,"},{"line_number":41,"context_line":"               default\u003d30,"},{"line_number":42,"context_line":"               help\u003d_(\u0027Timeout value for connecting to neutron in seconds.\u0027)),"},{"line_number":43,"context_line":"    cfg.IntOpt(\u0027port_setup_timeout\u0027,"},{"line_number":44,"context_line":"               default\u003d0,"},{"line_number":45,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":46,"context_line":"                      \u0027in seconds. In Newton default is overridden to 15 \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a18252c_abe890e3","line":43,"updated":"2016-04-13 09:31:37.000000000","message":"Parameter name looks incorrect. Technically this is not timeout, this is delay. What about \u0027port_setup_delay\u0027 name?\n(This comment is reason for \"-1\").","commit_id":"0d237ed45fb8df35e3c9ffc7e312e97bbb337749"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"a22706a42a219b8fc56c20ca83e4a8a62a9a3db5","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    cfg.IntOpt(\u0027url_timeout\u0027,"},{"line_number":41,"context_line":"               default\u003d30,"},{"line_number":42,"context_line":"               help\u003d_(\u0027Timeout value for connecting to neutron in seconds.\u0027)),"},{"line_number":43,"context_line":"    cfg.IntOpt(\u0027port_setup_timeout\u0027,"},{"line_number":44,"context_line":"               default\u003d0,"},{"line_number":45,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":46,"context_line":"                      \u0027in seconds. In Newton default is overridden to 15 \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a18252c_cea199ab","line":43,"in_reply_to":"5a18252c_abe890e3","updated":"2016-04-13 09:58:03.000000000","message":"+1 I like this","commit_id":"0d237ed45fb8df35e3c9ffc7e312e97bbb337749"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"c59c8896310880cb9b7b7fe05f0de2b48820d384","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    cfg.IntOpt(\u0027url_timeout\u0027,"},{"line_number":41,"context_line":"               default\u003d30,"},{"line_number":42,"context_line":"               help\u003d_(\u0027Timeout value for connecting to neutron in seconds.\u0027)),"},{"line_number":43,"context_line":"    cfg.IntOpt(\u0027port_setup_timeout\u0027,"},{"line_number":44,"context_line":"               default\u003d0,"},{"line_number":45,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":46,"context_line":"                      \u0027in seconds. In Newton default is overridden to 15 \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a18252c_116f36c6","line":43,"in_reply_to":"5a18252c_abe890e3","updated":"2016-04-13 10:19:23.000000000","message":"Done","commit_id":"0d237ed45fb8df35e3c9ffc7e312e97bbb337749"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"9e57110ea3d21d8439e7977ea1b3ddfacb03e897","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        # mechanism for synchronizing events with Neutron. We need to sleep"},{"line_number":204,"context_line":"        # only if we are booting VMs, which get to PXE faster than Neutron"},{"line_number":205,"context_line":"        # agents have setup sufficient DHCP config for netboot."},{"line_number":206,"context_line":"        # It may occur when we using SSH, Libvirt, ipmitool with virtualbmc"},{"line_number":207,"context_line":"        # or other power drivers."},{"line_number":208,"context_line":"        port_timeout \u003d CONF.neutron.port_setup_timeout"},{"line_number":209,"context_line":"        # TODO(vsaienko) remove hardcoded value for SSH server"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a18252c_4b5e1c77","line":206,"updated":"2016-04-13 09:31:37.000000000","message":"Suggestion: our config defaults should be production-ready. If default is 0 for backward compatibility user can reproduce this bug in the production env. Using of this option should be properly documented at least.","commit_id":"0d237ed45fb8df35e3c9ffc7e312e97bbb337749"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"a22706a42a219b8fc56c20ca83e4a8a62a9a3db5","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        # mechanism for synchronizing events with Neutron. We need to sleep"},{"line_number":204,"context_line":"        # only if we are booting VMs, which get to PXE faster than Neutron"},{"line_number":205,"context_line":"        # agents have setup sufficient DHCP config for netboot."},{"line_number":206,"context_line":"        # It may occur when we using SSH, Libvirt, ipmitool with virtualbmc"},{"line_number":207,"context_line":"        # or other power drivers."},{"line_number":208,"context_line":"        port_timeout \u003d CONF.neutron.port_setup_timeout"},{"line_number":209,"context_line":"        # TODO(vsaienko) remove hardcoded value for SSH server"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a18252c_ce37d9ae","line":206,"in_reply_to":"5a18252c_4b5e1c77","updated":"2016-04-13 09:58:03.000000000","message":"The default 0 is production ready when using Ironic as intended with real hardware, this config option is really only necessary if you have real hardware that is insanely fast and can boot faster than neutron can configure the networking, or if your mocking baremetal deployment using VMs which boot much faster than real hardware.","commit_id":"0d237ed45fb8df35e3c9ffc7e312e97bbb337749"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"95dda801eb680f17b686c1e8f2e322cba0a203df","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        # mechanism for synchronizing events with Neutron. We need to sleep"},{"line_number":204,"context_line":"        # only if we are booting VMs, which get to PXE faster than Neutron"},{"line_number":205,"context_line":"        # agents have setup sufficient DHCP config for netboot."},{"line_number":206,"context_line":"        # It may occur when we using SSH, Libvirt, ipmitool with virtualbmc"},{"line_number":207,"context_line":"        # or other power drivers."},{"line_number":208,"context_line":"        port_timeout \u003d CONF.neutron.port_setup_timeout"},{"line_number":209,"context_line":"        # TODO(vsaienko) remove hardcoded value for SSH server"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a18252c_2eac8d34","line":206,"in_reply_to":"5a18252c_ce37d9ae","updated":"2016-04-13 10:06:18.000000000","message":"Agree.","commit_id":"0d237ed45fb8df35e3c9ffc7e312e97bbb337749"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"c59c8896310880cb9b7b7fe05f0de2b48820d384","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        # mechanism for synchronizing events with Neutron. We need to sleep"},{"line_number":204,"context_line":"        # only if we are booting VMs, which get to PXE faster than Neutron"},{"line_number":205,"context_line":"        # agents have setup sufficient DHCP config for netboot."},{"line_number":206,"context_line":"        # It may occur when we using SSH, Libvirt, ipmitool with virtualbmc"},{"line_number":207,"context_line":"        # or other power drivers."},{"line_number":208,"context_line":"        port_timeout \u003d CONF.neutron.port_setup_timeout"},{"line_number":209,"context_line":"        # TODO(vsaienko) remove hardcoded value for SSH server"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a18252c_f17f1a64","line":206,"in_reply_to":"5a18252c_ce37d9ae","updated":"2016-04-13 10:19:23.000000000","message":"If server is configured with fast boot it may get to PXE faster that neutron setup dhcp options.","commit_id":"0d237ed45fb8df35e3c9ffc7e312e97bbb337749"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"314544444122f362e8d5ccc48235b28bdb82bce9","unresolved":false,"context_lines":[{"line_number":42,"context_line":"               help\u003d_(\u0027Timeout value for connecting to neutron in seconds.\u0027)),"},{"line_number":43,"context_line":"    cfg.IntOpt(\u0027port_setup_delay\u0027,"},{"line_number":44,"context_line":"               default\u003d0,"},{"line_number":45,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":46,"context_line":"                      \u0027in seconds. In Newton default is overridden to 15 \u0027"},{"line_number":47,"context_line":"                      \u0027seconds for drivers using SSHPower for backwards \u0027"},{"line_number":48,"context_line":"                      \u0027compatibility. In Ocata this parameter will take \u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a18252c_e5ebd076","line":45,"updated":"2016-04-13 11:37:22.000000000","message":"Better: s/Timeout/Delay value (in seconds) to wait completion of ...","commit_id":"63cd2dc8109159d4a86d742d82d7c8bbbf6eebdf"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"a2f681e676cedd07d570e3e2b2a53f0b4a71291d","unresolved":false,"context_lines":[{"line_number":42,"context_line":"               help\u003d_(\u0027Timeout value for connecting to neutron in seconds.\u0027)),"},{"line_number":43,"context_line":"    cfg.IntOpt(\u0027port_setup_delay\u0027,"},{"line_number":44,"context_line":"               default\u003d0,"},{"line_number":45,"context_line":"               help\u003d_(\u0027Timeout value to wait for Neutron port operations \u0027"},{"line_number":46,"context_line":"                      \u0027in seconds. In Newton default is overridden to 15 \u0027"},{"line_number":47,"context_line":"                      \u0027seconds for drivers using SSHPower for backwards \u0027"},{"line_number":48,"context_line":"                      \u0027compatibility. In Ocata this parameter will take \u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a18252c_5464e1e2","line":45,"in_reply_to":"5a18252c_e5ebd076","updated":"2016-04-13 17:01:07.000000000","message":"Done","commit_id":"63cd2dc8109159d4a86d742d82d7c8bbbf6eebdf"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"314544444122f362e8d5ccc48235b28bdb82bce9","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        # only if server get to PXE faster than Neutron agents have setup"},{"line_number":205,"context_line":"        # sufficient DHCP config for netboot. It may occur when we using VMs"},{"line_number":206,"context_line":"        # or hardware server with fast boot enabled."},{"line_number":207,"context_line":"        port_timeout \u003d CONF.neutron.port_setup_delay"},{"line_number":208,"context_line":"        # TODO(vsaienko) remove hardcoded value for SSH server"},{"line_number":209,"context_line":"        # after Newton release."},{"line_number":210,"context_line":"        if isinstance(task.driver.power, ssh.SSHPower) and port_timeout \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a18252c_657d00b1","line":207,"updated":"2016-04-13 11:37:22.000000000","message":"Please rename var too.","commit_id":"63cd2dc8109159d4a86d742d82d7c8bbbf6eebdf"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"a2f681e676cedd07d570e3e2b2a53f0b4a71291d","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        # only if server get to PXE faster than Neutron agents have setup"},{"line_number":205,"context_line":"        # sufficient DHCP config for netboot. It may occur when we using VMs"},{"line_number":206,"context_line":"        # or hardware server with fast boot enabled."},{"line_number":207,"context_line":"        port_timeout \u003d CONF.neutron.port_setup_delay"},{"line_number":208,"context_line":"        # TODO(vsaienko) remove hardcoded value for SSH server"},{"line_number":209,"context_line":"        # after Newton release."},{"line_number":210,"context_line":"        if isinstance(task.driver.power, ssh.SSHPower) and port_timeout \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":13,"id":"5a18252c_949cb9c1","line":207,"in_reply_to":"5a18252c_657d00b1","updated":"2016-04-13 17:01:07.000000000","message":"Done","commit_id":"63cd2dc8109159d4a86d742d82d7c8bbbf6eebdf"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"a4d8d81b0a800d0c497b679644c54960950d904b","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        # TODO(vsaienko) remove hardcoded value for SSH server"},{"line_number":209,"context_line":"        # after Newton release."},{"line_number":210,"context_line":"        if isinstance(task.driver.power, ssh.SSHPower) and port_delay \u003d\u003d 0:"},{"line_number":211,"context_line":"            LOG.warning(_LW(\"Setting the port delay to 15 by default, \""},{"line_number":212,"context_line":"                            \"this will be removed in Ocata please set \""},{"line_number":213,"context_line":"                            \"port_setup_delay to 15\"))"},{"line_number":214,"context_line":"            port_delay \u003d 15"},{"line_number":215,"context_line":"        if port_delay \u003e 0:"},{"line_number":216,"context_line":"            LOG.debug(\"Waiting %d seconds for Neutron.\","}],"source_content_type":"text/x-python","patch_set":15,"id":"1a122d0e_79ab168a","line":213,"range":{"start_line":211,"start_character":29,"end_line":213,"end_character":51},"updated":"2016-04-16 16:29:09.000000000","message":"I think we should mention setting the port delay to 15 is just for drivers using SSHPower, otherwise this warning may confuse users.","commit_id":"fee01996327ef98df78febaaf6463e67ae5fff5d"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"5149f9f2bbbff14c4c30fda381bb1e129f5eda28","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        # after Newton release."},{"line_number":210,"context_line":"        if isinstance(task.driver.power, ssh.SSHPower) and port_delay \u003d\u003d 0:"},{"line_number":211,"context_line":"            LOG.warning(_LW(\"Setting the port delay to 15 by default, \""},{"line_number":212,"context_line":"                            \"this will be removed in Ocata please set \""},{"line_number":213,"context_line":"                            \"port_setup_delay to 15\"))"},{"line_number":214,"context_line":"            port_delay \u003d 15"},{"line_number":215,"context_line":"        if port_delay \u003e 0:"},{"line_number":216,"context_line":"            LOG.debug(\"Waiting %d seconds for Neutron.\","}],"source_content_type":"text/x-python","patch_set":15,"id":"1a122d0e_a06a9718","line":213,"range":{"start_line":212,"start_character":59,"end_line":213,"end_character":51},"updated":"2016-04-16 11:36:52.000000000","message":"It would be better to indicate that \u0027port_setup_delay\u0027 is a config variable; Something like:\n\"Please set configuration parameter \u0027port_setup_delay\u0027 to 15.\"","commit_id":"fee01996327ef98df78febaaf6463e67ae5fff5d"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"d92d81a4035bb89205cced9cf6936213e5fe7125","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        # TODO(vsaienko) remove hardcoded value for SSH server"},{"line_number":209,"context_line":"        # after Newton release."},{"line_number":210,"context_line":"        if isinstance(task.driver.power, ssh.SSHPower) and port_delay \u003d\u003d 0:"},{"line_number":211,"context_line":"            LOG.warning(_LW(\"Setting the port delay to 15 by default, \""},{"line_number":212,"context_line":"                            \"this will be removed in Ocata please set \""},{"line_number":213,"context_line":"                            \"port_setup_delay to 15\"))"},{"line_number":214,"context_line":"            port_delay \u003d 15"},{"line_number":215,"context_line":"        if port_delay \u003e 0:"},{"line_number":216,"context_line":"            LOG.debug(\"Waiting %d seconds for Neutron.\","}],"source_content_type":"text/x-python","patch_set":15,"id":"1a122d0e_38b7cf3a","line":213,"range":{"start_line":211,"start_character":29,"end_line":213,"end_character":51},"in_reply_to":"1a122d0e_79ab168a","updated":"2016-04-17 20:46:06.000000000","message":"Done","commit_id":"fee01996327ef98df78febaaf6463e67ae5fff5d"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"a4d8d81b0a800d0c497b679644c54960950d904b","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                            \"port_setup_delay to 15\"))"},{"line_number":214,"context_line":"            port_delay \u003d 15"},{"line_number":215,"context_line":"        if port_delay \u003e 0:"},{"line_number":216,"context_line":"            LOG.debug(\"Waiting %d seconds for Neutron.\","},{"line_number":217,"context_line":"                      port_delay)"},{"line_number":218,"context_line":"        time.sleep(port_delay)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def _get_fixed_ip_address(self, port_uuid, client):"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a122d0e_797cb672","line":217,"range":{"start_line":216,"start_character":12,"end_line":217,"end_character":33},"updated":"2016-04-16 16:29:09.000000000","message":"nit: fits into one line.","commit_id":"fee01996327ef98df78febaaf6463e67ae5fff5d"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"d92d81a4035bb89205cced9cf6936213e5fe7125","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                            \"port_setup_delay to 15\"))"},{"line_number":214,"context_line":"            port_delay \u003d 15"},{"line_number":215,"context_line":"        if port_delay \u003e 0:"},{"line_number":216,"context_line":"            LOG.debug(\"Waiting %d seconds for Neutron.\","},{"line_number":217,"context_line":"                      port_delay)"},{"line_number":218,"context_line":"        time.sleep(port_delay)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def _get_fixed_ip_address(self, port_uuid, client):"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a122d0e_98826351","line":217,"range":{"start_line":216,"start_character":12,"end_line":217,"end_character":33},"in_reply_to":"1a122d0e_797cb672","updated":"2016-04-17 20:46:06.000000000","message":"Done","commit_id":"fee01996327ef98df78febaaf6463e67ae5fff5d"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"a4d8d81b0a800d0c497b679644c54960950d904b","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        if port_delay \u003e 0:"},{"line_number":216,"context_line":"            LOG.debug(\"Waiting %d seconds for Neutron.\","},{"line_number":217,"context_line":"                      port_delay)"},{"line_number":218,"context_line":"        time.sleep(port_delay)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def _get_fixed_ip_address(self, port_uuid, client):"},{"line_number":221,"context_line":"        \"\"\"Get a Neutron port\u0027s fixed ip address."}],"source_content_type":"text/x-python","patch_set":15,"id":"1a122d0e_798316cd","line":218,"range":{"start_line":218,"start_character":8,"end_line":218,"end_character":30},"updated":"2016-04-16 16:29:09.000000000","message":"this should be only done when port_delay \u003e\u003d 0, otherwise time.sleep() will raise an error.","commit_id":"fee01996327ef98df78febaaf6463e67ae5fff5d"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"d92d81a4035bb89205cced9cf6936213e5fe7125","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        if port_delay \u003e 0:"},{"line_number":216,"context_line":"            LOG.debug(\"Waiting %d seconds for Neutron.\","},{"line_number":217,"context_line":"                      port_delay)"},{"line_number":218,"context_line":"        time.sleep(port_delay)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def _get_fixed_ip_address(self, port_uuid, client):"},{"line_number":221,"context_line":"        \"\"\"Get a Neutron port\u0027s fixed ip address."}],"source_content_type":"text/x-python","patch_set":15,"id":"1a122d0e_78878761","line":218,"range":{"start_line":218,"start_character":8,"end_line":218,"end_character":30},"in_reply_to":"1a122d0e_798316cd","updated":"2016-04-17 20:46:06.000000000","message":"Done","commit_id":"fee01996327ef98df78febaaf6463e67ae5fff5d"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"c64d4a330b7e0f7ac0e3b652b7e9147644ee1882","unresolved":false,"context_lines":[{"line_number":41,"context_line":"               default\u003d30,"},{"line_number":42,"context_line":"               help\u003d_(\u0027Timeout value for connecting to neutron in seconds.\u0027)),"},{"line_number":43,"context_line":"    cfg.IntOpt(\u0027port_setup_delay\u0027,"},{"line_number":44,"context_line":"               default\u003d0,"},{"line_number":45,"context_line":"               help\u003d_(\u0027Delay value to wait for Neutron port operations \u0027"},{"line_number":46,"context_line":"                      \u0027in seconds. In Newton default is overridden to 15 \u0027"},{"line_number":47,"context_line":"                      \u0027seconds for drivers using SSHPower for backwards \u0027"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a122d0e_48e638b5","line":44,"updated":"2016-04-18 06:18:42.000000000","message":"append \u0027min\u003d0,\u0027","commit_id":"b0cbca068014ff54265ac663006190d61b2f19a2"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"91e1de1d4abe8b5941a6cbdd4819b305056eacc1","unresolved":false,"context_lines":[{"line_number":41,"context_line":"               default\u003d30,"},{"line_number":42,"context_line":"               help\u003d_(\u0027Timeout value for connecting to neutron in seconds.\u0027)),"},{"line_number":43,"context_line":"    cfg.IntOpt(\u0027port_setup_delay\u0027,"},{"line_number":44,"context_line":"               default\u003d0,"},{"line_number":45,"context_line":"               help\u003d_(\u0027Delay value to wait for Neutron port operations \u0027"},{"line_number":46,"context_line":"                      \u0027in seconds. In Newton default is overridden to 15 \u0027"},{"line_number":47,"context_line":"                      \u0027seconds for drivers using SSHPower for backwards \u0027"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a122d0e_4f58f532","line":44,"in_reply_to":"1a122d0e_48e638b5","updated":"2016-04-18 09:57:52.000000000","message":"Done","commit_id":"b0cbca068014ff54265ac663006190d61b2f19a2"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"c64d4a330b7e0f7ac0e3b652b7e9147644ee1882","unresolved":false,"context_lines":[{"line_number":45,"context_line":"               help\u003d_(\u0027Delay value to wait for Neutron port operations \u0027"},{"line_number":46,"context_line":"                      \u0027in seconds. In Newton default is overridden to 15 \u0027"},{"line_number":47,"context_line":"                      \u0027seconds for drivers using SSHPower for backwards \u0027"},{"line_number":48,"context_line":"                      \u0027compatibility. In Ocata this parameter will take \u0027"},{"line_number":49,"context_line":"                      \u0027affect for all drivers.\u0027)),"},{"line_number":50,"context_line":"    cfg.IntOpt(\u0027retries\u0027,"},{"line_number":51,"context_line":"               default\u003d3,"},{"line_number":52,"context_line":"               help\u003d_(\u0027Client retries in the case of a failed request.\u0027)),"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a122d0e_88ee9089","line":49,"range":{"start_line":48,"start_character":38,"end_line":49,"end_character":46},"updated":"2016-04-18 06:18:42.000000000","message":"A little confuse about this, port_delay is already take effect for all drivers now.","commit_id":"b0cbca068014ff54265ac663006190d61b2f19a2"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"91e1de1d4abe8b5941a6cbdd4819b305056eacc1","unresolved":false,"context_lines":[{"line_number":45,"context_line":"               help\u003d_(\u0027Delay value to wait for Neutron port operations \u0027"},{"line_number":46,"context_line":"                      \u0027in seconds. In Newton default is overridden to 15 \u0027"},{"line_number":47,"context_line":"                      \u0027seconds for drivers using SSHPower for backwards \u0027"},{"line_number":48,"context_line":"                      \u0027compatibility. In Ocata this parameter will take \u0027"},{"line_number":49,"context_line":"                      \u0027affect for all drivers.\u0027)),"},{"line_number":50,"context_line":"    cfg.IntOpt(\u0027retries\u0027,"},{"line_number":51,"context_line":"               default\u003d3,"},{"line_number":52,"context_line":"               help\u003d_(\u0027Client retries in the case of a failed request.\u0027)),"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a122d0e_efec612b","line":49,"range":{"start_line":48,"start_character":38,"end_line":49,"end_character":46},"in_reply_to":"1a122d0e_88ee9089","updated":"2016-04-18 09:57:52.000000000","message":"this notification already present in warning message. removed it from help message.","commit_id":"b0cbca068014ff54265ac663006190d61b2f19a2"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a30f19daee2e84abc6238df6cfba897b19a11ec3","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    cfg.IntOpt(\u0027port_setup_delay\u0027,"},{"line_number":44,"context_line":"               default\u003d0,"},{"line_number":45,"context_line":"               min\u003d0,"},{"line_number":46,"context_line":"               help\u003d_(\u0027Delay value to wait for Neutron port operations \u0027"},{"line_number":47,"context_line":"                      \u0027in seconds.\u0027)),"},{"line_number":48,"context_line":"    cfg.IntOpt(\u0027retries\u0027,"},{"line_number":49,"context_line":"               default\u003d3,"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_7b4341af","line":46,"updated":"2016-04-21 09:06:50.000000000","message":"I\u0027d prefer - Delay value to wait for Neutron agents to setup sufficient DHCP configuration for port.","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"07e43320c457826f3a77e0b916949459268d527a","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    cfg.IntOpt(\u0027port_setup_delay\u0027,"},{"line_number":44,"context_line":"               default\u003d0,"},{"line_number":45,"context_line":"               min\u003d0,"},{"line_number":46,"context_line":"               help\u003d_(\u0027Delay value to wait for Neutron port operations \u0027"},{"line_number":47,"context_line":"                      \u0027in seconds.\u0027)),"},{"line_number":48,"context_line":"    cfg.IntOpt(\u0027retries\u0027,"},{"line_number":49,"context_line":"               default\u003d3,"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_2f297ee6","line":46,"in_reply_to":"1a122d0e_7b4341af","updated":"2016-04-21 12:27:50.000000000","message":"Done","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a30f19daee2e84abc6238df6cfba897b19a11ec3","unresolved":false,"context_lines":[{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        # TODO(adam_g): Hack to workaround bug 1334447 until we have a"},{"line_number":201,"context_line":"        # mechanism for synchronizing events with Neutron. We need to sleep"},{"line_number":202,"context_line":"        # only if server get to PXE faster than Neutron agents have setup"},{"line_number":203,"context_line":"        # sufficient DHCP config for netboot. It may occur when we using VMs"},{"line_number":204,"context_line":"        # or hardware server with fast boot enabled."},{"line_number":205,"context_line":"        port_delay \u003d CONF.neutron.port_setup_delay"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_b04fb890","line":202,"updated":"2016-04-21 09:06:50.000000000","message":"nit - the server gets","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"07e43320c457826f3a77e0b916949459268d527a","unresolved":false,"context_lines":[{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        # TODO(adam_g): Hack to workaround bug 1334447 until we have a"},{"line_number":201,"context_line":"        # mechanism for synchronizing events with Neutron. We need to sleep"},{"line_number":202,"context_line":"        # only if server get to PXE faster than Neutron agents have setup"},{"line_number":203,"context_line":"        # sufficient DHCP config for netboot. It may occur when we using VMs"},{"line_number":204,"context_line":"        # or hardware server with fast boot enabled."},{"line_number":205,"context_line":"        port_delay \u003d CONF.neutron.port_setup_delay"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_6f1ff6b6","line":202,"in_reply_to":"1a122d0e_b04fb890","updated":"2016-04-21 12:27:50.000000000","message":"Done","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a30f19daee2e84abc6238df6cfba897b19a11ec3","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        # TODO(adam_g): Hack to workaround bug 1334447 until we have a"},{"line_number":201,"context_line":"        # mechanism for synchronizing events with Neutron. We need to sleep"},{"line_number":202,"context_line":"        # only if server get to PXE faster than Neutron agents have setup"},{"line_number":203,"context_line":"        # sufficient DHCP config for netboot. It may occur when we using VMs"},{"line_number":204,"context_line":"        # or hardware server with fast boot enabled."},{"line_number":205,"context_line":"        port_delay \u003d CONF.neutron.port_setup_delay"},{"line_number":206,"context_line":"        # TODO(vsaienko) remove hardcoded value for SSH server"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_f045b06e","line":203,"updated":"2016-04-21 09:06:50.000000000","message":"nit - we are using","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"07e43320c457826f3a77e0b916949459268d527a","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        # TODO(adam_g): Hack to workaround bug 1334447 until we have a"},{"line_number":201,"context_line":"        # mechanism for synchronizing events with Neutron. We need to sleep"},{"line_number":202,"context_line":"        # only if server get to PXE faster than Neutron agents have setup"},{"line_number":203,"context_line":"        # sufficient DHCP config for netboot. It may occur when we using VMs"},{"line_number":204,"context_line":"        # or hardware server with fast boot enabled."},{"line_number":205,"context_line":"        port_delay \u003d CONF.neutron.port_setup_delay"},{"line_number":206,"context_line":"        # TODO(vsaienko) remove hardcoded value for SSH server"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_af62ae3b","line":203,"in_reply_to":"1a122d0e_f045b06e","updated":"2016-04-21 12:27:50.000000000","message":"Done","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a30f19daee2e84abc6238df6cfba897b19a11ec3","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        # sufficient DHCP config for netboot. It may occur when we using VMs"},{"line_number":204,"context_line":"        # or hardware server with fast boot enabled."},{"line_number":205,"context_line":"        port_delay \u003d CONF.neutron.port_setup_delay"},{"line_number":206,"context_line":"        # TODO(vsaienko) remove hardcoded value for SSH server"},{"line_number":207,"context_line":"        # after Newton release."},{"line_number":208,"context_line":"        if isinstance(task.driver.power, ssh.SSHPower) and port_delay \u003d\u003d 0:"},{"line_number":209,"context_line":"            LOG.warning(_LW(\"Setting the port delay to 15 for SSH power \""}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_70524036","line":206,"updated":"2016-04-21 09:06:50.000000000","message":"nit - SSH drivers","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"07e43320c457826f3a77e0b916949459268d527a","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        # sufficient DHCP config for netboot. It may occur when we using VMs"},{"line_number":204,"context_line":"        # or hardware server with fast boot enabled."},{"line_number":205,"context_line":"        port_delay \u003d CONF.neutron.port_setup_delay"},{"line_number":206,"context_line":"        # TODO(vsaienko) remove hardcoded value for SSH server"},{"line_number":207,"context_line":"        # after Newton release."},{"line_number":208,"context_line":"        if isinstance(task.driver.power, ssh.SSHPower) and port_delay \u003d\u003d 0:"},{"line_number":209,"context_line":"            LOG.warning(_LW(\"Setting the port delay to 15 for SSH power \""}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_0f52c266","line":206,"in_reply_to":"1a122d0e_70524036","updated":"2016-04-21 12:27:50.000000000","message":"Done","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"}],"ironic/tests/unit/dhcp/test_neutron.py":[{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"c64d4a330b7e0f7ac0e3b652b7e9147644ee1882","unresolved":false,"context_lines":[{"line_number":329,"context_line":"                                        mock_log):"},{"line_number":330,"context_line":"        mock_gnvi.return_value \u003d {\u0027ports\u0027: {\u0027port-uuid\u0027: \u0027vif-uuid\u0027},"},{"line_number":331,"context_line":"                                  \u0027portgroups\u0027: {}}"},{"line_number":332,"context_line":"        self.config(port_setup_delay\u003d-1, group\u003d\u0027neutron\u0027)"},{"line_number":333,"context_line":"        with task_manager.acquire(self.context,"},{"line_number":334,"context_line":"                                  self.node.uuid) as task:"},{"line_number":335,"context_line":"            opts \u003d pxe_utils.dhcp_options_for_instance(task)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a122d0e_c8e8887f","line":332,"range":{"start_line":332,"start_character":8,"end_line":332,"end_character":57},"updated":"2016-04-18 06:18:42.000000000","message":"interesting, we shouldn\u0027t accept a negative value which makes no sense.","commit_id":"b0cbca068014ff54265ac663006190d61b2f19a2"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"91e1de1d4abe8b5941a6cbdd4819b305056eacc1","unresolved":false,"context_lines":[{"line_number":329,"context_line":"                                        mock_log):"},{"line_number":330,"context_line":"        mock_gnvi.return_value \u003d {\u0027ports\u0027: {\u0027port-uuid\u0027: \u0027vif-uuid\u0027},"},{"line_number":331,"context_line":"                                  \u0027portgroups\u0027: {}}"},{"line_number":332,"context_line":"        self.config(port_setup_delay\u003d-1, group\u003d\u0027neutron\u0027)"},{"line_number":333,"context_line":"        with task_manager.acquire(self.context,"},{"line_number":334,"context_line":"                                  self.node.uuid) as task:"},{"line_number":335,"context_line":"            opts \u003d pxe_utils.dhcp_options_for_instance(task)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a122d0e_8fe84de4","line":332,"range":{"start_line":332,"start_character":8,"end_line":332,"end_character":57},"in_reply_to":"1a122d0e_c8e8887f","updated":"2016-04-18 09:57:52.000000000","message":"replaced it with \u0027min\u0027 option for oslo-config paramter","commit_id":"b0cbca068014ff54265ac663006190d61b2f19a2"},{"author":{"_account_id":20902,"name":"Félix Bouliane","email":"fbouliane@inap.com","username":"fbouliane"},"change_message_id":"09fa1230567a7fcd2b7fab47fd34b910bbb1f34c","unresolved":false,"context_lines":[{"line_number":266,"context_line":"            opts \u003d pxe_utils.dhcp_options_for_instance(task)"},{"line_number":267,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":268,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":269,"context_line":"            mock_ts.assert_called_with(30)"},{"line_number":270,"context_line":"        mock_updo.assert_called_once_with(\u0027vif-uuid\u0027, opts,"},{"line_number":271,"context_line":"                                          token\u003dself.context.auth_token)"},{"line_number":272,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"1a122d0e_0c4886cb","line":269,"updated":"2016-04-19 13:54:12.000000000","message":"If you wish to test log messages, I would add an assertion that ensure the a log \"Waiting 30 seconds for Neutron\" of level debug was called. Here or in another test case (log-specific). (The inverse assertion of L321)","commit_id":"a7869b99978e0956ea0b96271fd63e39ced05172"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"e186d30f1291b983b712ff34438f36c32eccae53","unresolved":false,"context_lines":[{"line_number":318,"context_line":"            task.driver.power \u003d fake.FakePower()"},{"line_number":319,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":320,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":321,"context_line":"            self.assertFalse(mock_log.warning.called, \u0027seconds for Neutron.\u0027)"},{"line_number":322,"context_line":"        mock_updo.assert_called_once_with(\u0027vif-uuid\u0027, opts,"},{"line_number":323,"context_line":"                                          token\u003dself.context.auth_token)"},{"line_number":324,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"1a122d0e_3addc70e","line":321,"range":{"start_line":321,"start_character":38,"end_line":321,"end_character":45},"updated":"2016-04-19 06:37:50.000000000","message":"warning? not debug?","commit_id":"a7869b99978e0956ea0b96271fd63e39ced05172"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"c50c5a3a066e90c09c4a234283c555de1f48debf","unresolved":false,"context_lines":[{"line_number":273,"context_line":"    @mock.patch(\u0027time.sleep\u0027)"},{"line_number":274,"context_line":"    @mock.patch(\u0027ironic.dhcp.neutron.NeutronDHCPApi.update_port_dhcp_opts\u0027)"},{"line_number":275,"context_line":"    @mock.patch(\u0027ironic.common.network.get_node_vif_ids\u0027)"},{"line_number":276,"context_line":"    def test_update_dhcp_unset_sleep_and_ssh(self, mock_gnvi, mock_updo,"},{"line_number":277,"context_line":"                                             mock_ts):"},{"line_number":278,"context_line":"        mock_gnvi.return_value \u003d {\u0027ports\u0027: {\u0027port-uuid\u0027: \u0027vif-uuid\u0027},"},{"line_number":279,"context_line":"                                  \u0027portgroups\u0027: {}}"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a122d0e_bd0fb535","line":276,"range":{"start_line":276,"start_character":25,"end_line":276,"end_character":44},"updated":"2016-04-20 16:06:00.000000000","message":"it\u0027s better to mock log warning called.","commit_id":"f8c23e0e294591a6426ee14f956eac905dc7339b"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"590e56a4159935c07bc1aaaaff729f26ce33b254","unresolved":false,"context_lines":[{"line_number":273,"context_line":"    @mock.patch(\u0027time.sleep\u0027)"},{"line_number":274,"context_line":"    @mock.patch(\u0027ironic.dhcp.neutron.NeutronDHCPApi.update_port_dhcp_opts\u0027)"},{"line_number":275,"context_line":"    @mock.patch(\u0027ironic.common.network.get_node_vif_ids\u0027)"},{"line_number":276,"context_line":"    def test_update_dhcp_unset_sleep_and_ssh(self, mock_gnvi, mock_updo,"},{"line_number":277,"context_line":"                                             mock_ts):"},{"line_number":278,"context_line":"        mock_gnvi.return_value \u003d {\u0027ports\u0027: {\u0027port-uuid\u0027: \u0027vif-uuid\u0027},"},{"line_number":279,"context_line":"                                  \u0027portgroups\u0027: {}}"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a122d0e_c11d5074","line":276,"range":{"start_line":276,"start_character":25,"end_line":276,"end_character":44},"in_reply_to":"1a122d0e_2e1fd65b","updated":"2016-04-21 06:47:24.000000000","message":"Done","commit_id":"f8c23e0e294591a6426ee14f956eac905dc7339b"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"edc8fcb736f37e593e0ec82e7cc1d5900c680d73","unresolved":false,"context_lines":[{"line_number":273,"context_line":"    @mock.patch(\u0027time.sleep\u0027)"},{"line_number":274,"context_line":"    @mock.patch(\u0027ironic.dhcp.neutron.NeutronDHCPApi.update_port_dhcp_opts\u0027)"},{"line_number":275,"context_line":"    @mock.patch(\u0027ironic.common.network.get_node_vif_ids\u0027)"},{"line_number":276,"context_line":"    def test_update_dhcp_unset_sleep_and_ssh(self, mock_gnvi, mock_updo,"},{"line_number":277,"context_line":"                                             mock_ts):"},{"line_number":278,"context_line":"        mock_gnvi.return_value \u003d {\u0027ports\u0027: {\u0027port-uuid\u0027: \u0027vif-uuid\u0027},"},{"line_number":279,"context_line":"                                  \u0027portgroups\u0027: {}}"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a122d0e_df99bcc5","line":276,"range":{"start_line":276,"start_character":25,"end_line":276,"end_character":44},"in_reply_to":"1a122d0e_bd0fb535","updated":"2016-04-20 18:54:13.000000000","message":"why it is better?","commit_id":"f8c23e0e294591a6426ee14f956eac905dc7339b"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"a3aa0924030793179f5480f2fe46756b92f9f872","unresolved":false,"context_lines":[{"line_number":273,"context_line":"    @mock.patch(\u0027time.sleep\u0027)"},{"line_number":274,"context_line":"    @mock.patch(\u0027ironic.dhcp.neutron.NeutronDHCPApi.update_port_dhcp_opts\u0027)"},{"line_number":275,"context_line":"    @mock.patch(\u0027ironic.common.network.get_node_vif_ids\u0027)"},{"line_number":276,"context_line":"    def test_update_dhcp_unset_sleep_and_ssh(self, mock_gnvi, mock_updo,"},{"line_number":277,"context_line":"                                             mock_ts):"},{"line_number":278,"context_line":"        mock_gnvi.return_value \u003d {\u0027ports\u0027: {\u0027port-uuid\u0027: \u0027vif-uuid\u0027},"},{"line_number":279,"context_line":"                                  \u0027portgroups\u0027: {}}"}],"source_content_type":"text/x-python","patch_set":21,"id":"1a122d0e_2e1fd65b","line":276,"range":{"start_line":276,"start_character":25,"end_line":276,"end_character":44},"in_reply_to":"1a122d0e_df99bcc5","updated":"2016-04-21 02:07:41.000000000","message":"when port_setup_delay is not set and using SSHPower, we log a warning message and set it to 15, so better to mock log called here as well, and I think it\u0027s a generic way to test.","commit_id":"f8c23e0e294591a6426ee14f956eac905dc7339b"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"c50c5a3a066e90c09c4a234283c555de1f48debf","unresolved":false,"context_lines":[{"line_number":318,"context_line":"            task.driver.power \u003d fake.FakePower()"},{"line_number":319,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":320,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":321,"context_line":"            self.assertFalse(mock_log.debug.called, \u0027seconds for Neutron.\u0027)"},{"line_number":322,"context_line":"        mock_updo.assert_called_once_with(\u0027vif-uuid\u0027, opts,"},{"line_number":323,"context_line":"                                          token\u003dself.context.auth_token)"},{"line_number":324,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1a122d0e_83aa5c83","line":321,"range":{"start_line":321,"start_character":52,"end_line":321,"end_character":74},"updated":"2016-04-20 16:06:00.000000000","message":"seems unneeded.","commit_id":"f8c23e0e294591a6426ee14f956eac905dc7339b"},{"author":{"_account_id":6610,"name":"Zhenguo Niu","email":"Niu.ZGlinux@gmail.com","username":"niu-zglinux"},"change_message_id":"a3aa0924030793179f5480f2fe46756b92f9f872","unresolved":false,"context_lines":[{"line_number":318,"context_line":"            task.driver.power \u003d fake.FakePower()"},{"line_number":319,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":320,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":321,"context_line":"            self.assertFalse(mock_log.debug.called, \u0027seconds for Neutron.\u0027)"},{"line_number":322,"context_line":"        mock_updo.assert_called_once_with(\u0027vif-uuid\u0027, opts,"},{"line_number":323,"context_line":"                                          token\u003dself.context.auth_token)"},{"line_number":324,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1a122d0e_ce87425f","line":321,"range":{"start_line":321,"start_character":52,"end_line":321,"end_character":74},"in_reply_to":"1a122d0e_1fb9742e","updated":"2016-04-21 02:07:41.000000000","message":"I mean \u0027seconds for Neutron\u0027 is not needed, or it\u0027s not proper, assertFalse(expr, msg\u003dNone) tests that expr is flase, and \u0027msg\u0027 used to provide a better error message in case of failure, you should get rid of it or change it to something like \u0027log.debug unexpectedly called\u0027.","commit_id":"f8c23e0e294591a6426ee14f956eac905dc7339b"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"edc8fcb736f37e593e0ec82e7cc1d5900c680d73","unresolved":false,"context_lines":[{"line_number":318,"context_line":"            task.driver.power \u003d fake.FakePower()"},{"line_number":319,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":320,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":321,"context_line":"            self.assertFalse(mock_log.debug.called, \u0027seconds for Neutron.\u0027)"},{"line_number":322,"context_line":"        mock_updo.assert_called_once_with(\u0027vif-uuid\u0027, opts,"},{"line_number":323,"context_line":"                                          token\u003dself.context.auth_token)"},{"line_number":324,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1a122d0e_1fb9742e","line":321,"range":{"start_line":321,"start_character":52,"end_line":321,"end_character":74},"in_reply_to":"1a122d0e_83aa5c83","updated":"2016-04-20 18:54:13.000000000","message":"we need to ensure that if port_setup_delay !\u003d 0: works.","commit_id":"f8c23e0e294591a6426ee14f956eac905dc7339b"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"590e56a4159935c07bc1aaaaff729f26ce33b254","unresolved":false,"context_lines":[{"line_number":318,"context_line":"            task.driver.power \u003d fake.FakePower()"},{"line_number":319,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":320,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":321,"context_line":"            self.assertFalse(mock_log.debug.called, \u0027seconds for Neutron.\u0027)"},{"line_number":322,"context_line":"        mock_updo.assert_called_once_with(\u0027vif-uuid\u0027, opts,"},{"line_number":323,"context_line":"                                          token\u003dself.context.auth_token)"},{"line_number":324,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"1a122d0e_0114684a","line":321,"range":{"start_line":321,"start_character":52,"end_line":321,"end_character":74},"in_reply_to":"1a122d0e_ce87425f","updated":"2016-04-21 06:47:24.000000000","message":"Done","commit_id":"f8c23e0e294591a6426ee14f956eac905dc7339b"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"e3bbdecb557ddb91e59a4d5e6230461b55be7120","unresolved":false,"context_lines":[{"line_number":285,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":286,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":287,"context_line":"            mock_log.warning.assert_called_once_with("},{"line_number":288,"context_line":"                \"Setting the port delay to 15 for SSH power driver by default,\""},{"line_number":289,"context_line":"                \" this will be removed in Ocata release. Please set \""},{"line_number":290,"context_line":"                \"configuration parameter port_setup_delay to 15.\")"},{"line_number":291,"context_line":"            mock_ts.assert_called_with(15)"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_b5ccca35","line":288,"updated":"2016-04-21 08:13:35.000000000","message":"nit: not needed to copy all log message into test, better to verify that mock_log.warning.called","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"07e43320c457826f3a77e0b916949459268d527a","unresolved":false,"context_lines":[{"line_number":285,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":286,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":287,"context_line":"            mock_log.warning.assert_called_once_with("},{"line_number":288,"context_line":"                \"Setting the port delay to 15 for SSH power driver by default,\""},{"line_number":289,"context_line":"                \" this will be removed in Ocata release. Please set \""},{"line_number":290,"context_line":"                \"configuration parameter port_setup_delay to 15.\")"},{"line_number":291,"context_line":"            mock_ts.assert_called_with(15)"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_73c7e064","line":288,"in_reply_to":"1a122d0e_1b7b2d7c","updated":"2016-04-21 12:27:50.000000000","message":"Done","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a30f19daee2e84abc6238df6cfba897b19a11ec3","unresolved":false,"context_lines":[{"line_number":285,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":286,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":287,"context_line":"            mock_log.warning.assert_called_once_with("},{"line_number":288,"context_line":"                \"Setting the port delay to 15 for SSH power driver by default,\""},{"line_number":289,"context_line":"                \" this will be removed in Ocata release. Please set \""},{"line_number":290,"context_line":"                \"configuration parameter port_setup_delay to 15.\")"},{"line_number":291,"context_line":"            mock_ts.assert_called_with(15)"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_1b7b2d7c","line":288,"in_reply_to":"1a122d0e_b5ccca35","updated":"2016-04-21 09:06:50.000000000","message":"Yep, or just check some part of the string.","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a30f19daee2e84abc6238df6cfba897b19a11ec3","unresolved":false,"context_lines":[{"line_number":304,"context_line":"        with task_manager.acquire(self.context,"},{"line_number":305,"context_line":"                                  self.node.uuid) as task:"},{"line_number":306,"context_line":"            opts \u003d pxe_utils.dhcp_options_for_instance(task)"},{"line_number":307,"context_line":"            task.driver.power \u003d fake.FakePower()"},{"line_number":308,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":309,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":310,"context_line":"            mock_log.debug.assert_called_once_with(mock.ANY, 30)"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_bbf31972","line":307,"updated":"2016-04-21 09:06:50.000000000","message":"No need to do this, self.node already uses fake driver with fake power interface.","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"07e43320c457826f3a77e0b916949459268d527a","unresolved":false,"context_lines":[{"line_number":304,"context_line":"        with task_manager.acquire(self.context,"},{"line_number":305,"context_line":"                                  self.node.uuid) as task:"},{"line_number":306,"context_line":"            opts \u003d pxe_utils.dhcp_options_for_instance(task)"},{"line_number":307,"context_line":"            task.driver.power \u003d fake.FakePower()"},{"line_number":308,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":309,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":310,"context_line":"            mock_log.debug.assert_called_once_with(mock.ANY, 30)"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_d3b354e8","line":307,"in_reply_to":"1a122d0e_bbf31972","updated":"2016-04-21 12:27:50.000000000","message":"Done","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a30f19daee2e84abc6238df6cfba897b19a11ec3","unresolved":false,"context_lines":[{"line_number":307,"context_line":"            task.driver.power \u003d fake.FakePower()"},{"line_number":308,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":309,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":310,"context_line":"            mock_log.debug.assert_called_once_with(mock.ANY, 30)"},{"line_number":311,"context_line":"            mock_ts.assert_called_with(30)"},{"line_number":312,"context_line":"        mock_updo.assert_called_once_with(\u0027vif-uuid\u0027, opts,"},{"line_number":313,"context_line":"                                          token\u003dself.context.auth_token)"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_dbbed563","line":310,"updated":"2016-04-21 09:06:50.000000000","message":"Should we also check that warning was not called?","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"07e43320c457826f3a77e0b916949459268d527a","unresolved":false,"context_lines":[{"line_number":307,"context_line":"            task.driver.power \u003d fake.FakePower()"},{"line_number":308,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":309,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":310,"context_line":"            mock_log.debug.assert_called_once_with(mock.ANY, 30)"},{"line_number":311,"context_line":"            mock_ts.assert_called_with(30)"},{"line_number":312,"context_line":"        mock_updo.assert_called_once_with(\u0027vif-uuid\u0027, opts,"},{"line_number":313,"context_line":"                                          token\u003dself.context.auth_token)"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_93071c81","line":310,"in_reply_to":"1a122d0e_dbbed563","updated":"2016-04-21 12:27:50.000000000","message":"Done","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a30f19daee2e84abc6238df6cfba897b19a11ec3","unresolved":false,"context_lines":[{"line_number":312,"context_line":"        mock_updo.assert_called_once_with(\u0027vif-uuid\u0027, opts,"},{"line_number":313,"context_line":"                                          token\u003dself.context.auth_token)"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"    @mock.patch.object(neutron, \u0027LOG\u0027, autospec\u003dTrue)"},{"line_number":316,"context_line":"    @mock.patch(\u0027ironic.dhcp.neutron.NeutronDHCPApi.update_port_dhcp_opts\u0027)"},{"line_number":317,"context_line":"    @mock.patch(\u0027ironic.common.network.get_node_vif_ids\u0027)"},{"line_number":318,"context_line":"    def test_update_dhcp_unset_sleep_and_fake(self, mock_gnvi, mock_updo,"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_3b93895c","line":315,"updated":"2016-04-21 09:06:50.000000000","message":"Could you please add autospecs for all mocks being added?","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"07e43320c457826f3a77e0b916949459268d527a","unresolved":false,"context_lines":[{"line_number":312,"context_line":"        mock_updo.assert_called_once_with(\u0027vif-uuid\u0027, opts,"},{"line_number":313,"context_line":"                                          token\u003dself.context.auth_token)"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"    @mock.patch.object(neutron, \u0027LOG\u0027, autospec\u003dTrue)"},{"line_number":316,"context_line":"    @mock.patch(\u0027ironic.dhcp.neutron.NeutronDHCPApi.update_port_dhcp_opts\u0027)"},{"line_number":317,"context_line":"    @mock.patch(\u0027ironic.common.network.get_node_vif_ids\u0027)"},{"line_number":318,"context_line":"    def test_update_dhcp_unset_sleep_and_fake(self, mock_gnvi, mock_updo,"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_f3ae5080","line":315,"in_reply_to":"1a122d0e_3b93895c","updated":"2016-04-21 12:27:50.000000000","message":"Done","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a30f19daee2e84abc6238df6cfba897b19a11ec3","unresolved":false,"context_lines":[{"line_number":322,"context_line":"        with task_manager.acquire(self.context,"},{"line_number":323,"context_line":"                                  self.node.uuid) as task:"},{"line_number":324,"context_line":"            opts \u003d pxe_utils.dhcp_options_for_instance(task)"},{"line_number":325,"context_line":"            task.driver.power \u003d fake.FakePower()"},{"line_number":326,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":327,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":328,"context_line":"            mock_log.debug.assert_not_called()"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_fbe91180","line":325,"updated":"2016-04-21 09:06:50.000000000","message":"ditto","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"07e43320c457826f3a77e0b916949459268d527a","unresolved":false,"context_lines":[{"line_number":322,"context_line":"        with task_manager.acquire(self.context,"},{"line_number":323,"context_line":"                                  self.node.uuid) as task:"},{"line_number":324,"context_line":"            opts \u003d pxe_utils.dhcp_options_for_instance(task)"},{"line_number":325,"context_line":"            task.driver.power \u003d fake.FakePower()"},{"line_number":326,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":327,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":328,"context_line":"            mock_log.debug.assert_not_called()"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_33f7288e","line":325,"in_reply_to":"1a122d0e_fbe91180","updated":"2016-04-21 12:27:50.000000000","message":"Done","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a30f19daee2e84abc6238df6cfba897b19a11ec3","unresolved":false,"context_lines":[{"line_number":325,"context_line":"            task.driver.power \u003d fake.FakePower()"},{"line_number":326,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":327,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":328,"context_line":"            mock_log.debug.assert_not_called()"},{"line_number":329,"context_line":"        mock_updo.assert_called_once_with(\u0027vif-uuid\u0027, opts,"},{"line_number":330,"context_line":"                                          token\u003dself.context.auth_token)"},{"line_number":331,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_fba0f143","line":328,"updated":"2016-04-21 09:06:50.000000000","message":"Should we also check that warning was not called?","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"07e43320c457826f3a77e0b916949459268d527a","unresolved":false,"context_lines":[{"line_number":325,"context_line":"            task.driver.power \u003d fake.FakePower()"},{"line_number":326,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":327,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":328,"context_line":"            mock_log.debug.assert_not_called()"},{"line_number":329,"context_line":"        mock_updo.assert_called_once_with(\u0027vif-uuid\u0027, opts,"},{"line_number":330,"context_line":"                                          token\u003dself.context.auth_token)"},{"line_number":331,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"1a122d0e_73a9a024","line":328,"in_reply_to":"1a122d0e_fba0f143","updated":"2016-04-21 12:27:50.000000000","message":"Done","commit_id":"7aa7054134b3da057c979c48f4cfe108e16e7042"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"846afa23e0dfc8b17404a2bca61299a6c90b1233","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from ironic.common import pxe_utils"},{"line_number":27,"context_line":"from ironic.conductor import task_manager"},{"line_number":28,"context_line":"from ironic.dhcp import neutron"},{"line_number":29,"context_line":"from ironic.drivers.modules import fake"},{"line_number":30,"context_line":"from ironic.drivers.modules import ssh"},{"line_number":31,"context_line":"from ironic.tests.unit.conductor import mgr_utils"},{"line_number":32,"context_line":"from ironic.tests.unit.db import base as db_base"}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_796b3f86","line":29,"updated":"2016-04-21 12:38:45.000000000","message":"Unused import, pep8 will fail.","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"516bf0298c56e40145b81ccc984296fdaa95a1bb","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from ironic.common import pxe_utils"},{"line_number":27,"context_line":"from ironic.conductor import task_manager"},{"line_number":28,"context_line":"from ironic.dhcp import neutron"},{"line_number":29,"context_line":"from ironic.drivers.modules import fake"},{"line_number":30,"context_line":"from ironic.drivers.modules import ssh"},{"line_number":31,"context_line":"from ironic.tests.unit.conductor import mgr_utils"},{"line_number":32,"context_line":"from ironic.tests.unit.db import base as db_base"}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_7076a9d9","line":29,"in_reply_to":"1a122d0e_796b3f86","updated":"2016-04-21 15:23:10.000000000","message":"Done","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"846afa23e0dfc8b17404a2bca61299a6c90b1233","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        self.assertEqual(2, mock_updo.call_count)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    @mock.patch(\u0027time.sleep\u0027, autospec\u003dTrue)"},{"line_number":256,"context_line":"    @mock.patch(\u0027ironic.dhcp.neutron.NeutronDHCPApi.update_port_dhcp_opts\u0027, autospec\u003dTrue)"},{"line_number":257,"context_line":"    @mock.patch(\u0027ironic.common.network.get_node_vif_ids\u0027, autospec\u003dTrue)"},{"line_number":258,"context_line":"    def test_update_dhcp_set_sleep_and_ssh(self, mock_gnvi, mock_updo,"},{"line_number":259,"context_line":"                                           mock_ts):"}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_59680388","line":256,"updated":"2016-04-21 12:38:45.000000000","message":"line too long","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"516bf0298c56e40145b81ccc984296fdaa95a1bb","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        self.assertEqual(2, mock_updo.call_count)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    @mock.patch(\u0027time.sleep\u0027, autospec\u003dTrue)"},{"line_number":256,"context_line":"    @mock.patch(\u0027ironic.dhcp.neutron.NeutronDHCPApi.update_port_dhcp_opts\u0027, autospec\u003dTrue)"},{"line_number":257,"context_line":"    @mock.patch(\u0027ironic.common.network.get_node_vif_ids\u0027, autospec\u003dTrue)"},{"line_number":258,"context_line":"    def test_update_dhcp_set_sleep_and_ssh(self, mock_gnvi, mock_updo,"},{"line_number":259,"context_line":"                                           mock_ts):"}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_bfd3f25e","line":256,"in_reply_to":"1a122d0e_1c2159b5","updated":"2016-04-21 15:23:10.000000000","message":"There are a lot of places where mock.patch(\u0027ironic..\u0027) is used. But if you prefer to use object I do not mind.","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3185663642a2dcafd2a3cad1ec76184e9daafe25","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        self.assertEqual(2, mock_updo.call_count)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    @mock.patch(\u0027time.sleep\u0027, autospec\u003dTrue)"},{"line_number":256,"context_line":"    @mock.patch(\u0027ironic.dhcp.neutron.NeutronDHCPApi.update_port_dhcp_opts\u0027, autospec\u003dTrue)"},{"line_number":257,"context_line":"    @mock.patch(\u0027ironic.common.network.get_node_vif_ids\u0027, autospec\u003dTrue)"},{"line_number":258,"context_line":"    def test_update_dhcp_set_sleep_and_ssh(self, mock_gnvi, mock_updo,"},{"line_number":259,"context_line":"                                           mock_ts):"}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_1c2159b5","line":256,"in_reply_to":"1a122d0e_59680388","updated":"2016-04-21 13:17:00.000000000","message":"+1 ironic.dhcp.neutron is already imported so:\n\n@mock.patch.object(neutron.NeutronDHCPApi, \u0027update_power_dhcp_opts\u0027, autospec\u003dTrue)","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"516bf0298c56e40145b81ccc984296fdaa95a1bb","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        self.assertEqual(2, mock_updo.call_count)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    @mock.patch(\u0027time.sleep\u0027, autospec\u003dTrue)"},{"line_number":256,"context_line":"    @mock.patch(\u0027ironic.dhcp.neutron.NeutronDHCPApi.update_port_dhcp_opts\u0027, autospec\u003dTrue)"},{"line_number":257,"context_line":"    @mock.patch(\u0027ironic.common.network.get_node_vif_ids\u0027, autospec\u003dTrue)"},{"line_number":258,"context_line":"    def test_update_dhcp_set_sleep_and_ssh(self, mock_gnvi, mock_updo,"},{"line_number":259,"context_line":"                                           mock_ts):"}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_907d45b4","line":256,"in_reply_to":"1a122d0e_59680388","updated":"2016-04-21 15:23:10.000000000","message":"Done","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3185663642a2dcafd2a3cad1ec76184e9daafe25","unresolved":false,"context_lines":[{"line_number":284,"context_line":"            task.driver.power \u003d ssh.SSHPower()"},{"line_number":285,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":286,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":287,"context_line":"            mock_log.warning.assert_called()"},{"line_number":288,"context_line":"            self.assertIn(\u0027Setting the port delay to 15 for SSH\u0027,"},{"line_number":289,"context_line":"                          mock_log.warning.call_args[0][0])"},{"line_number":290,"context_line":"            mock_ts.assert_called_with(15)"}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_27e36207","line":287,"updated":"2016-04-21 13:17:00.000000000","message":"\"assert_called\" doesn\u0027t seem to be a valid assert statement in mock.\n\nValid ones are: assert_any_call, assert_called_once_with, assert_called_with, assert_has_calls [0]\n\nThe way you do it is:\n\nself.assertTrue(mock_log.warning.called)\n\n[0] https://docs.python.org/3/library/unittest.mock.html#the-mock-class","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"516bf0298c56e40145b81ccc984296fdaa95a1bb","unresolved":false,"context_lines":[{"line_number":284,"context_line":"            task.driver.power \u003d ssh.SSHPower()"},{"line_number":285,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":286,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":287,"context_line":"            mock_log.warning.assert_called()"},{"line_number":288,"context_line":"            self.assertIn(\u0027Setting the port delay to 15 for SSH\u0027,"},{"line_number":289,"context_line":"                          mock_log.warning.call_args[0][0])"},{"line_number":290,"context_line":"            mock_ts.assert_called_with(15)"}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_9f755634","line":287,"in_reply_to":"1a122d0e_27e36207","updated":"2016-04-21 15:23:10.000000000","message":"assert_called was added in mock 2.0.0 version, since global requirements for mock is \u003e\u003d 1.2 it is better to do not use this method.\nhttps://github.com/testing-cabal/mock/commit/7ca5d3afe293d5e4d769c1cb2dfccb0688ba1292","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"63eedd23e2bb9580825bea68a919f74d4c80478d","unresolved":false,"context_lines":[{"line_number":284,"context_line":"            task.driver.power \u003d ssh.SSHPower()"},{"line_number":285,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":286,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":287,"context_line":"            mock_log.warning.assert_called()"},{"line_number":288,"context_line":"            self.assertIn(\u0027Setting the port delay to 15 for SSH\u0027,"},{"line_number":289,"context_line":"                          mock_log.warning.call_args[0][0])"},{"line_number":290,"context_line":"            mock_ts.assert_called_with(15)"}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_e715ea49","line":287,"in_reply_to":"1a122d0e_27e36207","updated":"2016-04-21 13:25:20.000000000","message":"mock_log.warning.assert_called_once_with(\u0027Setting the port delay to 15 for SSH\u0027) could replace this line and one below unless I\u0027m missing something","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"516bf0298c56e40145b81ccc984296fdaa95a1bb","unresolved":false,"context_lines":[{"line_number":284,"context_line":"            task.driver.power \u003d ssh.SSHPower()"},{"line_number":285,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":286,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":287,"context_line":"            mock_log.warning.assert_called()"},{"line_number":288,"context_line":"            self.assertIn(\u0027Setting the port delay to 15 for SSH\u0027,"},{"line_number":289,"context_line":"                          mock_log.warning.call_args[0][0])"},{"line_number":290,"context_line":"            mock_ts.assert_called_with(15)"}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_126dbdcc","line":287,"in_reply_to":"1a122d0e_e715ea49","updated":"2016-04-21 15:23:10.000000000","message":"It requires exact match of the message, as it was commented in previous patchsets there is no need to test full message, part of message is enough.","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3185663642a2dcafd2a3cad1ec76184e9daafe25","unresolved":false,"context_lines":[{"line_number":287,"context_line":"            mock_log.warning.assert_called()"},{"line_number":288,"context_line":"            self.assertIn(\u0027Setting the port delay to 15 for SSH\u0027,"},{"line_number":289,"context_line":"                          mock_log.warning.call_args[0][0])"},{"line_number":290,"context_line":"            mock_ts.assert_called_with(15)"},{"line_number":291,"context_line":"        mock_updo.assert_called_once_with(mock.ANY, \u0027vif-uuid\u0027, opts,"},{"line_number":292,"context_line":"                                          token\u003dself.context.auth_token)"},{"line_number":293,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_471f7e09","line":290,"updated":"2016-04-21 13:17:00.000000000","message":"assert_called_once_with()","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"516bf0298c56e40145b81ccc984296fdaa95a1bb","unresolved":false,"context_lines":[{"line_number":287,"context_line":"            mock_log.warning.assert_called()"},{"line_number":288,"context_line":"            self.assertIn(\u0027Setting the port delay to 15 for SSH\u0027,"},{"line_number":289,"context_line":"                          mock_log.warning.call_args[0][0])"},{"line_number":290,"context_line":"            mock_ts.assert_called_with(15)"},{"line_number":291,"context_line":"        mock_updo.assert_called_once_with(mock.ANY, \u0027vif-uuid\u0027, opts,"},{"line_number":292,"context_line":"                                          token\u003dself.context.auth_token)"},{"line_number":293,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_f5b90b7b","line":290,"in_reply_to":"1a122d0e_471f7e09","updated":"2016-04-21 15:23:10.000000000","message":"sleep is called 4 times at other places with 0, I doubt where exactly.","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"846afa23e0dfc8b17404a2bca61299a6c90b1233","unresolved":false,"context_lines":[{"line_number":305,"context_line":"            opts \u003d pxe_utils.dhcp_options_for_instance(task)"},{"line_number":306,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":307,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":308,"context_line":"            mock_log.debug.assert_called_once_with(mock.ANY, 30)"},{"line_number":309,"context_line":"            mock_log.warning.assert_not_called()"},{"line_number":310,"context_line":"            mock_ts.assert_called_with(30)"},{"line_number":311,"context_line":"        mock_updo.assert_called_once_with(mock.ANY, \u0027vif-uuid\u0027, opts,"}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_59ff63aa","line":308,"updated":"2016-04-21 12:38:45.000000000","message":"We could do same message assert here.","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"516bf0298c56e40145b81ccc984296fdaa95a1bb","unresolved":false,"context_lines":[{"line_number":305,"context_line":"            opts \u003d pxe_utils.dhcp_options_for_instance(task)"},{"line_number":306,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":307,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":308,"context_line":"            mock_log.debug.assert_called_once_with(mock.ANY, 30)"},{"line_number":309,"context_line":"            mock_log.warning.assert_not_called()"},{"line_number":310,"context_line":"            mock_ts.assert_called_with(30)"},{"line_number":311,"context_line":"        mock_updo.assert_called_once_with(mock.ANY, \u0027vif-uuid\u0027, opts,"}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_306c3108","line":308,"in_reply_to":"1a122d0e_59ff63aa","updated":"2016-04-21 15:23:10.000000000","message":"Done","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3185663642a2dcafd2a3cad1ec76184e9daafe25","unresolved":false,"context_lines":[{"line_number":306,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":307,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":308,"context_line":"            mock_log.debug.assert_called_once_with(mock.ANY, 30)"},{"line_number":309,"context_line":"            mock_log.warning.assert_not_called()"},{"line_number":310,"context_line":"            mock_ts.assert_called_with(30)"},{"line_number":311,"context_line":"        mock_updo.assert_called_once_with(mock.ANY, \u0027vif-uuid\u0027, opts,"},{"line_number":312,"context_line":"                                          token\u003dself.context.auth_token)"}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_c7038ebd","line":309,"updated":"2016-04-21 13:17:00.000000000","message":"\"assert_not_called\" doesn\u0027t seem to be a valid assert statement in mock.\n\nValid ones are: assert_any_call, assert_called_once_with, assert_called_with, assert_has_calls [0]\n\nThe way you do it is:\n\nself.assertFalse(mock_log.warning.called)\n\n[0] https://docs.python.org/3/library/unittest.mock.html#the-mock-class","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"516bf0298c56e40145b81ccc984296fdaa95a1bb","unresolved":false,"context_lines":[{"line_number":306,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":307,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":308,"context_line":"            mock_log.debug.assert_called_once_with(mock.ANY, 30)"},{"line_number":309,"context_line":"            mock_log.warning.assert_not_called()"},{"line_number":310,"context_line":"            mock_ts.assert_called_with(30)"},{"line_number":311,"context_line":"        mock_updo.assert_called_once_with(mock.ANY, \u0027vif-uuid\u0027, opts,"},{"line_number":312,"context_line":"                                          token\u003dself.context.auth_token)"}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_3508a32d","line":309,"in_reply_to":"1a122d0e_27cd225e","updated":"2016-04-21 15:23:10.000000000","message":"assert_not_called has been added in mock 1.1.0 global requiremets for mock is \u003e\u003d 1.2 so it should be ok to use it here.\nhttps://github.com/testing-cabal/mock/commit/8882c2fccb9f7d3b8ba2b5534c0dd9d52343725f","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"6d7de516bf07820016ec1f7aae5359174e5c2049","unresolved":false,"context_lines":[{"line_number":306,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":307,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":308,"context_line":"            mock_log.debug.assert_called_once_with(mock.ANY, 30)"},{"line_number":309,"context_line":"            mock_log.warning.assert_not_called()"},{"line_number":310,"context_line":"            mock_ts.assert_called_with(30)"},{"line_number":311,"context_line":"        mock_updo.assert_called_once_with(mock.ANY, \u0027vif-uuid\u0027, opts,"},{"line_number":312,"context_line":"                                          token\u003dself.context.auth_token)"}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_27cd225e","line":309,"in_reply_to":"1a122d0e_c7038ebd","updated":"2016-04-21 13:19:32.000000000","message":"Apparently assert_not_called() is a thing for python3 [0]. In any case I don\u0027t see it with py2:\n\nIn [5]: obj \u003d mock.Mock()\n\nIn [6]: obj.assert_\nobj.assert_any_call          obj.assert_called_once_with  obj.assert_called_with       obj.assert_has_calls         \n\n[0] https://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.assert_not_called","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3185663642a2dcafd2a3cad1ec76184e9daafe25","unresolved":false,"context_lines":[{"line_number":307,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":308,"context_line":"            mock_log.debug.assert_called_once_with(mock.ANY, 30)"},{"line_number":309,"context_line":"            mock_log.warning.assert_not_called()"},{"line_number":310,"context_line":"            mock_ts.assert_called_with(30)"},{"line_number":311,"context_line":"        mock_updo.assert_called_once_with(mock.ANY, \u0027vif-uuid\u0027, opts,"},{"line_number":312,"context_line":"                                          token\u003dself.context.auth_token)"},{"line_number":313,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_c72a6e2f","line":310,"updated":"2016-04-21 13:17:00.000000000","message":"assert_called_once_with()","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"516bf0298c56e40145b81ccc984296fdaa95a1bb","unresolved":false,"context_lines":[{"line_number":307,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":308,"context_line":"            mock_log.debug.assert_called_once_with(mock.ANY, 30)"},{"line_number":309,"context_line":"            mock_log.warning.assert_not_called()"},{"line_number":310,"context_line":"            mock_ts.assert_called_with(30)"},{"line_number":311,"context_line":"        mock_updo.assert_called_once_with(mock.ANY, \u0027vif-uuid\u0027, opts,"},{"line_number":312,"context_line":"                                          token\u003dself.context.auth_token)"},{"line_number":313,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_f0fd9909","line":310,"in_reply_to":"1a122d0e_c72a6e2f","updated":"2016-04-21 15:23:10.000000000","message":"ditto","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3185663642a2dcafd2a3cad1ec76184e9daafe25","unresolved":false,"context_lines":[{"line_number":324,"context_line":"            api \u003d dhcp_factory.DHCPFactory()"},{"line_number":325,"context_line":"            api.update_dhcp(task, opts)"},{"line_number":326,"context_line":"            mock_log.debug.assert_not_called()"},{"line_number":327,"context_line":"            mock_log.warning.assert_not_called()"},{"line_number":328,"context_line":"        mock_updo.assert_called_once_with(mock.ANY, \u0027vif-uuid\u0027, opts,"},{"line_number":329,"context_line":"                                          token\u003dself.context.auth_token)"},{"line_number":330,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"1a122d0e_a7a492b9","line":327,"updated":"2016-04-21 13:17:00.000000000","message":"ditto re assert_not_called","commit_id":"acbbe1226bead872b7bc05f621a474b183f53d9e"}],"releasenotes/notes/neutron-port-timeout-cbd82e1d09c6a46c.yaml":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"315f3735795ca0a9ccf2e947204897882faa4cc7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add Neutron ``port_timeout`` configuration parameter."},{"line_number":4,"context_line":"    This timeout allows Ironic to wait for Neutron"},{"line_number":5,"context_line":"    port operaitions untill we have a mechanizm for"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"7a1b2928_7a0e7535","line":2,"updated":"2016-04-11 13:42:04.000000000","message":"definitely not a feature :)","commit_id":"933857cfc91758e3bf1c50fb4ad3f76f60fc0d6b"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"60fb328b83d2d149838f085f3543c47804e3581e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add Neutron ``port_timeout`` configuration parameter."},{"line_number":4,"context_line":"    This timeout allows Ironic to wait for Neutron"},{"line_number":5,"context_line":"    port operaitions untill we have a mechanizm for"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"7a1b2928_ae260b66","line":2,"in_reply_to":"7a1b2928_7a0e7535","updated":"2016-04-11 14:37:45.000000000","message":"Done","commit_id":"933857cfc91758e3bf1c50fb4ad3f76f60fc0d6b"},{"author":{"_account_id":7933,"name":"Philippe Godin","email":"godp1301@gmail.com","username":"godp1301"},"change_message_id":"e10ac83d03e476e490c321b24490777ada58eb43","unresolved":false,"context_lines":[{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - Add Neutron ``port_setup_timeout`` configuration"},{"line_number":4,"context_line":"    parameter. This timeout allows Ironic to wait for"},{"line_number":5,"context_line":"    Neutron port operaitions untill we have a"},{"line_number":6,"context_line":"    mechanizm for synchronizing events with Neutron."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a1b2928_e1ef71ae","line":5,"updated":"2016-04-11 15:46:24.000000000","message":"s/operaitions/operations","commit_id":"d230def908c5bbcfdb62a37c17fd6cd04bc732c5"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"0660f088cbbb7eb5c0432876b16c859879d4518a","unresolved":false,"context_lines":[{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - Add Neutron ``port_setup_timeout`` configuration"},{"line_number":4,"context_line":"    parameter. This timeout allows Ironic to wait for"},{"line_number":5,"context_line":"    Neutron port operaitions untill we have a"},{"line_number":6,"context_line":"    mechanizm for synchronizing events with Neutron."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5a18252c_373c2b2f","line":5,"in_reply_to":"7a1b2928_e1ef71ae","updated":"2016-04-12 06:32:08.000000000","message":"Done","commit_id":"d230def908c5bbcfdb62a37c17fd6cd04bc732c5"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"93f9b78ade7eaca208f291627853f3e5b4cd8fd0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - Add Neutron ``port_setup_timeout`` configuration"},{"line_number":4,"context_line":"    parameter. This timeout allows Ironic to wait for"},{"line_number":5,"context_line":"    Neutron port operations untill we have a"},{"line_number":6,"context_line":"    mechanizm for synchronizing events with Neutron."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"5a18252c_89a35b9e","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":13},"updated":"2016-04-12 09:24:50.000000000","message":"s/parameter/option","commit_id":"47c13c6a7907e172ac98dfbdbbbf804cb5b0283e"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"22259d58a1887020be5992edfb1073b00f03936a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - Add Neutron ``port_setup_timeout`` configuration"},{"line_number":4,"context_line":"    parameter. This timeout allows Ironic to wait for"},{"line_number":5,"context_line":"    Neutron port operations untill we have a"},{"line_number":6,"context_line":"    mechanizm for synchronizing events with Neutron."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"5a18252c_32127063","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":13},"in_reply_to":"5a18252c_89a35b9e","updated":"2016-04-12 10:31:28.000000000","message":"Done","commit_id":"47c13c6a7907e172ac98dfbdbbbf804cb5b0283e"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"93f9b78ade7eaca208f291627853f3e5b4cd8fd0","unresolved":false,"context_lines":[{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - Add Neutron ``port_setup_timeout`` configuration"},{"line_number":4,"context_line":"    parameter. This timeout allows Ironic to wait for"},{"line_number":5,"context_line":"    Neutron port operations untill we have a"},{"line_number":6,"context_line":"    mechanizm for synchronizing events with Neutron."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"5a18252c_89d19bfe","line":5,"range":{"start_line":5,"start_character":28,"end_line":5,"end_character":34},"updated":"2016-04-12 09:24:50.000000000","message":"until","commit_id":"47c13c6a7907e172ac98dfbdbbbf804cb5b0283e"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"22259d58a1887020be5992edfb1073b00f03936a","unresolved":false,"context_lines":[{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - Add Neutron ``port_setup_timeout`` configuration"},{"line_number":4,"context_line":"    parameter. This timeout allows Ironic to wait for"},{"line_number":5,"context_line":"    Neutron port operations untill we have a"},{"line_number":6,"context_line":"    mechanizm for synchronizing events with Neutron."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"5a18252c_720ce842","line":5,"range":{"start_line":5,"start_character":28,"end_line":5,"end_character":34},"in_reply_to":"5a18252c_89d19bfe","updated":"2016-04-12 10:31:28.000000000","message":"Done","commit_id":"47c13c6a7907e172ac98dfbdbbbf804cb5b0283e"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"93f9b78ade7eaca208f291627853f3e5b4cd8fd0","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - Add Neutron ``port_setup_timeout`` configuration"},{"line_number":4,"context_line":"    parameter. This timeout allows Ironic to wait for"},{"line_number":5,"context_line":"    Neutron port operations untill we have a"},{"line_number":6,"context_line":"    mechanizm for synchronizing events with Neutron."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"5a18252c_29b5e7cc","line":6,"range":{"start_line":6,"start_character":4,"end_line":6,"end_character":13},"updated":"2016-04-12 09:24:50.000000000","message":"mechanism","commit_id":"47c13c6a7907e172ac98dfbdbbbf804cb5b0283e"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"22259d58a1887020be5992edfb1073b00f03936a","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - Add Neutron ``port_setup_timeout`` configuration"},{"line_number":4,"context_line":"    parameter. This timeout allows Ironic to wait for"},{"line_number":5,"context_line":"    Neutron port operations untill we have a"},{"line_number":6,"context_line":"    mechanizm for synchronizing events with Neutron."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"5a18252c_5209ec30","line":6,"range":{"start_line":6,"start_character":4,"end_line":6,"end_character":13},"in_reply_to":"5a18252c_29b5e7cc","updated":"2016-04-12 10:31:28.000000000","message":"Done","commit_id":"47c13c6a7907e172ac98dfbdbbbf804cb5b0283e"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"9e57110ea3d21d8439e7977ea1b3ddfacb03e897","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"5a18252c_70b78986","line":7,"updated":"2016-04-13 09:31:37.000000000","message":"Please mention also that this parameter is not enabled by default.","commit_id":"0d237ed45fb8df35e3c9ffc7e312e97bbb337749"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"c59c8896310880cb9b7b7fe05f0de2b48820d384","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"5a18252c_f1443a1c","line":7,"in_reply_to":"5a18252c_70b78986","updated":"2016-04-13 10:19:23.000000000","message":"Done","commit_id":"0d237ed45fb8df35e3c9ffc7e312e97bbb337749"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"a3bbddac8642a4fc01573c9895b47b52994a4dd0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - Add Neutron ``port_setup_delay`` configuration"},{"line_number":4,"context_line":"    option. This timeout allows Ironic to wait for"},{"line_number":5,"context_line":"    Neutron port operations until we have a"},{"line_number":6,"context_line":"    mechanism for synchronizing events with Neutron."},{"line_number":7,"context_line":"    Disabled by default."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"5a18252c_2003e310","line":4,"range":{"start_line":4,"start_character":17,"end_line":4,"end_character":24},"updated":"2016-04-13 16:11:54.000000000","message":"s/timeout/delay","commit_id":"63cd2dc8109159d4a86d742d82d7c8bbbf6eebdf"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"a2f681e676cedd07d570e3e2b2a53f0b4a71291d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - Add Neutron ``port_setup_delay`` configuration"},{"line_number":4,"context_line":"    option. This timeout allows Ironic to wait for"},{"line_number":5,"context_line":"    Neutron port operations until we have a"},{"line_number":6,"context_line":"    mechanism for synchronizing events with Neutron."},{"line_number":7,"context_line":"    Disabled by default."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"5a18252c_d47d916f","line":4,"range":{"start_line":4,"start_character":17,"end_line":4,"end_character":24},"in_reply_to":"5a18252c_2003e310","updated":"2016-04-13 17:01:07.000000000","message":"Done","commit_id":"63cd2dc8109159d4a86d742d82d7c8bbbf6eebdf"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"a3bbddac8642a4fc01573c9895b47b52994a4dd0","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    option. This timeout allows Ironic to wait for"},{"line_number":5,"context_line":"    Neutron port operations until we have a"},{"line_number":6,"context_line":"    mechanism for synchronizing events with Neutron."},{"line_number":7,"context_line":"    Disabled by default."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"5a18252c_c3f4b9f3","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":24},"updated":"2016-04-13 16:11:54.000000000","message":"I\u0027m not sure that \"Disabled\" is the right way to put this, I think perhaps: \"Zero by default\" would be better, disabled seems to imply that there would be a flag to enable/disable it.","commit_id":"63cd2dc8109159d4a86d742d82d7c8bbbf6eebdf"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"a2f681e676cedd07d570e3e2b2a53f0b4a71291d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    option. This timeout allows Ironic to wait for"},{"line_number":5,"context_line":"    Neutron port operations until we have a"},{"line_number":6,"context_line":"    mechanism for synchronizing events with Neutron."},{"line_number":7,"context_line":"    Disabled by default."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"5a18252c_b480d547","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":24},"in_reply_to":"5a18252c_c3f4b9f3","updated":"2016-04-13 17:01:07.000000000","message":"Done","commit_id":"63cd2dc8109159d4a86d742d82d7c8bbbf6eebdf"}]}
