Activity log for bug #1542804

Date Who What changed Old value New value Message
2016-02-07 07:59:48 Eva Balycheva bug added bug
2016-02-07 07:59:56 Eva Balycheva python-zaqarclient: assignee Eva Balycheva (ubershy)
2016-02-07 18:07:05 Eva Balycheva description I noticed some problems: 1. No information is provided for the CLI user when one of these exceptions is raised: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/http.py#L30. For example, try "openstack pool show unexisting_pool". 2. When the CLI user experiences the error not from python-zaqarclient code, but, for example, from keystoneclient when credentials are bad, only the exception's message is shown. The name of the exception remains hidden, though it can give additional hint to the user. 3. Resources like Subscription(related bug/1542780), Pool and Flavor, should not try to handle existing resource creation themselves, but instead throw ConflictError so the user can handle this situation. Possible solution: 1. Add exception messages to each of the exceptions in "errors.py" to make them more informative: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/errors.py 2. Catch each exception in the CLI code to provide the CLI user this information wrapped in nice message: exception's name and exception's message. This can be done by some new decorator. 2. Make Subscription, Pool and Flavor resources throw ConflictError. I noticed some problems: 1. No information is provided for the CLI user when one of these exceptions is raised: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/http.py#L30. For example, try "openstack pool show unexisting_pool". 2. When the CLI user experiences the error not from python-zaqarclient code, but, for example, from keystoneclient when credentials are bad, only the exception's message is shown. The name of the exception remains hidden, though it can give additional hint to the user. 3. Only in few kinds of error situations the CLI user gets zaqar-related error. Example is "openstack queue get metadata --os-queues-api-version=1", where the error will be shown if the queue does not exist. 3. Resources like Subscription(related bug/1542780), Pool and Flavor, should not try to handle existing resource creation themselves, but instead throw ConflictError so the user can handle this situation. Possible solution: 1. Add exception messages to each of the exceptions in "errors.py" to make them more informative: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/errors.py 2. Catch each exception in the CLI code to provide the CLI user this information wrapped in nice message: exception's name and exception's message. This can be done by some new decorator. 2. Make Subscription, Pool and Flavor resources throw ConflictError.
2016-02-07 18:41:34 Eva Balycheva description I noticed some problems: 1. No information is provided for the CLI user when one of these exceptions is raised: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/http.py#L30. For example, try "openstack pool show unexisting_pool". 2. When the CLI user experiences the error not from python-zaqarclient code, but, for example, from keystoneclient when credentials are bad, only the exception's message is shown. The name of the exception remains hidden, though it can give additional hint to the user. 3. Only in few kinds of error situations the CLI user gets zaqar-related error. Example is "openstack queue get metadata --os-queues-api-version=1", where the error will be shown if the queue does not exist. 3. Resources like Subscription(related bug/1542780), Pool and Flavor, should not try to handle existing resource creation themselves, but instead throw ConflictError so the user can handle this situation. Possible solution: 1. Add exception messages to each of the exceptions in "errors.py" to make them more informative: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/errors.py 2. Catch each exception in the CLI code to provide the CLI user this information wrapped in nice message: exception's name and exception's message. This can be done by some new decorator. 2. Make Subscription, Pool and Flavor resources throw ConflictError. I noticed some problems: 1. No information is provided for the CLI user when one of these exceptions is raised: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/http.py#L30. For example, try "openstack pool show unexisting_pool". 2. When the CLI user experiences the error not from python-zaqarclient code, but, for example, from keystoneclient when credentials are bad, only the exception's message is shown. The name of the exception remains hidden, though it can give additional hint to the user. 3. Only in few kinds of error situations the CLI user gets zaqar-related error. Example is "openstack queue get metadata --os-queues-api-version=1", where the error will be shown if the queue does not exist. 4. Some of the errors will never be shown to the CLI user, but are intended to be shown. Examples: Pool creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v1/cli.py#L261 Subscription creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v2/cli.py#L160 5. Resources like Subscription(related bug/1542780), Pool and Flavor, should not try to handle existing resource creation themselves, but instead throw ConflictError so the user can handle this situation. Possible solution: 1. Add exception messages to each of the exceptions in "errors.py" to make them more informative: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/errors.py 2. Catch each exception in the CLI code to provide the CLI user this information wrapped in nice message: exception's name and exception's message. This can be done by some new decorator. 2. Make Subscription, Pool and Flavor resources throw ConflictError.
2016-02-07 20:10:20 Eva Balycheva description I noticed some problems: 1. No information is provided for the CLI user when one of these exceptions is raised: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/http.py#L30. For example, try "openstack pool show unexisting_pool". 2. When the CLI user experiences the error not from python-zaqarclient code, but, for example, from keystoneclient when credentials are bad, only the exception's message is shown. The name of the exception remains hidden, though it can give additional hint to the user. 3. Only in few kinds of error situations the CLI user gets zaqar-related error. Example is "openstack queue get metadata --os-queues-api-version=1", where the error will be shown if the queue does not exist. 4. Some of the errors will never be shown to the CLI user, but are intended to be shown. Examples: Pool creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v1/cli.py#L261 Subscription creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v2/cli.py#L160 5. Resources like Subscription(related bug/1542780), Pool and Flavor, should not try to handle existing resource creation themselves, but instead throw ConflictError so the user can handle this situation. Possible solution: 1. Add exception messages to each of the exceptions in "errors.py" to make them more informative: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/errors.py 2. Catch each exception in the CLI code to provide the CLI user this information wrapped in nice message: exception's name and exception's message. This can be done by some new decorator. 2. Make Subscription, Pool and Flavor resources throw ConflictError. I noticed some problems: 1. No information is provided for the CLI user when one of these exceptions is raised: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/http.py#L30. For example, try "openstack pool show unexisting_pool". 2. When the CLI user experiences the error not from python-zaqarclient code, but, for example, from keystoneclient when credentials are bad, only the exception's message is shown. The name of the exception remains hidden, though it can give additional hint to the user. 3. Only in few kinds of error situations the CLI user gets zaqar-related error. Example is "openstack queue get metadata --os-queues-api-version=1", where the error will be shown if the queue does not exist. 4. Some of the errors will never be shown to the CLI user, but are intended to be shown. Examples: Pool creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v1/cli.py#L261 Subscription creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v2/cli.py#L160 5. Resources like Subscription(related bug/1542780), Pool and Flavor, should not try to handle existing resource creation themselves, but instead throw ConflictError so the user can handle this situation. 6. The information about what exceptions can be raised by "Client" class's methods is missing in method docstrings. Possible solution: 1. Add exception messages to each of the exceptions in "errors.py" to make them more informative: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/errors.py 2. Catch each exception in the CLI code to provide the CLI user this information wrapped in nice message: exception's name and exception's message. This can be done by some new decorator. 3. Make Subscription, Pool and Flavor resources throw ConflictError. 4. Update docstrings of the Client class's methods to list possible exceptions that can be raised.
2016-02-07 20:10:34 Eva Balycheva summary Exception handling needs to be improved Exception handling needs to be fixed
2016-02-09 00:55:07 Feilong Wang python-zaqarclient: status New Confirmed
2016-02-09 00:55:09 Feilong Wang python-zaqarclient: importance Undecided Medium
2016-02-17 09:31:00 Eva Balycheva description I noticed some problems: 1. No information is provided for the CLI user when one of these exceptions is raised: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/http.py#L30. For example, try "openstack pool show unexisting_pool". 2. When the CLI user experiences the error not from python-zaqarclient code, but, for example, from keystoneclient when credentials are bad, only the exception's message is shown. The name of the exception remains hidden, though it can give additional hint to the user. 3. Only in few kinds of error situations the CLI user gets zaqar-related error. Example is "openstack queue get metadata --os-queues-api-version=1", where the error will be shown if the queue does not exist. 4. Some of the errors will never be shown to the CLI user, but are intended to be shown. Examples: Pool creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v1/cli.py#L261 Subscription creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v2/cli.py#L160 5. Resources like Subscription(related bug/1542780), Pool and Flavor, should not try to handle existing resource creation themselves, but instead throw ConflictError so the user can handle this situation. 6. The information about what exceptions can be raised by "Client" class's methods is missing in method docstrings. Possible solution: 1. Add exception messages to each of the exceptions in "errors.py" to make them more informative: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/errors.py 2. Catch each exception in the CLI code to provide the CLI user this information wrapped in nice message: exception's name and exception's message. This can be done by some new decorator. 3. Make Subscription, Pool and Flavor resources throw ConflictError. 4. Update docstrings of the Client class's methods to list possible exceptions that can be raised. I noticed some problems: 1. No information is provided for the CLI user when one of these exceptions is raised: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/http.py#L30. For example, try "openstack pool show unexisting_pool". 2. When the CLI user experiences the error not from python-zaqarclient code, but, for example, from keystoneclient when credentials are bad, only the exception's message is shown. The name of the exception remains hidden, though it can give additional hint to the user. 3. Only in few kinds of error situations the CLI user gets zaqar-related error. Example is "openstack queue get metadata --os-queues-api-version=1", where the error will be shown if the queue does not exist. 4. Some of the errors will never be shown to the CLI user, but are intended to be shown. Examples: Pool creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v1/cli.py#L261 Subscription creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v2/cli.py#L160 5. Resources like Subscription(related bug/1542780), Pool and Flavor, should not try to handle existing resource creation themselves, but instead throw ConflictError so the user can handle this situation. 6. The information about what exceptions can be raised by "Client" class's methods is missing in method docstrings. Possible solution: 1. Catch each exception in the CLI code to provide the CLI user this information wrapped in nice message: exception's name and exception's message. This can be done by some new decorator. 2. Make Subscription, Pool and Flavor resources throw ConflictError. 3. Update docstrings of the Client class's methods to list possible exceptions that can be raised.
2016-02-17 20:48:17 Eva Balycheva description I noticed some problems: 1. No information is provided for the CLI user when one of these exceptions is raised: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/http.py#L30. For example, try "openstack pool show unexisting_pool". 2. When the CLI user experiences the error not from python-zaqarclient code, but, for example, from keystoneclient when credentials are bad, only the exception's message is shown. The name of the exception remains hidden, though it can give additional hint to the user. 3. Only in few kinds of error situations the CLI user gets zaqar-related error. Example is "openstack queue get metadata --os-queues-api-version=1", where the error will be shown if the queue does not exist. 4. Some of the errors will never be shown to the CLI user, but are intended to be shown. Examples: Pool creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v1/cli.py#L261 Subscription creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v2/cli.py#L160 5. Resources like Subscription(related bug/1542780), Pool and Flavor, should not try to handle existing resource creation themselves, but instead throw ConflictError so the user can handle this situation. 6. The information about what exceptions can be raised by "Client" class's methods is missing in method docstrings. Possible solution: 1. Catch each exception in the CLI code to provide the CLI user this information wrapped in nice message: exception's name and exception's message. This can be done by some new decorator. 2. Make Subscription, Pool and Flavor resources throw ConflictError. 3. Update docstrings of the Client class's methods to list possible exceptions that can be raised. I noticed some problems: 1. In some cases no information is provided for the CLI user these exceptions is raised: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/http.py#L30. For example, try "openstack pool show unexisting_pool". It is because the server returns no message in the 404 response body. And the user sees the empty string. 2. When the CLI user experiences the error not from python-zaqarclient code, but, for example, from keystoneclient when credentials are bad, only the exception's message is shown. The name of the exception remains hidden, though it can give additional hint to the user. 3. Only in few kinds of error situations the CLI user gets zaqar-related error. Example is "openstack queue get metadata --os-queues-api-version=1", where the error will be shown if the queue does not exist. 4. Some of the errors will never be shown to the CLI user, but are intended to be shown. Examples: Pool creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v1/cli.py#L261 Subscription creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v2/cli.py#L160 7. The information about what exceptions can be raised by "Client" class's methods is missing in method docstrings. Possible solution: 1. Catch each exception in the CLI code to provide the CLI user this information wrapped in nice message: exception's name and exception's message. This can be done by some new decorator. 2. Provide default descriptions for all errors in zaqarclient/transport/errors.py, so when Zaqar returns response code without description, there will be some message for the library/CLI user. 3. Update docstrings of the Client class's methods to list possible exceptions that can be raised. (Maybe)
2016-02-18 22:50:56 Eva Balycheva description I noticed some problems: 1. In some cases no information is provided for the CLI user these exceptions is raised: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/http.py#L30. For example, try "openstack pool show unexisting_pool". It is because the server returns no message in the 404 response body. And the user sees the empty string. 2. When the CLI user experiences the error not from python-zaqarclient code, but, for example, from keystoneclient when credentials are bad, only the exception's message is shown. The name of the exception remains hidden, though it can give additional hint to the user. 3. Only in few kinds of error situations the CLI user gets zaqar-related error. Example is "openstack queue get metadata --os-queues-api-version=1", where the error will be shown if the queue does not exist. 4. Some of the errors will never be shown to the CLI user, but are intended to be shown. Examples: Pool creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v1/cli.py#L261 Subscription creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v2/cli.py#L160 7. The information about what exceptions can be raised by "Client" class's methods is missing in method docstrings. Possible solution: 1. Catch each exception in the CLI code to provide the CLI user this information wrapped in nice message: exception's name and exception's message. This can be done by some new decorator. 2. Provide default descriptions for all errors in zaqarclient/transport/errors.py, so when Zaqar returns response code without description, there will be some message for the library/CLI user. 3. Update docstrings of the Client class's methods to list possible exceptions that can be raised. (Maybe) I noticed some problems: 1. In some cases no information is provided for the CLI user these exceptions is raised: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/http.py#L30. For example, try "openstack pool show unexisting_pool". It is because the server returns no message in the 404 response body. And the user sees the empty string. 2. When the CLI user experiences the error not from python-zaqarclient code, but, for example, from keystoneclient when credentials are bad, only the exception's message is shown. The name of the exception remains hidden, though it can give additional hint to the user. 3. Only in few kinds of error situations the CLI user gets zaqar-related error. Example is "openstack queue get metadata --os-queues-api-version=1", where the error will be shown if the queue does not exist. 4. Some of the error messages will never be shown to the CLI user, but are intended to be shown. Examples: Pool creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v1/cli.py#L261 Subscription creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v2/cli.py#L160 5. The information about what exceptions can be raised by "Client" class's methods is missing in method docstrings. Possible solution: 1. Catch each exception in the CLI code to provide the CLI user this information wrapped in nice message: exception's name and exception's message. This can be done by some new decorator. 2. Provide default descriptions for all errors in zaqarclient/transport/errors.py, so when Zaqar returns response code without description, there will be some message for the library/CLI user. 3. Update docstrings of the Client class's methods to list possible exceptions that can be raised. (Maybe) 4. Fix error messages that never show themselves.
2016-02-18 23:58:47 Eva Balycheva description I noticed some problems: 1. In some cases no information is provided for the CLI user these exceptions is raised: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/http.py#L30. For example, try "openstack pool show unexisting_pool". It is because the server returns no message in the 404 response body. And the user sees the empty string. 2. When the CLI user experiences the error not from python-zaqarclient code, but, for example, from keystoneclient when credentials are bad, only the exception's message is shown. The name of the exception remains hidden, though it can give additional hint to the user. 3. Only in few kinds of error situations the CLI user gets zaqar-related error. Example is "openstack queue get metadata --os-queues-api-version=1", where the error will be shown if the queue does not exist. 4. Some of the error messages will never be shown to the CLI user, but are intended to be shown. Examples: Pool creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v1/cli.py#L261 Subscription creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v2/cli.py#L160 5. The information about what exceptions can be raised by "Client" class's methods is missing in method docstrings. Possible solution: 1. Catch each exception in the CLI code to provide the CLI user this information wrapped in nice message: exception's name and exception's message. This can be done by some new decorator. 2. Provide default descriptions for all errors in zaqarclient/transport/errors.py, so when Zaqar returns response code without description, there will be some message for the library/CLI user. 3. Update docstrings of the Client class's methods to list possible exceptions that can be raised. (Maybe) 4. Fix error messages that never show themselves. I noticed some problems: 1. In some cases no information is provided for the CLI user these exceptions is raised: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/transport/http.py#L30. For example, try "openstack pool show unexisting_pool". It is because the server returns no message in the 404 response body. And the user sees the empty string. 2. When the CLI user experiences the error not from python-zaqarclient code, but, for example, from keystoneclient when credentials are bad, only the exception's message is shown. The name of the exception remains hidden, though it can give additional hint to the user. 3. Only in few kinds of error situations the CLI user gets zaqar-related error. Example is "openstack queue get metadata --os-queues-api-version=1", where the error will be shown if the queue does not exist. 4. Some of the error messages will never be shown to the CLI user, but are intended to be shown. Examples: Pool creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v1/cli.py#L261 Subscription creation: https://github.com/openstack/python-zaqarclient/blob/master/zaqarclient/queues/v2/cli.py#L160 5. The information about what exceptions can be raised by "Client" class's methods is missing in method docstrings. Possible solution: 1. Catch each exception in the CLI code to provide the CLI user this information wrapped in nice message: exception's name and exception's message. This can be done by some new decorator. 2. Make all exceptions in zaqarclient/transport/errors.py show at least error response code, so when Zaqar returns response code without description, there will be some message for the CLI user instead of blank line. Let's also add title to the exception message instead of showing just description (most of error responses from Zaqar are in title-description format). In case the response from Zaqar is not in title-description format, include response body text to the exception message. 3. Update docstrings of the Client class's methods to list possible exceptions that can be raised. (Maybe) 4. Fix error messages that never show themselves.
2016-02-19 00:27:38 OpenStack Infra python-zaqarclient: status Confirmed In Progress
2017-05-18 05:25:10 wangxiyuan python-zaqarclient: status In Progress Fix Released