package io.fathom.cloud.openstack.client.identity;
import io.fathom.cloud.openstack.client.RestClientException;
import io.fathom.cloud.openstack.client.identity.model.V2Project;
import io.fathom.cloud.openstack.client.identity.model.V2ProjectList;
import io.fathom.cloud.openstack.client.identity.model.V3Project;
import java.util.UUID;
/**
* High level functions
*
*/
public class Identity {
final OpenstackIdentityClient identityClient;
public Identity(OpenstackIdentityClient identityClient) {
this.identityClient = identityClient;
}
public String ensureProjectWithPrefix(String prefix) throws RestClientException {
V2Project found = null;
V2ProjectList projects = identityClient.listProjects();
for (V2Project project : projects.tenants) {
if (project.name == null) {
continue;
}
if (project.name.startsWith(prefix)) {
found = project;
break;
}
}
if (found == null) {
V3Project project = new V3Project();
project.name = prefix + UUID.randomUUID().toString();
V3Project created = identityClient.createProject(project);
return created.name;
} else {
return found.name;
}
}
}