)]}'
{"cinder/tests/unit/test_zfssa.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f63ba049797e863af12d953c233532d6438a2717","unresolved":false,"context_lines":[{"line_number":132,"context_line":"               \"name\": lun,"},{"line_number":133,"context_line":"               \"project\": project,"},{"line_number":134,"context_line":"               \"targetgroup\": targetgroup,"},{"line_number":135,"context_line":"               \"lun\": {\"assignednumber\": 0}}"},{"line_number":136,"context_line":"        if specs:"},{"line_number":137,"context_line":"            out.update(specs)"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5afe65bd_a084c8d3","line":135,"updated":"2015-06-03 16:04:13.000000000","message":"Please add a trailing comma and put the closing } on the next line for all dicts per the hacking guidelines.\n\nhttp://docs.openstack.org/developer/hacking/#dictionaries-lists","commit_id":"85737702f850f0782014e02abdf6bb36361a385b"}],"cinder/volume/drivers/zfssa/zfssaiscsi.py":[{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"df0041818d0cecf54f344da54b31fde864cedb95","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    cfg.StrOpt(\u0027zfssa_target_user\u0027, default\u003d\u0027\u0027,"},{"line_number":64,"context_line":"               help\u003d\u0027iSCSI target CHAP user.\u0027),"},{"line_number":65,"context_line":"    cfg.StrOpt(\u0027zfssa_target_password\u0027, default\u003d\u0027\u0027,"},{"line_number":66,"context_line":"               help\u003d\u0027iSCSI target CHAP password.\u0027, secret\u003dTrue),"},{"line_number":67,"context_line":"    cfg.StrOpt(\u0027zfssa_target_portal\u0027,"},{"line_number":68,"context_line":"               help\u003d\u0027iSCSI target portal (Data-IP:Port, w.x.y.z:3260).\u0027),"},{"line_number":69,"context_line":"    cfg.StrOpt(\u0027zfssa_target_interfaces\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ad0253b_e0957940","line":66,"updated":"2015-04-29 07:50:08.000000000","message":"Two identical help strings for different options doesn\u0027t seem very helpful. Can you look at rewording to make it obvious what each option is used for, please?","commit_id":"ba1189e9166a4eec001767af0460ab6c9b722925"},{"author":{"_account_id":11509,"name":"Juan Zuluaga","email":"juan.c.zuluaga@oracle.com","username":"juzuluag"},"change_message_id":"42ce7d67bb4131f92a80cd34361922fbf82405b4","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        LOG.debug(\u0027_get_provider_info: provider_location: %s\u0027 % loc)"},{"line_number":213,"context_line":"        provider \u003d {\u0027provider_location\u0027: loc}"},{"line_number":214,"context_line":"        if lcfg.zfssa_target_user !\u003d \u0027\u0027 and lcfg.zfssa_target_password !\u003d \u0027\u0027:"},{"line_number":215,"context_line":"            provider[\u0027provider_auth\u0027] \u003d (\u0027CHAP %s %s\u0027 %"},{"line_number":216,"context_line":"                                         lcfg.zfssa_target_user,"},{"line_number":217,"context_line":"                                         lcfg.zfssa_target_password)"},{"line_number":218,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5ad0253b_f3fc2c40","line":215,"updated":"2015-04-29 12:29:27.000000000","message":"Seems like a type here. \u0027(\u0027 should be after \u0027%\u0027\nBasically like:\n\u0027CHAR %s %s\u0027  % (....lcfg.zfssa_target_password)","commit_id":"ba1189e9166a4eec001767af0460ab6c9b722925"},{"author":{"_account_id":13524,"name":"Diem Tran","email":"diem.tran@oracle.com","username":"dttran"},"change_message_id":"a22cac642e7bd35386e5fa9e145fd4977eef6bd5","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        LOG.debug(\u0027_get_provider_info: provider_location: %s\u0027 % loc)"},{"line_number":213,"context_line":"        provider \u003d {\u0027provider_location\u0027: loc}"},{"line_number":214,"context_line":"        if lcfg.zfssa_target_user !\u003d \u0027\u0027 and lcfg.zfssa_target_password !\u003d \u0027\u0027:"},{"line_number":215,"context_line":"            provider[\u0027provider_auth\u0027] \u003d (\u0027CHAP %s %s\u0027 %"},{"line_number":216,"context_line":"                                         lcfg.zfssa_target_user,"},{"line_number":217,"context_line":"                                         lcfg.zfssa_target_password)"},{"line_number":218,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3acd31a7_060f7ce2","line":215,"in_reply_to":"5ad0253b_f3fc2c40","updated":"2015-04-29 20:00:19.000000000","message":"Done","commit_id":"ba1189e9166a4eec001767af0460ab6c9b722925"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"df0041818d0cecf54f344da54b31fde864cedb95","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        data[\u0027QoS_support\u0027] \u003d False"},{"line_number":333,"context_line":"        self._stats \u003d data"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":336,"context_line":"        \"\"\"Get volume status."},{"line_number":337,"context_line":"           If \u0027refresh\u0027 is True, run update the stats first."},{"line_number":338,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"5ad0253b_60884923","line":335,"updated":"2015-04-29 07:50:08.000000000","message":"The refresh argument has been removed, this should be recoded to just handle the refresh\u003dTrue case","commit_id":"ba1189e9166a4eec001767af0460ab6c9b722925"},{"author":{"_account_id":11509,"name":"Juan Zuluaga","email":"juan.c.zuluaga@oracle.com","username":"juzuluag"},"change_message_id":"7394f0efff15077f8aa844c5d8025bfed0185f82","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        LOG.debug(\u0027_get_provider_info: provider_location: %s\u0027 % loc)"},{"line_number":213,"context_line":"        provider \u003d {\u0027provider_location\u0027: loc}"},{"line_number":214,"context_line":"        if lcfg.zfssa_target_user !\u003d \u0027\u0027 and lcfg.zfssa_target_password !\u003d \u0027\u0027:"},{"line_number":215,"context_line":"            provider[\u0027provider_auth\u0027] \u003d (\u0027CHAP %s %s\u0027 %"},{"line_number":216,"context_line":"                                         (lcfg.zfssa_target_user,"},{"line_number":217,"context_line":"                                          lcfg.zfssa_target_password))"},{"line_number":218,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_ec16a154","line":215,"updated":"2015-04-29 21:00:05.000000000","message":"Actually you just move the 1st parenthesis to the variables set. It would be something like:\nprovider[\u0027provider_auth\u0027] \u003d \u0027CHAP %s %s\u0027 % (.u.,..p..)","commit_id":"d5f249d4cbe5ebe9681152eb5ce95a5e89c3f537"},{"author":{"_account_id":13524,"name":"Diem Tran","email":"diem.tran@oracle.com","username":"dttran"},"change_message_id":"4b8062a99909a2ba2f7138eb75e2c1294d0f3e31","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        LOG.debug(\u0027_get_provider_info: provider_location: %s\u0027 % loc)"},{"line_number":213,"context_line":"        provider \u003d {\u0027provider_location\u0027: loc}"},{"line_number":214,"context_line":"        if lcfg.zfssa_target_user !\u003d \u0027\u0027 and lcfg.zfssa_target_password !\u003d \u0027\u0027:"},{"line_number":215,"context_line":"            provider[\u0027provider_auth\u0027] \u003d (\u0027CHAP %s %s\u0027 %"},{"line_number":216,"context_line":"                                         (lcfg.zfssa_target_user,"},{"line_number":217,"context_line":"                                          lcfg.zfssa_target_password))"},{"line_number":218,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_7be7bae4","line":215,"in_reply_to":"3acd31a7_ec16a154","updated":"2015-04-30 20:49:56.000000000","message":"It\u0027s better to keep the outer () pair, as this is a multi-line expression.","commit_id":"d5f249d4cbe5ebe9681152eb5ce95a5e89c3f537"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f63ba049797e863af12d953c233532d6438a2717","unresolved":false,"context_lines":[{"line_number":78,"context_line":"ZFSSA_LUN_SPECS \u003d {\u0027zfssa:volblocksize\u0027,"},{"line_number":79,"context_line":"                   \u0027zfssa:sparse\u0027,"},{"line_number":80,"context_line":"                   \u0027zfssa:compression\u0027,"},{"line_number":81,"context_line":"                   \u0027zfssa:logbias\u0027}"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"def factory_zfssa():"}],"source_content_type":"text/x-python","patch_set":6,"id":"5afe65bd_60049049","line":81,"updated":"2015-06-03 16:04:13.000000000","message":"Please add trailing comma.","commit_id":"85737702f850f0782014e02abdf6bb36361a385b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f63ba049797e863af12d953c233532d6438a2717","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        Project, initiators, initiatorgroup, target and targetgroup."},{"line_number":110,"context_line":"        \"\"\""},{"line_number":111,"context_line":"        lcfg \u003d self.configuration"},{"line_number":112,"context_line":"        msg \u003d (_(\u0027Connecting to host: %s.\u0027) % lcfg.san_ip)"},{"line_number":113,"context_line":"        LOG.info(msg)"},{"line_number":114,"context_line":"        self.zfssa \u003d factory_zfssa()"},{"line_number":115,"context_line":"        self.zfssa.set_host(lcfg.san_ip, timeout\u003dlcfg.zfssa_rest_timeout)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5afe65bd_a03cc8e2","line":112,"updated":"2015-06-03 16:04:13.000000000","message":"Needs _LI(). Only used for the LOG.info call, so get rid of msg variable and move directly into LOG.info call. Change the % to , to pass lcfg.san_ip as an argument to the logger.","commit_id":"85737702f850f0782014e02abdf6bb36361a385b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f63ba049797e863af12d953c233532d6438a2717","unresolved":false,"context_lines":[{"line_number":146,"context_line":"                LOG.warning(_LW(\u0027zfssa_initiator: %(ini)s\u0027"},{"line_number":147,"context_line":"                                \u0027 wont be used on \u0027"},{"line_number":148,"context_line":"                                \u0027zfssa_initiator_group\u003d %(inigrp)s.\u0027)"},{"line_number":149,"context_line":"                            % {\u0027ini\u0027: lcfg.zfssa_initiator,"},{"line_number":150,"context_line":"                               \u0027inigrp\u0027: lcfg.zfssa_initiator_group})"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"            # Setup initiator and initiator group"}],"source_content_type":"text/x-python","patch_set":6,"id":"5afe65bd_a013a865","line":149,"updated":"2015-06-03 16:04:13.000000000","message":"% \u003d\u003e ,","commit_id":"85737702f850f0782014e02abdf6bb36361a385b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f63ba049797e863af12d953c233532d6438a2717","unresolved":false,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        loc \u003d \"%s %s %s\" % (lcfg.zfssa_target_portal, self.tgtiqn,"},{"line_number":220,"context_line":"                            lun[\u0027number\u0027])"},{"line_number":221,"context_line":"        LOG.debug(\u0027_get_provider_info: provider_location: %s\u0027 % loc)"},{"line_number":222,"context_line":"        provider \u003d {\u0027provider_location\u0027: loc}"},{"line_number":223,"context_line":"        if lcfg.zfssa_target_user !\u003d \u0027\u0027 and lcfg.zfssa_target_password !\u003d \u0027\u0027:"},{"line_number":224,"context_line":"            provider[\u0027provider_auth\u0027] \u003d (\u0027CHAP %s %s\u0027 %"}],"source_content_type":"text/x-python","patch_set":6,"id":"5afe65bd_cb512510","line":221,"updated":"2015-06-03 16:04:13.000000000","message":"% \u003d\u003e ,","commit_id":"85737702f850f0782014e02abdf6bb36361a385b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f63ba049797e863af12d953c233532d6438a2717","unresolved":false,"context_lines":[{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    def delete_volume(self, volume):"},{"line_number":249,"context_line":"        \"\"\"Deletes a volume with the given volume[\u0027name\u0027].\"\"\""},{"line_number":250,"context_line":"        LOG.debug(\u0027zfssa.delete_volume: name\u003d\u0027 + volume[\u0027name\u0027])"},{"line_number":251,"context_line":"        lcfg \u003d self.configuration"},{"line_number":252,"context_line":"        lun2del \u003d self.zfssa.get_lun(lcfg.zfssa_pool,"},{"line_number":253,"context_line":"                                     lcfg.zfssa_project,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5afe65bd_eb9ce1c1","line":250,"updated":"2015-06-03 16:04:13.000000000","message":"Please use string formatting and avoid string concatenation.","commit_id":"85737702f850f0782014e02abdf6bb36361a385b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f63ba049797e863af12d953c233532d6438a2717","unresolved":false,"context_lines":[{"line_number":273,"context_line":"                              lun\u003dvolume[\u0027name\u0027])"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    def create_snapshot(self, snapshot):"},{"line_number":276,"context_line":"        \"\"\"Creates a snapshot with the given snapshot[\u0027name\u0027] of the"},{"line_number":277,"context_line":"           snapshot[\u0027volume_name\u0027]"},{"line_number":278,"context_line":"        \"\"\""},{"line_number":279,"context_line":"        LOG.debug(\u0027zfssa.create_snapshot: snapshot\u003d\u0027 + snapshot[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"5afe65bd_4b48952d","line":276,"updated":"2015-06-03 16:04:13.000000000","message":"DocString should have a one line summary, a blank line, then the rest.\n\nhttp://docs.openstack.org/developer/hacking/#docstrings","commit_id":"85737702f850f0782014e02abdf6bb36361a385b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f63ba049797e863af12d953c233532d6438a2717","unresolved":false,"context_lines":[{"line_number":276,"context_line":"        \"\"\"Creates a snapshot with the given snapshot[\u0027name\u0027] of the"},{"line_number":277,"context_line":"           snapshot[\u0027volume_name\u0027]"},{"line_number":278,"context_line":"        \"\"\""},{"line_number":279,"context_line":"        LOG.debug(\u0027zfssa.create_snapshot: snapshot\u003d\u0027 + snapshot[\u0027name\u0027])"},{"line_number":280,"context_line":"        lcfg \u003d self.configuration"},{"line_number":281,"context_line":"        self.zfssa.create_snapshot(lcfg.zfssa_pool,"},{"line_number":282,"context_line":"                                   lcfg.zfssa_project,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5afe65bd_4b93f5a3","line":279,"updated":"2015-06-03 16:04:13.000000000","message":"Please use string formatting.","commit_id":"85737702f850f0782014e02abdf6bb36361a385b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f63ba049797e863af12d953c233532d6438a2717","unresolved":false,"context_lines":[{"line_number":285,"context_line":""},{"line_number":286,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":287,"context_line":"        \"\"\"Deletes a snapshot.\"\"\""},{"line_number":288,"context_line":"        LOG.debug(\u0027zfssa.delete_snapshot: snapshot\u003d\u0027 + snapshot[\u0027name\u0027])"},{"line_number":289,"context_line":"        lcfg \u003d self.configuration"},{"line_number":290,"context_line":"        has_clones \u003d self.zfssa.has_clones(lcfg.zfssa_pool,"},{"line_number":291,"context_line":"                                           lcfg.zfssa_project,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5afe65bd_0b8dfd7a","line":288,"updated":"2015-06-03 16:04:13.000000000","message":"Same.","commit_id":"85737702f850f0782014e02abdf6bb36361a385b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f63ba049797e863af12d953c233532d6438a2717","unresolved":false,"context_lines":[{"line_number":292,"context_line":"                                           snapshot[\u0027volume_name\u0027],"},{"line_number":293,"context_line":"                                           snapshot[\u0027name\u0027])"},{"line_number":294,"context_line":"        if has_clones:"},{"line_number":295,"context_line":"            LOG.error(_LE(\u0027Snapshot %s: has clones\u0027) % snapshot[\u0027name\u0027])"},{"line_number":296,"context_line":"            raise exception.SnapshotIsBusy(snapshot_name\u003dsnapshot[\u0027name\u0027])"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        self.zfssa.delete_snapshot(lcfg.zfssa_pool,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5afe65bd_8bf7adf4","line":295,"updated":"2015-06-03 16:04:13.000000000","message":"% \u003d\u003e ,","commit_id":"85737702f850f0782014e02abdf6bb36361a385b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f63ba049797e863af12d953c233532d6438a2717","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        self._stats \u003d data"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"    def get_volume_stats(self, refresh\u003dFalse):"},{"line_number":350,"context_line":"        \"\"\"Get volume status."},{"line_number":351,"context_line":"           If \u0027refresh\u0027 is True, run update the stats first."},{"line_number":352,"context_line":"        \"\"\""},{"line_number":353,"context_line":"        if refresh:"}],"source_content_type":"text/x-python","patch_set":6,"id":"5afe65bd_6b747167","line":350,"updated":"2015-06-03 16:04:13.000000000","message":"Reformat per docstring guidelines.","commit_id":"85737702f850f0782014e02abdf6bb36361a385b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f63ba049797e863af12d953c233532d6438a2717","unresolved":false,"context_lines":[{"line_number":365,"context_line":""},{"line_number":366,"context_line":"    def extend_volume(self, volume, new_size):"},{"line_number":367,"context_line":"        \"\"\"Driver entry point to extent volume size.\"\"\""},{"line_number":368,"context_line":"        LOG.debug(\u0027extend_volume: volume name: %s\u0027 % volume[\u0027name\u0027])"},{"line_number":369,"context_line":"        lcfg \u003d self.configuration"},{"line_number":370,"context_line":"        self.zfssa.set_lun_props(lcfg.zfssa_pool,"},{"line_number":371,"context_line":"                                 lcfg.zfssa_project,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5afe65bd_0b697d8b","line":368,"updated":"2015-06-03 16:04:13.000000000","message":"% \u003d\u003e ,","commit_id":"85737702f850f0782014e02abdf6bb36361a385b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f63ba049797e863af12d953c233532d6438a2717","unresolved":false,"context_lines":[{"line_number":383,"context_line":"            LOG.error(_LE(\u0027Clone Volume:\u0027"},{"line_number":384,"context_line":"                          \u0027%(volume)s failed from source volume:\u0027"},{"line_number":385,"context_line":"                          \u0027%(src_vref)s\u0027)"},{"line_number":386,"context_line":"                      % {\u0027volume\u0027: volume[\u0027name\u0027],"},{"line_number":387,"context_line":"                         \u0027src_vref\u0027: src_vref[\u0027name\u0027]})"},{"line_number":388,"context_line":"            # Cleanup snapshot"},{"line_number":389,"context_line":"            self.delete_snapshot(zfssa_snapshot)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5afe65bd_6bfb51c2","line":386,"updated":"2015-06-03 16:04:13.000000000","message":"% \u003d\u003e ,","commit_id":"85737702f850f0782014e02abdf6bb36361a385b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"f63ba049797e863af12d953c233532d6438a2717","unresolved":false,"context_lines":[{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    def terminate_connection(self, volume, connector, **kwargs):"},{"line_number":449,"context_line":"        \"\"\"Driver entry point to terminate a connection for a volume.\"\"\""},{"line_number":450,"context_line":"        LOG.debug(\u0027terminate_connection: volume name: %s.\u0027 % volume[\u0027name\u0027])"},{"line_number":451,"context_line":"        lcfg \u003d self.configuration"},{"line_number":452,"context_line":"        self.zfssa.set_lun_initiatorgroup(lcfg.zfssa_pool,"},{"line_number":453,"context_line":"                                          lcfg.zfssa_project,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5afe65bd_2b0559bb","line":450,"updated":"2015-06-03 16:04:13.000000000","message":"% \u003d\u003e ,","commit_id":"85737702f850f0782014e02abdf6bb36361a385b"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"e91dccb595c5dd959c68e734981917d82940c3f4","unresolved":false,"context_lines":[{"line_number":305,"context_line":"                                   snapshot[\u0027name\u0027])"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":308,"context_line":"        \"\"\"Creates a volume from a snapshot - clone a snapshot\"\"\""},{"line_number":309,"context_line":"        LOG.debug(\u0027zfssa.create_volume_from_snapshot: volume\u003d%s\u0027,"},{"line_number":310,"context_line":"                  volume[\u0027name\u0027])"},{"line_number":311,"context_line":"        LOG.debug(\u0027zfssa.create_volume_from_snapshot: snapshot\u003d%s\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3afb71cf_1b8c4f34","line":308,"updated":"2015-06-07 20:33:08.000000000","message":"nitpicky: [.] missing at the end of the statement","commit_id":"00bd02f2e65491d34a203505d0299f0fc07a1635"},{"author":{"_account_id":13524,"name":"Diem Tran","email":"diem.tran@oracle.com","username":"dttran"},"change_message_id":"75213c8d9bf0f69133b2344c2ec369483055c8b9","unresolved":false,"context_lines":[{"line_number":305,"context_line":"                                   snapshot[\u0027name\u0027])"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"},{"line_number":308,"context_line":"        \"\"\"Creates a volume from a snapshot - clone a snapshot\"\"\""},{"line_number":309,"context_line":"        LOG.debug(\u0027zfssa.create_volume_from_snapshot: volume\u003d%s\u0027,"},{"line_number":310,"context_line":"                  volume[\u0027name\u0027])"},{"line_number":311,"context_line":"        LOG.debug(\u0027zfssa.create_volume_from_snapshot: snapshot\u003d%s\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3afb71cf_395b7756","line":308,"in_reply_to":"3afb71cf_1b8c4f34","updated":"2015-06-08 16:15:40.000000000","message":"I will fix this with other major changes.","commit_id":"00bd02f2e65491d34a203505d0299f0fc07a1635"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"e91dccb595c5dd959c68e734981917d82940c3f4","unresolved":false,"context_lines":[{"line_number":393,"context_line":"            # Cleanup snapshot"},{"line_number":394,"context_line":"            self.delete_snapshot(zfssa_snapshot)"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"    def local_path(self, volume):"},{"line_number":397,"context_line":"        \"\"\"Not implemented\"\"\""},{"line_number":398,"context_line":"        pass"},{"line_number":399,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3afb71cf_db9c775f","line":396,"updated":"2015-06-07 20:33:08.000000000","message":"VolumeDriver raises NotImplementedError","commit_id":"00bd02f2e65491d34a203505d0299f0fc07a1635"},{"author":{"_account_id":13524,"name":"Diem Tran","email":"diem.tran@oracle.com","username":"dttran"},"change_message_id":"75213c8d9bf0f69133b2344c2ec369483055c8b9","unresolved":false,"context_lines":[{"line_number":393,"context_line":"            # Cleanup snapshot"},{"line_number":394,"context_line":"            self.delete_snapshot(zfssa_snapshot)"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"    def local_path(self, volume):"},{"line_number":397,"context_line":"        \"\"\"Not implemented\"\"\""},{"line_number":398,"context_line":"        pass"},{"line_number":399,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3afb71cf_f9a6ff51","line":396,"in_reply_to":"3afb71cf_db9c775f","updated":"2015-06-08 16:15:40.000000000","message":"VolumeDriver should throw an exception, to require children drivers to implement the function.\n\nOur driver does not have that feature, so a pass should be fine. Throwing NotImplementedError here is a wrong approach.","commit_id":"00bd02f2e65491d34a203505d0299f0fc07a1635"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"e91dccb595c5dd959c68e734981917d82940c3f4","unresolved":false,"context_lines":[{"line_number":406,"context_line":"        pass"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"    def _verify_clone_size(self, snapshot, size):"},{"line_number":409,"context_line":"        \"\"\"Check whether the clone size is the same as the parent volume\"\"\""},{"line_number":410,"context_line":"        lcfg \u003d self.configuration"},{"line_number":411,"context_line":"        lun \u003d self.zfssa.get_lun(lcfg.zfssa_pool,"},{"line_number":412,"context_line":"                                 lcfg.zfssa_project,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3afb71cf_bb7d3b1e","line":409,"updated":"2015-06-07 20:33:08.000000000","message":"nitpicky: [.] missing at the end of the statement","commit_id":"00bd02f2e65491d34a203505d0299f0fc07a1635"},{"author":{"_account_id":13524,"name":"Diem Tran","email":"diem.tran@oracle.com","username":"dttran"},"change_message_id":"75213c8d9bf0f69133b2344c2ec369483055c8b9","unresolved":false,"context_lines":[{"line_number":406,"context_line":"        pass"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"    def _verify_clone_size(self, snapshot, size):"},{"line_number":409,"context_line":"        \"\"\"Check whether the clone size is the same as the parent volume\"\"\""},{"line_number":410,"context_line":"        lcfg \u003d self.configuration"},{"line_number":411,"context_line":"        lun \u003d self.zfssa.get_lun(lcfg.zfssa_pool,"},{"line_number":412,"context_line":"                                 lcfg.zfssa_project,"}],"source_content_type":"text/x-python","patch_set":9,"id":"3afb71cf_597993c7","line":409,"in_reply_to":"3afb71cf_bb7d3b1e","updated":"2015-06-08 16:15:40.000000000","message":"I will fix this with other major changes.","commit_id":"00bd02f2e65491d34a203505d0299f0fc07a1635"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e1e713cfadba20204a7c7f356e8c2ea63af5dce5","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    cfg.StrOpt(\u0027zfssa_lun_volblocksize\u0027, default\u003d\u00278k\u0027,"},{"line_number":40,"context_line":"               choices\u003d[\u0027512\u0027, \u00271k\u0027, \u00272k\u0027, \u00274k\u0027, \u00278k\u0027, \u002716k\u0027, \u002732k\u0027, \u002764k\u0027,"},{"line_number":41,"context_line":"                        \u0027128k\u0027],"},{"line_number":42,"context_line":"               help\u003d\u0027Block size.\u0027),"},{"line_number":43,"context_line":"    cfg.BoolOpt(\u0027zfssa_lun_sparse\u0027, default\u003dFalse,"},{"line_number":44,"context_line":"                help\u003d\u0027Flag to enable sparse (thin-provisioned): True, False.\u0027),"},{"line_number":45,"context_line":"    cfg.StrOpt(\u0027zfssa_lun_compression\u0027, default\u003d\u0027off\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"1af86dd1_74001fab","line":42,"updated":"2015-06-12 13:09:46.000000000","message":"Descriptions should be expanded to be a little more useful.","commit_id":"fffca6545821e9af12c4f5d02af80d1ce1ad0abf"}]}
