)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"afb9a4ac243b51ddb3b65dfe3bc604e9f9a6c968","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"I think I am missing something because I have been only to use"},{"line_number":17,"context_line":"the command by doing the following:"},{"line_number":18,"context_line":"    1. $ openstack --os-database-api-version 1"},{"line_number":19,"context_line":"    2. $(openstack) flavor list"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Use the debug flag to see the calls being made to the correct code."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a74a57a_ed482930","line":18,"range":{"start_line":18,"start_character":19,"end_line":18,"end_character":46},"updated":"2016-11-23 15:13:22.000000000","message":"This should be optional similar to something like:\n\n  --os-image-api-version \u003cimage-api-version\u003e\n                           Image API version, default\u003d1 (Env:\n                           OS_IMAGE_API_VERSION)","commit_id":"8c2dd4612ae116ae3ba1d59696099402070bbb0c"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"afb9a4ac243b51ddb3b65dfe3bc604e9f9a6c968","unresolved":false,"context_lines":[{"line_number":16,"context_line":"I think I am missing something because I have been only to use"},{"line_number":17,"context_line":"the command by doing the following:"},{"line_number":18,"context_line":"    1. $ openstack --os-database-api-version 1"},{"line_number":19,"context_line":"    2. $(openstack) flavor list"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Use the debug flag to see the calls being made to the correct code."},{"line_number":22,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a74a57a_ed93c9a1","line":19,"range":{"start_line":19,"start_character":20,"end_line":19,"end_character":31},"updated":"2016-11-23 15:13:22.000000000","message":"This is a bit confusing, if I do `openstack flavor list` I\u0027d expect the flavor from nova, not through trove.","commit_id":"8c2dd4612ae116ae3ba1d59696099402070bbb0c"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"867fa4d92d174de310c1cbc682ebcf2af3da6349","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Trevor McCasland \u003cTM2086@att.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-11-23 10:44:24 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add OpenStackClient plugin and flavor list"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change adds database support to the python-openstackclient"},{"line_number":10,"context_line":"through a plugin and tests."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a74a57a_cc1d2611","line":7,"range":{"start_line":7,"start_character":31,"end_line":7,"end_character":42},"updated":"2016-11-27 04:06:34.000000000","message":"database flavor list","commit_id":"c34bbd76f62a05183262a5b8e6cad5fe24a8b04d"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"ef06fdf7b8aa071f1596abef31a5da7cad6501fc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Trevor McCasland \u003cTM2086@att.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-11-23 10:44:24 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add OpenStackClient plugin and flavor list"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change adds database support to the python-openstackclient"},{"line_number":10,"context_line":"through a plugin and tests."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5a74a57a_e7d426ed","line":7,"range":{"start_line":7,"start_character":31,"end_line":7,"end_character":42},"in_reply_to":"5a74a57a_cc1d2611","updated":"2016-11-28 19:21:03.000000000","message":"Done","commit_id":"c34bbd76f62a05183262a5b8e6cad5fe24a8b04d"}],"setup.cfg":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"5630d8a170e72b945ed0a26dee8f455decfedc0f","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    database \u003d troveclient.osc.plugin"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"openstack.database.v1 \u003d"},{"line_number":33,"context_line":"    flavor_list \u003d troveclient.osc.v1.flavors:ListFlavors"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"[build_sphinx]"},{"line_number":36,"context_line":"all_files \u003d 1"}],"source_content_type":"text/x-ttcn-cfg","patch_set":1,"id":"5a74a57a_0e78fbf1","line":33,"updated":"2016-11-23 16:17:15.000000000","message":"To get the command to be \u0027database flavor list\u0027 you need to change the above to:\n\n database_flavor_list \u003d troveclient.osc.v1.flavors:ListFlavors","commit_id":"8c2dd4612ae116ae3ba1d59696099402070bbb0c"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"867fa4d92d174de310c1cbc682ebcf2af3da6349","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    database \u003d troveclient.osc.plugin"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"openstack.database.v1 \u003d"},{"line_number":33,"context_line":"    database_flavor_list \u003d troveclient.osc.v1.flavors:ListFlavors"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"[build_sphinx]"},{"line_number":36,"context_line":"all_files \u003d 1"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"5a74a57a_6c26d269","line":33,"range":{"start_line":33,"start_character":46,"end_line":33,"end_character":53},"updated":"2016-11-27 04:06:34.000000000","message":"and this database_flavors","commit_id":"c34bbd76f62a05183262a5b8e6cad5fe24a8b04d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"867fa4d92d174de310c1cbc682ebcf2af3da6349","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    database \u003d troveclient.osc.plugin"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"openstack.database.v1 \u003d"},{"line_number":33,"context_line":"    database_flavor_list \u003d troveclient.osc.v1.flavors:ListFlavors"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"[build_sphinx]"},{"line_number":36,"context_line":"all_files \u003d 1"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"5a74a57a_2c2cda49","line":33,"range":{"start_line":33,"start_character":54,"end_line":33,"end_character":65},"updated":"2016-11-27 04:06:34.000000000","message":"this is up to you, but I\u0027d call this ListDatabaseFlavors","commit_id":"c34bbd76f62a05183262a5b8e6cad5fe24a8b04d"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"ef06fdf7b8aa071f1596abef31a5da7cad6501fc","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    database \u003d troveclient.osc.plugin"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"openstack.database.v1 \u003d"},{"line_number":33,"context_line":"    database_flavor_list \u003d troveclient.osc.v1.flavors:ListFlavors"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"[build_sphinx]"},{"line_number":36,"context_line":"all_files \u003d 1"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"5a74a57a_82052012","line":33,"range":{"start_line":33,"start_character":54,"end_line":33,"end_character":65},"in_reply_to":"5a74a57a_2c2cda49","updated":"2016-11-28 19:21:03.000000000","message":"Done","commit_id":"c34bbd76f62a05183262a5b8e6cad5fe24a8b04d"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"ef06fdf7b8aa071f1596abef31a5da7cad6501fc","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    database \u003d troveclient.osc.plugin"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"openstack.database.v1 \u003d"},{"line_number":33,"context_line":"    database_flavor_list \u003d troveclient.osc.v1.flavors:ListFlavors"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"[build_sphinx]"},{"line_number":36,"context_line":"all_files \u003d 1"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"5a74a57a_c20b9822","line":33,"range":{"start_line":33,"start_character":46,"end_line":33,"end_character":53},"in_reply_to":"5a74a57a_6c26d269","updated":"2016-11-28 19:21:03.000000000","message":"Done","commit_id":"c34bbd76f62a05183262a5b8e6cad5fe24a8b04d"}],"troveclient/osc/v1/database_flavors.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"dc9fbd6f0a6aae75d0d763b7bccee181ae8b1018","unresolved":false,"context_lines":[{"line_number":24,"context_line":"class ListDatabaseFlavors(command.Lister):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    _description \u003d _(\"List database flavors\")"},{"line_number":27,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.ListDatabaseFlavors\u0027)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def get_parser(self, prog_name):"},{"line_number":30,"context_line":"        parser \u003d super(ListDatabaseFlavors, self).get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_bb3de12c","line":27,"range":{"start_line":27,"start_character":4,"end_line":27,"end_character":62},"updated":"2016-11-28 19:29:26.000000000","message":"if you are inheriting from osc-lib\u0027s command, you don\u0027t need to setup log here or on line 46 -\u003e https://github.com/openstack/osc-lib/blob/master/osc_lib/command/command.py#L27-L33","commit_id":"54c13733c83bc0580958f826b93f7294249e8e50"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"8c406b96ece0edffe0f793886faf1ef59a9d81e2","unresolved":false,"context_lines":[{"line_number":24,"context_line":"class ListDatabaseFlavors(command.Lister):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    _description \u003d _(\"List database flavors\")"},{"line_number":27,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.ListDatabaseFlavors\u0027)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def get_parser(self, prog_name):"},{"line_number":30,"context_line":"        parser \u003d super(ListDatabaseFlavors, self).get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_db57fd23","line":27,"range":{"start_line":27,"start_character":4,"end_line":27,"end_character":62},"in_reply_to":"5a74a57a_bb3de12c","updated":"2016-11-28 19:34:26.000000000","message":"Done","commit_id":"54c13733c83bc0580958f826b93f7294249e8e50"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"dc9fbd6f0a6aae75d0d763b7bccee181ae8b1018","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        return parser"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def take_action(self, parsed_args):"},{"line_number":46,"context_line":"        self.log.debug(\"take_action(%s)\", parsed_args)"},{"line_number":47,"context_line":"        trove_flavors \u003d self.app.client_manager.database.flavors"},{"line_number":48,"context_line":"        if parsed_args.datastore_type and parsed_args.datastore_version_id:"},{"line_number":49,"context_line":"            flavors \u003d trove_flavors.list_datastore_version_associated_flavors("}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_fb43d9ac","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":54},"updated":"2016-11-28 19:29:26.000000000","message":"i think we print this automatically now: https://github.com/openstack/osc-lib/blob/master/osc_lib/command/command.py#L40","commit_id":"54c13733c83bc0580958f826b93f7294249e8e50"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"8c406b96ece0edffe0f793886faf1ef59a9d81e2","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        return parser"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def take_action(self, parsed_args):"},{"line_number":46,"context_line":"        self.log.debug(\"take_action(%s)\", parsed_args)"},{"line_number":47,"context_line":"        trove_flavors \u003d self.app.client_manager.database.flavors"},{"line_number":48,"context_line":"        if parsed_args.datastore_type and parsed_args.datastore_version_id:"},{"line_number":49,"context_line":"            flavors \u003d trove_flavors.list_datastore_version_associated_flavors("}],"source_content_type":"text/x-python","patch_set":3,"id":"5a74a57a_fb52f933","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":54},"in_reply_to":"5a74a57a_fb43d9ac","updated":"2016-11-28 19:34:26.000000000","message":"Done","commit_id":"54c13733c83bc0580958f826b93f7294249e8e50"}],"troveclient/osc/v1/flavors.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"867fa4d92d174de310c1cbc682ebcf2af3da6349","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ListFlavors(command.Lister):"},{"line_number":25,"context_line":"    \"\"\"List flavors\"\"\""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.ListFlavors\u0027)"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a74a57a_30acc38b","line":25,"range":{"start_line":25,"start_character":4,"end_line":25,"end_character":22},"updated":"2016-11-27 04:06:34.000000000","message":"OSC has recently changed to using a class variable -- _description to handle the help text being translated. So, you can do this later, but if you intend to handle translations, this should be:\n\n  _description \u003d _(\"List database flavors\")","commit_id":"c34bbd76f62a05183262a5b8e6cad5fe24a8b04d"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"ef06fdf7b8aa071f1596abef31a5da7cad6501fc","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ListFlavors(command.Lister):"},{"line_number":25,"context_line":"    \"\"\"List flavors\"\"\""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    log \u003d logging.getLogger(__name__ + \u0027.ListFlavors\u0027)"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a74a57a_a2577cc8","line":25,"range":{"start_line":25,"start_character":4,"end_line":25,"end_character":22},"in_reply_to":"5a74a57a_30acc38b","updated":"2016-11-28 19:21:03.000000000","message":"Done","commit_id":"c34bbd76f62a05183262a5b8e6cad5fe24a8b04d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"867fa4d92d174de310c1cbc682ebcf2af3da6349","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        # Fallback to str_id where necessary."},{"line_number":59,"context_line":"        _flavors \u003d []"},{"line_number":60,"context_line":"        columns \u003d [\u0027id\u0027, \u0027name\u0027, \u0027RAM\u0027, \u0027vCPUs\u0027, \u0027Disk\u0027, \u0027ephemeral\u0027]"},{"line_number":61,"context_line":"        for f in flavors:"},{"line_number":62,"context_line":"            if not f.id and hasattr(f, \u0027str_id\u0027):"},{"line_number":63,"context_line":"                f.id \u003d f.str_id"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a74a57a_90bd97b9","line":60,"range":{"start_line":60,"start_character":8,"end_line":60,"end_character":69},"updated":"2016-11-27 04:06:34.000000000","message":"a neat \"feature\" of get_item_properties() is that the column headers are mapped for free! \n\nSo even if you specify \"ID\" or \"Name\" \"Database Name\" in the \"columns\" variable, and the data returned is: \"id\", \"name\" and \"database_name\", they will be automatically mapped! \n\nSo try to use proper caps where possible :)","commit_id":"c34bbd76f62a05183262a5b8e6cad5fe24a8b04d"},{"author":{"_account_id":20378,"name":"Trevor McCasland","email":"TM2086@att.com","username":"twm2016"},"change_message_id":"ef06fdf7b8aa071f1596abef31a5da7cad6501fc","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        # Fallback to str_id where necessary."},{"line_number":59,"context_line":"        _flavors \u003d []"},{"line_number":60,"context_line":"        columns \u003d [\u0027id\u0027, \u0027name\u0027, \u0027RAM\u0027, \u0027vCPUs\u0027, \u0027Disk\u0027, \u0027ephemeral\u0027]"},{"line_number":61,"context_line":"        for f in flavors:"},{"line_number":62,"context_line":"            if not f.id and hasattr(f, \u0027str_id\u0027):"},{"line_number":63,"context_line":"                f.id \u003d f.str_id"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a74a57a_42fea8ae","line":60,"range":{"start_line":60,"start_character":8,"end_line":60,"end_character":69},"in_reply_to":"5a74a57a_90bd97b9","updated":"2016-11-28 19:21:03.000000000","message":"Done","commit_id":"c34bbd76f62a05183262a5b8e6cad5fe24a8b04d"}]}
