)]}'
{"nova/block_device.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"def strip_prefix(device_name):"},{"line_number":86,"context_line":"    \"\"\"remove both leading /dev/ and xvd or sd or vd \"\"\""},{"line_number":87,"context_line":"    device_name \u003d strip_dev(device_name)"},{"line_number":88,"context_line":"    return _pref.sub(\u0027\u0027, device_name)"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fxts%3D","line":86,"updated":"2013-01-05 21:17:10.000000000","message":"If you come back, I\u0027d prefer the first character here was uppercase.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/db/sqlalchemy/session.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":336,"context_line":""},{"line_number":337,"context_line":"def raise_if_duplicate_entry_error(integrity_error, engine_name):"},{"line_number":338,"context_line":"    \"\"\"In this function will be raised DBDuplicateEntry exception if integrity"},{"line_number":339,"context_line":"        error wrap unique constraint violation. \"\"\""},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    def get_columns_from_uniq_cons_or_name(columns):"},{"line_number":342,"context_line":"        # note(boris-42): UniqueConstraint name convention: \"uniq_c1_x_c2_x_c3\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fxto%3D","line":339,"updated":"2013-01-05 21:17:10.000000000","message":"You should fix the indent on this second line.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/network/linux_net.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"f79f54f90b0889a72f27005a4bf6290b64e6f560","unresolved":false,"context_lines":[{"line_number":1137,"context_line":""},{"line_number":1138,"context_line":"class LinuxNetInterfaceDriver(object):"},{"line_number":1139,"context_line":"    \"\"\"Abstract class that defines generic network host API\"\"\""},{"line_number":1140,"context_line":"    \"\"\"for for all Linux interface drivers.\"\"\""},{"line_number":1141,"context_line":""},{"line_number":1142,"context_line":"    def plug(self, network, mac_address):"},{"line_number":1143,"context_line":"        \"\"\"Create Linux device, return device name\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2Fyds%3D","line":1140,"updated":"2013-01-04 22:55:39.000000000","message":"Ewww, how did this get in here?  This needs a little bit more of a fix, IMO, as we\u0027ve now broken the whitespace separating sentences.","commit_id":"ac3f4fa8a8a3f2657a4a4fad75a544256beda84d"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":1137,"context_line":""},{"line_number":1138,"context_line":"class LinuxNetInterfaceDriver(object):"},{"line_number":1139,"context_line":"    \"\"\"Abstract class that defines generic network host API"},{"line_number":1140,"context_line":"    for for all Linux interface drivers.\"\"\""},{"line_number":1141,"context_line":""},{"line_number":1142,"context_line":"    def plug(self, network, mac_address):"},{"line_number":1143,"context_line":"        \"\"\"Create Linux device, return device name\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fxtg%3D","line":1140,"updated":"2013-01-05 21:17:10.000000000","message":"This second line should be indented more.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"b7b4fd691700c1782e633faa9e378ba1c1cc714f","unresolved":false,"context_lines":[{"line_number":1137,"context_line":""},{"line_number":1138,"context_line":"class LinuxNetInterfaceDriver(object):"},{"line_number":1139,"context_line":"    \"\"\"Abstract class that defines generic network host API\"\"\""},{"line_number":1140,"context_line":"    \"\"\"for for all Linux interface drivers.\"\"\""},{"line_number":1141,"context_line":""},{"line_number":1142,"context_line":"    def plug(self, network, mac_address):"},{"line_number":1143,"context_line":"        \"\"\"Create Linux device, return device name\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2Fw8U%3D","line":1140,"updated":"2013-01-07 04:43:46.000000000","message":"Shouldn\u0027t this be one doc comment?","commit_id":"89696af8babcf809313406386b58b95c8074a401"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"07571bb97da9623bdc1ee6e3acbb2b0f02a4edb6","unresolved":false,"context_lines":[{"line_number":1137,"context_line":""},{"line_number":1138,"context_line":"class LinuxNetInterfaceDriver(object):"},{"line_number":1139,"context_line":"    \"\"\"Abstract class that defines generic network host API\"\"\""},{"line_number":1140,"context_line":"    \"\"\"for for all Linux interface drivers.\"\"\""},{"line_number":1141,"context_line":""},{"line_number":1142,"context_line":"    def plug(self, network, mac_address):"},{"line_number":1143,"context_line":"        \"\"\"Create Linux device, return device name\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAM3%2F%2FwnY%3D","line":1140,"updated":"2013-01-07 12:25:30.000000000","message":"yes, not sure how that reverted","commit_id":"89696af8babcf809313406386b58b95c8074a401"}],"nova/network/minidns.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        Note that there is almost certainly a race condition here that"},{"line_number":36,"context_line":"        will manifest anytime instances are rapidly created and deleted."},{"line_number":37,"context_line":"        A proper implementation will need some manner of locking.\"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def __init__(self):"},{"line_number":40,"context_line":"        if CONF.log_dir:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fxtc%3D","line":37,"updated":"2013-01-05 21:17:10.000000000","message":"Fix indents.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/servicegroup/api.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        raise NotImplementedError()"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def is_up(self, member):"},{"line_number":113,"context_line":"        \"\"\"Check whether the given member is up. \"\"\""},{"line_number":114,"context_line":"        raise NotImplementedError()"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def leave(self, member_id, group_id):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FxtU%3D","line":113,"updated":"2013-01-05 21:17:10.000000000","message":"Shouldn\u0027t we drop the space at the end as well?","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/tests/api/openstack/compute/test_servers.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":1783,"context_line":""},{"line_number":1784,"context_line":"    def _check_admin_pass_len(self, server_dict):"},{"line_number":1785,"context_line":"        \"\"\"utility function - check server_dict for adminPass"},{"line_number":1786,"context_line":"        length."},{"line_number":1787,"context_line":""},{"line_number":1788,"context_line":"        \"\"\""},{"line_number":1789,"context_line":"        self.assertEqual(CONF.password_length,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FxtQ%3D","line":1786,"updated":"2013-01-05 21:17:10.000000000","message":"Indent, and lose the blank line after.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":1791,"context_line":""},{"line_number":1792,"context_line":"    def _check_admin_pass_missing(self, server_dict):"},{"line_number":1793,"context_line":"        \"\"\"utility function - check server_dict for absence"},{"line_number":1794,"context_line":"        of adminPass"},{"line_number":1795,"context_line":"        \"\"\""},{"line_number":1796,"context_line":"        self.assertTrue(\"adminPass\" not in server_dict)"},{"line_number":1797,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FxtM%3D","line":1794,"updated":"2013-01-05 21:17:10.000000000","message":"Indent.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/tests/api/openstack/test_common.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    \"\"\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def setUp(self):"},{"line_number":46,"context_line":"        \"\"\"Run before each test. \"\"\""},{"line_number":47,"context_line":"        super(LimiterTest, self).setUp()"},{"line_number":48,"context_line":"        self.tiny \u003d range(1)"},{"line_number":49,"context_line":"        self.small \u003d range(10)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FxtI%3D","line":46,"updated":"2013-01-05 21:17:10.000000000","message":"Lose space after (and all the others in this file).","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/tests/compute/test_compute.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":576,"context_line":"        \"\"\"block device mapping failure test."},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"        Make sure that when there is a block device mapping problem,"},{"line_number":579,"context_line":"        the instance goes to ERROR state, keeping the task state"},{"line_number":580,"context_line":"        \"\"\""},{"line_number":581,"context_line":"        def fake(*args, **kwargs):"},{"line_number":582,"context_line":"            raise test.TestingException()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FxtE%3D","line":579,"updated":"2013-01-05 21:17:10.000000000","message":"We should instead remove all of these doc comments... Perhaps convert them to normal comments? These mask the name of the failing test, which is annoying.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/tests/monkey_patch_example/__init__.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"def example_decorator(name, function):"},{"line_number":24,"context_line":"    \"\"\"decorator for notify which is used from utils.monkey_patch()"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"        :param name: name of the function"},{"line_number":27,"context_line":"        :param function: - object of the function"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FxtA%3D","line":24,"updated":"2013-01-05 21:17:10.000000000","message":"Capital letter at the begining please.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/tests/test_api.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":353,"context_line":"        \"\"\"Test that we sanely handle invalid security group names."},{"line_number":354,"context_line":"         EC2 API Spec states we should only accept alphanumeric characters,"},{"line_number":355,"context_line":"         spaces, dashes, and underscores. Amazon implementation"},{"line_number":356,"context_line":"         accepts more characters - so, [:print:] is ok. \"\"\""},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        bad_strict_ec2 \u003d \"aa \\t\\x01\\x02\\x7f\""},{"line_number":359,"context_line":"        bad_amazon_ec2 \u003d \"aa #^% -\u003d99\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fxs8%3D","line":356,"updated":"2013-01-05 21:17:10.000000000","message":"Indent.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":401,"context_line":"    def test_authorize_revoke_security_group_cidr(self):"},{"line_number":402,"context_line":"        \"\"\""},{"line_number":403,"context_line":"        Test that we can add and remove CIDR based rules"},{"line_number":404,"context_line":"        to a security group"},{"line_number":405,"context_line":"        \"\"\""},{"line_number":406,"context_line":"        self.expect_http()"},{"line_number":407,"context_line":"        self.mox.ReplayAll()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fxs4%3D","line":404,"updated":"2013-01-05 21:17:10.000000000","message":"There are many examples of indents that need fixing here. This one is pretty special though.\n\nThese are unit tests though -- perhaps we should just remove the doc comments entirely.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/tests/test_db_api.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":321,"context_line":"                          inst[\u0027uuid\u0027], \u0027vm_state\u0027, [None, \u0027disable\u0027], \u0027run\u0027)"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"    def test_instance_update_with_instance_uuid(self):"},{"line_number":324,"context_line":"        \"\"\"test instance_update() works when an instance UUID is passed \"\"\""},{"line_number":325,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        # Create an instance with some metadata"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fxs0%3D","line":324,"updated":"2013-01-05 21:17:10.000000000","message":"Remove these.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/tests/test_libvirt.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"f79f54f90b0889a72f27005a4bf6290b64e6f560","unresolved":false,"context_lines":[{"line_number":4181,"context_line":"        self.stubs.Set(utils, \u0027execute\u0027, fake_execute)"},{"line_number":4182,"context_line":""},{"line_number":4183,"context_line":"        ins_ref \u003d self._create_instance()"},{"line_number":4184,"context_line":"        \"\"\"dest is different host case \"\"\""},{"line_number":4185,"context_line":"        out \u003d self.libvirtconnection.migrate_disk_and_power_off("},{"line_number":4186,"context_line":"               None, ins_ref, \u002710.0.0.2\u0027, None, None)"},{"line_number":4187,"context_line":"        self.assertEquals(out, disk_info_text)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FydY%3D","line":4184,"updated":"2013-01-04 22:55:39.000000000","message":"Thought you were excepting these?  I\u0027d prefer these be fixed by being turned into comments, however…","commit_id":"ac3f4fa8a8a3f2657a4a4fad75a544256beda84d"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"a112cbd83320ca1aff56f35679e9fef2c1d9820b","unresolved":false,"context_lines":[{"line_number":4303,"context_line":"        self.stubs.Set(utils, \u0027execute\u0027, fake_execute)"},{"line_number":4304,"context_line":""},{"line_number":4305,"context_line":"        ins_ref \u003d self._create_instance()"},{"line_number":4306,"context_line":"        \"\"\"dest is different host case \"\"\""},{"line_number":4307,"context_line":"        out \u003d self.libvirtconnection.migrate_disk_and_power_off("},{"line_number":4308,"context_line":"               None, ins_ref, \u002710.0.0.2\u0027, None, None)"},{"line_number":4309,"context_line":"        self.assertEquals(out, disk_info_text)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2FwFU%3D","line":4306,"updated":"2013-01-07 17:56:59.000000000","message":"I thought these had been converted into comments?","commit_id":"77d9ed7a1ede0d1fa15f5c32afdb2d9810507831"}],"nova/tests/test_xenapi.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":2493,"context_line":""},{"line_number":2494,"context_line":""},{"line_number":2495,"context_line":"class ResourcePoolWithStubs(StubDependencies, pool.ResourcePool):"},{"line_number":2496,"context_line":"    \"\"\"A ResourcePool, use stub dependencies \"\"\""},{"line_number":2497,"context_line":""},{"line_number":2498,"context_line":""},{"line_number":2499,"context_line":"class HypervisorPoolTestCase(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fxsw%3D","line":2496,"updated":"2013-01-05 21:17:10.000000000","message":"Trailing space, no full stop.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/tests/xenapi/stubs.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"def stubout_is_snapshot(stubs):"},{"line_number":101,"context_line":"    \"\"\"Always returns true"},{"line_number":102,"context_line":"        xenapi fake driver does not create vmrefs for snapshots \"\"\""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def f(*args):"},{"line_number":105,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fxss%3D","line":102,"updated":"2013-01-05 21:17:10.000000000","message":"This one needs reformatting. Its also a pretty obvious first line...","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"class FakeSessionForVMTests(fake.SessionBase):"},{"line_number":161,"context_line":"    \"\"\"Stubs out a XenAPISession for VM tests \"\"\""},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    _fake_iptables_save_output \u003d (\"# Generated by iptables-save v1.4.10 on \""},{"line_number":164,"context_line":"                                  \"Sun Nov  6 22:49:02 2011\\n\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fxso%3D","line":161,"updated":"2013-01-05 21:17:10.000000000","message":"Trailing space, no full stop.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"class FakeSessionForFirewallTests(FakeSessionForVMTests):"},{"line_number":207,"context_line":"    \"\"\"Stubs out a XenApi Session for doing IPTable Firewall tests \"\"\""},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    def __init__(self, uri, test_case\u003dNone):"},{"line_number":210,"context_line":"        super(FakeSessionForFirewallTests, self).__init__(uri)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fxsk%3D","line":207,"updated":"2013-01-05 21:17:10.000000000","message":"Trailing space, no full stop (and the rest of this file).","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/utils.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":878,"context_line":"    (See nova.notifier.api.notify_decorator)"},{"line_number":879,"context_line":""},{"line_number":880,"context_line":"    name - name of the function"},{"line_number":881,"context_line":"    function - object of the function"},{"line_number":882,"context_line":"    \"\"\""},{"line_number":883,"context_line":"    # If CONF.monkey_patch is not True, this function do nothing."},{"line_number":884,"context_line":"    if not CONF.monkey_patch:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fxsc%3D","line":881,"updated":"2013-01-05 21:17:10.000000000","message":"Indentation is wrong, also, we mark params with :param:","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/virt/fake.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        raise NotImplementedError(\u0027This method is supported only by libvirt.\u0027)"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"    def test_remove_vm(self, instance_name):"},{"line_number":350,"context_line":"        \"\"\"Removes the named VM, as if it crashed. For testing\"\"\""},{"line_number":351,"context_line":"        self.instances.pop(instance_name)"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"    def get_host_stats(self, refresh\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FxsY%3D","line":350,"updated":"2013-01-05 21:17:10.000000000","message":"I don\u0027t know if PEP8 enforces it, but I was taught as a child that the first line of a doc comment should be a single sentence.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/virt/hyperv/hostops.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        self._stats \u003d None"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def _get_cpu_info(self):"},{"line_number":42,"context_line":"        \"\"\"Get the CPU information."},{"line_number":43,"context_line":"        :returns: A dictionary containing the main properties"},{"line_number":44,"context_line":"        of the central processor in the hypervisor."},{"line_number":45,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FxsU%3D","line":42,"updated":"2013-01-05 21:17:10.000000000","message":"Needs a blank line afterwards.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        return total_gb, used_gb"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def _get_vcpu_used(self):"},{"line_number":110,"context_line":"        \"\"\"Get vcpu usage number of physical computer."},{"line_number":111,"context_line":"        :returns: The total number of vcpu that currently used."},{"line_number":112,"context_line":"        \"\"\""},{"line_number":113,"context_line":"        #TODO(jordanrinke) figure out a way to count assigned VCPUs"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FxsQ%3D","line":110,"updated":"2013-01-05 21:17:10.000000000","message":"Ditto.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/virt/hyperv/vmops.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        self._volumeops \u003d volumeops"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def list_instances(self):"},{"line_number":72,"context_line":"        \"\"\"Return the names of all the instances known to Hyper-V. \"\"\""},{"line_number":73,"context_line":"        vms \u003d [v.ElementName"},{"line_number":74,"context_line":"                for v in self._conn.Msvm_ComputerSystem([\u0027ElementName\u0027],"},{"line_number":75,"context_line":"                    Caption\u003d\"Virtual Machine\")]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FxsM%3D","line":72,"updated":"2013-01-05 21:17:10.000000000","message":"Trailing space.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":271,"context_line":"        LOG.debug(_(\u0027Set vcpus for vm %s...\u0027), instance[\"name\"])"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    def _create_scsi_controller(self, vm_name):"},{"line_number":274,"context_line":"        \"\"\"Create an iscsi controller ready to mount volumes \"\"\""},{"line_number":275,"context_line":"        LOG.debug(_(\u0027Creating a scsi controller for %(vm_name)s for volume \u0027"},{"line_number":276,"context_line":"                \u0027attaching\u0027) % locals())"},{"line_number":277,"context_line":"        vms \u003d self._conn.MSVM_ComputerSystem(ElementName\u003dvm_name)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FxsI%3D","line":274,"updated":"2013-01-05 21:17:10.000000000","message":"Trailing space, no full stop.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/virt/hyperv/volumeutils.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":68,"context_line":"            time.sleep(CONF.hyperv_wait_between_attach_retry)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        def logout_storage_target(self, target_iqn):"},{"line_number":71,"context_line":"            \"\"\"Logs out storage target through its session id \"\"\""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"            sessions \u003d self._conn_wmi.query("},{"line_number":74,"context_line":"                    \"SELECT * FROM MSiSCSIInitiator_SessionClass \\"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FxsE%3D","line":71,"updated":"2013-01-05 21:17:10.000000000","message":"Trailing space and no full stop (and the one below).","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/virt/hyperv/volumeutilsV2.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            time.sleep(CONF.hyperv_wait_between_attach_retry)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        def logout_storage_target(self, target_iqn):"},{"line_number":56,"context_line":"            \"\"\"Logs out storage target through its session id \"\"\""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"            target \u003d self._conn_storage.MSFT_iSCSITarget("},{"line_number":59,"context_line":"                    NodeAddress\u003dtarget_iqn)[0]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FxsA%3D","line":56,"updated":"2013-01-05 21:17:10.000000000","message":"Trailing space and no full stop.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":2576,"context_line":""},{"line_number":2577,"context_line":"    def _fetch_instance_kernel_ramdisk(self, context, instance):"},{"line_number":2578,"context_line":"        \"\"\"Download kernel and ramdisk for given instance in the given"},{"line_number":2579,"context_line":"            instance directory."},{"line_number":2580,"context_line":"        \"\"\""},{"line_number":2581,"context_line":"        instance_dir \u003d os.path.join(CONF.instances_path, instance[\u0027name\u0027])"},{"line_number":2582,"context_line":"        if instance[\u0027kernel_id\u0027]:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fxr8%3D","line":2579,"updated":"2013-01-05 21:17:10.000000000","message":"Indent is wrong now.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":2997,"context_line":"    def get_diagnostics(self, instance):"},{"line_number":2998,"context_line":"        def get_io_devices(xml_doc):"},{"line_number":2999,"context_line":"            \"\"\"get the list of io devices from the"},{"line_number":3000,"context_line":"            xml document.\"\"\""},{"line_number":3001,"context_line":"            result \u003d {\"volumes\": [], \"ifaces\": []}"},{"line_number":3002,"context_line":"            try:"},{"line_number":3003,"context_line":"                doc \u003d etree.fromstring(xml_doc)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fxr4%3D","line":3000,"updated":"2013-01-05 21:17:10.000000000","message":"This should be a single line if it will fit.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/virt/libvirt/vif.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":273,"context_line":"       OVS virtual port XML (introduced in libvirt 0.9.11).\"\"\""},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    def get_config(self, instance, network, mapping):"},{"line_number":276,"context_line":"        \"\"\"Pass data required to create OVS virtual port element\"\"\""},{"line_number":277,"context_line":"        conf \u003d super(LibvirtOpenVswitchVirtualPortDriver,"},{"line_number":278,"context_line":"                     self).get_config(instance,"},{"line_number":279,"context_line":"                                      network,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fxr0%3D","line":276,"updated":"2013-01-05 21:17:10.000000000","message":"Full stop at end.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/virt/libvirt/volume_nfs.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class NfsVolumeDriver(volume.LibvirtVolumeDriver):"},{"line_number":42,"context_line":"    \"\"\"Class implements libvirt part of volume driver for NFS"},{"line_number":43,"context_line":"    \"\"\""},{"line_number":44,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":45,"context_line":"        \"\"\"Create back-end to nfs and check connection\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fxro%3D","line":42,"updated":"2013-01-05 21:17:10.000000000","message":"Full stop at end, bring closing quotes up to this line.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/virt/xenapi/driver.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                                     block_device_info)"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def snapshot(self, context, instance, image_id):"},{"line_number":192,"context_line":"        \"\"\"Create snapshot from a running VM instance \"\"\""},{"line_number":193,"context_line":"        self._vmops.snapshot(context, instance, image_id)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    def reboot(self, instance, network_info, reboot_type,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FxrU%3D","line":192,"updated":"2013-01-05 21:17:10.000000000","message":"Trailing space. Needs full stop.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":517,"context_line":"    def refresh_security_group_rules(self, security_group_id):"},{"line_number":518,"context_line":"        \"\"\"Updates security group rules for all instances"},{"line_number":519,"context_line":"            associated with a given security group"},{"line_number":520,"context_line":"            Invoked when security group rules are updated"},{"line_number":521,"context_line":"        \"\"\""},{"line_number":522,"context_line":"        return self._vmops.refresh_security_group_rules(security_group_id)"},{"line_number":523,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FxrQ%3D","line":520,"updated":"2013-01-05 21:17:10.000000000","message":"Indent wrong.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":524,"context_line":"    def refresh_security_group_members(self, security_group_id):"},{"line_number":525,"context_line":"        \"\"\"Updates security group rules for all instances"},{"line_number":526,"context_line":"            associated with a given security group"},{"line_number":527,"context_line":"            Invoked when instances are added/removed to a security group"},{"line_number":528,"context_line":"        \"\"\""},{"line_number":529,"context_line":"        return self._vmops.refresh_security_group_members(security_group_id)"},{"line_number":530,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FxrM%3D","line":527,"updated":"2013-01-05 21:17:10.000000000","message":"Indent wrong.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":531,"context_line":"    def refresh_instance_security_rules(self, instance):"},{"line_number":532,"context_line":"        \"\"\"Updates security group rules for specified instance"},{"line_number":533,"context_line":"            Invoked when instances are added/removed to a security group"},{"line_number":534,"context_line":"            or when a rule is added/removed to a security group"},{"line_number":535,"context_line":"        \"\"\""},{"line_number":536,"context_line":"        return self._vmops.refresh_instance_security_rules(instance)"},{"line_number":537,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FxrI%3D","line":534,"updated":"2013-01-05 21:17:10.000000000","message":"Indent wrong.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/virt/xenapi/firewall.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    This class provides an implementation for nova.virt.Firewall"},{"line_number":33,"context_line":"    using iptables. This class is meant to be used with the xenapi"},{"line_number":34,"context_line":"    backend and uses xenapi plugin to enforce iptables rules in dom0"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    \"\"\""},{"line_number":37,"context_line":"    def _plugin_execute(self, *cmd, **kwargs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FxrE%3D","line":34,"updated":"2013-01-05 21:17:10.000000000","message":"Indent wrong.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    using iptables. This class is meant to be used with the xenapi"},{"line_number":34,"context_line":"    backend and uses xenapi plugin to enforce iptables rules in dom0"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    \"\"\""},{"line_number":37,"context_line":"    def _plugin_execute(self, *cmd, **kwargs):"},{"line_number":38,"context_line":"        # Prepare arguments for plugin call"},{"line_number":39,"context_line":"        args \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2FxrA%3D","line":36,"updated":"2013-01-05 21:17:10.000000000","message":"Please remove the blank line before this line.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"nova/virt/xenapi/vmops.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":1505,"context_line":"        self._session.call_xenapi(\u0027VM.remove_from_xenstore_data\u0027, vm_ref, key)"},{"line_number":1506,"context_line":""},{"line_number":1507,"context_line":"    def refresh_security_group_rules(self, security_group_id):"},{"line_number":1508,"context_line":"        \"\"\"recreates security group rules for every instance \"\"\""},{"line_number":1509,"context_line":"        self.firewall_driver.refresh_security_group_rules(security_group_id)"},{"line_number":1510,"context_line":""},{"line_number":1511,"context_line":"    def refresh_security_group_members(self, security_group_id):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fxq8%3D","line":1508,"updated":"2013-01-05 21:17:10.000000000","message":"Remove trailing space, add a full stop (and the ones below).","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"065281483ac0774ac98e8af4842e4d2194ccaa42","unresolved":false,"context_lines":[{"line_number":1602,"context_line":"        :param instance_ref: nova.db.sqlalchemy.models.Instance object"},{"line_number":1603,"context_line":"        :param dest_check_data: data returned by the check on the"},{"line_number":1604,"context_line":"                                destination, includes block_migration flag"},{"line_number":1605,"context_line":""},{"line_number":1606,"context_line":"        \"\"\""},{"line_number":1607,"context_line":"        if dest_check_data and \u0027migrate_data\u0027 in dest_check_data:"},{"line_number":1608,"context_line":"            vm_ref \u003d self._get_vm_opaque_ref(instance_ref)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAM3%2F%2Fxqo%3D","line":1605,"updated":"2013-01-05 21:17:10.000000000","message":"The indent is wrong here.","commit_id":"cc2fcaa4ea10a84e57569f51778ca3829115d081"}],"tools/hacking.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"558dfb63a7c40c2cadd4c1309140dbc706af2634","unresolved":false,"context_lines":[{"line_number":279,"context_line":"    # and not a doc block used somewhere after the first line of a"},{"line_number":280,"context_line":"    # function def"},{"line_number":281,"context_line":"    if (previous_logical.startswith(\"def \") or"},{"line_number":282,"context_line":"        previous_logical.startswith(\"def \")):"},{"line_number":283,"context_line":"        pos \u003d max([physical_line.find(i) for i in DOCSTRING_TRIPLE])"},{"line_number":284,"context_line":"        if (pos !\u003d -1 and len(physical_line) \u003e pos + 4):"},{"line_number":285,"context_line":"            if (physical_line[pos + 3] \u003d\u003d \u0027 \u0027):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FyTA%3D","line":282,"updated":"2013-01-05 00:05:37.000000000","message":"er…huh?  Did you mean for one of these to be \u0027startswith(\"class \")\u0027?","commit_id":"fdd24703d6d866dc3547899a3cc205a6968d9f93"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"b273f944688d20cdbd67e2be88f3911e247ed50a","unresolved":false,"context_lines":[{"line_number":279,"context_line":"    # and not a doc block used somewhere after the first line of a"},{"line_number":280,"context_line":"    # function def"},{"line_number":281,"context_line":"    if (previous_logical.startswith(\"def \") or"},{"line_number":282,"context_line":"        previous_logical.startswith(\"def \")):"},{"line_number":283,"context_line":"        pos \u003d max([physical_line.find(i) for i in DOCSTRING_TRIPLE])"},{"line_number":284,"context_line":"        if (pos !\u003d -1 and len(physical_line) \u003e pos + 4):"},{"line_number":285,"context_line":"            if (physical_line[pos + 3] \u003d\u003d \u0027 \u0027):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Fx2A%3D","line":282,"in_reply_to":"AAAAM3%2F%2FyTA%3D","updated":"2013-01-05 13:21:08.000000000","message":"yes, I did. *sigh* :)","commit_id":"fdd24703d6d866dc3547899a3cc205a6968d9f93"}]}
