@@ -65,11 +65,11 @@ public function __construct()
6565 public function handle ()
6666 {
6767 if ($ this ->option ('all ' )) {
68- $ servers = Server::with ('node ' )->get ();
68+ $ servers = Server::with ('node ' , ' option.variables ' )->get ();
6969 } elseif ($ this ->option ('node ' )) {
70- $ servers = Server::with ('node ' )->where ('node_id ' , $ this ->option ('node ' ))->get ();
70+ $ servers = Server::with ('node ' , ' option.variables ' )->where ('node_id ' , $ this ->option ('node ' ))->get ();
7171 } elseif ($ this ->option ('server ' )) {
72- $ servers = Server::with ('node ' )->where ('id ' , $ this ->option ('server ' ))->get ();
72+ $ servers = Server::with ('node ' , ' option.variables ' )->where ('id ' , $ this ->option ('server ' ))->get ();
7373 } else {
7474 $ this ->error ('You must pass a flag to determine which server(s) to rebuild. ' );
7575 return ;
@@ -80,10 +80,26 @@ public function handle()
8080 $ results = collect ([]);
8181 foreach ($ servers as $ server ) {
8282 try {
83+ $ environment = $ server ->option ->variables ->map (function ($ item , $ key ) use ($ server ) {
84+ $ display = $ server ->variables ->where ('variable_id ' , $ item ->id )->pluck ('variable_value ' )->first ();
85+
86+ return [
87+ 'variable ' => $ item ->env_variable ,
88+ 'value ' => (! is_null ($ display )) ? $ display : $ item ->default_value ,
89+ ];
90+ });
91+
8392 $ server ->node ->guzzleClient ([
8493 'X-Access-Server ' => $ server ->uuid ,
8594 'X-Access-Token ' => $ server ->node ->daemonSecret ,
86- ])->request ('POST ' , '/server/rebuild ' );
95+ ])->request ('PATCH ' , '/server ' , [
96+ 'json ' => [
97+ 'build ' => [
98+ 'image ' => $ server ->image ,
99+ 'env|overwrite ' => $ environment ->pluck ('value ' , 'variable ' )->merge (['STARTUP ' => $ server ->startup ]),
100+ ],
101+ ],
102+ ]);
87103
88104 $ results = $ results ->merge ([
89105 $ server ->uuid => [
0 commit comments