【问题标题】:How can I create a new Role with openstack4j?如何使用 openstack4j 创建新角色?
【发布时间】: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


    【解决方案1】:

    解决了! OpenStack V2 只需要角色的名称来创建它,但我使用的 Openstack4j 版本自动嵌入在请求中,还需要“启用”参数。这就是为什么我有一个例外。该错误已在库的最新版本(2.20)中修复

    【讨论】:

      猜你喜欢
      • 2019-04-19
      • 2021-05-05
      • 1970-01-01
      • 2021-11-30
      • 2022-11-29
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多