)]}'
{"doc/source/command-objects/port.rst":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"af527b5c0caf54d2e30ac7888c71198649951e0b","unresolved":false,"context_lines":[{"line_number":12,"context_line":".. program:: port create"},{"line_number":13,"context_line":".. code:: bash"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    os port create"},{"line_number":16,"context_line":"        [--name \u003cname\u003e]"},{"line_number":17,"context_line":"        [--fixed-ip subnet_id\u003d\u003csubnet\u003e,ip_address\u003d\u003cip-addr\u003e]"},{"line_number":18,"context_line":"        [--device-id \u003cdevice-id\u003e] [--device-owner \u003cdevice-owner\u003e]"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a5de9d1_e7916af2","line":15,"updated":"2016-01-29 16:38:52.000000000","message":"Please format the options with only one option (or option group) per line","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"d9794450ccdf97a76e9a4dcb6976d656d5708389","unresolved":false,"context_lines":[{"line_number":12,"context_line":".. program:: port create"},{"line_number":13,"context_line":".. code:: bash"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    os port create"},{"line_number":16,"context_line":"        [--name \u003cname\u003e]"},{"line_number":17,"context_line":"        [--fixed-ip subnet_id\u003d\u003csubnet\u003e,ip_address\u003d\u003cip-addr\u003e]"},{"line_number":18,"context_line":"        [--device-id \u003cdevice-id\u003e] [--device-owner \u003cdevice-owner\u003e]"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5a5ae5dd_11c22234","line":15,"in_reply_to":"7a5de9d1_e7916af2","updated":"2016-02-03 20:29:40.000000000","message":"Done","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"e2979bfbfb805844f168e36958abaace3b293c33","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    Device owner of this port."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":".. option:: -admin-state-down"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    Set admin state up to false."},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a5de9d1_36676fea","line":42,"updated":"2016-02-01 15:50:57.000000000","message":"I think --enable/--disable should be used for this like is done for the network create command.","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"d9794450ccdf97a76e9a4dcb6976d656d5708389","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    Device owner of this port."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":".. option:: -admin-state-down"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    Set admin state up to false."},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5a5ae5dd_d1e24ad5","line":42,"in_reply_to":"7a5de9d1_36676fea","updated":"2016-02-03 20:29:40.000000000","message":"Done","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"16253e19872b1fd511763eb4ed867a023d2ae2bf","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    os port create"},{"line_number":16,"context_line":"        --network \u003cnetwork\u003e"},{"line_number":17,"context_line":"        [--fixed-ip subnet_id\u003d\u003csubnet\u003e,ip_address\u003d\u003cip-addr\u003e]"},{"line_number":18,"context_line":"        [--device-id \u003cdevice-id\u003e]"},{"line_number":19,"context_line":"        [--device-owner \u003cdevice-owner\u003e]"},{"line_number":20,"context_line":"        [--enable | --disable]"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a5ae5dd_b66b8db8","line":17,"updated":"2016-02-05 20:42:48.000000000","message":"I think dashes instead of underscore should be used.  Also, I suggest consistency in the names (e.g. subnet_id vs subnet and ip_address versus ip-addr).","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"b4b7979a716e4d6b40f90fe3a0f5669365c5b515","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    os port create"},{"line_number":16,"context_line":"        --network \u003cnetwork\u003e"},{"line_number":17,"context_line":"        [--fixed-ip subnet_id\u003d\u003csubnet\u003e,ip_address\u003d\u003cip-addr\u003e]"},{"line_number":18,"context_line":"        [--device-id \u003cdevice-id\u003e]"},{"line_number":19,"context_line":"        [--device-owner \u003cdevice-owner\u003e]"},{"line_number":20,"context_line":"        [--enable | --disable]"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dae33548_df136463","line":17,"in_reply_to":"5a5ae5dd_117b8b8d","updated":"2016-02-19 09:03:39.000000000","message":"Hey Dean, I tried to apply this approach. The caveat that I faced was that if both subnet and ip-address are specified, then they both need to be mapped somehow. Normally this wouldn\u0027t be an issue but since this command can be repeated, it\u0027d be difficult to predict which --subnet maps to which --fixed-ip-addr.","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"d866cb9daadad854ac8d7f25ef283e444462e81a","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    os port create"},{"line_number":16,"context_line":"        --network \u003cnetwork\u003e"},{"line_number":17,"context_line":"        [--fixed-ip subnet_id\u003d\u003csubnet\u003e,ip_address\u003d\u003cip-addr\u003e]"},{"line_number":18,"context_line":"        [--device-id \u003cdevice-id\u003e]"},{"line_number":19,"context_line":"        [--device-owner \u003cdevice-owner\u003e]"},{"line_number":20,"context_line":"        [--enable | --disable]"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a5ae5dd_117b8b8d","line":17,"in_reply_to":"5a5ae5dd_b66b8db8","updated":"2016-02-05 21:09:04.000000000","message":"Apparently both subnet_id and ip_address are not always both required?Rather than a single option with a list of AVPs they should just be two options:  --fixed-ip-addr and --fixed-ip-subnet (maybe just --subnet?) or something makes more sense syntacticly.","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"b4b7979a716e4d6b40f90fe3a0f5669365c5b515","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    os port create"},{"line_number":16,"context_line":"        --network \u003cnetwork\u003e"},{"line_number":17,"context_line":"        [--fixed-ip subnet_id\u003d\u003csubnet\u003e,ip_address\u003d\u003cip-addr\u003e]"},{"line_number":18,"context_line":"        [--device-id \u003cdevice-id\u003e]"},{"line_number":19,"context_line":"        [--device-owner \u003cdevice-owner\u003e]"},{"line_number":20,"context_line":"        [--enable | --disable]"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dae33548_7ffb3847","line":17,"in_reply_to":"5a5ae5dd_b66b8db8","updated":"2016-02-19 09:03:39.000000000","message":"Done","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"d866cb9daadad854ac8d7f25ef283e444462e81a","unresolved":false,"context_lines":[{"line_number":16,"context_line":"        --network \u003cnetwork\u003e"},{"line_number":17,"context_line":"        [--fixed-ip subnet_id\u003d\u003csubnet\u003e,ip_address\u003d\u003cip-addr\u003e]"},{"line_number":18,"context_line":"        [--device-id \u003cdevice-id\u003e]"},{"line_number":19,"context_line":"        [--device-owner \u003cdevice-owner\u003e]"},{"line_number":20,"context_line":"        [--enable | --disable]"},{"line_number":21,"context_line":"        [--mac-address \u003cmac-address\u003e]"},{"line_number":22,"context_line":"        [--vnic-type \u003cdirect | direct-physical | macvtap | normal | baremetal\u003e]"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a5ae5dd_f1b7cfd5","line":19,"updated":"2016-02-05 21:09:04.000000000","message":"What is the device owner?  Is this a project?  If so how is it different from --project?","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"b4b7979a716e4d6b40f90fe3a0f5669365c5b515","unresolved":false,"context_lines":[{"line_number":16,"context_line":"        --network \u003cnetwork\u003e"},{"line_number":17,"context_line":"        [--fixed-ip subnet_id\u003d\u003csubnet\u003e,ip_address\u003d\u003cip-addr\u003e]"},{"line_number":18,"context_line":"        [--device-id \u003cdevice-id\u003e]"},{"line_number":19,"context_line":"        [--device-owner \u003cdevice-owner\u003e]"},{"line_number":20,"context_line":"        [--enable | --disable]"},{"line_number":21,"context_line":"        [--mac-address \u003cmac-address\u003e]"},{"line_number":22,"context_line":"        [--vnic-type \u003cdirect | direct-physical | macvtap | normal | baremetal\u003e]"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dae33548_4f214cb4","line":19,"in_reply_to":"5a5ae5dd_f1b7cfd5","updated":"2016-02-19 09:03:39.000000000","message":"I tried looking into the specifics of this option. All I could find was: \n\nThe device_owner field describes who owns the port. A port whose device_owner begins with:\n\n    network is created by Networking.\n    compute is created by Compute.\n\nsource: http://docs.openstack.org/admin-guide-cloud/networking_use.html","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"16253e19872b1fd511763eb4ed867a023d2ae2bf","unresolved":false,"context_lines":[{"line_number":19,"context_line":"        [--device-owner \u003cdevice-owner\u003e]"},{"line_number":20,"context_line":"        [--enable | --disable]"},{"line_number":21,"context_line":"        [--mac-address \u003cmac-address\u003e]"},{"line_number":22,"context_line":"        [--vnic-type \u003cdirect | direct-physical | macvtap | normal | baremetal\u003e]"},{"line_number":23,"context_line":"        [--binding-profile \u003cbinding-profile\u003e]"},{"line_number":24,"context_line":"        [--project \u003cproject\u003e]"},{"line_number":25,"context_line":"        [--project-domain \u003cproject-domain\u003e]"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a5ae5dd_361b1d75","line":22,"updated":"2016-02-05 20:42:48.000000000","message":"Should this be [--vnic-type \u003cvnic-type\u003e] with the details listed below?","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"b4b7979a716e4d6b40f90fe3a0f5669365c5b515","unresolved":false,"context_lines":[{"line_number":19,"context_line":"        [--device-owner \u003cdevice-owner\u003e]"},{"line_number":20,"context_line":"        [--enable | --disable]"},{"line_number":21,"context_line":"        [--mac-address \u003cmac-address\u003e]"},{"line_number":22,"context_line":"        [--vnic-type \u003cdirect | direct-physical | macvtap | normal | baremetal\u003e]"},{"line_number":23,"context_line":"        [--binding-profile \u003cbinding-profile\u003e]"},{"line_number":24,"context_line":"        [--project \u003cproject\u003e]"},{"line_number":25,"context_line":"        [--project-domain \u003cproject-domain\u003e]"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dae33548_cfe6fb43","line":22,"in_reply_to":"5a5ae5dd_361b1d75","updated":"2016-02-19 09:03:39.000000000","message":"Done","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"16253e19872b1fd511763eb4ed867a023d2ae2bf","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        [--mac-address \u003cmac-address\u003e]"},{"line_number":22,"context_line":"        [--vnic-type \u003cdirect | direct-physical | macvtap | normal | baremetal\u003e]"},{"line_number":23,"context_line":"        [--binding-profile \u003cbinding-profile\u003e]"},{"line_number":24,"context_line":"        [--project \u003cproject\u003e]"},{"line_number":25,"context_line":"        [--project-domain \u003cproject-domain\u003e]"},{"line_number":26,"context_line":"        \u003cname\u003e"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a5ae5dd_dbef5285","line":24,"updated":"2016-02-05 20:42:48.000000000","message":"I think this needs to be [--project \u003cproject\u003e [--project-domain \u003cproject-domain\u003e]]","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"b4b7979a716e4d6b40f90fe3a0f5669365c5b515","unresolved":false,"context_lines":[{"line_number":21,"context_line":"        [--mac-address \u003cmac-address\u003e]"},{"line_number":22,"context_line":"        [--vnic-type \u003cdirect | direct-physical | macvtap | normal | baremetal\u003e]"},{"line_number":23,"context_line":"        [--binding-profile \u003cbinding-profile\u003e]"},{"line_number":24,"context_line":"        [--project \u003cproject\u003e]"},{"line_number":25,"context_line":"        [--project-domain \u003cproject-domain\u003e]"},{"line_number":26,"context_line":"        \u003cname\u003e"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"dae33548_efd3ff5d","line":24,"in_reply_to":"5a5ae5dd_dbef5285","updated":"2016-02-19 09:03:39.000000000","message":"Done","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"16253e19872b1fd511763eb4ed867a023d2ae2bf","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":".. option:: --network \u003cnetwork\u003e"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    Network ID or name this port belongs to."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":".. option:: --fixed-ip subnet_id\u003d\u003csubnet\u003e,ip_address\u003d\u003cip-addr\u003e"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a5ae5dd_bba13648","line":30,"updated":"2016-02-05 20:42:48.000000000","message":"suggest... Network this port belongs to (name or ID).","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"b4b7979a716e4d6b40f90fe3a0f5669365c5b515","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":".. option:: --network \u003cnetwork\u003e"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    Network ID or name this port belongs to."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":".. option:: --fixed-ip subnet_id\u003d\u003csubnet\u003e,ip_address\u003d\u003cip-addr\u003e"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"dae33548_4fc94bac","line":30,"in_reply_to":"5a5ae5dd_bba13648","updated":"2016-02-19 09:03:39.000000000","message":"Done","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"16253e19872b1fd511763eb4ed867a023d2ae2bf","unresolved":false,"context_lines":[{"line_number":32,"context_line":".. option:: --fixed-ip subnet_id\u003d\u003csubnet\u003e,ip_address\u003d\u003cip-addr\u003e"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    Desired IP and/or subnet for this port:"},{"line_number":35,"context_line":"    subnet_id\u003d\u003cname_or_id\u003e,ip_address\u003d\u003cip\u003e."},{"line_number":36,"context_line":"    You can repeat this option."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":".. option:: --device-id \u003cdevice-id\u003e"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a5ae5dd_160ce1eb","line":35,"updated":"2016-02-05 20:42:48.000000000","message":"I think subnet_id should be subnet since name or ID is supported.","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"b4b7979a716e4d6b40f90fe3a0f5669365c5b515","unresolved":false,"context_lines":[{"line_number":32,"context_line":".. option:: --fixed-ip subnet_id\u003d\u003csubnet\u003e,ip_address\u003d\u003cip-addr\u003e"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    Desired IP and/or subnet for this port:"},{"line_number":35,"context_line":"    subnet_id\u003d\u003cname_or_id\u003e,ip_address\u003d\u003cip\u003e."},{"line_number":36,"context_line":"    You can repeat this option."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":".. option:: --device-id \u003cdevice-id\u003e"}],"source_content_type":"text/x-rst","patch_set":9,"id":"dae33548_2fce87b4","line":35,"in_reply_to":"5a5ae5dd_160ce1eb","updated":"2016-02-19 09:03:39.000000000","message":"Done","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"16253e19872b1fd511763eb4ed867a023d2ae2bf","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":".. option:: --device-id \u003cdevice-id\u003e"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    Device ID of this port."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":".. option:: --device-owner \u003cdevice-owner\u003e"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a5ae5dd_f64ee56d","line":40,"updated":"2016-02-05 20:42:48.000000000","message":"General comment...periods aren\u0027t normally added to the option descriptions","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"b4b7979a716e4d6b40f90fe3a0f5669365c5b515","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":".. option:: --device-id \u003cdevice-id\u003e"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    Device ID of this port."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":".. option:: --device-owner \u003cdevice-owner\u003e"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"dae33548_8f4a3326","line":40,"in_reply_to":"5a5ae5dd_91953b88","updated":"2016-02-19 09:03:39.000000000","message":"Done","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"d866cb9daadad854ac8d7f25ef283e444462e81a","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":".. option:: --device-id \u003cdevice-id\u003e"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    Device ID of this port."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":".. option:: --device-owner \u003cdevice-owner\u003e"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a5ae5dd_91953b88","line":40,"in_reply_to":"5a5ae5dd_f64ee56d","updated":"2016-02-05 21:09:04.000000000","message":"+1, help strings too","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"b4b7979a716e4d6b40f90fe3a0f5669365c5b515","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":".. option:: --device-id \u003cdevice-id\u003e"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    Device ID of this port."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":".. option:: --device-owner \u003cdevice-owner\u003e"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"dae33548_ef3adf97","line":40,"in_reply_to":"5a5ae5dd_f64ee56d","updated":"2016-02-19 09:03:39.000000000","message":"Done","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"16253e19872b1fd511763eb4ed867a023d2ae2bf","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":".. option:: --enable"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    Enable port."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":".. option:: --disable"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a5ae5dd_fb1ece6e","line":48,"updated":"2016-02-05 20:42:48.000000000","message":"Please note this is (default) like is done in other network commands.","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"b4b7979a716e4d6b40f90fe3a0f5669365c5b515","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":".. option:: --enable"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    Enable port."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":".. option:: --disable"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"dae33548_6f47ef1d","line":48,"in_reply_to":"5a5ae5dd_fb1ece6e","updated":"2016-02-19 09:03:39.000000000","message":"Done","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"d206ed73a2644fbba164de395cd2aea2a5e33570","unresolved":false,"context_lines":[{"line_number":31,"context_line":".. option:: --fixed-ip subnet\u003d\u003csubnet\u003e,ip-address\u003d\u003cip-address\u003e"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    Desired IP and/or subnet for this port:"},{"line_number":34,"context_line":"    subnet\u003d\u003csubnet\u003e,ip-address\u003d\u003cip-address\u003e"},{"line_number":35,"context_line":"    (you can repeat this option)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":".. option:: --device-id \u003cdevice-id\u003e"}],"source_content_type":"text/x-rst","patch_set":24,"id":"9aed3d3a_42d134fb","line":34,"updated":"2016-02-25 17:25:46.000000000","message":"Please document this supports subnet name or ID.","commit_id":"bb9f20bbbabab7ff7e30a008824cdca48bf679b1"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"5195db28e0f9d5356a0481e613f8d0396510b6cd","unresolved":false,"context_lines":[{"line_number":31,"context_line":".. option:: --fixed-ip subnet\u003d\u003csubnet\u003e,ip-address\u003d\u003cip-address\u003e"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    Desired IP and/or subnet for this port:"},{"line_number":34,"context_line":"    subnet\u003d\u003csubnet\u003e,ip-address\u003d\u003cip-address\u003e"},{"line_number":35,"context_line":"    (you can repeat this option)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":".. option:: --device-id \u003cdevice-id\u003e"}],"source_content_type":"text/x-rst","patch_set":24,"id":"9aed3d3a_715b5655","line":34,"in_reply_to":"9aed3d3a_42d134fb","updated":"2016-02-25 21:45:36.000000000","message":"Done","commit_id":"bb9f20bbbabab7ff7e30a008824cdca48bf679b1"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"d206ed73a2644fbba164de395cd2aea2a5e33570","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    Desired IP and/or subnet for this port:"},{"line_number":34,"context_line":"    subnet\u003d\u003csubnet\u003e,ip-address\u003d\u003cip-address\u003e"},{"line_number":35,"context_line":"    (you can repeat this option)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":".. option:: --device-id \u003cdevice-id\u003e"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":24,"id":"9aed3d3a_e248488a","line":35,"updated":"2016-02-25 17:25:46.000000000","message":"Other commands use \"this option can be repeated\" or \"repeat option to ...\"  Consider being consistent here.","commit_id":"bb9f20bbbabab7ff7e30a008824cdca48bf679b1"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"5195db28e0f9d5356a0481e613f8d0396510b6cd","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    Desired IP and/or subnet for this port:"},{"line_number":34,"context_line":"    subnet\u003d\u003csubnet\u003e,ip-address\u003d\u003cip-address\u003e"},{"line_number":35,"context_line":"    (you can repeat this option)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":".. option:: --device-id \u003cdevice-id\u003e"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":24,"id":"9aed3d3a_915eda43","line":35,"in_reply_to":"9aed3d3a_e248488a","updated":"2016-02-25 21:45:36.000000000","message":"Done","commit_id":"bb9f20bbbabab7ff7e30a008824cdca48bf679b1"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"d206ed73a2644fbba164de395cd2aea2a5e33570","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    This can be used in case collisions between project names exist."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":".. _port_create-name:"},{"line_number":76,"context_line":".. describe:: \u003cname\u003e"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"port delete"},{"line_number":79,"context_line":"-----------"}],"source_content_type":"text/x-rst","patch_set":24,"id":"9aed3d3a_62a71850","line":76,"updated":"2016-02-25 17:25:46.000000000","message":"Please document this.","commit_id":"bb9f20bbbabab7ff7e30a008824cdca48bf679b1"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"5195db28e0f9d5356a0481e613f8d0396510b6cd","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    This can be used in case collisions between project names exist."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":".. _port_create-name:"},{"line_number":76,"context_line":".. describe:: \u003cname\u003e"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"port delete"},{"line_number":79,"context_line":"-----------"}],"source_content_type":"text/x-rst","patch_set":24,"id":"9aed3d3a_3149ce8c","line":76,"in_reply_to":"9aed3d3a_62a71850","updated":"2016-02-25 21:45:36.000000000","message":"Done","commit_id":"bb9f20bbbabab7ff7e30a008824cdca48bf679b1"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"79656bc6a95814f4ab49dfcbe1c9ab29885c8c21","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":".. option:: --binding-profile \u003cbinding-profile\u003e"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    Custom data to be passed as binding:profile: key\u003d\u003cvalue\u003e"},{"line_number":53,"context_line":"    (this option can be repeated)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":".. option:: --host-id \u003chost-id\u003e"}],"source_content_type":"text/x-rst","patch_set":26,"id":"7af24918_39194689","line":52,"range":{"start_line":52,"start_character":49,"end_line":52,"end_character":52},"updated":"2016-03-02 21:15:44.000000000","message":"\u0027key\u0027 is a parameter as well. I think it should be \u0027\u003ckey\u003e\u0027.","commit_id":"586dce823daf53e705b45274af6323acd06241bc"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"33a14779231012bd2e35dad9ccf45f5da468d3bf","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":".. option:: --binding-profile \u003cbinding-profile\u003e"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    Custom data to be passed as binding:profile: key\u003d\u003cvalue\u003e"},{"line_number":53,"context_line":"    (this option can be repeated)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":".. option:: --host-id \u003chost-id\u003e"}],"source_content_type":"text/x-rst","patch_set":26,"id":"7af24918_9112ee55","line":52,"range":{"start_line":52,"start_character":49,"end_line":52,"end_character":52},"in_reply_to":"7af24918_39194689","updated":"2016-03-02 21:51:13.000000000","message":"Done","commit_id":"586dce823daf53e705b45274af6323acd06241bc"}],"openstackclient/common/utils.py":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"af527b5c0caf54d2e30ac7888c71198649951e0b","unresolved":false,"context_lines":[{"line_number":443,"context_line":"            key, sep, value \u003d kv.partition(\u0027\u003d\u0027)"},{"line_number":444,"context_line":"            if not sep:"},{"line_number":445,"context_line":"                msg \u003d _(\"invalid key-value \u0027%s\u0027, expected format: key\u003dvalue\")"},{"line_number":446,"context_line":"                raise argparse.ArgumentTypeError(msg % kv)"},{"line_number":447,"context_line":"            result[key] \u003d value"},{"line_number":448,"context_line":"    return result"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_8770b6dd","line":446,"updated":"2016-01-29 16:38:52.000000000","message":"Why an argparse exception here?","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"2a61a45f72bd1da3d80d69ce06de5cc14fbf8a7f","unresolved":false,"context_lines":[{"line_number":443,"context_line":"            key, sep, value \u003d kv.partition(\u0027\u003d\u0027)"},{"line_number":444,"context_line":"            if not sep:"},{"line_number":445,"context_line":"                msg \u003d _(\"invalid key-value \u0027%s\u0027, expected format: key\u003dvalue\")"},{"line_number":446,"context_line":"                raise argparse.ArgumentTypeError(msg % kv)"},{"line_number":447,"context_line":"            result[key] \u003d value"},{"line_number":448,"context_line":"    return result"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_867256e4","line":446,"in_reply_to":"7a5de9d1_8770b6dd","updated":"2016-02-03 20:28:35.000000000","message":"Fixed.","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"c38b53cea977efba9127262ba7f1b7075c7e0507","unresolved":false,"context_lines":[{"line_number":429,"context_line":"        return False"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"def str2dict(strdict):"},{"line_number":433,"context_line":"    \"\"\"Convert key1\u003dvalue1,key2\u003dvalue2,... string into dictionary."},{"line_number":434,"context_line":""},{"line_number":435,"context_line":"    :param strdict: key1\u003dvalue1,key2\u003dvalue2"}],"source_content_type":"text/x-python","patch_set":24,"id":"bae84128_c8e63ce7","line":432,"range":{"start_line":432,"start_character":4,"end_line":432,"end_character":12},"updated":"2016-02-24 01:17:06.000000000","message":"I\u0027m sorry. I think Dean has confirm the direction of this review: https://review.openstack.org/#/c/276041/\n\nJust some more little fix needs to be done. So just wait for a while, and let\u0027s try to use MultiKeyValueAction. :)\n\nAnd sorry again, it is me who is too slow to work this out.","commit_id":"bb9f20bbbabab7ff7e30a008824cdca48bf679b1"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"b6f3be11fad0ca70458ff9dc1260395d96b04d69","unresolved":false,"context_lines":[{"line_number":429,"context_line":"        return False"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"def str2dict(strdict):"},{"line_number":433,"context_line":"    \"\"\"Convert key1\u003dvalue1,key2\u003dvalue2,... string into dictionary."},{"line_number":434,"context_line":""},{"line_number":435,"context_line":"    :param strdict: key1\u003dvalue1,key2\u003dvalue2"}],"source_content_type":"text/x-python","patch_set":25,"id":"9aed3d3a_31ae4a98","line":432,"updated":"2016-02-29 19:46:16.000000000","message":"https://review.openstack.org/#/c/276041/ has merged so you can refactor to use it now.","commit_id":"40c8bb5b5e86238d8bdea1674d192cb5fae8f0cd"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"67d89f5b54357de15fec536c61b88ab25dc5ac0f","unresolved":false,"context_lines":[{"line_number":429,"context_line":"        return False"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"def str2dict(strdict):"},{"line_number":433,"context_line":"    \"\"\"Convert key1\u003dvalue1,key2\u003dvalue2,... string into dictionary."},{"line_number":434,"context_line":""},{"line_number":435,"context_line":"    :param strdict: key1\u003dvalue1,key2\u003dvalue2"}],"source_content_type":"text/x-python","patch_set":25,"id":"7af24918_2f2a9c7e","line":432,"in_reply_to":"9aed3d3a_31ae4a98","updated":"2016-03-02 19:09:37.000000000","message":"Done","commit_id":"40c8bb5b5e86238d8bdea1674d192cb5fae8f0cd"}],"openstackclient/network/v2/port.py":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"af527b5c0caf54d2e30ac7888c71198649951e0b","unresolved":false,"context_lines":[{"line_number":40,"context_line":"}"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"def _get_attrs(client_manager, parsed_args):"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    attrs \u003d {}"},{"line_number":46,"context_line":"    if parsed_args.name is not None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_87475676","line":43,"updated":"2016-01-29 16:38:52.000000000","message":"Is this here because you anticipate using it elsewhere, say in a set command?\n\nI don\u0027t see where client_manager is used","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"2a61a45f72bd1da3d80d69ce06de5cc14fbf8a7f","unresolved":false,"context_lines":[{"line_number":40,"context_line":"}"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"def _get_attrs(client_manager, parsed_args):"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    attrs \u003d {}"},{"line_number":46,"context_line":"    if parsed_args.name is not None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_915cd226","line":43,"in_reply_to":"7a5de9d1_87475676","updated":"2016-02-03 20:28:35.000000000","message":"Yes, this will potentially be reused during \u0027set\u0027. Client_manager is now being used.","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"af527b5c0caf54d2e30ac7888c71198649951e0b","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        \"\"\"Create a port for a given network.\"\"\""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        parser.add_argument("},{"line_number":78,"context_line":"            \u0027--name\u0027,"},{"line_number":79,"context_line":"            metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":80,"context_line":"            help\u003d\u0027Name of this port.\u0027)"},{"line_number":81,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_2728e299","line":78,"updated":"2016-01-29 16:38:52.000000000","message":"This should be the positional argument, the port is what is being created here","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"2a61a45f72bd1da3d80d69ce06de5cc14fbf8a7f","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        \"\"\"Create a port for a given network.\"\"\""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        parser.add_argument("},{"line_number":78,"context_line":"            \u0027--name\u0027,"},{"line_number":79,"context_line":"            metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":80,"context_line":"            help\u003d\u0027Name of this port.\u0027)"},{"line_number":81,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_1149c25f","line":78,"in_reply_to":"7a5de9d1_2728e299","updated":"2016-02-03 20:28:35.000000000","message":"Done","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"af527b5c0caf54d2e30ac7888c71198649951e0b","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                   \u0027subnet_id\u003d\u003cname_or_id\u003e,ip_address\u003d\u003cip\u003e. \u0027"},{"line_number":87,"context_line":"                   \u0027You can repeat this option.\u0027))"},{"line_number":88,"context_line":"        parser.add_argument("},{"line_number":89,"context_line":"            \u0027--fixed_ip\u0027,"},{"line_number":90,"context_line":"            action\u003d\u0027append\u0027,"},{"line_number":91,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":92,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_4725debe","line":89,"updated":"2016-01-29 16:38:52.000000000","message":"Don\u0027t add these back-compat options in new code","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"2a61a45f72bd1da3d80d69ce06de5cc14fbf8a7f","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                   \u0027subnet_id\u003d\u003cname_or_id\u003e,ip_address\u003d\u003cip\u003e. \u0027"},{"line_number":87,"context_line":"                   \u0027You can repeat this option.\u0027))"},{"line_number":88,"context_line":"        parser.add_argument("},{"line_number":89,"context_line":"            \u0027--fixed_ip\u0027,"},{"line_number":90,"context_line":"            action\u003d\u0027append\u0027,"},{"line_number":91,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":92,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_b1746e9c","line":89,"in_reply_to":"7a5de9d1_4725debe","updated":"2016-02-03 20:28:35.000000000","message":"Done","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"af527b5c0caf54d2e30ac7888c71198649951e0b","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            metavar\u003d\u0027\u003cdevice-id\u003e\u0027,"},{"line_number":95,"context_line":"            help\u003d\u0027Device ID of this port.\u0027)"},{"line_number":96,"context_line":"        parser.add_argument("},{"line_number":97,"context_line":"            \u0027--device_id\u0027,"},{"line_number":98,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":99,"context_line":"        parser.add_argument("},{"line_number":100,"context_line":"            \u0027--device-owner\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_470cfe40","line":97,"updated":"2016-01-29 16:38:52.000000000","message":"ditto","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"2a61a45f72bd1da3d80d69ce06de5cc14fbf8a7f","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            metavar\u003d\u0027\u003cdevice-id\u003e\u0027,"},{"line_number":95,"context_line":"            help\u003d\u0027Device ID of this port.\u0027)"},{"line_number":96,"context_line":"        parser.add_argument("},{"line_number":97,"context_line":"            \u0027--device_id\u0027,"},{"line_number":98,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":99,"context_line":"        parser.add_argument("},{"line_number":100,"context_line":"            \u0027--device-owner\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_716ef6ca","line":97,"in_reply_to":"7a5de9d1_470cfe40","updated":"2016-02-03 20:28:35.000000000","message":"Done","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"af527b5c0caf54d2e30ac7888c71198649951e0b","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            metavar\u003d\u0027\u003cdevice-owner\u003e\u0027,"},{"line_number":102,"context_line":"            help\u003d\u0027Device owner of this port.\u0027)"},{"line_number":103,"context_line":"        parser.add_argument("},{"line_number":104,"context_line":"            \u0027--device_owner\u0027,"},{"line_number":105,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":106,"context_line":"        parser.add_argument("},{"line_number":107,"context_line":"            \u0027--admin-state-down\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_e7040a19","line":104,"updated":"2016-01-29 16:38:52.000000000","message":"ditto","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"2a61a45f72bd1da3d80d69ce06de5cc14fbf8a7f","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            metavar\u003d\u0027\u003cdevice-owner\u003e\u0027,"},{"line_number":102,"context_line":"            help\u003d\u0027Device owner of this port.\u0027)"},{"line_number":103,"context_line":"        parser.add_argument("},{"line_number":104,"context_line":"            \u0027--device_owner\u0027,"},{"line_number":105,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":106,"context_line":"        parser.add_argument("},{"line_number":107,"context_line":"            \u0027--admin-state-down\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_917372b1","line":104,"in_reply_to":"7a5de9d1_e7040a19","updated":"2016-02-03 20:28:35.000000000","message":"Done","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"af527b5c0caf54d2e30ac7888c71198649951e0b","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            \u0027--device_owner\u0027,"},{"line_number":105,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":106,"context_line":"        parser.add_argument("},{"line_number":107,"context_line":"            \u0027--admin-state-down\u0027,"},{"line_number":108,"context_line":"            dest\u003d\u0027admin_state_up\u0027,"},{"line_number":109,"context_line":"            action\u003d\u0027store_false\u0027,"},{"line_number":110,"context_line":"            help\u003d\u0027Set admin state up to false.\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_c71f8e6a","line":107,"updated":"2016-01-29 16:38:52.000000000","message":"We handle booleans a bit differently, always as a exclusive pair of options for the true and false states. See http://docs.openstack.org/developer/python-openstackclient/command-options.html#boolean-options for the details.","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"2a61a45f72bd1da3d80d69ce06de5cc14fbf8a7f","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            \u0027--device_owner\u0027,"},{"line_number":105,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":106,"context_line":"        parser.add_argument("},{"line_number":107,"context_line":"            \u0027--admin-state-down\u0027,"},{"line_number":108,"context_line":"            dest\u003d\u0027admin_state_up\u0027,"},{"line_number":109,"context_line":"            action\u003d\u0027store_false\u0027,"},{"line_number":110,"context_line":"            help\u003d\u0027Set admin state up to false.\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_31695ebf","line":107,"in_reply_to":"7a5de9d1_c71f8e6a","updated":"2016-02-03 20:28:35.000000000","message":"Done","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"af527b5c0caf54d2e30ac7888c71198649951e0b","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            metavar\u003d\u0027\u003cmac-address\u003e\u0027,"},{"line_number":119,"context_line":"            help\u003d(\u0027MAC address of this port.\u0027))"},{"line_number":120,"context_line":"        parser.add_argument("},{"line_number":121,"context_line":"            \u0027--mac_address\u0027,"},{"line_number":122,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":123,"context_line":"        parser.add_argument("},{"line_number":124,"context_line":"            \u0027--vnic-type\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_ca06b51c","line":121,"updated":"2016-01-29 16:38:52.000000000","message":"ditto","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"af527b5c0caf54d2e30ac7888c71198649951e0b","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                     \u0027normal\u0027, \u0027baremetal\u0027],"},{"line_number":129,"context_line":"            help\u003d\u0027VNIC type for this port.\u0027)"},{"line_number":130,"context_line":"        parser.add_argument("},{"line_number":131,"context_line":"            \u0027--vnic_type\u0027,"},{"line_number":132,"context_line":"            choices\u003d[\u0027direct\u0027, \u0027direct-physical\u0027, \u0027macvtap\u0027,"},{"line_number":133,"context_line":"                     \u0027normal\u0027, \u0027baremetal\u0027],"},{"line_number":134,"context_line":"            help\u003dargparse.SUPPRESS)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_6a078118","line":131,"updated":"2016-01-29 16:38:52.000000000","message":"ditto","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"af527b5c0caf54d2e30ac7888c71198649951e0b","unresolved":false,"context_lines":[{"line_number":139,"context_line":"            help\u003d\u0027Custom data to be passed as binding:profile: key\u003d\u003cvalue\u003e.\u0027"},{"line_number":140,"context_line":"                 \u0027You can repeat this option.\u0027)"},{"line_number":141,"context_line":"        parser.add_argument("},{"line_number":142,"context_line":"            \u0027--binding_profile\u0027,"},{"line_number":143,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":144,"context_line":"        parser.add_argument("},{"line_number":145,"context_line":"            \u0027network_id\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_2a16694c","line":142,"updated":"2016-01-29 16:38:52.000000000","message":"ditto","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"af527b5c0caf54d2e30ac7888c71198649951e0b","unresolved":false,"context_lines":[{"line_number":142,"context_line":"            \u0027--binding_profile\u0027,"},{"line_number":143,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":144,"context_line":"        parser.add_argument("},{"line_number":145,"context_line":"            \u0027network_id\u0027,"},{"line_number":146,"context_line":"            metavar\u003d\u0027\u003cnetwork\u003e\u0027,"},{"line_number":147,"context_line":"            help\u003d\u0027Network ID or name this port belongs to.\u0027)"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_8a23dda6","line":145,"updated":"2016-01-29 16:38:52.000000000","message":"This should be an option, --network \u003cnetwork\u003e.  This command is creating a port, not a network.  It may be a required option if necessary.\n\nUnless you are avoiding a collision, don\u0027t use _id in the name if it may be a name or id.","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"2a61a45f72bd1da3d80d69ce06de5cc14fbf8a7f","unresolved":false,"context_lines":[{"line_number":142,"context_line":"            \u0027--binding_profile\u0027,"},{"line_number":143,"context_line":"            help\u003dargparse.SUPPRESS)"},{"line_number":144,"context_line":"        parser.add_argument("},{"line_number":145,"context_line":"            \u0027network_id\u0027,"},{"line_number":146,"context_line":"            metavar\u003d\u0027\u003cnetwork\u003e\u0027,"},{"line_number":147,"context_line":"            help\u003d\u0027Network ID or name this port belongs to.\u0027)"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_51adfae7","line":145,"in_reply_to":"7a5de9d1_8a23dda6","updated":"2016-02-03 20:28:35.000000000","message":"Done","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"b6c43393f6c6fbdf2a33ae283c4340864479db6f","unresolved":false,"context_lines":[{"line_number":146,"context_line":"            metavar\u003d\u0027\u003cnetwork\u003e\u0027,"},{"line_number":147,"context_line":"            help\u003d\u0027Network ID or name this port belongs to.\u0027)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        return parser"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def take_action(self, parsed_args):"},{"line_number":152,"context_line":"        self.log.debug(\u0027take_action(%s)\u0027 % parsed_args)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_6cb8b675","line":149,"updated":"2016-02-01 16:19:39.000000000","message":"Consider adding a TODO comment for the other port create options supported by neutron-client.","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"2a61a45f72bd1da3d80d69ce06de5cc14fbf8a7f","unresolved":false,"context_lines":[{"line_number":146,"context_line":"            metavar\u003d\u0027\u003cnetwork\u003e\u0027,"},{"line_number":147,"context_line":"            help\u003d\u0027Network ID or name this port belongs to.\u0027)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        return parser"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def take_action(self, parsed_args):"},{"line_number":152,"context_line":"        self.log.debug(\u0027take_action(%s)\u0027 % parsed_args)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_11b7823a","line":149,"in_reply_to":"7a5de9d1_6cb8b675","updated":"2016-02-03 20:28:35.000000000","message":"Done","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"e2979bfbfb805844f168e36958abaace3b293c33","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        # If it doesn\u0027t exist, let user know."},{"line_number":156,"context_line":"        _network \u003d client.find_network(parsed_args.network_id)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        if not _network:"},{"line_number":159,"context_line":"            msg \u003d \"Network name/id not found.\""},{"line_number":160,"context_line":"            raise exceptions.NotFound(msg)"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_366c4f34","line":158,"updated":"2016-02-01 15:50:57.000000000","message":"Do you need to handle this here or can you rely on create_port() to fail with the appropriate message?","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"2a61a45f72bd1da3d80d69ce06de5cc14fbf8a7f","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        # If it doesn\u0027t exist, let user know."},{"line_number":156,"context_line":"        _network \u003d client.find_network(parsed_args.network_id)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        if not _network:"},{"line_number":159,"context_line":"            msg \u003d \"Network name/id not found.\""},{"line_number":160,"context_line":"            raise exceptions.NotFound(msg)"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_f103c6b6","line":158,"in_reply_to":"7a5de9d1_366c4f34","updated":"2016-02-03 20:28:35.000000000","message":"create_port()/neutron back-end expects network_id. This call is actually useful for translating from network name to id. The check for existence here is just an added bonus.","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"af527b5c0caf54d2e30ac7888c71198649951e0b","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            columns[index] \u003d \u0027project_id\u0027"},{"line_number":173,"context_line":"        return (tuple(columns), data)"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    def prepare_fixed_ips(self, parsed_args):"},{"line_number":176,"context_line":"        \"\"\"Fix and properly format fixed_ip option."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        Appropriately fix any subnet names marked incorrectly as"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_ca547500","line":175,"updated":"2016-01-29 16:38:52.000000000","message":"Should this be a private function rather than a class method?  Will you need it again in a show command?","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"2a61a45f72bd1da3d80d69ce06de5cc14fbf8a7f","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            columns[index] \u003d \u0027project_id\u0027"},{"line_number":173,"context_line":"        return (tuple(columns), data)"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    def prepare_fixed_ips(self, parsed_args):"},{"line_number":176,"context_line":"        \"\"\"Fix and properly format fixed_ip option."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        Appropriately fix any subnet names marked incorrectly as"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_f11ae616","line":175,"in_reply_to":"7a5de9d1_ca547500","updated":"2016-02-03 20:28:35.000000000","message":"Done","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"d32876b223e4aa9937db59136f169cd1bac611a3","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        parsed_args.fixed_ip \u003d ips"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"class CreatePort(show.ShowOne):"},{"line_number":116,"context_line":"    \"\"\"Create a new port\"\"\""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.CreatePort\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a5ae5dd_a51cec77","line":115,"updated":"2016-02-04 19:06:05.000000000","message":"Please see my comments in the port list review.  You\u0027ll need to rebase this patch set based on recent changes to command logging.","commit_id":"5d8486f1b61381e75ab24d324444f5a1a0c30a0a"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"11ccf585c77c99033932c5933c76a75abcbd7440","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"\"\"\"Port action implementations\"\"\""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from openstackclient.common import command"},{"line_number":18,"context_line":"from openstackclient.common import exceptions"},{"line_number":19,"context_line":"from openstackclient.common import parseractions"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a57f1b5_739375fb","line":16,"updated":"2016-02-10 04:56:46.000000000","message":"Is this new line required?","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"b4b7979a716e4d6b40f90fe3a0f5669365c5b515","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"\"\"\"Port action implementations\"\"\""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from openstackclient.common import command"},{"line_number":18,"context_line":"from openstackclient.common import exceptions"},{"line_number":19,"context_line":"from openstackclient.common import parseractions"}],"source_content_type":"text/x-python","patch_set":9,"id":"dae33548_afff37a9","line":16,"in_reply_to":"3a57f1b5_739375fb","updated":"2016-02-19 09:03:39.000000000","message":"Done","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"11ccf585c77c99033932c5933c76a75abcbd7440","unresolved":false,"context_lines":[{"line_number":58,"context_line":"def _get_attrs(client_manager, parsed_args):"},{"line_number":59,"context_line":"    attrs \u003d {}"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    if parsed_args.name is not None:"},{"line_number":62,"context_line":"        attrs[\u0027name\u0027] \u003d str(parsed_args.name)"},{"line_number":63,"context_line":"    if parsed_args.fixed_ip is not None:"},{"line_number":64,"context_line":"        attrs[\u0027fixed_ips\u0027] \u003d parsed_args.fixed_ip"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a57f1b5_7381358f","line":61,"updated":"2016-02-10 04:56:46.000000000","message":"You do not need to check  \n\n if XYZ is not None:\n\nfor parameters which do not accept Boolean values.\nFor these parameters, you can just use:\n\n\n if XYZ:","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"b4b7979a716e4d6b40f90fe3a0f5669365c5b515","unresolved":false,"context_lines":[{"line_number":58,"context_line":"def _get_attrs(client_manager, parsed_args):"},{"line_number":59,"context_line":"    attrs \u003d {}"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    if parsed_args.name is not None:"},{"line_number":62,"context_line":"        attrs[\u0027name\u0027] \u003d str(parsed_args.name)"},{"line_number":63,"context_line":"    if parsed_args.fixed_ip is not None:"},{"line_number":64,"context_line":"        attrs[\u0027fixed_ips\u0027] \u003d parsed_args.fixed_ip"}],"source_content_type":"text/x-python","patch_set":9,"id":"dae33548_4f25cb5a","line":61,"in_reply_to":"3a57f1b5_7381358f","updated":"2016-02-19 09:03:39.000000000","message":"Done","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"16253e19872b1fd511763eb4ed867a023d2ae2bf","unresolved":false,"context_lines":[{"line_number":107,"context_line":"            ip_dict \u003d utils.str2dict(ip_spec)"},{"line_number":108,"context_line":"            subnet_name_id \u003d None"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"            if \u0027subnet_id\u0027 in ip_dict:"},{"line_number":111,"context_line":"                subnet_name_id \u003d ip_dict[\u0027subnet_id\u0027]"},{"line_number":112,"context_line":"            elif \u0027subnet\u0027 in ip_dict:"},{"line_number":113,"context_line":"                subnet_name_id \u003d ip_dict[\u0027subnet\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a5ae5dd_56fed9ae","line":110,"updated":"2016-02-05 20:42:48.000000000","message":"Why is both subnet_id and subnet supported?","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"b4b7979a716e4d6b40f90fe3a0f5669365c5b515","unresolved":false,"context_lines":[{"line_number":107,"context_line":"            ip_dict \u003d utils.str2dict(ip_spec)"},{"line_number":108,"context_line":"            subnet_name_id \u003d None"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"            if \u0027subnet_id\u0027 in ip_dict:"},{"line_number":111,"context_line":"                subnet_name_id \u003d ip_dict[\u0027subnet_id\u0027]"},{"line_number":112,"context_line":"            elif \u0027subnet\u0027 in ip_dict:"},{"line_number":113,"context_line":"                subnet_name_id \u003d ip_dict[\u0027subnet\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a5ae5dd_16ce212e","line":110,"in_reply_to":"5a5ae5dd_56fed9ae","updated":"2016-02-19 09:03:39.000000000","message":"I\u0027ve fixed it so that it only accepts \u0027subnet\u0027.","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"11ccf585c77c99033932c5933c76a75abcbd7440","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        parser \u003d super(CreatePort, self).get_parser(prog_name)"},{"line_number":135,"context_line":"        \"\"\"Create a port for a given network.\"\"\""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        parser.add_argument("},{"line_number":138,"context_line":"            \u0027name\u0027,"},{"line_number":139,"context_line":"            metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":140,"context_line":"            help\u003d\u0027Name of this port.\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a57f1b5_d3090933","line":137,"updated":"2016-02-10 04:56:46.000000000","message":"I would advice you to list all the arguments which would be used for CreatePort and UpdatePort( I guess it would be postulated later) in a single function in this patch itself.\nIt would reduce the amount of code you need to write for UpdatePort.","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"b4b7979a716e4d6b40f90fe3a0f5669365c5b515","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        parser \u003d super(CreatePort, self).get_parser(prog_name)"},{"line_number":135,"context_line":"        \"\"\"Create a port for a given network.\"\"\""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        parser.add_argument("},{"line_number":138,"context_line":"            \u0027name\u0027,"},{"line_number":139,"context_line":"            metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":140,"context_line":"            help\u003d\u0027Name of this port.\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"dae33548_cf027bb4","line":137,"in_reply_to":"3a57f1b5_d3090933","updated":"2016-02-19 09:03:39.000000000","message":"Done","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"91b7d0c89a4197889dd651ea7f7e908b92eb9e03","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"def _add_updatable_args(parser):"},{"line_number":124,"context_line":"        parser.add_argument("},{"line_number":125,"context_line":"            \u0027name\u0027,"},{"line_number":126,"context_line":"            metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":127,"context_line":"            help\u003d\u0027Name of this port\u0027)"},{"line_number":128,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":13,"id":"dae33548_64ba840c","line":125,"updated":"2016-02-19 00:06:39.000000000","message":"I am not sure if name would be an updatable arg for Update port, but that you can change in the next patch, as per requirement.","commit_id":"02dede5cbc1287fce060ec2062ea86a36d523184"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"88f148b4a603a94394d525d2046ceb9630550f81","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"def _add_updatable_args(parser):"},{"line_number":124,"context_line":"        parser.add_argument("},{"line_number":125,"context_line":"            \u0027name\u0027,"},{"line_number":126,"context_line":"            metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":127,"context_line":"            help\u003d\u0027Name of this port\u0027)"},{"line_number":128,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":13,"id":"bae84128_bcc76544","line":125,"in_reply_to":"dae33548_64ba840c","updated":"2016-02-19 17:44:57.000000000","message":"agreed. Done.","commit_id":"02dede5cbc1287fce060ec2062ea86a36d523184"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"153ababcc79548519cf970709c2c9e94a5e1aa5f","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        if binding_column in columns:"},{"line_number":52,"context_line":"            columns.remove(binding_column)"},{"line_number":53,"context_line":"            columns.append(binding_column.replace(\u0027binding:\u0027, \u0027binding_\u0027, 1))"},{"line_number":54,"context_line":"    return sorted(columns)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"def _get_attrs(client_manager, parsed_args):"}],"source_content_type":"text/x-python","patch_set":14,"id":"bae84128_31b0afdd","line":54,"range":{"start_line":54,"start_character":11,"end_line":54,"end_character":17},"updated":"2016-02-19 12:52:42.000000000","message":"Hi Jas,\n\nRichard suggested me to ask you for a favor. Please do a change like this in your patch.\n\nhttps://review.openstack.org/#/c/282196/1/openstackclient/network/v2/port.py\n\nI\u0027ll just abandon my patch.\n\nThanks. :)","commit_id":"95bbae039936a90b80f6e9463066310a8a487fe5"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"5f5c0fc39d6cfc387e3573a09b4452a499fc6c26","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        if binding_column in columns:"},{"line_number":52,"context_line":"            columns.remove(binding_column)"},{"line_number":53,"context_line":"            columns.append(binding_column.replace(\u0027binding:\u0027, \u0027binding_\u0027, 1))"},{"line_number":54,"context_line":"    return sorted(columns)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"def _get_attrs(client_manager, parsed_args):"}],"source_content_type":"text/x-python","patch_set":14,"id":"bae84128_8f86acb7","line":54,"range":{"start_line":54,"start_character":11,"end_line":54,"end_character":17},"in_reply_to":"bae84128_31b0afdd","updated":"2016-02-19 16:04:03.000000000","message":"Sure, Tang. I\u0027ll make the change.","commit_id":"95bbae039936a90b80f6e9463066310a8a487fe5"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"7ef84dd12d90b9aeadd5e257e4add708d3576c08","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        if binding_column in columns:"},{"line_number":52,"context_line":"            columns.remove(binding_column)"},{"line_number":53,"context_line":"            columns.append(binding_column.replace(\u0027binding:\u0027, \u0027binding_\u0027, 1))"},{"line_number":54,"context_line":"    return sorted(columns)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"def _get_attrs(client_manager, parsed_args):"}],"source_content_type":"text/x-python","patch_set":14,"id":"bae84128_7c5f9d72","line":54,"range":{"start_line":54,"start_character":11,"end_line":54,"end_character":17},"in_reply_to":"bae84128_8f86acb7","updated":"2016-02-19 17:48:57.000000000","message":"Done","commit_id":"95bbae039936a90b80f6e9463066310a8a487fe5"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"9e5cd057f9a4c8c8a96b52c8de8c48a0ba56c4a5","unresolved":false,"context_lines":[{"line_number":149,"context_line":"    def get_parser(self, prog_name):"},{"line_number":150,"context_line":"        parser \u003d super(CreatePort, self).get_parser(prog_name)"},{"line_number":151,"context_line":"        \"\"\"Create a port for a given network.\"\"\""},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        _add_updatable_args(parser)"},{"line_number":154,"context_line":"        admin_group \u003d parser.add_mutually_exclusive_group()"},{"line_number":155,"context_line":"        admin_group.add_argument("}],"source_content_type":"text/x-python","patch_set":19,"id":"bae84128_d0b10149","line":152,"updated":"2016-02-22 23:52:39.000000000","message":"Please put the arguments in the same order in the docs.  I like what is in the .rst file (with --network first), just make them match...this is so the help output like like the docs as much as possible.","commit_id":"70098dda9de4e7eccc244bad0769aa309ef5e8cc"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"02bacaf231a103bd26db5197aa0f647fa17fd556","unresolved":false,"context_lines":[{"line_number":149,"context_line":"    def get_parser(self, prog_name):"},{"line_number":150,"context_line":"        parser \u003d super(CreatePort, self).get_parser(prog_name)"},{"line_number":151,"context_line":"        \"\"\"Create a port for a given network.\"\"\""},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        _add_updatable_args(parser)"},{"line_number":154,"context_line":"        admin_group \u003d parser.add_mutually_exclusive_group()"},{"line_number":155,"context_line":"        admin_group.add_argument("}],"source_content_type":"text/x-python","patch_set":19,"id":"bae84128_4d6b73f1","line":152,"in_reply_to":"bae84128_d0b10149","updated":"2016-02-23 17:03:43.000000000","message":"Done","commit_id":"70098dda9de4e7eccc244bad0769aa309ef5e8cc"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"d206ed73a2644fbba164de395cd2aea2a5e33570","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            if \u0027subnet\u0027 in ip_dict:"},{"line_number":110,"context_line":"                subnet_name_id \u003d ip_dict[\u0027subnet\u0027]"},{"line_number":111,"context_line":"                if subnet_name_id:"},{"line_number":112,"context_line":"                    _subnet \u003d client.find_subnet(subnet_name_id)"},{"line_number":113,"context_line":"                    if not _subnet:"},{"line_number":114,"context_line":"                        msg \u003d \u0027subnet %s does not exist.\u0027"},{"line_number":115,"context_line":"                        raise exceptions.NotFound(msg % subnet_name_id)"}],"source_content_type":"text/x-python","patch_set":24,"id":"9aed3d3a_45f93ec8","line":112,"updated":"2016-02-25 17:25:46.000000000","message":"Why not use ignore_missing\u003dFalse then you can remove the exception below?","commit_id":"bb9f20bbbabab7ff7e30a008824cdca48bf679b1"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"5195db28e0f9d5356a0481e613f8d0396510b6cd","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            if \u0027subnet\u0027 in ip_dict:"},{"line_number":110,"context_line":"                subnet_name_id \u003d ip_dict[\u0027subnet\u0027]"},{"line_number":111,"context_line":"                if subnet_name_id:"},{"line_number":112,"context_line":"                    _subnet \u003d client.find_subnet(subnet_name_id)"},{"line_number":113,"context_line":"                    if not _subnet:"},{"line_number":114,"context_line":"                        msg \u003d \u0027subnet %s does not exist.\u0027"},{"line_number":115,"context_line":"                        raise exceptions.NotFound(msg % subnet_name_id)"}],"source_content_type":"text/x-python","patch_set":24,"id":"9aed3d3a_513bb2eb","line":112,"in_reply_to":"9aed3d3a_45f93ec8","updated":"2016-02-25 21:45:36.000000000","message":"Done","commit_id":"bb9f20bbbabab7ff7e30a008824cdca48bf679b1"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"c38b53cea977efba9127262ba7f1b7075c7e0507","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        parser.add_argument("},{"line_number":130,"context_line":"            \u0027--fixed-ip\u0027,"},{"line_number":131,"context_line":"            metavar\u003d\u0027subnet\u003d\u003csubnet\u003e,ip-address\u003d\u003cip-address\u003e\u0027,"},{"line_number":132,"context_line":"            action\u003d\u0027append\u0027,"},{"line_number":133,"context_line":"            help\u003d\u0027Desired IP and/or subnet for this port: \u0027"},{"line_number":134,"context_line":"                 \u0027subnet\u003d\u003csubnet\u003e,ip-address\u003d\u003cip-address\u003e \u0027"},{"line_number":135,"context_line":"                 \u0027(you can repeat this option)\u0027)"}],"source_content_type":"text/x-python","patch_set":24,"id":"bae84128_0871440f","line":132,"range":{"start_line":132,"start_character":20,"end_line":132,"end_character":26},"updated":"2016-02-24 01:17:06.000000000","message":"Yes, I mean here we can use MultiKeyValueAction, which will avoid so much redundant code.\n\nhttps://review.openstack.org/#/c/276041/","commit_id":"bb9f20bbbabab7ff7e30a008824cdca48bf679b1"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"ad2f29f8aafb5b9663e608c4a8306d3265cc7ac7","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        parser.add_argument("},{"line_number":130,"context_line":"            \u0027--fixed-ip\u0027,"},{"line_number":131,"context_line":"            metavar\u003d\u0027subnet\u003d\u003csubnet\u003e,ip-address\u003d\u003cip-address\u003e\u0027,"},{"line_number":132,"context_line":"            action\u003d\u0027append\u0027,"},{"line_number":133,"context_line":"            help\u003d\u0027Desired IP and/or subnet for this port: \u0027"},{"line_number":134,"context_line":"                 \u0027subnet\u003d\u003csubnet\u003e,ip-address\u003d\u003cip-address\u003e \u0027"},{"line_number":135,"context_line":"                 \u0027(you can repeat this option)\u0027)"}],"source_content_type":"text/x-python","patch_set":24,"id":"bae84128_f91e700a","line":132,"range":{"start_line":132,"start_character":20,"end_line":132,"end_character":26},"in_reply_to":"bae84128_0871440f","updated":"2016-02-24 02:57:19.000000000","message":"Hey Tang, sure, I can wait to use MultiKeyValueAction. I had previously tested it but thought I would just refactor later on once it was merged. Agreed, it is a more elegant solution.","commit_id":"bb9f20bbbabab7ff7e30a008824cdca48bf679b1"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"0d64af97bbf3d97d04031d9719d55f34f786db09","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        parser.add_argument("},{"line_number":130,"context_line":"            \u0027--fixed-ip\u0027,"},{"line_number":131,"context_line":"            metavar\u003d\u0027subnet\u003d\u003csubnet\u003e,ip-address\u003d\u003cip-address\u003e\u0027,"},{"line_number":132,"context_line":"            action\u003d\u0027append\u0027,"},{"line_number":133,"context_line":"            help\u003d\u0027Desired IP and/or subnet for this port: \u0027"},{"line_number":134,"context_line":"                 \u0027subnet\u003d\u003csubnet\u003e,ip-address\u003d\u003cip-address\u003e \u0027"},{"line_number":135,"context_line":"                 \u0027(you can repeat this option)\u0027)"}],"source_content_type":"text/x-python","patch_set":24,"id":"7af24918_fd02310a","line":132,"range":{"start_line":132,"start_character":20,"end_line":132,"end_character":26},"in_reply_to":"bae84128_f91e700a","updated":"2016-03-02 19:09:03.000000000","message":"Done","commit_id":"bb9f20bbbabab7ff7e30a008824cdca48bf679b1"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"d206ed73a2644fbba164de395cd2aea2a5e33570","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        client \u003d self.app.client_manager.network"},{"line_number":205,"context_line":"        # Get the id of the network from its name."},{"line_number":206,"context_line":"        # If it doesn\u0027t exist, let user know."},{"line_number":207,"context_line":"        _network \u003d client.find_network(parsed_args.network)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        if not _network:"},{"line_number":210,"context_line":"            msg \u003d \"Network name/id not found.\""}],"source_content_type":"text/x-python","patch_set":24,"id":"9aed3d3a_c5feee04","line":207,"updated":"2016-02-25 17:25:46.000000000","message":"Why not use ignore_missing\u003dFalse then you can remove the exception below?","commit_id":"bb9f20bbbabab7ff7e30a008824cdca48bf679b1"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"5195db28e0f9d5356a0481e613f8d0396510b6cd","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        client \u003d self.app.client_manager.network"},{"line_number":205,"context_line":"        # Get the id of the network from its name."},{"line_number":206,"context_line":"        # If it doesn\u0027t exist, let user know."},{"line_number":207,"context_line":"        _network \u003d client.find_network(parsed_args.network)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        if not _network:"},{"line_number":210,"context_line":"            msg \u003d \"Network name/id not found.\""}],"source_content_type":"text/x-python","patch_set":24,"id":"9aed3d3a_d12fc29f","line":207,"in_reply_to":"9aed3d3a_c5feee04","updated":"2016-02-25 21:45:36.000000000","message":"Done","commit_id":"bb9f20bbbabab7ff7e30a008824cdca48bf679b1"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"d206ed73a2644fbba164de395cd2aea2a5e33570","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        columns \u003d _get_columns(obj)"},{"line_number":218,"context_line":"        data \u003d utils.get_item_properties(obj, columns, formatters\u003d_formatters)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        if \u0027tenant_id\u0027 in columns:"},{"line_number":221,"context_line":"            # Rename \"tenant_id\" to \"project_id\"."},{"line_number":222,"context_line":"            index \u003d columns.index(\u0027tenant_id\u0027)"},{"line_number":223,"context_line":"            columns[index] \u003d \u0027project_id\u0027"}],"source_content_type":"text/x-python","patch_set":24,"id":"9aed3d3a_25487a2d","line":220,"updated":"2016-02-25 17:25:46.000000000","message":"This is already done in _get_columns().","commit_id":"bb9f20bbbabab7ff7e30a008824cdca48bf679b1"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"5195db28e0f9d5356a0481e613f8d0396510b6cd","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        columns \u003d _get_columns(obj)"},{"line_number":218,"context_line":"        data \u003d utils.get_item_properties(obj, columns, formatters\u003d_formatters)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        if \u0027tenant_id\u0027 in columns:"},{"line_number":221,"context_line":"            # Rename \"tenant_id\" to \"project_id\"."},{"line_number":222,"context_line":"            index \u003d columns.index(\u0027tenant_id\u0027)"},{"line_number":223,"context_line":"            columns[index] \u003d \u0027project_id\u0027"}],"source_content_type":"text/x-python","patch_set":24,"id":"9aed3d3a_b1031e0f","line":220,"in_reply_to":"9aed3d3a_25487a2d","updated":"2016-02-25 21:45:36.000000000","message":"Thanks. Removed redundancy.","commit_id":"bb9f20bbbabab7ff7e30a008824cdca48bf679b1"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"d206ed73a2644fbba164de395cd2aea2a5e33570","unresolved":false,"context_lines":[{"line_number":221,"context_line":"            # Rename \"tenant_id\" to \"project_id\"."},{"line_number":222,"context_line":"            index \u003d columns.index(\u0027tenant_id\u0027)"},{"line_number":223,"context_line":"            columns[index] \u003d \u0027project_id\u0027"},{"line_number":224,"context_line":"        return (tuple(columns), data)"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"class DeletePort(command.Command):"}],"source_content_type":"text/x-python","patch_set":24,"id":"9aed3d3a_c581ce4f","line":224,"updated":"2016-02-25 17:25:46.000000000","message":"_get_columns already returns a tuple.","commit_id":"bb9f20bbbabab7ff7e30a008824cdca48bf679b1"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"5195db28e0f9d5356a0481e613f8d0396510b6cd","unresolved":false,"context_lines":[{"line_number":221,"context_line":"            # Rename \"tenant_id\" to \"project_id\"."},{"line_number":222,"context_line":"            index \u003d columns.index(\u0027tenant_id\u0027)"},{"line_number":223,"context_line":"            columns[index] \u003d \u0027project_id\u0027"},{"line_number":224,"context_line":"        return (tuple(columns), data)"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"class DeletePort(command.Command):"}],"source_content_type":"text/x-python","patch_set":24,"id":"9aed3d3a_7410644f","line":224,"in_reply_to":"9aed3d3a_c581ce4f","updated":"2016-02-25 21:45:36.000000000","message":"Thanks. Fixed.","commit_id":"bb9f20bbbabab7ff7e30a008824cdca48bf679b1"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f064580bd27f3a48ec5e0648c2a150db705fa769","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    if parsed_args.admin_state is not None:"},{"line_number":68,"context_line":"        attrs[\u0027admin_state_up\u0027] \u003d parsed_args.admin_state"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    # The remaining options do not support \u0027set\u0027, so they require"},{"line_number":71,"context_line":"    # additional check"},{"line_number":72,"context_line":"    if \u0027mac_address\u0027 in parsed_args and parsed_args.mac_address:"},{"line_number":73,"context_line":"        attrs[\u0027mac_address\u0027] \u003d parsed_args.mac_address"}],"source_content_type":"text/x-python","patch_set":25,"id":"9aed3d3a_ec63d73f","line":70,"range":{"start_line":70,"start_character":42,"end_line":70,"end_character":49},"updated":"2016-02-26 17:27:26.000000000","message":"What does this \u0027set\u0027 mean? Do you mean there is a case where a corresponding attribute is not set?\n\nIn OSC, the term \u0027set\u0027 is also used as a command name \"xxxx set\". I am a bit confused.","commit_id":"40c8bb5b5e86238d8bdea1674d192cb5fae8f0cd"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"16024d6b962899551866644d2b69c0a2f736b1f4","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    if parsed_args.admin_state is not None:"},{"line_number":68,"context_line":"        attrs[\u0027admin_state_up\u0027] \u003d parsed_args.admin_state"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    # The remaining options do not support \u0027set\u0027, so they require"},{"line_number":71,"context_line":"    # additional check"},{"line_number":72,"context_line":"    if \u0027mac_address\u0027 in parsed_args and parsed_args.mac_address:"},{"line_number":73,"context_line":"        attrs[\u0027mac_address\u0027] \u003d parsed_args.mac_address"}],"source_content_type":"text/x-python","patch_set":25,"id":"9aed3d3a_caeeaeb3","line":70,"range":{"start_line":70,"start_character":42,"end_line":70,"end_character":49},"in_reply_to":"9aed3d3a_8f08382f","updated":"2016-02-26 17:54:48.000000000","message":"I\u0027ll update the comment in the next set to make this more clear.","commit_id":"40c8bb5b5e86238d8bdea1674d192cb5fae8f0cd"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"f6dcc4649fb26e3aaedb9181beb50353d9b59558","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    if parsed_args.admin_state is not None:"},{"line_number":68,"context_line":"        attrs[\u0027admin_state_up\u0027] \u003d parsed_args.admin_state"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    # The remaining options do not support \u0027set\u0027, so they require"},{"line_number":71,"context_line":"    # additional check"},{"line_number":72,"context_line":"    if \u0027mac_address\u0027 in parsed_args and parsed_args.mac_address:"},{"line_number":73,"context_line":"        attrs[\u0027mac_address\u0027] \u003d parsed_args.mac_address"}],"source_content_type":"text/x-python","patch_set":25,"id":"7af24918_fde1919b","line":70,"range":{"start_line":70,"start_character":42,"end_line":70,"end_character":49},"in_reply_to":"9aed3d3a_9d2fc93d","updated":"2016-03-02 19:09:09.000000000","message":"Done, thanks Akihiro","commit_id":"40c8bb5b5e86238d8bdea1674d192cb5fae8f0cd"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"4abd222c0d54afca80595880f29c5bbacb6055d3","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    if parsed_args.admin_state is not None:"},{"line_number":68,"context_line":"        attrs[\u0027admin_state_up\u0027] \u003d parsed_args.admin_state"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    # The remaining options do not support \u0027set\u0027, so they require"},{"line_number":71,"context_line":"    # additional check"},{"line_number":72,"context_line":"    if \u0027mac_address\u0027 in parsed_args and parsed_args.mac_address:"},{"line_number":73,"context_line":"        attrs[\u0027mac_address\u0027] \u003d parsed_args.mac_address"}],"source_content_type":"text/x-python","patch_set":25,"id":"9aed3d3a_9d2fc93d","line":70,"range":{"start_line":70,"start_character":42,"end_line":70,"end_character":49},"in_reply_to":"9aed3d3a_caeeaeb3","updated":"2016-02-26 19:43:49.000000000","message":"If so, binding:profile attribute is updatable.","commit_id":"40c8bb5b5e86238d8bdea1674d192cb5fae8f0cd"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"24e9953c5e2a00902d192940cf0af171c8c09beb","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    if parsed_args.admin_state is not None:"},{"line_number":68,"context_line":"        attrs[\u0027admin_state_up\u0027] \u003d parsed_args.admin_state"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    # The remaining options do not support \u0027set\u0027, so they require"},{"line_number":71,"context_line":"    # additional check"},{"line_number":72,"context_line":"    if \u0027mac_address\u0027 in parsed_args and parsed_args.mac_address:"},{"line_number":73,"context_line":"        attrs[\u0027mac_address\u0027] \u003d parsed_args.mac_address"}],"source_content_type":"text/x-python","patch_set":25,"id":"9aed3d3a_8f08382f","line":70,"range":{"start_line":70,"start_character":42,"end_line":70,"end_character":49},"in_reply_to":"9aed3d3a_ec63d73f","updated":"2016-02-26 17:50:36.000000000","message":"Hey Akihiro, I meant the 2nd usage that you mentioned. These commands cannot be updated (e.g. do not support xxx set command).","commit_id":"40c8bb5b5e86238d8bdea1674d192cb5fae8f0cd"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f064580bd27f3a48ec5e0648c2a150db705fa769","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            required\u003dTrue,"},{"line_number":155,"context_line":"            help\u003d\u0027Network this port belongs to (name or ID)\u0027)"},{"line_number":156,"context_line":"        _add_updatable_args(parser)"},{"line_number":157,"context_line":"        admin_group \u003d parser.add_mutually_exclusive_group()"},{"line_number":158,"context_line":"        admin_group.add_argument("},{"line_number":159,"context_line":"            \u0027--enable\u0027,"},{"line_number":160,"context_line":"            dest\u003d\u0027admin_state\u0027,"},{"line_number":161,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":162,"context_line":"            default\u003dTrue,"},{"line_number":163,"context_line":"            help\u003d\u0027Enable port (default)\u0027,"},{"line_number":164,"context_line":"        )"},{"line_number":165,"context_line":"        admin_group.add_argument("},{"line_number":166,"context_line":"            \u0027--disable\u0027,"},{"line_number":167,"context_line":"            dest\u003d\u0027admin_state\u0027,"},{"line_number":168,"context_line":"            action\u003d\u0027store_false\u0027,"},{"line_number":169,"context_line":"            help\u003d\u0027Disable port\u0027,"},{"line_number":170,"context_line":"        )"},{"line_number":171,"context_line":"        parser.add_argument("},{"line_number":172,"context_line":"            \u0027--mac-address\u0027,"},{"line_number":173,"context_line":"            metavar\u003d\u0027\u003cmac-address\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":25,"id":"9aed3d3a_b99bca71","line":170,"range":{"start_line":157,"start_character":8,"end_line":170,"end_character":9},"updated":"2016-02-26 17:27:26.000000000","message":"I wonder this can be a common method.","commit_id":"40c8bb5b5e86238d8bdea1674d192cb5fae8f0cd"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"24e9953c5e2a00902d192940cf0af171c8c09beb","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            required\u003dTrue,"},{"line_number":155,"context_line":"            help\u003d\u0027Network this port belongs to (name or ID)\u0027)"},{"line_number":156,"context_line":"        _add_updatable_args(parser)"},{"line_number":157,"context_line":"        admin_group \u003d parser.add_mutually_exclusive_group()"},{"line_number":158,"context_line":"        admin_group.add_argument("},{"line_number":159,"context_line":"            \u0027--enable\u0027,"},{"line_number":160,"context_line":"            dest\u003d\u0027admin_state\u0027,"},{"line_number":161,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":162,"context_line":"            default\u003dTrue,"},{"line_number":163,"context_line":"            help\u003d\u0027Enable port (default)\u0027,"},{"line_number":164,"context_line":"        )"},{"line_number":165,"context_line":"        admin_group.add_argument("},{"line_number":166,"context_line":"            \u0027--disable\u0027,"},{"line_number":167,"context_line":"            dest\u003d\u0027admin_state\u0027,"},{"line_number":168,"context_line":"            action\u003d\u0027store_false\u0027,"},{"line_number":169,"context_line":"            help\u003d\u0027Disable port\u0027,"},{"line_number":170,"context_line":"        )"},{"line_number":171,"context_line":"        parser.add_argument("},{"line_number":172,"context_line":"            \u0027--mac-address\u0027,"},{"line_number":173,"context_line":"            metavar\u003d\u0027\u003cmac-address\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":25,"id":"9aed3d3a_2a063ace","line":170,"range":{"start_line":157,"start_character":8,"end_line":170,"end_character":9},"in_reply_to":"9aed3d3a_b99bca71","updated":"2016-02-26 17:50:36.000000000","message":"The reason it isn\u0027t being reused by both CreatePort and SetPort is because one of them require that you have a \u0027default\u003dTrue\u0027 and the other does not. This is similar to what we do in network.py. Since you mention it however, these will soon be moved to a common file with an effort put forth by Reedip: https://review.openstack.org/#/c/282914/","commit_id":"40c8bb5b5e86238d8bdea1674d192cb5fae8f0cd"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f064580bd27f3a48ec5e0648c2a150db705fa769","unresolved":false,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    def take_action(self, parsed_args):"},{"line_number":202,"context_line":"        client \u003d self.app.client_manager.network"},{"line_number":203,"context_line":"        # Get the id of the network from its name."},{"line_number":204,"context_line":"        # If it doesn\u0027t exist, let user know."},{"line_number":205,"context_line":"        _network \u003d client.find_network(parsed_args.network,"},{"line_number":206,"context_line":"                                       ignore_missing\u003dFalse)"},{"line_number":207,"context_line":"        parsed_args.network \u003d _network.id"}],"source_content_type":"text/x-python","patch_set":25,"id":"9aed3d3a_eca477ba","line":204,"range":{"start_line":203,"start_character":8,"end_line":204,"end_character":45},"updated":"2016-02-26 17:27:26.000000000","message":"Do we need this comment? I think find_xxxx is a common pattern used everywhere, so we can easily know the reason.","commit_id":"40c8bb5b5e86238d8bdea1674d192cb5fae8f0cd"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"24e9953c5e2a00902d192940cf0af171c8c09beb","unresolved":false,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    def take_action(self, parsed_args):"},{"line_number":202,"context_line":"        client \u003d self.app.client_manager.network"},{"line_number":203,"context_line":"        # Get the id of the network from its name."},{"line_number":204,"context_line":"        # If it doesn\u0027t exist, let user know."},{"line_number":205,"context_line":"        _network \u003d client.find_network(parsed_args.network,"},{"line_number":206,"context_line":"                                       ignore_missing\u003dFalse)"},{"line_number":207,"context_line":"        parsed_args.network \u003d _network.id"}],"source_content_type":"text/x-python","patch_set":25,"id":"9aed3d3a_2a2d9a46","line":204,"range":{"start_line":203,"start_character":8,"end_line":204,"end_character":45},"in_reply_to":"9aed3d3a_eca477ba","updated":"2016-02-26 17:50:36.000000000","message":"Sure, I can remove this. Thanks.","commit_id":"40c8bb5b5e86238d8bdea1674d192cb5fae8f0cd"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"79656bc6a95814f4ab49dfcbe1c9ab29885c8c21","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            \u0027--binding-profile\u0027,"},{"line_number":156,"context_line":"            metavar\u003d\u0027\u003cbinding-profile\u003e\u0027,"},{"line_number":157,"context_line":"            action\u003dparseractions.KeyValueAction,"},{"line_number":158,"context_line":"            help\u003d\u0027Custom data to be passed as binding:profile: key\u003d\u003cvalue\u003e \u0027"},{"line_number":159,"context_line":"                 \u0027(this option can be repeated)\u0027)"},{"line_number":160,"context_line":"        parser.add_argument("},{"line_number":161,"context_line":"            \u0027--host-id\u0027,"}],"source_content_type":"text/x-python","patch_set":26,"id":"7af24918_d4474749","line":158,"range":{"start_line":158,"start_character":63,"end_line":158,"end_character":66},"updated":"2016-03-02 21:15:44.000000000","message":"Same comment as for the document.","commit_id":"586dce823daf53e705b45274af6323acd06241bc"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"33a14779231012bd2e35dad9ccf45f5da468d3bf","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            \u0027--binding-profile\u0027,"},{"line_number":156,"context_line":"            metavar\u003d\u0027\u003cbinding-profile\u003e\u0027,"},{"line_number":157,"context_line":"            action\u003dparseractions.KeyValueAction,"},{"line_number":158,"context_line":"            help\u003d\u0027Custom data to be passed as binding:profile: key\u003d\u003cvalue\u003e \u0027"},{"line_number":159,"context_line":"                 \u0027(this option can be repeated)\u0027)"},{"line_number":160,"context_line":"        parser.add_argument("},{"line_number":161,"context_line":"            \u0027--host-id\u0027,"}],"source_content_type":"text/x-python","patch_set":26,"id":"7af24918_112d3e95","line":158,"range":{"start_line":158,"start_character":63,"end_line":158,"end_character":66},"in_reply_to":"7af24918_d4474749","updated":"2016-03-02 21:51:13.000000000","message":"Done","commit_id":"586dce823daf53e705b45274af6323acd06241bc"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"e23c085ddec852736e1551a2bcd8b92809e8fc43","unresolved":false,"context_lines":[{"line_number":57,"context_line":"def _get_attrs(client_manager, parsed_args):"},{"line_number":58,"context_line":"    attrs \u003d {}"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    if parsed_args.name:"},{"line_number":61,"context_line":"        attrs[\u0027name\u0027] \u003d str(parsed_args.name)"},{"line_number":62,"context_line":"    if parsed_args.fixed_ip:"},{"line_number":63,"context_line":"        attrs[\u0027fixed_ips\u0027] \u003d parsed_args.fixed_ip"}],"source_content_type":"text/x-python","patch_set":27,"id":"7af24918_5762cbd8","line":60,"updated":"2016-03-03 21:31:40.000000000","message":"General comment, I think you should check \"if parsed.name is not None:\" to allow empty values to be passed.","commit_id":"69f254828b4e4ba04eeefa510aaf9d18c78f19cd"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"c00ebb4a4b7ce56ca24dd25a36c9c86e143cdfa3","unresolved":false,"context_lines":[{"line_number":57,"context_line":"def _get_attrs(client_manager, parsed_args):"},{"line_number":58,"context_line":"    attrs \u003d {}"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    if parsed_args.name:"},{"line_number":61,"context_line":"        attrs[\u0027name\u0027] \u003d str(parsed_args.name)"},{"line_number":62,"context_line":"    if parsed_args.fixed_ip:"},{"line_number":63,"context_line":"        attrs[\u0027fixed_ips\u0027] \u003d parsed_args.fixed_ip"}],"source_content_type":"text/x-python","patch_set":27,"id":"7af24918_8d4a5b53","line":60,"in_reply_to":"7af24918_5762cbd8","updated":"2016-03-04 15:01:03.000000000","message":"Done","commit_id":"69f254828b4e4ba04eeefa510aaf9d18c78f19cd"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"e23c085ddec852736e1551a2bcd8b92809e8fc43","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"            ips.append(ip_dict)"},{"line_number":123,"context_line":"            # Error on anything other than subnet and ip-address"},{"line_number":124,"context_line":"            if ip_spec:"},{"line_number":125,"context_line":"                msg \u003d \u0027Invalid options for fixed-ip: %s\u0027 % ip_spec.keys()"},{"line_number":126,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":127,"context_line":"    if ips:"}],"source_content_type":"text/x-python","patch_set":27,"id":"7af24918_fc001e36","line":124,"updated":"2016-03-03 21:31:40.000000000","message":"I think you can pass optional_keys with parseractions.MultiKeyValueAction to get the desired result.  Then this check isn\u0027t necessary.","commit_id":"69f254828b4e4ba04eeefa510aaf9d18c78f19cd"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"c00ebb4a4b7ce56ca24dd25a36c9c86e143cdfa3","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"            ips.append(ip_dict)"},{"line_number":123,"context_line":"            # Error on anything other than subnet and ip-address"},{"line_number":124,"context_line":"            if ip_spec:"},{"line_number":125,"context_line":"                msg \u003d \u0027Invalid options for fixed-ip: %s\u0027 % ip_spec.keys()"},{"line_number":126,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":127,"context_line":"    if ips:"}],"source_content_type":"text/x-python","patch_set":27,"id":"7af24918_4d9973c3","line":124,"in_reply_to":"7af24918_fc001e36","updated":"2016-03-04 15:01:03.000000000","message":"Thanks, worked well.","commit_id":"69f254828b4e4ba04eeefa510aaf9d18c78f19cd"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"7747dcbdd8d67854cebc3fe3e6616333a493f163","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        parser.add_argument("},{"line_number":133,"context_line":"            \u0027--fixed-ip\u0027,"},{"line_number":134,"context_line":"            metavar\u003d\u0027subnet\u003d\u003csubnet\u003e,ip-address\u003d\u003cip-address\u003e\u0027,"},{"line_number":135,"context_line":"            action\u003dparseractions.MultiKeyValueAction,"},{"line_number":136,"context_line":"            help\u003d\u0027Desired IP and/or subnet (name or ID) for this port: \u0027"},{"line_number":137,"context_line":"                 \u0027subnet\u003d\u003csubnet\u003e,ip-address\u003d\u003cip-address\u003e \u0027"},{"line_number":138,"context_line":"                 \u0027(this option can be repeated)\u0027)"}],"source_content_type":"text/x-python","patch_set":27,"id":"7af24918_cc3797fd","line":135,"range":{"start_line":135,"start_character":19,"end_line":135,"end_character":53},"updated":"2016-03-04 01:48:52.000000000","message":"Is \"subnet\" a required key, and \"ip-address\" is optional ? \nIf so, you need to add: \nrequired_keys\u003d[\u0027subnet\u0027]\noptional_keys\u003d[\u0027ip-address\u0027]\n\nPlease refer to router.py.\n\nOr either of them provided is OK ?\nIf so, I think we need to improve MultiKeyValueAction, which is not easy...\n\nBut it is OK to handle this in another patch.","commit_id":"69f254828b4e4ba04eeefa510aaf9d18c78f19cd"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"c00ebb4a4b7ce56ca24dd25a36c9c86e143cdfa3","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        parser.add_argument("},{"line_number":133,"context_line":"            \u0027--fixed-ip\u0027,"},{"line_number":134,"context_line":"            metavar\u003d\u0027subnet\u003d\u003csubnet\u003e,ip-address\u003d\u003cip-address\u003e\u0027,"},{"line_number":135,"context_line":"            action\u003dparseractions.MultiKeyValueAction,"},{"line_number":136,"context_line":"            help\u003d\u0027Desired IP and/or subnet (name or ID) for this port: \u0027"},{"line_number":137,"context_line":"                 \u0027subnet\u003d\u003csubnet\u003e,ip-address\u003d\u003cip-address\u003e \u0027"},{"line_number":138,"context_line":"                 \u0027(this option can be repeated)\u0027)"}],"source_content_type":"text/x-python","patch_set":27,"id":"7af24918_2ddb477d","line":135,"range":{"start_line":135,"start_character":19,"end_line":135,"end_character":53},"in_reply_to":"7af24918_cc3797fd","updated":"2016-03-04 15:01:03.000000000","message":"Thanks Tang, it worked well with just 2 optional keys.","commit_id":"69f254828b4e4ba04eeefa510aaf9d18c78f19cd"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"7747dcbdd8d67854cebc3fe3e6616333a493f163","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def get_parser(self, prog_name):"},{"line_number":171,"context_line":"        parser \u003d super(CreatePort, self).get_parser(prog_name)"},{"line_number":172,"context_line":"        \"\"\"Create a port for a given network.\"\"\""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        parser.add_argument("},{"line_number":175,"context_line":"            \u0027--network\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"7af24918_673c9cc8","line":172,"range":{"start_line":172,"start_character":0,"end_line":172,"end_character":48},"updated":"2016-03-04 01:48:52.000000000","message":"Not necessary.","commit_id":"69f254828b4e4ba04eeefa510aaf9d18c78f19cd"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"c00ebb4a4b7ce56ca24dd25a36c9c86e143cdfa3","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def get_parser(self, prog_name):"},{"line_number":171,"context_line":"        parser \u003d super(CreatePort, self).get_parser(prog_name)"},{"line_number":172,"context_line":"        \"\"\"Create a port for a given network.\"\"\""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        parser.add_argument("},{"line_number":175,"context_line":"            \u0027--network\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"7af24918_4dc7b395","line":172,"range":{"start_line":172,"start_character":0,"end_line":172,"end_character":48},"in_reply_to":"7af24918_673c9cc8","updated":"2016-03-04 15:01:03.000000000","message":"Done","commit_id":"69f254828b4e4ba04eeefa510aaf9d18c78f19cd"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ffc0597176282815f3b247206b586ceb6c1411e7","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        parser.add_argument("},{"line_number":144,"context_line":"            \u0027--vnic-type\u0027,"},{"line_number":145,"context_line":"            metavar\u003d\u0027\u003cvnic-type\u003e\u0027,"},{"line_number":146,"context_line":"            choices\u003d[\u0027direct\u0027, \u0027direct-physical\u0027, \u0027macvtap\u0027,"},{"line_number":147,"context_line":"                     \u0027normal\u0027, \u0027baremetal\u0027],"},{"line_number":148,"context_line":"            help\u003d\u0027VNIC type for this port (direct | direct-physical |\u0027"},{"line_number":149,"context_line":"                 \u0027 macvtap | normal(default) | baremetal)\u0027)"},{"line_number":150,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":30,"id":"7af24918_ef165e57","line":147,"range":{"start_line":146,"start_character":12,"end_line":147,"end_character":44},"updated":"2016-03-04 22:26:36.000000000","message":"nice job using choices","commit_id":"d1d4a40808741c416ecc51294fab78138f9184fa"}],"openstackclient/tests/network/v2/test_port.py":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"af527b5c0caf54d2e30ac7888c71198649951e0b","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.assertEqual(self.data, data)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def test_create_full_options(self):"},{"line_number":89,"context_line":"        # Create port: --mac_address mac --device_id deviceid netid."},{"line_number":90,"context_line":"        arglist \u003d ["},{"line_number":91,"context_line":"            \u0027--mac-address\u0027, \u0027aa:aa:aa:aa:aa:aa\u0027,"},{"line_number":92,"context_line":"            \u0027--fixed-ip\u0027, \u0027subnet\u003dfake-subnet,ip_address\u003d10.0.0.2\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a5de9d1_ca7b158b","line":89,"updated":"2016-01-29 16:38:52.000000000","message":"use \u0027-\u0027 in the names","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"16253e19872b1fd511763eb4ed867a023d2ae2bf","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    _port \u003d network_fakes.FakePort.create_one_port()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    columns \u003d ("},{"line_number":36,"context_line":"        \u0027admin_state_up\u0027,"},{"line_number":37,"context_line":"        \u0027allowed_address_pairs\u0027,"},{"line_number":38,"context_line":"        \u0027binding_host_id\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a5ae5dd_b67f0d16","line":35,"updated":"2016-02-05 20:42:48.000000000","message":"Consider a private method for setting up columns and data since this appears to be the same as TestShowPort.","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"11ccf585c77c99033932c5933c76a75abcbd7440","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    _port \u003d network_fakes.FakePort.create_one_port()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    columns \u003d ("},{"line_number":36,"context_line":"        \u0027admin_state_up\u0027,"},{"line_number":37,"context_line":"        \u0027allowed_address_pairs\u0027,"},{"line_number":38,"context_line":"        \u0027binding_host_id\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a57f1b5_d6101751","line":35,"in_reply_to":"5a5ae5dd_b67f0d16","updated":"2016-02-10 04:56:46.000000000","message":"+1","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"b4b7979a716e4d6b40f90fe3a0f5669365c5b515","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    _port \u003d network_fakes.FakePort.create_one_port()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    columns \u003d ("},{"line_number":36,"context_line":"        \u0027admin_state_up\u0027,"},{"line_number":37,"context_line":"        \u0027allowed_address_pairs\u0027,"},{"line_number":38,"context_line":"        \u0027binding_host_id\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"bae84128_03ca90a1","line":35,"in_reply_to":"5a5ae5dd_b67f0d16","updated":"2016-02-19 09:03:39.000000000","message":"Done","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"16253e19872b1fd511763eb4ed867a023d2ae2bf","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        self.network.find_port.assert_called_with(self._port.name,"},{"line_number":270,"context_line":"                                                  ignore_missing\u003dFalse)"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"        self.assertEqual(tuple(self.columns), columns)"},{"line_number":273,"context_line":"        self.assertEqual(self.data, data)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a5ae5dd_16daa14c","line":271,"updated":"2016-02-05 20:42:48.000000000","message":"nit...new line added","commit_id":"82061638d8b7ff4f09eef020333916a9c83719c2"}],"setup.cfg":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"af527b5c0caf54d2e30ac7888c71198649951e0b","unresolved":false,"context_lines":[{"line_number":333,"context_line":"    network_set \u003d openstackclient.network.v2.network:SetNetwork"},{"line_number":334,"context_line":"    network_show \u003d openstackclient.network.v2.network:ShowNetwork"},{"line_number":335,"context_line":"    port_delete \u003d openstackclient.network.v2.port:DeletePort"},{"line_number":336,"context_line":"    port_create \u003d openstackclient.network.v2.port:CreatePort"},{"line_number":337,"context_line":"    router_create \u003d openstackclient.network.v2.router:CreateRouter"},{"line_number":338,"context_line":"    router_delete \u003d openstackclient.network.v2.router:DeleteRouter"},{"line_number":339,"context_line":"    router_list \u003d openstackclient.network.v2.router:ListRouter"}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"7a5de9d1_27054245","line":336,"updated":"2016-01-29 16:38:52.000000000","message":"Sort these properly","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"},{"author":{"_account_id":18658,"name":"Jas Singh","email":"singhj@us.ibm.com","username":"singhj"},"change_message_id":"4101b39ecca297fdd62a6546d5c26fcd6d7f8e2a","unresolved":false,"context_lines":[{"line_number":333,"context_line":"    network_set \u003d openstackclient.network.v2.network:SetNetwork"},{"line_number":334,"context_line":"    network_show \u003d openstackclient.network.v2.network:ShowNetwork"},{"line_number":335,"context_line":"    port_delete \u003d openstackclient.network.v2.port:DeletePort"},{"line_number":336,"context_line":"    port_create \u003d openstackclient.network.v2.port:CreatePort"},{"line_number":337,"context_line":"    router_create \u003d openstackclient.network.v2.router:CreateRouter"},{"line_number":338,"context_line":"    router_delete \u003d openstackclient.network.v2.router:DeleteRouter"},{"line_number":339,"context_line":"    router_list \u003d openstackclient.network.v2.router:ListRouter"}],"source_content_type":"text/x-ttcn-cfg","patch_set":5,"id":"5a5ae5dd_635aa785","line":336,"in_reply_to":"7a5de9d1_27054245","updated":"2016-02-03 21:37:44.000000000","message":"Done","commit_id":"1e2ca07751a2653d2878029e0701665579658e6a"}]}
