| @@ 431-471 (lines=41) @@ | ||
| 428 | * @param array $data  | 
                                |
| 429 | * @return bool  | 
                                |
| 430 | */  | 
                                |
| 431 | public function updateContainer($id, array $data)  | 
                                |
| 432 |     { | 
                                |
| 433 | $validator = Validator::make($data, [  | 
                                |
| 434 | 'image' => 'required|string',  | 
                                |
| 435 | ]);  | 
                                |
| 436 | ||
| 437 | // Run validator, throw catchable and displayable exception if it fails.  | 
                                |
| 438 | // Exception includes a JSON result of failed validation rules.  | 
                                |
| 439 |         if ($validator->fails()) { | 
                                |
| 440 | throw new DisplayValidationException($validator->errors());  | 
                                |
| 441 | }  | 
                                |
| 442 | ||
| 443 | DB::beginTransaction();  | 
                                |
| 444 |         try { | 
                                |
| 445 | $server = Models\Server::findOrFail($id);  | 
                                |
| 446 | ||
| 447 | $server->image = $data['image'];  | 
                                |
| 448 | $server->save();  | 
                                |
| 449 | ||
| 450 | $server->node->guzzleClient([  | 
                                |
| 451 | 'X-Access-Server' => $server->uuid,  | 
                                |
| 452 | 'X-Access-Token' => $server->node->daemonSecret,  | 
                                |
| 453 |             ])->request('PATCH', '/server', [ | 
                                |
| 454 | 'json' => [  | 
                                |
| 455 | 'build' => [  | 
                                |
| 456 | 'image' => $server->image,  | 
                                |
| 457 | ],  | 
                                |
| 458 | ],  | 
                                |
| 459 | ]);  | 
                                |
| 460 | ||
| 461 | DB::commit();  | 
                                |
| 462 | ||
| 463 | return true;  | 
                                |
| 464 |         } catch (TransferException $ex) { | 
                                |
| 465 | DB::rollBack();  | 
                                |
| 466 |             throw new DisplayException('An error occured while attempting to update the container image.', $ex); | 
                                |
| 467 |         } catch (\Exception $ex) { | 
                                |
| 468 | DB::rollBack();  | 
                                |
| 469 | throw $ex;  | 
                                |
| 470 | }  | 
                                |
| 471 | }  | 
                                |
| 472 | ||
| 473 | /**  | 
                                |
| 474 | * [changeBuild description].  | 
                                |
| @@ 928-963 (lines=36) @@ | ||
| 925 | }  | 
                                |
| 926 | }  | 
                                |
| 927 | ||
| 928 | public function updateSFTPPassword($id, $password)  | 
                                |
| 929 |     { | 
                                |
| 930 |         $server = Models\Server::with('node')->findOrFail($id); | 
                                |
| 931 | ||
| 932 | $validator = Validator::make(['password' => $password], [  | 
                                |
| 933 |             'password' => 'required|regex:/^((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,})$/', | 
                                |
| 934 | ]);  | 
                                |
| 935 | ||
| 936 |         if ($validator->fails()) { | 
                                |
| 937 | throw new DisplayValidationException(json_encode($validator->errors()));  | 
                                |
| 938 | }  | 
                                |
| 939 | ||
| 940 | DB::beginTransaction();  | 
                                |
| 941 | $server->sftp_password = Crypt::encrypt($password);  | 
                                |
| 942 | ||
| 943 |         try { | 
                                |
| 944 | $server->save();  | 
                                |
| 945 | ||
| 946 | $server->node->guzzleClient([  | 
                                |
| 947 | 'X-Access-Token' => $server->node->daemonSecret,  | 
                                |
| 948 | 'X-Access-Server' => $server->uuid,  | 
                                |
| 949 |             ])->request('POST', '/server/password', [ | 
                                |
| 950 | 'json' => ['password' => $password],  | 
                                |
| 951 | ]);  | 
                                |
| 952 | ||
| 953 | DB::commit();  | 
                                |
| 954 | ||
| 955 | return true;  | 
                                |
| 956 |         } catch (TransferException $ex) { | 
                                |
| 957 | DB::rollBack();  | 
                                |
| 958 |             throw new DisplayException('There was an error while attmping to contact the remote service to change the password.', $ex); | 
                                |
| 959 |         } catch (\Exception $ex) { | 
                                |
| 960 | DB::rollBack();  | 
                                |
| 961 | throw $ex;  | 
                                |
| 962 | }  | 
                                |
| 963 | }  | 
                                |
| 964 | }  | 
                                |
| 965 | ||