| 
									
										
										
										
											2014-06-18 15:11:47 +04:00
										 |  |  | require "providers/base_provider" | 
					
						
							| 
									
										
										
										
											2015-08-12 16:58:50 +03:00
										 |  |  | require "lib/executors/server_executor" | 
					
						
							| 
									
										
										
										
											2014-06-18 15:11:47 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | module Provider | 
					
						
							|  |  |  |   class Static < BaseProvider | 
					
						
							|  |  |  |     PROVIDER = "static" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def initialize config | 
					
						
							|  |  |  |       self.certificate_path = config[:static_certificate] | 
					
						
							|  |  |  |       self.ssh_key = "static" | 
					
						
							|  |  |  |       @@mongo ||= MongoConnector.new(config[:mongo_db], config[:mongo_host], config[:mongo_port], config[:mongo_user], config[:mongo_password]) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def configured? | 
					
						
							|  |  |  |       true | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def name | 
					
						
							|  |  |  |       PROVIDER | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def flavors | 
					
						
							|  |  |  |       [] | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def images filters | 
					
						
							|  |  |  |       [] | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def servers | 
					
						
							|  |  |  |       @@mongo.servers_find({:provider => PROVIDER}).map{|s| s.to_hash} | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def create_default_chef_node_name s | 
					
						
							|  |  |  |       "static-#{s.project}-#{s.deploy_env}-#{Time.now.to_i}" | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-05 17:38:32 +03:00
										 |  |  |     def create_server s, image, flavor, subnets, groups, out, options={} | 
					
						
							| 
									
										
										
										
											2014-06-18 15:11:47 +04:00
										 |  |  |       out << "Unsupported operation: ca not create server for provider 'static'" | 
					
						
							|  |  |  |       false | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def delete_server s | 
					
						
							| 
									
										
										
										
											2015-08-12 16:58:50 +03:00
										 |  |  |       res = Devops::Executor::ServerExecutor.new(s, "").unbootstrap() | 
					
						
							| 
									
										
										
										
											2014-06-18 15:11:47 +04:00
										 |  |  |       m = "Static server with id '#{s.id}' and name '#{s.chef_node_name}' " | 
					
						
							|  |  |  |       return m + (res.nil? ? "has been unbootstraped" : "can not be unbootstraped: #{res}") | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def pause_server s | 
					
						
							|  |  |  |       nil | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def unpause_server s | 
					
						
							|  |  |  |       nil | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |