)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7689c258bfc205d14c5275c8a262c785772517a1","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     eduardBM \u003ccubusbacau@yahoo.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-10-24 18:06:42 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implements: bp/open-vstorage-volume-driver"},{"line_number":8,"context_line":"New Cinder volume driver for openvstorage."},{"line_number":9,"context_line":"PEP8 Fixes."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa7fdbe_0a5d3847","line":7,"updated":"2014-10-26 04:23:47.000000000","message":"The reference for blueprint should be after the patch description.  Please also add a title for this commit.\n\nReference for blueprint:\n\nImplements: blueprint open-vstorage-volume-driver","commit_id":"d34af64820d3b6243f44dbb12cec33b9c01c3c73"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"928f0523bb449fc41fe63a03b86ccef793134746","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     eduardBM \u003ccubusbacau@yahoo.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-10-24 18:06:42 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implements: bp/open-vstorage-volume-driver"},{"line_number":8,"context_line":"New Cinder volume driver for openvstorage."},{"line_number":9,"context_line":"PEP8 Fixes."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa7fdbe_c55b23f4","line":7,"in_reply_to":"9aa7fdbe_0a5d3847","updated":"2014-10-27 08:20:32.000000000","message":"Will be changed in next patch set.","commit_id":"d34af64820d3b6243f44dbb12cec33b9c01c3c73"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7689c258bfc205d14c5275c8a262c785772517a1","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implements: bp/open-vstorage-volume-driver"},{"line_number":8,"context_line":"New Cinder volume driver for openvstorage."},{"line_number":9,"context_line":"PEP8 Fixes."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I4a195aacb34fb1300c158c2d8163887b913b6de8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa7fdbe_2a567c2a","line":9,"updated":"2014-10-26 04:23:47.000000000","message":"This line shouldn\u0027t be in the commit message.  Please remove it.","commit_id":"d34af64820d3b6243f44dbb12cec33b9c01c3c73"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"928f0523bb449fc41fe63a03b86ccef793134746","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implements: bp/open-vstorage-volume-driver"},{"line_number":8,"context_line":"New Cinder volume driver for openvstorage."},{"line_number":9,"context_line":"PEP8 Fixes."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I4a195aacb34fb1300c158c2d8163887b913b6de8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa7fdbe_a5561fcc","line":9,"in_reply_to":"9aa7fdbe_2a567c2a","updated":"2014-10-27 08:20:32.000000000","message":"WIll be removed with next patch set. Still need to make changes for PEP8 compliance.","commit_id":"d34af64820d3b6243f44dbb12cec33b9c01c3c73"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"14e4a3ff8af876483242d7b81ff802f6029538f7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"New Cinder volume driver for openvstorage."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements: bp/open-vstorage-volume-driver"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I4a195aacb34fb1300c158c2d8163887b913b6de8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"3a961159_2df678f9","line":9,"updated":"2014-12-13 00:05:23.000000000","message":"Implements: blueprint open-vstorage-volume-driver","commit_id":"5c20ac4929056086bf3b106a22e6e509320dfb18"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"6a3e5819c7f6c957bf79ea95e83955bdfa0b474b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"New Cinder volume driver for openvstorage."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements: bp/open-vstorage-volume-driver"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I4a195aacb34fb1300c158c2d8163887b913b6de8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"3a961159_46cd6165","line":9,"in_reply_to":"3a961159_2df678f9","updated":"2014-12-13 07:18:00.000000000","message":"ok","commit_id":"5c20ac4929056086bf3b106a22e6e509320dfb18"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b6a5728d2ee9070d7702e60850bd140e1694245b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     eduardBM \u003ccubusbacau@yahoo.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-12-19 14:00:18 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"New Cinder volume driver for openvstorage."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implements: blueprint open-vstorage-volume-driver"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"3a961159_6ba2a19b","line":7,"updated":"2015-01-02 19:13:48.000000000","message":"Please, remove dot in the end of a commit message","commit_id":"55959986566eb0f646158101891a18a97ac98a76"}],"cinder/tests/ovs_common.py":[{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"53cba3a0bb110f0ad14a1fa9b6b04a77a0722501","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from cinder import test"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"#Openstack"},{"line_number":26,"context_line":"from cinderclient import exceptions as cinder_client_exceptions"},{"line_number":27,"context_line":"from cinderclient.v1 import client as cinder_client"},{"line_number":28,"context_line":"from glanceclient.v1 import client as glance_client"},{"line_number":29,"context_line":"from keystoneclient.v2_0 import client as keystone_client"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_4c5ca94b","line":26,"updated":"2014-10-27 15:52:31.000000000","message":"You can\u0027t import exceptions from the client like this","commit_id":"1ccdb822cec1a57bacc6274258bae3ad9e324641"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"53cba3a0bb110f0ad14a1fa9b6b04a77a0722501","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"#Openstack"},{"line_number":26,"context_line":"from cinderclient import exceptions as cinder_client_exceptions"},{"line_number":27,"context_line":"from cinderclient.v1 import client as cinder_client"},{"line_number":28,"context_line":"from glanceclient.v1 import client as glance_client"},{"line_number":29,"context_line":"from keystoneclient.v2_0 import client as keystone_client"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_6c57ad26","line":27,"updated":"2014-10-27 15:52:31.000000000","message":"ditto","commit_id":"1ccdb822cec1a57bacc6274258bae3ad9e324641"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"53cba3a0bb110f0ad14a1fa9b6b04a77a0722501","unresolved":false,"context_lines":[{"line_number":25,"context_line":"#Openstack"},{"line_number":26,"context_line":"from cinderclient import exceptions as cinder_client_exceptions"},{"line_number":27,"context_line":"from cinderclient.v1 import client as cinder_client"},{"line_number":28,"context_line":"from glanceclient.v1 import client as glance_client"},{"line_number":29,"context_line":"from keystoneclient.v2_0 import client as keystone_client"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"#OVS"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_8c521133","line":28,"updated":"2014-10-27 15:52:31.000000000","message":"ditto","commit_id":"1ccdb822cec1a57bacc6274258bae3ad9e324641"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"53cba3a0bb110f0ad14a1fa9b6b04a77a0722501","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from cinderclient import exceptions as cinder_client_exceptions"},{"line_number":27,"context_line":"from cinderclient.v1 import client as cinder_client"},{"line_number":28,"context_line":"from glanceclient.v1 import client as glance_client"},{"line_number":29,"context_line":"from keystoneclient.v2_0 import client as keystone_client"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"#OVS"},{"line_number":32,"context_line":"from ovs.dal.lists.vdisklist import VDiskList"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_ac3435fc","line":29,"updated":"2014-10-27 15:52:31.000000000","message":"and again","commit_id":"1ccdb822cec1a57bacc6274258bae3ad9e324641"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"53cba3a0bb110f0ad14a1fa9b6b04a77a0722501","unresolved":false,"context_lines":[{"line_number":470,"context_line":""},{"line_number":471,"context_line":"    def _set_cinder_volume_type(self):"},{"line_number":472,"context_line":"        self._get_cinder_client()"},{"line_number":473,"context_line":"        volume_types \u003d self.cinder_client.volume_types.list()"},{"line_number":474,"context_line":"        for v in volume_types:"},{"line_number":475,"context_line":"            if v.name \u003d\u003d VOLUME_TYPE:"},{"line_number":476,"context_line":"                return False"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_ac1b557f","line":473,"updated":"2014-10-27 15:52:31.000000000","message":"So these should be calls to your API, not cinderclient and not even through the Cinder Volume API really.","commit_id":"1ccdb822cec1a57bacc6274258bae3ad9e324641"}],"cinder/tests/test_ovscp_base_mock.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"3261a0d212261fe88a0d4cb78e6aa3ae39b06c8f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 CloudFounders NV"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":12,"id":"3a961159_085f91e6","line":1,"updated":"2014-12-09 00:14:09.000000000","message":"Lets just calls this test_ovs.py. thanks.","commit_id":"bc28151b4b394853000904cc86f9ab5e91366708"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"04a6afafda0545d8494b1ad5fab6daa058a421d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 CloudFounders NV"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":12,"id":"3a961159_e237b9ae","line":1,"in_reply_to":"3a961159_085f91e6","updated":"2014-12-09 07:52:06.000000000","message":"On second thought, it would make more sense to call it test_openvstorage, to avoid confusion with ovs from openvswitch.","commit_id":"bc28151b4b394853000904cc86f9ab5e91366708"}],"cinder/volume/drivers/openvstorage.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"e23c9fe1a18302c220492e9db235ba1fa2120ccd","unresolved":false,"context_lines":[{"line_number":398,"context_line":"            vdisk.name \u003d devicename"},{"line_number":399,"context_line":"            vdisk.save()"},{"line_number":400,"context_line":"        except Exception as ex:"},{"line_number":401,"context_line":"            LOG.error(\u0027CLONE FROM SNAP: Internal error %s \u0027 % str(ex))"},{"line_number":402,"context_line":"            self.delete_volume(volume)"},{"line_number":403,"context_line":"            self.delete_snapshot(snapshot)"},{"line_number":404,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":16,"id":"3a961159_211e1164","line":401,"updated":"2014-12-09 15:27:54.000000000","message":"these still need to be removed, as brought up in patch set 12.","commit_id":"67d119dc7b86e7615f943fae071e3a7f504bfa05"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"386c219779bb60032e937daac8bc541f2fd9d9bd","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"# External libs: OVS"},{"line_number":25,"context_line":"try:"},{"line_number":26,"context_line":"    from ovs.dal.hybrids.vdisk import VDisk"},{"line_number":27,"context_line":"    from ovs.dal.lists.pmachinelist import PMachineList"},{"line_number":28,"context_line":"    from ovs.dal.lists.vdisklist import VDiskList"},{"line_number":29,"context_line":"    from ovs.dal.lists.vpoollist import VPoolList"}],"source_content_type":"text/x-python","patch_set":17,"id":"3a961159_3114864d","line":26,"updated":"2014-12-10 07:38:27.000000000","message":"According to http://docs.openstack.org/developer/hacking/ you should import modules, not obects","commit_id":"1a61ee70919505166924c508fa08564f75eaffdd"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"1445d188a3a7aa5d9af13c85fd7b8dc5c8b9bb46","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"# External libs: OVS"},{"line_number":25,"context_line":"try:"},{"line_number":26,"context_line":"    from ovs.dal.hybrids.vdisk import VDisk"},{"line_number":27,"context_line":"    from ovs.dal.lists.pmachinelist import PMachineList"},{"line_number":28,"context_line":"    from ovs.dal.lists.vdisklist import VDiskList"},{"line_number":29,"context_line":"    from ovs.dal.lists.vpoollist import VPoolList"}],"source_content_type":"text/x-python","patch_set":17,"id":"3a961159_dcc0b92c","line":26,"in_reply_to":"3a961159_3114864d","updated":"2014-12-10 07:59:00.000000000","message":"Ok, will change.","commit_id":"1a61ee70919505166924c508fa08564f75eaffdd"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"386c219779bb60032e937daac8bc541f2fd9d9bd","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    VPoolList \u003d None"},{"line_number":38,"context_line":"    VDiskController \u003d None"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"# Third party"},{"line_number":41,"context_line":"from oslo.config import cfg"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"# Cinder"}],"source_content_type":"text/x-python","patch_set":17,"id":"3a961159_fc001503","line":40,"updated":"2014-12-10 07:38:27.000000000","message":"Not sure that this comment is needed","commit_id":"1a61ee70919505166924c508fa08564f75eaffdd"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"1445d188a3a7aa5d9af13c85fd7b8dc5c8b9bb46","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    VPoolList \u003d None"},{"line_number":38,"context_line":"    VDiskController \u003d None"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"# Third party"},{"line_number":41,"context_line":"from oslo.config import cfg"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"# Cinder"}],"source_content_type":"text/x-python","patch_set":17,"id":"3a961159_1ce241d5","line":40,"in_reply_to":"3a961159_fc001503","updated":"2014-12-10 07:59:00.000000000","message":"Will be removed.","commit_id":"1a61ee70919505166924c508fa08564f75eaffdd"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"386c219779bb60032e937daac8bc541f2fd9d9bd","unresolved":false,"context_lines":[{"line_number":40,"context_line":"# Third party"},{"line_number":41,"context_line":"from oslo.config import cfg"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"# Cinder"},{"line_number":44,"context_line":"from cinder import exception"},{"line_number":45,"context_line":"from cinder.image import image_utils"},{"line_number":46,"context_line":"from cinder.openstack.common import log as logging"}],"source_content_type":"text/x-python","patch_set":17,"id":"3a961159_fc2735b4","line":43,"updated":"2014-12-10 07:38:27.000000000","message":"The same is here","commit_id":"1a61ee70919505166924c508fa08564f75eaffdd"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"1445d188a3a7aa5d9af13c85fd7b8dc5c8b9bb46","unresolved":false,"context_lines":[{"line_number":40,"context_line":"# Third party"},{"line_number":41,"context_line":"from oslo.config import cfg"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"# Cinder"},{"line_number":44,"context_line":"from cinder import exception"},{"line_number":45,"context_line":"from cinder.image import image_utils"},{"line_number":46,"context_line":"from cinder.openstack.common import log as logging"}],"source_content_type":"text/x-python","patch_set":17,"id":"3a961159_3ce9bdb8","line":43,"in_reply_to":"3a961159_fc2735b4","updated":"2014-12-10 07:59:00.000000000","message":"Will be removed","commit_id":"1a61ee70919505166924c508fa08564f75eaffdd"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"386c219779bb60032e937daac8bc541f2fd9d9bd","unresolved":false,"context_lines":[{"line_number":425,"context_line":"                                          size \u003d size_gb)"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"    # Override parent behavior (NotImplementedError)"},{"line_number":428,"context_line":"    # Not actually implemented"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"    def create_export(self, context, volume):"},{"line_number":431,"context_line":"        \"\"\"Just to override parent behavior"}],"source_content_type":"text/x-python","patch_set":17,"id":"3a961159_9c3d51be","line":428,"updated":"2014-12-10 07:38:27.000000000","message":"Is it really needed to hide NotImplementedError?","commit_id":"1a61ee70919505166924c508fa08564f75eaffdd"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"762e639566fad66946b6c710a6d2d3c6f9efe3d6","unresolved":false,"context_lines":[{"line_number":425,"context_line":"                                          size \u003d size_gb)"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"    # Override parent behavior (NotImplementedError)"},{"line_number":428,"context_line":"    # Not actually implemented"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"    def create_export(self, context, volume):"},{"line_number":431,"context_line":"        \"\"\"Just to override parent behavior"}],"source_content_type":"text/x-python","patch_set":17,"id":"3a961159_bc1bed19","line":428,"in_reply_to":"3a961159_9c3d51be","updated":"2014-12-10 07:48:15.000000000","message":"Looks like it is. Please, add more explicit comments instead of \u0027Just to override parent behavior\u0027","commit_id":"1a61ee70919505166924c508fa08564f75eaffdd"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"1445d188a3a7aa5d9af13c85fd7b8dc5c8b9bb46","unresolved":false,"context_lines":[{"line_number":425,"context_line":"                                          size \u003d size_gb)"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"    # Override parent behavior (NotImplementedError)"},{"line_number":428,"context_line":"    # Not actually implemented"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"    def create_export(self, context, volume):"},{"line_number":431,"context_line":"        \"\"\"Just to override parent behavior"}],"source_content_type":"text/x-python","patch_set":17,"id":"3a961159_5cecc9c7","line":428,"in_reply_to":"3a961159_bc1bed19","updated":"2014-12-10 07:59:00.000000000","message":"Will add detailed comments.","commit_id":"1a61ee70919505166924c508fa08564f75eaffdd"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"386c219779bb60032e937daac8bc541f2fd9d9bd","unresolved":false,"context_lines":[{"line_number":511,"context_line":"                                         % (location, vd.guid))"},{"line_number":512,"context_line":"                                disk \u003d VDisk(vd.guid)"},{"line_number":513,"context_line":"                                return disk"},{"line_number":514,"context_line":"            msg \u003d \u0027 NO RESULT Attempt %s timeout %s max attempts %s\u0027"},{"line_number":515,"context_line":"            LOG.debug(msg % (attempt, timeout, retry))"},{"line_number":516,"context_line":"            if timeout:"},{"line_number":517,"context_line":"                time.sleep(timeout)"}],"source_content_type":"text/x-python","patch_set":17,"id":"3a961159_dc5ef911","line":514,"updated":"2014-12-10 07:38:27.000000000","message":"Please, remove space in beginning of the message","commit_id":"1a61ee70919505166924c508fa08564f75eaffdd"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"1445d188a3a7aa5d9af13c85fd7b8dc5c8b9bb46","unresolved":false,"context_lines":[{"line_number":511,"context_line":"                                         % (location, vd.guid))"},{"line_number":512,"context_line":"                                disk \u003d VDisk(vd.guid)"},{"line_number":513,"context_line":"                                return disk"},{"line_number":514,"context_line":"            msg \u003d \u0027 NO RESULT Attempt %s timeout %s max attempts %s\u0027"},{"line_number":515,"context_line":"            LOG.debug(msg % (attempt, timeout, retry))"},{"line_number":516,"context_line":"            if timeout:"},{"line_number":517,"context_line":"                time.sleep(timeout)"}],"source_content_type":"text/x-python","patch_set":17,"id":"3a961159_bcdccd13","line":514,"in_reply_to":"3a961159_dc5ef911","updated":"2014-12-10 07:59:00.000000000","message":"Will be corrected.","commit_id":"1a61ee70919505166924c508fa08564f75eaffdd"},{"author":{"_account_id":6043,"name":"Kurt Martin","email":"kurt.f.martin@hpe.com","username":"kurt-f-martin"},"change_message_id":"3f1dbc08d9d83e56022990f8814e1210ecc2c393","unresolved":false,"context_lines":[{"line_number":530,"context_line":"                            _location \u003d \"{0}/{1}\".format(vsr.mountpoint,"},{"line_number":531,"context_line":"                                                         vd.devicename)"},{"line_number":532,"context_line":"                            if _location \u003d\u003d location:"},{"line_number":533,"context_line":"                                LOG.info(\u0027Location %s Disk found %s\u0027"},{"line_number":534,"context_line":"                                         % (location, vd.guid))"},{"line_number":535,"context_line":"                                disk \u003d vdiskhybrid.VDisk(vd.guid)"},{"line_number":536,"context_line":"                                return disk"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a961159_b703f10b","line":533,"updated":"2014-12-10 17:33:19.000000000","message":"missing _LI, please see the last bullet point \"Use log markers...\" for usage at https://wiki.openstack.org/wiki/Cinder/how-to-contribute-a-driver#Writing_Code","commit_id":"cb2195dc6ee038622d03750ce9834dfc42b69063"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"28974d3e9926772d13256ecf2310cb0c32126bda","unresolved":false,"context_lines":[{"line_number":530,"context_line":"                            _location \u003d \"{0}/{1}\".format(vsr.mountpoint,"},{"line_number":531,"context_line":"                                                         vd.devicename)"},{"line_number":532,"context_line":"                            if _location \u003d\u003d location:"},{"line_number":533,"context_line":"                                LOG.info(\u0027Location %s Disk found %s\u0027"},{"line_number":534,"context_line":"                                         % (location, vd.guid))"},{"line_number":535,"context_line":"                                disk \u003d vdiskhybrid.VDisk(vd.guid)"},{"line_number":536,"context_line":"                                return disk"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a961159_d00a4320","line":533,"in_reply_to":"3a961159_b703f10b","updated":"2014-12-10 18:59:48.000000000","message":"should have been LOG.debug, will be fixed","commit_id":"cb2195dc6ee038622d03750ce9834dfc42b69063"},{"author":{"_account_id":6043,"name":"Kurt Martin","email":"kurt.f.martin@hpe.com","username":"kurt-f-martin"},"change_message_id":"3f1dbc08d9d83e56022990f8814e1210ecc2c393","unresolved":false,"context_lines":[{"line_number":567,"context_line":"        for disk in vdisklist.VDiskList.get_vdisks():"},{"line_number":568,"context_line":"            snaps_guid \u003d [s[\u0027guid\u0027] for s in disk.snapshots]"},{"line_number":569,"context_line":"            if str(snapshotid) in snaps_guid:"},{"line_number":570,"context_line":"                LOG.info(\u0027[_FIND OVS DISK] Snapshot id %s Disk found %s\u0027"},{"line_number":571,"context_line":"                         % (snapshotid, disk))"},{"line_number":572,"context_line":"                return disk"},{"line_number":573,"context_line":"        msg \u003d (_(\u0027No disk found for snapshotid %s\u0027) % snapshotid)"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a961159_b72a117c","line":570,"updated":"2014-12-10 17:33:19.000000000","message":"Please see the last bullet point \"Use log markers...\" for usage at https://wiki.openstack.org/wiki/Cinder/how-to-contribute-a-driver#Writing_Code, this should have a _LI","commit_id":"cb2195dc6ee038622d03750ce9834dfc42b69063"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"28974d3e9926772d13256ecf2310cb0c32126bda","unresolved":false,"context_lines":[{"line_number":567,"context_line":"        for disk in vdisklist.VDiskList.get_vdisks():"},{"line_number":568,"context_line":"            snaps_guid \u003d [s[\u0027guid\u0027] for s in disk.snapshots]"},{"line_number":569,"context_line":"            if str(snapshotid) in snaps_guid:"},{"line_number":570,"context_line":"                LOG.info(\u0027[_FIND OVS DISK] Snapshot id %s Disk found %s\u0027"},{"line_number":571,"context_line":"                         % (snapshotid, disk))"},{"line_number":572,"context_line":"                return disk"},{"line_number":573,"context_line":"        msg \u003d (_(\u0027No disk found for snapshotid %s\u0027) % snapshotid)"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a961159_1014cb42","line":570,"in_reply_to":"3a961159_b72a117c","updated":"2014-12-10 18:59:48.000000000","message":"should have been LOG.debug, will be fixed","commit_id":"cb2195dc6ee038622d03750ce9834dfc42b69063"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"1cdf992ac64a7166bc5afe7e44b670a5d0cdd5b8","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"class OVSVolumeDriver(driver.VolumeDriver):"},{"line_number":76,"context_line":"    \"\"\"OVS Volume Driver plugin for Cinder"},{"line_number":77,"context_line":"    (support for Kilo only)"},{"line_number":78,"context_line":"    \"\"\""},{"line_number":79,"context_line":"    VERSION \u003d \u00271.0.5b\u0027"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"3a961159_9a0883db","line":77,"updated":"2014-12-12 21:37:36.000000000","message":"This driver will land in Kilo, do we really need this here?","commit_id":"5c20ac4929056086bf3b106a22e6e509320dfb18"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"8e0a0d4e178bb93f704507603977ae970a2811aa","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"class OVSVolumeDriver(driver.VolumeDriver):"},{"line_number":76,"context_line":"    \"\"\"OVS Volume Driver plugin for Cinder"},{"line_number":77,"context_line":"    (support for Kilo only)"},{"line_number":78,"context_line":"    \"\"\""},{"line_number":79,"context_line":"    VERSION \u003d \u00271.0.5b\u0027"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"3a961159_1a0f3338","line":77,"in_reply_to":"3a961159_9a0883db","updated":"2014-12-12 21:58:02.000000000","message":"We maintain internally 2 drivers (one juno and one kilo) and this was a marker to know which is for kilo.\nWill be removed.","commit_id":"5c20ac4929056086bf3b106a22e6e509320dfb18"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"1cdf992ac64a7166bc5afe7e44b670a5d0cdd5b8","unresolved":false,"context_lines":[{"line_number":464,"context_line":"        Connection is always allowed based on POSIX permissions."},{"line_number":465,"context_line":"        \"\"\""},{"line_number":466,"context_line":"        _debug_vol_info(\"TERM_CONN\", volume)"},{"line_number":467,"context_line":"        LOG.debug(\u0027TERM_CONN %s %s \u0027 % (str(connector), force))"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"    def check_for_setup_error(self):"},{"line_number":470,"context_line":"        \"\"\"Validate driver setup"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a961159_faad079c","line":467,"updated":"2014-12-12 21:37:36.000000000","message":"So there is no way to disconnect this volume from the remote instance?   Does that mean there will be left over volumes in /dev/disk/by-path on the initiator host os?","commit_id":"5c20ac4929056086bf3b106a22e6e509320dfb18"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"791b9d822bea004ed7c1896bdbf0ffd2ee49b6c9","unresolved":false,"context_lines":[{"line_number":464,"context_line":"        Connection is always allowed based on POSIX permissions."},{"line_number":465,"context_line":"        \"\"\""},{"line_number":466,"context_line":"        _debug_vol_info(\"TERM_CONN\", volume)"},{"line_number":467,"context_line":"        LOG.debug(\u0027TERM_CONN %s %s \u0027 % (str(connector), force))"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"    def check_for_setup_error(self):"},{"line_number":470,"context_line":"        \"\"\"Validate driver setup"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a961159_8d4a0c53","line":467,"in_reply_to":"3a961159_15446448","updated":"2014-12-13 00:03:59.000000000","message":"So the assumption here is then that this cinder volume driver must be running on the same nova compute node in order to get local access to the .raw file ?","commit_id":"5c20ac4929056086bf3b106a22e6e509320dfb18"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"27932f68ce2a6670c8460779aa2911a559d4aee0","unresolved":false,"context_lines":[{"line_number":464,"context_line":"        Connection is always allowed based on POSIX permissions."},{"line_number":465,"context_line":"        \"\"\""},{"line_number":466,"context_line":"        _debug_vol_info(\"TERM_CONN\", volume)"},{"line_number":467,"context_line":"        LOG.debug(\u0027TERM_CONN %s %s \u0027 % (str(connector), force))"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"    def check_for_setup_error(self):"},{"line_number":470,"context_line":"        \"\"\"Validate driver setup"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a961159_06e7d9e4","line":467,"in_reply_to":"3a961159_8d4a0c53","updated":"2014-12-13 07:33:21.000000000","message":"Indeed, our storage driver (which provides the filesystem), cinder-volume and nova-compute must be running on the same node.","commit_id":"5c20ac4929056086bf3b106a22e6e509320dfb18"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"8e0a0d4e178bb93f704507603977ae970a2811aa","unresolved":false,"context_lines":[{"line_number":464,"context_line":"        Connection is always allowed based on POSIX permissions."},{"line_number":465,"context_line":"        \"\"\""},{"line_number":466,"context_line":"        _debug_vol_info(\"TERM_CONN\", volume)"},{"line_number":467,"context_line":"        LOG.debug(\u0027TERM_CONN %s %s \u0027 % (str(connector), force))"},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"    def check_for_setup_error(self):"},{"line_number":470,"context_line":"        \"\"\"Validate driver setup"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a961159_15446448","line":467,"in_reply_to":"3a961159_faad079c","updated":"2014-12-12 21:58:02.000000000","message":"As the comment says, the volume is a .raw file not a /dev/disk so there\u0027s no leftover.\nThe volume is accessible by having access to the filesystem which is mounted on the host. So the connection is local, so there\u0027s nothing to terminate.","commit_id":"5c20ac4929056086bf3b106a22e6e509320dfb18"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"1cdf992ac64a7166bc5afe7e44b670a5d0cdd5b8","unresolved":false,"context_lines":[{"line_number":472,"context_line":"        if (vdiskhybrid is None or pmachinelist is None or vdisklist is None or"},{"line_number":473,"context_line":"                vpoollist is None or vdisklib is None):"},{"line_number":474,"context_line":"            msg \u003d (_(\u0027Open vStorage libraries not found\u0027))"},{"line_number":475,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"    def do_setup(self, context):"},{"line_number":478,"context_line":"        \"\"\"Any initialization the volume driver does while starting"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a961159_dadccb48","line":475,"updated":"2014-12-12 21:37:36.000000000","message":"should log an error here.","commit_id":"5c20ac4929056086bf3b106a22e6e509320dfb18"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"8e0a0d4e178bb93f704507603977ae970a2811aa","unresolved":false,"context_lines":[{"line_number":472,"context_line":"        if (vdiskhybrid is None or pmachinelist is None or vdisklist is None or"},{"line_number":473,"context_line":"                vpoollist is None or vdisklib is None):"},{"line_number":474,"context_line":"            msg \u003d (_(\u0027Open vStorage libraries not found\u0027))"},{"line_number":475,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"    def do_setup(self, context):"},{"line_number":478,"context_line":"        \"\"\"Any initialization the volume driver does while starting"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a961159_156b84b7","line":475,"in_reply_to":"3a961159_dadccb48","updated":"2014-12-12 21:58:02.000000000","message":"I thought raising an exception would log the error, but i\u0027ll add an _LE call","commit_id":"5c20ac4929056086bf3b106a22e6e509320dfb18"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"1cdf992ac64a7166bc5afe7e44b670a5d0cdd5b8","unresolved":false,"context_lines":[{"line_number":510,"context_line":"        elif not storagedrivers:"},{"line_number":511,"context_line":"            msg \u003d (_(\u0027No vsr mountpoint found for Vpool %(vpool_name)s\u0027"},{"line_number":512,"context_line":"                     \u0027and hostname %(hostname)s\u0027)"},{"line_number":513,"context_line":"                   % {\u0027vpool_name\u0027: self._vpool_name, \u0027hostname\u0027: hostname})"},{"line_number":514,"context_line":"            raise RuntimeError(msg)"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"    def _find_ovs_model_disk_by_location(self, location, hostname, retry\u003d3,"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a961159_7afd97b0","line":513,"updated":"2014-12-12 21:37:36.000000000","message":"Might want to log an error here.","commit_id":"5c20ac4929056086bf3b106a22e6e509320dfb18"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"8e0a0d4e178bb93f704507603977ae970a2811aa","unresolved":false,"context_lines":[{"line_number":510,"context_line":"        elif not storagedrivers:"},{"line_number":511,"context_line":"            msg \u003d (_(\u0027No vsr mountpoint found for Vpool %(vpool_name)s\u0027"},{"line_number":512,"context_line":"                     \u0027and hostname %(hostname)s\u0027)"},{"line_number":513,"context_line":"                   % {\u0027vpool_name\u0027: self._vpool_name, \u0027hostname\u0027: hostname})"},{"line_number":514,"context_line":"            raise RuntimeError(msg)"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"    def _find_ovs_model_disk_by_location(self, location, hostname, retry\u003d3,"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a961159_d5a49c09","line":513,"in_reply_to":"3a961159_7afd97b0","updated":"2014-12-12 21:58:02.000000000","message":"These are internal methods, but i guess logging would help (_LE)","commit_id":"5c20ac4929056086bf3b106a22e6e509320dfb18"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"1cdf992ac64a7166bc5afe7e44b670a5d0cdd5b8","unresolved":false,"context_lines":[{"line_number":539,"context_line":"            if timeout:"},{"line_number":540,"context_line":"                time.sleep(timeout)"},{"line_number":541,"context_line":"            attempt +\u003d 1"},{"line_number":542,"context_line":"        msg \u003d (_(\u0027No disk found for location %s\u0027) % location)"},{"line_number":543,"context_line":"        raise RuntimeError(msg)"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"    def _find_ovs_model_pmachine_guid_by_hostname(self, hostname):"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a961159_1a23b356","line":542,"updated":"2014-12-12 21:37:36.000000000","message":"should log an error here.","commit_id":"5c20ac4929056086bf3b106a22e6e509320dfb18"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"8e0a0d4e178bb93f704507603977ae970a2811aa","unresolved":false,"context_lines":[{"line_number":539,"context_line":"            if timeout:"},{"line_number":540,"context_line":"                time.sleep(timeout)"},{"line_number":541,"context_line":"            attempt +\u003d 1"},{"line_number":542,"context_line":"        msg \u003d (_(\u0027No disk found for location %s\u0027) % location)"},{"line_number":543,"context_line":"        raise RuntimeError(msg)"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"    def _find_ovs_model_pmachine_guid_by_hostname(self, hostname):"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a961159_f5a7d808","line":542,"in_reply_to":"3a961159_1a23b356","updated":"2014-12-12 21:58:02.000000000","message":"These are internal methods, but i guess logging would help (_LE)","commit_id":"5c20ac4929056086bf3b106a22e6e509320dfb18"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"1cdf992ac64a7166bc5afe7e44b670a5d0cdd5b8","unresolved":false,"context_lines":[{"line_number":557,"context_line":"                LOG.debug(msg % (item[0], hostname))"},{"line_number":558,"context_line":"                return item[0]"},{"line_number":559,"context_line":"        msg \u003d (_(\u0027No PMachine guid found for Hostname %s\u0027) % hostname)"},{"line_number":560,"context_line":"        raise RuntimeError(msg)"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"    def _find_ovs_model_disk_by_snapshot_id(self, snapshotid):"},{"line_number":563,"context_line":"        \"\"\"Find OVS disk object based on snapshot id"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a961159_3a1eaf0c","line":560,"updated":"2014-12-12 21:37:36.000000000","message":"should log an error here.","commit_id":"5c20ac4929056086bf3b106a22e6e509320dfb18"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"8e0a0d4e178bb93f704507603977ae970a2811aa","unresolved":false,"context_lines":[{"line_number":557,"context_line":"                LOG.debug(msg % (item[0], hostname))"},{"line_number":558,"context_line":"                return item[0]"},{"line_number":559,"context_line":"        msg \u003d (_(\u0027No PMachine guid found for Hostname %s\u0027) % hostname)"},{"line_number":560,"context_line":"        raise RuntimeError(msg)"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"    def _find_ovs_model_disk_by_snapshot_id(self, snapshotid):"},{"line_number":563,"context_line":"        \"\"\"Find OVS disk object based on snapshot id"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a961159_15b2a44b","line":560,"in_reply_to":"3a961159_3a1eaf0c","updated":"2014-12-12 21:58:02.000000000","message":"These are internal methods, but i guess logging would help (_LE)","commit_id":"5c20ac4929056086bf3b106a22e6e509320dfb18"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"1cdf992ac64a7166bc5afe7e44b670a5d0cdd5b8","unresolved":false,"context_lines":[{"line_number":571,"context_line":"                          % (snapshotid, disk))"},{"line_number":572,"context_line":"                return disk"},{"line_number":573,"context_line":"        msg \u003d (_(\u0027No disk found for snapshotid %s\u0027) % snapshotid)"},{"line_number":574,"context_line":"        raise RuntimeError(msg)"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a961159_7a14b7e8","line":574,"updated":"2014-12-12 21:37:36.000000000","message":"should log an error here.","commit_id":"5c20ac4929056086bf3b106a22e6e509320dfb18"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"8e0a0d4e178bb93f704507603977ae970a2811aa","unresolved":false,"context_lines":[{"line_number":571,"context_line":"                          % (snapshotid, disk))"},{"line_number":572,"context_line":"                return disk"},{"line_number":573,"context_line":"        msg \u003d (_(\u0027No disk found for snapshotid %s\u0027) % snapshotid)"},{"line_number":574,"context_line":"        raise RuntimeError(msg)"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a961159_75b3e84c","line":574,"in_reply_to":"3a961159_7a14b7e8","updated":"2014-12-12 21:58:02.000000000","message":"These are internal methods, but i guess logging would help (_LE)","commit_id":"5c20ac4929056086bf3b106a22e6e509320dfb18"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"81c98eb10385ee9a1f178c5cfe0763125d8f2ccd","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    from ovs.dal.lists import vpoollist"},{"line_number":30,"context_line":"    from ovs.lib import vdisk as vdisklib"},{"line_number":31,"context_line":"except ImportError:"},{"line_number":32,"context_line":"    # CI Testing, all external libs are mocked"},{"line_number":33,"context_line":"    # or using the driver without all required libs"},{"line_number":34,"context_line":"    vdiskhybrid \u003d None"},{"line_number":35,"context_line":"    pmachinelist \u003d None"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a961159_c0e2ee00","line":32,"updated":"2014-12-15 18:48:59.000000000","message":"How is CI Testing being run with things mocked?  This sort of defeats the purpose of functional testing doesn\u0027t it?","commit_id":"054a5d816751d92cfb53bd757d9c02ccc193c546"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"6ee460ce9e88e5a0ce71cef3553e2245fcf4382e","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    from ovs.dal.lists import vpoollist"},{"line_number":30,"context_line":"    from ovs.lib import vdisk as vdisklib"},{"line_number":31,"context_line":"except ImportError:"},{"line_number":32,"context_line":"    # CI Testing, all external libs are mocked"},{"line_number":33,"context_line":"    # or using the driver without all required libs"},{"line_number":34,"context_line":"    vdiskhybrid \u003d None"},{"line_number":35,"context_line":"    pmachinelist \u003d None"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a961159_815e2875","line":32,"in_reply_to":"3a961159_c0e2ee00","updated":"2014-12-15 20:29:56.000000000","message":"This is for OpenStack\u0027s Jenkins CI - the unit tests: in this case the external libs are not available so they are mocked.\nOn our internal CI we use the real libs and run the functionality tests.","commit_id":"054a5d816751d92cfb53bd757d9c02ccc193c546"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"81c98eb10385ee9a1f178c5cfe0763125d8f2ccd","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        data[\u0027driver_version\u0027] \u003d self.VERSION"},{"line_number":310,"context_line":"        data[\u0027storage_protocol\u0027] \u003d \u0027OVS\u0027"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d \u0027infinite\u0027"},{"line_number":313,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d \u0027infinite\u0027"},{"line_number":314,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":315,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a961159_e09d2a68","line":312,"updated":"2014-12-15 18:48:59.000000000","message":"I personally don\u0027t feel that infinite is appropriate","commit_id":"054a5d816751d92cfb53bd757d9c02ccc193c546"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"6ee460ce9e88e5a0ce71cef3553e2245fcf4382e","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        data[\u0027driver_version\u0027] \u003d self.VERSION"},{"line_number":310,"context_line":"        data[\u0027storage_protocol\u0027] \u003d \u0027OVS\u0027"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d \u0027infinite\u0027"},{"line_number":313,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d \u0027infinite\u0027"},{"line_number":314,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":315,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a961159_61d05cca","line":312,"in_reply_to":"3a961159_e09d2a68","updated":"2014-12-15 20:29:56.000000000","message":"I\u0027ll try and see if we can stat the virtual file system and use that.","commit_id":"054a5d816751d92cfb53bd757d9c02ccc193c546"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"81c98eb10385ee9a1f178c5cfe0763125d8f2ccd","unresolved":false,"context_lines":[{"line_number":312,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d \u0027infinite\u0027"},{"line_number":313,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d \u0027infinite\u0027"},{"line_number":314,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":315,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":316,"context_line":"        return data"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"    # Snapshots operations"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a961159_809d465c","line":315,"updated":"2014-12-15 18:48:59.000000000","message":"Seem to be missing a number of things here:\n        data[\"volume_backend_name\"] \u003d self.backend_name\n        data[\"vendor_name\"] \u003d \u0027Open Source\u0027\n        data[\"driver_version\"] \u003d self.VERSION\n        data[\"storage_protocol\"] \u003d self.protocol\n        data[\"pools\"] \u003d []\n\n        location_info \u003d \\\n            (\u0027LVMVolumeDriver:%(hostname)s:%(vg)s\u0027\n             \u0027:%(lvm_type)s:%(lvm_mirrors)s\u0027 %\n             {\u0027hostname\u0027: self.hostname,\n              \u0027vg\u0027: self.configuration.volume_group,\n              \u0027lvm_type\u0027: self.configuration.lvm_type,\n              \u0027lvm_mirrors\u0027: self.configuration.lvm_mirrors})","commit_id":"054a5d816751d92cfb53bd757d9c02ccc193c546"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"6ee460ce9e88e5a0ce71cef3553e2245fcf4382e","unresolved":false,"context_lines":[{"line_number":312,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d \u0027infinite\u0027"},{"line_number":313,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d \u0027infinite\u0027"},{"line_number":314,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":315,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":316,"context_line":"        return data"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"    # Snapshots operations"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a961159_a1008436","line":315,"in_reply_to":"3a961159_809d465c","updated":"2014-12-15 20:29:56.000000000","message":"Ok, i\u0027ll add the missing stuff.","commit_id":"054a5d816751d92cfb53bd757d9c02ccc193c546"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"4f6b612a937e51683c3ec972b0c5a5585586e1b6","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        data[\u0027storage_protocol\u0027] \u003d \u0027OVS\u0027"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d \u0027unavailable\u0027"},{"line_number":313,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d \u0027unavailable\u0027"},{"line_number":314,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":315,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":316,"context_line":"        return data"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a961159_ca6b9d83","line":313,"updated":"2014-12-17 19:34:14.000000000","message":"Need to change this to say \u0027infinite\u0027 if you can\u0027t provide numbers here.    Unfortunately, this also puts your driver at the bottom of the pick list for the scheduler.","commit_id":"85f78f2446156c094ec66a92db13faef31674e74"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"9a8c0c8e492339b46c2763bd638edb9c8b68a6c5","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        data[\u0027storage_protocol\u0027] \u003d \u0027OVS\u0027"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d \u0027unavailable\u0027"},{"line_number":313,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d \u0027unavailable\u0027"},{"line_number":314,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":315,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":316,"context_line":"        return data"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a961159_10af6be4","line":313,"in_reply_to":"3a961159_1a25ccc1","updated":"2014-12-18 18:43:01.000000000","message":"Replaced with unknown. see next patchset","commit_id":"85f78f2446156c094ec66a92db13faef31674e74"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"9a8c0c8e492339b46c2763bd638edb9c8b68a6c5","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        data[\u0027storage_protocol\u0027] \u003d \u0027OVS\u0027"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d \u0027unavailable\u0027"},{"line_number":313,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d \u0027unavailable\u0027"},{"line_number":314,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":315,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":316,"context_line":"        return data"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a961159_f0a81fdd","line":313,"in_reply_to":"3a961159_9a60dc36","updated":"2014-12-18 18:43:01.000000000","message":"Replaced with unknown. see next patchset","commit_id":"85f78f2446156c094ec66a92db13faef31674e74"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"cfce01c8893a52d5adae9991c4b997ab4281c179","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        data[\u0027storage_protocol\u0027] \u003d \u0027OVS\u0027"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d \u0027unavailable\u0027"},{"line_number":313,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d \u0027unavailable\u0027"},{"line_number":314,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":315,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":316,"context_line":"        return data"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a961159_1a25ccc1","line":313,"in_reply_to":"3a961159_a246661f","updated":"2014-12-18 18:11:59.000000000","message":"@Eduard;\nMy bad... I should\u0027ve said \"unknown\" NOT \"unavailable\".\n\nUltimately we\u0027d like to stop reporting infinite, and historically \"infinite\" and \"unknown\" caused problems with the scheduler but that was fixed up a short while ago, see commit:\nhttps://github.com/openstack/cinder/commit/ee9d30a73a74a2e1905eacc561c1b5188b62ca75","commit_id":"85f78f2446156c094ec66a92db13faef31674e74"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"2f6cc5e87c21204675959dacc15911a861dec51d","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        data[\u0027storage_protocol\u0027] \u003d \u0027OVS\u0027"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d \u0027unavailable\u0027"},{"line_number":313,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d \u0027unavailable\u0027"},{"line_number":314,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":315,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":316,"context_line":"        return data"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a961159_da99846f","line":313,"in_reply_to":"3a961159_a246661f","updated":"2014-12-18 18:01:30.000000000","message":"So that may work for you in your situation.   But when a customer uses openvstorage and doesn\u0027t specify a volume type, then this one will be last on the list to get picked by the scheduler.","commit_id":"85f78f2446156c094ec66a92db13faef31674e74"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"c0184c6c57f6514977356d62d43ee956ad4f97b4","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        data[\u0027storage_protocol\u0027] \u003d \u0027OVS\u0027"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d \u0027unavailable\u0027"},{"line_number":313,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d \u0027unavailable\u0027"},{"line_number":314,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":315,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":316,"context_line":"        return data"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a961159_9a60dc36","line":313,"in_reply_to":"3a961159_a246661f","updated":"2014-12-18 18:06:28.000000000","message":"So, I just spoke with John about this.   \u0027unknown\u0027 and \u0027infinite\u0027 are basically treated the same way now.  But, your code has \u0027unavailable\u0027, which isn\u0027t correct.   So, you can set it to \u0027unknown\u0027 or \u0027infinite\u0027.","commit_id":"85f78f2446156c094ec66a92db13faef31674e74"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"a042333b10e601ab46df9362d1db0dfa07345516","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        data[\u0027storage_protocol\u0027] \u003d \u0027OVS\u0027"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d \u0027unavailable\u0027"},{"line_number":313,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d \u0027unavailable\u0027"},{"line_number":314,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":315,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":316,"context_line":"        return data"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a961159_a246661f","line":313,"in_reply_to":"3a961159_ca6b9d83","updated":"2014-12-18 07:19:45.000000000","message":"See comment from John Griffith:\nJohn Griffith\t\tDec 16 10:23 PM\nPatch Set 23:\nunavailable is what I\u0027ve asked others to use in this case.\nThanks!\n\nSo far it\u0027s been working with both unavailable and infinite. Regarding the scheduler, we always specify volume_type when creating volume so this driver is always used.","commit_id":"85f78f2446156c094ec66a92db13faef31674e74"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"9a8c0c8e492339b46c2763bd638edb9c8b68a6c5","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        data[\u0027storage_protocol\u0027] \u003d \u0027OVS\u0027"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d \u0027unavailable\u0027"},{"line_number":313,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d \u0027unavailable\u0027"},{"line_number":314,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":315,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":316,"context_line":"        return data"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a961159_5062d3d8","line":313,"in_reply_to":"3a961159_da99846f","updated":"2014-12-18 18:43:01.000000000","message":"We haven\u0027t thought about that, in all our test (and our docs towards partners) we recommend specifying volume_type.","commit_id":"85f78f2446156c094ec66a92db13faef31674e74"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b6a5728d2ee9070d7702e60850bd140e1694245b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 CloudFounders NV"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":26,"id":"3a961159_2b99796e","line":1,"updated":"2015-01-02 19:13:48.000000000","message":"2015","commit_id":"55959986566eb0f646158101891a18a97ac98a76"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"e9e385b3c90695cb41e8332790dae8e69534cbed","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 CloudFounders NV"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":26,"id":"3a961159_eb5f7173","line":1,"in_reply_to":"3a961159_2b99796e","updated":"2015-01-02 19:33:44.000000000","message":"Done","commit_id":"55959986566eb0f646158101891a18a97ac98a76"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b6a5728d2ee9070d7702e60850bd140e1694245b","unresolved":false,"context_lines":[{"line_number":166,"context_line":"            name \u003d volume.name"},{"line_number":167,"context_line":"            volume.display_name \u003d volume.name"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        # downloading from an existing image"},{"line_number":170,"context_line":"        destination_path \u003d volume.provider_location"},{"line_number":171,"context_line":"        if destination_path:"},{"line_number":172,"context_line":"            LOG.debug(\u0027CP_IMG_TO_VOL Deleting existing empty raw file %s \u0027"}],"source_content_type":"text/x-python","patch_set":26,"id":"3a961159_0ba4bdb7","line":169,"updated":"2015-01-02 19:13:48.000000000","message":"Please, start comments from an upper-case letter","commit_id":"55959986566eb0f646158101891a18a97ac98a76"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"e9e385b3c90695cb41e8332790dae8e69534cbed","unresolved":false,"context_lines":[{"line_number":166,"context_line":"            name \u003d volume.name"},{"line_number":167,"context_line":"            volume.display_name \u003d volume.name"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        # downloading from an existing image"},{"line_number":170,"context_line":"        destination_path \u003d volume.provider_location"},{"line_number":171,"context_line":"        if destination_path:"},{"line_number":172,"context_line":"            LOG.debug(\u0027CP_IMG_TO_VOL Deleting existing empty raw file %s \u0027"}],"source_content_type":"text/x-python","patch_set":26,"id":"3a961159_0b63dd41","line":169,"in_reply_to":"3a961159_0ba4bdb7","updated":"2015-01-02 19:33:44.000000000","message":"Done","commit_id":"55959986566eb0f646158101891a18a97ac98a76"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b6a5728d2ee9070d7702e60850bd140e1694245b","unresolved":false,"context_lines":[{"line_number":535,"context_line":"                                          % (location, vd.guid))"},{"line_number":536,"context_line":"                                disk \u003d vdiskhybrid.VDisk(vd.guid)"},{"line_number":537,"context_line":"                                return disk"},{"line_number":538,"context_line":"            msg \u003d \u0027 NO RESULT Attempt %s timeout %s max attempts %s\u0027"},{"line_number":539,"context_line":"            LOG.debug(msg % (attempt, timeout, retry))"},{"line_number":540,"context_line":"            if timeout:"},{"line_number":541,"context_line":"                time.sleep(timeout)"}],"source_content_type":"text/x-python","patch_set":26,"id":"3a961159_0b8bdd1e","line":538,"updated":"2015-01-02 19:13:48.000000000","message":"Please, remove space at the beginning and end of the messages  here and above","commit_id":"55959986566eb0f646158101891a18a97ac98a76"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"e9e385b3c90695cb41e8332790dae8e69534cbed","unresolved":false,"context_lines":[{"line_number":535,"context_line":"                                          % (location, vd.guid))"},{"line_number":536,"context_line":"                                disk \u003d vdiskhybrid.VDisk(vd.guid)"},{"line_number":537,"context_line":"                                return disk"},{"line_number":538,"context_line":"            msg \u003d \u0027 NO RESULT Attempt %s timeout %s max attempts %s\u0027"},{"line_number":539,"context_line":"            LOG.debug(msg % (attempt, timeout, retry))"},{"line_number":540,"context_line":"            if timeout:"},{"line_number":541,"context_line":"                time.sleep(timeout)"}],"source_content_type":"text/x-python","patch_set":26,"id":"3a961159_cb71d50d","line":538,"in_reply_to":"3a961159_0b8bdd1e","updated":"2015-01-02 19:33:44.000000000","message":"Done","commit_id":"55959986566eb0f646158101891a18a97ac98a76"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5570aa6ad12fb02d52606680dad736a8bf27c1c8","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        if not item.startswith(\u0027__\u0027):"},{"line_number":67,"context_line":"            try:"},{"line_number":68,"context_line":"                vol_info.append(\"%s: %s\" % (item, getattr(volume, item)))"},{"line_number":69,"context_line":"            except Exception as ex:"},{"line_number":70,"context_line":"                msg \u003d (_(\u0027DEBUG failed %s\u0027) % str(ex))"},{"line_number":71,"context_line":"                LOG.debug(msg)"},{"line_number":72,"context_line":"    LOG.debug(\u0027[%s] %s\u0027 % (call, str(vol_info)))"}],"source_content_type":"text/x-python","patch_set":28,"id":"3a961159_09ef2c88","line":69,"updated":"2015-01-06 12:52:00.000000000","message":"Too general exception handling. Could we make this code running w/o exception? IMO, it\u0027s not a good design to log exception during logging","commit_id":"ce45081d30bdbcd6cd56678e930f39afd8591c9e"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5570aa6ad12fb02d52606680dad736a8bf27c1c8","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            try:"},{"line_number":68,"context_line":"                vol_info.append(\"%s: %s\" % (item, getattr(volume, item)))"},{"line_number":69,"context_line":"            except Exception as ex:"},{"line_number":70,"context_line":"                msg \u003d (_(\u0027DEBUG failed %s\u0027) % str(ex))"},{"line_number":71,"context_line":"                LOG.debug(msg)"},{"line_number":72,"context_line":"    LOG.debug(\u0027[%s] %s\u0027 % (call, str(vol_info)))"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"3a961159_a98618b7","line":70,"updated":"2015-01-06 12:52:00.000000000","message":"Need to use six.text_type here and below","commit_id":"ce45081d30bdbcd6cd56678e930f39afd8591c9e"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        # Downloading from an existing image"},{"line_number":150,"context_line":"        destination_path \u003d volume.provider_location"},{"line_number":151,"context_line":"        if destination_path:"},{"line_number":152,"context_line":"            LOG.debug(\u0027CP_IMG_TO_VOL Deleting existing empty raw file %s \u0027"},{"line_number":153,"context_line":"                      % destination_path)"},{"line_number":154,"context_line":"            vdisklib.VDiskController.delete_volume(location \u003d destination_path)"},{"line_number":155,"context_line":"            LOG.debug(\u0027CP_IMG_TO_VOL Downloading image to %s\u0027"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_46710844","line":152,"updated":"2015-01-15 16:07:15.000000000","message":"Please, change logging formatting from \u0027%\u0027 to \u0027,\u0027 according to a guidelines","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                                     \u00271M\u0027,"},{"line_number":162,"context_line":"                                     size \u003d volume[\u0027size\u0027],"},{"line_number":163,"context_line":"                                     run_as_root \u003d False)"},{"line_number":164,"context_line":"            LOG.debug(\u0027CP_IMG_TO_VOL Resizing volume to size %s\u0027"},{"line_number":165,"context_line":"                      % volume[\u0027size\u0027])"},{"line_number":166,"context_line":"            self.extend_volume(volume \u003d volume, size_gb \u003d volume[\u0027size\u0027])"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_c6941838","line":164,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        Called on \"cinder upload-to-image ...volume... ...image-name...\""},{"line_number":176,"context_line":"        :param volume: volume reference (sqlalchemy Model)"},{"line_number":177,"context_line":"        \"\"\""},{"line_number":178,"context_line":"        LOG.debug(\"CP_VOL_TO_IMG %s %s\" % (image_service, image_meta))"},{"line_number":179,"context_line":"        super(OVSVolumeDriver, self).copy_volume_to_image("},{"line_number":180,"context_line":"            context, volume, image_service, image_meta)"},{"line_number":181,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_e699146e","line":178,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        source_ovs_disk \u003d self._find_ovs_model_disk_by_location("},{"line_number":205,"context_line":"            str(src_vref.provider_location), src_vref.host)"},{"line_number":206,"context_line":"        if source_ovs_disk.info[\u0027object_type\u0027] \u003d\u003d \u0027TEMPLATE\u0027:"},{"line_number":207,"context_line":"            LOG.debug(\u0027[CREATE_FROM_TEMPLATE] VDisk %s is a template\u0027"},{"line_number":208,"context_line":"                      % source_ovs_disk.devicename)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"            # Cloning from a template"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_269f9c51","line":207,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":"            # Cloning from a template"},{"line_number":211,"context_line":"            LOG.debug(\u0027[CREATE FROM TEMPLATE] ovs_disk %s \u0027"},{"line_number":212,"context_line":"                      % (source_ovs_disk.devicename))"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"            disk_meta \u003d vdisklib.VDiskController.create_from_template("},{"line_number":215,"context_line":"                diskguid \u003d source_ovs_disk.guid,"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_a6baacbd","line":212,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":229,"context_line":"                      % (volume.id, name))"},{"line_number":230,"context_line":"            vdisk.save()"},{"line_number":231,"context_line":"        else:"},{"line_number":232,"context_line":"            LOG.debug(\u0027[THIN CLONE] VDisk %s is not a template\u0027"},{"line_number":233,"context_line":"                      % source_ovs_disk.devicename)"},{"line_number":234,"context_line":"            # We do not support yet full volume clone"},{"line_number":235,"context_line":"            # - requires \"emancipate\" functionality"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_e6b034de","line":232,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":235,"context_line":"            # - requires \"emancipate\" functionality"},{"line_number":236,"context_line":"            # So for now we\u0027ll take a snapshot"},{"line_number":237,"context_line":"            # (or the latest snapshot existing) and clone from that snapshot"},{"line_number":238,"context_line":"            if len(source_ovs_disk.snapshots) \u003d\u003d 0:"},{"line_number":239,"context_line":"                metadata \u003d {\u0027label\u0027: \"Cinder clone snapshot {0}\".format(name),"},{"line_number":240,"context_line":"                            \u0027is_consistent\u0027: False,"},{"line_number":241,"context_line":"                            \u0027timestamp\u0027: time.time(),"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_66bc44b6","line":238,"updated":"2015-01-15 16:07:15.000000000","message":"Could be simplified to\nif not len(source_ovs_disk.snapshots):","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":242,"context_line":"                            \u0027machineguid\u0027: source_ovs_disk.vmachine_guid,"},{"line_number":243,"context_line":"                            \u0027is_automatic\u0027: False}"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"                LOG.debug(\u0027CREATE_SNAP %s %s\u0027 % (name, str(metadata)))"},{"line_number":246,"context_line":"                snapshotid \u003d vdisklib.VDiskController.create_snapshot("},{"line_number":247,"context_line":"                    diskguid \u003d source_ovs_disk.guid,"},{"line_number":248,"context_line":"                    metadata \u003d metadata,"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_c6e258d3","line":245,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":251,"context_line":""},{"line_number":252,"context_line":"            else:"},{"line_number":253,"context_line":"                snapshotid \u003d source_ovs_disk.snapshots[-1][\u0027guid\u0027]"},{"line_number":254,"context_line":"            LOG.debug(\u0027[CREATE CLONE FROM SNAP] %s \u0027 % snapshotid)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"            disk_meta \u003d vdisklib.VDiskController.clone("},{"line_number":257,"context_line":"                diskguid \u003d source_ovs_disk.guid,"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_06d0e0f5","line":254,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":263,"context_line":"            volume[\u0027provider_location\u0027] \u003d \u0027{}{}\u0027.format("},{"line_number":264,"context_line":"                mountpoint, disk_meta[\u0027backingdevice\u0027])"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"            LOG.debug(\u0027[CLONE FROM SNAP] Meta: %s\u0027 % str(disk_meta))"},{"line_number":267,"context_line":"            LOG.debug(\u0027[CLONE FROM SNAP] New volume %s\u0027"},{"line_number":268,"context_line":"                      % volume[\u0027provider_location\u0027])"},{"line_number":269,"context_line":"            vdisk \u003d vdiskhybrid.VDisk(disk_meta[\u0027diskguid\u0027])"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_26f4fc85","line":266,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":264,"context_line":"                mountpoint, disk_meta[\u0027backingdevice\u0027])"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"            LOG.debug(\u0027[CLONE FROM SNAP] Meta: %s\u0027 % str(disk_meta))"},{"line_number":267,"context_line":"            LOG.debug(\u0027[CLONE FROM SNAP] New volume %s\u0027"},{"line_number":268,"context_line":"                      % volume[\u0027provider_location\u0027])"},{"line_number":269,"context_line":"            vdisk \u003d vdiskhybrid.VDisk(disk_meta[\u0027diskguid\u0027])"},{"line_number":270,"context_line":"            vdisk.cinder_id \u003d volume.id"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_66ea84a1","line":267,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":277,"context_line":""},{"line_number":278,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":279,"context_line":"        \"\"\"Get volumedriver stats"},{"line_number":280,"context_line":"        If \u0027refresh\u0027 is True, update the stats first."},{"line_number":281,"context_line":"        \"\"\""},{"line_number":282,"context_line":"        LOG.debug(\u0027VOLUMEDRIVER STATS\u0027)"},{"line_number":283,"context_line":"        data \u003d {}"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_26223c01","line":280,"updated":"2015-01-15 16:07:15.000000000","message":"It\u0027s not implemented","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        \"\"\"Get volumedriver stats"},{"line_number":280,"context_line":"        If \u0027refresh\u0027 is True, update the stats first."},{"line_number":281,"context_line":"        \"\"\""},{"line_number":282,"context_line":"        LOG.debug(\u0027VOLUMEDRIVER STATS\u0027)"},{"line_number":283,"context_line":"        data \u003d {}"},{"line_number":284,"context_line":"        data[\u0027volume_backend_name\u0027] \u003d self._vpool_name"},{"line_number":285,"context_line":"        data[\u0027vendor_name\u0027] \u003d \u0027Open vStorage\u0027"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_861130b1","line":282,"updated":"2015-01-15 16:07:15.000000000","message":"Should we log data here?","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":310,"context_line":"                    \u0027machineguid\u0027: ovs_disk.vmachine_guid,"},{"line_number":311,"context_line":"                    \u0027is_automatic\u0027: False}"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"        LOG.debug(\u0027CREATE_SNAP %s %s\u0027 % (snapshot.display_name, str(metadata)))"},{"line_number":314,"context_line":"        vdisklib.VDiskController.create_snapshot(diskguid \u003d ovs_disk.guid,"},{"line_number":315,"context_line":"                                                 metadata \u003d metadata,"},{"line_number":316,"context_line":"                                                 snapshotid \u003d str(snapshot.id))"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_c67ed8e2","line":313,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":325,"context_line":"        location \u003d volume.provider_location"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        ovs_disk \u003d self._find_ovs_model_disk_by_location(location, hostname)"},{"line_number":328,"context_line":"        LOG.debug(\u0027DELETE_SNAP %s\u0027 % snapshot.id)"},{"line_number":329,"context_line":"        vdisklib.VDiskController.delete_snapshot(diskguid \u003d ovs_disk.guid,"},{"line_number":330,"context_line":"                                                 snapshotid \u003d str(snapshot.id))"},{"line_number":331,"context_line":"        LOG.debug(\u0027DELETE_SNAP OK\u0027)"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_a6646c49","line":328,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":351,"context_line":"        if not devicename:"},{"line_number":352,"context_line":"            devicename \u003d volume.name"},{"line_number":353,"context_line":"        pmachineguid \u003d self._find_ovs_model_pmachine_guid_by_hostname("},{"line_number":354,"context_line":"            str(volume.host))"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"        LOG.debug(\u0027[CLONE FROM SNAP] %s %s %s %s\u0027"},{"line_number":357,"context_line":"                  % (ovs_snap_disk.guid, snapshot.id, devicename,"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_86c69014","line":354,"updated":"2015-01-15 16:07:15.000000000","message":"Please, use six.text_type instead of str","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":353,"context_line":"        pmachineguid \u003d self._find_ovs_model_pmachine_guid_by_hostname("},{"line_number":354,"context_line":"            str(volume.host))"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"        LOG.debug(\u0027[CLONE FROM SNAP] %s %s %s %s\u0027"},{"line_number":357,"context_line":"                  % (ovs_snap_disk.guid, snapshot.id, devicename,"},{"line_number":358,"context_line":"                     pmachineguid))"},{"line_number":359,"context_line":"        disk_meta \u003d vdisklib.VDiskController.clone("}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_a6cb8c1c","line":356,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":366,"context_line":"        volume[\u0027provider_location\u0027] \u003d \u0027{}{}\u0027.format("},{"line_number":367,"context_line":"            mountpoint, disk_meta[\u0027backingdevice\u0027])"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"        LOG.debug(\u0027[CLONE FROM SNAP] Meta: %s\u0027 % str(disk_meta))"},{"line_number":370,"context_line":"        LOG.debug(\u0027[CLONE FROM SNAP] New volume %s\u0027"},{"line_number":371,"context_line":"                  % volume[\u0027provider_location\u0027])"},{"line_number":372,"context_line":"        vdisk \u003d vdiskhybrid.VDisk(disk_meta[\u0027diskguid\u0027])"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_c6e3389e","line":369,"updated":"2015-01-15 16:07:15.000000000","message":"str \u003d\u003e six.text_type","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":367,"context_line":"            mountpoint, disk_meta[\u0027backingdevice\u0027])"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"        LOG.debug(\u0027[CLONE FROM SNAP] Meta: %s\u0027 % str(disk_meta))"},{"line_number":370,"context_line":"        LOG.debug(\u0027[CLONE FROM SNAP] New volume %s\u0027"},{"line_number":371,"context_line":"                  % volume[\u0027provider_location\u0027])"},{"line_number":372,"context_line":"        vdisk \u003d vdiskhybrid.VDisk(disk_meta[\u0027diskguid\u0027])"},{"line_number":373,"context_line":"        vdisk.cinder_id \u003d volume.id"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_06daa0e8","line":370,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        \"\"\"Callback for volume attached to instance or host."},{"line_number":385,"context_line":"        \"\"\""},{"line_number":386,"context_line":"        pass"},{"line_number":387,"context_line":"        LOG.debug(\u0027ATTACH_VOL %s %s %s\u0027"},{"line_number":388,"context_line":"                  % (instance_uuid, host_name, mountpoint))"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"    def detach_volume(self, context, volume):"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_c69a5812","line":387,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,\nAlso, this log call won\u0027t be called never","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":397,"context_line":"    def extend_volume(self, volume, size_gb):"},{"line_number":398,"context_line":"        \"\"\"Extend volume to new size size_gb"},{"line_number":399,"context_line":"        \"\"\""},{"line_number":400,"context_line":"        LOG.debug(\u0027EXTEND_VOL Size %s\u0027 % size_gb)"},{"line_number":401,"context_line":"        location \u003d volume.provider_location"},{"line_number":402,"context_line":"        if location is not None:"},{"line_number":403,"context_line":"            LOG.debug(\u0027DO_EXTEND_VOLUME %s\u0027 % (location))"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_0688e0c4","line":400,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        LOG.debug(\u0027EXTEND_VOL Size %s\u0027 % size_gb)"},{"line_number":401,"context_line":"        location \u003d volume.provider_location"},{"line_number":402,"context_line":"        if location is not None:"},{"line_number":403,"context_line":"            LOG.debug(\u0027DO_EXTEND_VOLUME %s\u0027 % (location))"},{"line_number":404,"context_line":"            vdisklib.VDiskController.extend_volume(location \u003d location,"},{"line_number":405,"context_line":"                                                   size \u003d size_gb)"},{"line_number":406,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_2685dcac","line":403,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":433,"context_line":"        The volume is a .raw file on a virtual filesystem."},{"line_number":434,"context_line":"        Connection is always allowed based on POSIX permissions."},{"line_number":435,"context_line":"        \"\"\""},{"line_number":436,"context_line":"        LOG.debug(\u0027TERM_CONN %s %s \u0027 % (str(connector), force))"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"    def check_for_setup_error(self):"},{"line_number":439,"context_line":"        \"\"\"Validate driver setup"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_668b64c0","line":436,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,\nstr \u003d\u003e six.text_type","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":473,"context_line":"        storagedrivers \u003d [vsr for vsr in self._vp.storagedrivers"},{"line_number":474,"context_line":"                          if str(vsr.storagerouter.name) \u003d\u003d str(hostname)]"},{"line_number":475,"context_line":"        if len(storagedrivers) \u003d\u003d 1:"},{"line_number":476,"context_line":"            LOG.debug(\u0027[_GET HOSTNAME MOUNTPOINT] Mountpoint %s\u0027"},{"line_number":477,"context_line":"                      % storagedrivers[0].mountpoint)"},{"line_number":478,"context_line":"            return str(storagedrivers[0].mountpoint)"},{"line_number":479,"context_line":"        elif not storagedrivers:"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_26acfc34","line":476,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":475,"context_line":"        if len(storagedrivers) \u003d\u003d 1:"},{"line_number":476,"context_line":"            LOG.debug(\u0027[_GET HOSTNAME MOUNTPOINT] Mountpoint %s\u0027"},{"line_number":477,"context_line":"                      % storagedrivers[0].mountpoint)"},{"line_number":478,"context_line":"            return str(storagedrivers[0].mountpoint)"},{"line_number":479,"context_line":"        elif not storagedrivers:"},{"line_number":480,"context_line":"            msg \u003d (_(\u0027No vsr mountpoint found for Vpool %(vpool_name)s\u0027"},{"line_number":481,"context_line":"                     \u0027and hostname %(hostname)s\u0027)"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_66a28440","line":478,"updated":"2015-01-15 16:07:15.000000000","message":"str \u003d\u003e six.text_type","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":490,"context_line":"        \"\"\""},{"line_number":491,"context_line":"        hostname \u003d self._get_real_hostname(hostname)"},{"line_number":492,"context_line":"        LOG.debug(\u0027[_FIND OVS DISK] Location %s, hostname %s\u0027"},{"line_number":493,"context_line":"                  % (location, hostname))"},{"line_number":494,"context_line":"        attempt \u003d 0"},{"line_number":495,"context_line":"        while attempt \u003c\u003d retry:"},{"line_number":496,"context_line":"            for vd in vdisklist.VDiskList.get_vdisks():"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_a6670c24","line":493,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":505,"context_line":"                                disk \u003d vdiskhybrid.VDisk(vd.guid)"},{"line_number":506,"context_line":"                                return disk"},{"line_number":507,"context_line":"            msg \u003d \u0027NO RESULT Attempt %s timeout %s max attempts %s\u0027"},{"line_number":508,"context_line":"            LOG.debug(msg % (attempt, timeout, retry))"},{"line_number":509,"context_line":"            if timeout:"},{"line_number":510,"context_line":"                time.sleep(timeout)"},{"line_number":511,"context_line":"            attempt +\u003d 1"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_c63fb8dd","line":508,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":509,"context_line":"            if timeout:"},{"line_number":510,"context_line":"                time.sleep(timeout)"},{"line_number":511,"context_line":"            attempt +\u003d 1"},{"line_number":512,"context_line":"        msg \u003d (_(\u0027No disk found for location %s\u0027) % location)"},{"line_number":513,"context_line":"        LOG.exception(msg)"},{"line_number":514,"context_line":"        raise RuntimeError(msg)"},{"line_number":515,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_86493090","line":512,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":519,"context_line":"        \"\"\""},{"line_number":520,"context_line":"        hostname \u003d self._get_real_hostname(hostname)"},{"line_number":521,"context_line":"        LOG.debug(\u0027[_FIND OVS PMACHINE] Hostname %s\u0027 % (hostname))"},{"line_number":522,"context_line":"        mapping \u003d [(pm.guid, str(sr.name))"},{"line_number":523,"context_line":"                   for pm in pmachinelist.PMachineList.get_pmachines()"},{"line_number":524,"context_line":"                   for sr in pm.storagerouters]"},{"line_number":525,"context_line":"        for item in mapping:"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_265a3c50","line":522,"updated":"2015-01-15 16:07:15.000000000","message":"str \u003d\u003e six.text_type","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":525,"context_line":"        for item in mapping:"},{"line_number":526,"context_line":"            if item[1] \u003d\u003d str(hostname):"},{"line_number":527,"context_line":"                msg \u003d \u0027Found pmachineguid %s for Hostname %s\u0027"},{"line_number":528,"context_line":"                LOG.debug(msg % (item[0], hostname))"},{"line_number":529,"context_line":"                return item[0]"},{"line_number":530,"context_line":"        msg \u003d (_(\u0027No PMachine guid found for Hostname %s\u0027) % hostname)"},{"line_number":531,"context_line":"        LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_6650c42c","line":528,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":540,"context_line":"            snaps_guid \u003d [s[\u0027guid\u0027] for s in disk.snapshots]"},{"line_number":541,"context_line":"            if str(snapshotid) in snaps_guid:"},{"line_number":542,"context_line":"                LOG.debug(\u0027[_FIND OVS DISK] Snapshot id %s Disk found %s\u0027"},{"line_number":543,"context_line":"                          % (snapshotid, disk))"},{"line_number":544,"context_line":"                return disk"},{"line_number":545,"context_line":"        msg \u003d (_(\u0027No disk found for snapshotid %s\u0027) % snapshotid)"},{"line_number":546,"context_line":"        LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_c636d801","line":543,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"31d3a43f0a09d5c0b1577a8c741d3a95bba3f874","unresolved":false,"context_lines":[{"line_number":542,"context_line":"                LOG.debug(\u0027[_FIND OVS DISK] Snapshot id %s Disk found %s\u0027"},{"line_number":543,"context_line":"                          % (snapshotid, disk))"},{"line_number":544,"context_line":"                return disk"},{"line_number":545,"context_line":"        msg \u003d (_(\u0027No disk found for snapshotid %s\u0027) % snapshotid)"},{"line_number":546,"context_line":"        LOG.exception(msg)"},{"line_number":547,"context_line":"        raise RuntimeError(msg)"}],"source_content_type":"text/x-python","patch_set":29,"id":"3a961159_e63bd4e7","line":545,"updated":"2015-01-15 16:07:15.000000000","message":"% \u003d\u003e ,","commit_id":"4c68e5f679594caae47d8366b893fbc247d222c9"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"156fc42d1e1048b3ef886100cd35046106f47afb","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"class OVSVolumeDriver(driver.VolumeDriver):"},{"line_number":61,"context_line":"    \"\"\"Open vStorage Volume Driver plugin for Cinder"},{"line_number":62,"context_line":"    \"\"\""},{"line_number":63,"context_line":"    VERSION \u003d \u00271.0.5c\u0027"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"3a961159_26121561","line":61,"updated":"2015-01-16 16:08:57.000000000","message":"Please make a pass over the whole driver looking at the formatting described here for docstrings.  (None of them follow standard formatting.)\n\none-line: https://www.python.org/dev/peps/pep-0257/#one-line-docstrings\n\nmulti-line: https://www.python.org/dev/peps/pep-0257/#multi-line-docstrings","commit_id":"99709c822ce4548d26772d63455ffee3d9d1aa02"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"3e6e3b990c8e1d4843011bd6fcedf2f5d47d3b3d","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"class OVSVolumeDriver(driver.VolumeDriver):"},{"line_number":61,"context_line":"    \"\"\"Open vStorage Volume Driver plugin for Cinder"},{"line_number":62,"context_line":"    \"\"\""},{"line_number":63,"context_line":"    VERSION \u003d \u00271.0.5c\u0027"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"3a961159_ae408c5f","line":61,"in_reply_to":"3a961159_26121561","updated":"2015-01-17 06:40:41.000000000","message":"Ok","commit_id":"99709c822ce4548d26772d63455ffee3d9d1aa02"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"156fc42d1e1048b3ef886100cd35046106f47afb","unresolved":false,"context_lines":[{"line_number":60,"context_line":"class OVSVolumeDriver(driver.VolumeDriver):"},{"line_number":61,"context_line":"    \"\"\"Open vStorage Volume Driver plugin for Cinder"},{"line_number":62,"context_line":"    \"\"\""},{"line_number":63,"context_line":"    VERSION \u003d \u00271.0.5c\u0027"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":66,"context_line":"        \"\"\"Init: args, kwargs pass through;"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a961159_66725de4","line":63,"updated":"2015-01-16 16:08:57.000000000","message":"Drivers in Cinder have generally settled on using \"x.y.z\" versions, with a few using \"x.y\" still.\n\nThis should just be changed to 1.0.5.  (or 1.0.0?)","commit_id":"99709c822ce4548d26772d63455ffee3d9d1aa02"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"3e6e3b990c8e1d4843011bd6fcedf2f5d47d3b3d","unresolved":false,"context_lines":[{"line_number":60,"context_line":"class OVSVolumeDriver(driver.VolumeDriver):"},{"line_number":61,"context_line":"    \"\"\"Open vStorage Volume Driver plugin for Cinder"},{"line_number":62,"context_line":"    \"\"\""},{"line_number":63,"context_line":"    VERSION \u003d \u00271.0.5c\u0027"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":66,"context_line":"        \"\"\"Init: args, kwargs pass through;"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a961159_8e4d909b","line":63,"in_reply_to":"3a961159_66725de4","updated":"2015-01-17 06:40:41.000000000","message":"ok","commit_id":"99709c822ce4548d26772d63455ffee3d9d1aa02"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"156fc42d1e1048b3ef886100cd35046106f47afb","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                                                             hostname)"},{"line_number":114,"context_line":"        except RuntimeError:"},{"line_number":115,"context_line":"            vdisklib.VDiskController.delete_volume(location \u003d location)"},{"line_number":116,"context_line":"            raise"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        ovs_disk.cinder_id \u003d volume.id"},{"line_number":119,"context_line":"        ovs_disk.name \u003d name"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a961159_217cbf70","line":116,"updated":"2015-01-16 16:08:57.000000000","message":"Don\u0027t raise RuntimeError from your driver.  You can use VolumeBackendAPIException or VolumeDriverException for these depending on whether the source is from the backend or the driver.","commit_id":"99709c822ce4548d26772d63455ffee3d9d1aa02"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"156fc42d1e1048b3ef886100cd35046106f47afb","unresolved":false,"context_lines":[{"line_number":283,"context_line":"        data[\u0027driver_version\u0027] \u003d self.VERSION"},{"line_number":284,"context_line":"        data[\u0027storage_protocol\u0027] \u003d \u0027OVS\u0027"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d \u0027unknown\u0027"},{"line_number":287,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d \u0027unknown\u0027"},{"line_number":288,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":289,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a961159_413aabcd","line":286,"updated":"2015-01-16 16:08:57.000000000","message":"Why are no values provided here?","commit_id":"99709c822ce4548d26772d63455ffee3d9d1aa02"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"3e6e3b990c8e1d4843011bd6fcedf2f5d47d3b3d","unresolved":false,"context_lines":[{"line_number":283,"context_line":"        data[\u0027driver_version\u0027] \u003d self.VERSION"},{"line_number":284,"context_line":"        data[\u0027storage_protocol\u0027] \u003d \u0027OVS\u0027"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        data[\u0027total_capacity_gb\u0027] \u003d \u0027unknown\u0027"},{"line_number":287,"context_line":"        data[\u0027free_capacity_gb\u0027] \u003d \u0027unknown\u0027"},{"line_number":288,"context_line":"        data[\u0027reserved_percentage\u0027] \u003d 0"},{"line_number":289,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a961159_ee7614d7","line":286,"in_reply_to":"3a961159_413aabcd","updated":"2015-01-17 06:40:41.000000000","message":"Backend cannot provide capacity info, it\u0027s been agreed to use unknown, see older comments.","commit_id":"99709c822ce4548d26772d63455ffee3d9d1aa02"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"156fc42d1e1048b3ef886100cd35046106f47afb","unresolved":false,"context_lines":[{"line_number":467,"context_line":"        LOG.debug(\u0027[_GET HOSTNAME MOUNTPOINT] Hostname %s\u0027, hostname)"},{"line_number":468,"context_line":"        if self._vp is None:"},{"line_number":469,"context_line":"            msg \u003d (_(\u0027Open vStorage libraries not found\u0027))"},{"line_number":470,"context_line":"            raise RuntimeError(msg)"},{"line_number":471,"context_line":"        storagedrivers \u003d [vsr for vsr in self._vp.storagedrivers"},{"line_number":472,"context_line":"                          if str(vsr.storagerouter.name) \u003d\u003d"},{"line_number":473,"context_line":"                          str(hostname)]"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a961159_c1e93b1b","line":470,"updated":"2015-01-16 16:08:57.000000000","message":"Ditto RuntimeError","commit_id":"99709c822ce4548d26772d63455ffee3d9d1aa02"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"3e6e3b990c8e1d4843011bd6fcedf2f5d47d3b3d","unresolved":false,"context_lines":[{"line_number":467,"context_line":"        LOG.debug(\u0027[_GET HOSTNAME MOUNTPOINT] Hostname %s\u0027, hostname)"},{"line_number":468,"context_line":"        if self._vp is None:"},{"line_number":469,"context_line":"            msg \u003d (_(\u0027Open vStorage libraries not found\u0027))"},{"line_number":470,"context_line":"            raise RuntimeError(msg)"},{"line_number":471,"context_line":"        storagedrivers \u003d [vsr for vsr in self._vp.storagedrivers"},{"line_number":472,"context_line":"                          if str(vsr.storagerouter.name) \u003d\u003d"},{"line_number":473,"context_line":"                          str(hostname)]"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a961159_2e549c20","line":470,"in_reply_to":"3a961159_c1e93b1b","updated":"2015-01-17 06:40:41.000000000","message":"Ok","commit_id":"99709c822ce4548d26772d63455ffee3d9d1aa02"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"156fc42d1e1048b3ef886100cd35046106f47afb","unresolved":false,"context_lines":[{"line_number":480,"context_line":"                     \u0027and hostname %(hostname)s\u0027)"},{"line_number":481,"context_line":"                   % {\u0027vpool_name\u0027: self._vpool_name, \u0027hostname\u0027: hostname})"},{"line_number":482,"context_line":"            LOG.exception(msg)"},{"line_number":483,"context_line":"            raise RuntimeError(msg)"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"    def _find_ovs_model_disk_by_location(self, location, hostname, retry\u003d3,"},{"line_number":486,"context_line":"                                         timeout\u003d3):"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a961159_01f0a3fb","line":483,"updated":"2015-01-16 16:08:57.000000000","message":"Ditto RuntimeError","commit_id":"99709c822ce4548d26772d63455ffee3d9d1aa02"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"3e6e3b990c8e1d4843011bd6fcedf2f5d47d3b3d","unresolved":false,"context_lines":[{"line_number":480,"context_line":"                     \u0027and hostname %(hostname)s\u0027)"},{"line_number":481,"context_line":"                   % {\u0027vpool_name\u0027: self._vpool_name, \u0027hostname\u0027: hostname})"},{"line_number":482,"context_line":"            LOG.exception(msg)"},{"line_number":483,"context_line":"            raise RuntimeError(msg)"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"    def _find_ovs_model_disk_by_location(self, location, hostname, retry\u003d3,"},{"line_number":486,"context_line":"                                         timeout\u003d3):"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a961159_6e31440a","line":483,"in_reply_to":"3a961159_01f0a3fb","updated":"2015-01-17 06:40:41.000000000","message":"Done","commit_id":"99709c822ce4548d26772d63455ffee3d9d1aa02"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"156fc42d1e1048b3ef886100cd35046106f47afb","unresolved":false,"context_lines":[{"line_number":510,"context_line":"            attempt +\u003d 1"},{"line_number":511,"context_line":"        msg \u003d (_(\u0027No disk found for location %s\u0027) % location)"},{"line_number":512,"context_line":"        LOG.exception(msg)"},{"line_number":513,"context_line":"        raise RuntimeError(msg)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    def _find_ovs_model_pmachine_guid_by_hostname(self, hostname):"},{"line_number":516,"context_line":"        \"\"\"Find OVS pmachine guid based on storagerouter name"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a961159_21f3df09","line":513,"updated":"2015-01-16 16:08:57.000000000","message":"Ditto RuntimeError","commit_id":"99709c822ce4548d26772d63455ffee3d9d1aa02"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"3e6e3b990c8e1d4843011bd6fcedf2f5d47d3b3d","unresolved":false,"context_lines":[{"line_number":510,"context_line":"            attempt +\u003d 1"},{"line_number":511,"context_line":"        msg \u003d (_(\u0027No disk found for location %s\u0027) % location)"},{"line_number":512,"context_line":"        LOG.exception(msg)"},{"line_number":513,"context_line":"        raise RuntimeError(msg)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    def _find_ovs_model_pmachine_guid_by_hostname(self, hostname):"},{"line_number":516,"context_line":"        \"\"\"Find OVS pmachine guid based on storagerouter name"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a961159_8e34b0fb","line":513,"in_reply_to":"3a961159_21f3df09","updated":"2015-01-17 06:40:41.000000000","message":"Done","commit_id":"99709c822ce4548d26772d63455ffee3d9d1aa02"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"156fc42d1e1048b3ef886100cd35046106f47afb","unresolved":false,"context_lines":[{"line_number":528,"context_line":"                return item[0]"},{"line_number":529,"context_line":"        msg \u003d (_(\u0027No PMachine guid found for Hostname %s\u0027), hostname)"},{"line_number":530,"context_line":"        LOG.exception(msg)"},{"line_number":531,"context_line":"        raise RuntimeError(msg)"},{"line_number":532,"context_line":""},{"line_number":533,"context_line":"    def _find_ovs_model_disk_by_snapshot_id(self, snapshotid):"},{"line_number":534,"context_line":"        \"\"\"Find OVS disk object based on snapshot id"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a961159_41dd4b6f","line":531,"updated":"2015-01-16 16:08:57.000000000","message":"Ditto RuntimeError","commit_id":"99709c822ce4548d26772d63455ffee3d9d1aa02"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"3e6e3b990c8e1d4843011bd6fcedf2f5d47d3b3d","unresolved":false,"context_lines":[{"line_number":528,"context_line":"                return item[0]"},{"line_number":529,"context_line":"        msg \u003d (_(\u0027No PMachine guid found for Hostname %s\u0027), hostname)"},{"line_number":530,"context_line":"        LOG.exception(msg)"},{"line_number":531,"context_line":"        raise RuntimeError(msg)"},{"line_number":532,"context_line":""},{"line_number":533,"context_line":"    def _find_ovs_model_disk_by_snapshot_id(self, snapshotid):"},{"line_number":534,"context_line":"        \"\"\"Find OVS disk object based on snapshot id"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a961159_ae37acfc","line":531,"in_reply_to":"3a961159_41dd4b6f","updated":"2015-01-17 06:40:41.000000000","message":"Done","commit_id":"99709c822ce4548d26772d63455ffee3d9d1aa02"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"156fc42d1e1048b3ef886100cd35046106f47afb","unresolved":false,"context_lines":[{"line_number":543,"context_line":"                return disk"},{"line_number":544,"context_line":"        msg \u003d (_(\u0027No disk found for snapshotid %s\u0027), snapshotid)"},{"line_number":545,"context_line":"        LOG.exception(msg)"},{"line_number":546,"context_line":"        raise RuntimeError(msg)"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a961159_81e3b332","line":546,"updated":"2015-01-16 16:08:57.000000000","message":"Ditto RuntimeError","commit_id":"99709c822ce4548d26772d63455ffee3d9d1aa02"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"3e6e3b990c8e1d4843011bd6fcedf2f5d47d3b3d","unresolved":false,"context_lines":[{"line_number":543,"context_line":"                return disk"},{"line_number":544,"context_line":"        msg \u003d (_(\u0027No disk found for snapshotid %s\u0027), snapshotid)"},{"line_number":545,"context_line":"        LOG.exception(msg)"},{"line_number":546,"context_line":"        raise RuntimeError(msg)"}],"source_content_type":"text/x-python","patch_set":34,"id":"3a961159_ce3a38e5","line":546,"in_reply_to":"3a961159_81e3b332","updated":"2015-01-17 06:40:41.000000000","message":"Done","commit_id":"99709c822ce4548d26772d63455ffee3d9d1aa02"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"2f1430984e069a564619ecfb33ee7e10eb799690","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                  str(kwargs))"},{"line_number":71,"context_line":"        self.configuration.append_config_values(OPTS)"},{"line_number":72,"context_line":"        self._vpool_name \u003d self.configuration.vpool_name"},{"line_number":73,"context_line":"        if vpoollist is not None:"},{"line_number":74,"context_line":"            self._vp \u003d vpoollist.VPoolList.get_vpool_by_name(self._vpool_name)"},{"line_number":75,"context_line":"        else:"},{"line_number":76,"context_line":"            self._vp \u003d None"}],"source_content_type":"text/x-python","patch_set":40,"id":"da86d52c_1254f71f","line":73,"updated":"2015-02-03 10:15:45.000000000","message":"Code that depends on whether the python dependencies were loaded should be moved to do_setup() rather than __init__.  (Ensures that error handling for startup is handled cleanly.)","commit_id":"9a4de1f6b435a94b426a32ce2609be13413bb221"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"7abb8d3387c45d04facf778653583320744eb9ea","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                  str(kwargs))"},{"line_number":71,"context_line":"        self.configuration.append_config_values(OPTS)"},{"line_number":72,"context_line":"        self._vpool_name \u003d self.configuration.vpool_name"},{"line_number":73,"context_line":"        if vpoollist is not None:"},{"line_number":74,"context_line":"            self._vp \u003d vpoollist.VPoolList.get_vpool_by_name(self._vpool_name)"},{"line_number":75,"context_line":"        else:"},{"line_number":76,"context_line":"            self._vp \u003d None"}],"source_content_type":"text/x-python","patch_set":40,"id":"da86d52c_4d4ece97","line":73,"in_reply_to":"da86d52c_1254f71f","updated":"2015-02-03 10:35:56.000000000","message":"__init__ comes before do_setup so the check is required.\nAlso, the error will be correctly raised by do_setup not by __init__. So no need to change this.","commit_id":"9a4de1f6b435a94b426a32ce2609be13413bb221"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"2f1430984e069a564619ecfb33ee7e10eb799690","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        location \u003d volume.provider_location"},{"line_number":128,"context_line":"        if location is not None:"},{"line_number":129,"context_line":"            LOG.debug(\u0027DO_DELETE_VOLUME %s\u0027, location)"},{"line_number":130,"context_line":"            vdisklib.VDiskController.delete_volume(location \u003d location)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def copy_image_to_volume(self, context, volume, image_service, image_id):"},{"line_number":133,"context_line":"        \"\"\"Copy image to volume"}],"source_content_type":"text/x-python","patch_set":40,"id":"da86d52c_4d032e0d","line":130,"updated":"2015-02-03 10:15:45.000000000","message":"Should log a warning in the case where location is None.","commit_id":"9a4de1f6b435a94b426a32ce2609be13413bb221"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"7abb8d3387c45d04facf778653583320744eb9ea","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        location \u003d volume.provider_location"},{"line_number":128,"context_line":"        if location is not None:"},{"line_number":129,"context_line":"            LOG.debug(\u0027DO_DELETE_VOLUME %s\u0027, location)"},{"line_number":130,"context_line":"            vdisklib.VDiskController.delete_volume(location \u003d location)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def copy_image_to_volume(self, context, volume, image_service, image_id):"},{"line_number":133,"context_line":"        \"\"\"Copy image to volume"}],"source_content_type":"text/x-python","patch_set":40,"id":"da86d52c_cd59de5c","line":130,"in_reply_to":"da86d52c_4d032e0d","updated":"2015-02-03 10:35:56.000000000","message":"This check is to make sure we can delete a partially created volume, whose location is None. So no need to add an extra warning,","commit_id":"9a4de1f6b435a94b426a32ce2609be13413bb221"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"865783ac5dcae9135b60ada2c301d1ab02645728","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        name \u003d volume.display_name"},{"line_number":142,"context_line":"        if not name:"},{"line_number":143,"context_line":"            name \u003d volume.name"},{"line_number":144,"context_line":"            volume.display_name \u003d volume.name"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        # Downloading from an existing image"},{"line_number":147,"context_line":"        destination_path \u003d volume.provider_location"}],"source_content_type":"text/x-python","patch_set":40,"id":"da86d52c_e7479a49","line":144,"updated":"2015-02-03 12:53:22.000000000","message":"why do we need to set display_name if it\u0027s empty?","commit_id":"9a4de1f6b435a94b426a32ce2609be13413bb221"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"f157f20e9f6f393ab1cef714f78a57a4d9ce1596","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        name \u003d volume.display_name"},{"line_number":142,"context_line":"        if not name:"},{"line_number":143,"context_line":"            name \u003d volume.name"},{"line_number":144,"context_line":"            volume.display_name \u003d volume.name"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        # Downloading from an existing image"},{"line_number":147,"context_line":"        destination_path \u003d volume.provider_location"}],"source_content_type":"text/x-python","patch_set":40,"id":"da86d52c_f6782d91","line":144,"in_reply_to":"da86d52c_0714ae9e","updated":"2015-02-03 13:38:56.000000000","message":"ovs_disk.name is set to name and not to volume.display_name. Are we using volume.display_name somewhere?","commit_id":"9a4de1f6b435a94b426a32ce2609be13413bb221"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"5ddf2dc2ee99d190402c09fb8815c3678c99484c","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        name \u003d volume.display_name"},{"line_number":142,"context_line":"        if not name:"},{"line_number":143,"context_line":"            name \u003d volume.name"},{"line_number":144,"context_line":"            volume.display_name \u003d volume.name"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        # Downloading from an existing image"},{"line_number":147,"context_line":"        destination_path \u003d volume.provider_location"}],"source_content_type":"text/x-python","patch_set":40,"id":"da86d52c_0714ae9e","line":144,"in_reply_to":"da86d52c_e7479a49","updated":"2015-02-03 13:00:58.000000000","message":"to correctly display it in our gui in case it\u0027s not set by cinder create  --display_name","commit_id":"9a4de1f6b435a94b426a32ce2609be13413bb221"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"5bedcb47d53e1f96dc83933745b11c4a436ab9bb","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        name \u003d volume.display_name"},{"line_number":142,"context_line":"        if not name:"},{"line_number":143,"context_line":"            name \u003d volume.name"},{"line_number":144,"context_line":"            volume.display_name \u003d volume.name"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        # Downloading from an existing image"},{"line_number":147,"context_line":"        destination_path \u003d volume.provider_location"}],"source_content_type":"text/x-python","patch_set":40,"id":"da86d52c_960451c1","line":144,"in_reply_to":"da86d52c_f6782d91","updated":"2015-02-03 13:44:07.000000000","message":"we use it outside the volume driver, in our own gui.","commit_id":"9a4de1f6b435a94b426a32ce2609be13413bb221"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"865783ac5dcae9135b60ada2c301d1ab02645728","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                                     run_as_root \u003d False)"},{"line_number":161,"context_line":"            LOG.debug(\u0027CP_IMG_TO_VOL Resizing volume to size %s\u0027,"},{"line_number":162,"context_line":"                      volume[\u0027size\u0027])"},{"line_number":163,"context_line":"            self.extend_volume(volume \u003d volume, size_gb \u003d volume[\u0027size\u0027])"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"            ovs_disk \u003d self._find_ovs_model_disk_by_location("},{"line_number":166,"context_line":"                volume.provider_location, str(volume.host))"}],"source_content_type":"text/x-python","patch_set":40,"id":"da86d52c_c7bff6f9","line":163,"updated":"2015-02-03 12:53:22.000000000","message":"Do we need to check if the current size is equal to volume size before calling extend?","commit_id":"9a4de1f6b435a94b426a32ce2609be13413bb221"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"5ddf2dc2ee99d190402c09fb8815c3678c99484c","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                                     run_as_root \u003d False)"},{"line_number":161,"context_line":"            LOG.debug(\u0027CP_IMG_TO_VOL Resizing volume to size %s\u0027,"},{"line_number":162,"context_line":"                      volume[\u0027size\u0027])"},{"line_number":163,"context_line":"            self.extend_volume(volume \u003d volume, size_gb \u003d volume[\u0027size\u0027])"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"            ovs_disk \u003d self._find_ovs_model_disk_by_location("},{"line_number":166,"context_line":"                volume.provider_location, str(volume.host))"}],"source_content_type":"text/x-python","patch_set":40,"id":"da86d52c_876ede2d","line":163,"in_reply_to":"da86d52c_c7bff6f9","updated":"2015-02-03 13:00:58.000000000","message":"A check is performed in backend just before calling.","commit_id":"9a4de1f6b435a94b426a32ce2609be13413bb221"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"2f1430984e069a564619ecfb33ee7e10eb799690","unresolved":false,"context_lines":[{"line_number":393,"context_line":"        \"\"\"Extend volume to new size size_gb\"\"\""},{"line_number":394,"context_line":"        LOG.debug(\u0027EXTEND_VOL Size %s\u0027, size_gb)"},{"line_number":395,"context_line":"        location \u003d volume.provider_location"},{"line_number":396,"context_line":"        if location is not None:"},{"line_number":397,"context_line":"            LOG.debug(\u0027DO_EXTEND_VOLUME %s\u0027, location)"},{"line_number":398,"context_line":"            vdisklib.VDiskController.extend_volume(location \u003d location,"},{"line_number":399,"context_line":"                                                   size \u003d size_gb)"}],"source_content_type":"text/x-python","patch_set":40,"id":"da86d52c_ad966a92","line":396,"updated":"2015-02-03 10:15:45.000000000","message":"Should throw an error if location is None, since the volume is not extended.  WIth this code, that case would result in Cinder and the storage backend being out of sync.","commit_id":"9a4de1f6b435a94b426a32ce2609be13413bb221"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"7abb8d3387c45d04facf778653583320744eb9ea","unresolved":false,"context_lines":[{"line_number":393,"context_line":"        \"\"\"Extend volume to new size size_gb\"\"\""},{"line_number":394,"context_line":"        LOG.debug(\u0027EXTEND_VOL Size %s\u0027, size_gb)"},{"line_number":395,"context_line":"        location \u003d volume.provider_location"},{"line_number":396,"context_line":"        if location is not None:"},{"line_number":397,"context_line":"            LOG.debug(\u0027DO_EXTEND_VOLUME %s\u0027, location)"},{"line_number":398,"context_line":"            vdisklib.VDiskController.extend_volume(location \u003d location,"},{"line_number":399,"context_line":"                                                   size \u003d size_gb)"}],"source_content_type":"text/x-python","patch_set":40,"id":"da86d52c_ed586258","line":396,"in_reply_to":"da86d52c_ad966a92","updated":"2015-02-03 10:35:56.000000000","message":"Error should be thrown by cinder before calling this driver, this it to make sure that backend doesn\u0027t receive None as argument to location.","commit_id":"9a4de1f6b435a94b426a32ce2609be13413bb221"}],"cinder/volume/drivers/ovs_volume_driver.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7689c258bfc205d14c5275c8a262c785772517a1","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"# Cinder"},{"line_number":33,"context_line":"from oslo.config import cfg"},{"line_number":34,"context_line":"from cinder.openstack.common import log as logging"},{"line_number":35,"context_line":"from cinder.volume import driver"},{"line_number":36,"context_line":"from cinder.volume import api"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_0a7618d7","line":33,"updated":"2014-10-26 04:23:47.000000000","message":"oslo.config is 3rd party library.  Shouldn\u0027t be grouped together with cinder imports.","commit_id":"d34af64820d3b6243f44dbb12cec33b9c01c3c73"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"928f0523bb449fc41fe63a03b86ccef793134746","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"# Cinder"},{"line_number":33,"context_line":"from oslo.config import cfg"},{"line_number":34,"context_line":"from cinder.openstack.common import log as logging"},{"line_number":35,"context_line":"from cinder.volume import driver"},{"line_number":36,"context_line":"from cinder.volume import api"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_e573c77d","line":33,"in_reply_to":"9aa7fdbe_0a7618d7","updated":"2014-10-27 08:20:32.000000000","message":"Will be changed with next patch set.","commit_id":"d34af64820d3b6243f44dbb12cec33b9c01c3c73"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7689c258bfc205d14c5275c8a262c785772517a1","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    Required configuration:"},{"line_number":84,"context_line":"        cinder type-create \u003cTYPENAME\u003e # e.g. Open vStorage"},{"line_number":85,"context_line":"        cinder type-key \u003cTYPENAME\u003e set volume_backend_name\u003d\u003cVPOOLNAME\u003e"},{"line_number":86,"context_line":"    \"\"\""},{"line_number":87,"context_line":"    VERSION \u003d \u00271.0.4\u0027"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_4a7ca0b5","line":85,"updated":"2014-10-26 04:23:47.000000000","message":"The configuration information should be in the block storage manuals, not in the docstring here.","commit_id":"d34af64820d3b6243f44dbb12cec33b9c01c3c73"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"928f0523bb449fc41fe63a03b86ccef793134746","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    Required configuration:"},{"line_number":84,"context_line":"        cinder type-create \u003cTYPENAME\u003e # e.g. Open vStorage"},{"line_number":85,"context_line":"        cinder type-key \u003cTYPENAME\u003e set volume_backend_name\u003d\u003cVPOOLNAME\u003e"},{"line_number":86,"context_line":"    \"\"\""},{"line_number":87,"context_line":"    VERSION \u003d \u00271.0.4\u0027"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_456733b7","line":85,"in_reply_to":"9aa7fdbe_4a7ca0b5","updated":"2014-10-27 08:20:32.000000000","message":"This is a reminder. Once work is complete this will be removed and included in the official docs.","commit_id":"d34af64820d3b6243f44dbb12cec33b9c01c3c73"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"332f3935036cdc5ce249b85c689b99e11ebca789","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import time"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"# External libs: OVS"},{"line_number":25,"context_line":"try:"},{"line_number":26,"context_line":"    from ovs.dal.hybrids.vdisk import VDisk"},{"line_number":27,"context_line":"    from ovs.dal.lists.pmachinelist import PMachineList"},{"line_number":28,"context_line":"    from ovs.dal.lists.vdisklist import VDiskList"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a8c0949_a5ca429f","line":25,"updated":"2014-10-30 14:18:39.000000000","message":"You\u0027ll need to check for whether these were imported correctly in the driver init code.  And throw reasonable errors if they aren\u0027t installed.  The rbd driver provides a good example for how to do this.\n\nSee imports:\nhttp://git.openstack.org/cgit/openstack/cinder/tree/cinder/volume/drivers/rbd.py?h\u003dstable/juno\u0026id\u003de0dae50dc#n36\n\nAnd the check_for_setup_error:\nhttp://git.openstack.org/cgit/openstack/cinder/tree/cinder/volume/drivers/rbd.py?h\u003dstable/juno\u0026id\u003de0dae50dc#n270","commit_id":"5c1001b337d62cacf926f66f50c65a97cfd1039e"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"4d5b9865bf743b40388f09072f6dbe148bf22460","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import time"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"# External libs: OVS"},{"line_number":25,"context_line":"try:"},{"line_number":26,"context_line":"    from ovs.dal.hybrids.vdisk import VDisk"},{"line_number":27,"context_line":"    from ovs.dal.lists.pmachinelist import PMachineList"},{"line_number":28,"context_line":"    from ovs.dal.lists.vdisklist import VDiskList"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a8c0949_05923657","line":25,"in_reply_to":"7a8c0949_a5ca429f","updated":"2014-10-30 14:25:34.000000000","message":"Thanks Eric, indeed it\u0027s best to give a reasonable error than to assume it\u0027s being CI tested.","commit_id":"5c1001b337d62cacf926f66f50c65a97cfd1039e"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"3261a0d212261fe88a0d4cb78e6aa3ae39b06c8f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 CloudFounders NV"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":12,"id":"3a961159_e5aa6e6f","line":1,"updated":"2014-12-09 00:14:09.000000000","message":"Lets call this ovs.py instead of ovs_volume_driver.py. I know it\u0027s a volume driver. it\u0027s in the volume/drivers directory.","commit_id":"bc28151b4b394853000904cc86f9ab5e91366708"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"04a6afafda0545d8494b1ad5fab6daa058a421d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 CloudFounders NV"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":12,"id":"3a961159_c2bb9d0c","line":1,"in_reply_to":"3a961159_e5aa6e6f","updated":"2014-12-09 07:52:06.000000000","message":"On second thought, it would make more sense to call it openvstorage, to avoid confusion with ovs from openvswitch.","commit_id":"bc28151b4b394853000904cc86f9ab5e91366708"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"3261a0d212261fe88a0d4cb78e6aa3ae39b06c8f","unresolved":false,"context_lines":[{"line_number":416,"context_line":"            vdisk.name \u003d devicename"},{"line_number":417,"context_line":"            vdisk.save()"},{"line_number":418,"context_line":"        except Exception as ex:"},{"line_number":419,"context_line":"            LOG.error(\u0027CLONE FROM SNAP: Internal error %s \u0027 % str(ex))"},{"line_number":420,"context_line":"            self.delete_volume(volume)"},{"line_number":421,"context_line":"            self.delete_snapshot(snapshot)"},{"line_number":422,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":12,"id":"3a961159_c5581259","line":419,"updated":"2014-12-09 00:14:09.000000000","message":"We leave these around for the user to know something went wrong. The manager layer will take care of this accordingly, so the driver should not be doing this.","commit_id":"bc28151b4b394853000904cc86f9ab5e91366708"},{"author":{"_account_id":13101,"name":"Eduard Biceri-Matei","email":"cubusbacau@yahoo.com","username":"eduardbicerimatei"},"change_message_id":"04a6afafda0545d8494b1ad5fab6daa058a421d6","unresolved":false,"context_lines":[{"line_number":416,"context_line":"            vdisk.name \u003d devicename"},{"line_number":417,"context_line":"            vdisk.save()"},{"line_number":418,"context_line":"        except Exception as ex:"},{"line_number":419,"context_line":"            LOG.error(\u0027CLONE FROM SNAP: Internal error %s \u0027 % str(ex))"},{"line_number":420,"context_line":"            self.delete_volume(volume)"},{"line_number":421,"context_line":"            self.delete_snapshot(snapshot)"},{"line_number":422,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":12,"id":"3a961159_2242a110","line":419,"in_reply_to":"3a961159_c5581259","updated":"2014-12-09 07:52:06.000000000","message":"Ok, so i\u0027ll remove the delete_volume and delete_snapshot parts.","commit_id":"bc28151b4b394853000904cc86f9ab5e91366708"}]}
