)]}'
{"cinder/utils.py":[{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"ea8aa8dbe1148ff641c90c04b1eacda6f86882eb","unresolved":false,"context_lines":[{"line_number":352,"context_line":"        return self.channel.get()"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    def remove(self, ssh):"},{"line_number":355,"context_line":"        \"Close an ssh client and remove it from free_items.\""},{"line_number":356,"context_line":"        ssh.close()"},{"line_number":357,"context_line":"        ssh \u003d None"},{"line_number":358,"context_line":"        if ssh in self.free_items:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F6wI%3D","line":355,"updated":"2013-04-11 17:00:56.000000000","message":"I think you are missing \"\"\" at the begining and end","commit_id":"5320fbe2c52dbb7c8cbc39f23246f203c8f44a75"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"a6069943fe3225569f7ec7702893b574c8123eda","unresolved":false,"context_lines":[{"line_number":352,"context_line":"        return self.channel.get()"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    def remove(self, ssh):"},{"line_number":355,"context_line":"        \"Close an ssh client and remove it from free_items.\""},{"line_number":356,"context_line":"        ssh.close()"},{"line_number":357,"context_line":"        ssh \u003d None"},{"line_number":358,"context_line":"        if ssh in self.free_items:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F574%3D","line":355,"in_reply_to":"AAAAOn%2F%2F6wI%3D","updated":"2013-04-12 16:57:51.000000000","message":"Done","commit_id":"5320fbe2c52dbb7c8cbc39f23246f203c8f44a75"}],"cinder/volume/drivers/huawei/huawei_iscsi.py":[{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"683a10c1e0fcdab992701cc1e1bd6d4d747ec33a","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                                      *args, **kwargs)"},{"line_number":63,"context_line":"        self.lock \u003d threading.Lock()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def create(self):"},{"line_number":66,"context_line":"        try:"},{"line_number":67,"context_line":"            ssh \u003d paramiko.SSHClient()"},{"line_number":68,"context_line":"            ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOX%2F%2F6U0%3D","line":65,"updated":"2013-04-07 16:57:35.000000000","message":"This appears to be the same as the method in the parent class... why are you rewriting it here instead of just using the create method in utils.SSHPool?","commit_id":"a5f98160cae9022d701464a98a4cf5d35c99de4d"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"e7d3c8383985e1edd4275a0d3562c16f2b1d5c68","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                                      *args, **kwargs)"},{"line_number":63,"context_line":"        self.lock \u003d threading.Lock()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def create(self):"},{"line_number":66,"context_line":"        try:"},{"line_number":67,"context_line":"            ssh \u003d paramiko.SSHClient()"},{"line_number":68,"context_line":"            ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOX%2F%2F6NM%3D","line":65,"in_reply_to":"AAAAOX%2F%2F6U0%3D","updated":"2013-04-08 02:32:01.000000000","message":"When one SSH client cannot connect to the server/controller,it need to be closed and removed from SSH pool.But I find the thread will be in a deadlock.It seems to because we set socket timeout-time to be None in function create() and when closing transport, in function join(), the thread can not acquire lock.So I rewrite this function and remove \"transport.sock.settimeout(None)\".","commit_id":"a5f98160cae9022d701464a98a4cf5d35c99de4d"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"ea8aa8dbe1148ff641c90c04b1eacda6f86882eb","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    \"\"\"Define a new class inherited to SSHPool."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    This class rewrites method create() and defines a private method"},{"line_number":53,"context_line":"    ssh_read() which reads results of ssh commands.\"\"\""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def __init__(self, ip, port, conn_timeout, login, password,"},{"line_number":56,"context_line":"                 privatekey\u003dNone, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F6wg%3D","line":53,"updated":"2013-04-11 17:00:56.000000000","message":"ntipick can the \"\"\" be on a separate line like you had before","commit_id":"5320fbe2c52dbb7c8cbc39f23246f203c8f44a75"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"a6069943fe3225569f7ec7702893b574c8123eda","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    \"\"\"Define a new class inherited to SSHPool."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    This class rewrites method create() and defines a private method"},{"line_number":53,"context_line":"    ssh_read() which reads results of ssh commands.\"\"\""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def __init__(self, ip, port, conn_timeout, login, password,"},{"line_number":56,"context_line":"                 privatekey\u003dNone, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F57w%3D","line":53,"in_reply_to":"AAAAOn%2F%2F6wg%3D","updated":"2013-04-12 16:57:51.000000000","message":"Done","commit_id":"5320fbe2c52dbb7c8cbc39f23246f203c8f44a75"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"ea8aa8dbe1148ff641c90c04b1eacda6f86882eb","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        \"\"\"Create an SSH client."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        Because seting socket.timeout to be None will cause client.close()"},{"line_number":67,"context_line":"        blocking,here we have to rewrite create()."},{"line_number":68,"context_line":"        \"\"\""},{"line_number":69,"context_line":"        try:"},{"line_number":70,"context_line":"            ssh \u003d paramiko.SSHClient()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F6wY%3D","line":67,"updated":"2013-04-11 17:00:56.000000000","message":"space after the \",\" to make it more readable.","commit_id":"5320fbe2c52dbb7c8cbc39f23246f203c8f44a75"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"a6069943fe3225569f7ec7702893b574c8123eda","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        \"\"\"Create an SSH client."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        Because seting socket.timeout to be None will cause client.close()"},{"line_number":67,"context_line":"        blocking,here we have to rewrite create()."},{"line_number":68,"context_line":"        \"\"\""},{"line_number":69,"context_line":"        try:"},{"line_number":70,"context_line":"            ssh \u003d paramiko.SSHClient()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F570%3D","line":67,"in_reply_to":"AAAAOn%2F%2F6wY%3D","updated":"2013-04-12 16:57:51.000000000","message":"Done","commit_id":"5320fbe2c52dbb7c8cbc39f23246f203c8f44a75"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"30111fc48b96cfb645d84505bd8d6092811b7b0f","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                            password\u003dself.password,"},{"line_number":77,"context_line":"                            timeout\u003dself.conn_timeout)"},{"line_number":78,"context_line":"            elif self.privatekey:"},{"line_number":79,"context_line":"                pkfile \u003d os.path.expanduser(self.privatekey)"},{"line_number":80,"context_line":"                privatekey \u003d paramiko.RSAKey.from_private_key_file(pkfile)"},{"line_number":81,"context_line":"                ssh.connect(self.ip,"},{"line_number":82,"context_line":"                            port\u003dself.port,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F55g%3D","line":79,"updated":"2013-04-12 03:11:15.000000000","message":"os is undefined.","commit_id":"5320fbe2c52dbb7c8cbc39f23246f203c8f44a75"},{"author":{"_account_id":6604,"name":"zhangchao","email":"zhangchao010@huawei.com","username":"zhangchao010"},"change_message_id":"a6069943fe3225569f7ec7702893b574c8123eda","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                            password\u003dself.password,"},{"line_number":77,"context_line":"                            timeout\u003dself.conn_timeout)"},{"line_number":78,"context_line":"            elif self.privatekey:"},{"line_number":79,"context_line":"                pkfile \u003d os.path.expanduser(self.privatekey)"},{"line_number":80,"context_line":"                privatekey \u003d paramiko.RSAKey.from_private_key_file(pkfile)"},{"line_number":81,"context_line":"                ssh.connect(self.ip,"},{"line_number":82,"context_line":"                            port\u003dself.port,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F5P4%3D","line":79,"in_reply_to":"AAAAOn%2F%2F55g%3D","updated":"2013-04-12 16:57:51.000000000","message":"Done","commit_id":"5320fbe2c52dbb7c8cbc39f23246f203c8f44a75"}]}
