Use beginning of UUID for server uuidShort

This commit is contained in:
Dane Everitt 2018-03-03 22:20:53 -06:00
parent 85e75a2808
commit 36837df0a6
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
5 changed files with 63 additions and 4 deletions

View file

@ -210,10 +210,12 @@ class ServerCreationService
*/
private function createModel(array $data): Server
{
$uuid = $this->generateUniqueUuidCombo();
return $this->repository->create([
'external_id' => array_get($data, 'external_id'),
'uuid' => Uuid::uuid4()->toString(),
'uuidShort' => str_random(8),
'uuid' => $uuid,
'uuidShort' => substr($uuid, 0, 8),
'node_id' => array_get($data, 'node_id'),
'name' => array_get($data, 'name'),
'description' => array_get($data, 'description') ?? '',
@ -289,4 +291,20 @@ class ServerCreationService
return $allocation->node_id;
}
/**
* Create a unique UUID and UUID-Short combo for a server.
*
* @return string
*/
private function generateUniqueUuidCombo(): string
{
$uuid = Uuid::uuid4()->toString();
if (! $this->repository->isUniqueUuidCombo($uuid, substr($uuid, 0, 8))) {
return $this->generateUniqueUuidCombo();
}
return $uuid;
}
}