)]}'
{"troveclient/v1/shell.py":[{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"41adad293ec9122a329e040939751cccf9bf843c","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    else:"},{"line_number":137,"context_line":"        err_msg \u003d (\"Specify both \u003cdatastore_type\u003e and \u003cdatastore_version_id\u003e\""},{"line_number":138,"context_line":"                   \" to list datastore version associated flavors.\")"},{"line_number":139,"context_line":"        raise exceptions.ValidationError(err_msg)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    # Fallback to str_id where necessary."},{"line_number":142,"context_line":"    _flavors \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_69b8d511","line":139,"updated":"2015-08-12 05:52:55.000000000","message":"so i didnt realize that the ValidationError existed in the openstack.common.apiclient.exceptions. But after looking at it looks like this should technically be the exceptions.MissingArgs([\u0027datastore_type\u0027, \u0027datastore_vesrion_id\u0027])","commit_id":"05755e07eba66fcce66fe3d857c44e55dbaf0f0f"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"4130e961b85148249b46990ef8e96a4b7909ef51","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    else:"},{"line_number":137,"context_line":"        err_msg \u003d (\"Specify both \u003cdatastore_type\u003e and \u003cdatastore_version_id\u003e\""},{"line_number":138,"context_line":"                   \" to list datastore version associated flavors.\")"},{"line_number":139,"context_line":"        raise exceptions.ValidationError(err_msg)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    # Fallback to str_id where necessary."},{"line_number":142,"context_line":"    _flavors \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_b80aa41e","line":139,"in_reply_to":"1a4dcd0f_69b8d511","updated":"2015-08-12 06:54:45.000000000","message":"I see your point Craig but it looks like either ValidationError or MissingArgs are better than the present one but I can make the case for either.","commit_id":"05755e07eba66fcce66fe3d857c44e55dbaf0f0f"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"a04de17a29b857a5e65f4dce1ebbf57838557f4b","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    else:"},{"line_number":137,"context_line":"        err_msg \u003d (\"Specify both \u003cdatastore_type\u003e and \u003cdatastore_version_id\u003e\""},{"line_number":138,"context_line":"                   \" to list datastore version associated flavors.\")"},{"line_number":139,"context_line":"        raise exceptions.ValidationError(err_msg)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    # Fallback to str_id where necessary."},{"line_number":142,"context_line":"    _flavors \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_1869588c","line":139,"in_reply_to":"1a4dcd0f_b80aa41e","updated":"2015-08-12 07:04:00.000000000","message":"From a user experience perspective, I think I prefer the MissingArgs exception over ValidationError since it\u0027s a bit more specific and closely relates to the error message (i.e. points to a missing argument).","commit_id":"05755e07eba66fcce66fe3d857c44e55dbaf0f0f"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"41adad293ec9122a329e040939751cccf9bf843c","unresolved":false,"context_lines":[{"line_number":440,"context_line":"                    instance_info[k] \u003d v"},{"line_number":441,"context_line":"        if not instance_info.get(\u0027flavorRef\u0027):"},{"line_number":442,"context_line":"            err_msg \u003d (\"flavor is required. %s.\" % INSTANCE_ERROR)"},{"line_number":443,"context_line":"            raise exceptions.ValidationError(err_msg)"},{"line_number":444,"context_line":"        instances.append(instance_info)"},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"    if len(instances) \u003d\u003d 0:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_69e1b529","line":443,"updated":"2015-08-12 05:52:55.000000000","message":"since this is validating the values of the args sent in i think this is fine.","commit_id":"05755e07eba66fcce66fe3d857c44e55dbaf0f0f"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"29598bc96b81ec73441c3cd9046b7242dd253d23","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        flavors \u003d cs.flavors.list()"},{"line_number":136,"context_line":"    else:"},{"line_number":137,"context_line":"        raise exceptions.MissingArgs([\u0027datastore_type\u0027,"},{"line_number":138,"context_line":"                                      \u0027datastore_version_id\u0027])"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    # Fallback to str_id where necessary."},{"line_number":141,"context_line":"    _flavors \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_a17a0824","line":138,"updated":"2015-08-13 23:39:50.000000000","message":"You spun this before I could save my comment ... This might be misleading, in that someone might think that you have to supply both these arguments.  In truth you have to supply both or none, and I doubt the stock message makes that clear.\n\nJust a thought ...","commit_id":"3e7d6c37ffb3a41a98c81813ffa3944c75040ded"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"3c8bb68926717b2161146282a008db979206f9ce","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        flavors \u003d cs.flavors.list()"},{"line_number":136,"context_line":"    else:"},{"line_number":137,"context_line":"        raise exceptions.MissingArgs([\u0027datastore_type\u0027,"},{"line_number":138,"context_line":"                                      \u0027datastore_version_id\u0027])"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    # Fallback to str_id where necessary."},{"line_number":141,"context_line":"    _flavors \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa1b9901_b2e3c2d8","line":138,"in_reply_to":"1a4dcd0f_3cfee805","updated":"2015-08-25 20:48:54.000000000","message":"But the earlier message would be more explicit.","commit_id":"3e7d6c37ffb3a41a98c81813ffa3944c75040ded"},{"author":{"_account_id":14576,"name":"Petr Malik","email":"pmalik@tesora.com","username":"pmalik"},"change_message_id":"4a58bcd38950700ac7e605630eef52aa4146c2b7","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        flavors \u003d cs.flavors.list()"},{"line_number":136,"context_line":"    else:"},{"line_number":137,"context_line":"        raise exceptions.MissingArgs([\u0027datastore_type\u0027,"},{"line_number":138,"context_line":"                                      \u0027datastore_version_id\u0027])"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    # Fallback to str_id where necessary."},{"line_number":141,"context_line":"    _flavors \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_3cfee805","line":138,"in_reply_to":"1a4dcd0f_a17a0824","updated":"2015-08-14 21:24:44.000000000","message":"I guess this matches the original behavior. If they do not specify any the check will pass. They will see the message only if they specify only one of them.","commit_id":"3e7d6c37ffb3a41a98c81813ffa3944c75040ded"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"5b90dab35cbe8d1f7232320754dc1543af2fd1ee","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        flavors \u003d cs.flavors.list()"},{"line_number":136,"context_line":"    else:"},{"line_number":137,"context_line":"        raise exceptions.MissingArgs([\u0027datastore_type\u0027,"},{"line_number":138,"context_line":"                                      \u0027datastore_version_id\u0027])"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    # Fallback to str_id where necessary."},{"line_number":141,"context_line":"    _flavors \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_e9c20e34","line":138,"in_reply_to":"1a4dcd0f_a17a0824","updated":"2015-08-14 17:01:09.000000000","message":"i agree, message is not clear","commit_id":"3e7d6c37ffb3a41a98c81813ffa3944c75040ded"}]}
