| 
									
										
										
										
											2015-07-27 16:42:28 +03:00
										 |  |  | require 'json' | 
					
						
							|  |  |  | require 'lib/stack_presets/factory' | 
					
						
							| 
									
										
										
										
											2015-07-29 20:37:33 +03:00
										 |  |  | require 'workers/stack_sync_worker' | 
					
						
							|  |  |  | require 'workers/job_starter' | 
					
						
							| 
									
										
										
										
											2015-08-03 11:05:18 +03:00
										 |  |  | require "app/api2/parsers/stack_preset" | 
					
						
							| 
									
										
										
										
											2015-07-27 16:42:28 +03:00
										 |  |  | require_relative "request_handler" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module Devops | 
					
						
							|  |  |  |   module API2_0 | 
					
						
							|  |  |  |     module Handler | 
					
						
							|  |  |  |       class StackPreset < RequestHandler | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  |         set_parser Devops::API2_0::Parser::StackPresetParser | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-27 16:42:28 +03:00
										 |  |  |         def presets | 
					
						
							|  |  |  |           Devops::StackPresetsFactory.list | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         def preset id | 
					
						
							|  |  |  |           Devops::StackPresetsFactory.get(id) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-30 15:37:43 +03:00
										 |  |  |         def apply id | 
					
						
							|  |  |  |           body = parser.apply | 
					
						
							| 
									
										
										
										
											2015-07-27 16:42:28 +03:00
										 |  |  |           preset = Devops::StackPresetsFactory.get(id) | 
					
						
							| 
									
										
										
										
											2015-07-29 20:37:33 +03:00
										 |  |  |           stack = preset.create_stack_from_preset(body) | 
					
						
							| 
									
										
										
										
											2015-07-30 02:14:45 +03:00
										 |  |  |           stack.owner = @request.env['REMOTE_USER'] | 
					
						
							| 
									
										
										
										
											2015-07-27 16:42:28 +03:00
										 |  |  |           Devops::Db.connector.stack_insert(stack) | 
					
						
							| 
									
										
										
										
											2015-07-29 20:37:33 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |           file = JobStarter.start_job(:worker, :sync_stack_till_not_in_progress, | 
					
						
							|  |  |  |             provider: stack.provider, | 
					
						
							|  |  |  |             stack_id: stack.id, | 
					
						
							|  |  |  |             request: @request | 
					
						
							|  |  |  |           ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           puts "Syncing report is located here: #{file}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           stack | 
					
						
							| 
									
										
										
										
											2015-07-27 16:42:28 +03:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 |