)]}'
{"troveclient/v1/shell.py":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"689b9d838f15235dcf8d9b5f2a38341681900ea5","unresolved":false,"context_lines":[{"line_number":126,"context_line":"def do_show(cs, args):"},{"line_number":127,"context_line":"    \"\"\"Shows details of an instance.\"\"\""},{"line_number":128,"context_line":"    instance \u003d _find_instance(cs, args.instance)"},{"line_number":129,"context_line":"    if hasattr(instance, \u0027configuration\u0027):"},{"line_number":130,"context_line":"        instance._info[\u0027configuration\u0027] \u003d instance.configuration[\u0027id\u0027]"},{"line_number":131,"context_line":"    instance._info[\u0027flavor\u0027] \u003d instance.flavor[\u0027id\u0027]"},{"line_number":132,"context_line":"    if hasattr(instance, \u0027volume\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_a3583957","line":129,"updated":"2014-06-12 14:41:35.000000000","message":"would you please explain why this change works?","commit_id":"4489b389dc41d7353fba6a7f687467ef418c4685"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"2eca910808619a59ccf5156f39826829cc3cc771","unresolved":false,"context_lines":[{"line_number":126,"context_line":"def do_show(cs, args):"},{"line_number":127,"context_line":"    \"\"\"Shows details of an instance.\"\"\""},{"line_number":128,"context_line":"    instance \u003d _find_instance(cs, args.instance)"},{"line_number":129,"context_line":"    if hasattr(instance, \u0027configuration\u0027):"},{"line_number":130,"context_line":"        instance._info[\u0027configuration\u0027] \u003d instance.configuration[\u0027id\u0027]"},{"line_number":131,"context_line":"    instance._info[\u0027flavor\u0027] \u003d instance.flavor[\u0027id\u0027]"},{"line_number":132,"context_line":"    if hasattr(instance, \u0027volume\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_7464d3b8","line":129,"in_reply_to":"1ae5cdf2_a3583957","updated":"2014-06-12 16:03:09.000000000","message":"So I\u0027m not exactly sure why this works. My initial guess is that the instance resource is modifing the _info dict in some way or reseting the values when certain attributes are accessed. It fix this correctly we should move all this logic into the _print_instance function. Then inside that do something like this:\n\n    def _print_instance(instance):\n          info \u003d instance._info.copy()\n          # copy all the logic from the command(s) here\n          # replacing instance._info with info\n          info.pop(\u0027links\u0027, None)\n          info.pop(\u0027any_other_attr_we_do_not_like\u0027, None)\n\nThen we\u0027ll need to create functions for each object type such as _print_user(user) or _print_flavor(flavor) etc.","commit_id":"4489b389dc41d7353fba6a7f687467ef418c4685"}]}
