)]}'
{"cinder/volume/driver.py":[{"author":{"_account_id":1082,"name":"Scott Moser","email":"smoser@ubuntu.com","username":"smoser"},"change_message_id":"b0627582a9132d6cbfa6e66406ad2e235b814c43","unresolved":false,"context_lines":[{"line_number":299,"context_line":"    def ensure_export(self, context, volume):"},{"line_number":300,"context_line":"        \"\"\"Synchronously recreates an export for a logical volume.\"\"\""},{"line_number":301,"context_line":"        # NOTE(jdg): tgtadm doesn\u0027t use the iscsi_targets table"},{"line_number":302,"context_line":"        if self.tgtadm.__class__.__name__ !\u003d \u0027TgtAdm\u0027:"},{"line_number":303,"context_line":"            try:"},{"line_number":304,"context_line":"                iscsi_target \u003d self.db.volume_get_iscsi_target_num(context,"},{"line_number":305,"context_line":"                                                               volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2FkZs%3D","line":302,"updated":"2012-08-30 15:48:54.000000000","message":"2 things here.\na.) wouldn\u0027t it be better to use \u0027isinstance\u0027 here?\n if isinstance(self.tgtadm, TgtAdm\nb.) I realize that we\u0027re trying to avoid invasive changes at this point, but rather than\nhaving knowledge about the specific TargetAdmin class here (TgtAdm or IetAdm) \nwouldn\u0027t we want to put that into the classes themselves?","commit_id":"afca729f3f5cc5f79b44b2b1a1b31af346d2c60c"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"45f343f3a3a0d56a7014457635a7bfed82d734c0","unresolved":false,"context_lines":[{"line_number":299,"context_line":"    def ensure_export(self, context, volume):"},{"line_number":300,"context_line":"        \"\"\"Synchronously recreates an export for a logical volume.\"\"\""},{"line_number":301,"context_line":"        # NOTE(jdg): tgtadm doesn\u0027t use the iscsi_targets table"},{"line_number":302,"context_line":"        if self.tgtadm.__class__.__name__ !\u003d \u0027TgtAdm\u0027:"},{"line_number":303,"context_line":"            try:"},{"line_number":304,"context_line":"                iscsi_target \u003d self.db.volume_get_iscsi_target_num(context,"},{"line_number":305,"context_line":"                                                               volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2FkY4%3D","line":302,"in_reply_to":"AAAALH%2F%2FkZs%3D","updated":"2012-08-30 15:54:08.000000000","message":"Huh... I may have rabbit holed this a bit.  Just move the DB calls and such that are specific to IET into the iscsi.py IET class and keep the driver itself clean.\n\nExcellent point, be done with the whole checking out here in the driver altogether,","commit_id":"afca729f3f5cc5f79b44b2b1a1b31af346d2c60c"},{"author":{"_account_id":1082,"name":"Scott Moser","email":"smoser@ubuntu.com","username":"smoser"},"change_message_id":"b0627582a9132d6cbfa6e66406ad2e235b814c43","unresolved":false,"context_lines":[{"line_number":523,"context_line":"            iqn \u003d \u0027%s%s\u0027 % (FLAGS.iscsi_target_prefix,"},{"line_number":524,"context_line":"                            vol_uuid_file)"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"        if self.tgtadm.__class__.__name__ !\u003d \u0027TgtAdm\u0027:"},{"line_number":527,"context_line":"            tid \u003d self.db.volume_get_iscsi_target_num(context, volume_id)"},{"line_number":528,"context_line":"        else:"},{"line_number":529,"context_line":"            tid \u003d 0"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2FkZc%3D","line":526,"updated":"2012-08-30 15:48:54.000000000","message":"isinstance?","commit_id":"afca729f3f5cc5f79b44b2b1a1b31af346d2c60c"},{"author":{"_account_id":1082,"name":"Scott Moser","email":"smoser@ubuntu.com","username":"smoser"},"change_message_id":"fbbadd20e7f98a22966c6e642d25624550ebdf79","unresolved":false,"context_lines":[{"line_number":529,"context_line":"        volume_path \u003d os.path.join(FLAGS.volumes_dir, vol_uuid_file)"},{"line_number":530,"context_line":"        if os.path.isfile(volume_path):"},{"line_number":531,"context_line":"            iqn \u003d \u0027%s%s\u0027 % (FLAGS.iscsi_target_prefix,"},{"line_number":532,"context_line":"                            vol_uuid_file)"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"        # TODO(jdg): In the future move all of the dependent stuff into the"},{"line_number":535,"context_line":"        # cooresponding target admin class"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALH%2F%2FkI4%3D","line":532,"updated":"2012-08-30 20:29:03.000000000","message":"If os.path.isfile(volume_path) is false, then iqn will not be defined, but you will continue on and use it down below (passing to show_target).","commit_id":"1d046c815d45a913c49ce4f9cf9542a2b5b1d26a"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"eecb00814802beb020345371bdceb43c05497648","unresolved":false,"context_lines":[{"line_number":529,"context_line":"        volume_path \u003d os.path.join(FLAGS.volumes_dir, vol_uuid_file)"},{"line_number":530,"context_line":"        if os.path.isfile(volume_path):"},{"line_number":531,"context_line":"            iqn \u003d \u0027%s%s\u0027 % (FLAGS.iscsi_target_prefix,"},{"line_number":532,"context_line":"                            vol_uuid_file)"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"        # TODO(jdg): In the future move all of the dependent stuff into the"},{"line_number":535,"context_line":"        # cooresponding target admin class"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALH%2F%2FkEY%3D","line":532,"in_reply_to":"AAAALH%2F%2FkI4%3D","updated":"2012-08-30 20:58:57.000000000","message":"Done","commit_id":"1d046c815d45a913c49ce4f9cf9542a2b5b1d26a"}],"cinder/volume/iscsi.py":[{"author":{"_account_id":1082,"name":"Scott Moser","email":"smoser@ubuntu.com","username":"smoser"},"change_message_id":"b0627582a9132d6cbfa6e66406ad2e235b814c43","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"            #Dont forget to remove the persistent file we created"},{"line_number":139,"context_line":"            os.unlink(volume_path)"},{"line_number":140,"context_line":"            raise"},{"line_number":141,"context_line":"        iqn \u003d \u0027%s%s\u0027 % (FLAGS.iscsi_target_prefix, vol_id)"},{"line_number":142,"context_line":"        tid \u003d self._get_target(iqn)"},{"line_number":143,"context_line":"        if tid is None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2FkZQ%3D","line":140,"updated":"2012-08-30 15:48:54.000000000","message":"should you raise ISCSITargetCreateFailed here?  You added those Exceptions.","commit_id":"afca729f3f5cc5f79b44b2b1a1b31af346d2c60c"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"45f343f3a3a0d56a7014457635a7bfed82d734c0","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"            #Dont forget to remove the persistent file we created"},{"line_number":139,"context_line":"            os.unlink(volume_path)"},{"line_number":140,"context_line":"            raise"},{"line_number":141,"context_line":"        iqn \u003d \u0027%s%s\u0027 % (FLAGS.iscsi_target_prefix, vol_id)"},{"line_number":142,"context_line":"        tid \u003d self._get_target(iqn)"},{"line_number":143,"context_line":"        if tid is None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2FkZA%3D","line":140,"in_reply_to":"AAAALH%2F%2FkZQ%3D","updated":"2012-08-30 15:54:08.000000000","message":"Yes... lost in edits","commit_id":"afca729f3f5cc5f79b44b2b1a1b31af346d2c60c"},{"author":{"_account_id":1082,"name":"Scott Moser","email":"smoser@ubuntu.com","username":"smoser"},"change_message_id":"b0627582a9132d6cbfa6e66406ad2e235b814c43","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        except exception.ProcessExecutionError, e:"},{"line_number":163,"context_line":"            LOG.error(_(\"Failed to create iscsi target for volume \""},{"line_number":164,"context_line":"                        \"id:%(volume_id)s.\") % locals())"},{"line_number":165,"context_line":"            raise"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        os.unlink(volume_path)"},{"line_number":168,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2FkZM%3D","line":165,"updated":"2012-08-30 15:48:54.000000000","message":"ISCSITargetRemoveFailed ?","commit_id":"afca729f3f5cc5f79b44b2b1a1b31af346d2c60c"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"45f343f3a3a0d56a7014457635a7bfed82d734c0","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        except exception.ProcessExecutionError, e:"},{"line_number":163,"context_line":"            LOG.error(_(\"Failed to create iscsi target for volume \""},{"line_number":164,"context_line":"                        \"id:%(volume_id)s.\") % locals())"},{"line_number":165,"context_line":"            raise"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        os.unlink(volume_path)"},{"line_number":168,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2FkZE%3D","line":165,"in_reply_to":"AAAALH%2F%2FkZM%3D","updated":"2012-08-30 15:54:08.000000000","message":"Yes, lost in edits...","commit_id":"afca729f3f5cc5f79b44b2b1a1b31af346d2c60c"},{"author":{"_account_id":1082,"name":"Scott Moser","email":"smoser@ubuntu.com","username":"smoser"},"change_message_id":"fbbadd20e7f98a22966c6e642d25624550ebdf79","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        LOG.info(_(\u0027Creating volume: %s\u0027) % vol_id)"},{"line_number":123,"context_line":"        volume_path \u003d os.path.join(FLAGS.volumes_dir, vol_id)"},{"line_number":124,"context_line":"        if not os.path.isfile(volume_path):"},{"line_number":125,"context_line":"            f \u003d open(volume_path, \u0027w+\u0027)"},{"line_number":126,"context_line":"            f.write(volume_conf)"},{"line_number":127,"context_line":"            f.close()"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALH%2F%2FkIU%3D","line":125,"updated":"2012-08-30 20:29:03.000000000","message":"it seems strange to check for the existance of the file.\nwhat would result in the file being there?\nwould it ever be the case that the data in the file was *right* and this data was wrong?","commit_id":"1d046c815d45a913c49ce4f9cf9542a2b5b1d26a"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"eecb00814802beb020345371bdceb43c05497648","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        LOG.info(_(\u0027Creating volume: %s\u0027) % vol_id)"},{"line_number":123,"context_line":"        volume_path \u003d os.path.join(FLAGS.volumes_dir, vol_id)"},{"line_number":124,"context_line":"        if not os.path.isfile(volume_path):"},{"line_number":125,"context_line":"            f \u003d open(volume_path, \u0027w+\u0027)"},{"line_number":126,"context_line":"            f.write(volume_conf)"},{"line_number":127,"context_line":"            f.close()"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALH%2F%2FkEQ%3D","line":125,"in_reply_to":"AAAALH%2F%2FkIU%3D","updated":"2012-08-30 20:58:57.000000000","message":"Done","commit_id":"1d046c815d45a913c49ce4f9cf9542a2b5b1d26a"}]}
