2013-10-18 41 views
0

有人可以幫助我理解如何使用OpenStack中的JClouds API將特定網絡分配給新創建的虛擬機?我用下面的代碼來創建真正的服務器:如何在openstack中使用jclouds將網絡分配給vm以及如何使用Jclouds列出Openstack中的所有網絡

CreateServerOptions[] serverOptions = new CreateServerOptions[0]; 

ServerCreated serverCreated = serverApi.create(clonedVmName, imageId, FlavourId, serverOptions); 

而且我使用的API v1.0-quantum如下獲取所有的網絡,但它不返回任何。我不知道什麼是錯用下面的代碼:

Iterable<Module> modules = ImmutableSet.<Module> of(
       new SLF4JLoggingModule()); 

     quantum = ContextBuilder.newBuilder(provider) 
      .endpoint("http://10.37.53.229:5000/v2.0/") 
      .credentials(identity, password) 
      .modules(modules) 
      .build(); 


     QuantumApi quanApi = (QuantumApi)quantum.getApi(); 
     for(String zone : quanApi.getConfiguredZones()) 
     { 
      System.out.println("Zone : "+ zone); 
     } 

     NetworkApi netApi = quanApi.getNetworkApiForZone("RegionOne"); 
     FluentIterable<? extends Network> nets = netApi.list(); 

     for(Network net : nets) 
     { 
      System.out.println(net.getName() +" Id : "+net.getId()); 
     } 
+0

Neutron(以前的Quantum)API已在jclouds 1.7.0中更新。你可以試試這些嗎?參見[如何安裝OpenStack依賴項](http://jclouds.apache.org/documentation/quickstart/openstack/#install)。 –

回答

0

我用JClouds的1.7.3版本,我建立以下列方式的選項,給網絡ID作爲參數:

CreateServerOptions options = CreateServerOptions.Builder 
     .networks("00000000-0000-0000-0000-000000000000", "11111111-1111-1111-1111-111111111111") 

至於上市網絡here就是很好的例子。

相關問題