class Haas::Blueprints
Public Class Methods
get_blueprint()
click to toggle source
# File lib/haas/blueprints.rb, line 29 def self.get_blueprint { "configurations" => [ { "hive-site"=> { "javax.jdo.option.ConnectionPassword"=> "hive" } }, { "nagios-env" => { "nagios_contact" => "admin@localhost" } } ], "host_groups" => [ { "name" => "master", "components" => [ { "name" => "NAMENODE" }, { "name" => "SECONDARY_NAMENODE" }, { "name" => "RESOURCEMANAGER" }, { "name" => "HISTORYSERVER" }, { "name" => "NAGIOS_SERVER" }, { "name" => "GANGLIA_SERVER" }, { "name" => "ZOOKEEPER_SERVER" }, { "name" => "GANGLIA_MONITOR" }, { "name" => "APP_TIMELINE_SERVER" } ], "cardinality" => "1" }, { "name" => "slaves", "components" => [ { "name" => "DATANODE" }, { "name" => "HDFS_CLIENT" }, { "name" => "NODEMANAGER" }, { "name" => "YARN_CLIENT" }, { "name" => "MAPREDUCE2_CLIENT" }, { "name" => "ZOOKEEPER_CLIENT" }, { "name" => "GANGLIA_MONITOR" } ], "cardinality" => "1+" } ], "Blueprints" => { "stack_name" => "HDP", "stack_version" => "2.2" } } end
get_cluster()
click to toggle source
# File lib/haas/blueprints.rb, line 113 def self.get_cluster masters = [] slaves = [] nb_masters = 1 Haas.cluster.nodes.each do |node| if masters.length < nb_masters masters << { "fqdn" => node.private_dns_name } else slaves << { "fqdn" => node.private_dns_name } end end { "blueprint" => "haas-blueprint", "default_password" => "my-super-secret-password", "host_groups" => [ { "name" => "master", "hosts" => masters }, { "name" => "slaves", "hosts" => slaves } ] } end
post_blueprints()
click to toggle source
# File lib/haas/blueprints.rb, line 4 def self.post_blueprints ambari = Haas.cluster.get_ambari_server puts "Wait until ambari server is launched" while !Haas::Utils.is_port_open?(ambari.public_dns_name,8080) print '.' sleep 1 end puts ' done.' puts "Wait 20 seconds for the nodes to connect to ambari." sleep 20 puts "Done." post_json(ambari.public_dns_name,8080,'/api/v1/blueprints/haas-blueprint',get_blueprint) post_json(ambari.public_dns_name,8080,'/api/v1/clusters/haas-cluster',get_cluster) end
post_json(host, port, url, params)
click to toggle source
# File lib/haas/blueprints.rb, line 21 def self.post_json(host, port, url, params) req = Net::HTTP::Post.new(url) req.body = params.to_json req.basic_auth("admin", "admin") req["X-Requested-By"] = "HaaS" response = Net::HTTP.new(host, port).start {|http| http.request(req) } end