| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  | # To run devops you can use command | 
					
						
							|  |  |  | # `bundle exec thin -R $devops_home/config.ru -e $env -d -p $port -t 600 -u $user --pid $pid_file --log $log_file start` | 
					
						
							|  |  |  | require 'rubygems' | 
					
						
							|  |  |  | require 'bundler/setup' | 
					
						
							| 
									
										
										
										
											2014-10-22 15:01:55 +04:00
										 |  |  | require "sidekiq/web" | 
					
						
							| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | root = File.dirname(__FILE__) | 
					
						
							|  |  |  | require File.join(root, "devops-service") | 
					
						
							|  |  |  | require File.join(root, "client") | 
					
						
							| 
									
										
										
										
											2014-10-22 15:01:55 +04:00
										 |  |  | require File.join(root, "report") | 
					
						
							| 
									
										
										
										
											2014-11-13 13:13:53 +03:00
										 |  |  | require File.join(root, "version") | 
					
						
							| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Read configuration file | 
					
						
							|  |  |  | config_file = File.join(root, "config.rb") | 
					
						
							|  |  |  | config = {} | 
					
						
							|  |  |  | if File.exists? config_file | 
					
						
							|  |  |  |   eval File.read config_file | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |   raise "No config file '#{config_file}' found" | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-22 15:01:55 +04:00
										 |  |  | config[:devops_home] = File.join(ENV["HOME"], ".devops") | 
					
						
							|  |  |  | puts "Devops home: #{config[:devops_home]}" | 
					
						
							|  |  |  | unless File.exists?(config[:devops_home]) | 
					
						
							|  |  |  |   FileUtils.mkdir config[:devops_home] | 
					
						
							|  |  |  |   puts "Directory '#{config[:devops_home]}' has been created" | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-17 14:23:59 +03:00
										 |  |  | config[:report_dir_v2] = File.expand_path(File.join(config[:devops_home], "report", "v2")) unless config[:report_dir_v2] | 
					
						
							| 
									
										
										
										
											2014-10-22 15:01:55 +04:00
										 |  |  | [ | 
					
						
							| 
									
										
										
										
											2014-11-17 14:23:59 +03:00
										 |  |  |   :report_dir_v2 | 
					
						
							| 
									
										
										
										
											2014-10-22 15:01:55 +04:00
										 |  |  | ].each {|key| d = config[key]; FileUtils.mkdir_p(d) unless File.exists?(d) } | 
					
						
							| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  | # URL map for API v2.0 | 
					
						
							|  |  |  | run Rack::URLMap.new({ | 
					
						
							| 
									
										
										
										
											2014-10-22 15:01:55 +04:00
										 |  |  |   "#{config[:url_prefix]}/v2.0" => DevopsService.new(config), | 
					
						
							|  |  |  |   "#{config[:url_prefix]}/client" => Client.new(config), | 
					
						
							| 
									
										
										
										
											2014-11-20 12:42:36 +03:00
										 |  |  |   "#{config[:url_prefix]}/v2.0/report" => ReportServer.new(config, "v2"), | 
					
						
							| 
									
										
										
										
											2014-11-13 13:13:53 +03:00
										 |  |  |   "#{config[:url_prefix]}/sidekiq" => Sidekiq::Web, | 
					
						
							| 
									
										
										
										
											2014-11-20 15:08:42 +03:00
										 |  |  |   "#{config[:url_prefix]}/version" => DevopsVersion.new | 
					
						
							| 
									
										
										
										
											2014-05-08 15:34:26 +04:00
										 |  |  | }) |