{"action":"created","comment":{"url":"https://api.github.com/repos/OpenKMIP/PyKMIP/pulls/comments/35062118","id":35062118,"diff_hunk":"@@ -217,6 +217,7 @@ def open(self):\n             suppress_ragged_eofs=self.suppress_ragged_eofs)\n         self.protocol = KMIPProtocol(self.socket)\n \n+        self.socket.settimeout(self.timeout)","path":"kmip/services/kmip_client.py","position":22,"original_position":22,"commit_id":"48ec2dc2ec0eac0cc6a88d980d2a7bfb7ad5283d","original_commit_id":"48ec2dc2ec0eac0cc6a88d980d2a7bfb7ad5283d","user":{"login":"sedukull","id":4663154,"avatar_url":"https://avatars.githubusercontent.com/u/4663154?v=3","gravatar_id":"","url":"https://api.github.com/users/sedukull","html_url":"https://github.com/sedukull","followers_url":"https://api.github.com/users/sedukull/followers","following_url":"https://api.github.com/users/sedukull/following{/other_user}","gists_url":"https://api.github.com/users/sedukull/gists{/gist_id}","starred_url":"https://api.github.com/users/sedukull/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sedukull/subscriptions","organizations_url":"https://api.github.com/users/sedukull/orgs","repos_url":"https://api.github.com/users/sedukull/repos","events_url":"https://api.github.com/users/sedukull/events{/privacy}","received_events_url":"https://api.github.com/users/sedukull/received_events","type":"User","site_admin":false},"body":"Peter,\r\n\r\nWe have two notes to consider i believe, one is connection time out and another is socket time out. Connection time out especially should work when establishing a connection to kmip server. Another is socket timeout, used for kmip operations where kmip operations can perform especially batch operations EX: Kmip protocol when used for data encryption depending upon the batch operations supported and data payload, can still be a blocking socket call i believe. I mean once the connection is established, make the socket a blocking once again. Even if user provides timeout while creating a kmipproxy instance, he still with this implementation can provide only one timeout.","created_at":"2015-07-21T01:15:01Z","updated_at":"2015-07-21T01:15:01Z","html_url":"https://github.com/OpenKMIP/PyKMIP/pull/52#discussion_r35062118","pull_request_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/pulls/52","_links":{"self":{"href":"https://api.github.com/repos/OpenKMIP/PyKMIP/pulls/comments/35062118"},"html":{"href":"https://github.com/OpenKMIP/PyKMIP/pull/52#discussion_r35062118"},"pull_request":{"href":"https://api.github.com/repos/OpenKMIP/PyKMIP/pulls/52"}}},"pull_request":{"url":"https://api.github.com/repos/OpenKMIP/PyKMIP/pulls/52","id":40127940,"html_url":"https://github.com/OpenKMIP/PyKMIP/pull/52","diff_url":"https://github.com/OpenKMIP/PyKMIP/pull/52.diff","patch_url":"https://github.com/OpenKMIP/PyKMIP/pull/52.patch","issue_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/issues/52","number":52,"state":"open","locked":false,"title":"Adding customizable timeout support to the KMIP client","user":{"login":"PeterHamilton","id":8269688,"avatar_url":"https://avatars.githubusercontent.com/u/8269688?v=3","gravatar_id":"","url":"https://api.github.com/users/PeterHamilton","html_url":"https://github.com/PeterHamilton","followers_url":"https://api.github.com/users/PeterHamilton/followers","following_url":"https://api.github.com/users/PeterHamilton/following{/other_user}","gists_url":"https://api.github.com/users/PeterHamilton/gists{/gist_id}","starred_url":"https://api.github.com/users/PeterHamilton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PeterHamilton/subscriptions","organizations_url":"https://api.github.com/users/PeterHamilton/orgs","repos_url":"https://api.github.com/users/PeterHamilton/repos","events_url":"https://api.github.com/users/PeterHamilton/events{/privacy}","received_events_url":"https://api.github.com/users/PeterHamilton/received_events","type":"User","site_admin":false},"body":"This change adds support for a customizable timeout option for the KMIP client. The client will stop attempting connections or operations once the timeout is exceeded instead of waiting for the default system timeout. The default timeouts is 30 seconds.","created_at":"2015-07-16T13:19:02Z","updated_at":"2015-07-21T01:15:01Z","closed_at":null,"merged_at":null,"merge_commit_sha":"95760e76f7afa96c8c4ee7195ba6525a014dc13a","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/pulls/52/commits","review_comments_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/pulls/52/comments","review_comment_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/pulls/comments{/number}","comments_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/issues/52/comments","statuses_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/statuses/48ec2dc2ec0eac0cc6a88d980d2a7bfb7ad5283d","head":{"label":"OpenKMIP:feat/add-client-timeout","ref":"feat/add-client-timeout","sha":"48ec2dc2ec0eac0cc6a88d980d2a7bfb7ad5283d","user":{"login":"OpenKMIP","id":8350747,"avatar_url":"https://avatars.githubusercontent.com/u/8350747?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenKMIP","html_url":"https://github.com/OpenKMIP","followers_url":"https://api.github.com/users/OpenKMIP/followers","following_url":"https://api.github.com/users/OpenKMIP/following{/other_user}","gists_url":"https://api.github.com/users/OpenKMIP/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenKMIP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenKMIP/subscriptions","organizations_url":"https://api.github.com/users/OpenKMIP/orgs","repos_url":"https://api.github.com/users/OpenKMIP/repos","events_url":"https://api.github.com/users/OpenKMIP/events{/privacy}","received_events_url":"https://api.github.com/users/OpenKMIP/received_events","type":"Organization","site_admin":false},"repo":{"id":22601443,"name":"PyKMIP","full_name":"OpenKMIP/PyKMIP","owner":{"login":"OpenKMIP","id":8350747,"avatar_url":"https://avatars.githubusercontent.com/u/8350747?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenKMIP","html_url":"https://github.com/OpenKMIP","followers_url":"https://api.github.com/users/OpenKMIP/followers","following_url":"https://api.github.com/users/OpenKMIP/following{/other_user}","gists_url":"https://api.github.com/users/OpenKMIP/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenKMIP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenKMIP/subscriptions","organizations_url":"https://api.github.com/users/OpenKMIP/orgs","repos_url":"https://api.github.com/users/OpenKMIP/repos","events_url":"https://api.github.com/users/OpenKMIP/events{/privacy}","received_events_url":"https://api.github.com/users/OpenKMIP/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/OpenKMIP/PyKMIP","description":"Open source Python implementation of the KMIP 1.1 specification.","fork":false,"url":"https://api.github.com/repos/OpenKMIP/PyKMIP","forks_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/forks","keys_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/teams","hooks_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/hooks","issue_events_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/issues/events{/number}","events_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/events","assignees_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/assignees{/user}","branches_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/branches{/branch}","tags_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/tags","blobs_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/git/refs{/sha}","trees_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/statuses/{sha}","languages_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/languages","stargazers_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/stargazers","contributors_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/contributors","subscribers_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/subscribers","subscription_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/subscription","commits_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/commits{/sha}","git_commits_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/git/commits{/sha}","comments_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/comments{/number}","issue_comment_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/issues/comments{/number}","contents_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/contents/{+path}","compare_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/merges","archive_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/downloads","issues_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/issues{/number}","pulls_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/pulls{/number}","milestones_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/milestones{/number}","notifications_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/labels{/name}","releases_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/releases{/id}","created_at":"2014-08-04T11:14:51Z","updated_at":"2015-06-16T07:15:48Z","pushed_at":"2015-07-20T19:06:20Z","git_url":"git://github.com/OpenKMIP/PyKMIP.git","ssh_url":"git@github.com:OpenKMIP/PyKMIP.git","clone_url":"https://github.com/OpenKMIP/PyKMIP.git","svn_url":"https://github.com/OpenKMIP/PyKMIP","homepage":null,"size":1679,"stargazers_count":7,"watchers_count":7,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":7,"mirror_url":null,"open_issues_count":7,"forks":7,"open_issues":7,"watchers":7,"default_branch":"master"}},"base":{"label":"OpenKMIP:master","ref":"master","sha":"57710db3dc7d03a5bda6395443d800c018bc9d84","user":{"login":"OpenKMIP","id":8350747,"avatar_url":"https://avatars.githubusercontent.com/u/8350747?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenKMIP","html_url":"https://github.com/OpenKMIP","followers_url":"https://api.github.com/users/OpenKMIP/followers","following_url":"https://api.github.com/users/OpenKMIP/following{/other_user}","gists_url":"https://api.github.com/users/OpenKMIP/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenKMIP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenKMIP/subscriptions","organizations_url":"https://api.github.com/users/OpenKMIP/orgs","repos_url":"https://api.github.com/users/OpenKMIP/repos","events_url":"https://api.github.com/users/OpenKMIP/events{/privacy}","received_events_url":"https://api.github.com/users/OpenKMIP/received_events","type":"Organization","site_admin":false},"repo":{"id":22601443,"name":"PyKMIP","full_name":"OpenKMIP/PyKMIP","owner":{"login":"OpenKMIP","id":8350747,"avatar_url":"https://avatars.githubusercontent.com/u/8350747?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenKMIP","html_url":"https://github.com/OpenKMIP","followers_url":"https://api.github.com/users/OpenKMIP/followers","following_url":"https://api.github.com/users/OpenKMIP/following{/other_user}","gists_url":"https://api.github.com/users/OpenKMIP/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenKMIP/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenKMIP/subscriptions","organizations_url":"https://api.github.com/users/OpenKMIP/orgs","repos_url":"https://api.github.com/users/OpenKMIP/repos","events_url":"https://api.github.com/users/OpenKMIP/events{/privacy}","received_events_url":"https://api.github.com/users/OpenKMIP/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/OpenKMIP/PyKMIP","description":"Open source Python implementation of the KMIP 1.1 specification.","fork":false,"url":"https://api.github.com/repos/OpenKMIP/PyKMIP","forks_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/forks","keys_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/teams","hooks_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/hooks","issue_events_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/issues/events{/number}","events_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/events","assignees_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/assignees{/user}","branches_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/branches{/branch}","tags_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/tags","blobs_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/git/refs{/sha}","trees_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/statuses/{sha}","languages_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/languages","stargazers_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/stargazers","contributors_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/contributors","subscribers_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/subscribers","subscription_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/subscription","commits_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/commits{/sha}","git_commits_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/git/commits{/sha}","comments_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/comments{/number}","issue_comment_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/issues/comments{/number}","contents_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/contents/{+path}","compare_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/merges","archive_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/downloads","issues_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/issues{/number}","pulls_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/pulls{/number}","milestones_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/milestones{/number}","notifications_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/labels{/name}","releases_url":"https://api.github.com/repos/OpenKMIP/PyKMIP/releases{/id}","created_at":"2014-08-04T11:14:51Z","updated_at":"2015-06-16T07:15:48Z","pushed_at":"2015-07-20T19:06:20Z","git_url":"git://github.com/OpenKMIP/PyKMIP.git","ssh_url":"git@github.com:OpenKMIP/PyKMIP.git","clone_url":"https://github.com/OpenKMIP/PyKMIP.git","svn_url":"https://github.com/OpenKMIP/PyKMIP","homepage":null,"size":1679,"stargazers_count":7,"watchers_count":7,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":7,"mirror_url":null,"open_issues_count":7,"forks":7,"open_issues":7,"watchers":7,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/OpenKMIP/PyKMIP/pulls/52"},"html":{"href":"https://github.com/OpenKMIP/PyKMIP/pull/52"},"issue":{"href":"https://api.github.com/repos/OpenKMIP/PyKMIP/issues/52"},"comments":{"href":"https://api.github.com/repos/OpenKMIP/PyKMIP/issues/52/comments"},"review_comments":{"href":"https://api.github.com/repos/OpenKMIP/PyKMIP/pulls/52/comments"},"review_comment":{"href":"https://api.github.com/repos/OpenKMIP/PyKMIP/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/OpenKMIP/PyKMIP/pulls/52/commits"},"statuses":{"href":"https://api.github.com/repos/OpenKMIP/PyKMIP/statuses/48ec2dc2ec0eac0cc6a88d980d2a7bfb7ad5283d"}}}}