)]}'
{"keystone/backends/ldap/models.py":[{"author":{"_account_id":8,"name":"Yogeshwar Srikrishnan","email":"yoga80@yahoo.com","username":"yogesh-srikrishnan"},"change_message_id":"b068bb945614f9407f4234d571790e18b6f03561","unresolved":false,"context_lines":[{"line_number":1,"context_line":"from collections import Mapping"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"__all__ \u003d [\u0027UserRoleAssociation\u0027, \u0027Role\u0027, \u0027Tenant\u0027, \u0027User\u0027]"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"def create_model(name, attrs):"},{"line_number":7,"context_line":"    class C(Mapping):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACn%2F%2F76s%3D","line":4,"updated":"2011-11-30 05:35:36.000000000","message":"Ziad why are the other models disabled?Comments also don\u0027t give details.","commit_id":"7c6befb0df1b4de4f4ed0316f929d6fa820bd52f"},{"author":{"_account_id":5,"name":"Ziad Sawalha","email":"ziad.sawalha@rackspace.com","username":"ziad-sawalha"},"change_message_id":"346cec42fe2a8d10bb8aa657a2656b0e12fd2d53","unresolved":false,"context_lines":[{"line_number":1,"context_line":"from collections import Mapping"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"__all__ \u003d [\u0027UserRoleAssociation\u0027, \u0027Role\u0027, \u0027Tenant\u0027, \u0027User\u0027]"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"def create_model(name, attrs):"},{"line_number":7,"context_line":"    class C(Mapping):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACn%2F%2F75s%3D","line":4,"in_reply_to":"AAAACn%2F%2F76s%3D","updated":"2011-11-30 14:32:48.000000000","message":"They don\u0027t live in LDAP - they live in sqlalchemy. When we run with LDAP we also run SQL and store those entities in SQL.","commit_id":"7c6befb0df1b4de4f4ed0316f929d6fa820bd52f"}],"keystone/test/__init__.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"2aabfec61681e31adb0c99ed428b32aa69afdac0","unresolved":false,"context_lines":[{"line_number":58,"context_line":"import subprocess"},{"line_number":59,"context_line":"import tempfile"},{"line_number":60,"context_line":"import time"},{"line_number":61,"context_line":"import unittest"},{"line_number":62,"context_line":"cgitb.enable(format\u003d\"text\")"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"from functional.common import HttpTestCase"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACn%2F%2F8VY%3D","line":61,"updated":"2011-11-28 17:41:45.000000000","message":"Dropping support for python \u003c 2.7?","commit_id":"a00406ab05ec076867dbc030c27d7694d597ffb3"},{"author":{"_account_id":5,"name":"Ziad Sawalha","email":"ziad.sawalha@rackspace.com","username":"ziad-sawalha"},"change_message_id":"5ff7b3461f2cf3f87cb00459c0d9d423a1672cce","unresolved":false,"context_lines":[{"line_number":58,"context_line":"import subprocess"},{"line_number":59,"context_line":"import tempfile"},{"line_number":60,"context_line":"import time"},{"line_number":61,"context_line":"import unittest"},{"line_number":62,"context_line":"cgitb.enable(format\u003d\"text\")"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"from functional.common import HttpTestCase"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACn%2F%2F7%2FE%3D","line":61,"in_reply_to":"AAAACn%2F%2F8VY%3D","updated":"2011-11-30 00:18:47.000000000","message":"Other way round.","commit_id":"a00406ab05ec076867dbc030c27d7694d597ffb3"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"2aabfec61681e31adb0c99ed428b32aa69afdac0","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        return \u0027green\u0027"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"class NovaTestResult(result.TextTestResult):"},{"line_number":195,"context_line":"    def __init__(self, *args, **kw):"},{"line_number":196,"context_line":"        self.show_elapsed \u003d kw.pop(\u0027show_elapsed\u0027)"},{"line_number":197,"context_line":"        result.TextTestResult.__init__(self, *args, **kw)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACn%2F%2F8VU%3D","line":194,"updated":"2011-11-28 17:41:45.000000000","message":"Nova?","commit_id":"a00406ab05ec076867dbc030c27d7694d597ffb3"},{"author":{"_account_id":5,"name":"Ziad Sawalha","email":"ziad.sawalha@rackspace.com","username":"ziad-sawalha"},"change_message_id":"5ff7b3461f2cf3f87cb00459c0d9d423a1672cce","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        return \u0027green\u0027"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"class NovaTestResult(result.TextTestResult):"},{"line_number":195,"context_line":"    def __init__(self, *args, **kw):"},{"line_number":196,"context_line":"        self.show_elapsed \u003d kw.pop(\u0027show_elapsed\u0027)"},{"line_number":197,"context_line":"        result.TextTestResult.__init__(self, *args, **kw)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACn%2F%2F7%2FA%3D","line":194,"in_reply_to":"AAAACn%2F%2F8VU%3D","updated":"2011-11-30 00:18:47.000000000","message":"Yes. Took it from Nova. Keeping it that way now (I expect we\u0027ll get this in OpenStack common soon).","commit_id":"a00406ab05ec076867dbc030c27d7694d597ffb3"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"2aabfec61681e31adb0c99ed428b32aa69afdac0","unresolved":false,"context_lines":[{"line_number":389,"context_line":"        if p.poll() is not None:"},{"line_number":390,"context_line":"            raise RuntimeError(\u0027Failed to start server\u0027)"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"        self.server \u003d p"},{"line_number":393,"context_line":"        print \"Keystone started as process %s\" % p.pid"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACn%2F%2F8VQ%3D","line":392,"updated":"2011-11-28 17:41:45.000000000","message":"Why use a local variable here?","commit_id":"a00406ab05ec076867dbc030c27d7694d597ffb3"},{"author":{"_account_id":5,"name":"Ziad Sawalha","email":"ziad.sawalha@rackspace.com","username":"ziad-sawalha"},"change_message_id":"5ff7b3461f2cf3f87cb00459c0d9d423a1672cce","unresolved":false,"context_lines":[{"line_number":389,"context_line":"        if p.poll() is not None:"},{"line_number":390,"context_line":"            raise RuntimeError(\u0027Failed to start server\u0027)"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"        self.server \u003d p"},{"line_number":393,"context_line":"        print \"Keystone started as process %s\" % p.pid"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACn%2F%2F7%2B8%3D","line":392,"in_reply_to":"AAAACn%2F%2F8VQ%3D","updated":"2011-11-30 00:18:47.000000000","message":"No specific reason. Just getting the process up and running before storing it in self.","commit_id":"a00406ab05ec076867dbc030c27d7694d597ffb3"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"2aabfec61681e31adb0c99ed428b32aa69afdac0","unresolved":false,"context_lines":[{"line_number":410,"context_line":""},{"line_number":411,"context_line":"            runtests(verbosity)"},{"line_number":412,"context_line":"        except Exception as e:"},{"line_number":413,"context_line":"            print \u0027Error %s\u0027 % e"},{"line_number":414,"context_line":"        finally:"},{"line_number":415,"context_line":"            self.tearDown()"},{"line_number":416,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACn%2F%2F8VI%3D","line":413,"updated":"2011-11-28 17:41:45.000000000","message":"I\u0027d rather not have an except block if it\u0027s not accomplishing anything (?)","commit_id":"a00406ab05ec076867dbc030c27d7694d597ffb3"},{"author":{"_account_id":5,"name":"Ziad Sawalha","email":"ziad.sawalha@rackspace.com","username":"ziad-sawalha"},"change_message_id":"5ff7b3461f2cf3f87cb00459c0d9d423a1672cce","unresolved":false,"context_lines":[{"line_number":410,"context_line":""},{"line_number":411,"context_line":"            runtests(verbosity)"},{"line_number":412,"context_line":"        except Exception as e:"},{"line_number":413,"context_line":"            print \u0027Error %s\u0027 % e"},{"line_number":414,"context_line":"        finally:"},{"line_number":415,"context_line":"            self.tearDown()"},{"line_number":416,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACn%2F%2F7%2Bw%3D","line":413,"in_reply_to":"AAAACn%2F%2F8VI%3D","updated":"2011-11-30 00:18:47.000000000","message":"We might miss the exception otherwise, won\u0027t we?","commit_id":"a00406ab05ec076867dbc030c27d7694d597ffb3"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"500048450ed840adbe5b98cf4fd9f6de96f25462","unresolved":false,"context_lines":[{"line_number":514,"context_line":"                                    verbosity\u003dc.verbosity,"},{"line_number":515,"context_line":"                                    config\u003dc,"},{"line_number":516,"context_line":"                                    show_elapsed\u003dshow_elapsed)"},{"line_number":517,"context_line":" "},{"line_number":518,"context_line":"            return not core.run(config\u003dc, testRunner\u003drunner, argv\u003dargv+[\u0027-P\u0027])"},{"line_number":519,"context_line":"        except Exception as e:"},{"line_number":520,"context_line":"            print \u0027Error %s\u0027 % e"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACn%2F%2F774%3D","line":517,"updated":"2011-11-30 03:44:38.000000000","message":"PEP8","commit_id":"7c6befb0df1b4de4f4ed0316f929d6fa820bd52f"}],"run_tests.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"2aabfec61681e31adb0c99ed428b32aa69afdac0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"\"\"\""},{"line_number":4,"context_line":"To run all tests"},{"line_number":5,"context_line":"    python run_tests.py"},{"line_number":6,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACn%2F%2F8Vg%3D","line":3,"updated":"2011-11-28 17:41:45.000000000","message":"Just a thought... now that there\u0027s some useful content here, if we moved this file into keystone/, it would get picked up on http://keystone.openstack.org/","commit_id":"a00406ab05ec076867dbc030c27d7694d597ffb3"},{"author":{"_account_id":5,"name":"Ziad Sawalha","email":"ziad.sawalha@rackspace.com","username":"ziad-sawalha"},"change_message_id":"5ff7b3461f2cf3f87cb00459c0d9d423a1672cce","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"\"\"\""},{"line_number":4,"context_line":"To run all tests"},{"line_number":5,"context_line":"    python run_tests.py"},{"line_number":6,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACn%2F%2F7%2Bs%3D","line":3,"in_reply_to":"AAAACn%2F%2F8Vg%3D","updated":"2011-11-30 00:18:47.000000000","message":"It\u0027s in the root in all other projects. I\u0027d rather stay in line.","commit_id":"a00406ab05ec076867dbc030c27d7694d597ffb3"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"2aabfec61681e31adb0c99ed428b32aa69afdac0","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\"\"\""},{"line_number":15,"context_line":"import sys"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from keystone.test import KeystoneTest, SQLTest, MemcacheTest, LDAPTest, \\"},{"line_number":18,"context_line":"                        SSLTest"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACn%2F%2F8Vc%3D","line":17,"updated":"2011-11-28 17:41:45.000000000","message":"OS community prefers importing modules (from keystone import test)","commit_id":"a00406ab05ec076867dbc030c27d7694d597ffb3"},{"author":{"_account_id":5,"name":"Ziad Sawalha","email":"ziad.sawalha@rackspace.com","username":"ziad-sawalha"},"change_message_id":"5ff7b3461f2cf3f87cb00459c0d9d423a1672cce","unresolved":false,"context_lines":[{"line_number":14,"context_line":"\"\"\""},{"line_number":15,"context_line":"import sys"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from keystone.test import KeystoneTest, SQLTest, MemcacheTest, LDAPTest, \\"},{"line_number":18,"context_line":"                        SSLTest"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACn%2F%2F7%2BM%3D","line":17,"in_reply_to":"AAAACn%2F%2F8Vc%3D","updated":"2011-11-30 00:18:47.000000000","message":"Will fix.","commit_id":"a00406ab05ec076867dbc030c27d7694d597ffb3"}],"run_tests.sh":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"2aabfec61681e31adb0c99ed428b32aa69afdac0","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  echo \"                             Note: valid options now are SQLTest, LDAPTest, SSLTest, and MemcacheTest\""},{"line_number":11,"context_line":"  echo \"  -V, --virtual-env        Always use virtualenv.  Install automatically if not present\""},{"line_number":12,"context_line":"  echo \"  -N, --no-virtual-env     Don\u0027t use virtualenv.  Run tests in local environment\""},{"line_number":13,"context_line":"  echo \"  -x, --stop               Stop running tests after the first error or failure.\""},{"line_number":14,"context_line":"  echo \"  -f, --force              Force a clean re-build of the virtual environment. Useful when dependencies have been added.\""},{"line_number":15,"context_line":"  echo \"                             Note: you might need to \u0027sudo\u0027 this since it pip installs into the vitual environment\"  "},{"line_number":16,"context_line":"  echo \"  -p, --pep8               Just run pep8\""}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAACn%2F%2F8Vs%3D","line":13,"updated":"2011-11-28 17:41:45.000000000","message":"Is the default behavior to run all the tests now? Jenkins was using fail-fast.","commit_id":"a00406ab05ec076867dbc030c27d7694d597ffb3"},{"author":{"_account_id":5,"name":"Ziad Sawalha","email":"ziad.sawalha@rackspace.com","username":"ziad-sawalha"},"change_message_id":"5ff7b3461f2cf3f87cb00459c0d9d423a1672cce","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  echo \"                             Note: valid options now are SQLTest, LDAPTest, SSLTest, and MemcacheTest\""},{"line_number":11,"context_line":"  echo \"  -V, --virtual-env        Always use virtualenv.  Install automatically if not present\""},{"line_number":12,"context_line":"  echo \"  -N, --no-virtual-env     Don\u0027t use virtualenv.  Run tests in local environment\""},{"line_number":13,"context_line":"  echo \"  -x, --stop               Stop running tests after the first error or failure.\""},{"line_number":14,"context_line":"  echo \"  -f, --force              Force a clean re-build of the virtual environment. Useful when dependencies have been added.\""},{"line_number":15,"context_line":"  echo \"                             Note: you might need to \u0027sudo\u0027 this since it pip installs into the vitual environment\"  "},{"line_number":16,"context_line":"  echo \"  -p, --pep8               Just run pep8\""}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAACn%2F%2F7%2BI%3D","line":13,"in_reply_to":"AAAACn%2F%2F8Vs%3D","updated":"2011-11-30 00:18:47.000000000","message":"Got this from Nova. We can tell Jenkins to use -x.","commit_id":"a00406ab05ec076867dbc030c27d7694d597ffb3"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"2aabfec61681e31adb0c99ed428b32aa69afdac0","unresolved":false,"context_lines":[{"line_number":12,"context_line":"  echo \"  -N, --no-virtual-env     Don\u0027t use virtualenv.  Run tests in local environment\""},{"line_number":13,"context_line":"  echo \"  -x, --stop               Stop running tests after the first error or failure.\""},{"line_number":14,"context_line":"  echo \"  -f, --force              Force a clean re-build of the virtual environment. Useful when dependencies have been added.\""},{"line_number":15,"context_line":"  echo \"                             Note: you might need to \u0027sudo\u0027 this since it pip installs into the vitual environment\"  "},{"line_number":16,"context_line":"  echo \"  -p, --pep8               Just run pep8\""},{"line_number":17,"context_line":"  echo \"  -l, --pylint             Just run pylint\""},{"line_number":18,"context_line":"  echo \"  -c, --coverage           Generate coverage report\""}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAACn%2F%2F8Vw%3D","line":15,"updated":"2011-11-28 17:41:45.000000000","message":"This statement is backwards -- if you\u0027re using virtualenv, you should never have to sudo","commit_id":"a00406ab05ec076867dbc030c27d7694d597ffb3"},{"author":{"_account_id":5,"name":"Ziad Sawalha","email":"ziad.sawalha@rackspace.com","username":"ziad-sawalha"},"change_message_id":"5ff7b3461f2cf3f87cb00459c0d9d423a1672cce","unresolved":false,"context_lines":[{"line_number":12,"context_line":"  echo \"  -N, --no-virtual-env     Don\u0027t use virtualenv.  Run tests in local environment\""},{"line_number":13,"context_line":"  echo \"  -x, --stop               Stop running tests after the first error or failure.\""},{"line_number":14,"context_line":"  echo \"  -f, --force              Force a clean re-build of the virtual environment. Useful when dependencies have been added.\""},{"line_number":15,"context_line":"  echo \"                             Note: you might need to \u0027sudo\u0027 this since it pip installs into the vitual environment\"  "},{"line_number":16,"context_line":"  echo \"  -p, --pep8               Just run pep8\""},{"line_number":17,"context_line":"  echo \"  -l, --pylint             Just run pylint\""},{"line_number":18,"context_line":"  echo \"  -c, --coverage           Generate coverage report\""}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAACn%2F%2F7%2BE%3D","line":15,"in_reply_to":"AAAACn%2F%2F8Vw%3D","updated":"2011-11-30 00:18:47.000000000","message":"If you force, you [re]create the virtual environment and the pip install into it. I saw pip install fail without sudo.","commit_id":"a00406ab05ec076867dbc030c27d7694d597ffb3"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"2aabfec61681e31adb0c99ed428b32aa69afdac0","unresolved":false,"context_lines":[{"line_number":124,"context_line":"  echo \"Running pep8 ...\""},{"line_number":125,"context_line":"  # Opt-out files from pep8"},{"line_number":126,"context_line":"  ignore_scripts\u003d\"*.sh\""},{"line_number":127,"context_line":"  ignore_files\u003d\"*eventlet-patch,*pip-requires,*.log\""},{"line_number":128,"context_line":"  ignore_dirs\u003d\"*ajaxterm*\""},{"line_number":129,"context_line":"  GLOBIGNORE\u003d\"$ignore_scripts,$ignore_files,$ignore_dirs\""},{"line_number":130,"context_line":"  srcfiles\u003d`find bin -type f -not -name \"*.log\" -not -name \"*.db\"`"}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAACn%2F%2F8Vo%3D","line":127,"updated":"2011-11-28 17:41:45.000000000","message":"Was pep8 looking at non-py files?","commit_id":"a00406ab05ec076867dbc030c27d7694d597ffb3"},{"author":{"_account_id":5,"name":"Ziad Sawalha","email":"ziad.sawalha@rackspace.com","username":"ziad-sawalha"},"change_message_id":"5ff7b3461f2cf3f87cb00459c0d9d423a1672cce","unresolved":false,"context_lines":[{"line_number":124,"context_line":"  echo \"Running pep8 ...\""},{"line_number":125,"context_line":"  # Opt-out files from pep8"},{"line_number":126,"context_line":"  ignore_scripts\u003d\"*.sh\""},{"line_number":127,"context_line":"  ignore_files\u003d\"*eventlet-patch,*pip-requires,*.log\""},{"line_number":128,"context_line":"  ignore_dirs\u003d\"*ajaxterm*\""},{"line_number":129,"context_line":"  GLOBIGNORE\u003d\"$ignore_scripts,$ignore_files,$ignore_dirs\""},{"line_number":130,"context_line":"  srcfiles\u003d`find bin -type f -not -name \"*.log\" -not -name \"*.db\"`"}],"source_content_type":"text/x-sh","patch_set":1,"id":"AAAACn%2F%2F7%2BA%3D","line":127,"in_reply_to":"AAAACn%2F%2F8Vo%3D","updated":"2011-11-30 00:18:47.000000000","message":"Not sure. I brought this in line with nova.","commit_id":"a00406ab05ec076867dbc030c27d7694d597ffb3"}]}
