)]}'
{"nova/db/sqlalchemy/migration.py":[{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"286e6ac868095f990e01eb34b71c4b8c373e65f0","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                          \u0027volumes\u0027, \u0027volume_metadata\u0027,"},{"line_number":80,"context_line":"                          \u0027volume_types\u0027, \u0027volume_type_extra_specs\u0027,"},{"line_number":81,"context_line":"                          \u0027sm_flavors\u0027, \u0027sm_backend_config\u0027,"},{"line_number":82,"context_line":"                          \u0027sm_volume\u0027):"},{"line_number":83,"context_line":"                assert table in meta.tables"},{"line_number":84,"context_line":"            return db_version_control(1)"},{"line_number":85,"context_line":"        except AssertionError:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACX%2F%2F6XI%3D","line":82,"updated":"2011-10-26 20:31:02.000000000","message":"This should not be added here.  This is just detection code for the first migration.  The migration code adds the new tables.","commit_id":"55278ba1b5838bee81653948aa1b3719b6c9eb7f"},{"author":{"_account_id":1635,"deleted":true},"change_message_id":"60f325f7f3b4c927c09f27d78fdaf0851b5b4c8d","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                          \u0027volumes\u0027, \u0027volume_metadata\u0027,"},{"line_number":80,"context_line":"                          \u0027volume_types\u0027, \u0027volume_type_extra_specs\u0027,"},{"line_number":81,"context_line":"                          \u0027sm_flavors\u0027, \u0027sm_backend_config\u0027,"},{"line_number":82,"context_line":"                          \u0027sm_volume\u0027):"},{"line_number":83,"context_line":"                assert table in meta.tables"},{"line_number":84,"context_line":"            return db_version_control(1)"},{"line_number":85,"context_line":"        except AssertionError:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACX%2F%2F6DM%3D","line":82,"in_reply_to":"AAAACX%2F%2F6XI%3D","updated":"2011-10-29 01:33:31.000000000","message":"Done","commit_id":"55278ba1b5838bee81653948aa1b3719b6c9eb7f"}],"nova/db/sqlalchemy/models.py":[{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"286e6ac868095f990e01eb34b71c4b8c373e65f0","unresolved":false,"context_lines":[{"line_number":873,"context_line":"    bw_out \u003d Column(BigInteger)"},{"line_number":874,"context_line":""},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"class SMFlavors(BASE, NovaBase):"},{"line_number":877,"context_line":"    \"\"\"Represents a flavor for SM volumes.\"\"\""},{"line_number":878,"context_line":"    __tablename__ \u003d \u0027sm_flavors\u0027"},{"line_number":879,"context_line":"    id \u003d Column(Integer(), primary_key\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACX%2F%2F6XE%3D","line":876,"updated":"2011-10-26 20:31:02.000000000","message":"Have you considered whether it is possible to use the existing volume_types instead of adding a new table here?\nIt could be that the backend creates the required SMVolume based on the volume_type that is passed down from the api.  Otherwise an administrator will have to configure the flavors in two places.  Thoughts?","commit_id":"55278ba1b5838bee81653948aa1b3719b6c9eb7f"},{"author":{"_account_id":1635,"deleted":true},"change_message_id":"60f325f7f3b4c927c09f27d78fdaf0851b5b4c8d","unresolved":false,"context_lines":[{"line_number":873,"context_line":"    bw_out \u003d Column(BigInteger)"},{"line_number":874,"context_line":""},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"class SMFlavors(BASE, NovaBase):"},{"line_number":877,"context_line":"    \"\"\"Represents a flavor for SM volumes.\"\"\""},{"line_number":878,"context_line":"    __tablename__ \u003d \u0027sm_flavors\u0027"},{"line_number":879,"context_line":"    id \u003d Column(Integer(), primary_key\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACX%2F%2F5wU%3D","line":876,"in_reply_to":"AAAACX%2F%2F6XE%3D","updated":"2011-10-29 01:33:31.000000000","message":"Yes, would it be alright to do that as a next step? Since this code was written prior to the types commit, I thought it would be nice to get it reviewed and get some feedback.","commit_id":"55278ba1b5838bee81653948aa1b3719b6c9eb7f"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"286e6ac868095f990e01eb34b71c4b8c373e65f0","unresolved":false,"context_lines":[{"line_number":881,"context_line":"    description \u003d Column(String(255))"},{"line_number":882,"context_line":""},{"line_number":883,"context_line":""},{"line_number":884,"context_line":"class SMBackendConf(BASE, NovaBase):"},{"line_number":885,"context_line":"    \"\"\"Represents the connection to the backend for SM.\"\"\""},{"line_number":886,"context_line":"    __tablename__ \u003d \u0027sm_backend_config\u0027"},{"line_number":887,"context_line":"    id \u003d Column(Integer(), primary_key\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACX%2F%2F6XA%3D","line":884,"updated":"2011-10-26 20:31:02.000000000","message":"Same comment as above, only using volume_type_extra_specs instead of volume_type","commit_id":"55278ba1b5838bee81653948aa1b3719b6c9eb7f"},{"author":{"_account_id":1635,"deleted":true},"change_message_id":"60f325f7f3b4c927c09f27d78fdaf0851b5b4c8d","unresolved":false,"context_lines":[{"line_number":881,"context_line":"    description \u003d Column(String(255))"},{"line_number":882,"context_line":""},{"line_number":883,"context_line":""},{"line_number":884,"context_line":"class SMBackendConf(BASE, NovaBase):"},{"line_number":885,"context_line":"    \"\"\"Represents the connection to the backend for SM.\"\"\""},{"line_number":886,"context_line":"    __tablename__ \u003d \u0027sm_backend_config\u0027"},{"line_number":887,"context_line":"    id \u003d Column(Integer(), primary_key\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACX%2F%2F5wQ%3D","line":884,"in_reply_to":"AAAACX%2F%2F6XA%3D","updated":"2011-10-29 01:33:31.000000000","message":"Depending on feedback from nova-volume group, we might add an API for dynamic storage, in which case a similar table might be needed anyway. Again, would it be alright to change this as a next step? I am not considering the SM code complete anyway :)","commit_id":"55278ba1b5838bee81653948aa1b3719b6c9eb7f"}],"nova/virt/xenapi/volume_utils.py":[{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"286e6ac868095f990e01eb34b71c4b8c373e65f0","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        LOG.debug(params)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        try:"},{"line_number":95,"context_line":"            sr_ref \u003d session.call_xenapi(\"SR.introduce\", "},{"line_number":96,"context_line":"                                          sr_uuid,"},{"line_number":97,"context_line":"                                          label,"},{"line_number":98,"context_line":"                                          desc,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACX%2F%2F6W0%3D","line":95,"updated":"2011-10-26 20:31:02.000000000","message":"extra whitespace here.  Probably should do another pep8 check in case something else is missing.","commit_id":"55278ba1b5838bee81653948aa1b3719b6c9eb7f"},{"author":{"_account_id":1635,"deleted":true},"change_message_id":"60f325f7f3b4c927c09f27d78fdaf0851b5b4c8d","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        LOG.debug(params)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        try:"},{"line_number":95,"context_line":"            sr_ref \u003d session.call_xenapi(\"SR.introduce\", "},{"line_number":96,"context_line":"                                          sr_uuid,"},{"line_number":97,"context_line":"                                          label,"},{"line_number":98,"context_line":"                                          desc,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACX%2F%2F6DQ%3D","line":95,"in_reply_to":"AAAACX%2F%2F6W0%3D","updated":"2011-10-29 01:33:31.000000000","message":"Done","commit_id":"55278ba1b5838bee81653948aa1b3719b6c9eb7f"}],"nova/virt/xenapi/volumeops.py":[{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"286e6ac868095f990e01eb34b71c4b8c373e65f0","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        # NOTE: No Resource Pool concept so far"},{"line_number":122,"context_line":"        LOG.debug(_(\"Attach_volume: %(connection_info)s, %(instance_name)s,\""},{"line_number":123,"context_line":"                \" %(mountpoint)s\") % locals())"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        data \u003d connection_info[\u0027data\u0027]"},{"line_number":126,"context_line":"        if \u0027name_label\u0027 not in data:"},{"line_number":127,"context_line":"            label \u003d \u0027tempSR-%s\u0027 % data[\u0027volume_id\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACX%2F%2F6W4%3D","line":124,"updated":"2011-10-26 20:31:02.000000000","message":"You removed the check for driver_volume_type.  I think it is kind of important to make sure that driver_volume_type is \u0027iscsi\u0027.  Otherwise you are going to get a very odd error if you try to attach a sheepdog or rbd volume.","commit_id":"55278ba1b5838bee81653948aa1b3719b6c9eb7f"},{"author":{"_account_id":1635,"deleted":true},"change_message_id":"60f325f7f3b4c927c09f27d78fdaf0851b5b4c8d","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        # NOTE: No Resource Pool concept so far"},{"line_number":122,"context_line":"        LOG.debug(_(\"Attach_volume: %(connection_info)s, %(instance_name)s,\""},{"line_number":123,"context_line":"                \" %(mountpoint)s\") % locals())"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        data \u003d connection_info[\u0027data\u0027]"},{"line_number":126,"context_line":"        if \u0027name_label\u0027 not in data:"},{"line_number":127,"context_line":"            label \u003d \u0027tempSR-%s\u0027 % data[\u0027volume_id\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACX%2F%2F6DY%3D","line":124,"in_reply_to":"AAAACX%2F%2F6W4%3D","updated":"2011-10-29 01:33:31.000000000","message":"Added a check to ensure driver is one of iscsi, xensm.","commit_id":"55278ba1b5838bee81653948aa1b3719b6c9eb7f"}],"nova/volume/xensm.py":[{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"286e6ac868095f990e01eb34b71c4b8c373e65f0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2011 Citrix Systems, Inc."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACX%2F%2F6Ww%3D","line":1,"updated":"2011-10-26 20:31:02.000000000","message":"Minor nit, but the docstrings in this file are pretty inconsistent.  Be nice to start them all with a capital letter and end with a period.","commit_id":"55278ba1b5838bee81653948aa1b3719b6c9eb7f"},{"author":{"_account_id":1635,"deleted":true},"change_message_id":"60f325f7f3b4c927c09f27d78fdaf0851b5b4c8d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2011 Citrix Systems, Inc."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAACX%2F%2F6C0%3D","line":1,"in_reply_to":"AAAACX%2F%2F6Ww%3D","updated":"2011-10-29 01:33:31.000000000","message":"Done","commit_id":"55278ba1b5838bee81653948aa1b3719b6c9eb7f"}]}
