【问题标题】:While creating network on Openstack using jclouds I am getting the error : [{"NeutronError": "Unrecognized attribute(s) 'networkType'"}]使用 jclouds 在 Openstack 上创建网络时出现错误:[{"NeutronError":"Unrecognized attribute(s) 'networkType'"}]
【发布时间】:2014-08-05 15:49:34
【问题描述】:

详细的错误日志如下:

命令:POST http://os.myserver.com:9696/v2.0/networks HTTP/1.1 失败,响应:HTTP/1.1 400 Bad Request;内容:[{“NeutronError”:“无法识别的属性‘networkType’”}] org.jclouds.http.HttpResponseException:命令:POST https://os.myserver.com:9696/v2.0/networks HTTP/1.1 失败,响应:HTTP/1.1 400 错误请求;内容:[{“NeutronError”:“无法识别的属性‘networkType’”}] 在 org.jclouds.openstack.neutron.v2_0.handlers.NeutronErrorHandler.handleError(NeutronErrorHandler.java:40) 在 org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:67) 在 org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:180) 在 org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:150) 在 org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:93) 在 org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:76) 在 org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:47)

以下是我的代码 sn-p :

CreateNetworkOptions createNetworkOptions = CreateNetworkOptions.builder()
                    .name(name)
                    .networkType(NetworkType.LOCAL).build();
NetworkApi networkApi = neutronApi.getNetworkApiForZone(zone);
Network network = networkApi.create(createNetworkOptions);

如果我不设置网络类型,那么它工作正常。 但我需要将 networkType 设置为 NetworkType.LOCAL

【问题讨论】:

    标签: networking openstack jclouds


    【解决方案1】:

    最近重构了 jclouds 的中子代码并修复了一些错误。新代码使用“v2”而不是“v2_0”。

    您看到的是 jclouds neutron "v2_0" 中的一个错误。 map-binder 不支持 LOCAL 网络类型。具体来说,这里:

    https://github.com/jclouds/jclouds-labs-openstack/blob/master/openstack-neutron/src/main/java/org/jclouds/openstack/neutron/v2_0/options/CreateNetworkOptions.java#L206

    这里支持的类型有 FLAT、VLAN 和 GRE。

    好消息是这个问题应该得到解决,但您必须升级到 jclouds 1.8.0 并确保使用 neutron v2。您还必须更改代码才能使用新接口。

    您可以在此处找到一些示例代码: https://github.com/jclouds/jclouds-labs-openstack/blob/master/openstack-neutron/src/test/java/org/jclouds/openstack/neutron/v2/features/NetworkApiMockTest.java#L50

    这是重要的部分:

    Network.CreateOptions createNetwork = Network.createOptions("jclouds-wibble")
                   .networkType(NetworkType.LOCAL)
                   .build();
    Network network = api.create(createNetwork);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-24
      • 1970-01-01
      • 2018-03-07
      • 1970-01-01
      • 2020-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多