【发布时间】:2016-07-19 17:01:13
【问题描述】:
我正在通过利用 openstack4j API (v. 2.0.9) 开发一个 eclipse 项目。我需要创建一个新角色,所以我尝试(在 V2 身份验证之后)使用像用户创建这样的生成器:
public void role_create(String name) {
Role role = os.identity().roles().create(Builders.role().name(name).build());
}
当我注意到错误时
类型 RoleService 中的方法 create(String) 不适用 对于参数(角色)
我想我只需要将 'name' 参数传递给 create 方法:
public void role_create(String name) {
Role role = os.identity().roles().create(name);
}
无论如何,当我在服务器上运行程序时,我得到了这个错误:
线程“主”ServerResponseException{message=Internal 中的异常 服务器错误,状态 = 500,状态代码 = INTERNAL_SERVER_ERROR} 在 org.openstack4j.core.transport.HttpExceptionHandler.mapException(HttpExceptionHandler.java:40) 在 org.openstack4j.core.transport.HttpExceptionHandler.mapException(HttpExceptionHandler.java:23) 在 org.openstack4j.core.transport.HttpEntityHandler.handle(HttpEntityHandler.java:50) 在 org.openstack4j.connectors.okhttp.HttpResponseImpl.getEntity(HttpResponseImpl.java:69) 在 org.openstack4j.openstack.internal.BaseOpenStackService$Invocation.execute(BaseOpenStackService.java:189) 在 org.openstack4j.openstack.internal.BaseOpenStackService$Invocation.execute(BaseOpenStackService.java:183) 在 org.openstack4j.openstack.identity.internal.RoleServiceImpl.create(RoleServiceImpl.java:121) 在 openstack.Identity.role_create(Identity.java:75) 在 openstack.openstackTest.main(openstackTest.java:21)
当我创建用户时,我使用 Builders 创建一个 User 对象并将其传递给 create 方法。角色的创建方法不需要角色对象而是字符串,这就是为什么我只是尝试传递“名称”字符串。发生异常时,我读取 RoleServiceImpl.java 文件以查看 create 方法。结果是这样的:
@Override
public Role create(String name) {
checkNotNull(name);
return post(KeystoneRole.class,
uri("/OS-SADM/roles")).entity(KeystoneRole.builder().name(name).build()).execute();
}
看来 Builder 已经实现了!谁能帮我解决这个问题并创建一个新角色?
最好的问候, 法比奥
【问题讨论】:
标签: java eclipse identity roles openstack