{"action":"created","comment":{"url":"https://api.github.com/repos/codice/ddf/pulls/comments/133830968","pull_request_review_id":57057742,"id":133830968,"diff_hunk":"@@ -18,13 +18,19 @@\n ","path":"platform/admin/admin-configuration-configinstaller/src/main/java/org/codice/ddf/admin/configuration/ConfigurationInstaller.java","position":1,"original_position":1,"commit_id":"0016ee9418344aee13606d687eb0a56832af0aa4","original_commit_id":"0016ee9418344aee13606d687eb0a56832af0aa4","user":{"login":"paouelle","id":10549555,"avatar_url":"https://avatars0.githubusercontent.com/u/10549555?v=4","gravatar_id":"","url":"https://api.github.com/users/paouelle","html_url":"https://github.com/paouelle","followers_url":"https://api.github.com/users/paouelle/followers","following_url":"https://api.github.com/users/paouelle/following{/other_user}","gists_url":"https://api.github.com/users/paouelle/gists{/gist_id}","starred_url":"https://api.github.com/users/paouelle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paouelle/subscriptions","organizations_url":"https://api.github.com/users/paouelle/orgs","repos_url":"https://api.github.com/users/paouelle/repos","events_url":"https://api.github.com/users/paouelle/events{/privacy}","received_events_url":"https://api.github.com/users/paouelle/received_events","type":"User","site_admin":false},"body":"❗️ Are we guaranteed that ConfigAdmin will not call this listener multiple times at the same time from different threads? If not then we should be careful about synchronization as we check and update internal attributes in the same method at different places.","created_at":"2017-08-17T21:14:50Z","updated_at":"2017-08-17T21:14:50Z","html_url":"https://github.com/codice/ddf/pull/2215#discussion_r133830968","pull_request_url":"https://api.github.com/repos/codice/ddf/pulls/2215","_links":{"self":{"href":"https://api.github.com/repos/codice/ddf/pulls/comments/133830968"},"html":{"href":"https://github.com/codice/ddf/pull/2215#discussion_r133830968"},"pull_request":{"href":"https://api.github.com/repos/codice/ddf/pulls/2215"}}},"pull_request":{"url":"https://api.github.com/repos/codice/ddf/pulls/2215","id":135671528,"html_url":"https://github.com/codice/ddf/pull/2215","diff_url":"https://github.com/codice/ddf/pull/2215.diff","patch_url":"https://github.com/codice/ddf/pull/2215.patch","issue_url":"https://api.github.com/repos/codice/ddf/issues/2215","number":2215,"state":"open","locked":false,"title":"DDF-3197 Disable the felix file installer and manually sync etc with config admin","user":{"login":"Lambeaux","id":7215534,"avatar_url":"https://avatars3.githubusercontent.com/u/7215534?v=4","gravatar_id":"","url":"https://api.github.com/users/Lambeaux","html_url":"https://github.com/Lambeaux","followers_url":"https://api.github.com/users/Lambeaux/followers","following_url":"https://api.github.com/users/Lambeaux/following{/other_user}","gists_url":"https://api.github.com/users/Lambeaux/gists{/gist_id}","starred_url":"https://api.github.com/users/Lambeaux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Lambeaux/subscriptions","organizations_url":"https://api.github.com/users/Lambeaux/orgs","repos_url":"https://api.github.com/users/Lambeaux/repos","events_url":"https://api.github.com/users/Lambeaux/events{/privacy}","received_events_url":"https://api.github.com/users/Lambeaux/received_events","type":"User","site_admin":false},"body":"#### What does this PR do?\r\nDisables the felix file installer, which writes config admin changes back to `etc`, so we can enable our own installer that correctly supports writing **and** deleting. \r\n\r\n**NOTE**: Unit test changes are pending first round of feedback. \r\n\r\n#### Who is reviewing it? \r\n@paouelle \r\n@brjeter \r\n@oconnormi \r\n@dannythk \r\n@vinamartin \r\n\r\n#### Choose 2 committers to review/merge the PR. \r\n@coyotesqrl\r\n@figliold\r\n\r\n#### How should this be tested? (List steps with links to updated documentation)\r\nStart up DDF with defaults for everything. \r\nKeep the logs tailed throughout this process to catch any infinite config loops. \r\n\r\n1. Setup various configs, both singleton-type and factory-type configurations. \r\n✅  Verify a config in `etc` gets created for each config created using the UI\r\n\r\n2. Delete one or two configs using the UI\r\n✅  Verify their corresponding files in `etc` get deleted as well\r\n\r\n3. Delete one or two configs in `etc` and refresh the admin UI\r\n✅  Verify the configs no longer show up in the admin UI\r\n\r\n4. Shutdown the system, delete one or two configs in `etc`, and reboot the system\r\n✅  Verify the configs no longer show up in the admin UI\r\n\r\n#### Any background context you want to provide?\r\nHighly available systems that are configured using the UI before being switched to a proper solution such as Puppet will need this kind of coherency between `etc` and the bundle cache. Also, this will be a necessary plugin point for encrypting passwords found in the `etc` directory. \r\n\r\n#### What are the relevant tickets?\r\n##### This ticket:\r\n[DDF-3197](https://codice.atlassian.net/browse/DDF-3197)\r\n##### To be done after:\r\n[DDF-3185](https://codice.atlassian.net/browse/DDF-3185)\r\n##### Prereq's already done:\r\n[DDF-3186](https://codice.atlassian.net/browse/DDF-3186)\r\n[DDF-3148](https://codice.atlassian.net/browse/DDF-3148)\r\n\r\n#### Checklist:\r\n- [ ] Documentation Updated\r\n- [ ] Update / Add Unit Tests\r\n- [ ] Update / Add Integration Tests\r\n\r\n#### Review Comment Legend:\r\n- ✏️ (Pencil) This comment is a nitpick or style suggestion, no action required for approval. This comment should provide a suggestion either as an in line code snippet or a gist. \r\n- ❓ (Question Mark) This comment is to gain a clearer understanding of design or code choices, clarification is required but action may not be necessary for approval.\r\n- ❗ (Exclamation Mark) This comment is critical and requires clarification or action before approval.\r\n","created_at":"2017-08-14T19:44:18Z","updated_at":"2017-08-17T21:14:50Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7c72fb9299bc51ea51dc187a3f1acfa19c465b23","assignee":{"login":"coyotesqrl","id":1469860,"avatar_url":"https://avatars2.githubusercontent.com/u/1469860?v=4","gravatar_id":"","url":"https://api.github.com/users/coyotesqrl","html_url":"https://github.com/coyotesqrl","followers_url":"https://api.github.com/users/coyotesqrl/followers","following_url":"https://api.github.com/users/coyotesqrl/following{/other_user}","gists_url":"https://api.github.com/users/coyotesqrl/gists{/gist_id}","starred_url":"https://api.github.com/users/coyotesqrl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coyotesqrl/subscriptions","organizations_url":"https://api.github.com/users/coyotesqrl/orgs","repos_url":"https://api.github.com/users/coyotesqrl/repos","events_url":"https://api.github.com/users/coyotesqrl/events{/privacy}","received_events_url":"https://api.github.com/users/coyotesqrl/received_events","type":"User","site_admin":false},"assignees":[{"login":"coyotesqrl","id":1469860,"avatar_url":"https://avatars2.githubusercontent.com/u/1469860?v=4","gravatar_id":"","url":"https://api.github.com/users/coyotesqrl","html_url":"https://github.com/coyotesqrl","followers_url":"https://api.github.com/users/coyotesqrl/followers","following_url":"https://api.github.com/users/coyotesqrl/following{/other_user}","gists_url":"https://api.github.com/users/coyotesqrl/gists{/gist_id}","starred_url":"https://api.github.com/users/coyotesqrl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coyotesqrl/subscriptions","organizations_url":"https://api.github.com/users/coyotesqrl/orgs","repos_url":"https://api.github.com/users/coyotesqrl/repos","events_url":"https://api.github.com/users/coyotesqrl/events{/privacy}","received_events_url":"https://api.github.com/users/coyotesqrl/received_events","type":"User","site_admin":false},{"login":"figliold","id":4838043,"avatar_url":"https://avatars3.githubusercontent.com/u/4838043?v=4","gravatar_id":"","url":"https://api.github.com/users/figliold","html_url":"https://github.com/figliold","followers_url":"https://api.github.com/users/figliold/followers","following_url":"https://api.github.com/users/figliold/following{/other_user}","gists_url":"https://api.github.com/users/figliold/gists{/gist_id}","starred_url":"https://api.github.com/users/figliold/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/figliold/subscriptions","organizations_url":"https://api.github.com/users/figliold/orgs","repos_url":"https://api.github.com/users/figliold/repos","events_url":"https://api.github.com/users/figliold/events{/privacy}","received_events_url":"https://api.github.com/users/figliold/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/codice/ddf/pulls/2215/commits","review_comments_url":"https://api.github.com/repos/codice/ddf/pulls/2215/comments","review_comment_url":"https://api.github.com/repos/codice/ddf/pulls/comments{/number}","comments_url":"https://api.github.com/repos/codice/ddf/issues/2215/comments","statuses_url":"https://api.github.com/repos/codice/ddf/statuses/0016ee9418344aee13606d687eb0a56832af0aa4","head":{"label":"Lambeaux:DDF-3197","ref":"DDF-3197","sha":"0016ee9418344aee13606d687eb0a56832af0aa4","user":{"login":"Lambeaux","id":7215534,"avatar_url":"https://avatars3.githubusercontent.com/u/7215534?v=4","gravatar_id":"","url":"https://api.github.com/users/Lambeaux","html_url":"https://github.com/Lambeaux","followers_url":"https://api.github.com/users/Lambeaux/followers","following_url":"https://api.github.com/users/Lambeaux/following{/other_user}","gists_url":"https://api.github.com/users/Lambeaux/gists{/gist_id}","starred_url":"https://api.github.com/users/Lambeaux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Lambeaux/subscriptions","organizations_url":"https://api.github.com/users/Lambeaux/orgs","repos_url":"https://api.github.com/users/Lambeaux/repos","events_url":"https://api.github.com/users/Lambeaux/events{/privacy}","received_events_url":"https://api.github.com/users/Lambeaux/received_events","type":"User","site_admin":false},"repo":{"id":47577497,"name":"ddf","full_name":"Lambeaux/ddf","owner":{"login":"Lambeaux","id":7215534,"avatar_url":"https://avatars3.githubusercontent.com/u/7215534?v=4","gravatar_id":"","url":"https://api.github.com/users/Lambeaux","html_url":"https://github.com/Lambeaux","followers_url":"https://api.github.com/users/Lambeaux/followers","following_url":"https://api.github.com/users/Lambeaux/following{/other_user}","gists_url":"https://api.github.com/users/Lambeaux/gists{/gist_id}","starred_url":"https://api.github.com/users/Lambeaux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Lambeaux/subscriptions","organizations_url":"https://api.github.com/users/Lambeaux/orgs","repos_url":"https://api.github.com/users/Lambeaux/repos","events_url":"https://api.github.com/users/Lambeaux/events{/privacy}","received_events_url":"https://api.github.com/users/Lambeaux/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Lambeaux/ddf","description":"The Distributed Data Framework - Distribution, SDK, and Test","fork":true,"url":"https://api.github.com/repos/Lambeaux/ddf","forks_url":"https://api.github.com/repos/Lambeaux/ddf/forks","keys_url":"https://api.github.com/repos/Lambeaux/ddf/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Lambeaux/ddf/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Lambeaux/ddf/teams","hooks_url":"https://api.github.com/repos/Lambeaux/ddf/hooks","issue_events_url":"https://api.github.com/repos/Lambeaux/ddf/issues/events{/number}","events_url":"https://api.github.com/repos/Lambeaux/ddf/events","assignees_url":"https://api.github.com/repos/Lambeaux/ddf/assignees{/user}","branches_url":"https://api.github.com/repos/Lambeaux/ddf/branches{/branch}","tags_url":"https://api.github.com/repos/Lambeaux/ddf/tags","blobs_url":"https://api.github.com/repos/Lambeaux/ddf/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Lambeaux/ddf/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Lambeaux/ddf/git/refs{/sha}","trees_url":"https://api.github.com/repos/Lambeaux/ddf/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Lambeaux/ddf/statuses/{sha}","languages_url":"https://api.github.com/repos/Lambeaux/ddf/languages","stargazers_url":"https://api.github.com/repos/Lambeaux/ddf/stargazers","contributors_url":"https://api.github.com/repos/Lambeaux/ddf/contributors","subscribers_url":"https://api.github.com/repos/Lambeaux/ddf/subscribers","subscription_url":"https://api.github.com/repos/Lambeaux/ddf/subscription","commits_url":"https://api.github.com/repos/Lambeaux/ddf/commits{/sha}","git_commits_url":"https://api.github.com/repos/Lambeaux/ddf/git/commits{/sha}","comments_url":"https://api.github.com/repos/Lambeaux/ddf/comments{/number}","issue_comment_url":"https://api.github.com/repos/Lambeaux/ddf/issues/comments{/number}","contents_url":"https://api.github.com/repos/Lambeaux/ddf/contents/{+path}","compare_url":"https://api.github.com/repos/Lambeaux/ddf/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Lambeaux/ddf/merges","archive_url":"https://api.github.com/repos/Lambeaux/ddf/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Lambeaux/ddf/downloads","issues_url":"https://api.github.com/repos/Lambeaux/ddf/issues{/number}","pulls_url":"https://api.github.com/repos/Lambeaux/ddf/pulls{/number}","milestones_url":"https://api.github.com/repos/Lambeaux/ddf/milestones{/number}","notifications_url":"https://api.github.com/repos/Lambeaux/ddf/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Lambeaux/ddf/labels{/name}","releases_url":"https://api.github.com/repos/Lambeaux/ddf/releases{/id}","deployments_url":"https://api.github.com/repos/Lambeaux/ddf/deployments","created_at":"2015-12-07T20:30:44Z","updated_at":"2016-01-11T17:33:30Z","pushed_at":"2017-08-14T19:23:12Z","git_url":"git://github.com/Lambeaux/ddf.git","ssh_url":"git@github.com:Lambeaux/ddf.git","clone_url":"https://github.com/Lambeaux/ddf.git","svn_url":"https://github.com/Lambeaux/ddf","homepage":"","size":166761,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"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":"codice:master","ref":"master","sha":"8ec5796e5af74b588b673545fff26d7db94e5606","user":{"login":"codice","id":2386734,"avatar_url":"https://avatars2.githubusercontent.com/u/2386734?v=4","gravatar_id":"","url":"https://api.github.com/users/codice","html_url":"https://github.com/codice","followers_url":"https://api.github.com/users/codice/followers","following_url":"https://api.github.com/users/codice/following{/other_user}","gists_url":"https://api.github.com/users/codice/gists{/gist_id}","starred_url":"https://api.github.com/users/codice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codice/subscriptions","organizations_url":"https://api.github.com/users/codice/orgs","repos_url":"https://api.github.com/users/codice/repos","events_url":"https://api.github.com/users/codice/events{/privacy}","received_events_url":"https://api.github.com/users/codice/received_events","type":"Organization","site_admin":false},"repo":{"id":15173563,"name":"ddf","full_name":"codice/ddf","owner":{"login":"codice","id":2386734,"avatar_url":"https://avatars2.githubusercontent.com/u/2386734?v=4","gravatar_id":"","url":"https://api.github.com/users/codice","html_url":"https://github.com/codice","followers_url":"https://api.github.com/users/codice/followers","following_url":"https://api.github.com/users/codice/following{/other_user}","gists_url":"https://api.github.com/users/codice/gists{/gist_id}","starred_url":"https://api.github.com/users/codice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codice/subscriptions","organizations_url":"https://api.github.com/users/codice/orgs","repos_url":"https://api.github.com/users/codice/repos","events_url":"https://api.github.com/users/codice/events{/privacy}","received_events_url":"https://api.github.com/users/codice/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/codice/ddf","description":"Distributed Data Framework - an open source, modular integration framework.","fork":false,"url":"https://api.github.com/repos/codice/ddf","forks_url":"https://api.github.com/repos/codice/ddf/forks","keys_url":"https://api.github.com/repos/codice/ddf/keys{/key_id}","collaborators_url":"https://api.github.com/repos/codice/ddf/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/codice/ddf/teams","hooks_url":"https://api.github.com/repos/codice/ddf/hooks","issue_events_url":"https://api.github.com/repos/codice/ddf/issues/events{/number}","events_url":"https://api.github.com/repos/codice/ddf/events","assignees_url":"https://api.github.com/repos/codice/ddf/assignees{/user}","branches_url":"https://api.github.com/repos/codice/ddf/branches{/branch}","tags_url":"https://api.github.com/repos/codice/ddf/tags","blobs_url":"https://api.github.com/repos/codice/ddf/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/codice/ddf/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/codice/ddf/git/refs{/sha}","trees_url":"https://api.github.com/repos/codice/ddf/git/trees{/sha}","statuses_url":"https://api.github.com/repos/codice/ddf/statuses/{sha}","languages_url":"https://api.github.com/repos/codice/ddf/languages","stargazers_url":"https://api.github.com/repos/codice/ddf/stargazers","contributors_url":"https://api.github.com/repos/codice/ddf/contributors","subscribers_url":"https://api.github.com/repos/codice/ddf/subscribers","subscription_url":"https://api.github.com/repos/codice/ddf/subscription","commits_url":"https://api.github.com/repos/codice/ddf/commits{/sha}","git_commits_url":"https://api.github.com/repos/codice/ddf/git/commits{/sha}","comments_url":"https://api.github.com/repos/codice/ddf/comments{/number}","issue_comment_url":"https://api.github.com/repos/codice/ddf/issues/comments{/number}","contents_url":"https://api.github.com/repos/codice/ddf/contents/{+path}","compare_url":"https://api.github.com/repos/codice/ddf/compare/{base}...{head}","merges_url":"https://api.github.com/repos/codice/ddf/merges","archive_url":"https://api.github.com/repos/codice/ddf/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/codice/ddf/downloads","issues_url":"https://api.github.com/repos/codice/ddf/issues{/number}","pulls_url":"https://api.github.com/repos/codice/ddf/pulls{/number}","milestones_url":"https://api.github.com/repos/codice/ddf/milestones{/number}","notifications_url":"https://api.github.com/repos/codice/ddf/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/codice/ddf/labels{/name}","releases_url":"https://api.github.com/repos/codice/ddf/releases{/id}","deployments_url":"https://api.github.com/repos/codice/ddf/deployments","created_at":"2013-12-13T20:38:28Z","updated_at":"2017-08-17T19:03:44Z","pushed_at":"2017-08-17T20:13:07Z","git_url":"git://github.com/codice/ddf.git","ssh_url":"git@github.com:codice/ddf.git","clone_url":"https://github.com/codice/ddf.git","svn_url":"https://github.com/codice/ddf","homepage":"http://ddf.codice.org","size":328160,"stargazers_count":61,"watchers_count":61,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":116,"mirror_url":null,"open_issues_count":35,"forks":116,"open_issues":35,"watchers":61,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/codice/ddf/pulls/2215"},"html":{"href":"https://github.com/codice/ddf/pull/2215"},"issue":{"href":"https://api.github.com/repos/codice/ddf/issues/2215"},"comments":{"href":"https://api.github.com/repos/codice/ddf/issues/2215/comments"},"review_comments":{"href":"https://api.github.com/repos/codice/ddf/pulls/2215/comments"},"review_comment":{"href":"https://api.github.com/repos/codice/ddf/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/codice/ddf/pulls/2215/commits"},"statuses":{"href":"https://api.github.com/repos/codice/ddf/statuses/0016ee9418344aee13606d687eb0a56832af0aa4"}}}}
{"actor":{"display_login":"paouelle"}}