public function setUp() { parent::setUp(); $input = json_decode(file_get_contents('tests/data/env1_create.json'), true); $this->stack_model = Stack::make($input); $this->stack_model->assign(Environment::make(['name' => 'integration', 'parameters' => [["id" => "key_name", "value" => "highcore-testing"], ["id" => "template_bucket", "value" => "highcore-templates"], ["id" => "cloud_credentials", "sensitive" => true, "value" => ["access_key" => "ZA8X506GX7X93K2VLH7M", "secret_key" => "ekc5dmdQZwsd2X8O11Fu64i9puzZXIaEfsaoVO5OK55LcBLaTGgavguVuF78h25PlQBir0vKKfYSuTCFLr7eVyrAaC29G6Fdp5yO6779oa3lK7cCuNlb1wmKrxlFLZd5WddmZDu1c8XPHAtF4DS8OUaDNNJeU9KGhbGC1XqLRmWTs82XKVO3HZ2i1nBXeJA8bMOlrkXaTeQzwo5t8EwzEWFM7z84VR7sZyL8Yt7mrgRq9Wnt5QQnXV4aSn0P1R66jRCUAkzrPqKy9VjRjLgNyDme"]]], 'project' => ['name' => 'highcore']])); }
/** * Triggers provisioning on applicable stack components * * @param Stack $stack * @return bool * @throws CloudFormerException */ public function provisionStack(Stack $stack) { if (!($sqs_url = $stack->get('provisioning_url'))) { throw new CloudFormerException('Stack does not have a provisioning_url set'); } //TODO: Send SQS message for stack's deployable components }
/** * Store a newly created resource in storage. * @SWG\Post( * path="/stacks/{stack_id}", * summary="Store stack", * @SWG\Parameter(ref="#/parameters/stack_id"), * @SWG\Parameter(ref="#/parameters/source"), * @SWG\Parameter(ref="#/parameters/provision"), * @SWG\Parameter(ref="#/parameters/deprovision"), * @SWG\Parameter(ref="#/parameters/Stack"), * @SWG\Response(response="default", ref="#/responses/Stack"), * security={{"highcore_auth":{}}}, * ) * @return Response */ public function store() { $source = Input::get('source', false); if ($source) { $request = Request::create($source, 'GET'); /** @var Stack $stack */ $stack = Route::dispatch($request)->getOriginalContent()->fill(Input::all()); $stack->id = null; } else { $stack = Stack::make(Input::all()); } $stack->assign(Persistence::getEnvironment($stack->environment_id))->assign(Persistence::getTemplate($stack->template_id)); if ($stack->stacks) { $environment_key = $stack->environment->name; $project_key = $stack->environment->project->name; $key = ['operator' => 'In', 'values' => $stack->stacks->pluck('name')->all()]; $stack->stacks = Persistence::getStacks(compact('project_key', 'environment_key', 'key'), 'name'); } $provision = Input::get('provision', false); DB::transaction(function () use($stack, $provision) { $stack->provisioned = false; Persistence::saveStack($stack); if ($provision) { CloudFormer::createStack($stack); $stack->provisioned = true; Persistence::saveStack($stack); } }); return $stack->toArray(false); }