)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"e8b106bab71f6a845d5329292a02629a96230486","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Merged with Avishay\u0027s changes and removed copy volume\u003c-\u003eimage"},{"line_number":10,"context_line":"from my driver. Also did some refactor based on Mike\u0027s comments"},{"line_number":11,"context_line":"last time."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I56db3ba41215489f6afe840ce5310a31f28bf5ae"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAM3%2F%2FGRI%3D","line":11,"updated":"2013-02-07 05:46:30.000000000","message":"It would be good if can specify the types of problems you refactored (e.g. fixed unused imports) . Its a bit difficult to locate the comments made last time on a different patch (unless you specify a change/commit id).","commit_id":"b9ab7e98473d9d0d05caa906e4e95d61f4d65a94"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"797520c4f248e6ab33025491a8f3711a663354a0","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Merged with Avishay\u0027s changes and removed copy volume\u003c-\u003eimage"},{"line_number":10,"context_line":"from my driver. Also did some refactor based on Mike\u0027s comments"},{"line_number":11,"context_line":"last time."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I56db3ba41215489f6afe840ce5310a31f28bf5ae"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAM3%2F%2FFhc%3D","line":11,"in_reply_to":"AAAAM3%2F%2FGKU%3D","updated":"2013-02-07 15:57:53.000000000","message":"Done","commit_id":"b9ab7e98473d9d0d05caa906e4e95d61f4d65a94"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"b39cf1295a65fbf0afac4bd24eb5cb9a7c5b0fa1","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Merged with Avishay\u0027s changes and removed copy volume\u003c-\u003eimage"},{"line_number":10,"context_line":"from my driver. Also did some refactor based on Mike\u0027s comments"},{"line_number":11,"context_line":"last time."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I56db3ba41215489f6afe840ce5310a31f28bf5ae"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAM3%2F%2FGKU%3D","line":11,"in_reply_to":"AAAAM3%2F%2FGRI%3D","updated":"2013-02-07 08:20:46.000000000","message":"Yes, a link to the previous commit would be nice, as well as some more details","commit_id":"b9ab7e98473d9d0d05caa906e4e95d61f4d65a94"}],"cinder/tests/test_emc.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":483,"context_line":"        self.driver.delete_volume(test_volume)"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"    def tearDown(self):"},{"line_number":486,"context_line":"        bExists \u003d os.path.exists(self.config_file_path)"},{"line_number":487,"context_line":"        if bExists:"},{"line_number":488,"context_line":"            os.remove(self.config_file_path)"},{"line_number":489,"context_line":"        super(EMCSMISISCSIDriverTestCase, self).tearDown()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9SE%3D","line":486,"updated":"2013-02-13 09:59:36.000000000","message":"what does bExists mean?","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9de1a596a16d08e5e552f6d7657cf3d2cbf1ee5a","unresolved":false,"context_lines":[{"line_number":483,"context_line":"        self.driver.delete_volume(test_volume)"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"    def tearDown(self):"},{"line_number":486,"context_line":"        bExists \u003d os.path.exists(self.config_file_path)"},{"line_number":487,"context_line":"        if bExists:"},{"line_number":488,"context_line":"            os.remove(self.config_file_path)"},{"line_number":489,"context_line":"        super(EMCSMISISCSIDriverTestCase, self).tearDown()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8xs%3D","line":486,"in_reply_to":"AAAAM3%2F%2B9SE%3D","updated":"2013-02-13 20:43:49.000000000","message":"bExists means it is a boolean variable to check if the fake config file created in setUp exists.  If it is there, delete it.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"2a107650bdb36c37a4c37fd171f00babec703edf","unresolved":false,"context_lines":[{"line_number":44,"context_line":"unit_creationclass \u003d \u0027CIM_ProtocolControllerForUnit\u0027"},{"line_number":45,"context_line":"storage_type \u003d \u0027gold\u0027"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"test_volume \u003d {\u0027name\u0027: \u0027vol1\u0027,"},{"line_number":48,"context_line":"               \u0027size\u0027: 1,"},{"line_number":49,"context_line":"               \u0027volume_name\u0027: \u0027vol1\u0027,"},{"line_number":50,"context_line":"               \u0027id\u0027: \u00271\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B3ws%3D","line":47,"updated":"2013-02-15 22:35:38.000000000","message":"I don\u0027t think any other drivers are doing this, yet, but like we do in the rest api tests, we could have a model factory be used instead of having all these fixtures. Perhaps in the future.","commit_id":"edbfa6a3a5697da0d39a8cf94cdbf2ed0f726b20"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bee4784055e7cd1d8ce2f4bff897b1ae16670f5a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"unit_creationclass \u003d \u0027CIM_ProtocolControllerForUnit\u0027"},{"line_number":45,"context_line":"storage_type \u003d \u0027gold\u0027"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"test_volume \u003d {\u0027name\u0027: \u0027vol1\u0027,"},{"line_number":48,"context_line":"               \u0027size\u0027: 1,"},{"line_number":49,"context_line":"               \u0027volume_name\u0027: \u0027vol1\u0027,"},{"line_number":50,"context_line":"               \u0027id\u0027: \u00271\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B3fA%3D","line":47,"in_reply_to":"AAAAM3%2F%2B3q8%3D","updated":"2013-02-16 00:44:35.000000000","message":"There\u0027s actually at least one other driver that is doing this.  It is just hidden inside a class.  That was where I got started:).  Please give me a pointer to the rest api tests.  I\u0027ll take a look.  Thanks.","commit_id":"edbfa6a3a5697da0d39a8cf94cdbf2ed0f726b20"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"26a2f651e1628defd109cf95550178fee562fa9d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"unit_creationclass \u003d \u0027CIM_ProtocolControllerForUnit\u0027"},{"line_number":45,"context_line":"storage_type \u003d \u0027gold\u0027"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"test_volume \u003d {\u0027name\u0027: \u0027vol1\u0027,"},{"line_number":48,"context_line":"               \u0027size\u0027: 1,"},{"line_number":49,"context_line":"               \u0027volume_name\u0027: \u0027vol1\u0027,"},{"line_number":50,"context_line":"               \u0027id\u0027: \u00271\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAM3%2F%2B3q8%3D","line":47,"in_reply_to":"AAAAM3%2F%2B3ws%3D","updated":"2013-02-15 22:56:48.000000000","message":"+1","commit_id":"edbfa6a3a5697da0d39a8cf94cdbf2ed0f726b20"}],"cinder/volume/api.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":143,"context_line":"            # check image size is not larger than volume size."},{"line_number":144,"context_line":"            if image_size_in_gb \u003e size:"},{"line_number":145,"context_line":"                msg \u003d _(\u0027Size of specified image is larger than volume size.\u0027)"},{"line_number":146,"context_line":"                raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":147,"context_line":"            # We use qemu-img to convert images to raw and so we can only"},{"line_number":148,"context_line":"            # support the intersection of what qemu-img and glance support"},{"line_number":149,"context_line":"            if (image_meta[\u0027container_format\u0027] !\u003d \u0027bare\u0027 and"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9N4%3D","line":146,"updated":"2013-02-13 09:59:36.000000000","message":"This change should be a separate commit to keep atomicity.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e24591536731695f2ae1e1084983601e7e1a8f7d","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":147,"context_line":"            # We use qemu-img to convert images to raw and so we can only"},{"line_number":148,"context_line":"            # support the intersection of what qemu-img and glance support"},{"line_number":149,"context_line":"            if (image_meta[\u0027container_format\u0027] !\u003d \u0027bare\u0027 and"},{"line_number":150,"context_line":"                image_meta[\u0027disk_format\u0027] not in [\u0027raw\u0027, \u0027qcow2\u0027,"},{"line_number":151,"context_line":"                                                  \u0027vmdk\u0027, \u0027vdi\u0027]):"},{"line_number":152,"context_line":"                msg \u003d (_(\"Image format must be one of raw, qcow2, \""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B82I%3D","line":149,"updated":"2013-02-13 14:50:24.000000000","message":"Umm... actually I didn\u0027t see this, have you done a rebase lately?  I removed this and the duplicate of it below as it doesn\u0027t belong here.\n\nThis should not be here, the image convert will do the conversion for us and besides this list is not inclusive.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9de1a596a16d08e5e552f6d7657cf3d2cbf1ee5a","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":147,"context_line":"            # We use qemu-img to convert images to raw and so we can only"},{"line_number":148,"context_line":"            # support the intersection of what qemu-img and glance support"},{"line_number":149,"context_line":"            if (image_meta[\u0027container_format\u0027] !\u003d \u0027bare\u0027 and"},{"line_number":150,"context_line":"                image_meta[\u0027disk_format\u0027] not in [\u0027raw\u0027, \u0027qcow2\u0027,"},{"line_number":151,"context_line":"                                                  \u0027vmdk\u0027, \u0027vdi\u0027]):"},{"line_number":152,"context_line":"                msg \u003d (_(\"Image format must be one of raw, qcow2, \""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8x8%3D","line":149,"in_reply_to":"AAAAM3%2F%2B82I%3D","updated":"2013-02-13 20:43:49.000000000","message":"This was Avishay\u0027s change initially.  I had to change \"or\" to \"and\" to make it work with my code.  I did notice the code was removed lately.  I thought it was removed by \"accident\" because of some automatic merge. Should have asked you about it.  I\u0027ll remove this.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":600,"context_line":"        \"\"\"Create a new image from the specified volume.\"\"\""},{"line_number":601,"context_line":"        self._check_volume_availability(context, volume, force)"},{"line_number":602,"context_line":""},{"line_number":603,"context_line":"        # We use qemu-img to convert raw images to the requested type"},{"line_number":604,"context_line":"        # and so we can only support the intersection of what qemu-img and"},{"line_number":605,"context_line":"        # glance support"},{"line_number":606,"context_line":"        if (metadata[\u0027container_format\u0027] !\u003d \u0027bare\u0027 and"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9Nw%3D","line":603,"updated":"2013-02-13 09:59:36.000000000","message":"same as above.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"e24591536731695f2ae1e1084983601e7e1a8f7d","unresolved":false,"context_lines":[{"line_number":603,"context_line":"        # We use qemu-img to convert raw images to the requested type"},{"line_number":604,"context_line":"        # and so we can only support the intersection of what qemu-img and"},{"line_number":605,"context_line":"        # glance support"},{"line_number":606,"context_line":"        if (metadata[\u0027container_format\u0027] !\u003d \u0027bare\u0027 and"},{"line_number":607,"context_line":"                metadata[\u0027disk_format\u0027] not in [\u0027raw\u0027, \u0027qcow2\u0027,"},{"line_number":608,"context_line":"                                                \u0027vmdk\u0027, \u0027vdi\u0027]):"},{"line_number":609,"context_line":"            msg \u003d (_(\"Image format must be one of raw, qcow2, \""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B818%3D","line":606,"updated":"2013-02-13 14:50:24.000000000","message":"Same as above from me too :)  \n\nAdding this will break things.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9de1a596a16d08e5e552f6d7657cf3d2cbf1ee5a","unresolved":false,"context_lines":[{"line_number":603,"context_line":"        # We use qemu-img to convert raw images to the requested type"},{"line_number":604,"context_line":"        # and so we can only support the intersection of what qemu-img and"},{"line_number":605,"context_line":"        # glance support"},{"line_number":606,"context_line":"        if (metadata[\u0027container_format\u0027] !\u003d \u0027bare\u0027 and"},{"line_number":607,"context_line":"                metadata[\u0027disk_format\u0027] not in [\u0027raw\u0027, \u0027qcow2\u0027,"},{"line_number":608,"context_line":"                                                \u0027vmdk\u0027, \u0027vdi\u0027]):"},{"line_number":609,"context_line":"            msg \u003d (_(\"Image format must be one of raw, qcow2, \""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8yA%3D","line":606,"in_reply_to":"AAAAM3%2F%2B818%3D","updated":"2013-02-13 20:43:49.000000000","message":"Same as above.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3b130a79097daf05dbaaec008260e6575d6513b1","unresolved":false,"context_lines":[{"line_number":315,"context_line":"        # up the glance_meta dependency, add it explicitly if"},{"line_number":316,"context_line":"        # it exists in the rv"},{"line_number":317,"context_line":"        if glance_meta:"},{"line_number":318,"context_line":"            volume[\u0027volume_glance_metadata\u0027] \u003d glance_meta"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"        return volume"},{"line_number":321,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B5Rc%3D","line":318,"updated":"2013-02-15 06:40:49.000000000","message":"I don\u0027t know why these two changes are shown here.  I was trying to undo the changes in this file.  How do I remove this file from my patch?","commit_id":"2dde2c198fe58983bb695a25adb5903171b99246"}],"cinder/volume/driver.py":[{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"e8b106bab71f6a845d5329292a02629a96230486","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from cinder.openstack.common import cfg"},{"line_number":30,"context_line":"from cinder.openstack.common import log as logging"},{"line_number":31,"context_line":"from cinder import utils"},{"line_number":32,"context_line":"from cinder.volume import iscsi"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FGRo%3D","line":32,"updated":"2013-02-07 05:46:30.000000000","message":"Import not used","commit_id":"b9ab7e98473d9d0d05caa906e4e95d61f4d65a94"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"797520c4f248e6ab33025491a8f3711a663354a0","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from cinder.openstack.common import cfg"},{"line_number":30,"context_line":"from cinder.openstack.common import log as logging"},{"line_number":31,"context_line":"from cinder import utils"},{"line_number":32,"context_line":"from cinder.volume import iscsi"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FFh0%3D","line":32,"in_reply_to":"AAAAM3%2F%2FGKY%3D","updated":"2013-02-07 15:57:53.000000000","message":"Added a comment here to clarify why import iscsi is needed.","commit_id":"b9ab7e98473d9d0d05caa906e4e95d61f4d65a94"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"b39cf1295a65fbf0afac4bd24eb5cb9a7c5b0fa1","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from cinder.openstack.common import cfg"},{"line_number":30,"context_line":"from cinder.openstack.common import log as logging"},{"line_number":31,"context_line":"from cinder import utils"},{"line_number":32,"context_line":"from cinder.volume import iscsi"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FGKY%3D","line":32,"in_reply_to":"AAAAM3%2F%2FGRo%3D","updated":"2013-02-07 08:20:46.000000000","message":"This is for FLAGS.iscsi_helper","commit_id":"b9ab7e98473d9d0d05caa906e4e95d61f4d65a94"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from cinder.openstack.common import cfg"},{"line_number":30,"context_line":"from cinder.openstack.common import log as logging"},{"line_number":31,"context_line":"from cinder import utils"},{"line_number":32,"context_line":"# Import iscsi for FLAGS.iscsi_helper"},{"line_number":33,"context_line":"from cinder.volume import iscsi"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9NY%3D","line":32,"updated":"2013-02-13 09:59:36.000000000","message":"This makes pyflakes fail. cinder.openstack.common.cfg.import_opt can help here.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"d7d692b25040caa6c6eeeca4c28f1063fe0a8e23","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from cinder.openstack.common import cfg"},{"line_number":30,"context_line":"from cinder.openstack.common import log as logging"},{"line_number":31,"context_line":"from cinder import utils"},{"line_number":32,"context_line":"# Import iscsi for FLAGS.iscsi_helper"},{"line_number":33,"context_line":"from cinder.volume import iscsi"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B3yg%3D","line":32,"in_reply_to":"AAAAM3%2F%2B8kA%3D","updated":"2013-02-15 22:33:47.000000000","message":"Pyflakes is a program that analyzes for logical errors. Might\u0027ve been pylint which checks style that actually caught this, I can\u0027t remember. It would fail because nothing obvious looked like it was using this in scope. It\u0027s prone to human error later of accidentally being removed.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9de1a596a16d08e5e552f6d7657cf3d2cbf1ee5a","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from cinder.openstack.common import cfg"},{"line_number":30,"context_line":"from cinder.openstack.common import log as logging"},{"line_number":31,"context_line":"from cinder import utils"},{"line_number":32,"context_line":"# Import iscsi for FLAGS.iscsi_helper"},{"line_number":33,"context_line":"from cinder.volume import iscsi"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8kA%3D","line":32,"in_reply_to":"AAAAM3%2F%2B9NY%3D","updated":"2013-02-13 20:43:49.000000000","message":"Using cinder.openstack.common.cfg.import_opt now.  It\u0027s definitely a better approach.  Thanks for pointing it out.\nWhat does pyflakes check?  I don\u0027t understand why it will fail.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"3b130a79097daf05dbaaec008260e6575d6513b1","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def create_cloned_volume(self, volume, src_vref):"},{"line_number":105,"context_line":"        \"\"\"Creates a clone of the specified volume.\"\"\""},{"line_number":106,"context_line":"        raise NotImplementedError()"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def delete_volume(self, volume):"},{"line_number":109,"context_line":"        \"\"\"Deletes a volume.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B5Rg%3D","line":106,"updated":"2013-02-15 06:40:49.000000000","message":"I didn\u0027t make this change.  I don\u0027t know why it shows as a diff here.  I compared my file with the one in the trunk, the only difference is on line 61 where I added a FLAGS.import_opt.","commit_id":"2dde2c198fe58983bb695a25adb5903171b99246"}],"cinder/volume/drivers/emc/emc_smis_common.py":[{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"e8b106bab71f6a845d5329292a02629a96230486","unresolved":false,"context_lines":[{"line_number":1271,"context_line":""},{"line_number":1272,"context_line":"    # Check if there are volumes mapped to a host"},{"line_number":1273,"context_line":"    # assoociated to the LunMaskingSCSIProtocolController"},{"line_number":1274,"context_line":"    def _are_volumes_mapped(self, volume, connector):"},{"line_number":1275,"context_line":"        numVolumesMapped \u003d 0"},{"line_number":1276,"context_line":""},{"line_number":1277,"context_line":"        vol_instance \u003d self._find_lun(volume)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FGQ4%3D","line":1274,"updated":"2013-02-07 05:46:30.000000000","message":"The method name appears like it would return a bool, but returns an int","commit_id":"b9ab7e98473d9d0d05caa906e4e95d61f4d65a94"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"797520c4f248e6ab33025491a8f3711a663354a0","unresolved":false,"context_lines":[{"line_number":1271,"context_line":""},{"line_number":1272,"context_line":"    # Check if there are volumes mapped to a host"},{"line_number":1273,"context_line":"    # assoociated to the LunMaskingSCSIProtocolController"},{"line_number":1274,"context_line":"    def _are_volumes_mapped(self, volume, connector):"},{"line_number":1275,"context_line":"        numVolumesMapped \u003d 0"},{"line_number":1276,"context_line":""},{"line_number":1277,"context_line":"        vol_instance \u003d self._find_lun(volume)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FFho%3D","line":1274,"in_reply_to":"AAAAM3%2F%2FGQ4%3D","updated":"2013-02-07 15:57:53.000000000","message":"Renamed to get_num_volumes_mapped.","commit_id":"b9ab7e98473d9d0d05caa906e4e95d61f4d65a94"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                  % {\u0027volumename\u0027: volumename,"},{"line_number":127,"context_line":"                     \u0027rc\u0027: rc})"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        if rc !\u003d 0L:"},{"line_number":130,"context_line":"            rc, errordesc \u003d self._wait_for_job_complete(job)"},{"line_number":131,"context_line":"            if rc !\u003d 0L:"},{"line_number":132,"context_line":"                LOG.error(_(\u0027Error Create Volume: %(volumename)s.  \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9Lk%3D","line":129,"updated":"2013-02-13 09:59:36.000000000","message":"Not necessary in this patch, but coverage for this path would be good.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a10e2874138ef0987a8700aa832a614e3290ccb2","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                  % {\u0027volumename\u0027: volumename,"},{"line_number":127,"context_line":"                     \u0027rc\u0027: rc})"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        if rc !\u003d 0L:"},{"line_number":130,"context_line":"            rc, errordesc \u003d self._wait_for_job_complete(job)"},{"line_number":131,"context_line":"            if rc !\u003d 0L:"},{"line_number":132,"context_line":"                LOG.error(_(\u0027Error Create Volume: %(volumename)s.  \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B4kY%3D","line":129,"in_reply_to":"AAAAM3%2F%2B9Lk%3D","updated":"2013-02-15 16:47:05.000000000","message":"Done","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                     \u0027storage_system\u0027: storage_system})"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        isVMAX \u003d storage_system.find(\u0027SYMMETRIX\u0027)"},{"line_number":171,"context_line":"        if isVMAX \u003e -1:"},{"line_number":172,"context_line":"            exception_message \u003d (_(\u0027Error Create Volume from Snapshot: \u0027"},{"line_number":173,"context_line":"                                 \u0027Volume: %(volumename)s  Snapshot: \u0027"},{"line_number":174,"context_line":"                                 \u0027%(snapshotname)s. Create Volume \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9Lo%3D","line":171,"updated":"2013-02-13 09:59:36.000000000","message":"Not necessary in this patch, but coverage for this path would be good.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a10e2874138ef0987a8700aa832a614e3290ccb2","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                     \u0027storage_system\u0027: storage_system})"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        isVMAX \u003d storage_system.find(\u0027SYMMETRIX\u0027)"},{"line_number":171,"context_line":"        if isVMAX \u003e -1:"},{"line_number":172,"context_line":"            exception_message \u003d (_(\u0027Error Create Volume from Snapshot: \u0027"},{"line_number":173,"context_line":"                                 \u0027Volume: %(volumename)s  Snapshot: \u0027"},{"line_number":174,"context_line":"                                 \u0027%(snapshotname)s. Create Volume \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B4kU%3D","line":171,"in_reply_to":"AAAAM3%2F%2B9Lo%3D","updated":"2013-02-15 16:47:05.000000000","message":"Done","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dexception_message)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        repservice \u003d self._find_replication_service(storage_system)"},{"line_number":182,"context_line":"        if repservice is None:"},{"line_number":183,"context_line":"            exception_message \u003d (_(\u0027Error Create Volume from Snapshot: \u0027"},{"line_number":184,"context_line":"                                 \u0027Volume: %(volumename)s  Snapshot: \u0027"},{"line_number":185,"context_line":"                                 \u0027%(snapshotname)s. Cannot find Replication \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9Lg%3D","line":182,"updated":"2013-02-13 09:59:36.000000000","message":"Not necessary in this patch, but coverage for this path would be good.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                    SyncType\u003dself._getnum(8, \u002716\u0027),"},{"line_number":208,"context_line":"                    SourceElement\u003dsnapshot_instance.path)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        if rc !\u003d 0L:"},{"line_number":211,"context_line":"            rc, errordesc \u003d self._wait_for_job_complete(job)"},{"line_number":212,"context_line":"            if rc !\u003d 0L:"},{"line_number":213,"context_line":"                exception_message \u003d (_(\u0027Error Create Volume from Snapshot: \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9Ls%3D","line":210,"updated":"2013-02-13 09:59:36.000000000","message":"Not necessary in this patch, but coverage for this path would be good.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a10e2874138ef0987a8700aa832a614e3290ccb2","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                    SyncType\u003dself._getnum(8, \u002716\u0027),"},{"line_number":208,"context_line":"                    SourceElement\u003dsnapshot_instance.path)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        if rc !\u003d 0L:"},{"line_number":211,"context_line":"            rc, errordesc \u003d self._wait_for_job_complete(job)"},{"line_number":212,"context_line":"            if rc !\u003d 0L:"},{"line_number":213,"context_line":"                exception_message \u003d (_(\u0027Error Create Volume from Snapshot: \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B4kE%3D","line":210,"in_reply_to":"AAAAM3%2F%2B9Ls%3D","updated":"2013-02-15 16:47:05.000000000","message":"Done","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":255,"context_line":"                     \u0027snapshotname\u0027: snapshotname,"},{"line_number":256,"context_line":"                     \u0027rc\u0027: rc})"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"        if rc !\u003d 0L:"},{"line_number":259,"context_line":"            rc, errordesc \u003d self._wait_for_job_complete(job)"},{"line_number":260,"context_line":"            if rc !\u003d 0L:"},{"line_number":261,"context_line":"                exception_message \u003d (_(\u0027Error Create Volume from Snapshot: \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9Lc%3D","line":258,"updated":"2013-02-13 09:59:36.000000000","message":"Not necessary in this patch, but coverage for this path would be good.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a10e2874138ef0987a8700aa832a614e3290ccb2","unresolved":false,"context_lines":[{"line_number":255,"context_line":"                     \u0027snapshotname\u0027: snapshotname,"},{"line_number":256,"context_line":"                     \u0027rc\u0027: rc})"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"        if rc !\u003d 0L:"},{"line_number":259,"context_line":"            rc, errordesc \u003d self._wait_for_job_complete(job)"},{"line_number":260,"context_line":"            if rc !\u003d 0L:"},{"line_number":261,"context_line":"                exception_message \u003d (_(\u0027Error Create Volume from Snapshot: \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B4kA%3D","line":258,"in_reply_to":"AAAAM3%2F%2B9Lc%3D","updated":"2013-02-15 16:47:05.000000000","message":"Done","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":303,"context_line":"                     \u0027storage_system\u0027: storage_system})"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"        repservice \u003d self._find_replication_service(storage_system)"},{"line_number":306,"context_line":"        if repservice is None:"},{"line_number":307,"context_line":"            exception_message \u003d (_(\u0027Error Create Cloned Volume: \u0027"},{"line_number":308,"context_line":"                                 \u0027Volume: %(volumename)s  Source Volume: \u0027"},{"line_number":309,"context_line":"                                 \u0027%(srcname)s. Cannot find Replication \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9LY%3D","line":306,"updated":"2013-02-13 09:59:36.000000000","message":"Not necessary in this patch, but coverage for this path would be good.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a10e2874138ef0987a8700aa832a614e3290ccb2","unresolved":false,"context_lines":[{"line_number":303,"context_line":"                     \u0027storage_system\u0027: storage_system})"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"        repservice \u003d self._find_replication_service(storage_system)"},{"line_number":306,"context_line":"        if repservice is None:"},{"line_number":307,"context_line":"            exception_message \u003d (_(\u0027Error Create Cloned Volume: \u0027"},{"line_number":308,"context_line":"                                 \u0027Volume: %(volumename)s  Source Volume: \u0027"},{"line_number":309,"context_line":"                                 \u0027%(srcname)s. Cannot find Replication \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B4j8%3D","line":306,"in_reply_to":"AAAAM3%2F%2B9LY%3D","updated":"2013-02-15 16:47:05.000000000","message":"Will add test case in a future patch.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":331,"context_line":"                    SyncType\u003dself._getnum(8, \u002716\u0027),"},{"line_number":332,"context_line":"                    SourceElement\u003dsrc_instance.path)"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        if rc !\u003d 0L:"},{"line_number":335,"context_line":"            rc, errordesc \u003d self._wait_for_job_complete(job)"},{"line_number":336,"context_line":"            if rc !\u003d 0L:"},{"line_number":337,"context_line":"                exception_message \u003d (_(\u0027Error Create Cloned Volume: \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9LU%3D","line":334,"updated":"2013-02-13 09:59:36.000000000","message":"Not necessary in this patch, but coverage for this path would be good.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a10e2874138ef0987a8700aa832a614e3290ccb2","unresolved":false,"context_lines":[{"line_number":331,"context_line":"                    SyncType\u003dself._getnum(8, \u002716\u0027),"},{"line_number":332,"context_line":"                    SourceElement\u003dsrc_instance.path)"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        if rc !\u003d 0L:"},{"line_number":335,"context_line":"            rc, errordesc \u003d self._wait_for_job_complete(job)"},{"line_number":336,"context_line":"            if rc !\u003d 0L:"},{"line_number":337,"context_line":"                exception_message \u003d (_(\u0027Error Create Cloned Volume: \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B4j4%3D","line":334,"in_reply_to":"AAAAM3%2F%2B9LU%3D","updated":"2013-02-15 16:47:05.000000000","message":"Done","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":379,"context_line":"                     \u0027srcname\u0027: srcname,"},{"line_number":380,"context_line":"                     \u0027rc\u0027: rc})"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        if rc !\u003d 0L:"},{"line_number":383,"context_line":"            rc, errordesc \u003d self._wait_for_job_complete(job)"},{"line_number":384,"context_line":"            if rc !\u003d 0L:"},{"line_number":385,"context_line":"                exception_message \u003d (_(\u0027Error Create Cloned Volume: \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9LQ%3D","line":382,"updated":"2013-02-13 09:59:36.000000000","message":"Not necessary in this patch, but coverage for this path would be good.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a10e2874138ef0987a8700aa832a614e3290ccb2","unresolved":false,"context_lines":[{"line_number":379,"context_line":"                     \u0027srcname\u0027: srcname,"},{"line_number":380,"context_line":"                     \u0027rc\u0027: rc})"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        if rc !\u003d 0L:"},{"line_number":383,"context_line":"            rc, errordesc \u003d self._wait_for_job_complete(job)"},{"line_number":384,"context_line":"            if rc !\u003d 0L:"},{"line_number":385,"context_line":"                exception_message \u003d (_(\u0027Error Create Cloned Volume: \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B4j0%3D","line":382,"in_reply_to":"AAAAM3%2F%2B9LQ%3D","updated":"2013-02-15 16:47:05.000000000","message":"Done","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":411,"context_line":"        self.conn \u003d self._get_ecom_connection()"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"        vol_instance \u003d self._find_lun(volume)"},{"line_number":414,"context_line":"        if vol_instance is None:"},{"line_number":415,"context_line":"            LOG.error(_(\u0027Volume %(name)s not found on the array. \u0027"},{"line_number":416,"context_line":"                      \u0027No volume to delete.\u0027)"},{"line_number":417,"context_line":"                      % {\u0027name\u0027: volumename})"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9LM%3D","line":414,"updated":"2013-02-13 09:59:36.000000000","message":"Not necessary in this patch, but coverage for this path would be good.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a10e2874138ef0987a8700aa832a614e3290ccb2","unresolved":false,"context_lines":[{"line_number":411,"context_line":"        self.conn \u003d self._get_ecom_connection()"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"        vol_instance \u003d self._find_lun(volume)"},{"line_number":414,"context_line":"        if vol_instance is None:"},{"line_number":415,"context_line":"            LOG.error(_(\u0027Volume %(name)s not found on the array. \u0027"},{"line_number":416,"context_line":"                      \u0027No volume to delete.\u0027)"},{"line_number":417,"context_line":"                      % {\u0027name\u0027: volumename})"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B4jw%3D","line":414,"in_reply_to":"AAAAM3%2F%2B9LM%3D","updated":"2013-02-15 16:47:05.000000000","message":"Done","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":421,"context_line":""},{"line_number":422,"context_line":"        configservice \u003d self._find_storage_configuration_service("},{"line_number":423,"context_line":"                        storage_system)"},{"line_number":424,"context_line":"        if configservice is None:"},{"line_number":425,"context_line":"            exception_message \u003d (_(\"Error Delete Volume: %(volumename)s. \""},{"line_number":426,"context_line":"                                 \"Storage Configuration Service not found.\")"},{"line_number":427,"context_line":"                                 % {\u0027volumename\u0027: volumename})"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9LI%3D","line":424,"updated":"2013-02-13 09:59:36.000000000","message":"Not necessary in this patch, but coverage for this path would be good.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a10e2874138ef0987a8700aa832a614e3290ccb2","unresolved":false,"context_lines":[{"line_number":421,"context_line":""},{"line_number":422,"context_line":"        configservice \u003d self._find_storage_configuration_service("},{"line_number":423,"context_line":"                        storage_system)"},{"line_number":424,"context_line":"        if configservice is None:"},{"line_number":425,"context_line":"            exception_message \u003d (_(\"Error Delete Volume: %(volumename)s. \""},{"line_number":426,"context_line":"                                 \"Storage Configuration Service not found.\")"},{"line_number":427,"context_line":"                                 % {\u0027volumename\u0027: volumename})"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B4js%3D","line":424,"in_reply_to":"AAAAM3%2F%2B9LI%3D","updated":"2013-02-15 16:47:05.000000000","message":"Will add test case in a future patch.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":444,"context_line":"                    \u0027EMCReturnToStoragePool\u0027,"},{"line_number":445,"context_line":"                    configservice, TheElements\u003d[vol_instance.path])"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"        if rc !\u003d 0L:"},{"line_number":448,"context_line":"            rc, errordesc \u003d self._wait_for_job_complete(job)"},{"line_number":449,"context_line":"            if rc !\u003d 0L:"},{"line_number":450,"context_line":"                exception_message \u003d (_(\u0027Error Delete Volume: %(volumename)s.  \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9LE%3D","line":447,"updated":"2013-02-13 09:59:36.000000000","message":"Not necessary in this patch, but coverage for this path would be good.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a10e2874138ef0987a8700aa832a614e3290ccb2","unresolved":false,"context_lines":[{"line_number":444,"context_line":"                    \u0027EMCReturnToStoragePool\u0027,"},{"line_number":445,"context_line":"                    configservice, TheElements\u003d[vol_instance.path])"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"        if rc !\u003d 0L:"},{"line_number":448,"context_line":"            rc, errordesc \u003d self._wait_for_job_complete(job)"},{"line_number":449,"context_line":"            if rc !\u003d 0L:"},{"line_number":450,"context_line":"                exception_message \u003d (_(\u0027Error Delete Volume: %(volumename)s.  \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B4jo%3D","line":447,"in_reply_to":"AAAAM3%2F%2B9LE%3D","updated":"2013-02-15 16:47:05.000000000","message":"Done","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":515,"context_line":"                     \u0027snapshotname\u0027: snapshotname,"},{"line_number":516,"context_line":"                     \u0027rc\u0027: rc})"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"        if rc !\u003d 0L:"},{"line_number":519,"context_line":"            rc, errordesc \u003d self._wait_for_job_complete(job)"},{"line_number":520,"context_line":"            if rc !\u003d 0L:"},{"line_number":521,"context_line":"                exception_message \u003d (_(\u0027Error Create Snapshot: (snapshot)s \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9LA%3D","line":518,"updated":"2013-02-13 09:59:36.000000000","message":"Not necessary in this patch, but coverage for this path would be good.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a10e2874138ef0987a8700aa832a614e3290ccb2","unresolved":false,"context_lines":[{"line_number":515,"context_line":"                     \u0027snapshotname\u0027: snapshotname,"},{"line_number":516,"context_line":"                     \u0027rc\u0027: rc})"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"        if rc !\u003d 0L:"},{"line_number":519,"context_line":"            rc, errordesc \u003d self._wait_for_job_complete(job)"},{"line_number":520,"context_line":"            if rc !\u003d 0L:"},{"line_number":521,"context_line":"                exception_message \u003d (_(\u0027Error Create Snapshot: (snapshot)s \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B4jY%3D","line":518,"in_reply_to":"AAAAM3%2F%2B9LA%3D","updated":"2013-02-15 16:47:05.000000000","message":"Will add test case in a future patch.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":549,"context_line":""},{"line_number":550,"context_line":"        sync_name, storage_system \u003d self._find_storage_sync_sv_sv("},{"line_number":551,"context_line":"                                    snapshotname, volumename)"},{"line_number":552,"context_line":"        if sync_name is None:"},{"line_number":553,"context_line":"            LOG.error(_(\u0027Snapshot: %(snapshot)s: volume: %(volume)s \u0027"},{"line_number":554,"context_line":"                      \u0027not found on the array. No snapshot to delete.\u0027)"},{"line_number":555,"context_line":"                      % {\u0027snapshot\u0027: snapshotname,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9K8%3D","line":552,"updated":"2013-02-13 09:59:36.000000000","message":"Not necessary in this patch, but coverage for this path would be good.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a10e2874138ef0987a8700aa832a614e3290ccb2","unresolved":false,"context_lines":[{"line_number":549,"context_line":""},{"line_number":550,"context_line":"        sync_name, storage_system \u003d self._find_storage_sync_sv_sv("},{"line_number":551,"context_line":"                                    snapshotname, volumename)"},{"line_number":552,"context_line":"        if sync_name is None:"},{"line_number":553,"context_line":"            LOG.error(_(\u0027Snapshot: %(snapshot)s: volume: %(volume)s \u0027"},{"line_number":554,"context_line":"                      \u0027not found on the array. No snapshot to delete.\u0027)"},{"line_number":555,"context_line":"                      % {\u0027snapshot\u0027: snapshotname,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B4jM%3D","line":552,"in_reply_to":"AAAAM3%2F%2B9K8%3D","updated":"2013-02-15 16:47:05.000000000","message":"Will add test case in a future patch.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":557,"context_line":"            return"},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"        repservice \u003d self._find_replication_service(storage_system)"},{"line_number":560,"context_line":"        if repservice is None:"},{"line_number":561,"context_line":"            exception_message \u003d (_(\"Cannot find Replication Service to \""},{"line_number":562,"context_line":"                                 \"create snapshot for volume %s.\")"},{"line_number":563,"context_line":"                                 % volumename)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9K4%3D","line":560,"updated":"2013-02-13 09:59:36.000000000","message":"Not necessary in this patch, but coverage for this path would be good.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a10e2874138ef0987a8700aa832a614e3290ccb2","unresolved":false,"context_lines":[{"line_number":557,"context_line":"            return"},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"        repservice \u003d self._find_replication_service(storage_system)"},{"line_number":560,"context_line":"        if repservice is None:"},{"line_number":561,"context_line":"            exception_message \u003d (_(\"Cannot find Replication Service to \""},{"line_number":562,"context_line":"                                 \"create snapshot for volume %s.\")"},{"line_number":563,"context_line":"                                 % volumename)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B4jI%3D","line":560,"in_reply_to":"AAAAM3%2F%2B9K4%3D","updated":"2013-02-15 16:47:05.000000000","message":"Will add test case in a future patch.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":587,"context_line":"                     \u0027snapshotname\u0027: snapshotname,"},{"line_number":588,"context_line":"                     \u0027rc\u0027: rc})"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":"        if rc !\u003d 0L:"},{"line_number":591,"context_line":"            rc, errordesc \u003d self._wait_for_job_complete(job)"},{"line_number":592,"context_line":"            if rc !\u003d 0L:"},{"line_number":593,"context_line":"                exception_message \u003d (_(\u0027Error Delete Snapshot: Volume: \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9K0%3D","line":590,"updated":"2013-02-13 09:59:36.000000000","message":"Not necessary in this patch, but coverage for this path would be good.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a10e2874138ef0987a8700aa832a614e3290ccb2","unresolved":false,"context_lines":[{"line_number":587,"context_line":"                     \u0027snapshotname\u0027: snapshotname,"},{"line_number":588,"context_line":"                     \u0027rc\u0027: rc})"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":"        if rc !\u003d 0L:"},{"line_number":591,"context_line":"            rc, errordesc \u003d self._wait_for_job_complete(job)"},{"line_number":592,"context_line":"            if rc !\u003d 0L:"},{"line_number":593,"context_line":"                exception_message \u003d (_(\u0027Error Delete Snapshot: Volume: \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B4jE%3D","line":590,"in_reply_to":"AAAAM3%2F%2B9K0%3D","updated":"2013-02-15 16:47:05.000000000","message":"Will add test case in a future patch.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":1125,"context_line":"                  % {\u0027volumename\u0027: volumename, \u0027snapshotname\u0027: snapshotname})"},{"line_number":1126,"context_line":""},{"line_number":1127,"context_line":"        names \u003d self.conn.EnumerateInstanceNames("},{"line_number":1128,"context_line":"                    \u0027SE_StorageSynchronized_SV_SV\u0027)"},{"line_number":1129,"context_line":""},{"line_number":1130,"context_line":"        for n in names:"},{"line_number":1131,"context_line":"            snapshot_instance \u003d self.conn.GetInstance(n[\u0027SyncedElement\u0027],"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9MQ%3D","line":1128,"updated":"2013-02-13 09:59:36.000000000","message":"over-indented","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9de1a596a16d08e5e552f6d7657cf3d2cbf1ee5a","unresolved":false,"context_lines":[{"line_number":1125,"context_line":"                  % {\u0027volumename\u0027: volumename, \u0027snapshotname\u0027: snapshotname})"},{"line_number":1126,"context_line":""},{"line_number":1127,"context_line":"        names \u003d self.conn.EnumerateInstanceNames("},{"line_number":1128,"context_line":"                    \u0027SE_StorageSynchronized_SV_SV\u0027)"},{"line_number":1129,"context_line":""},{"line_number":1130,"context_line":"        for n in names:"},{"line_number":1131,"context_line":"            snapshot_instance \u003d self.conn.GetInstance(n[\u0027SyncedElement\u0027],"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8bM%3D","line":1128,"in_reply_to":"AAAAM3%2F%2B9MQ%3D","updated":"2013-02-13 20:43:49.000000000","message":"Done","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"670428fce98bfcce8de66196517d50092612c200","unresolved":false,"context_lines":[{"line_number":1153,"context_line":"        return foundsyncname, storage_system"},{"line_number":1154,"context_line":""},{"line_number":1155,"context_line":"    def _find_initiator_names(self, connector):"},{"line_number":1156,"context_line":"        \"\"\" Get initiator name from connector[\u0027initiator\u0027]"},{"line_number":1157,"context_line":"        \"\"\""},{"line_number":1158,"context_line":"        foundinitiatornames \u003d []"},{"line_number":1159,"context_line":"        iscsi \u003d \u0027iscsi\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9mc%3D","line":1156,"updated":"2013-02-13 03:29:28.000000000","message":"+1, but even better I\u0027d just remove it for an internal method like this one.\n\nIf you decide to leave it, it\u0027s incorrect even if it was multi-line (need the period no matter what).","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"12fb150c49bfc4c77e39e19af89f173b834851c0","unresolved":false,"context_lines":[{"line_number":1153,"context_line":"        return foundsyncname, storage_system"},{"line_number":1154,"context_line":""},{"line_number":1155,"context_line":"    def _find_initiator_names(self, connector):"},{"line_number":1156,"context_line":"        \"\"\" Get initiator name from connector[\u0027initiator\u0027]"},{"line_number":1157,"context_line":"        \"\"\""},{"line_number":1158,"context_line":"        foundinitiatornames \u003d []"},{"line_number":1159,"context_line":"        iscsi \u003d \u0027iscsi\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B%2Fow%3D","line":1156,"updated":"2013-02-12 06:14:51.000000000","message":"Can be made a single-line docstring. Can end with a fullstop.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bf04cefe18b73c5da0cc909b4b63b0cd7bd2220f","unresolved":false,"context_lines":[{"line_number":1153,"context_line":"        return foundsyncname, storage_system"},{"line_number":1154,"context_line":""},{"line_number":1155,"context_line":"    def _find_initiator_names(self, connector):"},{"line_number":1156,"context_line":"        \"\"\" Get initiator name from connector[\u0027initiator\u0027]"},{"line_number":1157,"context_line":"        \"\"\""},{"line_number":1158,"context_line":"        foundinitiatornames \u003d []"},{"line_number":1159,"context_line":"        iscsi \u003d \u0027iscsi\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9iQ%3D","line":1156,"in_reply_to":"AAAAM3%2F%2B9mc%3D","updated":"2013-02-13 05:24:26.000000000","message":"Removed it.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":1278,"context_line":"        if vol_instance is None:"},{"line_number":1279,"context_line":"            msg \u003d (_(\u0027Volume %(name)s not found on the array. \u0027"},{"line_number":1280,"context_line":"                   \u0027Cannot determine if there are volumes mapped.\u0027)"},{"line_number":1281,"context_line":"                   % {\u0027name\u0027: volumename})"},{"line_number":1282,"context_line":"            LOG.error(msg)"},{"line_number":1283,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":1284,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9Mw%3D","line":1281,"updated":"2013-02-13 09:59:36.000000000","message":"volumename is undefined.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9de1a596a16d08e5e552f6d7657cf3d2cbf1ee5a","unresolved":false,"context_lines":[{"line_number":1278,"context_line":"        if vol_instance is None:"},{"line_number":1279,"context_line":"            msg \u003d (_(\u0027Volume %(name)s not found on the array. \u0027"},{"line_number":1280,"context_line":"                   \u0027Cannot determine if there are volumes mapped.\u0027)"},{"line_number":1281,"context_line":"                   % {\u0027name\u0027: volumename})"},{"line_number":1282,"context_line":"            LOG.error(msg)"},{"line_number":1283,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":1284,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8bA%3D","line":1281,"in_reply_to":"AAAAM3%2F%2B9Mw%3D","updated":"2013-02-13 20:43:49.000000000","message":"Good catch!  Fixed it.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":1285,"context_line":"        storage_system \u003d vol_instance[\u0027SystemName\u0027]"},{"line_number":1286,"context_line":""},{"line_number":1287,"context_line":"        ctrl \u003d self._find_lunmasking_scsi_protocol_controller("},{"line_number":1288,"context_line":"                        storage_system,"},{"line_number":1289,"context_line":"                        connector)"},{"line_number":1290,"context_line":""},{"line_number":1291,"context_line":"        LOG.debug(_(\"LunMaskingSCSIProtocolController for storage system \""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9Ms%3D","line":1288,"updated":"2013-02-13 09:59:36.000000000","message":"over-indented.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9de1a596a16d08e5e552f6d7657cf3d2cbf1ee5a","unresolved":false,"context_lines":[{"line_number":1285,"context_line":"        storage_system \u003d vol_instance[\u0027SystemName\u0027]"},{"line_number":1286,"context_line":""},{"line_number":1287,"context_line":"        ctrl \u003d self._find_lunmasking_scsi_protocol_controller("},{"line_number":1288,"context_line":"                        storage_system,"},{"line_number":1289,"context_line":"                        connector)"},{"line_number":1290,"context_line":""},{"line_number":1291,"context_line":"        LOG.debug(_(\"LunMaskingSCSIProtocolController for storage system \""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8as%3D","line":1288,"in_reply_to":"AAAAM3%2F%2B9Ms%3D","updated":"2013-02-13 20:43:49.000000000","message":"Done","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":1286,"context_line":""},{"line_number":1287,"context_line":"        ctrl \u003d self._find_lunmasking_scsi_protocol_controller("},{"line_number":1288,"context_line":"                        storage_system,"},{"line_number":1289,"context_line":"                        connector)"},{"line_number":1290,"context_line":""},{"line_number":1291,"context_line":"        LOG.debug(_(\"LunMaskingSCSIProtocolController for storage system \""},{"line_number":1292,"context_line":"                  \"%(storage)s and %(connector)s is %(ctrl)s.\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9Mo%3D","line":1289,"updated":"2013-02-13 09:59:36.000000000","message":"over-indented","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9de1a596a16d08e5e552f6d7657cf3d2cbf1ee5a","unresolved":false,"context_lines":[{"line_number":1286,"context_line":""},{"line_number":1287,"context_line":"        ctrl \u003d self._find_lunmasking_scsi_protocol_controller("},{"line_number":1288,"context_line":"                        storage_system,"},{"line_number":1289,"context_line":"                        connector)"},{"line_number":1290,"context_line":""},{"line_number":1291,"context_line":"        LOG.debug(_(\"LunMaskingSCSIProtocolController for storage system \""},{"line_number":1292,"context_line":"                  \"%(storage)s and %(connector)s is %(ctrl)s.\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8ao%3D","line":1289,"in_reply_to":"AAAAM3%2F%2B9Mo%3D","updated":"2013-02-13 20:43:49.000000000","message":"Done","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":1295,"context_line":"                     \u0027ctrl\u0027: str(ctrl)})"},{"line_number":1296,"context_line":""},{"line_number":1297,"context_line":"        associators \u003d conn.Associators("},{"line_number":1298,"context_line":"                            ctrl,"},{"line_number":1299,"context_line":"                            resultClass\u003d\u0027EMC_StorageVolume\u0027)"},{"line_number":1300,"context_line":""},{"line_number":1301,"context_line":"        numVolumesMapped \u003d len(associators)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9Mk%3D","line":1298,"updated":"2013-02-13 09:59:36.000000000","message":"over-indented","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9de1a596a16d08e5e552f6d7657cf3d2cbf1ee5a","unresolved":false,"context_lines":[{"line_number":1295,"context_line":"                     \u0027ctrl\u0027: str(ctrl)})"},{"line_number":1296,"context_line":""},{"line_number":1297,"context_line":"        associators \u003d conn.Associators("},{"line_number":1298,"context_line":"                            ctrl,"},{"line_number":1299,"context_line":"                            resultClass\u003d\u0027EMC_StorageVolume\u0027)"},{"line_number":1300,"context_line":""},{"line_number":1301,"context_line":"        numVolumesMapped \u003d len(associators)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8ak%3D","line":1298,"in_reply_to":"AAAAM3%2F%2B9Mk%3D","updated":"2013-02-13 20:43:49.000000000","message":"Done","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":1296,"context_line":""},{"line_number":1297,"context_line":"        associators \u003d conn.Associators("},{"line_number":1298,"context_line":"                            ctrl,"},{"line_number":1299,"context_line":"                            resultClass\u003d\u0027EMC_StorageVolume\u0027)"},{"line_number":1300,"context_line":""},{"line_number":1301,"context_line":"        numVolumesMapped \u003d len(associators)"},{"line_number":1302,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9Mg%3D","line":1299,"updated":"2013-02-13 09:59:36.000000000","message":"over-indented","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9de1a596a16d08e5e552f6d7657cf3d2cbf1ee5a","unresolved":false,"context_lines":[{"line_number":1296,"context_line":""},{"line_number":1297,"context_line":"        associators \u003d conn.Associators("},{"line_number":1298,"context_line":"                            ctrl,"},{"line_number":1299,"context_line":"                            resultClass\u003d\u0027EMC_StorageVolume\u0027)"},{"line_number":1300,"context_line":""},{"line_number":1301,"context_line":"        numVolumesMapped \u003d len(associators)"},{"line_number":1302,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8ag%3D","line":1299,"in_reply_to":"AAAAM3%2F%2B9Mg%3D","updated":"2013-02-13 20:43:49.000000000","message":"Done","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":1404,"context_line":"                break"},{"line_number":1405,"context_line":""},{"line_number":1406,"context_line":"        groups \u003d self.conn.AssociatorNames("},{"line_number":1407,"context_line":"                            foundView,"},{"line_number":1408,"context_line":"                            ResultClass\u003d\u0027SE_DeviceMaskingGroup\u0027)"},{"line_number":1409,"context_line":"        foundMaskingGroup \u003d groups[0]"},{"line_number":1410,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9Mc%3D","line":1407,"updated":"2013-02-13 09:59:36.000000000","message":"over-indented","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9de1a596a16d08e5e552f6d7657cf3d2cbf1ee5a","unresolved":false,"context_lines":[{"line_number":1404,"context_line":"                break"},{"line_number":1405,"context_line":""},{"line_number":1406,"context_line":"        groups \u003d self.conn.AssociatorNames("},{"line_number":1407,"context_line":"                            foundView,"},{"line_number":1408,"context_line":"                            ResultClass\u003d\u0027SE_DeviceMaskingGroup\u0027)"},{"line_number":1409,"context_line":"        foundMaskingGroup \u003d groups[0]"},{"line_number":1410,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8aU%3D","line":1407,"in_reply_to":"AAAAM3%2F%2B9Mc%3D","updated":"2013-02-13 20:43:49.000000000","message":"Done","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":1405,"context_line":""},{"line_number":1406,"context_line":"        groups \u003d self.conn.AssociatorNames("},{"line_number":1407,"context_line":"                            foundView,"},{"line_number":1408,"context_line":"                            ResultClass\u003d\u0027SE_DeviceMaskingGroup\u0027)"},{"line_number":1409,"context_line":"        foundMaskingGroup \u003d groups[0]"},{"line_number":1410,"context_line":""},{"line_number":1411,"context_line":"        LOG.debug(_(\"Masking view: %(view)s DeviceMaskingGroup: %(masking)s.\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9MY%3D","line":1408,"updated":"2013-02-13 09:59:36.000000000","message":"over-indented","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9de1a596a16d08e5e552f6d7657cf3d2cbf1ee5a","unresolved":false,"context_lines":[{"line_number":1405,"context_line":""},{"line_number":1406,"context_line":"        groups \u003d self.conn.AssociatorNames("},{"line_number":1407,"context_line":"                            foundView,"},{"line_number":1408,"context_line":"                            ResultClass\u003d\u0027SE_DeviceMaskingGroup\u0027)"},{"line_number":1409,"context_line":"        foundMaskingGroup \u003d groups[0]"},{"line_number":1410,"context_line":""},{"line_number":1411,"context_line":"        LOG.debug(_(\"Masking view: %(view)s DeviceMaskingGroup: %(masking)s.\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8aQ%3D","line":1408,"in_reply_to":"AAAAM3%2F%2B9MY%3D","updated":"2013-02-13 20:43:49.000000000","message":"Done","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"7e8bd5a62a156d60fc42ab3ee797ad91c314608c","unresolved":false,"context_lines":[{"line_number":1428,"context_line":""},{"line_number":1429,"context_line":"        return result"},{"line_number":1430,"context_line":""},{"line_number":1431,"context_line":"    # Find target WWNs"},{"line_number":1432,"context_line":"    def get_target_wwns(self, storage_system, connector):"},{"line_number":1433,"context_line":"        \"\"\"This method finds target WWNs."},{"line_number":1434,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9js%3D","line":1431,"updated":"2013-02-13 04:45:33.000000000","message":"The comment is kind of redundant.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bf04cefe18b73c5da0cc909b4b63b0cd7bd2220f","unresolved":false,"context_lines":[{"line_number":1428,"context_line":""},{"line_number":1429,"context_line":"        return result"},{"line_number":1430,"context_line":""},{"line_number":1431,"context_line":"    # Find target WWNs"},{"line_number":1432,"context_line":"    def get_target_wwns(self, storage_system, connector):"},{"line_number":1433,"context_line":"        \"\"\"This method finds target WWNs."},{"line_number":1434,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9iE%3D","line":1431,"in_reply_to":"AAAAM3%2F%2B9js%3D","updated":"2013-02-13 05:24:26.000000000","message":"Removed the docstring below.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"670428fce98bfcce8de66196517d50092612c200","unresolved":false,"context_lines":[{"line_number":1430,"context_line":""},{"line_number":1431,"context_line":"    # Find target WWNs"},{"line_number":1432,"context_line":"    def get_target_wwns(self, storage_system, connector):"},{"line_number":1433,"context_line":"        \"\"\"This method finds target WWNs."},{"line_number":1434,"context_line":"        \"\"\""},{"line_number":1435,"context_line":"        target_wwns \u003d []"},{"line_number":1436,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9mU%3D","line":1433,"updated":"2013-02-13 03:29:28.000000000","message":"meh... wouldn\u0027t bother with the docstring here.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bf04cefe18b73c5da0cc909b4b63b0cd7bd2220f","unresolved":false,"context_lines":[{"line_number":1430,"context_line":""},{"line_number":1431,"context_line":"    # Find target WWNs"},{"line_number":1432,"context_line":"    def get_target_wwns(self, storage_system, connector):"},{"line_number":1433,"context_line":"        \"\"\"This method finds target WWNs."},{"line_number":1434,"context_line":"        \"\"\""},{"line_number":1435,"context_line":"        target_wwns \u003d []"},{"line_number":1436,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B9iU%3D","line":1433,"in_reply_to":"AAAAM3%2F%2B9mU%3D","updated":"2013-02-13 05:24:26.000000000","message":"Done","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":1435,"context_line":"        target_wwns \u003d []"},{"line_number":1436,"context_line":""},{"line_number":1437,"context_line":"        configservice \u003d self._find_storage_hardwareid_service("},{"line_number":1438,"context_line":"                            storage_system)"},{"line_number":1439,"context_line":"        if configservice is None:"},{"line_number":1440,"context_line":"            exception_msg \u003d (_(\"Error finding Storage Hardware ID Service.\"))"},{"line_number":1441,"context_line":"            LOG.error(exception_msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B%2Fd4%3D","line":1438,"updated":"2013-02-13 09:59:36.000000000","message":"over-indented","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9de1a596a16d08e5e552f6d7657cf3d2cbf1ee5a","unresolved":false,"context_lines":[{"line_number":1435,"context_line":"        target_wwns \u003d []"},{"line_number":1436,"context_line":""},{"line_number":1437,"context_line":"        configservice \u003d self._find_storage_hardwareid_service("},{"line_number":1438,"context_line":"                            storage_system)"},{"line_number":1439,"context_line":"        if configservice is None:"},{"line_number":1440,"context_line":"            exception_msg \u003d (_(\"Error finding Storage Hardware ID Service.\"))"},{"line_number":1441,"context_line":"            LOG.error(exception_msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8aI%3D","line":1438,"in_reply_to":"AAAAM3%2F%2B%2Fd4%3D","updated":"2013-02-13 20:43:49.000000000","message":"Done","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":1449,"context_line":"                     \u0027hardwareids\u0027: str(hardwareids)})"},{"line_number":1450,"context_line":""},{"line_number":1451,"context_line":"        rc, targetendpoints \u003d self.conn.InvokeMethod("},{"line_number":1452,"context_line":"                        \u0027EMCGetTargetEndpoints\u0027,"},{"line_number":1453,"context_line":"                        configservice,"},{"line_number":1454,"context_line":"                        HardwareId\u003dhardwareids[0])"},{"line_number":1455,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B%2FeE%3D","line":1452,"updated":"2013-02-13 09:59:36.000000000","message":"over-indented","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9de1a596a16d08e5e552f6d7657cf3d2cbf1ee5a","unresolved":false,"context_lines":[{"line_number":1449,"context_line":"                     \u0027hardwareids\u0027: str(hardwareids)})"},{"line_number":1450,"context_line":""},{"line_number":1451,"context_line":"        rc, targetendpoints \u003d self.conn.InvokeMethod("},{"line_number":1452,"context_line":"                        \u0027EMCGetTargetEndpoints\u0027,"},{"line_number":1453,"context_line":"                        configservice,"},{"line_number":1454,"context_line":"                        HardwareId\u003dhardwareids[0])"},{"line_number":1455,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8Z4%3D","line":1452,"in_reply_to":"AAAAM3%2F%2B%2FeE%3D","updated":"2013-02-13 20:43:49.000000000","message":"Done","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"}],"cinder/volume/drivers/emc/emc_smis_iscsi.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28fc63c772dd29f5d60ade3b91a654533e8f00c7","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            }"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        \"\"\""},{"line_number":107,"context_line":"        device_info \u003d self.common.initialize_connection(volume, connector)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        iscsi_properties \u003d self._get_iscsi_properties(volume)"},{"line_number":110,"context_line":"        return {"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B%2Fds%3D","line":107,"updated":"2013-02-13 09:59:36.000000000","message":"device_info is never used.","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"9de1a596a16d08e5e552f6d7657cf3d2cbf1ee5a","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            }"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        \"\"\""},{"line_number":107,"context_line":"        device_info \u003d self.common.initialize_connection(volume, connector)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        iscsi_properties \u003d self._get_iscsi_properties(volume)"},{"line_number":110,"context_line":"        return {"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8cI%3D","line":107,"in_reply_to":"AAAAM3%2F%2B%2Fds%3D","updated":"2013-02-13 20:43:49.000000000","message":"Done","commit_id":"b89d0ac91b099fd9316a51a65141109506f71c41"}]}
