{"action":"reopened","number":47322,"pull_request":{"url":"https://api.github.com/repos/ansible/ansible/pulls/47322","id":224115883,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI0MTE1ODgz","html_url":"https://github.com/ansible/ansible/pull/47322","diff_url":"https://github.com/ansible/ansible/pull/47322.diff","patch_url":"https://github.com/ansible/ansible/pull/47322.patch","issue_url":"https://api.github.com/repos/ansible/ansible/issues/47322","number":47322,"state":"open","locked":false,"title":"lineinfile file locking support","user":{"login":"acalm","id":17545952,"node_id":"MDQ6VXNlcjE3NTQ1OTUy","avatar_url":"https://avatars0.githubusercontent.com/u/17545952?v=4","gravatar_id":"","url":"https://api.github.com/users/acalm","html_url":"https://github.com/acalm","followers_url":"https://api.github.com/users/acalm/followers","following_url":"https://api.github.com/users/acalm/following{/other_user}","gists_url":"https://api.github.com/users/acalm/gists{/gist_id}","starred_url":"https://api.github.com/users/acalm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/acalm/subscriptions","organizations_url":"https://api.github.com/users/acalm/orgs","repos_url":"https://api.github.com/users/acalm/repos","events_url":"https://api.github.com/users/acalm/events{/privacy}","received_events_url":"https://api.github.com/users/acalm/received_events","type":"User","site_admin":false},"body":"##### SUMMARY\r\n<!--- Describe the change below, including rationale and design decisions -->\r\nAdded support for file locking through common.file.FileLock (fixes #30413). Also fixed issue where FileLock.set_lock in module_utils/common/file.py didn't properly handle the default value None\r\n<!--- HINT: Include \"Fixes #nnn\" if you are fixing an existing issue -->\r\n\r\n##### ISSUE TYPE\r\n<!--- Pick one below and delete the rest -->\r\n- Bugfix Pull Request\r\n\r\n##### COMPONENT NAME\r\nlineinfile\r\nmodule_utils/common/file.py\r\n\r\n##### ANSIBLE VERSION\r\n<!--- Paste verbatim output from \"ansible --version\" between quotes -->\r\n```\r\nansible 2.8.0.dev0 (fix-30413 2455b96cc1) last updated 2018/10/19 00:04:07 (GMT +200)\r\n  config file = None\r\n  configured module search path = ['/home/acalm/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']\r\n  ansible python module location = /home/acalm/venv/ansible/lib/python3.6/site-packages/ansible\r\n  executable location = /home/acalm/venv/ansible/bin/ansible\r\n  python version = 3.6.5 (default, Apr 20 2018, 08:08:06) [GCC 6.4.0]\r\n```\r\n\r\n##### ADDITIONAL INFORMATION\r\nN/A\r\n","created_at":"2018-10-18T22:15:04Z","updated_at":"2018-10-30T19:13:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"557640a2ea38c5cc3b87630ec3a2af3c93f946b2","assignee":null,"assignees":[],"requested_reviewers":[{"login":"sivel","id":39340,"node_id":"MDQ6VXNlcjM5MzQw","avatar_url":"https://avatars3.githubusercontent.com/u/39340?v=4","gravatar_id":"","url":"https://api.github.com/users/sivel","html_url":"https://github.com/sivel","followers_url":"https://api.github.com/users/sivel/followers","following_url":"https://api.github.com/users/sivel/following{/other_user}","gists_url":"https://api.github.com/users/sivel/gists{/gist_id}","starred_url":"https://api.github.com/users/sivel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sivel/subscriptions","organizations_url":"https://api.github.com/users/sivel/orgs","repos_url":"https://api.github.com/users/sivel/repos","events_url":"https://api.github.com/users/sivel/events{/privacy}","received_events_url":"https://api.github.com/users/sivel/received_events","type":"User","site_admin":false},{"login":"bcoca","id":836171,"node_id":"MDQ6VXNlcjgzNjE3MQ==","avatar_url":"https://avatars1.githubusercontent.com/u/836171?v=4","gravatar_id":"","url":"https://api.github.com/users/bcoca","html_url":"https://github.com/bcoca","followers_url":"https://api.github.com/users/bcoca/followers","following_url":"https://api.github.com/users/bcoca/following{/other_user}","gists_url":"https://api.github.com/users/bcoca/gists{/gist_id}","starred_url":"https://api.github.com/users/bcoca/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bcoca/subscriptions","organizations_url":"https://api.github.com/users/bcoca/orgs","repos_url":"https://api.github.com/users/bcoca/repos","events_url":"https://api.github.com/users/bcoca/events{/privacy}","received_events_url":"https://api.github.com/users/bcoca/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":1043397454,"node_id":"MDU6TGFiZWwxMDQzMzk3NDU0","url":"https://api.github.com/repos/ansible/ansible/labels/affects_2.8","name":"affects_2.8","color":"ededed","default":false},{"id":785271699,"node_id":"MDU6TGFiZWw3ODUyNzE2OTk=","url":"https://api.github.com/repos/ansible/ansible/labels/bug","name":"bug","color":"fbca04","default":true},{"id":496359346,"node_id":"MDU6TGFiZWw0OTYzNTkzNDY=","url":"https://api.github.com/repos/ansible/ansible/labels/module","name":"module","color":"1d76db","default":false},{"id":61436281,"node_id":"MDU6TGFiZWw2MTQzNjI4MQ==","url":"https://api.github.com/repos/ansible/ansible/labels/needs_revision","name":"needs_revision","color":"eb6450","default":false},{"id":383076471,"node_id":"MDU6TGFiZWwzODMwNzY0NzE=","url":"https://api.github.com/repos/ansible/ansible/labels/python3","name":"python3","color":"fbca04","default":false},{"id":636327968,"node_id":"MDU6TGFiZWw2MzYzMjc5Njg=","url":"https://api.github.com/repos/ansible/ansible/labels/support:community","name":"support:community","color":"ededed","default":false},{"id":636352796,"node_id":"MDU6TGFiZWw2MzYzNTI3OTY=","url":"https://api.github.com/repos/ansible/ansible/labels/support:core","name":"support:core","color":"ededed","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/ansible/ansible/pulls/47322/commits","review_comments_url":"https://api.github.com/repos/ansible/ansible/pulls/47322/comments","review_comment_url":"https://api.github.com/repos/ansible/ansible/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ansible/ansible/issues/47322/comments","statuses_url":"https://api.github.com/repos/ansible/ansible/statuses/153743416b97a132762756f0699131c8ea9b723e","head":{"label":"acalm:fix-30413","ref":"fix-30413","sha":"153743416b97a132762756f0699131c8ea9b723e","user":{"login":"acalm","id":17545952,"node_id":"MDQ6VXNlcjE3NTQ1OTUy","avatar_url":"https://avatars0.githubusercontent.com/u/17545952?v=4","gravatar_id":"","url":"https://api.github.com/users/acalm","html_url":"https://github.com/acalm","followers_url":"https://api.github.com/users/acalm/followers","following_url":"https://api.github.com/users/acalm/following{/other_user}","gists_url":"https://api.github.com/users/acalm/gists{/gist_id}","starred_url":"https://api.github.com/users/acalm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/acalm/subscriptions","organizations_url":"https://api.github.com/users/acalm/orgs","repos_url":"https://api.github.com/users/acalm/repos","events_url":"https://api.github.com/users/acalm/events{/privacy}","received_events_url":"https://api.github.com/users/acalm/received_events","type":"User","site_admin":false},"repo":{"id":133273330,"node_id":"MDEwOlJlcG9zaXRvcnkxMzMyNzMzMzA=","name":"ansible","full_name":"acalm/ansible","private":false,"owner":{"login":"acalm","id":17545952,"node_id":"MDQ6VXNlcjE3NTQ1OTUy","avatar_url":"https://avatars0.githubusercontent.com/u/17545952?v=4","gravatar_id":"","url":"https://api.github.com/users/acalm","html_url":"https://github.com/acalm","followers_url":"https://api.github.com/users/acalm/followers","following_url":"https://api.github.com/users/acalm/following{/other_user}","gists_url":"https://api.github.com/users/acalm/gists{/gist_id}","starred_url":"https://api.github.com/users/acalm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/acalm/subscriptions","organizations_url":"https://api.github.com/users/acalm/orgs","repos_url":"https://api.github.com/users/acalm/repos","events_url":"https://api.github.com/users/acalm/events{/privacy}","received_events_url":"https://api.github.com/users/acalm/received_events","type":"User","site_admin":false},"html_url":"https://github.com/acalm/ansible","description":"Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your applications — automate in a language that approaches plain English, using SSH, with no agents to install on remote systems. https://docs.ansible.com/ansible/","fork":true,"url":"https://api.github.com/repos/acalm/ansible","forks_url":"https://api.github.com/repos/acalm/ansible/forks","keys_url":"https://api.github.com/repos/acalm/ansible/keys{/key_id}","collaborators_url":"https://api.github.com/repos/acalm/ansible/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/acalm/ansible/teams","hooks_url":"https://api.github.com/repos/acalm/ansible/hooks","issue_events_url":"https://api.github.com/repos/acalm/ansible/issues/events{/number}","events_url":"https://api.github.com/repos/acalm/ansible/events","assignees_url":"https://api.github.com/repos/acalm/ansible/assignees{/user}","branches_url":"https://api.github.com/repos/acalm/ansible/branches{/branch}","tags_url":"https://api.github.com/repos/acalm/ansible/tags","blobs_url":"https://api.github.com/repos/acalm/ansible/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/acalm/ansible/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/acalm/ansible/git/refs{/sha}","trees_url":"https://api.github.com/repos/acalm/ansible/git/trees{/sha}","statuses_url":"https://api.github.com/repos/acalm/ansible/statuses/{sha}","languages_url":"https://api.github.com/repos/acalm/ansible/languages","stargazers_url":"https://api.github.com/repos/acalm/ansible/stargazers","contributors_url":"https://api.github.com/repos/acalm/ansible/contributors","subscribers_url":"https://api.github.com/repos/acalm/ansible/subscribers","subscription_url":"https://api.github.com/repos/acalm/ansible/subscription","commits_url":"https://api.github.com/repos/acalm/ansible/commits{/sha}","git_commits_url":"https://api.github.com/repos/acalm/ansible/git/commits{/sha}","comments_url":"https://api.github.com/repos/acalm/ansible/comments{/number}","issue_comment_url":"https://api.github.com/repos/acalm/ansible/issues/comments{/number}","contents_url":"https://api.github.com/repos/acalm/ansible/contents/{+path}","compare_url":"https://api.github.com/repos/acalm/ansible/compare/{base}...{head}","merges_url":"https://api.github.com/repos/acalm/ansible/merges","archive_url":"https://api.github.com/repos/acalm/ansible/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/acalm/ansible/downloads","issues_url":"https://api.github.com/repos/acalm/ansible/issues{/number}","pulls_url":"https://api.github.com/repos/acalm/ansible/pulls{/number}","milestones_url":"https://api.github.com/repos/acalm/ansible/milestones{/number}","notifications_url":"https://api.github.com/repos/acalm/ansible/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/acalm/ansible/labels{/name}","releases_url":"https://api.github.com/repos/acalm/ansible/releases{/id}","deployments_url":"https://api.github.com/repos/acalm/ansible/deployments","created_at":"2018-05-13T20:49:46Z","updated_at":"2018-10-18T20:25:13Z","pushed_at":"2018-10-24T10:43:02Z","git_url":"git://github.com/acalm/ansible.git","ssh_url":"git@github.com:acalm/ansible.git","clone_url":"https://github.com/acalm/ansible.git","svn_url":"https://github.com/acalm/ansible","homepage":"https://www.ansible.com/","size":133285,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"gpl-3.0","name":"GNU General Public License v3.0","spdx_id":"GPL-3.0","url":"https://api.github.com/licenses/gpl-3.0","node_id":"MDc6TGljZW5zZTk="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"devel"}},"base":{"label":"ansible:devel","ref":"devel","sha":"541255a2d8795c45dd3a07993509ebbca6d46537","user":{"login":"ansible","id":1507452,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1MDc0NTI=","avatar_url":"https://avatars2.githubusercontent.com/u/1507452?v=4","gravatar_id":"","url":"https://api.github.com/users/ansible","html_url":"https://github.com/ansible","followers_url":"https://api.github.com/users/ansible/followers","following_url":"https://api.github.com/users/ansible/following{/other_user}","gists_url":"https://api.github.com/users/ansible/gists{/gist_id}","starred_url":"https://api.github.com/users/ansible/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ansible/subscriptions","organizations_url":"https://api.github.com/users/ansible/orgs","repos_url":"https://api.github.com/users/ansible/repos","events_url":"https://api.github.com/users/ansible/events{/privacy}","received_events_url":"https://api.github.com/users/ansible/received_events","type":"Organization","site_admin":false},"repo":{"id":3638964,"node_id":"MDEwOlJlcG9zaXRvcnkzNjM4OTY0","name":"ansible","full_name":"ansible/ansible","private":false,"owner":{"login":"ansible","id":1507452,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1MDc0NTI=","avatar_url":"https://avatars2.githubusercontent.com/u/1507452?v=4","gravatar_id":"","url":"https://api.github.com/users/ansible","html_url":"https://github.com/ansible","followers_url":"https://api.github.com/users/ansible/followers","following_url":"https://api.github.com/users/ansible/following{/other_user}","gists_url":"https://api.github.com/users/ansible/gists{/gist_id}","starred_url":"https://api.github.com/users/ansible/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ansible/subscriptions","organizations_url":"https://api.github.com/users/ansible/orgs","repos_url":"https://api.github.com/users/ansible/repos","events_url":"https://api.github.com/users/ansible/events{/privacy}","received_events_url":"https://api.github.com/users/ansible/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ansible/ansible","description":"Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your applications — automate in a language that approaches plain English, using SSH, with no agents to install on remote systems. https://docs.ansible.com/ansible/","fork":false,"url":"https://api.github.com/repos/ansible/ansible","forks_url":"https://api.github.com/repos/ansible/ansible/forks","keys_url":"https://api.github.com/repos/ansible/ansible/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ansible/ansible/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ansible/ansible/teams","hooks_url":"https://api.github.com/repos/ansible/ansible/hooks","issue_events_url":"https://api.github.com/repos/ansible/ansible/issues/events{/number}","events_url":"https://api.github.com/repos/ansible/ansible/events","assignees_url":"https://api.github.com/repos/ansible/ansible/assignees{/user}","branches_url":"https://api.github.com/repos/ansible/ansible/branches{/branch}","tags_url":"https://api.github.com/repos/ansible/ansible/tags","blobs_url":"https://api.github.com/repos/ansible/ansible/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ansible/ansible/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ansible/ansible/git/refs{/sha}","trees_url":"https://api.github.com/repos/ansible/ansible/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ansible/ansible/statuses/{sha}","languages_url":"https://api.github.com/repos/ansible/ansible/languages","stargazers_url":"https://api.github.com/repos/ansible/ansible/stargazers","contributors_url":"https://api.github.com/repos/ansible/ansible/contributors","subscribers_url":"https://api.github.com/repos/ansible/ansible/subscribers","subscription_url":"https://api.github.com/repos/ansible/ansible/subscription","commits_url":"https://api.github.com/repos/ansible/ansible/commits{/sha}","git_commits_url":"https://api.github.com/repos/ansible/ansible/git/commits{/sha}","comments_url":"https://api.github.com/repos/ansible/ansible/comments{/number}","issue_comment_url":"https://api.github.com/repos/ansible/ansible/issues/comments{/number}","contents_url":"https://api.github.com/repos/ansible/ansible/contents/{+path}","compare_url":"https://api.github.com/repos/ansible/ansible/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ansible/ansible/merges","archive_url":"https://api.github.com/repos/ansible/ansible/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ansible/ansible/downloads","issues_url":"https://api.github.com/repos/ansible/ansible/issues{/number}","pulls_url":"https://api.github.com/repos/ansible/ansible/pulls{/number}","milestones_url":"https://api.github.com/repos/ansible/ansible/milestones{/number}","notifications_url":"https://api.github.com/repos/ansible/ansible/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ansible/ansible/labels{/name}","releases_url":"https://api.github.com/repos/ansible/ansible/releases{/id}","deployments_url":"https://api.github.com/repos/ansible/ansible/deployments","created_at":"2012-03-06T14:58:02Z","updated_at":"2018-10-30T19:05:33Z","pushed_at":"2018-10-30T19:08:37Z","git_url":"git://github.com/ansible/ansible.git","ssh_url":"git@github.com:ansible/ansible.git","clone_url":"https://github.com/ansible/ansible.git","svn_url":"https://github.com/ansible/ansible","homepage":"https://www.ansible.com/","size":144796,"stargazers_count":33465,"watchers_count":33465,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":13316,"mirror_url":null,"archived":false,"open_issues_count":5619,"license":{"key":"gpl-3.0","name":"GNU General Public License v3.0","spdx_id":"GPL-3.0","url":"https://api.github.com/licenses/gpl-3.0","node_id":"MDc6TGljZW5zZTk="},"forks":13316,"open_issues":5619,"watchers":33465,"default_branch":"devel"}},"_links":{"self":{"href":"https://api.github.com/repos/ansible/ansible/pulls/47322"},"html":{"href":"https://github.com/ansible/ansible/pull/47322"},"issue":{"href":"https://api.github.com/repos/ansible/ansible/issues/47322"},"comments":{"href":"https://api.github.com/repos/ansible/ansible/issues/47322/comments"},"review_comments":{"href":"https://api.github.com/repos/ansible/ansible/pulls/47322/comments"},"review_comment":{"href":"https://api.github.com/repos/ansible/ansible/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ansible/ansible/pulls/47322/commits"},"statuses":{"href":"https://api.github.com/repos/ansible/ansible/statuses/153743416b97a132762756f0699131c8ea9b723e"}},"author_association":"CONTRIBUTOR","merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":9,"review_comments":6,"maintainer_can_modify":true,"commits":9,"additions":73,"deletions":8,"changed_files":4}}
{"actor":{"display_login":"acalm"}}