)]}'
{"etc/nova/policy.json":[{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"8cfba62b8d7b0f7aa3f0a34198040fb878472340","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    \"network:get_dns_entries_by_name\": [],"},{"line_number":51,"context_line":"    \"network:create_private_dns_domain\": [],"},{"line_number":52,"context_line":"    \"network:create_public_dns_domain\": [],"},{"line_number":53,"context_line":"    \"network:delete_dns_domain\": [],"},{"line_number":54,"context_line":"}"}],"source_content_type":"application/json","patch_set":14,"id":"AAAAD3%2F%2F880%3D","line":53,"updated":"2012-01-18 18:35:40.000000000","message":"The trailing comma here is causing the json not to load :( That\u0027s causing the devstack failures.","commit_id":"aea83e6d08d72ad4061c4fbc15c55ea714a069dc"}],"nova/api/openstack/compute/contrib/floating_ip_dns.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"e349a13bba2ff978d1ac7f87cdc68700ab914853","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        return xmlutil.MasterTemplate(root, 1)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"class ZoneTemplate(xmlutil.TemplateBuilder):"},{"line_number":65,"context_line":"    def construct(self):"},{"line_number":66,"context_line":"        root \u003d xmlutil.TemplateElement(\u0027zone_entry\u0027,"},{"line_number":67,"context_line":"                                       selector\u003d\u0027zone_entry\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAD3%2F%2F9qU%3D","line":64,"updated":"2012-01-16 22:13:37.000000000","message":"I don\u0027t see any place in this file where you\u0027re using ZoneTemplate…","commit_id":"40b0cc76472e369e372f760b96bf14737f5c7e67"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"e349a13bba2ff978d1ac7f87cdc68700ab914853","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        return xmlutil.MasterTemplate(root, 1)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"class FloatingIPDNSSerializer(xmlutil.XMLTemplateSerializer):"},{"line_number":82,"context_line":"    def index(self):"},{"line_number":83,"context_line":"        return ZonesTemplate()"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAD3%2F%2F9qg%3D","line":81,"updated":"2012-01-16 22:13:37.000000000","message":"You no longer need this serializer class; serializers are now specified using the @wsgi.serializers() decorator on the controller methods.","commit_id":"40b0cc76472e369e372f760b96bf14737f5c7e67"}],"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"2fd627c9ed5001713fee1f7143429acffbb21b3c","unresolved":false,"context_lines":[{"line_number":722,"context_line":""},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"@require_context"},{"line_number":725,"context_line":"def dnsdomain_scope(context, fqdomain):"},{"line_number":726,"context_line":"    session \u003d get_session()"},{"line_number":727,"context_line":"    with session.begin():"},{"line_number":728,"context_line":"        domain_ref \u003d dnsdomain_get(context, session, fqdomain)"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAD3%2F%2F9ck%3D","line":725,"updated":"2012-01-17 08:01:18.000000000","message":"Rather than splitting up dnsdomain_scope, _zone, and _project, I would prefer that you simply use dnsdomain_get in the calling code and access whatever attribute you need at that layer. These attribute-specific functions can get way out of hand :)","commit_id":"90fbc5f3bdbaaefa1ce95b89146ddfe4c1ab1caf"}],"nova/db/sqlalchemy/migration.py":[{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"1b08170470dafbcca6b3ea90b8956d5fbeaeee82","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        meta.reflect(bind\u003dengine)"},{"line_number":68,"context_line":"        try:"},{"line_number":69,"context_line":"            for table in (\u0027auth_tokens\u0027, \u0027zones\u0027, \u0027export_devices\u0027,"},{"line_number":70,"context_line":"                          \u0027dns_domains\u0027,"},{"line_number":71,"context_line":"                          \u0027fixed_ips\u0027, \u0027floating_ips\u0027, \u0027instances\u0027,"},{"line_number":72,"context_line":"                          \u0027key_pairs\u0027, \u0027networks\u0027, \u0027projects\u0027, \u0027quotas\u0027,"},{"line_number":73,"context_line":"                          \u0027security_group_instance_association\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAD3%2F%2F%2FSk%3D","line":70,"updated":"2012-01-10 21:39:27.000000000","message":"need to remove this as well","commit_id":"813d9c8a5e607c8b669e5347dabdced2c9fd69f9"}],"nova/network/manager.py":[{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"cccca4483304cce272fa0014c805bdd97f57563e","unresolved":false,"context_lines":[{"line_number":1070,"context_line":"            \u0027admin\u0027 not in roles and"},{"line_number":1071,"context_line":"            \u0027cloudadmin\u0027 not in roles and"},{"line_number":1072,"context_line":"            \u0027sysadmin\u0027 not in roles):"},{"line_number":1073,"context_line":"            raise exception.NotAuthorized()"},{"line_number":1074,"context_line":""},{"line_number":1075,"context_line":"    def _validate_instance_zone_for_dns_domain(self, context, instance_id):"},{"line_number":1076,"context_line":"        instance \u003d self.db.instance_get(context, instance_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAD3%2F%2F%2FWk%3D","line":1073,"updated":"2012-01-10 19:50:56.000000000","message":"This wil not work.  Roles are set externally now, so they exist in the context object as context.roles.  Authz will be done by the new policy system which is being added, so you should probably just take this out for now.","commit_id":"da198bcdede9d1654e92f5a7726bb1f654a1f898"}],"nova/tests/api/openstack/compute/contrib/test_floating_ip_dns.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"e349a13bba2ff978d1ac7f87cdc68700ab914853","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        self.assertEqual(name, tree.get(\u0027name\u0027))"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    def test_index_serializer(self):"},{"line_number":276,"context_line":"        serializer \u003d floating_ip_dns.FloatingIPDNSSerializer()"},{"line_number":277,"context_line":"        text \u003d serializer.serialize(dict("},{"line_number":278,"context_line":"                zone_entries\u003d["},{"line_number":279,"context_line":"                    dict(zone\u003dzone, scope\u003d\u0027public\u0027, project\u003d\u0027testproject\u0027),"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAD3%2F%2F9qI%3D","line":276,"updated":"2012-01-16 22:13:37.000000000","message":"You should use the template now, not the serializer class; that\u0027s going away.","commit_id":"40b0cc76472e369e372f760b96bf14737f5c7e67"}]}
