5f86391199a45d4005af1b2426b60e16e6aebdf8
[sdc.git] /
1
2 ruby_block "check_ElasticSearch_Cluster_Health" do
3     block do
4       #tricky way to load this Chef::Mixin::ShellOut utilities
5       Chef::Resource::RubyBlock.send(:include, Chef::Mixin::ShellOut)
6       #curl_command = "http://#{node['ipaddress']}:9200/_cluster/health?pretty=true"
7       curl_command = "http://localhost:9200/_cluster/health?pretty=true"
8       resp = Net::HTTP.get_response URI.parse(curl_command)
9       stat = JSON.parse(resp.read_body)['status']
10
11       case stat
12          when "green"
13             printf("\033[32m%s\n\033[0m", "  ElasticSearch Cluster status is green.")
14          when "yellow"
15             printf("\033[33m%s\n\033[0m", "  ElasticSearch Cluster status is yellow...")
16          when "red"
17             printf("\033[31m%s\n\033[0m", "  ElasticSearch Cluster status is red!")
18       end
19    end
20    retries 10
21    retry_delay 2
22 end
23
24
25 bash "create Kibana dashboard" do
26     code <<-EOH
27         for file in /root/chef-solo/cookbooks/sdc-elasticsearch/files/default/dashboard_*.json; do 
28             name=`basename $file .json | awk -F"_" '{print $2}'` 
29             echo "Loading dashboard $name:" 
30             curl -XPUT http://localhost:9200/.kibana/dashboard/$name -d @$file || exit 1 
31             echo 
32         done 
33     EOH
34 end
35
36
37 bash "create Kibana visualization" do
38     code <<-EOH
39         for file in /root/chef-solo/cookbooks/sdc-elasticsearch/files/default/visualization_*.json; do 
40             name=`basename $file .json | awk -F"_" '{print $2}'` 
41             echo "Loading visualization $name:" 
42             curl -XPUT http://localhost:9200/.kibana/visualization/$name -d @$file || exit 1 
43             echo 
44         done 
45     EOH
46 end
47
48
49