{"action":"opened","number":8,"pull_request":{"url":"https://api.github.com/repos/pegasus-isi/pegasus/pulls/8","id":92442067,"html_url":"https://github.com/pegasus-isi/pegasus/pull/8","diff_url":"https://github.com/pegasus-isi/pegasus/pull/8.diff","patch_url":"https://github.com/pegasus-isi/pegasus/pull/8.patch","issue_url":"https://api.github.com/repos/pegasus-isi/pegasus/issues/8","number":8,"state":"open","locked":false,"title":"Fix for PM-1135 pegasus.transfer.bypass.input.staging breaks symlinking","user":{"login":"duncan-brown","id":11262902,"avatar_url":"https://avatars.githubusercontent.com/u/11262902?v=3","gravatar_id":"","url":"https://api.github.com/users/duncan-brown","html_url":"https://github.com/duncan-brown","followers_url":"https://api.github.com/users/duncan-brown/followers","following_url":"https://api.github.com/users/duncan-brown/following{/other_user}","gists_url":"https://api.github.com/users/duncan-brown/gists{/gist_id}","starred_url":"https://api.github.com/users/duncan-brown/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/duncan-brown/subscriptions","organizations_url":"https://api.github.com/users/duncan-brown/orgs","repos_url":"https://api.github.com/users/duncan-brown/repos","events_url":"https://api.github.com/users/duncan-brown/events{/privacy}","received_events_url":"https://api.github.com/users/duncan-brown/received_events","type":"User","site_admin":false},"body":"Patch https://github.com/pegasus-isi/pegasus/commit/f8ad37a9ec239e0ce60da5ee0063e09bd131fc1f passes the value of ``pegasus.transfer.links`` down to the Python layer by adding the option ``--symlink`` to the invocation of ``pegasus-transfer`` for jobs that transfer the input data in the pegasus lite script. No other transfer jobs are affected, to avoid any problems with files than might be cleaned up later.\r\nThis patch assumes that the data in the pegasus scratch directory that the job actually runs in are transient, which should be a safe assumption.\r\n\r\nPatch https://github.com/pegasus-isi/pegasus/commit/15292e64d3a7bf64127b4bffc843cbb891be10a7 allows for the case where the symlink points to an executable that the user might not own. In which case the chmod would fail due to bad permissions. If ``pegasus.transfer.links`` is true, we wrap this in a ``set +/-e`` to avoid the whole job aborting.\r\n\r\nPatch https://github.com/pegasus-isi/pegasus/commit/37e702f8f7239c17ab614238220b540690774f7d implements the option ``--symlink`` in``pegasus-transfer`` and use ``ln`` rather than ``cp`` if it is set. This is guaranteed to be safe, as if ``cp`` works, then so must ``ln`` and we've already checked that src and dest are not the same inode. ","created_at":"2016-11-05T04:32:00Z","updated_at":"2016-11-05T04:32:00Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/pegasus-isi/pegasus/pulls/8/commits","review_comments_url":"https://api.github.com/repos/pegasus-isi/pegasus/pulls/8/comments","review_comment_url":"https://api.github.com/repos/pegasus-isi/pegasus/pulls/comments{/number}","comments_url":"https://api.github.com/repos/pegasus-isi/pegasus/issues/8/comments","statuses_url":"https://api.github.com/repos/pegasus-isi/pegasus/statuses/37e702f8f7239c17ab614238220b540690774f7d","head":{"label":"duncan-brown:symlink_bug","ref":"symlink_bug","sha":"37e702f8f7239c17ab614238220b540690774f7d","user":{"login":"duncan-brown","id":11262902,"avatar_url":"https://avatars.githubusercontent.com/u/11262902?v=3","gravatar_id":"","url":"https://api.github.com/users/duncan-brown","html_url":"https://github.com/duncan-brown","followers_url":"https://api.github.com/users/duncan-brown/followers","following_url":"https://api.github.com/users/duncan-brown/following{/other_user}","gists_url":"https://api.github.com/users/duncan-brown/gists{/gist_id}","starred_url":"https://api.github.com/users/duncan-brown/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/duncan-brown/subscriptions","organizations_url":"https://api.github.com/users/duncan-brown/orgs","repos_url":"https://api.github.com/users/duncan-brown/repos","events_url":"https://api.github.com/users/duncan-brown/events{/privacy}","received_events_url":"https://api.github.com/users/duncan-brown/received_events","type":"User","site_admin":false},"repo":{"id":41554391,"name":"pegasus","full_name":"duncan-brown/pegasus","owner":{"login":"duncan-brown","id":11262902,"avatar_url":"https://avatars.githubusercontent.com/u/11262902?v=3","gravatar_id":"","url":"https://api.github.com/users/duncan-brown","html_url":"https://github.com/duncan-brown","followers_url":"https://api.github.com/users/duncan-brown/followers","following_url":"https://api.github.com/users/duncan-brown/following{/other_user}","gists_url":"https://api.github.com/users/duncan-brown/gists{/gist_id}","starred_url":"https://api.github.com/users/duncan-brown/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/duncan-brown/subscriptions","organizations_url":"https://api.github.com/users/duncan-brown/orgs","repos_url":"https://api.github.com/users/duncan-brown/repos","events_url":"https://api.github.com/users/duncan-brown/events{/privacy}","received_events_url":"https://api.github.com/users/duncan-brown/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/duncan-brown/pegasus","description":"Pegasus Workflow Management System","fork":true,"url":"https://api.github.com/repos/duncan-brown/pegasus","forks_url":"https://api.github.com/repos/duncan-brown/pegasus/forks","keys_url":"https://api.github.com/repos/duncan-brown/pegasus/keys{/key_id}","collaborators_url":"https://api.github.com/repos/duncan-brown/pegasus/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/duncan-brown/pegasus/teams","hooks_url":"https://api.github.com/repos/duncan-brown/pegasus/hooks","issue_events_url":"https://api.github.com/repos/duncan-brown/pegasus/issues/events{/number}","events_url":"https://api.github.com/repos/duncan-brown/pegasus/events","assignees_url":"https://api.github.com/repos/duncan-brown/pegasus/assignees{/user}","branches_url":"https://api.github.com/repos/duncan-brown/pegasus/branches{/branch}","tags_url":"https://api.github.com/repos/duncan-brown/pegasus/tags","blobs_url":"https://api.github.com/repos/duncan-brown/pegasus/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/duncan-brown/pegasus/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/duncan-brown/pegasus/git/refs{/sha}","trees_url":"https://api.github.com/repos/duncan-brown/pegasus/git/trees{/sha}","statuses_url":"https://api.github.com/repos/duncan-brown/pegasus/statuses/{sha}","languages_url":"https://api.github.com/repos/duncan-brown/pegasus/languages","stargazers_url":"https://api.github.com/repos/duncan-brown/pegasus/stargazers","contributors_url":"https://api.github.com/repos/duncan-brown/pegasus/contributors","subscribers_url":"https://api.github.com/repos/duncan-brown/pegasus/subscribers","subscription_url":"https://api.github.com/repos/duncan-brown/pegasus/subscription","commits_url":"https://api.github.com/repos/duncan-brown/pegasus/commits{/sha}","git_commits_url":"https://api.github.com/repos/duncan-brown/pegasus/git/commits{/sha}","comments_url":"https://api.github.com/repos/duncan-brown/pegasus/comments{/number}","issue_comment_url":"https://api.github.com/repos/duncan-brown/pegasus/issues/comments{/number}","contents_url":"https://api.github.com/repos/duncan-brown/pegasus/contents/{+path}","compare_url":"https://api.github.com/repos/duncan-brown/pegasus/compare/{base}...{head}","merges_url":"https://api.github.com/repos/duncan-brown/pegasus/merges","archive_url":"https://api.github.com/repos/duncan-brown/pegasus/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/duncan-brown/pegasus/downloads","issues_url":"https://api.github.com/repos/duncan-brown/pegasus/issues{/number}","pulls_url":"https://api.github.com/repos/duncan-brown/pegasus/pulls{/number}","milestones_url":"https://api.github.com/repos/duncan-brown/pegasus/milestones{/number}","notifications_url":"https://api.github.com/repos/duncan-brown/pegasus/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/duncan-brown/pegasus/labels{/name}","releases_url":"https://api.github.com/repos/duncan-brown/pegasus/releases{/id}","deployments_url":"https://api.github.com/repos/duncan-brown/pegasus/deployments","created_at":"2015-08-28T15:22:03Z","updated_at":"2016-11-05T02:46:52Z","pushed_at":"2016-11-05T04:24:40Z","git_url":"git://github.com/duncan-brown/pegasus.git","ssh_url":"git@github.com:duncan-brown/pegasus.git","clone_url":"https://github.com/duncan-brown/pegasus.git","svn_url":"https://github.com/duncan-brown/pegasus","homepage":null,"size":175662,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"pegasus-isi:master","ref":"master","sha":"b098c27a1a16552e6e712d4be55b663c4f399829","user":{"login":"pegasus-isi","id":3019875,"avatar_url":"https://avatars.githubusercontent.com/u/3019875?v=3","gravatar_id":"","url":"https://api.github.com/users/pegasus-isi","html_url":"https://github.com/pegasus-isi","followers_url":"https://api.github.com/users/pegasus-isi/followers","following_url":"https://api.github.com/users/pegasus-isi/following{/other_user}","gists_url":"https://api.github.com/users/pegasus-isi/gists{/gist_id}","starred_url":"https://api.github.com/users/pegasus-isi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pegasus-isi/subscriptions","organizations_url":"https://api.github.com/users/pegasus-isi/orgs","repos_url":"https://api.github.com/users/pegasus-isi/repos","events_url":"https://api.github.com/users/pegasus-isi/events{/privacy}","received_events_url":"https://api.github.com/users/pegasus-isi/received_events","type":"Organization","site_admin":false},"repo":{"id":8016431,"name":"pegasus","full_name":"pegasus-isi/pegasus","owner":{"login":"pegasus-isi","id":3019875,"avatar_url":"https://avatars.githubusercontent.com/u/3019875?v=3","gravatar_id":"","url":"https://api.github.com/users/pegasus-isi","html_url":"https://github.com/pegasus-isi","followers_url":"https://api.github.com/users/pegasus-isi/followers","following_url":"https://api.github.com/users/pegasus-isi/following{/other_user}","gists_url":"https://api.github.com/users/pegasus-isi/gists{/gist_id}","starred_url":"https://api.github.com/users/pegasus-isi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pegasus-isi/subscriptions","organizations_url":"https://api.github.com/users/pegasus-isi/orgs","repos_url":"https://api.github.com/users/pegasus-isi/repos","events_url":"https://api.github.com/users/pegasus-isi/events{/privacy}","received_events_url":"https://api.github.com/users/pegasus-isi/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/pegasus-isi/pegasus","description":"Pegasus Workflow Management System","fork":false,"url":"https://api.github.com/repos/pegasus-isi/pegasus","forks_url":"https://api.github.com/repos/pegasus-isi/pegasus/forks","keys_url":"https://api.github.com/repos/pegasus-isi/pegasus/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pegasus-isi/pegasus/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pegasus-isi/pegasus/teams","hooks_url":"https://api.github.com/repos/pegasus-isi/pegasus/hooks","issue_events_url":"https://api.github.com/repos/pegasus-isi/pegasus/issues/events{/number}","events_url":"https://api.github.com/repos/pegasus-isi/pegasus/events","assignees_url":"https://api.github.com/repos/pegasus-isi/pegasus/assignees{/user}","branches_url":"https://api.github.com/repos/pegasus-isi/pegasus/branches{/branch}","tags_url":"https://api.github.com/repos/pegasus-isi/pegasus/tags","blobs_url":"https://api.github.com/repos/pegasus-isi/pegasus/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pegasus-isi/pegasus/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pegasus-isi/pegasus/git/refs{/sha}","trees_url":"https://api.github.com/repos/pegasus-isi/pegasus/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pegasus-isi/pegasus/statuses/{sha}","languages_url":"https://api.github.com/repos/pegasus-isi/pegasus/languages","stargazers_url":"https://api.github.com/repos/pegasus-isi/pegasus/stargazers","contributors_url":"https://api.github.com/repos/pegasus-isi/pegasus/contributors","subscribers_url":"https://api.github.com/repos/pegasus-isi/pegasus/subscribers","subscription_url":"https://api.github.com/repos/pegasus-isi/pegasus/subscription","commits_url":"https://api.github.com/repos/pegasus-isi/pegasus/commits{/sha}","git_commits_url":"https://api.github.com/repos/pegasus-isi/pegasus/git/commits{/sha}","comments_url":"https://api.github.com/repos/pegasus-isi/pegasus/comments{/number}","issue_comment_url":"https://api.github.com/repos/pegasus-isi/pegasus/issues/comments{/number}","contents_url":"https://api.github.com/repos/pegasus-isi/pegasus/contents/{+path}","compare_url":"https://api.github.com/repos/pegasus-isi/pegasus/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pegasus-isi/pegasus/merges","archive_url":"https://api.github.com/repos/pegasus-isi/pegasus/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pegasus-isi/pegasus/downloads","issues_url":"https://api.github.com/repos/pegasus-isi/pegasus/issues{/number}","pulls_url":"https://api.github.com/repos/pegasus-isi/pegasus/pulls{/number}","milestones_url":"https://api.github.com/repos/pegasus-isi/pegasus/milestones{/number}","notifications_url":"https://api.github.com/repos/pegasus-isi/pegasus/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pegasus-isi/pegasus/labels{/name}","releases_url":"https://api.github.com/repos/pegasus-isi/pegasus/releases{/id}","deployments_url":"https://api.github.com/repos/pegasus-isi/pegasus/deployments","created_at":"2013-02-04T21:18:31Z","updated_at":"2016-11-03T17:35:36Z","pushed_at":"2016-11-05T04:32:02Z","git_url":"git://github.com/pegasus-isi/pegasus.git","ssh_url":"git@github.com:pegasus-isi/pegasus.git","clone_url":"https://github.com/pegasus-isi/pegasus.git","svn_url":"https://github.com/pegasus-isi/pegasus","homepage":null,"size":182584,"stargazers_count":36,"watchers_count":36,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":26,"mirror_url":null,"open_issues_count":1,"forks":26,"open_issues":1,"watchers":36,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/pegasus-isi/pegasus/pulls/8"},"html":{"href":"https://github.com/pegasus-isi/pegasus/pull/8"},"issue":{"href":"https://api.github.com/repos/pegasus-isi/pegasus/issues/8"},"comments":{"href":"https://api.github.com/repos/pegasus-isi/pegasus/issues/8/comments"},"review_comments":{"href":"https://api.github.com/repos/pegasus-isi/pegasus/pulls/8/comments"},"review_comment":{"href":"https://api.github.com/repos/pegasus-isi/pegasus/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/pegasus-isi/pegasus/pulls/8/commits"},"statuses":{"href":"https://api.github.com/repos/pegasus-isi/pegasus/statuses/37e702f8f7239c17ab614238220b540690774f7d"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":3,"additions":38,"deletions":2,"changed_files":2}}
{"actor":{"display_login":"duncan-brown"}}