)]}'
{"cinder/volume/drivers/nfs.py":[{"author":{"_account_id":1773,"name":"oliver-leahy-l","email":"oliver.leahy@hpe.com","username":"oliver-leahy-l"},"change_message_id":"9de4e722e1f173ec93c1f887c401273d0eeef32b","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def _do_create_volume(self, volume):"},{"line_number":103,"context_line":"        \"\"\"Create a volume on given nfs_share."},{"line_number":104,"context_line":"        :param volume: volume reference"},{"line_number":105,"context_line":"        \"\"\""},{"line_number":106,"context_line":"        volume_path \u003d self.local_path(volume)"},{"line_number":107,"context_line":"        volume_size \u003d volume[\u0027size\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FtwM%3D","line":104,"updated":"2013-07-24 15:35:38.000000000","message":"hacking requires a space above this\nhttps://github.com/openstack-dev/hacking/blob/master/HACKING.rst#docstrings","commit_id":"849ad8d5df0fbf8c61b1e504718a9c3b10cef148"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"93f4da8288d3794a79c5d612da4e9611140d9342","unresolved":false,"context_lines":[{"line_number":66,"context_line":"class RemoteFsDriver(driver.VolumeDriver):"},{"line_number":67,"context_line":"    \"\"\"Common base for drivers that work like NFS.\"\"\""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    driver_volume_type \u003d \u0027remote\u0027"},{"line_number":70,"context_line":"    driver_prefix \u003d \u0027remote\u0027"},{"line_number":71,"context_line":"    volume_backend_name \u003d \u0027Remote\u0027"},{"line_number":72,"context_line":"    version \u003d VERSION"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2Fqbk%3D","line":69,"updated":"2013-07-25 15:04:01.000000000","message":"I don\u0027t think we should define driver_volume_type, driver_prefix, volume_backend_name, or version in RemoteFsDriver.  They don\u0027t do anything and will encourage people basing drivers on this class to accidentally use these values.","commit_id":"39c2b805d30dcde54e0640cdff1a82ff07696b3f"},{"author":{"_account_id":6645,"name":"Frederic Lepied","email":"frederic.lepied@redhat.com","username":"flepied"},"change_message_id":"63d52f16281c81a42764dc87bd2a517770c2efa6","unresolved":false,"context_lines":[{"line_number":66,"context_line":"class RemoteFsDriver(driver.VolumeDriver):"},{"line_number":67,"context_line":"    \"\"\"Common base for drivers that work like NFS.\"\"\""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    driver_volume_type \u003d \u0027remote\u0027"},{"line_number":70,"context_line":"    driver_prefix \u003d \u0027remote\u0027"},{"line_number":71,"context_line":"    volume_backend_name \u003d \u0027Remote\u0027"},{"line_number":72,"context_line":"    version \u003d VERSION"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FpYs%3D","line":69,"in_reply_to":"AAAAQn%2F%2FqBU%3D","updated":"2013-07-25 20:55:33.000000000","message":"ok I remove them and send a new patchset.","commit_id":"39c2b805d30dcde54e0640cdff1a82ff07696b3f"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8fd1d65b287bc51570874ec3c84abde3f0b642aa","unresolved":false,"context_lines":[{"line_number":66,"context_line":"class RemoteFsDriver(driver.VolumeDriver):"},{"line_number":67,"context_line":"    \"\"\"Common base for drivers that work like NFS.\"\"\""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    driver_volume_type \u003d \u0027remote\u0027"},{"line_number":70,"context_line":"    driver_prefix \u003d \u0027remote\u0027"},{"line_number":71,"context_line":"    volume_backend_name \u003d \u0027Remote\u0027"},{"line_number":72,"context_line":"    version \u003d VERSION"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FqBU%3D","line":69,"in_reply_to":"AAAAQn%2F%2FqRQ%3D","updated":"2013-07-25 17:08:12.000000000","message":"Should be removed, since they shouldn\u0027t ever be accessed for this base class anyway.","commit_id":"39c2b805d30dcde54e0640cdff1a82ff07696b3f"},{"author":{"_account_id":6645,"name":"Frederic Lepied","email":"frederic.lepied@redhat.com","username":"flepied"},"change_message_id":"04aaddb817c965b1723024e2809245ea0283ae7d","unresolved":false,"context_lines":[{"line_number":66,"context_line":"class RemoteFsDriver(driver.VolumeDriver):"},{"line_number":67,"context_line":"    \"\"\"Common base for drivers that work like NFS.\"\"\""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    driver_volume_type \u003d \u0027remote\u0027"},{"line_number":70,"context_line":"    driver_prefix \u003d \u0027remote\u0027"},{"line_number":71,"context_line":"    volume_backend_name \u003d \u0027Remote\u0027"},{"line_number":72,"context_line":"    version \u003d VERSION"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FqRQ%3D","line":69,"in_reply_to":"AAAAQn%2F%2Fqbk%3D","updated":"2013-07-25 16:06:11.000000000","message":"Should I remove them or just put something like \u003cunspecified\u003e or \u003cnot defined at driver level\u003e ?","commit_id":"39c2b805d30dcde54e0640cdff1a82ff07696b3f"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"93f4da8288d3794a79c5d612da4e9611140d9342","unresolved":false,"context_lines":[{"line_number":325,"context_line":""},{"line_number":326,"context_line":"    driver_volume_type \u003d \u0027nfs\u0027"},{"line_number":327,"context_line":"    driver_prefix \u003d \u0027nfs\u0027"},{"line_number":328,"context_line":"    volume_backend_name \u003d \u0027Generic_NFS\u0027"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":331,"context_line":"        super(NfsDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2Fqbs%3D","line":328,"updated":"2013-07-25 15:04:01.000000000","message":"Add version \u003d VERSION","commit_id":"39c2b805d30dcde54e0640cdff1a82ff07696b3f"},{"author":{"_account_id":6645,"name":"Frederic Lepied","email":"frederic.lepied@redhat.com","username":"flepied"},"change_message_id":"04aaddb817c965b1723024e2809245ea0283ae7d","unresolved":false,"context_lines":[{"line_number":325,"context_line":""},{"line_number":326,"context_line":"    driver_volume_type \u003d \u0027nfs\u0027"},{"line_number":327,"context_line":"    driver_prefix \u003d \u0027nfs\u0027"},{"line_number":328,"context_line":"    volume_backend_name \u003d \u0027Generic_NFS\u0027"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":331,"context_line":"        super(NfsDriver, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FqRA%3D","line":328,"in_reply_to":"AAAAQn%2F%2Fqbs%3D","updated":"2013-07-25 16:06:11.000000000","message":"ok I submit a new version with that.","commit_id":"39c2b805d30dcde54e0640cdff1a82ff07696b3f"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"345f606be288c63cf8c827d6c76ede2a13da099e","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        \"\"\"Just to override parent behavior.\"\"\""},{"line_number":71,"context_line":"        pass"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":74,"context_line":"        \"\"\"Allow connection to connector and return connection info.\"\"\""},{"line_number":75,"context_line":"        data \u003d {\u0027export\u0027: volume[\u0027provider_location\u0027],"},{"line_number":76,"context_line":"                \u0027name\u0027: volume[\u0027name\u0027]}"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2Fmow%3D","line":73,"updated":"2013-07-26 17:46:25.000000000","message":"You have the parameters documented for _do_create_volume.  Suggest doing the same for these others for consistency.","commit_id":"64796b6dca6994bedf238d300002e72a65b22718"},{"author":{"_account_id":6645,"name":"Frederic Lepied","email":"frederic.lepied@redhat.com","username":"flepied"},"change_message_id":"0f0fc1dacfa89de1710f2dd6c69622f64f2fa5c2","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        \"\"\"Just to override parent behavior.\"\"\""},{"line_number":71,"context_line":"        pass"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":74,"context_line":"        \"\"\"Allow connection to connector and return connection info.\"\"\""},{"line_number":75,"context_line":"        data \u003d {\u0027export\u0027: volume[\u0027provider_location\u0027],"},{"line_number":76,"context_line":"                \u0027name\u0027: volume[\u0027name\u0027]}"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2FloQ%3D","line":73,"in_reply_to":"AAAAQn%2F%2Fmow%3D","updated":"2013-07-27 02:28:35.000000000","message":"Done","commit_id":"64796b6dca6994bedf238d300002e72a65b22718"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"345f606be288c63cf8c827d6c76ede2a13da099e","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":304,"context_line":"        self._stats \u003d data"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"    def _do_mount(self, cmd, ensure, share):"},{"line_number":307,"context_line":"        try:"},{"line_number":308,"context_line":"            self._execute(*cmd, run_as_root\u003dTrue)"},{"line_number":309,"context_line":"        except exception.ProcessExecutionError as exc:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2Fmo8%3D","line":306,"updated":"2013-07-26 17:46:25.000000000","message":"Recommend documenting parameters.","commit_id":"64796b6dca6994bedf238d300002e72a65b22718"},{"author":{"_account_id":6645,"name":"Frederic Lepied","email":"frederic.lepied@redhat.com","username":"flepied"},"change_message_id":"0f0fc1dacfa89de1710f2dd6c69622f64f2fa5c2","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":304,"context_line":"        self._stats \u003d data"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"    def _do_mount(self, cmd, ensure, share):"},{"line_number":307,"context_line":"        try:"},{"line_number":308,"context_line":"            self._execute(*cmd, run_as_root\u003dTrue)"},{"line_number":309,"context_line":"        except exception.ProcessExecutionError as exc:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2FloI%3D","line":306,"in_reply_to":"AAAAQn%2F%2Fmo8%3D","updated":"2013-07-27 02:28:35.000000000","message":"Done","commit_id":"64796b6dca6994bedf238d300002e72a65b22718"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8bffd98ae78f77c50d3720f306100231caff7e47","unresolved":false,"context_lines":[{"line_number":327,"context_line":""},{"line_number":328,"context_line":"    def _get_capacity_info(self, nfs_share):"},{"line_number":329,"context_line":"        \"\"\"Calculate available space on the NFS share."},{"line_number":330,"context_line":"        :param nfs_share: example 172.18.194.100:/var/nfs"},{"line_number":331,"context_line":"        \"\"\""},{"line_number":332,"context_line":"        raise NotImplementedError()"},{"line_number":333,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAQn%2F%2FhlQ%3D","line":330,"updated":"2013-07-29 20:23:27.000000000","message":"Same as below.","commit_id":"37b8162e980931f26f0b74f5adb1b5e7af5a9ee8"},{"author":{"_account_id":6645,"name":"Frederic Lepied","email":"frederic.lepied@redhat.com","username":"flepied"},"change_message_id":"eb951926b0b107b29129282927e400f414f2c583","unresolved":false,"context_lines":[{"line_number":327,"context_line":""},{"line_number":328,"context_line":"    def _get_capacity_info(self, nfs_share):"},{"line_number":329,"context_line":"        \"\"\"Calculate available space on the NFS share."},{"line_number":330,"context_line":"        :param nfs_share: example 172.18.194.100:/var/nfs"},{"line_number":331,"context_line":"        \"\"\""},{"line_number":332,"context_line":"        raise NotImplementedError()"},{"line_number":333,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAQn%2F%2Fhj0%3D","line":330,"in_reply_to":"AAAAQn%2F%2FhlQ%3D","updated":"2013-07-29 20:28:38.000000000","message":"Done","commit_id":"37b8162e980931f26f0b74f5adb1b5e7af5a9ee8"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8bffd98ae78f77c50d3720f306100231caff7e47","unresolved":false,"context_lines":[{"line_number":334,"context_line":"    def _find_share(self, volume_size_in_gib):"},{"line_number":335,"context_line":"        \"\"\"Choose NFS share among available ones for given volume size."},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"        First validation step: ratio of actual space (used_space / total_space)"},{"line_number":338,"context_line":"        is less than \u0027nfs_used_ratio\u0027."},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"        Second validation step: apparent space allocated (differs from actual"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAQn%2F%2FhlY%3D","line":337,"updated":"2013-07-29 20:23:27.000000000","message":"I think this is the right approach but we shouldn\u0027t duplicate all the comments here.","commit_id":"37b8162e980931f26f0b74f5adb1b5e7af5a9ee8"},{"author":{"_account_id":6645,"name":"Frederic Lepied","email":"frederic.lepied@redhat.com","username":"flepied"},"change_message_id":"eb951926b0b107b29129282927e400f414f2c583","unresolved":false,"context_lines":[{"line_number":334,"context_line":"    def _find_share(self, volume_size_in_gib):"},{"line_number":335,"context_line":"        \"\"\"Choose NFS share among available ones for given volume size."},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"        First validation step: ratio of actual space (used_space / total_space)"},{"line_number":338,"context_line":"        is less than \u0027nfs_used_ratio\u0027."},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"        Second validation step: apparent space allocated (differs from actual"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAQn%2F%2Fhj4%3D","line":337,"in_reply_to":"AAAAQn%2F%2FhlY%3D","updated":"2013-07-29 20:28:38.000000000","message":"Done","commit_id":"37b8162e980931f26f0b74f5adb1b5e7af5a9ee8"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"43b432a2d5ffb2547d8d780d80266ed270aeb5cd","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":74,"context_line":"        \"\"\"Allow connection to connector and return connection info."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        :param volume: volume reference"},{"line_number":77,"context_line":"        \"\"\""},{"line_number":78,"context_line":"        data \u003d {\u0027export\u0027: volume[\u0027provider_location\u0027],"},{"line_number":79,"context_line":"                \u0027name\u0027: volume[\u0027name\u0027]}"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAQn%2F%2FW20%3D","line":76,"updated":"2013-08-01 13:44:32.000000000","message":"Could add \":param connector\"","commit_id":"94d714f792ed441b2ed27c8789a1ff612bd2594c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"43b432a2d5ffb2547d8d780d80266ed270aeb5cd","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        return {\u0027provider_location\u0027: volume[\u0027provider_location\u0027]}"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def _do_create_volume(self, volume):"},{"line_number":103,"context_line":"        \"\"\"Create a volume on given nfs_share."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        :param volume: volume reference"},{"line_number":106,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAQn%2F%2FW2w%3D","line":103,"updated":"2013-08-01 13:44:32.000000000","message":"s/nfs_share/remote share/","commit_id":"94d714f792ed441b2ed27c8789a1ff612bd2594c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"43b432a2d5ffb2547d8d780d80266ed270aeb5cd","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        self._set_rw_permissions_for_all(volume_path)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    def _ensure_shares_mounted(self):"},{"line_number":119,"context_line":"        \"\"\"Look for NFS shares in the flags and tries to mount them locally.\"\"\""},{"line_number":120,"context_line":"        self._mounted_shares \u003d []"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        self._load_shares_config(getattr(self.configuration,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAQn%2F%2FW2s%3D","line":119,"updated":"2013-08-01 13:44:32.000000000","message":"-NFS","commit_id":"94d714f792ed441b2ed27c8789a1ff612bd2594c"}]}
