)]}'
{"tools/trove-pylint.config":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"992e7dee329626f1197fedd50a8d4ae8052a9120","unresolved":false,"context_lines":[{"line_number":693,"context_line":"      \"Instance of \u0027Table\u0027 has no \u0027create_column\u0027 member\","},{"line_number":694,"context_line":"      \"upgrade\""},{"line_number":695,"context_line":"    ],"},{"line_number":696,"context_line":"    ["},{"line_number":697,"context_line":"    ["},{"line_number":698,"context_line":"      \"trove/db/sqlalchemy/migrate_repo/versions/039_region.py\","},{"line_number":699,"context_line":"      \"E1101\","}],"source_content_type":"text/x-ini","patch_set":12,"id":"ba5da102_6d8fef74","line":696,"updated":"2016-11-03 20:21:34.000000000","message":"nope, bad merge","commit_id":"5348a47d94b03151957842a8187d35008a93cac4"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"ca5e31283500384c0c985a54d792a11bea9c43c9","unresolved":false,"context_lines":[{"line_number":694,"context_line":"      \"upgrade\""},{"line_number":695,"context_line":"    ],"},{"line_number":696,"context_line":"    ["},{"line_number":697,"context_line":"      \"trove/db/sqlalchemy/migrate_repo/versions/039_region.py\","},{"line_number":698,"context_line":"      \"E1101\","},{"line_number":699,"context_line":"      \"Instance of \u0027Table\u0027 has no \u0027create_column\u0027 member\","},{"line_number":700,"context_line":"      \"upgrade\""}],"source_content_type":"text/x-ini","patch_set":13,"id":"ba5da102_ad066783","line":697,"updated":"2016-11-03 20:32:49.000000000","message":"I see no 039_region.py in this version of the change; that\u0027s what I meant by bad merge. Or am I missing something.","commit_id":"aed2eb01b0667e8b453c433acb95b6370803458d"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"dc8b82a6dfa51a74087e31f16de60615c03e849c","unresolved":false,"context_lines":[{"line_number":694,"context_line":"      \"upgrade\""},{"line_number":695,"context_line":"    ],"},{"line_number":696,"context_line":"    ["},{"line_number":697,"context_line":"      \"trove/db/sqlalchemy/migrate_repo/versions/039_region.py\","},{"line_number":698,"context_line":"      \"E1101\","},{"line_number":699,"context_line":"      \"Instance of \u0027Table\u0027 has no \u0027create_column\u0027 member\","},{"line_number":700,"context_line":"      \"upgrade\""}],"source_content_type":"text/x-ini","patch_set":13,"id":"ba5da102_8d8d23d5","line":697,"in_reply_to":"ba5da102_ad066783","updated":"2016-11-03 20:41:51.000000000","message":"ignore; my error","commit_id":"aed2eb01b0667e8b453c433acb95b6370803458d"}],"trove/cluster/models.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"1241e161cbe892c95214bfc9a73ebf610f81b09e","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        region_name \u003d instance.get(\u0027region_name\u0027)"},{"line_number":348,"context_line":"        flavor_id \u003d instance[\u0027flavor_id\u0027]"},{"line_number":349,"context_line":"        try:"},{"line_number":350,"context_line":"            if region_name is None:"},{"line_number":351,"context_line":"                nova_client \u003d remote.create_nova_client(context, region_name)"},{"line_number":352,"context_line":"            else:"},{"line_number":353,"context_line":"                if region_name not in nova_cli_cache:"},{"line_number":354,"context_line":"                    nova_client \u003d remote.create_nova_client("},{"line_number":355,"context_line":"                        context, region_name)"},{"line_number":356,"context_line":"                    nova_cli_cache[region_name] \u003d nova_client"},{"line_number":357,"context_line":"                else:"},{"line_number":358,"context_line":"                    nova_client \u003d nova_cli_cache[region_name]"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"            flavor \u003d nova_client.flavors.get(flavor_id)"},{"line_number":361,"context_line":"            if (not volume_enabled and"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_4191b651","line":358,"range":{"start_line":350,"start_character":0,"end_line":358,"end_character":61},"updated":"2016-10-30 23:44:37.000000000","message":"(tentative -1) You\u0027re creating a new nova client for each \u0027None\u0027 region.  Can\u0027t that be cached as well?  That would reduce this code to:\n\n  if region_name not in nova_cli_cache:\n      nova_client \u003d remote.create_nova_client(\n          context, region_name)\n      nova_cli_cache[region_name] \u003d nova_client\n  else:\n      nova_client \u003d nova_cli_cache[region_name]","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"70db0b73c5b97d8176be4e96243f823d865e1425","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        region_name \u003d instance.get(\u0027region_name\u0027)"},{"line_number":348,"context_line":"        flavor_id \u003d instance[\u0027flavor_id\u0027]"},{"line_number":349,"context_line":"        try:"},{"line_number":350,"context_line":"            if region_name is None:"},{"line_number":351,"context_line":"                nova_client \u003d remote.create_nova_client(context, region_name)"},{"line_number":352,"context_line":"            else:"},{"line_number":353,"context_line":"                if region_name not in nova_cli_cache:"},{"line_number":354,"context_line":"                    nova_client \u003d remote.create_nova_client("},{"line_number":355,"context_line":"                        context, region_name)"},{"line_number":356,"context_line":"                    nova_cli_cache[region_name] \u003d nova_client"},{"line_number":357,"context_line":"                else:"},{"line_number":358,"context_line":"                    nova_client \u003d nova_cli_cache[region_name]"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"            flavor \u003d nova_client.flavors.get(flavor_id)"},{"line_number":361,"context_line":"            if (not volume_enabled and"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_adac2ea1","line":358,"range":{"start_line":350,"start_character":0,"end_line":358,"end_character":61},"in_reply_to":"ba5da102_4191b651","updated":"2016-11-02 19:21:21.000000000","message":"Yeah, I remember thinking at the time that there was some reason for this, but can\u0027t remember what it was.  I\u0027ll reduce it.","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"1241e161cbe892c95214bfc9a73ebf610f81b09e","unresolved":false,"context_lines":[{"line_number":364,"context_line":"                    flavor\u003dflavor_id)"},{"line_number":365,"context_line":"        except nova_exceptions.NotFound:"},{"line_number":366,"context_line":"            raise exception.FlavorNotFound(uuid\u003dflavor_id)"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"def get_required_volume_size(instances, volume_enabled):"},{"line_number":370,"context_line":"    \"\"\"Calculate the total Trove volume size for given instances.\"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_a188d223","line":367,"updated":"2016-10-30 23:44:37.000000000","message":"You\u0027re not longer returning the flavors - I guess that\u0027s ok in that they\u0027re not being used anywhere.","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"}],"trove/common/cfg.py":[{"author":{"_account_id":15321,"name":"Matthew Van Dijk","email":"mvandijk@tesora.com","username":"mvandijk"},"change_message_id":"18aaa1f8c648ac09f0d1a596b0966ed8109f92d5","unresolved":false,"context_lines":[{"line_number":319,"context_line":"    cfg.StrOpt(\u0027remote_swift_client\u0027,"},{"line_number":320,"context_line":"               default\u003d\u0027trove.common.remote.swift_client\u0027,"},{"line_number":321,"context_line":"               help\u003d\u0027Client to send Swift calls to.\u0027),"},{"line_number":322,"context_line":"    cfg.StrOpt(\u0027remote_trove_client\u0027,"},{"line_number":323,"context_line":"               default\u003d\u0027trove.common.trove_remote.trove_client\u0027,"},{"line_number":324,"context_line":"               help\u003d\u0027Client to send Swift calls to.\u0027),"},{"line_number":325,"context_line":"    cfg.StrOpt(\u0027remote_glance_client\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da6895a0_372b4f84","line":322,"updated":"2016-10-21 18:37:25.000000000","message":"remote_swift_client","commit_id":"7c6ab28da0ff077ec922aae5326ae036fb1eabd4"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"f2a2979ac49d7c4833e8bf0e4ceee826f88a6a5d","unresolved":false,"context_lines":[{"line_number":319,"context_line":"    cfg.StrOpt(\u0027remote_swift_client\u0027,"},{"line_number":320,"context_line":"               default\u003d\u0027trove.common.remote.swift_client\u0027,"},{"line_number":321,"context_line":"               help\u003d\u0027Client to send Swift calls to.\u0027),"},{"line_number":322,"context_line":"    cfg.StrOpt(\u0027remote_trove_client\u0027,"},{"line_number":323,"context_line":"               default\u003d\u0027trove.common.trove_remote.trove_client\u0027,"},{"line_number":324,"context_line":"               help\u003d\u0027Client to send Swift calls to.\u0027),"},{"line_number":325,"context_line":"    cfg.StrOpt(\u0027remote_glance_client\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da6895a0_d59e66b7","line":322,"in_reply_to":"da6895a0_372b4f84","updated":"2016-10-24 15:13:24.000000000","message":"No, but the comment was wrong.  Fixed.","commit_id":"7c6ab28da0ff077ec922aae5326ae036fb1eabd4"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"1241e161cbe892c95214bfc9a73ebf610f81b09e","unresolved":false,"context_lines":[{"line_number":334,"context_line":"               help\u003d\u0027Transformer for exists notifications.\u0027),"},{"line_number":335,"context_line":"    cfg.IntOpt(\u0027exists_notification_interval\u0027, default\u003d3600,"},{"line_number":336,"context_line":"               help\u003d\u0027Seconds to wait between pushing events.\u0027),"},{"line_number":337,"context_line":"    cfg.IntOpt(\u0027quota_notification_interval\u0027,"},{"line_number":338,"context_line":"               help\u003d\u0027Seconds to wait between pushing events.\u0027),"},{"line_number":339,"context_line":"    cfg.DictOpt(\u0027notification_service_id\u0027,"},{"line_number":340,"context_line":"                default\u003d{\u0027mysql\u0027: \u00272f3ff068-2bfb-4f70-9a9d-a6bb65bc084b\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_e182caff","line":337,"range":{"start_line":337,"start_character":0,"end_line":337,"end_character":45},"updated":"2016-10-30 23:44:37.000000000","message":"Not sure why the default was removed here","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"70db0b73c5b97d8176be4e96243f823d865e1425","unresolved":false,"context_lines":[{"line_number":334,"context_line":"               help\u003d\u0027Transformer for exists notifications.\u0027),"},{"line_number":335,"context_line":"    cfg.IntOpt(\u0027exists_notification_interval\u0027, default\u003d3600,"},{"line_number":336,"context_line":"               help\u003d\u0027Seconds to wait between pushing events.\u0027),"},{"line_number":337,"context_line":"    cfg.IntOpt(\u0027quota_notification_interval\u0027,"},{"line_number":338,"context_line":"               help\u003d\u0027Seconds to wait between pushing events.\u0027),"},{"line_number":339,"context_line":"    cfg.DictOpt(\u0027notification_service_id\u0027,"},{"line_number":340,"context_line":"                default\u003d{\u0027mysql\u0027: \u00272f3ff068-2bfb-4f70-9a9d-a6bb65bc084b\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_23a115a4","line":337,"range":{"start_line":337,"start_character":0,"end_line":337,"end_character":45},"in_reply_to":"ba5da102_e182caff","updated":"2016-11-02 19:21:21.000000000","message":"Because quota notifications aren\u0027t supposed to run unless the operator configures them to.  I noticed this during my testing.","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"}],"trove/common/glance_remote.py":[{"author":{"_account_id":15321,"name":"Matthew Van Dijk","email":"mvandijk@tesora.com","username":"mvandijk"},"change_message_id":"18aaa1f8c648ac09f0d1a596b0966ed8109f92d5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2010-2012 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":9,"id":"da6895a0_f71d57be","line":1,"updated":"2016-10-21 18:37:25.000000000","message":"2016 Tesora","commit_id":"7c6ab28da0ff077ec922aae5326ae036fb1eabd4"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"f2a2979ac49d7c4833e8bf0e4ceee826f88a6a5d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2010-2012 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":9,"id":"da6895a0_3597a291","line":1,"in_reply_to":"da6895a0_f71d57be","updated":"2016-10-24 15:13:24.000000000","message":"Done","commit_id":"7c6ab28da0ff077ec922aae5326ae036fb1eabd4"},{"author":{"_account_id":15321,"name":"Matthew Van Dijk","email":"mvandijk@tesora.com","username":"mvandijk"},"change_message_id":"18aaa1f8c648ac09f0d1a596b0966ed8109f92d5","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    auth \u003d v3.Token(CONF.trove_auth_url, context.auth_token)"},{"line_number":31,"context_line":"    session \u003d ka_session.Session(auth\u003dauth)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    return Client(\u00272\u0027, session\u003dsession)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"create_glance_client \u003d import_class(CONF.remote_glance_client)"}],"source_content_type":"text/x-python","patch_set":9,"id":"da6895a0_b7f59f84","line":33,"updated":"2016-10-21 18:37:25.000000000","message":"This looks wrong. What is \u00272\u0027?","commit_id":"7c6ab28da0ff077ec922aae5326ae036fb1eabd4"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"f2a2979ac49d7c4833e8bf0e4ceee826f88a6a5d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    auth \u003d v3.Token(CONF.trove_auth_url, context.auth_token)"},{"line_number":31,"context_line":"    session \u003d ka_session.Session(auth\u003dauth)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    return Client(\u00272\u0027, session\u003dsession)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"create_glance_client \u003d import_class(CONF.remote_glance_client)"}],"source_content_type":"text/x-python","patch_set":9,"id":"da6895a0_d5d3c65d","line":33,"in_reply_to":"da6895a0_b7f59f84","updated":"2016-10-24 15:13:24.000000000","message":"Ha, Ha.  No, this is correct - everything in Trove is wrong.  The \u00272\u0027 is the API version the program wishes to use.  But you\u0027re right that region_name isn\u0027t being used.","commit_id":"7c6ab28da0ff077ec922aae5326ae036fb1eabd4"},{"author":{"_account_id":18225,"name":"Shaik Apsar","email":"sa709c@intl.att.com","username":"sa709c"},"change_message_id":"af4f44131553b0168ac49983c572fdd414d533f1","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    # the endpoint_filter on the API calls, but glance"},{"line_number":35,"context_line":"    # doesn\u0027t currently allow that.  As a result, we must"},{"line_number":36,"context_line":"    # specify the endpoint explicitly."},{"line_number":37,"context_line":"    if CONF.glance_url:"},{"line_number":38,"context_line":"        endpoint_url \u003d \u0027%(url)s%(tenant)s\u0027 % {"},{"line_number":39,"context_line":"            \u0027url\u0027: normalize_url(CONF.glance_url),"},{"line_number":40,"context_line":"            \u0027tenant\u0027: context.tenant}"}],"source_content_type":"text/x-python","patch_set":13,"id":"ba5da102_d534ebfc","line":37,"range":{"start_line":37,"start_character":0,"end_line":37,"end_character":4},"updated":"2016-11-04 11:43:48.000000000","message":"Do we need to have glance_url in cfg? We can get glance_endpoint from the service_catalog in the context based on glance_service_type and glance_endpoint_type.","commit_id":"aed2eb01b0667e8b453c433acb95b6370803458d"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"a9ff811ad6c832eafb0e9f744a0938389138c7e1","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    # the endpoint_filter on the API calls, but glance"},{"line_number":35,"context_line":"    # doesn\u0027t currently allow that.  As a result, we must"},{"line_number":36,"context_line":"    # specify the endpoint explicitly."},{"line_number":37,"context_line":"    if CONF.glance_url:"},{"line_number":38,"context_line":"        endpoint_url \u003d \u0027%(url)s%(tenant)s\u0027 % {"},{"line_number":39,"context_line":"            \u0027url\u0027: normalize_url(CONF.glance_url),"},{"line_number":40,"context_line":"            \u0027tenant\u0027: context.tenant}"}],"source_content_type":"text/x-python","patch_set":13,"id":"ba5da102_70d086f8","line":37,"range":{"start_line":37,"start_character":0,"end_line":37,"end_character":4},"in_reply_to":"ba5da102_d534ebfc","updated":"2016-11-04 14:46:23.000000000","message":"Is it needed?  People use it for the other clients, so it follows that it would be needed here.  If you want to remove this feature from all clients, please make a spec with your proposal.","commit_id":"aed2eb01b0667e8b453c433acb95b6370803458d"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"26fd8ecb0d9cb6f606b276b7ce98ba5ee015bfa2","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    # the endpoint_filter on the API calls, but glance"},{"line_number":35,"context_line":"    # doesn\u0027t currently allow that.  As a result, we must"},{"line_number":36,"context_line":"    # specify the endpoint explicitly."},{"line_number":37,"context_line":"    if CONF.glance_url:"},{"line_number":38,"context_line":"        endpoint_url \u003d \u0027%(url)s%(tenant)s\u0027 % {"},{"line_number":39,"context_line":"            \u0027url\u0027: normalize_url(CONF.glance_url),"},{"line_number":40,"context_line":"            \u0027tenant\u0027: context.tenant}"}],"source_content_type":"text/x-python","patch_set":13,"id":"ba5da102_30436e6e","line":37,"range":{"start_line":37,"start_character":0,"end_line":37,"end_character":4},"in_reply_to":"ba5da102_d534ebfc","updated":"2016-11-04 14:51:47.000000000","message":"Yes, having this specification is required! requiring that there be only a single glance in an OpenStack deployment would be a huge mistake.","commit_id":"aed2eb01b0667e8b453c433acb95b6370803458d"},{"author":{"_account_id":18225,"name":"Shaik Apsar","email":"sa709c@intl.att.com","username":"sa709c"},"change_message_id":"af4f44131553b0168ac49983c572fdd414d533f1","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    return Client(\u00272\u0027, endpoint\u003dendpoint_url, session\u003dsession)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"create_glance_client \u003d import_class(CONF.remote_glance_client)"}],"source_content_type":"text/x-python","patch_set":13,"id":"ba5da102_58abb2d6","line":53,"updated":"2016-11-04 11:43:48.000000000","message":"can\u0027t we add these steps to \u0027trove.common.remote.py\u0027 ?","commit_id":"aed2eb01b0667e8b453c433acb95b6370803458d"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"a9ff811ad6c832eafb0e9f744a0938389138c7e1","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    return Client(\u00272\u0027, endpoint\u003dendpoint_url, session\u003dsession)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"create_glance_client \u003d import_class(CONF.remote_glance_client)"}],"source_content_type":"text/x-python","patch_set":13,"id":"ba5da102_f002d671","line":53,"in_reply_to":"ba5da102_58abb2d6","updated":"2016-11-04 14:46:23.000000000","message":"No.","commit_id":"aed2eb01b0667e8b453c433acb95b6370803458d"}],"trove/common/models.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"1241e161cbe892c95214bfc9a73ebf610f81b09e","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    network_driver \u003d None"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    @classmethod"},{"line_number":106,"context_line":"    def get_driver(cls, context, region_name):"},{"line_number":107,"context_line":"        if not cls.network_driver:"},{"line_number":108,"context_line":"            cls.network_driver \u003d import_class(CONF.network_driver)"},{"line_number":109,"context_line":"        return cls.network_driver(context, region_name)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_a18ff221","line":106,"range":{"start_line":106,"start_character":31,"end_line":106,"end_character":44},"updated":"2016-10-30 23:44:37.000000000","message":"(+1) Should this be defaulted to \u0027\u003dNone\u0027 ?  (I didn\u0027t feel like grepping the code to see if all calls have been changed. ;) - Ok I did the grep, looks fine.)","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"70db0b73c5b97d8176be4e96243f823d865e1425","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    network_driver \u003d None"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    @classmethod"},{"line_number":106,"context_line":"    def get_driver(cls, context, region_name):"},{"line_number":107,"context_line":"        if not cls.network_driver:"},{"line_number":108,"context_line":"            cls.network_driver \u003d import_class(CONF.network_driver)"},{"line_number":109,"context_line":"        return cls.network_driver(context, region_name)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_c3869912","line":106,"range":{"start_line":106,"start_character":31,"end_line":106,"end_character":44},"in_reply_to":"ba5da102_a18ff221","updated":"2016-11-02 19:21:21.000000000","message":"Yes, region_name should never be None here.","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"1241e161cbe892c95214bfc9a73ebf610f81b09e","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    @classmethod"},{"line_number":129,"context_line":"    def get_client(cls, context):"},{"line_number":130,"context_line":"        return remote.create_cinder_client(context)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_61779a3a","line":130,"range":{"start_line":130,"start_character":43,"end_line":130,"end_character":50},"updated":"2016-10-30 23:44:37.000000000","message":"(-1) No region_name here?  Also checked and this code doesn\u0027t seem to be called from anywhere.","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"70db0b73c5b97d8176be4e96243f823d865e1425","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    @classmethod"},{"line_number":129,"context_line":"    def get_client(cls, context):"},{"line_number":130,"context_line":"        return remote.create_cinder_client(context)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_63906d44","line":130,"range":{"start_line":130,"start_character":43,"end_line":130,"end_character":50},"in_reply_to":"ba5da102_61779a3a","updated":"2016-11-02 19:21:21.000000000","message":"This is not used - I\u0027ve added a LaunchPad bug to clean up this class structure.","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"},{"author":{"_account_id":10295,"name":"mariam john","email":"mariamj@us.ibm.com","username":"mariamj"},"change_message_id":"9753ca3d5004139a063c109fd74f2e1a59f39aae","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    @classmethod"},{"line_number":129,"context_line":"    def get_client(cls, context):"},{"line_number":130,"context_line":"        return remote.create_cinder_client(context)"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a77a97e_26ef4988","line":130,"updated":"2016-11-17 13:30:34.000000000","message":"Wondering why we aren\u0027t passing the region_name to the cinder client","commit_id":"3f93ff110bec754e5a3d955fef2daaed3510aaf4"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"765e9cc6aceb6b4db1ef862f2a083d2abb11e17b","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    @classmethod"},{"line_number":129,"context_line":"    def get_client(cls, context):"},{"line_number":130,"context_line":"        return remote.create_cinder_client(context)"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a77a97e_501f7807","line":130,"in_reply_to":"7a77a97e_26ef4988","updated":"2016-11-17 15:30:09.000000000","message":"Actually, neither SwiftRemoteClient nor CinderRemoteClient appear to be used anywhere. I think I\u0027ve put a bug in to remove them.","commit_id":"3f93ff110bec754e5a3d955fef2daaed3510aaf4"}],"trove/common/notification.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"1241e161cbe892c95214bfc9a73ebf610f81b09e","unresolved":false,"context_lines":[{"line_number":789,"context_line":"    @abc.abstractmethod"},{"line_number":790,"context_line":"    def required_start_traits(self):"},{"line_number":791,"context_line":"        return [\u0027instance_id\u0027, \u0027datastore_version_id\u0027]"},{"line_number":792,"context_line":""},{"line_number":793,"context_line":""},{"line_number":794,"context_line":"class DBaaSInstanceMigrate(DBaaSAPINotification):"},{"line_number":795,"context_line":""},{"line_number":796,"context_line":"    @abc.abstractmethod"},{"line_number":797,"context_line":"    def event_type(self):"},{"line_number":798,"context_line":"        return \u0027migrate\u0027"},{"line_number":799,"context_line":""},{"line_number":800,"context_line":"    @abc.abstractmethod"},{"line_number":801,"context_line":"    def required_start_traits(self):"},{"line_number":802,"context_line":"        return [\u0027host\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_21a4c2a4","line":802,"range":{"start_line":792,"start_character":0,"end_line":802,"end_character":23},"updated":"2016-10-30 23:44:37.000000000","message":"Not sure why this is in the patchset - looks like a partial rebase with the upgrade code.  Probably doesn\u0027t matter, but is a mite confusing.","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"70db0b73c5b97d8176be4e96243f823d865e1425","unresolved":false,"context_lines":[{"line_number":789,"context_line":"    @abc.abstractmethod"},{"line_number":790,"context_line":"    def required_start_traits(self):"},{"line_number":791,"context_line":"        return [\u0027instance_id\u0027, \u0027datastore_version_id\u0027]"},{"line_number":792,"context_line":""},{"line_number":793,"context_line":""},{"line_number":794,"context_line":"class DBaaSInstanceMigrate(DBaaSAPINotification):"},{"line_number":795,"context_line":""},{"line_number":796,"context_line":"    @abc.abstractmethod"},{"line_number":797,"context_line":"    def event_type(self):"},{"line_number":798,"context_line":"        return \u0027migrate\u0027"},{"line_number":799,"context_line":""},{"line_number":800,"context_line":"    @abc.abstractmethod"},{"line_number":801,"context_line":"    def required_start_traits(self):"},{"line_number":802,"context_line":"        return [\u0027host\u0027]"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_e6c56b8e","line":802,"range":{"start_line":792,"start_character":0,"end_line":802,"end_character":23},"in_reply_to":"ba5da102_21a4c2a4","updated":"2016-11-02 19:21:21.000000000","message":"This was just something I came across in my testing.  It\u0027s unrelated, but won\u0027t be necessary for quite a while so I put it in rather than as a bug for someone else to fix.","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"}],"trove/common/single_tenant_remote.py":[{"author":{"_account_id":18225,"name":"Shaik Apsar","email":"sa709c@intl.att.com","username":"sa709c"},"change_message_id":"02cd45cbaf1569d44e1942f12e3548d7cc19129c","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from cinderclient.v2 import client as CinderClient"},{"line_number":21,"context_line":"from neutronclient.v2_0 import client as NeutronClient"},{"line_number":22,"context_line":"from novaclient.v1_1.client import Client as NovaClient"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"CONF \u003d cfg.CONF"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_350699ce","line":22,"updated":"2016-11-01 07:00:45.000000000","message":"Please fix import statement for NovaClient and also missing the unittest for this module.","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"70db0b73c5b97d8176be4e96243f823d865e1425","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from cinderclient.v2 import client as CinderClient"},{"line_number":21,"context_line":"from neutronclient.v2_0 import client as NeutronClient"},{"line_number":22,"context_line":"from novaclient.v1_1.client import Client as NovaClient"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"CONF \u003d cfg.CONF"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_bdafe328","line":22,"in_reply_to":"ba5da102_350699ce","updated":"2016-11-02 19:21:21.000000000","message":"This is out of scope for this change.  Why don\u0027t you fix it in another change?","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"},{"author":{"_account_id":18225,"name":"Shaik Apsar","email":"sa709c@intl.att.com","username":"sa709c"},"change_message_id":"02cd45cbaf1569d44e1942f12e3548d7cc19129c","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    :param context: original context from user request"},{"line_number":59,"context_line":"    :type context: trove.common.context.TroveContext"},{"line_number":60,"context_line":"    :return novaclient: novaclient with trove admin credentials"},{"line_number":61,"context_line":"    :rtype: novaclient.v1_1.client.Client"},{"line_number":62,"context_line":"    \"\"\""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    compute_url \u003d compute_url or CONF.nova_compute_url"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_f50421c1","line":61,"updated":"2016-11-01 07:00:45.000000000","message":"fix for rtype with valid novaclient.","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"70db0b73c5b97d8176be4e96243f823d865e1425","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    :param context: original context from user request"},{"line_number":59,"context_line":"    :type context: trove.common.context.TroveContext"},{"line_number":60,"context_line":"    :return novaclient: novaclient with trove admin credentials"},{"line_number":61,"context_line":"    :rtype: novaclient.v1_1.client.Client"},{"line_number":62,"context_line":"    \"\"\""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    compute_url \u003d compute_url or CONF.nova_compute_url"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_3d6af3ee","line":61,"in_reply_to":"ba5da102_f50421c1","updated":"2016-11-02 19:21:21.000000000","message":"ditto","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"}],"trove/common/strategies/cluster/experimental/cassandra/api.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"1241e161cbe892c95214bfc9a73ebf610f81b09e","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                availability_zone\u003dinstance_az,"},{"line_number":156,"context_line":"                configuration_id\u003dNone,"},{"line_number":157,"context_line":"                cluster_config\u003dmember_config,"},{"line_number":158,"context_line":"                modules\u003dinstance.get(\u0027modules\u0027),"},{"line_number":159,"context_line":"                region_name\u003dinstance.get(\u0027region_name\u0027),"},{"line_number":160,"context_line":"                locality\u003dlocality)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"            new_instances.append(new_instance)"},{"line_number":163,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_01eb3eb1","line":160,"range":{"start_line":158,"start_character":0,"end_line":160,"end_character":33},"updated":"2016-10-30 23:44:37.000000000","message":"It\u0027d be nice if we could keep these in the same order.  i.e. locality, modules, region_name ...","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"70db0b73c5b97d8176be4e96243f823d865e1425","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                availability_zone\u003dinstance_az,"},{"line_number":156,"context_line":"                configuration_id\u003dNone,"},{"line_number":157,"context_line":"                cluster_config\u003dmember_config,"},{"line_number":158,"context_line":"                modules\u003dinstance.get(\u0027modules\u0027),"},{"line_number":159,"context_line":"                region_name\u003dinstance.get(\u0027region_name\u0027),"},{"line_number":160,"context_line":"                locality\u003dlocality)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"            new_instances.append(new_instance)"},{"line_number":163,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_13e7a640","line":160,"range":{"start_line":158,"start_character":0,"end_line":160,"end_character":33},"in_reply_to":"ba5da102_01eb3eb1","updated":"2016-11-02 19:21:21.000000000","message":"Done","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"}],"trove/common/strategies/cluster/experimental/galera_common/api.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"1241e161cbe892c95214bfc9a73ebf610f81b09e","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                                nics\u003dinstance.get(\u0027nics\u0027, None),"},{"line_number":121,"context_line":"                                configuration_id\u003dNone,"},{"line_number":122,"context_line":"                                cluster_config\u003dmember_config,"},{"line_number":123,"context_line":"                                locality\u003dlocality,"},{"line_number":124,"context_line":"                                region_name\u003dinstance.get(\u0027region_name\u0027),"},{"line_number":125,"context_line":"                                modules\u003dinstance.get(\u0027modules\u0027)"},{"line_number":126,"context_line":"                                )"},{"line_number":127,"context_line":"                for instance in instances]"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_21d20201","line":125,"range":{"start_line":123,"start_character":32,"end_line":125,"end_character":63},"updated":"2016-10-30 23:44:37.000000000","message":"ditto","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"}],"trove/common/strategies/cluster/experimental/mongodb/api.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"1241e161cbe892c95214bfc9a73ebf610f81b09e","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                                        nics\u003dnics[i],"},{"line_number":133,"context_line":"                                        configuration_id\u003dNone,"},{"line_number":134,"context_line":"                                        cluster_config\u003dmember_config,"},{"line_number":135,"context_line":"                                        modules\u003dinstances[i].get(\u0027modules\u0027),"},{"line_number":136,"context_line":"                                        region_name\u003dregions[i],"},{"line_number":137,"context_line":"                                        locality\u003dlocality)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        for i in range(1, num_configsvr + 1):"},{"line_number":140,"context_line":"            instance_name \u003d \"%s-%s-%s\" % (name, \"configsvr\", str(i))"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_41cd365c","line":137,"range":{"start_line":135,"start_character":39,"end_line":137,"end_character":57},"updated":"2016-10-30 23:44:37.000000000","message":"ditto","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"1241e161cbe892c95214bfc9a73ebf610f81b09e","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                                        nics\u003dNone,"},{"line_number":164,"context_line":"                                        configuration_id\u003dNone,"},{"line_number":165,"context_line":"                                        cluster_config\u003dmongos_config,"},{"line_number":166,"context_line":"                                        region_name\u003dregions[i],"},{"line_number":167,"context_line":"                                        locality\u003dlocality)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        task_api.load(context, datastore_version.manager).create_cluster("},{"line_number":170,"context_line":"            db_info.id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_61dcfa12","line":167,"range":{"start_line":166,"start_character":40,"end_line":167,"end_character":57},"updated":"2016-10-30 23:44:37.000000000","message":"ditto (for locality, region_name)","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"}],"trove/common/strategies/cluster/experimental/redis/api.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"1241e161cbe892c95214bfc9a73ebf610f81b09e","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                                            cluster_config\u003d{"},{"line_number":89,"context_line":"                                                \"id\": db_info.id,"},{"line_number":90,"context_line":"                                                \"instance_type\": \"member\"},"},{"line_number":91,"context_line":"                                            locality\u003dlocality,"},{"line_number":92,"context_line":"                                            region_name\u003dinstance.get("},{"line_number":93,"context_line":"                                                \u0027region_name\u0027),"},{"line_number":94,"context_line":"                                            modules\u003dinstance.get(\u0027modules\u0027)"},{"line_number":95,"context_line":"                                            )"},{"line_number":96,"context_line":"                for instance in instances]"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_81d74eec","line":95,"range":{"start_line":91,"start_character":44,"end_line":95,"end_character":44},"updated":"2016-10-30 23:44:37.000000000","message":"ditto","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"}],"trove/common/trove_remote.py":[{"author":{"_account_id":15321,"name":"Matthew Van Dijk","email":"mvandijk@tesora.com","username":"mvandijk"},"change_message_id":"18aaa1f8c648ac09f0d1a596b0966ed8109f92d5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2010-2012 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":9,"id":"da6895a0_778867e8","line":1,"updated":"2016-10-21 18:37:25.000000000","message":"2016 Tesora","commit_id":"7c6ab28da0ff077ec922aae5326ae036fb1eabd4"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"f2a2979ac49d7c4833e8bf0e4ceee826f88a6a5d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2010-2012 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":9,"id":"da6895a0_75c59a3a","line":1,"in_reply_to":"da6895a0_778867e8","updated":"2016-10-24 15:13:24.000000000","message":"Done","commit_id":"7c6ab28da0ff077ec922aae5326ae036fb1eabd4"}],"trove/db/sqlalchemy/migrate_repo/versions/039_region.py":[{"author":{"_account_id":15321,"name":"Matthew Van Dijk","email":"mvandijk@tesora.com","username":"mvandijk"},"change_message_id":"18aaa1f8c648ac09f0d1a596b0966ed8109f92d5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 eBay Software Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":9,"id":"da6895a0_771147ac","line":1,"updated":"2016-10-21 18:37:25.000000000","message":"2016 Tesora","commit_id":"7c6ab28da0ff077ec922aae5326ae036fb1eabd4"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"f2a2979ac49d7c4833e8bf0e4ceee826f88a6a5d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 eBay Software Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":9,"id":"da6895a0_75dcba12","line":1,"in_reply_to":"da6895a0_771147ac","updated":"2016-10-24 15:13:24.000000000","message":"Done","commit_id":"7c6ab28da0ff077ec922aae5326ae036fb1eabd4"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"1241e161cbe892c95214bfc9a73ebf610f81b09e","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    instances \u003d Table(\u0027instances\u0027, meta, autoload\u003dTrue)"},{"line_number":34,"context_line":"    instances.create_column(Column(\u0027region_id\u0027, String(255)))"},{"line_number":35,"context_line":"    instances.update().values(region_id\u003dCONF.os_region_name).execute()"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"def downgrade(migrate_engine):"},{"line_number":39,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":40,"context_line":"    instances \u003d Table(\u0027instances\u0027, meta, autoload\u003dTrue)"},{"line_number":41,"context_line":"    instances.drop_column(\u0027region_id\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_e1abaa87","line":41,"range":{"start_line":36,"start_character":0,"end_line":41,"end_character":38},"updated":"2016-10-30 23:44:37.000000000","message":"Just a heads up that when https://review.openstack.org/#/c/382676/ merges (just waiting for WF+1) this section will need to be removed.","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"}],"trove/taskmanager/manager.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"1241e161cbe892c95214bfc9a73ebf610f81b09e","unresolved":false,"context_lines":[{"line_number":428,"context_line":"            mgmtmodels.publish_exist_events(self.exists_transformer,"},{"line_number":429,"context_line":"                                            self.admin_context)"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    if CONF.quota_notification_interval:"},{"line_number":432,"context_line":"        @periodic_task.periodic_task(spacing\u003dCONF.quota_notification_interval)"},{"line_number":433,"context_line":"        def publish_quota_notifications(self, context):"},{"line_number":434,"context_line":"            nova_client \u003d remote.create_nova_client(self.admin_context)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_0c71b5e0","line":431,"range":{"start_line":431,"start_character":0,"end_line":431,"end_character":40},"updated":"2016-10-30 23:44:37.000000000","message":"Not sure what this has to do with regions","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"70db0b73c5b97d8176be4e96243f823d865e1425","unresolved":false,"context_lines":[{"line_number":428,"context_line":"            mgmtmodels.publish_exist_events(self.exists_transformer,"},{"line_number":429,"context_line":"                                            self.admin_context)"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    if CONF.quota_notification_interval:"},{"line_number":432,"context_line":"        @periodic_task.periodic_task(spacing\u003dCONF.quota_notification_interval)"},{"line_number":433,"context_line":"        def publish_quota_notifications(self, context):"},{"line_number":434,"context_line":"            nova_client \u003d remote.create_nova_client(self.admin_context)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_266e8395","line":431,"range":{"start_line":431,"start_character":0,"end_line":431,"end_character":40},"in_reply_to":"ba5da102_0c71b5e0","updated":"2016-11-02 19:21:21.000000000","message":"Again, not a related fix, but came across it in long running tests and wanted to test the fix.  Technically, I should have put it in a separate change, but as that wasn\u0027t going to happen it\u0027s here or never.","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"},{"author":{"_account_id":18225,"name":"Shaik Apsar","email":"sa709c@intl.att.com","username":"sa709c"},"change_message_id":"5683dce9148a02847ab548c4a04caa7a985df64c","unresolved":false,"context_lines":[{"line_number":432,"context_line":"        @periodic_task.periodic_task(spacing\u003dCONF.quota_notification_interval)"},{"line_number":433,"context_line":"        def publish_quota_notifications(self, context):"},{"line_number":434,"context_line":"            nova_client \u003d remote.create_nova_client(self.admin_context)"},{"line_number":435,"context_line":"            for tenant in nova_client.tenants.list():"},{"line_number":436,"context_line":"                for quota in QUOTAS.get_all_quotas_by_tenant(tenant.id):"},{"line_number":437,"context_line":"                    usage \u003d QUOTAS.get_quota_usage(quota)"},{"line_number":438,"context_line":"                    DBaaSQuotas(self.admin_context, quota, usage).notify()"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba5da102_36fd1b6f","line":435,"range":{"start_line":435,"start_character":26,"end_line":435,"end_character":37},"updated":"2016-11-04 20:42:10.000000000","message":"it will not work, keystone client should be used here.","commit_id":"3f93ff110bec754e5a3d955fef2daaed3510aaf4"}],"trove/tests/api/mgmt/instances.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"1241e161cbe892c95214bfc9a73ebf610f81b09e","unresolved":false,"context_lines":[{"line_number":234,"context_line":"            \u0027updated\u0027,"},{"line_number":235,"context_line":"            \u0027region\u0027"},{"line_number":236,"context_line":"        ]"},{"line_number":237,"context_line":"        raise SkipTest(\"test disabled\")"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        if CONFIG.trove_volume_support:"},{"line_number":240,"context_line":"            expected_fields.append(\u0027volume\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_2c7839c4","line":237,"range":{"start_line":237,"start_character":8,"end_line":237,"end_character":39},"updated":"2016-10-30 23:44:37.000000000","message":"Is there a reason this test is now disabled?","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"70db0b73c5b97d8176be4e96243f823d865e1425","unresolved":false,"context_lines":[{"line_number":234,"context_line":"            \u0027updated\u0027,"},{"line_number":235,"context_line":"            \u0027region\u0027"},{"line_number":236,"context_line":"        ]"},{"line_number":237,"context_line":"        raise SkipTest(\"test disabled\")"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        if CONFIG.trove_volume_support:"},{"line_number":240,"context_line":"            expected_fields.append(\u0027volume\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_33466a4f","line":237,"range":{"start_line":237,"start_character":8,"end_line":237,"end_character":39},"in_reply_to":"ba5da102_2c7839c4","updated":"2016-11-02 19:21:21.000000000","message":"Took them out to test something, forgot to put them back in.","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"1241e161cbe892c95214bfc9a73ebf610f81b09e","unresolved":false,"context_lines":[{"line_number":257,"context_line":"        Make sure that the deleted\u003d filter works as expected, and no instances"},{"line_number":258,"context_line":"        are excluded."},{"line_number":259,"context_line":"        \"\"\""},{"line_number":260,"context_line":"        raise SkipTest(\"test disabled\")"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"        if not hasattr(self.client.management.index, \u0027deleted\u0027):"},{"line_number":263,"context_line":"            raise SkipTest(\"instance index must have a deleted \""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_4c73ade7","line":260,"range":{"start_line":260,"start_character":8,"end_line":260,"end_character":39},"updated":"2016-10-30 23:44:37.000000000","message":"ditto","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"70db0b73c5b97d8176be4e96243f823d865e1425","unresolved":false,"context_lines":[{"line_number":257,"context_line":"        Make sure that the deleted\u003d filter works as expected, and no instances"},{"line_number":258,"context_line":"        are excluded."},{"line_number":259,"context_line":"        \"\"\""},{"line_number":260,"context_line":"        raise SkipTest(\"test disabled\")"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"        if not hasattr(self.client.management.index, \u0027deleted\u0027):"},{"line_number":263,"context_line":"            raise SkipTest(\"instance index must have a deleted \""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_53775e9f","line":260,"range":{"start_line":260,"start_character":8,"end_line":260,"end_character":39},"in_reply_to":"ba5da102_4c73ade7","updated":"2016-11-02 19:21:21.000000000","message":"ditto","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"}],"trove/tests/fakes/guestagent.py":[{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"1241e161cbe892c95214bfc9a73ebf610f81b09e","unresolved":false,"context_lines":[{"line_number":361,"context_line":"    def backup_required_for_replication(self):"},{"line_number":362,"context_line":"        return True"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"    def post_processing_required_for_replication(self):"},{"line_number":365,"context_line":"        return False"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"    def module_list(self, context, include_contents\u003dFalse):"},{"line_number":368,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_8c7dc5b3","line":365,"range":{"start_line":364,"start_character":0,"end_line":365,"end_character":20},"updated":"2016-10-30 23:44:37.000000000","message":"looks like another weird rebase inclusion","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"},{"author":{"_account_id":9782,"name":"Morgan Jones","email":"morgan@tesora.com","username":"vgnbkr"},"change_message_id":"70db0b73c5b97d8176be4e96243f823d865e1425","unresolved":false,"context_lines":[{"line_number":361,"context_line":"    def backup_required_for_replication(self):"},{"line_number":362,"context_line":"        return True"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"    def post_processing_required_for_replication(self):"},{"line_number":365,"context_line":"        return False"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"    def module_list(self, context, include_contents\u003dFalse):"},{"line_number":368,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba5da102_c62a272c","line":365,"range":{"start_line":364,"start_character":0,"end_line":365,"end_character":20},"in_reply_to":"ba5da102_8c7dc5b3","updated":"2016-11-02 19:21:21.000000000","message":"Yes, I believe that is so.","commit_id":"a5b6617d21ae69568678509cc6f3b0b4dc0d3181"}]}
