| 
									
										
										
										
											2015-04-16 17:54:40 +03:00
										 |  |  | require 'db/mongo/models/stack/stack_factory' | 
					
						
							| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  | require "app/api2/parsers/stack" | 
					
						
							| 
									
										
										
										
											2015-07-27 11:14:01 +03:00
										 |  |  | require_relative "request_handler" | 
					
						
							| 
									
										
										
										
											2015-04-16 17:54:40 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | module Devops | 
					
						
							| 
									
										
										
										
											2015-07-27 11:14:01 +03:00
										 |  |  |   module API2_0 | 
					
						
							| 
									
										
										
										
											2015-04-16 17:54:40 +03:00
										 |  |  |     module Handler | 
					
						
							| 
									
										
										
										
											2015-07-27 11:14:01 +03:00
										 |  |  |       class Stack < RequestHandler | 
					
						
							| 
									
										
										
										
											2015-04-16 17:54:40 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  |         set_parser Devops::API2_0::Parser::StackParser | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-27 11:14:01 +03:00
										 |  |  |         def stacks | 
					
						
							|  |  |  |           Devops::Db.connector.stacks | 
					
						
							| 
									
										
										
										
											2015-04-16 17:54:40 +03:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-27 16:42:28 +03:00
										 |  |  |         def stacks_for_provider provider | 
					
						
							|  |  |  |           Devops::Db.connector.stacks(provider) | 
					
						
							| 
									
										
										
										
											2015-04-16 17:54:40 +03:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-27 11:14:01 +03:00
										 |  |  |         def create_stack object | 
					
						
							| 
									
										
										
										
											2015-08-12 13:32:26 +03:00
										 |  |  |           object[:owner] = owner_from_request | 
					
						
							| 
									
										
										
										
											2015-07-30 13:18:55 +03:00
										 |  |  |           file = JobStarter.start_job(:worker, :stack_bootstrap, | 
					
						
							| 
									
										
										
										
											2015-08-12 13:32:26 +03:00
										 |  |  |             provider: object['provider'], | 
					
						
							|  |  |  |             stack_attributes: object, | 
					
						
							| 
									
										
										
										
											2015-07-30 12:56:32 +03:00
										 |  |  |             request: @request | 
					
						
							|  |  |  |           ) | 
					
						
							|  |  |  |           puts "Syncing report is located here: #{file}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           stack | 
					
						
							| 
									
										
										
										
											2015-04-16 17:54:40 +03:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  |         def create_stack | 
					
						
							|  |  |  |           object = parser.create | 
					
						
							| 
									
										
										
										
											2015-07-27 11:14:01 +03:00
										 |  |  |           stack_model = Model::StackFactory.create(object['provider'], object) | 
					
						
							| 
									
										
										
										
											2015-08-05 16:06:29 +03:00
										 |  |  |           stack_model.owner = owner_from_request | 
					
						
							| 
									
										
										
										
											2015-07-27 11:14:01 +03:00
										 |  |  |           Devops::Db.connector.stack_insert(stack_model) | 
					
						
							| 
									
										
										
										
											2015-08-05 16:06:29 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |           file = JobStarter.start_job(:worker, :stack_bootstrap, | 
					
						
							| 
									
										
										
										
											2015-08-05 16:28:12 +03:00
										 |  |  |             provider: stack_model.provider, | 
					
						
							|  |  |  |             stack_id: stack_model.id, | 
					
						
							| 
									
										
										
										
											2015-08-05 16:06:29 +03:00
										 |  |  |             request: @request | 
					
						
							|  |  |  |           ) | 
					
						
							|  |  |  |           puts "Syncing report is located here: #{file}" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-05 16:28:12 +03:00
										 |  |  |           stack_model | 
					
						
							| 
									
										
										
										
											2015-04-16 17:54:40 +03:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-27 11:14:01 +03:00
										 |  |  |         def stack id | 
					
						
							|  |  |  |           Devops::Db.connector.stack(id) | 
					
						
							| 
									
										
										
										
											2015-04-16 17:54:40 +03:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-27 11:14:01 +03:00
										 |  |  |         def delete_stack id | 
					
						
							|  |  |  |           stack = self.stack(id) | 
					
						
							|  |  |  |           stack.delete_stack_in_cloud! | 
					
						
							| 
									
										
										
										
											2015-07-30 02:29:53 +03:00
										 |  |  |           Devops::Db.connector.stack_servers_delete(id) | 
					
						
							| 
									
										
										
										
											2015-07-27 11:14:01 +03:00
										 |  |  |           Devops::Db.connector.stack_delete(id) | 
					
						
							| 
									
										
										
										
											2015-04-16 17:54:40 +03:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-27 16:42:28 +03:00
										 |  |  |         def sync_details id | 
					
						
							|  |  |  |           stack = self.stack(id) | 
					
						
							|  |  |  |           stack.sync_details! | 
					
						
							|  |  |  |           Devops::Db.connector.stack_update(stack) | 
					
						
							| 
									
										
										
										
											2015-08-05 15:06:18 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |           stack | 
					
						
							| 
									
										
										
										
											2015-07-27 16:42:28 +03:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         def resources id | 
					
						
							|  |  |  |           stack = Devops::Db.connector.stack(id) | 
					
						
							|  |  |  |           stack.resources | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-30 02:22:54 +03:00
										 |  |  |         def resource id, resource_id | 
					
						
							| 
									
										
										
										
											2015-07-27 16:42:28 +03:00
										 |  |  |           stack = Devops::Db.connector.stack(id) | 
					
						
							|  |  |  |           stack.resource(resource_id) | 
					
						
							|  |  |  |         end | 
					
						
							| 
									
										
										
										
											2015-08-04 12:36:10 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |         def set_run_list id | 
					
						
							|  |  |  |           Devops::Db.connector.set_stack_run_list(id, parser.run_list) | 
					
						
							|  |  |  |         end | 
					
						
							| 
									
										
										
										
											2015-04-16 17:54:40 +03:00
										 |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2015-07-27 11:14:01 +03:00
										 |  |  | end |