{"action":"created","issue":{"url":"https://api.github.com/repos/chef/chef-server/issues/589","labels_url":"https://api.github.com/repos/chef/chef-server/issues/589/labels{/name}","comments_url":"https://api.github.com/repos/chef/chef-server/issues/589/comments","events_url":"https://api.github.com/repos/chef/chef-server/issues/589/events","html_url":"https://github.com/chef/chef-server/pull/589","id":113970914,"number":589,"title":"ElasticSearch Support","user":{"login":"stevendanna","id":852371,"avatar_url":"https://avatars.githubusercontent.com/u/852371?v=3","gravatar_id":"","url":"https://api.github.com/users/stevendanna","html_url":"https://github.com/stevendanna","followers_url":"https://api.github.com/users/stevendanna/followers","following_url":"https://api.github.com/users/stevendanna/following{/other_user}","gists_url":"https://api.github.com/users/stevendanna/gists{/gist_id}","starred_url":"https://api.github.com/users/stevendanna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevendanna/subscriptions","organizations_url":"https://api.github.com/users/stevendanna/orgs","repos_url":"https://api.github.com/users/stevendanna/repos","events_url":"https://api.github.com/users/stevendanna/events{/privacy}","received_events_url":"https://api.github.com/users/stevendanna/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/chef/chef-server/labels/in%20progress","name":"in progress","color":"ededed"},{"url":"https://api.github.com/repos/chef/chef-server/labels/Signed%20CLA","name":"Signed CLA","color":"ededed"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-10-29T03:22:05Z","updated_at":"2015-10-29T16:53:29Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/chef/chef-server/pulls/589","html_url":"https://github.com/chef/chef-server/pull/589","diff_url":"https://github.com/chef/chef-server/pull/589.diff","patch_url":"https://github.com/chef/chef-server/pull/589.patch"},"body":"This patchset adds support for using ElasticSearch as the chef index\r\nbackend used by the Chef Server.\r\n\r\nTo facilitate using multiple backends, chef_index is now the main entry\r\npoint for nearly all outside access to the chef_index app. The only\r\nexception currently is the status module.\r\n\r\nSince both solr and elasticsearch use lucene-based queries, the\r\nquery-building code has been moved into chef_index_query to facilitate\r\nsharing. Common HTTP handling code was moved to chef_index_http.\r\nHowever, I opted for a bit of duplication in some cases over complicated\r\ndispatch since these modules are still intertangled.\r\n\r\n\r\n**Reviewer Notes**\r\n\r\n- `chef_index_expand` still knows a bit too much about the rest of the system.\r\nI think some more refactoring there might be in order but I've held off for now.\r\n\r\n- If you have thoughts about how to avoid ++ here: https://github.com/chef/chef-server/pull/589/files#diff-7868f3672b3dbb65c8674e2708958627R136 I would appreciate\r\nthem as I would like to avoid the concatenation there if possible."},"comment":{"url":"https://api.github.com/repos/chef/chef-server/issues/comments/152247048","html_url":"https://github.com/chef/chef-server/pull/589#issuecomment-152247048","issue_url":"https://api.github.com/repos/chef/chef-server/issues/589","id":152247048,"user":{"login":"stevendanna","id":852371,"avatar_url":"https://avatars.githubusercontent.com/u/852371?v=3","gravatar_id":"","url":"https://api.github.com/users/stevendanna","html_url":"https://github.com/stevendanna","followers_url":"https://api.github.com/users/stevendanna/followers","following_url":"https://api.github.com/users/stevendanna/following{/other_user}","gists_url":"https://api.github.com/users/stevendanna/gists{/gist_id}","starred_url":"https://api.github.com/users/stevendanna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevendanna/subscriptions","organizations_url":"https://api.github.com/users/stevendanna/orgs","repos_url":"https://api.github.com/users/stevendanna/repos","events_url":"https://api.github.com/users/stevendanna/events{/privacy}","received_events_url":"https://api.github.com/users/stevendanna/received_events","type":"User","site_admin":false},"created_at":"2015-10-29T16:53:28Z","updated_at":"2015-10-29T16:53:28Z","body":"@tylercloke Ahh.  Yeah, my supreme hope is that we keep the number of backend services to a minimum so that we don't feel the need to abstract too much there.  However, I agree that the Preflight validator felt pretty copypasta as I was writing it.  It's interesting because it is very similar but slightly different.  For instance I have preflight check for it the external-url changed, but rather than disallowing it, I just tell the user to run a reindex if they want to do that.  I'll do some thinking on this point."}}