예제 #1
0
 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']]));
 }
예제 #2
0
 /**
  * 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);
 }