)]}'
{"nova/virt/libvirt/driver.py":[{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":7774,"context_line":"    def is_supported_fs_format(self, fs_type):"},{"line_number":7775,"context_line":"        return fs_type in [disk.FS_FORMAT_EXT2, disk.FS_FORMAT_EXT3,"},{"line_number":7776,"context_line":"                           disk.FS_FORMAT_EXT4, disk.FS_FORMAT_XFS]"},{"line_number":7777,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_1118b674","line":7777,"updated":"2016-05-04 14:53:58.000000000","message":"nit unnecessary change","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"}],"nova/virt/libvirt/host.py":[{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ff2e5812c4109a76149dfd0fdaf55f4043baef33","unresolved":false,"context_lines":[{"line_number":1025,"context_line":""},{"line_number":1026,"context_line":"    def get_volume_info(self, vol):"},{"line_number":1027,"context_line":"        \"\"\"Get storage volume info."},{"line_number":1028,"context_line":"        \"\"\""},{"line_number":1029,"context_line":"        try:"},{"line_number":1030,"context_line":"            return vol.info()"},{"line_number":1031,"context_line":"        except libvirt.libvirtError as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_61c96125","line":1028,"updated":"2016-05-04 13:28:49.000000000","message":"nit when there\u0027s a single line, closing \"\"\" can be on the same line","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"105bb7f48eb8067f37df68ef5393e4acec073788","unresolved":false,"context_lines":[{"line_number":1025,"context_line":""},{"line_number":1026,"context_line":"    def get_volume_info(self, vol):"},{"line_number":1027,"context_line":"        \"\"\"Get storage volume info."},{"line_number":1028,"context_line":"        \"\"\""},{"line_number":1029,"context_line":"        try:"},{"line_number":1030,"context_line":"            return vol.info()"},{"line_number":1031,"context_line":"        except libvirt.libvirtError as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_d240010a","line":1028,"in_reply_to":"1a122d0e_61c96125","updated":"2016-05-04 14:09:16.000000000","message":"Done","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ff2e5812c4109a76149dfd0fdaf55f4043baef33","unresolved":false,"context_lines":[{"line_number":1029,"context_line":"        try:"},{"line_number":1030,"context_line":"            return vol.info()"},{"line_number":1031,"context_line":"        except libvirt.libvirtError as e:"},{"line_number":1032,"context_line":"            raise exception.NovaException(str(e))"},{"line_number":1033,"context_line":""},{"line_number":1034,"context_line":"    def get_storage_volume_by_name(self, vol_name, pool):"},{"line_number":1035,"context_line":"        \"\"\"Get storage volume by name."}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_81ed9d90","line":1032,"updated":"2016-05-04 13:28:49.000000000","message":"pretty sure there\u0027s a better way to do this, have a google on causal exceptions and python2","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"105bb7f48eb8067f37df68ef5393e4acec073788","unresolved":false,"context_lines":[{"line_number":1029,"context_line":"        try:"},{"line_number":1030,"context_line":"            return vol.info()"},{"line_number":1031,"context_line":"        except libvirt.libvirtError as e:"},{"line_number":1032,"context_line":"            raise exception.NovaException(str(e))"},{"line_number":1033,"context_line":""},{"line_number":1034,"context_line":"    def get_storage_volume_by_name(self, vol_name, pool):"},{"line_number":1035,"context_line":"        \"\"\"Get storage volume by name."}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_d2fda16f","line":1032,"in_reply_to":"1a122d0e_81ed9d90","updated":"2016-05-04 14:09:16.000000000","message":"Done","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ff2e5812c4109a76149dfd0fdaf55f4043baef33","unresolved":false,"context_lines":[{"line_number":1054,"context_line":"        try:"},{"line_number":1055,"context_line":"            pool \u003d self.get_storage_pool_by_name(pool_name)"},{"line_number":1056,"context_line":"            LOG.debug(\"Libvirt storage pool: %s, already present\" %"},{"line_number":1057,"context_line":"                      pool_name)"},{"line_number":1058,"context_line":"            return pool"},{"line_number":1059,"context_line":"        except exception.NotFound:"},{"line_number":1060,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_218e49d0","line":1057,"updated":"2016-05-04 13:28:49.000000000","message":"if we\u0027re checking, it doesn\u0027t seem worth even a debug when it exists?","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"105bb7f48eb8067f37df68ef5393e4acec073788","unresolved":false,"context_lines":[{"line_number":1054,"context_line":"        try:"},{"line_number":1055,"context_line":"            pool \u003d self.get_storage_pool_by_name(pool_name)"},{"line_number":1056,"context_line":"            LOG.debug(\"Libvirt storage pool: %s, already present\" %"},{"line_number":1057,"context_line":"                      pool_name)"},{"line_number":1058,"context_line":"            return pool"},{"line_number":1059,"context_line":"        except exception.NotFound:"},{"line_number":1060,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_929a09c4","line":1057,"in_reply_to":"1a122d0e_218e49d0","updated":"2016-05-04 14:09:16.000000000","message":"Done","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1029,"context_line":"            return pool.storageVolLookupByName(vol_name)"},{"line_number":1030,"context_line":"        except libvirt.libvirtError:"},{"line_number":1031,"context_line":"            raise exception.NotFound("},{"line_number":1032,"context_line":"                _(\u0027Libvirt storage volume: %s, not present in pool: %s\u0027) %"},{"line_number":1033,"context_line":"                (vol_name, pool.name()))"},{"line_number":1034,"context_line":""},{"line_number":1035,"context_line":"    def get_storage_pool_by_name(self, pool_name):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_31905295","line":1032,"range":{"start_line":1032,"start_character":41,"end_line":1032,"end_character":46},"updated":"2016-05-04 14:53:58.000000000","message":"nit usually I\u0027d do this as \"Libvirt storage volume \u0027%s\u0027 not present in pool: %s\"\n\ncomma in the middle disconnects the subject from the clause","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"277b47bef31fb97ecc189fe7b9067cbf32a4b80e","unresolved":false,"context_lines":[{"line_number":1029,"context_line":"            return pool.storageVolLookupByName(vol_name)"},{"line_number":1030,"context_line":"        except libvirt.libvirtError:"},{"line_number":1031,"context_line":"            raise exception.NotFound("},{"line_number":1032,"context_line":"                _(\u0027Libvirt storage volume: %s, not present in pool: %s\u0027) %"},{"line_number":1033,"context_line":"                (vol_name, pool.name()))"},{"line_number":1034,"context_line":""},{"line_number":1035,"context_line":"    def get_storage_pool_by_name(self, pool_name):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_f767eae7","line":1032,"range":{"start_line":1032,"start_character":41,"end_line":1032,"end_character":46},"in_reply_to":"1a122d0e_31905295","updated":"2016-05-04 15:04:46.000000000","message":"Done","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1034,"context_line":""},{"line_number":1035,"context_line":"    def get_storage_pool_by_name(self, pool_name):"},{"line_number":1036,"context_line":"        \"\"\"Get storage pool by name."},{"line_number":1037,"context_line":"        \"\"\""},{"line_number":1038,"context_line":"        try:"},{"line_number":1039,"context_line":"            return self.get_connection().storagePoolLookupByName(pool_name)"},{"line_number":1040,"context_line":"        except libvirt.libvirtError:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_b1f2a204","line":1037,"range":{"start_line":1037,"start_character":8,"end_line":1037,"end_character":11},"updated":"2016-05-04 14:53:58.000000000","message":"nit","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"277b47bef31fb97ecc189fe7b9067cbf32a4b80e","unresolved":false,"context_lines":[{"line_number":1034,"context_line":""},{"line_number":1035,"context_line":"    def get_storage_pool_by_name(self, pool_name):"},{"line_number":1036,"context_line":"        \"\"\"Get storage pool by name."},{"line_number":1037,"context_line":"        \"\"\""},{"line_number":1038,"context_line":"        try:"},{"line_number":1039,"context_line":"            return self.get_connection().storagePoolLookupByName(pool_name)"},{"line_number":1040,"context_line":"        except libvirt.libvirtError:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_b7a45208","line":1037,"range":{"start_line":1037,"start_character":8,"end_line":1037,"end_character":11},"in_reply_to":"1a122d0e_b1f2a204","updated":"2016-05-04 15:04:46.000000000","message":"Done","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1051,"context_line":"        try:"},{"line_number":1052,"context_line":"            return self.get_connection().storagePoolDefineXML(xml, 0)"},{"line_number":1053,"context_line":"        except libvirt.libvirtError as e:"},{"line_number":1054,"context_line":"            LOG.debug(\"Libvirt error: %s\" % e)"},{"line_number":1055,"context_line":"            raise exception.NovaException("},{"line_number":1056,"context_line":"                _(\"Failed to define storage pool: %s\") % pool_name)"},{"line_number":1057,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_f171ba78","line":1054,"updated":"2016-05-04 14:53:58.000000000","message":"try LOG.exception","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"277b47bef31fb97ecc189fe7b9067cbf32a4b80e","unresolved":false,"context_lines":[{"line_number":1051,"context_line":"        try:"},{"line_number":1052,"context_line":"            return self.get_connection().storagePoolDefineXML(xml, 0)"},{"line_number":1053,"context_line":"        except libvirt.libvirtError as e:"},{"line_number":1054,"context_line":"            LOG.debug(\"Libvirt error: %s\" % e)"},{"line_number":1055,"context_line":"            raise exception.NovaException("},{"line_number":1056,"context_line":"                _(\"Failed to define storage pool: %s\") % pool_name)"},{"line_number":1057,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_97431613","line":1054,"in_reply_to":"1a122d0e_f171ba78","updated":"2016-05-04 15:04:46.000000000","message":"Done","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1057,"context_line":""},{"line_number":1058,"context_line":"    def create_storage_pool(self, pool_name, pool_xml, build_pool\u003dFalse):"},{"line_number":1059,"context_line":"        \"\"\"Create a libvirt directory storage pool."},{"line_number":1060,"context_line":"        \"\"\""},{"line_number":1061,"context_line":""},{"line_number":1062,"context_line":"        try:"},{"line_number":1063,"context_line":"            pool \u003d self.check_storage_pool_exists(pool_name)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_316cd29b","line":1060,"range":{"start_line":1060,"start_character":8,"end_line":1060,"end_character":11},"updated":"2016-05-04 14:53:58.000000000","message":"nit","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"277b47bef31fb97ecc189fe7b9067cbf32a4b80e","unresolved":false,"context_lines":[{"line_number":1057,"context_line":""},{"line_number":1058,"context_line":"    def create_storage_pool(self, pool_name, pool_xml, build_pool\u003dFalse):"},{"line_number":1059,"context_line":"        \"\"\"Create a libvirt directory storage pool."},{"line_number":1060,"context_line":"        \"\"\""},{"line_number":1061,"context_line":""},{"line_number":1062,"context_line":"        try:"},{"line_number":1063,"context_line":"            pool \u003d self.check_storage_pool_exists(pool_name)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_97a7960a","line":1060,"range":{"start_line":1060,"start_character":8,"end_line":1060,"end_character":11},"in_reply_to":"1a122d0e_316cd29b","updated":"2016-05-04 15:04:46.000000000","message":"Done","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1061,"context_line":""},{"line_number":1062,"context_line":"        try:"},{"line_number":1063,"context_line":"            pool \u003d self.check_storage_pool_exists(pool_name)"},{"line_number":1064,"context_line":"            if pool is None:"},{"line_number":1065,"context_line":"                pool \u003d self.define_storage_pool(pool_name, pool_xml)"},{"line_number":1066,"context_line":"            if pool.isActive():"},{"line_number":1067,"context_line":"                return pool"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_91ade69d","line":1064,"updated":"2016-05-04 14:53:58.000000000","message":"better:\n\n  if not pool:","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"277b47bef31fb97ecc189fe7b9067cbf32a4b80e","unresolved":false,"context_lines":[{"line_number":1061,"context_line":""},{"line_number":1062,"context_line":"        try:"},{"line_number":1063,"context_line":"            pool \u003d self.check_storage_pool_exists(pool_name)"},{"line_number":1064,"context_line":"            if pool is None:"},{"line_number":1065,"context_line":"                pool \u003d self.define_storage_pool(pool_name, pool_xml)"},{"line_number":1066,"context_line":"            if pool.isActive():"},{"line_number":1067,"context_line":"                return pool"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_77a0faa5","line":1064,"in_reply_to":"1a122d0e_91ade69d","updated":"2016-05-04 15:04:46.000000000","message":"Done","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1070,"context_line":"                pool.build()"},{"line_number":1071,"context_line":"            pool.create()"},{"line_number":1072,"context_line":"            return pool"},{"line_number":1073,"context_line":""},{"line_number":1074,"context_line":"        except Exception as e:"},{"line_number":1075,"context_line":"            LOG.debug(\"Failed to create storage pool, exception: %s\" % e)"},{"line_number":1076,"context_line":"            raise exception.NovaException("}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_51d50e19","line":1073,"updated":"2016-05-04 14:53:58.000000000","message":"nit blank line","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1072,"context_line":"            return pool"},{"line_number":1073,"context_line":""},{"line_number":1074,"context_line":"        except Exception as e:"},{"line_number":1075,"context_line":"            LOG.debug(\"Failed to create storage pool, exception: %s\" % e)"},{"line_number":1076,"context_line":"            raise exception.NovaException("},{"line_number":1077,"context_line":"                _(\"Failed to create storage pool: %s\") % pool_name)"},{"line_number":1078,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_f1e6da14","line":1075,"updated":"2016-05-04 14:53:58.000000000","message":"as above","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"}],"nova/virt/libvirt/imagebackend.py":[{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ff2e5812c4109a76149dfd0fdaf55f4043baef33","unresolved":false,"context_lines":[{"line_number":1641,"context_line":"        LOG.debug(\u0027Capacity: \u0027 + str(info[1]))"},{"line_number":1642,"context_line":"        LOG.debug(\u0027Allocation: \u0027 + str(info[2]))"},{"line_number":1643,"context_line":"        LOG.debug(\u0027Available: \u0027 + str(info[3]))"},{"line_number":1644,"context_line":"        LOG.debug(self._pool.XMLDesc(0))"},{"line_number":1645,"context_line":"        self.refresh_volumes()"},{"line_number":1646,"context_line":"        for volume in self._vols.itervalues():"},{"line_number":1647,"context_line":"            volume.vol_info()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_81047dc6","line":1644,"updated":"2016-05-04 13:28:49.000000000","message":"This will be removed before merge, right?","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"105bb7f48eb8067f37df68ef5393e4acec073788","unresolved":false,"context_lines":[{"line_number":1641,"context_line":"        LOG.debug(\u0027Capacity: \u0027 + str(info[1]))"},{"line_number":1642,"context_line":"        LOG.debug(\u0027Allocation: \u0027 + str(info[2]))"},{"line_number":1643,"context_line":"        LOG.debug(\u0027Available: \u0027 + str(info[3]))"},{"line_number":1644,"context_line":"        LOG.debug(self._pool.XMLDesc(0))"},{"line_number":1645,"context_line":"        self.refresh_volumes()"},{"line_number":1646,"context_line":"        for volume in self._vols.itervalues():"},{"line_number":1647,"context_line":"            volume.vol_info()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_97e83b18","line":1644,"in_reply_to":"1a122d0e_81047dc6","updated":"2016-05-04 14:09:16.000000000","message":"Done","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ff2e5812c4109a76149dfd0fdaf55f4043baef33","unresolved":false,"context_lines":[{"line_number":1650,"context_line":"        self._pool \u003d self.host.get_storage_pool_by_name(self.name)"},{"line_number":1651,"context_line":"        return self._pool"},{"line_number":1652,"context_line":""},{"line_number":1653,"context_line":"class DirStoragePool(StoragePool):"},{"line_number":1654,"context_line":""},{"line_number":1655,"context_line":"    def __init__(self, name, pool_path\u003dNone, build\u003dTrue):"},{"line_number":1656,"context_line":"        super(DirStoragePool, self).__init__(name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_e11a9117","line":1653,"updated":"2016-05-04 13:28:49.000000000","message":"class comments please","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"105bb7f48eb8067f37df68ef5393e4acec073788","unresolved":false,"context_lines":[{"line_number":1650,"context_line":"        self._pool \u003d self.host.get_storage_pool_by_name(self.name)"},{"line_number":1651,"context_line":"        return self._pool"},{"line_number":1652,"context_line":""},{"line_number":1653,"context_line":"class DirStoragePool(StoragePool):"},{"line_number":1654,"context_line":""},{"line_number":1655,"context_line":"    def __init__(self, name, pool_path\u003dNone, build\u003dTrue):"},{"line_number":1656,"context_line":"        super(DirStoragePool, self).__init__(name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_d7f2b305","line":1653,"in_reply_to":"1a122d0e_e11a9117","updated":"2016-05-04 14:09:16.000000000","message":"Done","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ff2e5812c4109a76149dfd0fdaf55f4043baef33","unresolved":false,"context_lines":[{"line_number":1746,"context_line":""},{"line_number":1747,"context_line":"class LvmStoragePool(StoragePool):"},{"line_number":1748,"context_line":""},{"line_number":1749,"context_line":"    def __init__(self, name):"},{"line_number":1750,"context_line":"        super(LvmStoragePool, self).__init__(name)"},{"line_number":1751,"context_line":""},{"line_number":1752,"context_line":"    def initialize(self):"},{"line_number":1753,"context_line":"        pass"},{"line_number":1754,"context_line":""},{"line_number":1755,"context_line":""},{"line_number":1756,"context_line":"class RbdStoragePool(StoragePool):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_a18539d0","line":1753,"range":{"start_line":1749,"start_character":0,"end_line":1753,"end_character":11},"updated":"2016-05-04 13:28:49.000000000","message":"why not put this on StoragePool:\n\n  def initialize(self):\n    raise exc.NotYetImplementedError()\n\nand simply have:\n\n  class LvmStoragePool(StoragePool):\n    pass","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"105bb7f48eb8067f37df68ef5393e4acec073788","unresolved":false,"context_lines":[{"line_number":1746,"context_line":""},{"line_number":1747,"context_line":"class LvmStoragePool(StoragePool):"},{"line_number":1748,"context_line":""},{"line_number":1749,"context_line":"    def __init__(self, name):"},{"line_number":1750,"context_line":"        super(LvmStoragePool, self).__init__(name)"},{"line_number":1751,"context_line":""},{"line_number":1752,"context_line":"    def initialize(self):"},{"line_number":1753,"context_line":"        pass"},{"line_number":1754,"context_line":""},{"line_number":1755,"context_line":""},{"line_number":1756,"context_line":"class RbdStoragePool(StoragePool):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_17e70b13","line":1753,"range":{"start_line":1749,"start_character":0,"end_line":1753,"end_character":11},"in_reply_to":"1a122d0e_a18539d0","updated":"2016-05-04 14:09:16.000000000","message":"Done","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ff2e5812c4109a76149dfd0fdaf55f4043baef33","unresolved":false,"context_lines":[{"line_number":1753,"context_line":"        pass"},{"line_number":1754,"context_line":""},{"line_number":1755,"context_line":""},{"line_number":1756,"context_line":"class RbdStoragePool(StoragePool):"},{"line_number":1757,"context_line":""},{"line_number":1758,"context_line":"    def __init__(self, name):"},{"line_number":1759,"context_line":"        super(RbdStoragePool, self).__init__(name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_214929b8","line":1756,"updated":"2016-05-04 13:28:49.000000000","message":"also do we really need to list all of these now? Can we just add them as we implement them?","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"105bb7f48eb8067f37df68ef5393e4acec073788","unresolved":false,"context_lines":[{"line_number":1753,"context_line":"        pass"},{"line_number":1754,"context_line":""},{"line_number":1755,"context_line":""},{"line_number":1756,"context_line":"class RbdStoragePool(StoragePool):"},{"line_number":1757,"context_line":""},{"line_number":1758,"context_line":"    def __init__(self, name):"},{"line_number":1759,"context_line":"        super(RbdStoragePool, self).__init__(name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_f776cf3d","line":1756,"in_reply_to":"1a122d0e_214929b8","updated":"2016-05-04 14:09:16.000000000","message":"I like them as place holders but will remove if you feel strongly about this?","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ff2e5812c4109a76149dfd0fdaf55f4043baef33","unresolved":false,"context_lines":[{"line_number":1814,"context_line":"        LOG.debug(\u0027Type: \u0027 + str(info[0]))"},{"line_number":1815,"context_line":"        LOG.debug(\u0027Capacity: \u0027 + str(info[1]))"},{"line_number":1816,"context_line":"        LOG.debug(\u0027Allocation: \u0027 + str(info[2]))"},{"line_number":1817,"context_line":"        LOG.debug(self._vol.XMLDesc(0))"},{"line_number":1818,"context_line":"        return info"},{"line_number":1819,"context_line":""},{"line_number":1820,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_419f055f","line":1817,"updated":"2016-05-04 13:28:49.000000000","message":"ditto","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"105bb7f48eb8067f37df68ef5393e4acec073788","unresolved":false,"context_lines":[{"line_number":1814,"context_line":"        LOG.debug(\u0027Type: \u0027 + str(info[0]))"},{"line_number":1815,"context_line":"        LOG.debug(\u0027Capacity: \u0027 + str(info[1]))"},{"line_number":1816,"context_line":"        LOG.debug(\u0027Allocation: \u0027 + str(info[2]))"},{"line_number":1817,"context_line":"        LOG.debug(self._vol.XMLDesc(0))"},{"line_number":1818,"context_line":"        return info"},{"line_number":1819,"context_line":""},{"line_number":1820,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_77b8ffc7","line":1817,"in_reply_to":"1a122d0e_419f055f","updated":"2016-05-04 14:09:16.000000000","message":"Done","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ff2e5812c4109a76149dfd0fdaf55f4043baef33","unresolved":false,"context_lines":[{"line_number":1826,"context_line":"    @classmethod"},{"line_number":1827,"context_line":"    def reset(cls):"},{"line_number":1828,"context_line":"        \"\"\"Throw away the initialised singleton. Useful for testing.\"\"\""},{"line_number":1829,"context_line":"        cls._singleton \u003d None"},{"line_number":1830,"context_line":""},{"line_number":1831,"context_line":"    @classmethod"},{"line_number":1832,"context_line":"    def initialize(cls, host, instances):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_21712945","line":1829,"updated":"2016-05-04 13:28:49.000000000","message":"Better to delete this method, Python lets you just reach in and set this from the test","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"105bb7f48eb8067f37df68ef5393e4acec073788","unresolved":false,"context_lines":[{"line_number":1826,"context_line":"    @classmethod"},{"line_number":1827,"context_line":"    def reset(cls):"},{"line_number":1828,"context_line":"        \"\"\"Throw away the initialised singleton. Useful for testing.\"\"\""},{"line_number":1829,"context_line":"        cls._singleton \u003d None"},{"line_number":1830,"context_line":""},{"line_number":1831,"context_line":"    @classmethod"},{"line_number":1832,"context_line":"    def initialize(cls, host, instances):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_17ca6b4f","line":1829,"in_reply_to":"1a122d0e_21712945","updated":"2016-05-04 14:09:16.000000000","message":"Done","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"ff2e5812c4109a76149dfd0fdaf55f4043baef33","unresolved":false,"context_lines":[{"line_number":1845,"context_line":"    def get(cls):"},{"line_number":1846,"context_line":"        \"\"\"Get the ImageCacheLocalPool singleton."},{"line_number":1847,"context_line":""},{"line_number":1848,"context_line":"        Returns:"},{"line_number":1849,"context_line":"            ImageCacheLocalPool: ImageCacheLocalPool singleton"},{"line_number":1850,"context_line":"        \"\"\""},{"line_number":1851,"context_line":"        if cls._singleton is None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_01ca2d4f","line":1848,"updated":"2016-05-04 13:28:49.000000000","message":"should be:\n\n  :returns: ImageCacheLocalPool singleton\n\nalthough there seem to be a few competing standards in play","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"105bb7f48eb8067f37df68ef5393e4acec073788","unresolved":false,"context_lines":[{"line_number":1845,"context_line":"    def get(cls):"},{"line_number":1846,"context_line":"        \"\"\"Get the ImageCacheLocalPool singleton."},{"line_number":1847,"context_line":""},{"line_number":1848,"context_line":"        Returns:"},{"line_number":1849,"context_line":"            ImageCacheLocalPool: ImageCacheLocalPool singleton"},{"line_number":1850,"context_line":"        \"\"\""},{"line_number":1851,"context_line":"        if cls._singleton is None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_b2590538","line":1848,"in_reply_to":"1a122d0e_01ca2d4f","updated":"2016-05-04 14:09:16.000000000","message":"Done","commit_id":"227c25d32525214641641d61b2f4485bb8a67581"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1560,"context_line":"    SUPPORTS_CLONE \u003d False"},{"line_number":1561,"context_line":""},{"line_number":1562,"context_line":"    def __init__(self, source_type, driver_format, is_block_dev\u003dFalse,"},{"line_number":1563,"context_line":"                 ):"},{"line_number":1564,"context_line":"        pass"},{"line_number":1565,"context_line":""},{"line_number":1566,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_71b5aace","line":1563,"updated":"2016-05-04 14:53:58.000000000","message":"nit conventionally this goes on line above","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"277b47bef31fb97ecc189fe7b9067cbf32a4b80e","unresolved":false,"context_lines":[{"line_number":1560,"context_line":"    SUPPORTS_CLONE \u003d False"},{"line_number":1561,"context_line":""},{"line_number":1562,"context_line":"    def __init__(self, source_type, driver_format, is_block_dev\u003dFalse,"},{"line_number":1563,"context_line":"                 ):"},{"line_number":1564,"context_line":"        pass"},{"line_number":1565,"context_line":""},{"line_number":1566,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_57dfbe0b","line":1563,"in_reply_to":"1a122d0e_71b5aace","updated":"2016-05-04 15:04:46.000000000","message":"Done","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1571,"context_line":"    when creating a disk from a qcow2 if force_raw_images is not set in config."},{"line_number":1572,"context_line":"    \"\"\""},{"line_number":1573,"context_line":"    def __init__(self, instance\u003dNone, disk_name\u003dNone, path\u003dNone):"},{"line_number":1574,"context_line":"        self.disk_name \u003d disk_name"},{"line_number":1575,"context_line":"        super(NoBackingDisk, self).__init__(\"file\", \"raw\", is_block_dev\u003dFalse)"},{"line_number":1576,"context_line":"        raise Exception(\"Support for Storage Pools not yet implemented for %s\""},{"line_number":1577,"context_line":"                        % \u0027nobacking\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_b198e26b","line":1574,"updated":"2016-05-04 14:53:58.000000000","message":"generally super is called first","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"277b47bef31fb97ecc189fe7b9067cbf32a4b80e","unresolved":false,"context_lines":[{"line_number":1571,"context_line":"    when creating a disk from a qcow2 if force_raw_images is not set in config."},{"line_number":1572,"context_line":"    \"\"\""},{"line_number":1573,"context_line":"    def __init__(self, instance\u003dNone, disk_name\u003dNone, path\u003dNone):"},{"line_number":1574,"context_line":"        self.disk_name \u003d disk_name"},{"line_number":1575,"context_line":"        super(NoBackingDisk, self).__init__(\"file\", \"raw\", is_block_dev\u003dFalse)"},{"line_number":1576,"context_line":"        raise Exception(\"Support for Storage Pools not yet implemented for %s\""},{"line_number":1577,"context_line":"                        % \u0027nobacking\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_17d6e6f0","line":1574,"in_reply_to":"1a122d0e_b198e26b","updated":"2016-05-04 15:04:46.000000000","message":"Done","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1639,"context_line":"            LOG.debug(\"Got pool: %s\" % name)"},{"line_number":1640,"context_line":"            if not self._pool.isActive() and pool_path is not None:"},{"line_number":1641,"context_line":"                # Pool partially created, remove and recreate"},{"line_number":1642,"context_line":"                LOG.debug(\"Undefining pool: %s\" % name)"},{"line_number":1643,"context_line":"                self._pool.undefine()"},{"line_number":1644,"context_line":"                raise exception.NotFound"},{"line_number":1645,"context_line":"        except exception.NotFound:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_517b4ef4","line":1642,"updated":"2016-05-04 14:53:58.000000000","message":"if we made this \"Recreating inactive pool\" would we need the comment?","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1657,"context_line":"        self.refresh_volumes()"},{"line_number":1658,"context_line":"        LOG.debug(\"Files: %s\" % file_paths)"},{"line_number":1659,"context_line":"        vol_paths \u003d [vol.get_path() for vol in self._vols.itervalues()]"},{"line_number":1660,"context_line":"        LOG.debug(\"Volumes: %s\" % vol_paths)"},{"line_number":1661,"context_line":"        for new_file in [file_path for file_path in file_paths"},{"line_number":1662,"context_line":"                         if file_path not in vol_paths]:"},{"line_number":1663,"context_line":"            LOG.warn(\"Missing volume: %s\" % new_file)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_715f6a75","line":1660,"updated":"2016-05-04 14:53:58.000000000","message":"this is a bit heavy even for debug","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1659,"context_line":"        vol_paths \u003d [vol.get_path() for vol in self._vols.itervalues()]"},{"line_number":1660,"context_line":"        LOG.debug(\"Volumes: %s\" % vol_paths)"},{"line_number":1661,"context_line":"        for new_file in [file_path for file_path in file_paths"},{"line_number":1662,"context_line":"                         if file_path not in vol_paths]:"},{"line_number":1663,"context_line":"            LOG.warn(\"Missing volume: %s\" % new_file)"},{"line_number":1664,"context_line":""},{"line_number":1665,"context_line":"    def create_volume(self, vol_name, src_path):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_51650e1b","line":1662,"updated":"2016-05-04 14:53:58.000000000","message":"would this be easier?\n\n  vol_paths \u003d set(vol.get_path() for vol in self._vols.itervalues())\n  for new_file in set(file_paths) - vol_paths:","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1681,"context_line":"                     \u003c/volume\u003e\"\"\""},{"line_number":1682,"context_line":"            stat \u003d os.stat(src)"},{"line_number":1683,"context_line":"            qmeu_info \u003d images.qemu_img_info(src)"},{"line_number":1684,"context_line":"            return xml.format(**{\u0027name\u0027: name,"},{"line_number":1685,"context_line":"                                 \u0027capacity\u0027: qmeu_info.virtual_size,"},{"line_number":1686,"context_line":"                                 \u0027allocation\u0027: qmeu_info.disk_size,"},{"line_number":1687,"context_line":"                                 \u0027src_path\u0027: src,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_312fb2a2","line":1684,"range":{"start_line":1684,"start_character":30,"end_line":1684,"end_character":40},"updated":"2016-05-04 14:53:58.000000000","message":"this is really weird now I come back to it. Why not use normal keyword passing syntax? This syntax lets you use dynamic key names but you don\u0027t have any","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1694,"context_line":"        self._vols[vol_name] \u003d self._pool.createXML(vol_xml, 0)"},{"line_number":1695,"context_line":""},{"line_number":1696,"context_line":"    def create(self, path, build\u003dTrue):"},{"line_number":1697,"context_line":"        def create_pool_xml(pool_path):"},{"line_number":1698,"context_line":""},{"line_number":1699,"context_line":"            if pool_path is None:"},{"line_number":1700,"context_line":"                raise exception.NovaException("}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_344b205b","line":1697,"updated":"2016-05-04 14:53:58.000000000","message":"this is just making a string... why not do as part of #create ?","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1696,"context_line":"    def create(self, path, build\u003dTrue):"},{"line_number":1697,"context_line":"        def create_pool_xml(pool_path):"},{"line_number":1698,"context_line":""},{"line_number":1699,"context_line":"            if pool_path is None:"},{"line_number":1700,"context_line":"                raise exception.NovaException("},{"line_number":1701,"context_line":"                    _(\"Unable to define directory storage pool:\""},{"line_number":1702,"context_line":"                      \"%s, directory path not supplied\") % self.name)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_b41f305a","line":1699,"range":{"start_line":1699,"start_character":15,"end_line":1699,"end_character":24},"updated":"2016-05-04 14:53:58.000000000","message":"better: if not pool_path","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1722,"context_line":""},{"line_number":1723,"context_line":"class LvmStoragePool(StoragePool):"},{"line_number":1724,"context_line":"    \"\"\"LVM storage pool\"\"\""},{"line_number":1725,"context_line":"    def __init__(self, name):"},{"line_number":1726,"context_line":"        super(LvmStoragePool, self).__init__(name)"},{"line_number":1727,"context_line":""},{"line_number":1728,"context_line":""},{"line_number":1729,"context_line":"class RbdStoragePool(StoragePool):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_346200d9","line":1726,"range":{"start_line":1725,"start_character":1,"end_line":1726,"end_character":50},"updated":"2016-05-04 14:53:58.000000000","message":"this doesn\u0027t add anything, just put pass. The class comments don\u0027t add anything either","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1742,"context_line":"    \"\"\"Ploop storage pool\"\"\""},{"line_number":1743,"context_line":"    def __init__(self, name):"},{"line_number":1744,"context_line":"        super(PloopStoragePool, self).__init__(name)"},{"line_number":1745,"context_line":"        self._vol \u003d None"},{"line_number":1746,"context_line":""},{"line_number":1747,"context_line":""},{"line_number":1748,"context_line":"class StorageVolume(LibvirtStorage):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_14b42433","line":1745,"updated":"2016-05-04 14:53:58.000000000","message":"Why just this one?","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1754,"context_line":""},{"line_number":1755,"context_line":"    def get_volume(self):"},{"line_number":1756,"context_line":"        self._vol \u003d self.host.get_storage_volume_by_name(self.name,"},{"line_number":1757,"context_line":"                                                        self._pool.get_pool())"},{"line_number":1758,"context_line":"        return self._vol"},{"line_number":1759,"context_line":""},{"line_number":1760,"context_line":"    def get_path(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_d4d74c4d","line":1757,"updated":"2016-05-04 14:53:58.000000000","message":"checked pep8? I prefer:\n\n   moooooooooooooooooooooooooooo(\n       args,)","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1784,"context_line":"    def get(cls):"},{"line_number":1785,"context_line":"        \"\"\"Get the StoragePoolManager singleton."},{"line_number":1786,"context_line":""},{"line_number":1787,"context_line":"        Returns:"},{"line_number":1788,"context_line":"            StoragePoolManager: StoragePoolManager singleton"},{"line_number":1789,"context_line":"        \"\"\""},{"line_number":1790,"context_line":"        if cls._singleton is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_14ec24f2","line":1787,"updated":"2016-05-04 14:53:58.000000000","message":"as previous","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1797,"context_line":"        self.instances \u003d instances"},{"line_number":1798,"context_line":""},{"line_number":1799,"context_line":"    def get_image_pool(self):"},{"line_number":1800,"context_line":""},{"line_number":1801,"context_line":"        image_path \u003d os.path.join(CONF.instances_path,"},{"line_number":1802,"context_line":"                                  CONF.image_cache_subdirectory_name)"},{"line_number":1803,"context_line":"        self.image_pool \u003d DirStoragePool(self.image_pool_name, image_path,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_b4b3b009","line":1800,"updated":"2016-05-04 14:53:58.000000000","message":"nit blank line","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1800,"context_line":""},{"line_number":1801,"context_line":"        image_path \u003d os.path.join(CONF.instances_path,"},{"line_number":1802,"context_line":"                                  CONF.image_cache_subdirectory_name)"},{"line_number":1803,"context_line":"        self.image_pool \u003d DirStoragePool(self.image_pool_name, image_path,"},{"line_number":1804,"context_line":"                                         build\u003dFalse)"},{"line_number":1805,"context_line":""},{"line_number":1806,"context_line":"        file_list \u003d [os.path.join(image_path, base_file)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_f4940845","line":1803,"range":{"start_line":1803,"start_character":26,"end_line":1803,"end_character":40},"updated":"2016-05-04 14:53:58.000000000","message":"why are we baking in DirStoragePool? Shouldn\u0027t this be configured somehow?","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1808,"context_line":"        self.image_pool.create_volumes(file_list)"},{"line_number":1809,"context_line":""},{"line_number":1810,"context_line":"    def get_instances_pool(self):"},{"line_number":1811,"context_line":""},{"line_number":1812,"context_line":"        self.instances_pool \u003d DirStoragePool(self.instances_pool_name,"},{"line_number":1813,"context_line":"                                             CONF.instances_path)"},{"line_number":1814,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_94b674f7","line":1811,"updated":"2016-05-04 14:53:58.000000000","message":"nit","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8aab3bd6e0aa69b665cf4a61b7b3916505389100","unresolved":false,"context_lines":[{"line_number":1819,"context_line":"            LOG.debug(\"Creating pool for instance: %s\" % uuid)"},{"line_number":1820,"context_line":"            self.instance_pools[uuid] \u003d DirStoragePool(uuid,"},{"line_number":1821,"context_line":"                                                       pool_path\u003dpath)"},{"line_number":1822,"context_line":""},{"line_number":1823,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a122d0e_f4cd2887","line":1823,"range":{"start_line":1822,"start_character":0,"end_line":1823,"end_character":0},"updated":"2016-05-04 14:53:58.000000000","message":"nit","commit_id":"67e6efcc79988edcb0d59c7fcdf7f64a0bc4521c"}]}
