)]}'
{"nova/objects/service.py":[{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"89734597e25acd200e204410dffed7e1fdb26c78","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    }"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":70,"context_line":"        Service.servicegroup_api \u003d servicegroup.API()"},{"line_number":71,"context_line":"        super(Service, self).__init__(*args, **kwargs)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def obj_make_compatible(self, primitive, target_version):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_aecd1a5f","line":70,"updated":"2015-08-08 00:28:45.000000000","message":"Hmmm, question, why before calling the super-class instead of after? Is this a common thing that is done when using object stuff?","commit_id":"5109a5f271596403a853dc52e9ff6ff2c986f80a"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"f1f61f4da3f08190fbf0f8229b2d28ee07ea3b34","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    }"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":70,"context_line":"        Service.servicegroup_api \u003d servicegroup.API()"},{"line_number":71,"context_line":"        super(Service, self).__init__(*args, **kwargs)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def obj_make_compatible(self, primitive, target_version):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_fddce819","line":70,"in_reply_to":"1a4dcd0f_aecd1a5f","updated":"2015-08-11 01:02:31.000000000","message":"My bad. Removed it and made it global so that both Service and ServiceList can get benefit from it.","commit_id":"5109a5f271596403a853dc52e9ff6ff2c986f80a"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"89734597e25acd200e204410dffed7e1fdb26c78","unresolved":false,"context_lines":[{"line_number":233,"context_line":"    servicegroup_api \u003d servicegroup.API()"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    @base.remotable_classmethod"},{"line_number":236,"context_line":"    def get_by_topic(cls, context, topic):"},{"line_number":237,"context_line":"        db_services \u003d ServiceList.servicegroup_api.service_get_all_by_topic(context,"},{"line_number":238,"context_line":"                                                                            topic)"},{"line_number":239,"context_line":"        return base.obj_make_list(context, cls(context), objects.Service,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_0e03ee77","line":236,"updated":"2015-08-08 00:28:45.000000000","message":"Just do:\n\n  cls.servicegroup_api\n\nNo need to explicitly list the class here.","commit_id":"5109a5f271596403a853dc52e9ff6ff2c986f80a"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"f1f61f4da3f08190fbf0f8229b2d28ee07ea3b34","unresolved":false,"context_lines":[{"line_number":233,"context_line":"    servicegroup_api \u003d servicegroup.API()"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    @base.remotable_classmethod"},{"line_number":236,"context_line":"    def get_by_topic(cls, context, topic):"},{"line_number":237,"context_line":"        db_services \u003d ServiceList.servicegroup_api.service_get_all_by_topic(context,"},{"line_number":238,"context_line":"                                                                            topic)"},{"line_number":239,"context_line":"        return base.obj_make_list(context, cls(context), objects.Service,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_bdaf407c","line":236,"in_reply_to":"1a4dcd0f_0e03ee77","updated":"2015-08-11 01:02:31.000000000","message":"Made it global so that both Service as well as ServiceList can make use of it.","commit_id":"5109a5f271596403a853dc52e9ff6ff2c986f80a"}],"nova/servicegroup/drivers/base.py":[{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"dabfc354af7681abb3ba48d53ba42de4a32fc906","unresolved":false,"context_lines":[{"line_number":9,"context_line":"# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or"},{"line_number":10,"context_line":"# implied."},{"line_number":11,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":12,"context_line":"# limitations under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"class Driver(object):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_6e45d2b1","line":12,"updated":"2015-08-08 00:31:55.000000000","message":"Just a thought,\n\nMake this an abstract class, then u don\u0027t need to raise \u0027NotImplementedError\u0027 all over this class. For example:\n\n    \u003e\u003e\u003e import abc\n    \u003e\u003e\u003e import six\n    \u003e\u003e\u003e @six.add_metaclass(abc.ABCMeta)\n    ... class Driver(object):\n    ...   @abc.abstractmethod\n    ...   def does_something(self):\n    ...     pass\n    ...","commit_id":"5109a5f271596403a853dc52e9ff6ff2c986f80a"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"f1f61f4da3f08190fbf0f8229b2d28ee07ea3b34","unresolved":false,"context_lines":[{"line_number":9,"context_line":"# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or"},{"line_number":10,"context_line":"# implied."},{"line_number":11,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":12,"context_line":"# limitations under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"class Driver(object):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_fd04e8c6","line":12,"in_reply_to":"1a4dcd0f_6e45d2b1","updated":"2015-08-11 01:02:31.000000000","message":"Sure. Will do this in upcoming patches.","commit_id":"5109a5f271596403a853dc52e9ff6ff2c986f80a"}],"nova/servicegroup/drivers/db.py":[{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"d3822be951bd1b69cfcecf0b4aba1225a1bf7994","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            if not getattr(service, \u0027model_disconnected\u0027, False):"},{"line_number":98,"context_line":"                service.model_disconnected \u003d True"},{"line_number":99,"context_line":"                LOG.exception(_LE(\u0027model server went away\u0027))"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def service_get_all(self, ctxt, disabled):"},{"line_number":102,"context_line":"        \"\"\"Return all the members.\"\"\""},{"line_number":103,"context_line":"        return db.service_get_all(ctxt, disabled)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_0e78cef7","line":100,"updated":"2015-08-08 00:33:31.000000000","message":"Something to think about, what exceptions will these calls throw? And since there will be multiple drivers, how should the code that calls into these methods handle those likely disjoint types of exceptions?","commit_id":"5109a5f271596403a853dc52e9ff6ff2c986f80a"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"f1f61f4da3f08190fbf0f8229b2d28ee07ea3b34","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            if not getattr(service, \u0027model_disconnected\u0027, False):"},{"line_number":98,"context_line":"                service.model_disconnected \u003d True"},{"line_number":99,"context_line":"                LOG.exception(_LE(\u0027model server went away\u0027))"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def service_get_all(self, ctxt, disabled):"},{"line_number":102,"context_line":"        \"\"\"Return all the members.\"\"\""},{"line_number":103,"context_line":"        return db.service_get_all(ctxt, disabled)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_1d6194a8","line":100,"in_reply_to":"1a4dcd0f_0e78cef7","updated":"2015-08-11 01:02:31.000000000","message":"Sure. Thats a value able suggestion. Will take care of it. As part of next patch I will make sure that the patch gets a +1 from Jenkins and once done will add the additional exception logic in upcoming patch.","commit_id":"5109a5f271596403a853dc52e9ff6ff2c986f80a"}]}
