Openstack4j API'lerini (v. 2.0.9) kullanarak bir tutulma projesi geliştiriyorum. Ben Kullanıcılar yaratma gibi bir Oluşturucu kullanmak (V2 kimlik doğrulama sonra) çalıştı yüzden yeni rolü oluşturmak gerekir: Ben sözdeopenstack4j ile nasıl yeni bir rol oluşturabilirim?
The method create(String) in the type RoleService is not applicable for the arguments (Role)
Sadece geçmek zorunda hatayı fark
public void role_create(String name) {
Role role = os.identity().roles().create(Builders.role().name(name).build());
}
oluşturmak yönteme 'adı' parametresi:
: Ben sunucu üzerinde program çalıştırdığınızda neysepublic void role_create(String name) {
Role role = os.identity().roles().create(name);
}
bu hatayı alıyorum
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)
Kullanıcıları oluşturduğumda, bir Kullanıcı nesnesi oluşturmak ve oluşturma yöntemine aktarmak için Yapılandırıcıları kullanırım. Roller için oluşturma yöntemi bir Role nesnesini değil, bir String'i istemez, bu yüzden 'name' dizesini geçmeye çalıştım. Özel durum oluştuğunda, oluşturma yöntemini görmek için RoleServiceImpl.java dosyasını okurum. Sonuç:
@Override
public Role create(String name) {
checkNotNull(name);
return post(KeystoneRole.class,
uri("/OS-SADM/roles")).entity(KeystoneRole.builder().name(name).build()).execute();
}
Bu yüzden Builder uygulanmış görünüyor! Bu sorunu çözmek ve yeni bir rol oluşturmak için bana yardımcı olan var mı?
Saygılarımızla, Fabio