)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"f3bd5244c911594ac87b495f89f86f1b92dba3b6","unresolved":false,"context_lines":[{"line_number":21,"context_line":"as well as ability to manipulate flavor to profile associations:"},{"line_number":22,"context_line":"  flavor-associate"},{"line_number":23,"context_line":"  flavor-disassociate"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Bump up unit test coverage."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: I0d73c8de223659071eb305d8bd1c699aefaeeb89"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa1b9901_8971a978","line":24,"updated":"2015-08-20 04:52:36.000000000","message":"Add \"DocImpact\" and \"APIImpact\" tags.","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"1fc916263a49f34525af925f109b26e531b50bff","unresolved":false,"context_lines":[{"line_number":21,"context_line":"as well as ability to manipulate flavor to profile associations:"},{"line_number":22,"context_line":"  flavor-associate"},{"line_number":23,"context_line":"  flavor-disassociate"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Bump up unit test coverage."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: I0d73c8de223659071eb305d8bd1c699aefaeeb89"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa1b9901_b205d811","line":24,"in_reply_to":"fa1b9901_8971a978","updated":"2015-08-20 18:02:42.000000000","message":"Done","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"}],"neutronclient/neutron/v2_0/flavor/flavor.py":[{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"f3bd5244c911594ac87b495f89f86f1b92dba3b6","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from neutronclient.neutron import v2_0 as neutronV20"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class ListFlavor(neutronV20.ListCommand):"},{"line_number":24,"context_line":"    \"\"\"List Neutron service flavors.\"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    resource \u003d \u0027flavor\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_29b73d3b","line":23,"updated":"2015-08-20 04:52:36.000000000","message":"You don\u0027t need \"pagination_support\" and \"sorting_support\"?","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"1fc916263a49f34525af925f109b26e531b50bff","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from neutronclient.neutron import v2_0 as neutronV20"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class ListFlavor(neutronV20.ListCommand):"},{"line_number":24,"context_line":"    \"\"\"List Neutron service flavors.\"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    resource \u003d \u0027flavor\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_32da28e9","line":23,"in_reply_to":"fa1b9901_29b73d3b","updated":"2015-08-20 18:02:42.000000000","message":"Did not test pagination in first go-around, as have to enable in neutron.conf, but pagination in general is a good practice so went ahead and enabled/tested both pagination and sorting.  BTW Neutron itself gives no feedback when configuration disabled, resulting in misleading user behavior where the pagination/sort keys are accepted without comment but the results do not match - not going to solve here but worth noting..","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"f3bd5244c911594ac87b495f89f86f1b92dba3b6","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    \"\"\"List Neutron service flavors.\"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    resource \u003d \u0027flavor\u0027"},{"line_number":27,"context_line":"    list_columns \u003d [\u0027id\u0027, \u0027service_type\u0027, \u0027name\u0027, \u0027description\u0027, \u0027enabled\u0027]"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class ShowFlavor(neutronV20.ShowCommand):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_a6e5baa4","line":27,"updated":"2015-08-20 04:52:36.000000000","message":"IMHO, we can just list the mandatory attributes and then one use the show cmd for getting the details.","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"1fc916263a49f34525af925f109b26e531b50bff","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    \"\"\"List Neutron service flavors.\"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    resource \u003d \u0027flavor\u0027"},{"line_number":27,"context_line":"    list_columns \u003d [\u0027id\u0027, \u0027service_type\u0027, \u0027name\u0027, \u0027description\u0027, \u0027enabled\u0027]"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class ShowFlavor(neutronV20.ShowCommand):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_58d01dc9","line":27,"in_reply_to":"fa1b9901_a6e5baa4","updated":"2015-08-20 18:02:42.000000000","message":"Id and name are mandatory, service_type and the enabled flag are set by default if not overridden so communicate essential info.  Description is debatable and truly optional but was show in original wiki spec.  Some neutron apis show description (ex: meter-label-list), some do not (ex: security-group-list).  Removed description","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"f3bd5244c911594ac87b495f89f86f1b92dba3b6","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            \u0027--description\u0027,"},{"line_number":47,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"},{"line_number":48,"context_line":"        parser.add_argument("},{"line_number":49,"context_line":"            \u0027--service_type\u0027,"},{"line_number":50,"context_line":"            default\u003d\u0027LOADBALANCER\u0027,"},{"line_number":51,"context_line":"            help\u003d_(\u0027Service type the flavor applies to \u0027"},{"line_number":52,"context_line":"                   \u0027(default %(default)s).\u0027))"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_c6d30ed4","line":49,"updated":"2015-08-20 04:52:36.000000000","message":"How about defining this as a choice?","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"1fc916263a49f34525af925f109b26e531b50bff","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            \u0027--description\u0027,"},{"line_number":47,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"},{"line_number":48,"context_line":"        parser.add_argument("},{"line_number":49,"context_line":"            \u0027--service_type\u0027,"},{"line_number":50,"context_line":"            default\u003d\u0027LOADBALANCER\u0027,"},{"line_number":51,"context_line":"            help\u003d_(\u0027Service type the flavor applies to \u0027"},{"line_number":52,"context_line":"                   \u0027(default %(default)s).\u0027))"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_3b7be329","line":49,"in_reply_to":"fa1b9901_c6d30ed4","updated":"2015-08-20 18:02:42.000000000","message":"Had choice in first go-around, but ultimately to me should be a server-side control not a client-side filter to allow dynamic configuration (ex: defined on server side in neutron plugins constants.py, and server controls when VPN or FIREWALL or others appear.)  Setting a default on client side makes sense (protects against unexpected behavior if server-side default changes), but not allowable set IMHO.","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"f3bd5244c911594ac87b495f89f86f1b92dba3b6","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                               [\u0027name\u0027,"},{"line_number":65,"context_line":"                                \u0027description\u0027,"},{"line_number":66,"context_line":"                                \u0027service_type\u0027,"},{"line_number":67,"context_line":"                                \u0027enabled\u0027])"},{"line_number":68,"context_line":"        return body"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_e6c89224","line":67,"updated":"2015-08-20 04:52:36.000000000","message":"The default value for \"enabled\" should be true but I couldn\u0027t find the code for the same.","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"1fc916263a49f34525af925f109b26e531b50bff","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                               [\u0027name\u0027,"},{"line_number":65,"context_line":"                                \u0027description\u0027,"},{"line_number":66,"context_line":"                                \u0027service_type\u0027,"},{"line_number":67,"context_line":"                                \u0027enabled\u0027])"},{"line_number":68,"context_line":"        return body"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_e11ff8b4","line":67,"in_reply_to":"fa1b9901_e6c89224","updated":"2015-08-20 18:02:42.000000000","message":"Argparse booleans default to opposite of action.  No need to clutter with another explicit set, similar to admin_state in agent or network.","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"62f984f85721130f4cb97cebe30d26f1dab0dffd","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    \"\"\"List Neutron service flavors.\"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    resource \u003d \u0027flavor\u0027"},{"line_number":27,"context_line":"    list_columns \u003d [\u0027id\u0027, \u0027service_type\u0027, \u0027name\u0027, \u0027enabled\u0027]"},{"line_number":28,"context_line":"    pagination_support \u003d True"},{"line_number":29,"context_line":"    sorting_support \u003d True"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_51ad9399","line":27,"updated":"2015-08-25 15:56:23.000000000","message":"IMHO, name should be placed after \u0027id\u0027.","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"ab62d4bb67e26e5169a3f6419b9ba0e82c6e2f16","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    \"\"\"List Neutron service flavors.\"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    resource \u003d \u0027flavor\u0027"},{"line_number":27,"context_line":"    list_columns \u003d [\u0027id\u0027, \u0027service_type\u0027, \u0027name\u0027, \u0027enabled\u0027]"},{"line_number":28,"context_line":"    pagination_support \u003d True"},{"line_number":29,"context_line":"    sorting_support \u003d True"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_fb14c044","line":27,"in_reply_to":"fa1b9901_51ad9399","updated":"2015-08-25 21:31:57.000000000","message":"Done","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"62f984f85721130f4cb97cebe30d26f1dab0dffd","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            \u0027--description\u0027,"},{"line_number":49,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"},{"line_number":50,"context_line":"        parser.add_argument("},{"line_number":51,"context_line":"            \u0027--service_type\u0027,"},{"line_number":52,"context_line":"            default\u003d\u0027LOADBALANCER\u0027,"},{"line_number":53,"context_line":"            help\u003d_(\u0027Service type the flavor applies to \u0027"},{"line_number":54,"context_line":"                   \u0027(default %(default)s).\u0027))"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_910b2bd6","line":51,"updated":"2015-08-25 15:56:23.000000000","message":"Is service type optional? What happens when the user just specify the name? Will it be acceptable?","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"ab62d4bb67e26e5169a3f6419b9ba0e82c6e2f16","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            \u0027--description\u0027,"},{"line_number":49,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"},{"line_number":50,"context_line":"        parser.add_argument("},{"line_number":51,"context_line":"            \u0027--service_type\u0027,"},{"line_number":52,"context_line":"            default\u003d\u0027LOADBALANCER\u0027,"},{"line_number":53,"context_line":"            help\u003d_(\u0027Service type the flavor applies to \u0027"},{"line_number":54,"context_line":"                   \u0027(default %(default)s).\u0027))"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_34b1ed01","line":51,"in_reply_to":"fa1b9901_910b2bd6","updated":"2015-08-25 21:31:57.000000000","message":"Yes, this argument is optional.  The default is used if not specified.","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"62f984f85721130f4cb97cebe30d26f1dab0dffd","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            \u0027--disabled\u0027,"},{"line_number":57,"context_line":"            dest\u003d\u0027enabled\u0027,"},{"line_number":58,"context_line":"            action\u003d\u0027store_false\u0027,"},{"line_number":59,"context_line":"            help\u003d_(\u0027Set enabled to False (default is True)\u0027))"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def args2body(self, parsed_args):"},{"line_number":62,"context_line":"        body \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_51f593ea","line":59,"updated":"2015-08-25 15:56:23.000000000","message":"To the user the displayed argument is \"disabled\" but the help says \"Set enabled to False\" This is confusing.","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"ab62d4bb67e26e5169a3f6419b9ba0e82c6e2f16","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            \u0027--disabled\u0027,"},{"line_number":57,"context_line":"            dest\u003d\u0027enabled\u0027,"},{"line_number":58,"context_line":"            action\u003d\u0027store_false\u0027,"},{"line_number":59,"context_line":"            help\u003d_(\u0027Set enabled to False (default is True)\u0027))"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def args2body(self, parsed_args):"},{"line_number":62,"context_line":"        body \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_5855afbf","line":59,"in_reply_to":"fa1b9901_51f593ea","updated":"2015-08-25 21:31:57.000000000","message":"Enabled is the field that shows up in the list/show commands and sets that command field to false as visible to the user.  Disable is a standard flag for specifying this.  See for example https://wiki.openstack.org/wiki/OpenStackClient/Commands#Actions common options.  Changed to \"--disable\" from \"--disabled\", add \"--enable\" as mutually exclusive flag and updated help to be consistent.","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"62f984f85721130f4cb97cebe30d26f1dab0dffd","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            \u0027--disabled\u0027,"},{"line_number":95,"context_line":"            dest\u003d\u0027enabled\u0027,"},{"line_number":96,"context_line":"            action\u003d\u0027store_false\u0027,"},{"line_number":97,"context_line":"            help\u003d_(\u0027Set enabled to False (default is True)\u0027))"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def args2body(self, parsed_args):"},{"line_number":100,"context_line":"        body \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_111f1b09","line":97,"updated":"2015-08-25 15:56:23.000000000","message":"ditto.","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"ab62d4bb67e26e5169a3f6419b9ba0e82c6e2f16","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            \u0027--disabled\u0027,"},{"line_number":95,"context_line":"            dest\u003d\u0027enabled\u0027,"},{"line_number":96,"context_line":"            action\u003d\u0027store_false\u0027,"},{"line_number":97,"context_line":"            help\u003d_(\u0027Set enabled to False (default is True)\u0027))"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def args2body(self, parsed_args):"},{"line_number":100,"context_line":"        body \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_1b8bb1c4","line":97,"in_reply_to":"fa1b9901_111f1b09","updated":"2015-08-25 21:31:57.000000000","message":"See above.","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"1541e69cd93b184d564722863c967dcd39a5b982","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"},{"line_number":50,"context_line":"        parser.add_argument("},{"line_number":51,"context_line":"            \u0027--service_type\u0027,"},{"line_number":52,"context_line":"            default\u003d\u0027LOADBALANCER\u0027,"},{"line_number":53,"context_line":"            help\u003d_(\u0027Service type the flavor applies to \u0027"},{"line_number":54,"context_line":"                   \u0027(default %(default)s).\u0027))"},{"line_number":55,"context_line":"        group \u003d parser.add_mutually_exclusive_group()"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_7bf237d4","line":52,"updated":"2015-08-27 17:48:32.000000000","message":"any reason why this is the right default?","commit_id":"912cf952ae773153e97128cdd0bbb3b427fe28af"},{"author":{"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},"change_message_id":"ddbf9086c1b3ed22b53f5b83721561682ac1fd00","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"},{"line_number":50,"context_line":"        parser.add_argument("},{"line_number":51,"context_line":"            \u0027--service_type\u0027,"},{"line_number":52,"context_line":"            default\u003d\u0027LOADBALANCER\u0027,"},{"line_number":53,"context_line":"            help\u003d_(\u0027Service type the flavor applies to \u0027"},{"line_number":54,"context_line":"                   \u0027(default %(default)s).\u0027))"},{"line_number":55,"context_line":"        group \u003d parser.add_mutually_exclusive_group()"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_83e8fd11","line":52,"in_reply_to":"da20952f_7bf237d4","updated":"2015-08-27 19:33:35.000000000","message":"I\u0027d go so far as to say that this shouldn\u0027t have a default. In a follow-up is fine by me, though.","commit_id":"912cf952ae773153e97128cdd0bbb3b427fe28af"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"590f249c2713099c2a9dd54d5cbb4ffac42710ef","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def add_known_arguments(self, parser):"},{"line_number":93,"context_line":"        parser.add_argument("},{"line_number":94,"context_line":"            \u0027--name\u0027,"},{"line_number":95,"context_line":"            help\u003d_(\u0027Name for the flavor.\u0027))"},{"line_number":96,"context_line":"        parser.add_argument("},{"line_number":97,"context_line":"            \u0027--description\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_2c8a54c0","line":94,"updated":"2015-08-27 13:50:59.000000000","message":"arguments for create and update are almost same. How about defining a function for the common part?","commit_id":"912cf952ae773153e97128cdd0bbb3b427fe28af"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"d2a7feca882da07e8e8d1606beae90099de7a56d","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    def add_known_arguments(self, parser):"},{"line_number":93,"context_line":"        parser.add_argument("},{"line_number":94,"context_line":"            \u0027--name\u0027,"},{"line_number":95,"context_line":"            help\u003d_(\u0027Name for the flavor.\u0027))"},{"line_number":96,"context_line":"        parser.add_argument("},{"line_number":97,"context_line":"            \u0027--description\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_a3bae108","line":94,"in_reply_to":"da20952f_2c8a54c0","updated":"2015-08-27 19:36:26.000000000","message":"it sounds more trouble than it\u0027s worth.","commit_id":"912cf952ae773153e97128cdd0bbb3b427fe28af"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"641849d6ebdd0510f4fde375442dafddc556275d","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def args2body(self, parsed_args):"},{"line_number":105,"context_line":"        body \u003d {"},{"line_number":106,"context_line":"            self.resource: {},"},{"line_number":107,"context_line":"        }"},{"line_number":108,"context_line":"        neutronV20.update_dict(parsed_args, body[self.resource],"},{"line_number":109,"context_line":"                               [\u0027name\u0027, \u0027description\u0027, \u0027enabled\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_54c3bd38","line":106,"updated":"2015-10-01 15:44:56.000000000","message":"Please make the changes are consistent as:\n\nhttps://review.openstack.org/#/c/228352/\n\nhttps://review.openstack.org/#/c/228353/","commit_id":"45f0e40078cbc039dd690ae43f54f9631f593631"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"c76953851056b67c03293b3f53956dfc182a5bb2","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def args2body(self, parsed_args):"},{"line_number":105,"context_line":"        body \u003d {"},{"line_number":106,"context_line":"            self.resource: {},"},{"line_number":107,"context_line":"        }"},{"line_number":108,"context_line":"        neutronV20.update_dict(parsed_args, body[self.resource],"},{"line_number":109,"context_line":"                               [\u0027name\u0027, \u0027description\u0027, \u0027enabled\u0027])"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a2fa921_86321af1","line":106,"in_reply_to":"9a1a9d01_54c3bd38","updated":"2015-10-07 23:38:50.000000000","message":"Made body statements consistent with 228352.  Did not have multiple if statement issue in 22853 as already using just update_dict.","commit_id":"45f0e40078cbc039dd690ae43f54f9631f593631"},{"author":{"_account_id":7244,"name":"Victor Howard","email":"victor.r.howard@gmail.com","username":"vichoward"},"change_message_id":"944c99ba1f07c7997e4d86c1c380a42a60d3cd48","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        }"},{"line_number":108,"context_line":"        neutronV20.update_dict(parsed_args, body[self.resource],"},{"line_number":109,"context_line":"                               [\u0027name\u0027, \u0027description\u0027, \u0027enabled\u0027])"},{"line_number":110,"context_line":"        return body"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"class AssociateFlavor(neutronV20.NeutronCommand):"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a2fa921_d0ee8fb3","line":110,"updated":"2015-10-07 20:45:31.000000000","message":"are we missing service_type from the update or should that not be an updatable field?","commit_id":"45f0e40078cbc039dd690ae43f54f9631f593631"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"c76953851056b67c03293b3f53956dfc182a5bb2","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        }"},{"line_number":108,"context_line":"        neutronV20.update_dict(parsed_args, body[self.resource],"},{"line_number":109,"context_line":"                               [\u0027name\u0027, \u0027description\u0027, \u0027enabled\u0027])"},{"line_number":110,"context_line":"        return body"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"class AssociateFlavor(neutronV20.NeutronCommand):"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a2fa921_06a36a01","line":110,"in_reply_to":"7a2fa921_d0ee8fb3","updated":"2015-10-07 23:38:50.000000000","message":"That field was not set to not update at the server, i.e. \u0027allow_put\u0027: False.  So CLI mirrors that behavior.  If we change the server, can revisit.","commit_id":"45f0e40078cbc039dd690ae43f54f9631f593631"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"49b84f4ac0260c6de89dba748039d106e34b3309","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"#"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from __future__ import print_function"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a2fa921_a3effde7","line":15,"updated":"2015-10-08 06:52:47.000000000","message":"Last \u0027#\u0027 is not required. Please remove.","commit_id":"adcae75a8a15159989b5076e9c3ff51fbb4e312e"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"35b6692ed55663020b13313d7d3e1d74e51509de","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"#"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from __future__ import print_function"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a2fa921_9976dbd5","line":15,"in_reply_to":"7a2fa921_a3effde7","updated":"2015-10-08 17:08:55.000000000","message":"Done.","commit_id":"adcae75a8a15159989b5076e9c3ff51fbb4e312e"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"49b84f4ac0260c6de89dba748039d106e34b3309","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"},{"line_number":65,"context_line":"        parser.add_argument("},{"line_number":66,"context_line":"            \u0027--service_type\u0027,"},{"line_number":67,"context_line":"            help\u003d_(\u0027Service type the flavor applies to.\u0027))"},{"line_number":68,"context_line":"        _add_enable_disable_flavor_group(parser)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def args2body(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a2fa921_03203147","line":67,"updated":"2015-10-08 06:52:47.000000000","message":"What a \u0027service_type\u0027 will look like as? It will be better if you can sight an example in the help message?","commit_id":"adcae75a8a15159989b5076e9c3ff51fbb4e312e"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"35b6692ed55663020b13313d7d3e1d74e51509de","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"},{"line_number":65,"context_line":"        parser.add_argument("},{"line_number":66,"context_line":"            \u0027--service_type\u0027,"},{"line_number":67,"context_line":"            help\u003d_(\u0027Service type the flavor applies to.\u0027))"},{"line_number":68,"context_line":"        _add_enable_disable_flavor_group(parser)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def args2body(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a2fa921_e77ac187","line":67,"in_reply_to":"7a2fa921_03203147","updated":"2015-10-08 17:08:55.000000000","message":"Adding example (VPN) and also referring to existing command \u0027neutron service-provider-list\u0027 that lists the currently loaded provider service types.\n\nCannot simple enum on client side since loaded set varies based on Neutron config - for example, may have LOADBALANCERV2 instead of LOADBALANCER or no loaded FIREWALL or some other service type I haven\u0027t thought of.  The server validates against the loaded set.","commit_id":"adcae75a8a15159989b5076e9c3ff51fbb4e312e"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"49b84f4ac0260c6de89dba748039d106e34b3309","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    def add_known_arguments(self, parser):"},{"line_number":94,"context_line":"        parser.add_argument("},{"line_number":95,"context_line":"            \u0027--name\u0027,"},{"line_number":96,"context_line":"            help\u003d_(\u0027Name for the flavor.\u0027))"},{"line_number":97,"context_line":"        parser.add_argument("},{"line_number":98,"context_line":"            \u0027--description\u0027,"},{"line_number":99,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a2fa921_23c8cda7","line":96,"updated":"2015-10-08 06:52:47.000000000","message":"We only accept \u0027name\u0027? No ID will be accepted?\n\nI feel the help should be : \"help\u003d_(\u0027ID or Name for the flavor.\u0027)\"","commit_id":"adcae75a8a15159989b5076e9c3ff51fbb4e312e"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"35b6692ed55663020b13313d7d3e1d74e51509de","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    def add_known_arguments(self, parser):"},{"line_number":94,"context_line":"        parser.add_argument("},{"line_number":95,"context_line":"            \u0027--name\u0027,"},{"line_number":96,"context_line":"            help\u003d_(\u0027Name for the flavor.\u0027))"},{"line_number":97,"context_line":"        parser.add_argument("},{"line_number":98,"context_line":"            \u0027--description\u0027,"},{"line_number":99,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a2fa921_c4c78696","line":96,"in_reply_to":"7a2fa921_23c8cda7","updated":"2015-10-08 17:08:55.000000000","message":"This is an update command, and this parameter is updating the name only - the user is not able to update the ID.  This is not the UpdateCommand positional target, which takes the target ID or name.and is documented as \u0027ID or name of flavor to update.\"","commit_id":"adcae75a8a15159989b5076e9c3ff51fbb4e312e"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"49b84f4ac0260c6de89dba748039d106e34b3309","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    def args2body(self, parsed_args):"},{"line_number":103,"context_line":"        body \u003d {}"},{"line_number":104,"context_line":"        neutronV20.update_dict(parsed_args, body,"},{"line_number":105,"context_line":"                               [\u0027name\u0027, \u0027description\u0027, \u0027enabled\u0027])"},{"line_number":106,"context_line":"        return {self.resource: body}"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a2fa921_e34df53e","line":105,"updated":"2015-10-08 06:52:47.000000000","message":"Could not find \u0027enabled\u0027 in \u0027def add_known_arguments(self, parser):\u0027 .. Where this option is being added?","commit_id":"adcae75a8a15159989b5076e9c3ff51fbb4e312e"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"35b6692ed55663020b13313d7d3e1d74e51509de","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    def args2body(self, parsed_args):"},{"line_number":103,"context_line":"        body \u003d {}"},{"line_number":104,"context_line":"        neutronV20.update_dict(parsed_args, body,"},{"line_number":105,"context_line":"                               [\u0027name\u0027, \u0027description\u0027, \u0027enabled\u0027])"},{"line_number":106,"context_line":"        return {self.resource: body}"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a2fa921_c40c66ee","line":105,"in_reply_to":"7a2fa921_e34df53e","updated":"2015-10-08 17:08:55.000000000","message":"In the _add_enable_disable_flavor_group method, which uses an exclusion group to allow either --enable or --disable but not both.","commit_id":"adcae75a8a15159989b5076e9c3ff51fbb4e312e"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"49b84f4ac0260c6de89dba748039d106e34b3309","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            help\u003d_(\u0027Name or ID of the flavor to associate.\u0027))"},{"line_number":120,"context_line":"        parser.add_argument("},{"line_number":121,"context_line":"            \u0027service_profile\u0027,"},{"line_number":122,"context_line":"            help\u003d_(\u0027ID of the service profile to be associated with the \u0027"},{"line_number":123,"context_line":"                   \u0027flavor.\u0027))"},{"line_number":124,"context_line":"        return parser"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a2fa921_034b512b","line":122,"updated":"2015-10-08 06:52:47.000000000","message":"We don\u0027t accept service_profile name? IMO, names are friendly.","commit_id":"adcae75a8a15159989b5076e9c3ff51fbb4e312e"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"35b6692ed55663020b13313d7d3e1d74e51509de","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            help\u003d_(\u0027Name or ID of the flavor to associate.\u0027))"},{"line_number":120,"context_line":"        parser.add_argument("},{"line_number":121,"context_line":"            \u0027service_profile\u0027,"},{"line_number":122,"context_line":"            help\u003d_(\u0027ID of the service profile to be associated with the \u0027"},{"line_number":123,"context_line":"                   \u0027flavor.\u0027))"},{"line_number":124,"context_line":"        return parser"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a2fa921_04dfbe0d","line":122,"in_reply_to":"7a2fa921_034b512b","updated":"2015-10-08 17:08:55.000000000","message":"The base flavor service profile doesn\u0027t have name at this time, so not in the CLI.  See the official rst or http://specs.openstack.org/openstack/neutron-specs/specs/kilo/neutron-flavor-framework.html.  Agreed that a name is more friendly, but needs to change in server first.","commit_id":"adcae75a8a15159989b5076e9c3ff51fbb4e312e"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"49b84f4ac0260c6de89dba748039d106e34b3309","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        neutron_client.associate_flavor(flavor_id, body)"},{"line_number":135,"context_line":"        print((_(\u0027Associated flavor %(flavor)s with profile %(profile)s\u0027) %"},{"line_number":136,"context_line":"               {\u0027flavor\u0027: parsed_args.flavor,"},{"line_number":137,"context_line":"                \u0027profile\u0027: parsed_args.service_profile}),"},{"line_number":138,"context_line":"              file\u003dself.app.stdout)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a2fa921_c31559e5","line":137,"updated":"2015-10-08 06:52:47.000000000","message":"Can we use \u0027service_profile\u0027 instead of \u0027profile\u0027 to be consistent?","commit_id":"adcae75a8a15159989b5076e9c3ff51fbb4e312e"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"35b6692ed55663020b13313d7d3e1d74e51509de","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        neutron_client.associate_flavor(flavor_id, body)"},{"line_number":135,"context_line":"        print((_(\u0027Associated flavor %(flavor)s with profile %(profile)s\u0027) %"},{"line_number":136,"context_line":"               {\u0027flavor\u0027: parsed_args.flavor,"},{"line_number":137,"context_line":"                \u0027profile\u0027: parsed_args.service_profile}),"},{"line_number":138,"context_line":"              file\u003dself.app.stdout)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a2fa921_44c29635","line":137,"in_reply_to":"7a2fa921_c31559e5","updated":"2015-10-08 17:08:55.000000000","message":"Done","commit_id":"adcae75a8a15159989b5076e9c3ff51fbb4e312e"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"49b84f4ac0260c6de89dba748039d106e34b3309","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            help\u003d_(\u0027Name or ID of the flavor.\u0027))"},{"line_number":152,"context_line":"        parser.add_argument("},{"line_number":153,"context_line":"            \u0027service_profile\u0027,"},{"line_number":154,"context_line":"            help\u003d_(\u0027ID of the service profile to be disassociated from the \u0027"},{"line_number":155,"context_line":"                   \u0027flavor.\u0027))"},{"line_number":156,"context_line":"        return parser"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a2fa921_a36a9d7f","line":154,"updated":"2015-10-08 06:52:47.000000000","message":"We don\u0027t accept service_profile name? IMO, names are friendly.","commit_id":"adcae75a8a15159989b5076e9c3ff51fbb4e312e"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"35b6692ed55663020b13313d7d3e1d74e51509de","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            help\u003d_(\u0027Name or ID of the flavor.\u0027))"},{"line_number":152,"context_line":"        parser.add_argument("},{"line_number":153,"context_line":"            \u0027service_profile\u0027,"},{"line_number":154,"context_line":"            help\u003d_(\u0027ID of the service profile to be disassociated from the \u0027"},{"line_number":155,"context_line":"                   \u0027flavor.\u0027))"},{"line_number":156,"context_line":"        return parser"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a2fa921_c480e6c1","line":154,"in_reply_to":"7a2fa921_a36a9d7f","updated":"2015-10-08 17:08:55.000000000","message":"See above - no name in official spec or server side at this time.  But can argue that rst should be updated, server side fixed, then the CLI can add.","commit_id":"adcae75a8a15159989b5076e9c3ff51fbb4e312e"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"49b84f4ac0260c6de89dba748039d106e34b3309","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        neutron_client.disassociate_flavor(flavor_id, service_profile_id)"},{"line_number":166,"context_line":"        print((_(\u0027Disassociated flavor %(flavor)s from profile %(profile)s\u0027) %"},{"line_number":167,"context_line":"               {\u0027flavor\u0027: parsed_args.flavor,"},{"line_number":168,"context_line":"                \u0027profile\u0027: parsed_args.service_profile}),"},{"line_number":169,"context_line":"              file\u003dself.app.stdout)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a2fa921_03f911c7","line":168,"updated":"2015-10-08 06:52:47.000000000","message":"Can we use \u0027service_profile\u0027 instead of \u0027profile\u0027 to be consistent?","commit_id":"adcae75a8a15159989b5076e9c3ff51fbb4e312e"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"35b6692ed55663020b13313d7d3e1d74e51509de","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        neutron_client.disassociate_flavor(flavor_id, service_profile_id)"},{"line_number":166,"context_line":"        print((_(\u0027Disassociated flavor %(flavor)s from profile %(profile)s\u0027) %"},{"line_number":167,"context_line":"               {\u0027flavor\u0027: parsed_args.flavor,"},{"line_number":168,"context_line":"                \u0027profile\u0027: parsed_args.service_profile}),"},{"line_number":169,"context_line":"              file\u003dself.app.stdout)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a2fa921_846f4e2a","line":168,"in_reply_to":"7a2fa921_03f911c7","updated":"2015-10-08 17:08:55.000000000","message":"Done","commit_id":"adcae75a8a15159989b5076e9c3ff51fbb4e312e"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"c03061188d7065fdd04d42232509f96eb90f1667","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"},{"line_number":64,"context_line":"        parser.add_argument("},{"line_number":65,"context_line":"            \u0027--service_type\u0027,"},{"line_number":66,"context_line":"            help\u003d_(\u0027Service type such as VPN the flavor applies to. \u0027"},{"line_number":67,"context_line":"                   \u0027(See service-provider-list for loaded examples.)\u0027))"},{"line_number":68,"context_line":"        _add_enable_disable_flavor_group(parser)"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"3a29b11f_2d49108c","line":66,"updated":"2015-10-19 06:57:53.000000000","message":"Can this be changed as ¨Service type to which the flavor applies to, eg. VPN¨\nWould be a bit more easier to understand for developers whose second/third language is English...\nOtherwise its ok","commit_id":"a094b3c7486b59f9cca663fd09298149037a6b56"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"0dad65b7fff2c777a10143c68a8e34c6fe91fff3","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    def args2body(self, parsed_args):"},{"line_number":71,"context_line":"        body \u003d {}"},{"line_number":72,"context_line":"        neutronV20.update_dict(parsed_args, body,"},{"line_number":73,"context_line":"                               [\u0027name\u0027,"},{"line_number":74,"context_line":"                                \u0027description\u0027,"},{"line_number":75,"context_line":"                                \u0027service_type\u0027,"},{"line_number":76,"context_line":"                                \u0027enabled\u0027])"}],"source_content_type":"text/x-python","patch_set":12,"id":"3a29b11f_864b6159","line":73,"updated":"2015-10-19 07:59:55.000000000","message":"nit: unnecessary new lines.","commit_id":"a094b3c7486b59f9cca663fd09298149037a6b56"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"0dad65b7fff2c777a10143c68a8e34c6fe91fff3","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    def add_known_arguments(self, parser):"},{"line_number":94,"context_line":"        parser.add_argument("},{"line_number":95,"context_line":"            \u0027--name\u0027,"},{"line_number":96,"context_line":"            help\u003d_(\u0027Name for the flavor.\u0027))"},{"line_number":97,"context_line":"        parser.add_argument("},{"line_number":98,"context_line":"            \u0027--description\u0027,"},{"line_number":99,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"}],"source_content_type":"text/x-python","patch_set":12,"id":"3a29b11f_4674699b","line":96,"updated":"2015-10-19 07:59:55.000000000","message":"You won\u0027t accept ID? Currently, we have the support for both ID and name for almost all the cli\u0027s.","commit_id":"a094b3c7486b59f9cca663fd09298149037a6b56"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"8bdaf852fdfa88634007283e059d450333f2b632","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    def add_known_arguments(self, parser):"},{"line_number":94,"context_line":"        parser.add_argument("},{"line_number":95,"context_line":"            \u0027--name\u0027,"},{"line_number":96,"context_line":"            help\u003d_(\u0027Name for the flavor.\u0027))"},{"line_number":97,"context_line":"        parser.add_argument("},{"line_number":98,"context_line":"            \u0027--description\u0027,"},{"line_number":99,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"}],"source_content_type":"text/x-python","patch_set":12,"id":"3a29b11f_a6521ddc","line":96,"in_reply_to":"3a29b11f_4674699b","updated":"2015-10-19 08:01:49.000000000","message":"Ignore this comment. My mistake!","commit_id":"a094b3c7486b59f9cca663fd09298149037a6b56"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"c03061188d7065fdd04d42232509f96eb90f1667","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        neutron_client.associate_flavor(flavor_id, body)"},{"line_number":135,"context_line":"        print((_(\u0027Associated flavor %(fl)s with service_profile %(prof)s\u0027) %"},{"line_number":136,"context_line":"               {\u0027fl\u0027: parsed_args.flavor,"},{"line_number":137,"context_line":"                \u0027prof\u0027: parsed_args.service_profile}),"},{"line_number":138,"context_line":"              file\u003dself.app.stdout)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"3a29b11f_cd0c1c45","line":137,"updated":"2015-10-19 06:57:53.000000000","message":"I think the previous patch had more understandable variable names (flavor, profile etc)\nReadability was better with it.","commit_id":"a094b3c7486b59f9cca663fd09298149037a6b56"},{"author":{"_account_id":16788,"name":"Ramanjaneya Reddy Palleti","email":"ramanjaneya.palleti@huawei.com","username":"Ramanjaneya"},"change_message_id":"cbfc61cf7847cd42a05383667f3c5c1579463ba5","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        neutron_client.associate_flavor(flavor_id, body)"},{"line_number":135,"context_line":"        print((_(\u0027Associated flavor %(fl)s with service_profile %(prof)s\u0027) %"},{"line_number":136,"context_line":"               {\u0027fl\u0027: parsed_args.flavor,"},{"line_number":137,"context_line":"                \u0027prof\u0027: parsed_args.service_profile}),"},{"line_number":138,"context_line":"              file\u003dself.app.stdout)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"3a29b11f_21703072","line":137,"in_reply_to":"3a29b11f_cd0c1c45","updated":"2015-10-19 11:00:14.000000000","message":"+1","commit_id":"a094b3c7486b59f9cca663fd09298149037a6b56"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"c03061188d7065fdd04d42232509f96eb90f1667","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        neutron_client.disassociate_flavor(flavor_id, service_profile_id)"},{"line_number":166,"context_line":"        print((_(\u0027Disassociated flavor %(fl)s from service_profile %(prof)s\u0027) %"},{"line_number":167,"context_line":"               {\u0027fl\u0027: parsed_args.flavor,"},{"line_number":168,"context_line":"                \u0027prof\u0027: parsed_args.service_profile}),"},{"line_number":169,"context_line":"              file\u003dself.app.stdout)"}],"source_content_type":"text/x-python","patch_set":12,"id":"3a29b11f_7004bb14","line":168,"updated":"2015-10-19 06:57:53.000000000","message":"Same as above","commit_id":"a094b3c7486b59f9cca663fd09298149037a6b56"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"1556f3d5c0630fcd4753cbe909770033a7755947","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            \u0027--description\u0027,"},{"line_number":50,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"},{"line_number":51,"context_line":"        parser.add_argument("},{"line_number":52,"context_line":"            \u0027--service_type\u0027,"},{"line_number":53,"context_line":"            help\u003d_(\u0027Service type to which the flavor applies to: e.g. VPN. \u0027"},{"line_number":54,"context_line":"                   \u0027(See service-provider-list for loaded examples.)\u0027))"},{"line_number":55,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":13,"id":"3a29b11f_86289634","line":52,"updated":"2015-10-22 08:28:33.000000000","message":"--service_type -\u003e --service-type\n\nAll OpenStack CLI commands use a hyphen as a delimiter.","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"9b80eab472a95fc79143c101cddd0fe559c05250","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            \u0027--description\u0027,"},{"line_number":50,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"},{"line_number":51,"context_line":"        parser.add_argument("},{"line_number":52,"context_line":"            \u0027--service_type\u0027,"},{"line_number":53,"context_line":"            help\u003d_(\u0027Service type to which the flavor applies to: e.g. VPN. \u0027"},{"line_number":54,"context_line":"                   \u0027(See service-provider-list for loaded examples.)\u0027))"},{"line_number":55,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":13,"id":"3a29b11f_9b31ba5c","line":52,"in_reply_to":"3a29b11f_86289634","updated":"2015-10-22 19:33:19.000000000","message":"The extra value parsing uses and supports the \"--service_type\" since service_type exists at the REST boundary so the value is passed and parsed whether part of the args or not, and that type of logic works across most Neutron commands.\n\nTry values like \"--tenant_id\u0027 or \"--admin_state_up\" to see.\n\nUsing \u0027--service-type\u0027 instead is confusing since then both work, one of which is just undocumented in the help.\n\nThe REST boundary values use underscore so unless the REST boundary values change or the fundamentals of python-neutronclient extra value parsing change, the underscores should remain IMHO.","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"7959053ba96c3d99901b3527d18b8bb453972e5c","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            \u0027--description\u0027,"},{"line_number":50,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"},{"line_number":51,"context_line":"        parser.add_argument("},{"line_number":52,"context_line":"            \u0027--service_type\u0027,"},{"line_number":53,"context_line":"            help\u003d_(\u0027Service type to which the flavor applies to: e.g. VPN. \u0027"},{"line_number":54,"context_line":"                   \u0027(See service-provider-list for loaded examples.)\u0027))"},{"line_number":55,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":13,"id":"1a26ad4f_7bd797ed","line":52,"in_reply_to":"3a29b11f_9b31ba5c","updated":"2015-10-29 02:35:20.000000000","message":"Hi James,\nI agree with your point that --tenant_id and --admin_state_up exist.\nBut I would agree with Amotoki on this point , that it would be better that we keep --service-type.\nGenerally all CLIs do take delimit using \u0027-\u0027 .\nThe examples which use  _ in the CLI argument for delimit, may not be the correct example to be used in the future, because it would lead to the use of  arguments performing the same task, and can be confusing later on.\n\nIt would be more in line if you can keep the arguments hyphenated than underscored.","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"05ca87ad4645ab6f3dee58438a4290a14a263ce4","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            \u0027--description\u0027,"},{"line_number":50,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"},{"line_number":51,"context_line":"        parser.add_argument("},{"line_number":52,"context_line":"            \u0027--service_type\u0027,"},{"line_number":53,"context_line":"            help\u003d_(\u0027Service type to which the flavor applies to: e.g. VPN. \u0027"},{"line_number":54,"context_line":"                   \u0027(See service-provider-list for loaded examples.)\u0027))"},{"line_number":55,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":13,"id":"1a26ad4f_3870fddb","line":52,"in_reply_to":"3a29b11f_9b31ba5c","updated":"2015-10-31 18:28:39.000000000","message":"The point you raised that we can specify both --admin-state-up vs --admin_state_up is worth considered. I think it was introduced when neutronclient followed the convention in other openstack clients because extra value mechanism is special to neutronclient. It seems a bug in neutornclient, but I don\u0027t think it is a valid reason that we should use --admin_state_up rather than --admin-state-up.","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"1556f3d5c0630fcd4753cbe909770033a7755947","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            \u0027--service_type\u0027,"},{"line_number":53,"context_line":"            help\u003d_(\u0027Service type to which the flavor applies to: e.g. VPN. \u0027"},{"line_number":54,"context_line":"                   \u0027(See service-provider-list for loaded examples.)\u0027))"},{"line_number":55,"context_line":"        parser.add_argument("},{"line_number":56,"context_line":"            \u0027--enabled\u0027,"},{"line_number":57,"context_line":"            nargs\u003d\u0027?\u0027,"},{"line_number":58,"context_line":"            const\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a29b11f_a6a4b2b9","line":55,"updated":"2015-10-22 08:28:33.000000000","message":"Could you consider using neutronclient.common.utils add_boolean_argument?\n\nnargs\u003d\u0027?\u0027 sometimes causes a problem when more arguments are specified after this option.\n\nI think \"--enabled True\" looks no problem.","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"b63ba11ad179cd27e535cff930b628793733af9f","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            \u0027--service_type\u0027,"},{"line_number":53,"context_line":"            help\u003d_(\u0027Service type to which the flavor applies to: e.g. VPN. \u0027"},{"line_number":54,"context_line":"                   \u0027(See service-provider-list for loaded examples.)\u0027))"},{"line_number":55,"context_line":"        parser.add_argument("},{"line_number":56,"context_line":"            \u0027--enabled\u0027,"},{"line_number":57,"context_line":"            nargs\u003d\u0027?\u0027,"},{"line_number":58,"context_line":"            const\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a26ad4f_38a23d4c","line":55,"in_reply_to":"3a29b11f_3e1f345c","updated":"2015-10-31 18:05:52.000000000","message":"Do you think it is meaningful to allow \u0027--enabled 0\u0027 or \u0027--enabled xyz\u0027?\nAs a user, I tend to think \u0027--enabled 0\u0027 means \u0027disabled\u0027\nand \u0027--enabled xyz\u0027 is meaningless for boolean options.\n\nIn addition, I don\u0027t want to introduce another new pattern for a boolean option. Do you believe we should use nargs\u003d\u0027?\u0027 for all other existing boolean options?\n\nRegarding relation to the REST boundary, CLI and REST API are different. Honestly I don\u0027t think we need to support all patterns of values as long as CLI provides all features supported by REST boundary.\nI don\u0027t think we need to allow \u0027tRue\u0027 in CLI side. If you want to do so, it is better you talk REST API directly.","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"9b80eab472a95fc79143c101cddd0fe559c05250","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            \u0027--service_type\u0027,"},{"line_number":53,"context_line":"            help\u003d_(\u0027Service type to which the flavor applies to: e.g. VPN. \u0027"},{"line_number":54,"context_line":"                   \u0027(See service-provider-list for loaded examples.)\u0027))"},{"line_number":55,"context_line":"        parser.add_argument("},{"line_number":56,"context_line":"            \u0027--enabled\u0027,"},{"line_number":57,"context_line":"            nargs\u003d\u0027?\u0027,"},{"line_number":58,"context_line":"            const\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a29b11f_3e1f345c","line":55,"in_reply_to":"3a29b11f_a6a4b2b9","updated":"2015-10-22 19:33:19.000000000","message":"Considered but discarded.\n\nThe add_boolean_argument conflicts with extra value parsing logic\n1) It artificially limits choices below what exists at REST boundary, so values like:  --enabled\u003d1 or --enabled\u003dtRue which currently work at REST boundary and with extra value parsing do not work with the util function\n2) It does not support the simple \u0027--enabled\u0027 variety enabled by the \u0027nargs\u003d?\" logic with a const setting, making interface more painful for users","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"1556f3d5c0630fcd4753cbe909770033a7755947","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        parser.add_argument("},{"line_number":88,"context_line":"            \u0027--description\u0027,"},{"line_number":89,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"},{"line_number":90,"context_line":"        parser.add_argument("},{"line_number":91,"context_line":"            \u0027--enabled\u0027,"},{"line_number":92,"context_line":"            nargs\u003d\u0027?\u0027,"},{"line_number":93,"context_line":"            const\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a29b11f_4694be41","line":90,"updated":"2015-10-22 08:28:33.000000000","message":"Same as for CreateFlavor.","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"9b80eab472a95fc79143c101cddd0fe559c05250","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        parser.add_argument("},{"line_number":88,"context_line":"            \u0027--description\u0027,"},{"line_number":89,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"},{"line_number":90,"context_line":"        parser.add_argument("},{"line_number":91,"context_line":"            \u0027--enabled\u0027,"},{"line_number":92,"context_line":"            nargs\u003d\u0027?\u0027,"},{"line_number":93,"context_line":"            const\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a29b11f_fe98dc79","line":90,"in_reply_to":"3a29b11f_4694be41","updated":"2015-10-22 19:33:19.000000000","message":"Same answer.","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"1556f3d5c0630fcd4753cbe909770033a7755947","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            help\u003d_(\u0027Name or ID of the flavor to associate.\u0027))"},{"line_number":115,"context_line":"        parser.add_argument("},{"line_number":116,"context_line":"            \u0027service_profile\u0027,"},{"line_number":117,"context_line":"            help\u003d_(\u0027ID of the service profile to be associated with the \u0027"},{"line_number":118,"context_line":"                   \u0027flavor.\u0027))"},{"line_number":119,"context_line":"        return parser"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"3a29b11f_e6486ace","line":117,"range":{"start_line":117,"start_character":30,"end_line":117,"end_character":46},"updated":"2015-10-22 08:28:33.000000000","message":"The resource name is \u0027service_profile\u0027 but the command name is \u0027flavor_profile\u0027. It is confusing. We should keep the consistent usage.\n\nMy vote is \u0027service_profile\u0027 in all places because \u0027service_profile\u0027 is used in the API.","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"7959053ba96c3d99901b3527d18b8bb453972e5c","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            help\u003d_(\u0027Name or ID of the flavor to associate.\u0027))"},{"line_number":115,"context_line":"        parser.add_argument("},{"line_number":116,"context_line":"            \u0027service_profile\u0027,"},{"line_number":117,"context_line":"            help\u003d_(\u0027ID of the service profile to be associated with the \u0027"},{"line_number":118,"context_line":"                   \u0027flavor.\u0027))"},{"line_number":119,"context_line":"        return parser"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a26ad4f_7beeb7b5","line":117,"in_reply_to":"3a29b11f_6814fde7","updated":"2015-10-29 02:35:20.000000000","message":"+1 for flavor profile","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"da138e51146ad34ce4400486fde8980e02dedf1f","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            help\u003d_(\u0027Name or ID of the flavor to associate.\u0027))"},{"line_number":115,"context_line":"        parser.add_argument("},{"line_number":116,"context_line":"            \u0027service_profile\u0027,"},{"line_number":117,"context_line":"            help\u003d_(\u0027ID of the service profile to be associated with the \u0027"},{"line_number":118,"context_line":"                   \u0027flavor.\u0027))"},{"line_number":119,"context_line":"        return parser"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"3a29b11f_6814fde7","line":117,"in_reply_to":"3a29b11f_a4456e43","updated":"2015-10-23 07:21:11.000000000","message":"This message is visible to CLI users.\nIf so, should it be \"flavor profile\"?","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"9b80eab472a95fc79143c101cddd0fe559c05250","unresolved":false,"context_lines":[{"line_number":114,"context_line":"            help\u003d_(\u0027Name or ID of the flavor to associate.\u0027))"},{"line_number":115,"context_line":"        parser.add_argument("},{"line_number":116,"context_line":"            \u0027service_profile\u0027,"},{"line_number":117,"context_line":"            help\u003d_(\u0027ID of the service profile to be associated with the \u0027"},{"line_number":118,"context_line":"                   \u0027flavor.\u0027))"},{"line_number":119,"context_line":"        return parser"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"3a29b11f_a4456e43","line":117,"in_reply_to":"3a29b11f_e6486ace","updated":"2015-10-22 19:33:19.000000000","message":"The REST boundary currently uses \u0027service_profile\u0027, so used that here since will work regardless due to extra value parsing - similar to \u0027service_type\u0027 discussion above.  \n\nCLI was changed to use FlavorProfile based on earlier discussion and desire to group \"flavor-\u003cop\u003e\u0027 commands with \"flavor-profile-\u003cop\u003e\" commands.","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"8a4a07b6b7baa2391a2400ffdbf50e939f8f36a1","unresolved":false,"context_lines":[{"line_number":125,"context_line":"            neutron_client, \u0027flavor\u0027, parsed_args.flavor)"},{"line_number":126,"context_line":"        service_profile_id \u003d neutronV20.find_resourceid_by_id("},{"line_number":127,"context_line":"            neutron_client, \u0027service_profile\u0027, parsed_args.service_profile)"},{"line_number":128,"context_line":"        body \u003d {\u0027service_profile\u0027: {\u0027id\u0027: service_profile_id}}"},{"line_number":129,"context_line":"        neutron_client.associate_flavor(flavor_id, body)"},{"line_number":130,"context_line":"        print((_(\u0027Associated flavor %(flavor)s with \u0027"},{"line_number":131,"context_line":"                 \u0027service_profile %(profile)s\u0027) %"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a29b11f_bf757764","line":128,"updated":"2015-10-22 19:59:35.000000000","message":"I will suggest to put this in a try catch block and raise exception if for some reason it is not able to assosiate the flavor.","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"188f7a29dbaa3698895898833e9d6f747ecd19ab","unresolved":false,"context_lines":[{"line_number":125,"context_line":"            neutron_client, \u0027flavor\u0027, parsed_args.flavor)"},{"line_number":126,"context_line":"        service_profile_id \u003d neutronV20.find_resourceid_by_id("},{"line_number":127,"context_line":"            neutron_client, \u0027service_profile\u0027, parsed_args.service_profile)"},{"line_number":128,"context_line":"        body \u003d {\u0027service_profile\u0027: {\u0027id\u0027: service_profile_id}}"},{"line_number":129,"context_line":"        neutron_client.associate_flavor(flavor_id, body)"},{"line_number":130,"context_line":"        print((_(\u0027Associated flavor %(flavor)s with \u0027"},{"line_number":131,"context_line":"                 \u0027service_profile %(profile)s\u0027) %"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a29b11f_ea380fd5","line":128,"in_reply_to":"3a29b11f_bf757764","updated":"2015-10-22 20:35:36.000000000","message":"No reason.  The associate_flavor is a POST call to the server creating a binding object resource that returns various exceptions on  failure, such as FlavorServiceProfileBindingExists if already exists, that cause desired messages to flow to the user.  This is how all of the various CRUD calls work.  Nothing extra to catch","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"7959053ba96c3d99901b3527d18b8bb453972e5c","unresolved":false,"context_lines":[{"line_number":125,"context_line":"            neutron_client, \u0027flavor\u0027, parsed_args.flavor)"},{"line_number":126,"context_line":"        service_profile_id \u003d neutronV20.find_resourceid_by_id("},{"line_number":127,"context_line":"            neutron_client, \u0027service_profile\u0027, parsed_args.service_profile)"},{"line_number":128,"context_line":"        body \u003d {\u0027service_profile\u0027: {\u0027id\u0027: service_profile_id}}"},{"line_number":129,"context_line":"        neutron_client.associate_flavor(flavor_id, body)"},{"line_number":130,"context_line":"        print((_(\u0027Associated flavor %(flavor)s with \u0027"},{"line_number":131,"context_line":"                 \u0027service_profile %(profile)s\u0027) %"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a26ad4f_fb38873f","line":128,"in_reply_to":"3a29b11f_ea380fd5","updated":"2015-10-29 02:35:20.000000000","message":"+1 for the explanation , James :)","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"8a4a07b6b7baa2391a2400ffdbf50e939f8f36a1","unresolved":false,"context_lines":[{"line_number":158,"context_line":"            neutron_client, \u0027flavor\u0027, parsed_args.flavor)"},{"line_number":159,"context_line":"        service_profile_id \u003d neutronV20.find_resourceid_by_id("},{"line_number":160,"context_line":"            neutron_client, \u0027service_profile\u0027, parsed_args.service_profile)"},{"line_number":161,"context_line":"        neutron_client.disassociate_flavor(flavor_id, service_profile_id)"},{"line_number":162,"context_line":"        print((_(\u0027Disassociated flavor %(flavor)s from \u0027"},{"line_number":163,"context_line":"                 \u0027service_profile %(profile)s\u0027) %"},{"line_number":164,"context_line":"               {\u0027flavor\u0027: parsed_args.flavor,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a29b11f_3f0887d9","line":161,"updated":"2015-10-22 19:59:35.000000000","message":"same here for disassociate","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"188f7a29dbaa3698895898833e9d6f747ecd19ab","unresolved":false,"context_lines":[{"line_number":158,"context_line":"            neutron_client, \u0027flavor\u0027, parsed_args.flavor)"},{"line_number":159,"context_line":"        service_profile_id \u003d neutronV20.find_resourceid_by_id("},{"line_number":160,"context_line":"            neutron_client, \u0027service_profile\u0027, parsed_args.service_profile)"},{"line_number":161,"context_line":"        neutron_client.disassociate_flavor(flavor_id, service_profile_id)"},{"line_number":162,"context_line":"        print((_(\u0027Disassociated flavor %(flavor)s from \u0027"},{"line_number":163,"context_line":"                 \u0027service_profile %(profile)s\u0027) %"},{"line_number":164,"context_line":"               {\u0027flavor\u0027: parsed_args.flavor,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a29b11f_eaad6fe9","line":161,"in_reply_to":"3a29b11f_3f0887d9","updated":"2015-10-22 20:35:36.000000000","message":"Same answer.  Disassociate is a DELETE binding object resource call, and want various exceptions such as FlavorServiceBindingNotFound to flow to the user and report appropriate message.  Nothing extra to catch.","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"758690d9b354ccde5aa1966f456ec2bcdbeaa49b","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"},{"line_number":57,"context_line":"        parser.add_argument("},{"line_number":58,"context_line":"            \u0027--enabled\u0027,"},{"line_number":59,"context_line":"            nargs\u003d\u0027?\u0027,"},{"line_number":60,"context_line":"            const\u003dTrue,"},{"line_number":61,"context_line":"            default\u003dargparse.SUPPRESS,"},{"line_number":62,"context_line":"            help\u003d_(\u0027Sets enabled flag.\u0027))"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a26ad4f_58be1966","line":59,"updated":"2015-10-31 18:11:48.000000000","message":"I replied in patch set 13. Please check it.","commit_id":"256d92a038d16b6b702bf3ec0e28e721899945ad"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"cc1373cc347bd34f606893c0dd87b3f2582d2a87","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"},{"line_number":57,"context_line":"        parser.add_argument("},{"line_number":58,"context_line":"            \u0027--enabled\u0027,"},{"line_number":59,"context_line":"            nargs\u003d\u0027?\u0027,"},{"line_number":60,"context_line":"            const\u003dTrue,"},{"line_number":61,"context_line":"            default\u003dargparse.SUPPRESS,"},{"line_number":62,"context_line":"            help\u003d_(\u0027Sets enabled flag.\u0027))"}],"source_content_type":"text/x-python","patch_set":14,"id":"da85f559_9a9e5106","line":59,"in_reply_to":"1a26ad4f_58be1966","updated":"2015-11-06 23:42:21.000000000","message":"I believe supporting case-insensitivity and numeric forms, like the REST api does, is beneficial.  Be generous in what you accept, and consistent with the programmatic and REST interfaces and legacy extra args.  If I can use \u00270\u0027 (for False) or \u0027tRue\u0027 (for True) in the API/REST, then go to the CLI and am artificially limited by the client, that is annoying.\n\nI do think supporting a flag form with a nargs const for a boolean is superior.  It is easier and more concise (\u0027--enabled\u0027 vs \u0027--enabled True\u0027), works the same way as extra args (unlike current patches that break backward compatibility on update commands that used extra args), yet still supports the help documented long form.\n\nThought that was made clear.\n\nBut given that this isn\u0027t really fundamental to the use of flavors, will succumb to using the util function.","commit_id":"256d92a038d16b6b702bf3ec0e28e721899945ad"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"062d856779e8df0b09194a1fea4852a658a03c32","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            help\u003d_(\u0027Description for the flavor.\u0027))"},{"line_number":57,"context_line":"        parser.add_argument("},{"line_number":58,"context_line":"            \u0027--enabled\u0027,"},{"line_number":59,"context_line":"            nargs\u003d\u0027?\u0027,"},{"line_number":60,"context_line":"            const\u003dTrue,"},{"line_number":61,"context_line":"            default\u003dargparse.SUPPRESS,"},{"line_number":62,"context_line":"            help\u003d_(\u0027Sets enabled flag.\u0027))"}],"source_content_type":"text/x-python","patch_set":14,"id":"da85f559_ebcbfa70","line":59,"in_reply_to":"da85f559_9a9e5106","updated":"2015-11-08 20:56:26.000000000","message":"Thanks for both your suggestion and understanding.\n\nWhen I tested your patch, the following command does not work.\nOnly \u0027--enabled True\u0027 works and \u0027--enable\u0027 does not. I am missing something.\n\n   $ neutron -v flavor-create --enabled myflavor vpn\n   ....\n   neutron flavor-create: error: too few arguments\n\n----\n\nAs you say, all of points we discussed are not specific to this feature.\nSome of your points sounds valid to me and it seems some needs a discussion.\n\n(1) Multiple ways to specify a boolean option\n\n- neutronclient has multiple ways to specify a boolean options now and it depends on sub-commands. I believe it is confusing to users. I think introducing another way decreases the user experience. nargs\u003d? might be a good candidate, but I think it should be done at once.\n\n(2) Allow to pass arbitrary value or not\n\n- I am not sure limiting acceptable values in CLI level is annoying to normal users. If it is annoying for developers it does not matter. In the extra args mechanism we can specify ip-version 5 in subnet-update, but I don\u0027t think it is useful for normal users.\n- extra args mechanism is really tricky.\n\n(3) using nargs\u003d\u0027?\u0027\n\n- It is worth considered and your points sounds valid.\n- On the other hand, I see the tricky behavior of nargs\u003d\u0027?\u0027. I think it is confusing. This is the reason I would like to avoid using it.\nFor example, http://paste.openstack.org/show/478274/ . In this example, \u0027--enabled bbbb cccc\u0027 raises \u0027too few arguments\u0027 error and a user needs to specify \u0027--enabled True bbbb cccc\u0027. It is different from the help message.","commit_id":"256d92a038d16b6b702bf3ec0e28e721899945ad"}],"neutronclient/neutron/v2_0/flavor/flavor_profile.py":[{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"62f984f85721130f4cb97cebe30d26f1dab0dffd","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    resource \u003d \u0027service_profile\u0027"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def add_known_arguments(self, parser):"},{"line_number":42,"context_line":"        parser.add_argument("},{"line_number":43,"context_line":"            \u0027--description\u0027,"},{"line_number":44,"context_line":"            help\u003d_(\u0027Description for the flavor profile.\u0027))"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_31fb3f7d","line":41,"updated":"2015-08-25 15:56:23.000000000","message":"None of the parameter\u0027s are mandatory here?","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"62f984f85721130f4cb97cebe30d26f1dab0dffd","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            \u0027--disabled\u0027,"},{"line_number":50,"context_line":"            dest\u003d\u0027enabled\u0027,"},{"line_number":51,"context_line":"            action\u003d\u0027store_false\u0027,"},{"line_number":52,"context_line":"            help\u003d_(\u0027Set enabled to False (default is True).\u0027))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def args2body(self, parsed_args):"},{"line_number":55,"context_line":"        body \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_d1be83ad","line":52,"updated":"2015-08-25 15:56:23.000000000","message":"Request you check the previous file comment about this.","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"ab62d4bb67e26e5169a3f6419b9ba0e82c6e2f16","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            \u0027--disabled\u0027,"},{"line_number":50,"context_line":"            dest\u003d\u0027enabled\u0027,"},{"line_number":51,"context_line":"            action\u003d\u0027store_false\u0027,"},{"line_number":52,"context_line":"            help\u003d_(\u0027Set enabled to False (default is True).\u0027))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def args2body(self, parsed_args):"},{"line_number":55,"context_line":"        body \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_fb291d9c","line":52,"in_reply_to":"fa1b9901_d1be83ad","updated":"2015-08-25 21:31:57.000000000","message":"Changed to same \"--disable\"/\"--enable\" usage as in flavor.","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"62f984f85721130f4cb97cebe30d26f1dab0dffd","unresolved":false,"context_lines":[{"line_number":80,"context_line":"            help\u003d_(\u0027Description for the flavor profile.\u0027))"},{"line_number":81,"context_line":"        parser.add_argument("},{"line_number":82,"context_line":"            \u0027--driver\u0027,"},{"line_number":83,"context_line":"            help\u003d_(\u0027Path to driver for the flavor profile.\u0027))"},{"line_number":84,"context_line":"        parser.add_argument("},{"line_number":85,"context_line":"            \u0027--metainfo\u0027,"},{"line_number":86,"context_line":"            help\u003d_(\u0027Metainfo for the flavor profile.\u0027))"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_510ef38c","line":83,"updated":"2015-08-25 15:56:23.000000000","message":"What does \"Path to driver\" means? Can we be more informative over here?","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"ab62d4bb67e26e5169a3f6419b9ba0e82c6e2f16","unresolved":false,"context_lines":[{"line_number":80,"context_line":"            help\u003d_(\u0027Description for the flavor profile.\u0027))"},{"line_number":81,"context_line":"        parser.add_argument("},{"line_number":82,"context_line":"            \u0027--driver\u0027,"},{"line_number":83,"context_line":"            help\u003d_(\u0027Path to driver for the flavor profile.\u0027))"},{"line_number":84,"context_line":"        parser.add_argument("},{"line_number":85,"context_line":"            \u0027--metainfo\u0027,"},{"line_number":86,"context_line":"            help\u003d_(\u0027Metainfo for the flavor profile.\u0027))"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_5e091783","line":83,"in_reply_to":"fa1b9901_510ef38c","updated":"2015-08-25 21:31:57.000000000","message":"Updated to \"Python module path to driver\" as reflected in the neutron-flavor-framework.rst.  Adding more detail, like an example, doesn\u0027t make sense here for what is an operator-only function where example would depend on configuration.","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"62f984f85721130f4cb97cebe30d26f1dab0dffd","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            \u0027--disabled\u0027,"},{"line_number":89,"context_line":"            dest\u003d\u0027enabled\u0027,"},{"line_number":90,"context_line":"            action\u003d\u0027store_false\u0027,"},{"line_number":91,"context_line":"            help\u003d_(\u0027Set enabled to False (default is True).\u0027))"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def args2body(self, parsed_args):"},{"line_number":94,"context_line":"        body \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_31325f5f","line":91,"updated":"2015-08-25 15:56:23.000000000","message":"ditto.","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"ab62d4bb67e26e5169a3f6419b9ba0e82c6e2f16","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            \u0027--disabled\u0027,"},{"line_number":89,"context_line":"            dest\u003d\u0027enabled\u0027,"},{"line_number":90,"context_line":"            action\u003d\u0027store_false\u0027,"},{"line_number":91,"context_line":"            help\u003d_(\u0027Set enabled to False (default is True).\u0027))"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def args2body(self, parsed_args):"},{"line_number":94,"context_line":"        body \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_3e254308","line":91,"in_reply_to":"fa1b9901_31325f5f","updated":"2015-08-25 21:31:57.000000000","message":"Same as above.","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"590f249c2713099c2a9dd54d5cbb4ffac42710ef","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    resource \u003d \u0027service_profile\u0027"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def add_known_arguments(self, parser):"},{"line_number":42,"context_line":"        parser.add_argument("},{"line_number":43,"context_line":"            \u0027--description\u0027,"},{"line_number":44,"context_line":"            help\u003d_(\u0027Description for the flavor profile.\u0027))"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_6c5a8c85","line":41,"updated":"2015-08-27 13:50:59.000000000","message":"Please address PS4 comment.","commit_id":"912cf952ae773153e97128cdd0bbb3b427fe28af"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"590f249c2713099c2a9dd54d5cbb4ffac42710ef","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def add_known_arguments(self, parser):"},{"line_number":84,"context_line":"        parser.add_argument("},{"line_number":85,"context_line":"            \u0027--description\u0027,"},{"line_number":86,"context_line":"            help\u003d_(\u0027Description for the flavor profile.\u0027))"},{"line_number":87,"context_line":"        parser.add_argument("},{"line_number":88,"context_line":"            \u0027--driver\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_6ce84c7d","line":85,"updated":"2015-08-27 13:50:59.000000000","message":"arguments for create and update are almost same. How about defining a function for the common part?","commit_id":"912cf952ae773153e97128cdd0bbb3b427fe28af"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"d2a7feca882da07e8e8d1606beae90099de7a56d","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def add_known_arguments(self, parser):"},{"line_number":84,"context_line":"        parser.add_argument("},{"line_number":85,"context_line":"            \u0027--description\u0027,"},{"line_number":86,"context_line":"            help\u003d_(\u0027Description for the flavor profile.\u0027))"},{"line_number":87,"context_line":"        parser.add_argument("},{"line_number":88,"context_line":"            \u0027--driver\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_636289af","line":85,"in_reply_to":"da20952f_6ce84c7d","updated":"2015-08-27 19:36:26.000000000","message":"I think that any example should be elaborated in the docs.","commit_id":"912cf952ae773153e97128cdd0bbb3b427fe28af"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"0dad65b7fff2c777a10143c68a8e34c6fe91fff3","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    def args2body(self, parsed_args):"},{"line_number":68,"context_line":"        body \u003d {}"},{"line_number":69,"context_line":"        neutronV20.update_dict(parsed_args, body,"},{"line_number":70,"context_line":"                               [\u0027description\u0027,"},{"line_number":71,"context_line":"                                \u0027driver\u0027,"},{"line_number":72,"context_line":"                                \u0027enabled\u0027,"},{"line_number":73,"context_line":"                                \u0027metainfo\u0027])"}],"source_content_type":"text/x-python","patch_set":12,"id":"3a29b11f_866281d7","line":70,"updated":"2015-10-19 07:59:55.000000000","message":"unnecessary new lines.","commit_id":"a094b3c7486b59f9cca663fd09298149037a6b56"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"0dad65b7fff2c777a10143c68a8e34c6fe91fff3","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    def args2body(self, parsed_args):"},{"line_number":101,"context_line":"        body \u003d {}"},{"line_number":102,"context_line":"        neutronV20.update_dict(parsed_args, body,"},{"line_number":103,"context_line":"                               [\u0027description\u0027,"},{"line_number":104,"context_line":"                                \u0027driver\u0027,"},{"line_number":105,"context_line":"                                \u0027enabled\u0027,"},{"line_number":106,"context_line":"                                \u0027metainfo\u0027])"}],"source_content_type":"text/x-python","patch_set":12,"id":"3a29b11f_a65f7d0d","line":103,"updated":"2015-10-19 07:59:55.000000000","message":"ditto","commit_id":"a094b3c7486b59f9cca663fd09298149037a6b56"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"1556f3d5c0630fcd4753cbe909770033a7755947","unresolved":false,"context_lines":[{"line_number":22,"context_line":"class ListFlavorProfile(neutronV20.ListCommand):"},{"line_number":23,"context_line":"    \"\"\"List Neutron service flavor profiles.\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    resource \u003d \u0027service_profile\u0027"},{"line_number":26,"context_line":"    list_columns \u003d [\u0027id\u0027, \u0027description\u0027, \u0027enabled\u0027, \u0027metainfo\u0027]"},{"line_number":27,"context_line":"    pagination_support \u003d True"},{"line_number":28,"context_line":"    sorting_support \u003d True"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a29b11f_e6daaa16","line":25,"updated":"2015-10-22 08:28:33.000000000","message":"The class name and the resource name do not match. Why do you choose the different name? Is there any reason we cannot use \u0027service_profile\u0027 for the class name?","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"9b80eab472a95fc79143c101cddd0fe559c05250","unresolved":false,"context_lines":[{"line_number":22,"context_line":"class ListFlavorProfile(neutronV20.ListCommand):"},{"line_number":23,"context_line":"    \"\"\"List Neutron service flavor profiles.\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    resource \u003d \u0027service_profile\u0027"},{"line_number":26,"context_line":"    list_columns \u003d [\u0027id\u0027, \u0027description\u0027, \u0027enabled\u0027, \u0027metainfo\u0027]"},{"line_number":27,"context_line":"    pagination_support \u003d True"},{"line_number":28,"context_line":"    sorting_support \u003d True"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a29b11f_fe577c55","line":25,"in_reply_to":"3a29b11f_e6daaa16","updated":"2015-10-22 19:33:19.000000000","message":"The REST boundary resource is currently \u0027service_profile\u0027.\n\nEarlier feedback indicated that grouping flavor and the profile together (by using flavor profile naming) in the CLI made usage easier.  Had considered FlavorServiceProfile as well, but folks did not like how long that was.\n\nHaving FlavorProfile groups the commands together in help and enables \u0027flavor-profile-\u003cop\u003e\u0027 naming.  Keeping ServiceProfile separates the commands in help and doesn\u0027t logically tie the ServiceProfile to the flavors plugin.\n\nAdmit this is somewhat confusing, though best solution if still want grouping on CLI is likely renaming the resource on service side to a flavor nomenclature.","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"1556f3d5c0630fcd4753cbe909770033a7755947","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        parser.add_argument("},{"line_number":50,"context_line":"            \u0027--metainfo\u0027,"},{"line_number":51,"context_line":"            help\u003d_(\u0027Metainfo for the flavor profile.\u0027))"},{"line_number":52,"context_line":"        parser.add_argument("},{"line_number":53,"context_line":"            \u0027--enabled\u0027,"},{"line_number":54,"context_line":"            nargs\u003d\u0027?\u0027,"},{"line_number":55,"context_line":"            const\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3a29b11f_6698da6a","line":52,"updated":"2015-10-22 08:28:33.000000000","message":"Same comment as for flavor.py","commit_id":"169eacba4208afef0979857e0ce0f8358ef46851"}],"neutronclient/neutron/v2_0/flavor/flavorprofile.py":[{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"f3bd5244c911594ac87b495f89f86f1b92dba3b6","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        neutronV20.update_dict(parsed_args, body[self.resource],"},{"line_number":96,"context_line":"                               [\u0027description\u0027,"},{"line_number":97,"context_line":"                                \u0027driver\u0027,"},{"line_number":98,"context_line":"                                \u0027enabled\u0027,"},{"line_number":99,"context_line":"                                \u0027metainfo\u0027])"},{"line_number":100,"context_line":"        return body"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_e6197289","line":98,"updated":"2015-08-20 04:52:36.000000000","message":"Cannot find the default value for enabled set to True.","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"1fc916263a49f34525af925f109b26e531b50bff","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        neutronV20.update_dict(parsed_args, body[self.resource],"},{"line_number":96,"context_line":"                               [\u0027description\u0027,"},{"line_number":97,"context_line":"                                \u0027driver\u0027,"},{"line_number":98,"context_line":"                                \u0027enabled\u0027,"},{"line_number":99,"context_line":"                                \u0027metainfo\u0027])"},{"line_number":100,"context_line":"        return body"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_6143e86c","line":98,"in_reply_to":"fa1b9901_e6197289","updated":"2015-08-20 18:02:42.000000000","message":"Argparse boolean defaults to opposite of action, no need for extra explicit set.","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"}],"neutronclient/shell.py":[{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"f3bd5244c911594ac87b495f89f86f1b92dba3b6","unresolved":false,"context_lines":[{"line_number":305,"context_line":"    \u0027firewall-create\u0027: firewall.CreateFirewall,"},{"line_number":306,"context_line":"    \u0027firewall-update\u0027: firewall.UpdateFirewall,"},{"line_number":307,"context_line":"    \u0027firewall-delete\u0027: firewall.DeleteFirewall,"},{"line_number":308,"context_line":"    \u0027flavor-list\u0027: flavor.ListFlavor,"},{"line_number":309,"context_line":"    \u0027flavor-show\u0027: flavor.ShowFlavor,"},{"line_number":310,"context_line":"    \u0027flavor-create\u0027: flavor.CreateFlavor,"},{"line_number":311,"context_line":"    \u0027flavor-delete\u0027: flavor.DeleteFlavor,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_660ec23c","line":308,"updated":"2015-08-20 04:52:36.000000000","message":"Please put this at the end.","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"1fc916263a49f34525af925f109b26e531b50bff","unresolved":false,"context_lines":[{"line_number":305,"context_line":"    \u0027firewall-create\u0027: firewall.CreateFirewall,"},{"line_number":306,"context_line":"    \u0027firewall-update\u0027: firewall.UpdateFirewall,"},{"line_number":307,"context_line":"    \u0027firewall-delete\u0027: firewall.DeleteFirewall,"},{"line_number":308,"context_line":"    \u0027flavor-list\u0027: flavor.ListFlavor,"},{"line_number":309,"context_line":"    \u0027flavor-show\u0027: flavor.ShowFlavor,"},{"line_number":310,"context_line":"    \u0027flavor-create\u0027: flavor.CreateFlavor,"},{"line_number":311,"context_line":"    \u0027flavor-delete\u0027: flavor.DeleteFlavor,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_81463c79","line":308,"in_reply_to":"fa1b9901_660ec23c","updated":"2015-08-20 18:02:42.000000000","message":"Done","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"dabf5f7423110db9805cea0034c39792ecc6c193","unresolved":false,"context_lines":[{"line_number":51,"context_line":"from neutronclient.neutron.v2_0 import credential"},{"line_number":52,"context_line":"from neutronclient.neutron.v2_0 import extension"},{"line_number":53,"context_line":"from neutronclient.neutron.v2_0.flavor import flavor"},{"line_number":54,"context_line":"from neutronclient.neutron.v2_0.flavor import flavorprofile"},{"line_number":55,"context_line":"from neutronclient.neutron.v2_0 import floatingip"},{"line_number":56,"context_line":"from neutronclient.neutron.v2_0.fw import firewall"},{"line_number":57,"context_line":"from neutronclient.neutron.v2_0.fw import firewallpolicy"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_7d612fd2","line":54,"updated":"2015-08-21 07:52:10.000000000","message":"How about renaming flavorprofile --\u003e flavor_profile for better readability?","commit_id":"d93bb68b42792db2ea6fbb84d9c679a65d70a943"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"983e7ddd59fc16ec9afa143401d5ef13cbe804c9","unresolved":false,"context_lines":[{"line_number":51,"context_line":"from neutronclient.neutron.v2_0 import credential"},{"line_number":52,"context_line":"from neutronclient.neutron.v2_0 import extension"},{"line_number":53,"context_line":"from neutronclient.neutron.v2_0.flavor import flavor"},{"line_number":54,"context_line":"from neutronclient.neutron.v2_0.flavor import flavorprofile"},{"line_number":55,"context_line":"from neutronclient.neutron.v2_0 import floatingip"},{"line_number":56,"context_line":"from neutronclient.neutron.v2_0.fw import firewall"},{"line_number":57,"context_line":"from neutronclient.neutron.v2_0.fw import firewallpolicy"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_44d2d601","line":54,"in_reply_to":"fa1b9901_7d612fd2","updated":"2015-08-25 15:33:37.000000000","message":"Done","commit_id":"d93bb68b42792db2ea6fbb84d9c679a65d70a943"}],"neutronclient/tests/unit/flavor/test_cli20_flavor.py":[{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"f3bd5244c911594ac87b495f89f86f1b92dba3b6","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class CLITestV20FlavorJSON(test_cli20.CLITestV20Base):"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def test_create_flavor(self):"},{"line_number":26,"context_line":"        \"\"\"Create test flavor with minimal parameters.\"\"\""},{"line_number":27,"context_line":"        resource \u003d \u0027flavor\u0027"},{"line_number":28,"context_line":"        cmd \u003d flavor.CreateFlavor("}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_a954adfd","line":25,"updated":"2015-08-20 04:52:36.000000000","message":"Can we rename it as \"test_create_flavor_with_mandatory_params\"","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"1fc916263a49f34525af925f109b26e531b50bff","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class CLITestV20FlavorJSON(test_cli20.CLITestV20Base):"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def test_create_flavor(self):"},{"line_number":26,"context_line":"        \"\"\"Create test flavor with minimal parameters.\"\"\""},{"line_number":27,"context_line":"        resource \u003d \u0027flavor\u0027"},{"line_number":28,"context_line":"        cmd \u003d flavor.CreateFlavor("}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_ac61f7aa","line":25,"in_reply_to":"fa1b9901_a954adfd","updated":"2015-08-20 18:02:42.000000000","message":"Done","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"dabf5f7423110db9805cea0034c39792ecc6c193","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            test_cli20.MyApp(sys.stdout), None)"},{"line_number":30,"context_line":"        name \u003d \u0027Test flavor\u0027"},{"line_number":31,"context_line":"        myid \u003d \u0027myid\u0027"},{"line_number":32,"context_line":"        extra_body \u003d {\u0027enabled\u0027: True, \u0027service_type\u0027: \u0027LOADBALANCER\u0027}"},{"line_number":33,"context_line":"        position_names \u003d [\u0027name\u0027]"},{"line_number":34,"context_line":"        position_values \u003d [name]"},{"line_number":35,"context_line":"        args \u003d [name]"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_3dbdf7d7","line":32,"updated":"2015-08-21 07:52:10.000000000","message":"As I have understood, this is optional. Why we got to pass them?","commit_id":"d93bb68b42792db2ea6fbb84d9c679a65d70a943"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"983e7ddd59fc16ec9afa143401d5ef13cbe804c9","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            test_cli20.MyApp(sys.stdout), None)"},{"line_number":30,"context_line":"        name \u003d \u0027Test flavor\u0027"},{"line_number":31,"context_line":"        myid \u003d \u0027myid\u0027"},{"line_number":32,"context_line":"        extra_body \u003d {\u0027enabled\u0027: True, \u0027service_type\u0027: \u0027LOADBALANCER\u0027}"},{"line_number":33,"context_line":"        position_names \u003d [\u0027name\u0027]"},{"line_number":34,"context_line":"        position_values \u003d [name]"},{"line_number":35,"context_line":"        args \u003d [name]"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_2416c2f1","line":32,"in_reply_to":"fa1b9901_3dbdf7d7","updated":"2015-08-25 15:33:37.000000000","message":"Done","commit_id":"d93bb68b42792db2ea6fbb84d9c679a65d70a943"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"dabf5f7423110db9805cea0034c39792ecc6c193","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        args \u003d [my_id]"},{"line_number":64,"context_line":"        self._test_delete_resource(resource, cmd, my_id, args)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def test_list_flavors(self):"},{"line_number":67,"context_line":"        \"\"\"List flavors test.\"\"\""},{"line_number":68,"context_line":"        resources \u003d \u0027flavors\u0027"},{"line_number":69,"context_line":"        cmd \u003d flavor.ListFlavor("}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_fda9bf90","line":66,"updated":"2015-08-21 07:52:10.000000000","message":"test-cases for sorting \u0026 pagination are missing.","commit_id":"d93bb68b42792db2ea6fbb84d9c679a65d70a943"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"983e7ddd59fc16ec9afa143401d5ef13cbe804c9","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        args \u003d [my_id]"},{"line_number":64,"context_line":"        self._test_delete_resource(resource, cmd, my_id, args)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def test_list_flavors(self):"},{"line_number":67,"context_line":"        \"\"\"List flavors test.\"\"\""},{"line_number":68,"context_line":"        resources \u003d \u0027flavors\u0027"},{"line_number":69,"context_line":"        cmd \u003d flavor.ListFlavor("}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_6447da1d","line":66,"in_reply_to":"fa1b9901_fda9bf90","updated":"2015-08-25 15:33:37.000000000","message":"Done","commit_id":"d93bb68b42792db2ea6fbb84d9c679a65d70a943"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"dabf5f7423110db9805cea0034c39792ecc6c193","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        args \u003d [\u0027--fields\u0027, \u0027id\u0027, self.test_id]"},{"line_number":79,"context_line":"        self._test_show_resource(resource, cmd, self.test_id, args, [\u0027id\u0027])"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def test_update_flavor_with_name(self):"},{"line_number":82,"context_line":"        \"\"\"Update flavor test.\"\"\""},{"line_number":83,"context_line":"        resource \u003d \u0027flavor\u0027"},{"line_number":84,"context_line":"        cmd \u003d flavor.UpdateFlavor("}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_7d192f21","line":81,"updated":"2015-08-21 07:52:10.000000000","message":"How about testing \"description\" and \"disabled\" as well?","commit_id":"d93bb68b42792db2ea6fbb84d9c679a65d70a943"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"62f984f85721130f4cb97cebe30d26f1dab0dffd","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        args \u003d [\u0027--fields\u0027, \u0027id\u0027, self.test_id]"},{"line_number":93,"context_line":"        self._test_show_resource(resource, cmd, self.test_id, args, [\u0027id\u0027])"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def test_update_flavor_with_name(self):"},{"line_number":96,"context_line":"        \"\"\"Update flavor test.\"\"\""},{"line_number":97,"context_line":"        resource \u003d \u0027flavor\u0027"},{"line_number":98,"context_line":"        cmd \u003d flavor.UpdateFlavor("}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_714bf787","line":95,"updated":"2015-08-25 15:56:23.000000000","message":"Kindly address PS3 comment.","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"ab62d4bb67e26e5169a3f6419b9ba0e82c6e2f16","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        args \u003d [\u0027--fields\u0027, \u0027id\u0027, self.test_id]"},{"line_number":93,"context_line":"        self._test_show_resource(resource, cmd, self.test_id, args, [\u0027id\u0027])"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def test_update_flavor_with_name(self):"},{"line_number":96,"context_line":"        \"\"\"Update flavor test.\"\"\""},{"line_number":97,"context_line":"        resource \u003d \u0027flavor\u0027"},{"line_number":98,"context_line":"        cmd \u003d flavor.UpdateFlavor("}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_5e411762","line":95,"in_reply_to":"fa1b9901_714bf787","updated":"2015-08-25 21:31:57.000000000","message":"Done","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"}],"neutronclient/tests/unit/flavor/test_cli20_flavorprofile.py":[{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"f3bd5244c911594ac87b495f89f86f1b92dba3b6","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class CLITestV20FlavorProfileJSON(test_cli20.CLITestV20Base):"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def test_create_flavor_profile(self):"},{"line_number":26,"context_line":"        \"\"\"Create test flavor profile test.\"\"\""},{"line_number":27,"context_line":"        resource \u003d \u0027service_profile\u0027"},{"line_number":28,"context_line":"        cmd \u003d flavorprofile.CreateFlavorProfile("}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_49463150","line":25,"updated":"2015-08-20 04:52:36.000000000","message":"Can we have separate test cases for mandatory and all params.","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"1fc916263a49f34525af925f109b26e531b50bff","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class CLITestV20FlavorProfileJSON(test_cli20.CLITestV20Base):"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def test_create_flavor_profile(self):"},{"line_number":26,"context_line":"        \"\"\"Create test flavor profile test.\"\"\""},{"line_number":27,"context_line":"        resource \u003d \u0027service_profile\u0027"},{"line_number":28,"context_line":"        cmd \u003d flavorprofile.CreateFlavorProfile("}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_0ceca3f1","line":25,"in_reply_to":"fa1b9901_49463150","updated":"2015-08-20 18:02:42.000000000","message":"Done","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"dabf5f7423110db9805cea0034c39792ecc6c193","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        description \u003d \u0027Test flavor profile\u0027"},{"line_number":32,"context_line":"        myid \u003d \u0027myid\u0027"},{"line_number":33,"context_line":"        metainfo \u003d \"{\u0027a\u0027:\u0027b\u0027}\""},{"line_number":34,"context_line":"        extra_body \u003d {\u0027enabled\u0027: True}"},{"line_number":35,"context_line":"        position_names \u003d [\u0027description\u0027, \u0027metainfo\u0027]"},{"line_number":36,"context_line":"        position_values \u003d [description, metainfo]"},{"line_number":37,"context_line":"        args \u003d [\u0027--description\u0027, description, \u0027--metainfo\u0027, metainfo]"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_1d9b5367","line":34,"updated":"2015-08-21 07:52:10.000000000","message":"AFAIU, \u0027enabled\u0027 is optional. Why to pass it then?","commit_id":"d93bb68b42792db2ea6fbb84d9c679a65d70a943"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"983e7ddd59fc16ec9afa143401d5ef13cbe804c9","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        description \u003d \u0027Test flavor profile\u0027"},{"line_number":32,"context_line":"        myid \u003d \u0027myid\u0027"},{"line_number":33,"context_line":"        metainfo \u003d \"{\u0027a\u0027:\u0027b\u0027}\""},{"line_number":34,"context_line":"        extra_body \u003d {\u0027enabled\u0027: True}"},{"line_number":35,"context_line":"        position_names \u003d [\u0027description\u0027, \u0027metainfo\u0027]"},{"line_number":36,"context_line":"        position_values \u003d [description, metainfo]"},{"line_number":37,"context_line":"        args \u003d [\u0027--description\u0027, description, \u0027--metainfo\u0027, metainfo]"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_c437c6ae","line":34,"in_reply_to":"fa1b9901_1d9b5367","updated":"2015-08-25 15:33:37.000000000","message":"Done","commit_id":"d93bb68b42792db2ea6fbb84d9c679a65d70a943"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"dabf5f7423110db9805cea0034c39792ecc6c193","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                                   position_names, position_values,"},{"line_number":58,"context_line":"                                   extra_body\u003dextra_body)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def test_list_flavor_profiles(self):"},{"line_number":61,"context_line":"        \"\"\"List flavor profiles test.\"\"\""},{"line_number":62,"context_line":"        resources \u003d \u0027service_profiles\u0027"},{"line_number":63,"context_line":"        cmd \u003d flavorprofile.ListFlavorProfile("}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_1d84b308","line":60,"updated":"2015-08-21 07:52:10.000000000","message":"test-cases for sorting \u0026 pagination are missing.","commit_id":"d93bb68b42792db2ea6fbb84d9c679a65d70a943"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"983e7ddd59fc16ec9afa143401d5ef13cbe804c9","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                                   position_names, position_values,"},{"line_number":58,"context_line":"                                   extra_body\u003dextra_body)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def test_list_flavor_profiles(self):"},{"line_number":61,"context_line":"        \"\"\"List flavor profiles test.\"\"\""},{"line_number":62,"context_line":"        resources \u003d \u0027service_profiles\u0027"},{"line_number":63,"context_line":"        cmd \u003d flavorprofile.ListFlavorProfile("}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_c19578e4","line":60,"in_reply_to":"fa1b9901_1d84b308","updated":"2015-08-25 15:33:37.000000000","message":"Done","commit_id":"d93bb68b42792db2ea6fbb84d9c679a65d70a943"}],"neutronclient/tests/unit/test_cli20.py":[{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"f3bd5244c911594ac87b495f89f86f1b92dba3b6","unresolved":false,"context_lines":[{"line_number":224,"context_line":"                                      \u0027policy_profile\u0027, \u0027ikepolicy\u0027,"},{"line_number":225,"context_line":"                                      \u0027ipsecpolicy\u0027, \u0027metering_label\u0027,"},{"line_number":226,"context_line":"                                      \u0027metering_label_rule\u0027, \u0027net_partition\u0027,"},{"line_number":227,"context_line":"                                      \u0027flavor\u0027, \u0027service_profile\u0027,"},{"line_number":228,"context_line":"                                      \u0027fox_socket\u0027, \u0027subnetpool\u0027,"},{"line_number":229,"context_line":"                                      \u0027rbac_policy\u0027, \u0027address_scope\u0027]"},{"line_number":230,"context_line":"        if not cmd_resource:"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_09f039fd","line":227,"updated":"2015-08-20 04:52:36.000000000","message":"Please keep this at the end.","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"1fc916263a49f34525af925f109b26e531b50bff","unresolved":false,"context_lines":[{"line_number":224,"context_line":"                                      \u0027policy_profile\u0027, \u0027ikepolicy\u0027,"},{"line_number":225,"context_line":"                                      \u0027ipsecpolicy\u0027, \u0027metering_label\u0027,"},{"line_number":226,"context_line":"                                      \u0027metering_label_rule\u0027, \u0027net_partition\u0027,"},{"line_number":227,"context_line":"                                      \u0027flavor\u0027, \u0027service_profile\u0027,"},{"line_number":228,"context_line":"                                      \u0027fox_socket\u0027, \u0027subnetpool\u0027,"},{"line_number":229,"context_line":"                                      \u0027rbac_policy\u0027, \u0027address_scope\u0027]"},{"line_number":230,"context_line":"        if not cmd_resource:"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_6cb3df0a","line":227,"in_reply_to":"fa1b9901_09f039fd","updated":"2015-08-20 18:02:42.000000000","message":"Done","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"62f984f85721130f4cb97cebe30d26f1dab0dffd","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                              \u0027metering_label_rule\u0027, \u0027net_partition\u0027,"},{"line_number":49,"context_line":"                              \u0027fox_socket\u0027, \u0027subnetpool\u0027,"},{"line_number":50,"context_line":"                              \u0027rbac_policy\u0027, \u0027address_scope\u0027,"},{"line_number":51,"context_line":"                              \u0027flavor\u0027, \u0027service_profile\u0027]"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"@contextlib.contextmanager"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_9f033710","line":51,"updated":"2015-08-25 15:56:23.000000000","message":"Let\u0027s start using \"register_non_admin_status_resource\" for registering new resource. This is just a work-around for existing resources.","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"ab62d4bb67e26e5169a3f6419b9ba0e82c6e2f16","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                              \u0027metering_label_rule\u0027, \u0027net_partition\u0027,"},{"line_number":49,"context_line":"                              \u0027fox_socket\u0027, \u0027subnetpool\u0027,"},{"line_number":50,"context_line":"                              \u0027rbac_policy\u0027, \u0027address_scope\u0027,"},{"line_number":51,"context_line":"                              \u0027flavor\u0027, \u0027service_profile\u0027]"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"@contextlib.contextmanager"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_a1893228","line":51,"in_reply_to":"fa1b9901_9f033710","updated":"2015-08-25 21:31:57.000000000","message":"Done","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"}],"neutronclient/v2_0/client.py":[{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"f3bd5244c911594ac87b495f89f86f1b92dba3b6","unresolved":false,"context_lines":[{"line_number":1444,"context_line":""},{"line_number":1445,"context_line":"    @APIParamsCall"},{"line_number":1446,"context_line":"    def delete_flavor(self, flavor):"},{"line_number":1447,"context_line":"        \"\"\"Deletes the specified flavor.\"\"\""},{"line_number":1448,"context_line":"        return self.delete(self.flavor_path % (flavor))"},{"line_number":1449,"context_line":""},{"line_number":1450,"context_line":"    @APIParamsCall"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_a9c7cd96","line":1447,"updated":"2015-08-20 04:52:36.000000000","message":"It will be better if we can be consistent. Can find \"service flavor\" at some places and and just \"flavor\" at other places.","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"1fc916263a49f34525af925f109b26e531b50bff","unresolved":false,"context_lines":[{"line_number":1444,"context_line":""},{"line_number":1445,"context_line":"    @APIParamsCall"},{"line_number":1446,"context_line":"    def delete_flavor(self, flavor):"},{"line_number":1447,"context_line":"        \"\"\"Deletes the specified flavor.\"\"\""},{"line_number":1448,"context_line":"        return self.delete(self.flavor_path % (flavor))"},{"line_number":1449,"context_line":""},{"line_number":1450,"context_line":"    @APIParamsCall"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_274f4038","line":1447,"in_reply_to":"fa1b9901_a9c7cd96","updated":"2015-08-20 18:02:42.000000000","message":"Changed to consistently refer to \u0027Neutron service flavor\u0027 in comments, as distinguished from a nova flavor or the earlier Neutron network flavor work.  The resource remains \u0027flavor\u0027 but the enriched comments exist to help clarify what flavor exactly is being worked on.","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"f3bd5244c911594ac87b495f89f86f1b92dba3b6","unresolved":false,"context_lines":[{"line_number":1448,"context_line":"        return self.delete(self.flavor_path % (flavor))"},{"line_number":1449,"context_line":""},{"line_number":1450,"context_line":"    @APIParamsCall"},{"line_number":1451,"context_line":"    def list_flavors(self, retrieve_all\u003dTrue, **_params):"},{"line_number":1452,"context_line":"        \"\"\"Fetches a list of all flavors for a tenant.\"\"\""},{"line_number":1453,"context_line":"        return self.list(\u0027flavors\u0027, self.flavors_path, retrieve_all,"},{"line_number":1454,"context_line":"                         **_params)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_e95f05e3","line":1451,"updated":"2015-08-20 04:52:36.000000000","message":"It\u0027s always good to append the new functions at the end.","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"1fc916263a49f34525af925f109b26e531b50bff","unresolved":false,"context_lines":[{"line_number":1448,"context_line":"        return self.delete(self.flavor_path % (flavor))"},{"line_number":1449,"context_line":""},{"line_number":1450,"context_line":"    @APIParamsCall"},{"line_number":1451,"context_line":"    def list_flavors(self, retrieve_all\u003dTrue, **_params):"},{"line_number":1452,"context_line":"        \"\"\"Fetches a list of all flavors for a tenant.\"\"\""},{"line_number":1453,"context_line":"        return self.list(\u0027flavors\u0027, self.flavors_path, retrieve_all,"},{"line_number":1454,"context_line":"                         **_params)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_6c98bf6a","line":1451,"in_reply_to":"fa1b9901_e95f05e3","updated":"2015-08-20 18:02:42.000000000","message":"Done","commit_id":"f75b1bad115c47b2f165059e98a22a7ee3d6fc3b"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"dabf5f7423110db9805cea0034c39792ecc6c193","unresolved":false,"context_lines":[{"line_number":427,"context_line":"    firewall_policy_remove_path \u003d \"/fw/firewall_policies/%s/remove_rule\""},{"line_number":428,"context_line":"    firewalls_path \u003d \"/fw/firewalls\""},{"line_number":429,"context_line":"    firewall_path \u003d \"/fw/firewalls/%s\""},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    net_partitions_path \u003d \"/net-partitions\""},{"line_number":432,"context_line":"    net_partition_path \u003d \"/net-partitions/%s\""},{"line_number":433,"context_line":"    rbac_policies_path \u003d \"/rbac-policies\""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_fd3f7f84","line":430,"updated":"2015-08-21 07:52:10.000000000","message":"Why to have an additional new line over here?","commit_id":"d93bb68b42792db2ea6fbb84d9c679a65d70a943"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"dabf5f7423110db9805cea0034c39792ecc6c193","unresolved":false,"context_lines":[{"line_number":1697,"context_line":""},{"line_number":1698,"context_line":"    @APIParamsCall"},{"line_number":1699,"context_line":"    def associate_flavor(self, flavor, body):"},{"line_number":1700,"context_line":"        \"\"\"Associate a flavor with a profile.\"\"\""},{"line_number":1701,"context_line":"        return self.post(self.flavor_profile_bindings_path %"},{"line_number":1702,"context_line":"                         (flavor), body\u003dbody)"},{"line_number":1703,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_5def8b1d","line":1700,"updated":"2015-08-21 07:52:10.000000000","message":"How about naming flavor --\u003e \"Neutron service flavor\" for consistency?","commit_id":"d93bb68b42792db2ea6fbb84d9c679a65d70a943"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"983e7ddd59fc16ec9afa143401d5ef13cbe804c9","unresolved":false,"context_lines":[{"line_number":1697,"context_line":""},{"line_number":1698,"context_line":"    @APIParamsCall"},{"line_number":1699,"context_line":"    def associate_flavor(self, flavor, body):"},{"line_number":1700,"context_line":"        \"\"\"Associate a flavor with a profile.\"\"\""},{"line_number":1701,"context_line":"        return self.post(self.flavor_profile_bindings_path %"},{"line_number":1702,"context_line":"                         (flavor), body\u003dbody)"},{"line_number":1703,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_21a9d47b","line":1700,"in_reply_to":"fa1b9901_5def8b1d","updated":"2015-08-25 15:33:37.000000000","message":"Done","commit_id":"d93bb68b42792db2ea6fbb84d9c679a65d70a943"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"dabf5f7423110db9805cea0034c39792ecc6c193","unresolved":false,"context_lines":[{"line_number":1714,"context_line":""},{"line_number":1715,"context_line":"    @APIParamsCall"},{"line_number":1716,"context_line":"    def delete_service_profile(self, flavor_profile):"},{"line_number":1717,"context_line":"        \"\"\"Deletes the specified service flavor profile.\"\"\""},{"line_number":1718,"context_line":"        return self.delete(self.service_profile_path % (flavor_profile))"},{"line_number":1719,"context_line":""},{"line_number":1720,"context_line":"    @APIParamsCall"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_5dd6ab4f","line":1717,"updated":"2015-08-21 07:52:10.000000000","message":"How about naming service flavor --\u003e \"Neutron service flavor\" for consistency?","commit_id":"d93bb68b42792db2ea6fbb84d9c679a65d70a943"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"983e7ddd59fc16ec9afa143401d5ef13cbe804c9","unresolved":false,"context_lines":[{"line_number":1714,"context_line":""},{"line_number":1715,"context_line":"    @APIParamsCall"},{"line_number":1716,"context_line":"    def delete_service_profile(self, flavor_profile):"},{"line_number":1717,"context_line":"        \"\"\"Deletes the specified service flavor profile.\"\"\""},{"line_number":1718,"context_line":"        return self.delete(self.service_profile_path % (flavor_profile))"},{"line_number":1719,"context_line":""},{"line_number":1720,"context_line":"    @APIParamsCall"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa1b9901_c1b6d8db","line":1717,"in_reply_to":"fa1b9901_5dd6ab4f","updated":"2015-08-25 15:33:37.000000000","message":"Done","commit_id":"d93bb68b42792db2ea6fbb84d9c679a65d70a943"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"62f984f85721130f4cb97cebe30d26f1dab0dffd","unresolved":false,"context_lines":[{"line_number":427,"context_line":"    firewall_policy_remove_path \u003d \"/fw/firewall_policies/%s/remove_rule\""},{"line_number":428,"context_line":"    firewalls_path \u003d \"/fw/firewalls\""},{"line_number":429,"context_line":"    firewall_path \u003d \"/fw/firewalls/%s\""},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    net_partitions_path \u003d \"/net-partitions\""},{"line_number":432,"context_line":"    net_partition_path \u003d \"/net-partitions/%s\""},{"line_number":433,"context_line":"    rbac_policies_path \u003d \"/rbac-policies\""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_51b83375","line":430,"updated":"2015-08-25 15:56:23.000000000","message":"I think this extra-line is un-necessary. Please remove.","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"ab62d4bb67e26e5169a3f6419b9ba0e82c6e2f16","unresolved":false,"context_lines":[{"line_number":427,"context_line":"    firewall_policy_remove_path \u003d \"/fw/firewall_policies/%s/remove_rule\""},{"line_number":428,"context_line":"    firewalls_path \u003d \"/fw/firewalls\""},{"line_number":429,"context_line":"    firewall_path \u003d \"/fw/firewalls/%s\""},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    net_partitions_path \u003d \"/net-partitions\""},{"line_number":432,"context_line":"    net_partition_path \u003d \"/net-partitions/%s\""},{"line_number":433,"context_line":"    rbac_policies_path \u003d \"/rbac-policies\""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_fe002b04","line":430,"in_reply_to":"fa1b9901_51b83375","updated":"2015-08-25 21:31:57.000000000","message":"Done","commit_id":"fd3be6a506d5445b1fb2105854e38d0437d43f00"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"641849d6ebdd0510f4fde375442dafddc556275d","unresolved":false,"context_lines":[{"line_number":1744,"context_line":"        return self.delete(self.qos_bandwidth_limit_rule_path %"},{"line_number":1745,"context_line":"                           (policy, rule))"},{"line_number":1746,"context_line":""},{"line_number":1747,"context_line":"    def create_flavor(self, body\u003dNone):"},{"line_number":1748,"context_line":"        \"\"\"Creates a new Neutron service flavor.\"\"\""},{"line_number":1749,"context_line":"        return self.post(self.flavors_path, body\u003dbody)"},{"line_number":1750,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_cf1e585f","line":1747,"updated":"2015-10-01 15:44:56.000000000","message":"@APIParamsCall decorator is missing.","commit_id":"45f0e40078cbc039dd690ae43f54f9631f593631"},{"author":{"_account_id":12999,"name":"James Arendt","email":"james.arendt@hpe.com","username":"jwarendt"},"change_message_id":"c76953851056b67c03293b3f53956dfc182a5bb2","unresolved":false,"context_lines":[{"line_number":1744,"context_line":"        return self.delete(self.qos_bandwidth_limit_rule_path %"},{"line_number":1745,"context_line":"                           (policy, rule))"},{"line_number":1746,"context_line":""},{"line_number":1747,"context_line":"    def create_flavor(self, body\u003dNone):"},{"line_number":1748,"context_line":"        \"\"\"Creates a new Neutron service flavor.\"\"\""},{"line_number":1749,"context_line":"        return self.post(self.flavors_path, body\u003dbody)"},{"line_number":1750,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7a2fa921_267f8667","line":1747,"in_reply_to":"9a1a9d01_cf1e585f","updated":"2015-10-07 23:38:50.000000000","message":"Done","commit_id":"45f0e40078cbc039dd690ae43f54f9631f593631"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"0dad65b7fff2c777a10143c68a8e34c6fe91fff3","unresolved":false,"context_lines":[{"line_number":439,"context_line":"    qos_rule_type_path \u003d \"/qos/rule-types/%s\""},{"line_number":440,"context_line":"    flavors_path \u003d \"/flavors\""},{"line_number":441,"context_line":"    flavor_path \u003d \"/flavors/%s\""},{"line_number":442,"context_line":"    flavor_profile_bindings_path \u003d \"/flavors/%s/service_profiles\""},{"line_number":443,"context_line":"    flavor_profile_binding_path \u003d \"/flavors/%s/service_profiles/%s\""},{"line_number":444,"context_line":"    service_profiles_path \u003d \"/service_profiles\""},{"line_number":445,"context_line":"    service_profile_path \u003d \"/service_profiles/%s\""}],"source_content_type":"text/x-python","patch_set":12,"id":"3a29b11f_86b92131","line":442,"updated":"2015-10-19 07:59:55.000000000","message":"How about defining flavor_profile_bindings_path as \n\nflavor_profile_bindings_path \u003d flavor_path + service_profiles_path","commit_id":"a094b3c7486b59f9cca663fd09298149037a6b56"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"0dad65b7fff2c777a10143c68a8e34c6fe91fff3","unresolved":false,"context_lines":[{"line_number":440,"context_line":"    flavors_path \u003d \"/flavors\""},{"line_number":441,"context_line":"    flavor_path \u003d \"/flavors/%s\""},{"line_number":442,"context_line":"    flavor_profile_bindings_path \u003d \"/flavors/%s/service_profiles\""},{"line_number":443,"context_line":"    flavor_profile_binding_path \u003d \"/flavors/%s/service_profiles/%s\""},{"line_number":444,"context_line":"    service_profiles_path \u003d \"/service_profiles\""},{"line_number":445,"context_line":"    service_profile_path \u003d \"/service_profiles/%s\""},{"line_number":446,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"3a29b11f_46e9c919","line":443,"updated":"2015-10-19 07:59:55.000000000","message":"ditto","commit_id":"a094b3c7486b59f9cca663fd09298149037a6b56"}]}
