Ich entwickle ein Eclipse-Projekt, indem ich openstack4j APIs (v. 2.0.9) ausnutze. Ich brauche eine neue Rolle zu erstellen, so dass ich (nach V2-Authentifizierung) versucht, einen Builder wie Benutzererstellung:Wie kann ich eine neue Rolle mit openstack4j erstellen?
public void role_create(String name) {
Role role = os.identity().roles().create(Builders.role().name(name).build());
}
Wenn ich den Fehler bemerkt
The method create(String) in the type RoleService is not applicable for the arguments (Role)
ich soll ich das nur musste passieren 'name' Parameter an die create-Methode:
public void role_create(String name) {
Role role = os.identity().roles().create(name);
}
Wie auch immer, wenn ich das Programm auf dem Server laufen bekomme ich diesen Fehler:
Exception in thread "main" ServerResponseException{message=Internal Server Error, status=500, status-code=INTERNAL_SERVER_ERROR} at org.openstack4j.core.transport.HttpExceptionHandler.mapException(HttpExceptionHandler.java:40) at org.openstack4j.core.transport.HttpExceptionHandler.mapException(HttpExceptionHandler.java:23) at org.openstack4j.core.transport.HttpEntityHandler.handle(HttpEntityHandler.java:50) at org.openstack4j.connectors.okhttp.HttpResponseImpl.getEntity(HttpResponseImpl.java:69) at org.openstack4j.openstack.internal.BaseOpenStackService$Invocation.execute(BaseOpenStackService.java:189) at org.openstack4j.openstack.internal.BaseOpenStackService$Invocation.execute(BaseOpenStackService.java:183) at org.openstack4j.openstack.identity.internal.RoleServiceImpl.create(RoleServiceImpl.java:121) at openstack.Identity.role_create(Identity.java:75) at openstack.openstackTest.main(openstackTest.java:21)
Wenn ich Benutzer erstelle, verwende ich Builder, um ein Benutzerobjekt zu erstellen und es an die create-Methode zu übergeben. Die create-Methode für Rollen möchte kein Role-Objekt, sondern einen String, deshalb habe ich gerade versucht, den 'name'-String zu übergeben. Wenn die Ausnahme auftritt, lese ich die RoleServiceImpl.java-Datei, um die create-Methode anzuzeigen. Das ist das Ergebnis:
@Override
public Role create(String name) {
checkNotNull(name);
return post(KeystoneRole.class,
uri("/OS-SADM/roles")).entity(KeystoneRole.builder().name(name).build()).execute();
}
So scheint es der Builder ist implementiert! Kann mir jemand helfen, dieses Problem zu lösen und eine neue Rolle zu erstellen?
Mit freundlichen Grüßen, Fabio