)]}'
{"openstackclient/compute/v2/flavor.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"8be77faad7a1d54911d0915f2052f0f2444b1c01","unresolved":false,"context_lines":[{"line_number":391,"context_line":"                            for access in flavor_access]"},{"line_number":392,"context_line":"                access_projects \u003d utils.format_list(projects)"},{"line_number":393,"context_line":"            except Exception as e:"},{"line_number":394,"context_line":"                LOG.error(_(\"Failed to get access projects list: %s\"), e)"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        flavor \u003d resource_flavor._info.copy()"},{"line_number":397,"context_line":"        flavor.update({"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_0b73dde8","line":394,"range":{"start_line":394,"start_character":16,"end_line":394,"end_character":73},"updated":"2016-07-07 21:01:08.000000000","message":"will most users be able to access this data? I would not like to have users see this message every time they try to see information about any flavor","commit_id":"10b0b0f13f705fd3259eb5550bf23a8cfee97847"},{"author":{"_account_id":21514,"name":"Huanxuan Ao","email":"aohuanxuan@163.com","username":"aohuanxuan"},"change_message_id":"0493ad2bfb8f6bfec4463090450bce93d59e2cb9","unresolved":false,"context_lines":[{"line_number":391,"context_line":"                            for access in flavor_access]"},{"line_number":392,"context_line":"                access_projects \u003d utils.format_list(projects)"},{"line_number":393,"context_line":"            except Exception as e:"},{"line_number":394,"context_line":"                LOG.error(_(\"Failed to get access projects list: %s\"), e)"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        flavor \u003d resource_flavor._info.copy()"},{"line_number":397,"context_line":"        flavor.update({"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_7716bbf2","line":394,"range":{"start_line":394,"start_character":16,"end_line":394,"end_character":73},"in_reply_to":"1aa78d24_0b73dde8","updated":"2016-07-08 02:08:52.000000000","message":"we can always get the access list of a private flavor successfully. I just use error handling in case of some exceptions","commit_id":"10b0b0f13f705fd3259eb5550bf23a8cfee97847"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"8be77faad7a1d54911d0915f2052f0f2444b1c01","unresolved":false,"context_lines":[{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        flavor \u003d resource_flavor._info.copy()"},{"line_number":397,"context_line":"        flavor.update({"},{"line_number":398,"context_line":"            \u0027access_project_id\u0027: access_projects"},{"line_number":399,"context_line":"        })"},{"line_number":400,"context_line":"        flavor.pop(\"links\", None)"},{"line_number":401,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_cb5d557b","line":398,"range":{"start_line":398,"start_character":13,"end_line":398,"end_character":30},"updated":"2016-07-07 21:01:08.000000000","message":"these are just keystone projects right? can we just say \"Project IDs\" instead?","commit_id":"10b0b0f13f705fd3259eb5550bf23a8cfee97847"},{"author":{"_account_id":21514,"name":"Huanxuan Ao","email":"aohuanxuan@163.com","username":"aohuanxuan"},"change_message_id":"0493ad2bfb8f6bfec4463090450bce93d59e2cb9","unresolved":false,"context_lines":[{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        flavor \u003d resource_flavor._info.copy()"},{"line_number":397,"context_line":"        flavor.update({"},{"line_number":398,"context_line":"            \u0027access_project_id\u0027: access_projects"},{"line_number":399,"context_line":"        })"},{"line_number":400,"context_line":"        flavor.pop(\"links\", None)"},{"line_number":401,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_0a258e5b","line":398,"range":{"start_line":398,"start_character":13,"end_line":398,"end_character":30},"in_reply_to":"1aa78d24_cb5d557b","updated":"2016-07-08 02:08:52.000000000","message":"Usually uppercase is not used in attribute of show command.\nMaybe \"project_ids\" is OK?","commit_id":"10b0b0f13f705fd3259eb5550bf23a8cfee97847"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"08a1d4d622e81ccd53709de4f82ee79c0b5c835f","unresolved":false,"context_lines":[{"line_number":389,"context_line":"                    flavor\u003dresource_flavor.id)"},{"line_number":390,"context_line":"                projects \u003d [utils.get_field(access, \u0027tenant_id\u0027)"},{"line_number":391,"context_line":"                            for access in flavor_access]"},{"line_number":392,"context_line":"                access_projects \u003d utils.format_list(projects)"},{"line_number":393,"context_line":"            except Exception as e:"},{"line_number":394,"context_line":"                LOG.error(_(\"Failed to get access projects list: %s\"), e)"},{"line_number":395,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_23c7d313","line":392,"updated":"2016-07-18 12:15:18.000000000","message":"Doug push a patch in cliff to address these format cases, so I think you shouldn\u0027t format the project list at here. Might you can add a #TODO to remind it.\n\nhttps://review.openstack.org/#/c/330223/","commit_id":"7186a0ed6f302ea45b9e8b4285049e543ecc2a00"},{"author":{"_account_id":21514,"name":"Huanxuan Ao","email":"aohuanxuan@163.com","username":"aohuanxuan"},"change_message_id":"d8966797269540e299e05e9ce3302b0f46ea0d0f","unresolved":false,"context_lines":[{"line_number":389,"context_line":"                    flavor\u003dresource_flavor.id)"},{"line_number":390,"context_line":"                projects \u003d [utils.get_field(access, \u0027tenant_id\u0027)"},{"line_number":391,"context_line":"                            for access in flavor_access]"},{"line_number":392,"context_line":"                access_projects \u003d utils.format_list(projects)"},{"line_number":393,"context_line":"            except Exception as e:"},{"line_number":394,"context_line":"                LOG.error(_(\"Failed to get access projects list: %s\"), e)"},{"line_number":395,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_11a3d450","line":392,"in_reply_to":"dada55a8_23c7d313","updated":"2016-07-19 03:11:04.000000000","message":"Sure, since the patch in cliff not be merged yet, I will add a #TODO to remind it.","commit_id":"7186a0ed6f302ea45b9e8b4285049e543ecc2a00"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"08a1d4d622e81ccd53709de4f82ee79c0b5c835f","unresolved":false,"context_lines":[{"line_number":391,"context_line":"                            for access in flavor_access]"},{"line_number":392,"context_line":"                access_projects \u003d utils.format_list(projects)"},{"line_number":393,"context_line":"            except Exception as e:"},{"line_number":394,"context_line":"                LOG.error(_(\"Failed to get access projects list: %s\"), e)"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        flavor \u003d resource_flavor._info.copy()"},{"line_number":397,"context_line":"        flavor.update({"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_76486b2e","line":394,"updated":"2016-07-18 12:15:18.000000000","message":"I think adding flavor id or name into error message make sense.","commit_id":"7186a0ed6f302ea45b9e8b4285049e543ecc2a00"},{"author":{"_account_id":21514,"name":"Huanxuan Ao","email":"aohuanxuan@163.com","username":"aohuanxuan"},"change_message_id":"d8966797269540e299e05e9ce3302b0f46ea0d0f","unresolved":false,"context_lines":[{"line_number":391,"context_line":"                            for access in flavor_access]"},{"line_number":392,"context_line":"                access_projects \u003d utils.format_list(projects)"},{"line_number":393,"context_line":"            except Exception as e:"},{"line_number":394,"context_line":"                LOG.error(_(\"Failed to get access projects list: %s\"), e)"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        flavor \u003d resource_flavor._info.copy()"},{"line_number":397,"context_line":"        flavor.update({"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_11bab46e","line":394,"in_reply_to":"dada55a8_76486b2e","updated":"2016-07-19 03:11:04.000000000","message":"Done.","commit_id":"7186a0ed6f302ea45b9e8b4285049e543ecc2a00"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"08a1d4d622e81ccd53709de4f82ee79c0b5c835f","unresolved":false,"context_lines":[{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        flavor \u003d resource_flavor._info.copy()"},{"line_number":397,"context_line":"        flavor.update({"},{"line_number":398,"context_line":"            \u0027project_ids\u0027: access_projects"},{"line_number":399,"context_line":"        })"},{"line_number":400,"context_line":"        flavor.pop(\"links\", None)"},{"line_number":401,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_96d19ffe","line":398,"range":{"start_line":398,"start_character":13,"end_line":398,"end_character":24},"updated":"2016-07-18 12:15:18.000000000","message":"I prefer \u0027access_project_ids\u0027, that can avoid the confusion about flavor\u0027s project vs flavor\u0027s access project. Maybe others can share shorter and clearer name :-)","commit_id":"7186a0ed6f302ea45b9e8b4285049e543ecc2a00"},{"author":{"_account_id":21514,"name":"Huanxuan Ao","email":"aohuanxuan@163.com","username":"aohuanxuan"},"change_message_id":"d8966797269540e299e05e9ce3302b0f46ea0d0f","unresolved":false,"context_lines":[{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        flavor \u003d resource_flavor._info.copy()"},{"line_number":397,"context_line":"        flavor.update({"},{"line_number":398,"context_line":"            \u0027project_ids\u0027: access_projects"},{"line_number":399,"context_line":"        })"},{"line_number":400,"context_line":"        flavor.pop(\"links\", None)"},{"line_number":401,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_d1349cfc","line":398,"range":{"start_line":398,"start_character":13,"end_line":398,"end_character":24},"in_reply_to":"dada55a8_96d19ffe","updated":"2016-07-19 03:11:04.000000000","message":"Waiting more suggestions about the name.","commit_id":"7186a0ed6f302ea45b9e8b4285049e543ecc2a00"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"08a1d4d622e81ccd53709de4f82ee79c0b5c835f","unresolved":false,"context_lines":[{"line_number":396,"context_line":"        flavor \u003d resource_flavor._info.copy()"},{"line_number":397,"context_line":"        flavor.update({"},{"line_number":398,"context_line":"            \u0027project_ids\u0027: access_projects"},{"line_number":399,"context_line":"        })"},{"line_number":400,"context_line":"        flavor.pop(\"links\", None)"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        flavor[\u0027properties\u0027] \u003d utils.format_dict(resource_flavor.get_keys())"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_b94654bd","line":399,"updated":"2016-07-18 12:15:18.000000000","message":"Hiding the \"access project ids\" attribute in output table for public flavor or always showing the attribute no matter public or private flavor (it\u0027s a empty list for public flavor), I\u0027m not sure which one is better for UX, waiting others comments.","commit_id":"7186a0ed6f302ea45b9e8b4285049e543ecc2a00"},{"author":{"_account_id":21514,"name":"Huanxuan Ao","email":"aohuanxuan@163.com","username":"aohuanxuan"},"change_message_id":"d8966797269540e299e05e9ce3302b0f46ea0d0f","unresolved":false,"context_lines":[{"line_number":396,"context_line":"        flavor \u003d resource_flavor._info.copy()"},{"line_number":397,"context_line":"        flavor.update({"},{"line_number":398,"context_line":"            \u0027project_ids\u0027: access_projects"},{"line_number":399,"context_line":"        })"},{"line_number":400,"context_line":"        flavor.pop(\"links\", None)"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        flavor[\u0027properties\u0027] \u003d utils.format_dict(resource_flavor.get_keys())"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_5436dae7","line":399,"in_reply_to":"dada55a8_b94654bd","updated":"2016-07-19 03:11:04.000000000","message":"What about showing a mark such as \"/\" instead of a empty list if the flavor is public? Waiting more comments about this.","commit_id":"7186a0ed6f302ea45b9e8b4285049e543ecc2a00"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"c24f12c6a601f2c15b358b54eb3ec60a7304ed30","unresolved":false,"context_lines":[{"line_number":393,"context_line":"                # patch https://review.openstack.org/#/c/330223/ merged."},{"line_number":394,"context_line":"                access_projects \u003d utils.format_list(projects)"},{"line_number":395,"context_line":"            except Exception as e:"},{"line_number":396,"context_line":"                msg \u003d _(\"Failed to get access projects list \""},{"line_number":397,"context_line":"                        \"for flavor \u0027%(flavor)s\u0027: %(e)s\")"},{"line_number":398,"context_line":"                LOG.error(msg % {\u0027flavor\u0027: parsed_args.flavor, \u0027e\u0027: e})"},{"line_number":399,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_0f55401c","line":396,"updated":"2016-07-19 17:43:35.000000000","message":"Could this fail for non-admin?  If so, I don\u0027t think we want an error here for such cases.","commit_id":"c7fafb6ca37c344d7261eea9be907886d2814306"},{"author":{"_account_id":21514,"name":"Huanxuan Ao","email":"aohuanxuan@163.com","username":"aohuanxuan"},"change_message_id":"d84cc1c48e6582e29e53f02da59c0b111b5b772c","unresolved":false,"context_lines":[{"line_number":393,"context_line":"                # patch https://review.openstack.org/#/c/330223/ merged."},{"line_number":394,"context_line":"                access_projects \u003d utils.format_list(projects)"},{"line_number":395,"context_line":"            except Exception as e:"},{"line_number":396,"context_line":"                msg \u003d _(\"Failed to get access projects list \""},{"line_number":397,"context_line":"                        \"for flavor \u0027%(flavor)s\u0027: %(e)s\")"},{"line_number":398,"context_line":"                LOG.error(msg % {\u0027flavor\u0027: parsed_args.flavor, \u0027e\u0027: e})"},{"line_number":399,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_b934e2fb","line":396,"in_reply_to":"dada55a8_0f55401c","updated":"2016-07-21 10:50:53.000000000","message":"non-admin can not get a private flavor, _find_flavor() method (in line 382) will raise exception first.","commit_id":"c7fafb6ca37c344d7261eea9be907886d2814306"},{"author":{"_account_id":8410,"name":"Richard Theis","email":"rtheis@us.ibm.com","username":"rtheis"},"change_message_id":"554c094a10bc3c3ddba1996c350d961a5db0fbc5","unresolved":false,"context_lines":[{"line_number":393,"context_line":"                # patch https://review.openstack.org/#/c/330223/ merged."},{"line_number":394,"context_line":"                access_projects \u003d utils.format_list(projects)"},{"line_number":395,"context_line":"            except Exception as e:"},{"line_number":396,"context_line":"                msg \u003d _(\"Failed to get access projects list \""},{"line_number":397,"context_line":"                        \"for flavor \u0027%(flavor)s\u0027: %(e)s\")"},{"line_number":398,"context_line":"                LOG.error(msg % {\u0027flavor\u0027: parsed_args.flavor, \u0027e\u0027: e})"},{"line_number":399,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_0fae7ce5","line":396,"in_reply_to":"dada55a8_b934e2fb","updated":"2016-07-21 11:10:30.000000000","message":"That is good.","commit_id":"c7fafb6ca37c344d7261eea9be907886d2814306"},{"author":{"_account_id":21514,"name":"Huanxuan Ao","email":"aohuanxuan@163.com","username":"aohuanxuan"},"change_message_id":"ded69f3e86aa4bf0dc6c198f323e3c26ad9541eb","unresolved":false,"context_lines":[{"line_number":399,"context_line":""},{"line_number":400,"context_line":"        flavor \u003d resource_flavor._info.copy()"},{"line_number":401,"context_line":"        flavor.update({"},{"line_number":402,"context_line":"            \u0027project_ids\u0027: access_projects"},{"line_number":403,"context_line":"        })"},{"line_number":404,"context_line":"        flavor.pop(\"links\", None)"},{"line_number":405,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_8f1eec6d","line":402,"range":{"start_line":402,"start_character":12,"end_line":402,"end_character":25},"updated":"2016-07-21 11:24:08.000000000","message":"I don\u0027t sure about the name \"project_ids\", I saw the name in patch https://review.openstack.org/#/c/295026/ is \"access_project_ids\", I think we should keep the name consistent between these two patch before merged.","commit_id":"c7fafb6ca37c344d7261eea9be907886d2814306"}],"openstackclient/tests/compute/v2/test_flavor.py":[{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"08a1d4d622e81ccd53709de4f82ee79c0b5c835f","unresolved":false,"context_lines":[{"line_number":621,"context_line":"    # Return value of self.flavors_mock.find()."},{"line_number":622,"context_line":"    flavor_access \u003d compute_fakes.FakeFlavorAccess.create_one_flavor_access()"},{"line_number":623,"context_line":"    flavor \u003d compute_fakes.FakeFlavor.create_one_flavor("},{"line_number":624,"context_line":"        attrs\u003d{\u0027project_ids\u0027: None})"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    columns \u003d ("},{"line_number":627,"context_line":"        \u0027OS-FLV-DISABLED:disabled\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_99e71012","line":624,"range":{"start_line":624,"start_character":8,"end_line":624,"end_character":13},"updated":"2016-07-18 12:15:18.000000000","message":"\u0027project_ids\u0027 attribute of flavor is added if the flavor is private in take_action() method of \"flavor show\", so I think we don\u0027t need to add the \"attrs\" for the fake flavor object.","commit_id":"7186a0ed6f302ea45b9e8b4285049e543ecc2a00"},{"author":{"_account_id":21514,"name":"Huanxuan Ao","email":"aohuanxuan@163.com","username":"aohuanxuan"},"change_message_id":"d8966797269540e299e05e9ce3302b0f46ea0d0f","unresolved":false,"context_lines":[{"line_number":621,"context_line":"    # Return value of self.flavors_mock.find()."},{"line_number":622,"context_line":"    flavor_access \u003d compute_fakes.FakeFlavorAccess.create_one_flavor_access()"},{"line_number":623,"context_line":"    flavor \u003d compute_fakes.FakeFlavor.create_one_flavor("},{"line_number":624,"context_line":"        attrs\u003d{\u0027project_ids\u0027: None})"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    columns \u003d ("},{"line_number":627,"context_line":"        \u0027OS-FLV-DISABLED:disabled\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_54c09a7c","line":624,"range":{"start_line":624,"start_character":8,"end_line":624,"end_character":13},"in_reply_to":"dada55a8_99e71012","updated":"2016-07-19 03:11:04.000000000","message":"Done.","commit_id":"7186a0ed6f302ea45b9e8b4285049e543ecc2a00"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"08a1d4d622e81ccd53709de4f82ee79c0b5c835f","unresolved":false,"context_lines":[{"line_number":688,"context_line":"    def test_private_flavor_show(self):"},{"line_number":689,"context_line":"        private_flavor \u003d compute_fakes.FakeFlavor.create_one_flavor("},{"line_number":690,"context_line":"            attrs\u003d{"},{"line_number":691,"context_line":"                \u0027project_ids\u0027: self.flavor_access.tenant_id,"},{"line_number":692,"context_line":"                \u0027os-flavor-access:is_public\u0027: False,"},{"line_number":693,"context_line":"            }"},{"line_number":694,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_f9be0cd3","line":691,"range":{"start_line":691,"start_character":17,"end_line":691,"end_character":60},"updated":"2016-07-18 12:15:18.000000000","message":"ditto","commit_id":"7186a0ed6f302ea45b9e8b4285049e543ecc2a00"},{"author":{"_account_id":21514,"name":"Huanxuan Ao","email":"aohuanxuan@163.com","username":"aohuanxuan"},"change_message_id":"d8966797269540e299e05e9ce3302b0f46ea0d0f","unresolved":false,"context_lines":[{"line_number":688,"context_line":"    def test_private_flavor_show(self):"},{"line_number":689,"context_line":"        private_flavor \u003d compute_fakes.FakeFlavor.create_one_flavor("},{"line_number":690,"context_line":"            attrs\u003d{"},{"line_number":691,"context_line":"                \u0027project_ids\u0027: self.flavor_access.tenant_id,"},{"line_number":692,"context_line":"                \u0027os-flavor-access:is_public\u0027: False,"},{"line_number":693,"context_line":"            }"},{"line_number":694,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_f4370eae","line":691,"range":{"start_line":691,"start_character":17,"end_line":691,"end_character":60},"in_reply_to":"dada55a8_f9be0cd3","updated":"2016-07-19 03:11:04.000000000","message":"Done.","commit_id":"7186a0ed6f302ea45b9e8b4285049e543ecc2a00"}]}
