| 
									
										
										
										
											2014-06-18 15:11:47 +04:00
										 |  |  | require "providers/base_provider" | 
					
						
							|  |  |  | require "commands/server" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-23 13:58:14 +04:00
										 |  |  |     def groups filter=nil | 
					
						
							|  |  |  |       {} | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-18 15:11:47 +04:00
										 |  |  |     def images filters | 
					
						
							|  |  |  |       [] | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def networks | 
					
						
							|  |  |  |       [] | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-23 19:29:12 +04:00
										 |  |  |     def networks_detail | 
					
						
							|  |  |  |       self.networks | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-18 15:11:47 +04:00
										 |  |  |     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 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def create_server s, out | 
					
						
							|  |  |  |       out << "Unsupported operation: ca not create server for provider 'static'" | 
					
						
							|  |  |  |       false | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def delete_server s | 
					
						
							|  |  |  |       cert = @@mongo.key(s.key).path | 
					
						
							|  |  |  |       res = ::ServerCommands.unbootstrap(s, cert) | 
					
						
							|  |  |  |       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 |