@Chiradeep Vittal: I saw what happen on this error. The problem is: the * guru.allocate()* function in NetworkManager called to ExternalGuestNetworkGuru instead of OvsGuestNetworkGuru.
*NetworkGuru guru = AdapterBase.getAdapterByName(_networkGurus, network.getGuruName())* this function return ExternalGuestNetworkGuru And even if it calls to OvsGuestNetworkGuru, the problem does still appear because the OvsGuestNetworkGuru doesn't have the allocate() function. 2013/6/11 Chiradeep Vittal <chiradeep.vit...@citrix.com> > Yes > > On 6/10/13 1:12 PM, "Sebastien Goasguen" <run...@gmail.com> wrote: > > > > >On Jun 10, 2013, at 3:07 PM, Chiradeep Vittal > ><chiradeep.vit...@citrix.com> wrote: > > > >> The check for the config is incorrect. The check should be whether the > >> network in the input parameter has the isolation method 'GRE'. You can > >>see > >> the canHandle method on how to check for this. Although, I don't see why > >> this check should even be necessary. The network will be associated with > >> the guru at design time. > > > >Chiradeep, that's a bug then ? > > > >> > >> > >> On 6/10/13 7:17 AM, "Nguyen Anh Tu" <ng.t...@gmail.com> wrote: > >> > >>> Hi forks, > >>> > >>> I'm trying OVS tunnel with XCP 1.6 and get error NullPointerException > >>>when > >>> executing deployVM. > >>> > >>> I found this error starting from the below code. > >>> > >>> *NetworkManagerImpl.java* > >>> > >>> *NicProfile profile = guru.allocate(network, requested, vm); (1)* > >>> if (isDefaultNic != null) { > >>> profile.setDefaultNic( > >>> isDefaultNic); > >>> } > >>> > >>> *ExtenalGuestNetworkGuru.java* > >>> > >>> @Override > >>> * public NicProfile allocate(Network config, NicProfile nic, > >>> VirtualMachineProfile<? extends VirtualMachine> vm) throws > >>> InsufficientVirtualNetworkCapcityException, > >>> InsufficientAddressCapacityException* { > >>> > >>> if > >>> > >>>(_networkModel.networkIsConfiguredForExternalNetworking(config.getDataCe > >>>nt > >>> erId(), > >>> config.getId()) && nic != null && nic.getRequestedIpv4() != null) { > >>> throw new CloudRuntimeException("Does not support custom ip > >>> allocation at this time: " + nic); > >>> } > >>> > >>> NicProfile profile = super.allocate(config, nic, vm); > >>> > >>> *boolean _isEnabled = > >>> > >>>Boolean.parseBoolean(_configDao.getValue(Config.OvsTunnelNetwork.key())) > >>>; > >>> (2) > >>> if (_isEnabled) { > >>> return null; > >>> }* > >>> > >>> if > >>> > >>>(_networkModel.networkIsConfiguredForExternalNetworking(config.getDataCe > >>>nt > >>> erId(), > >>> config.getId())) { > >>> profile.setStrategy(ReservationStrategy.Start); > >>> /* We won't clear IP address, because router may set gateway > >>> as > >>> it IP, and it would be updated properly later */ > >>> //profile.setIp4Address(null); > >>> profile.setGateway(null); > >>> profile.setNetmask(null); > >>> } > >>> > >>> return profile; > >>> }* > >>> > >>> * > >>> The return from (1) is NULL, because at (2) *sdn.ovs.controller* set to > >>> true. So profile = NULL and then we get NullPointerException error in > >>>the > >>> next step. > >>> > >>> This error prevents me to deployVM using GRE isolation method. If I > >>>set * > >>> sdn.ovs.controller* = false, no error anymore but can't using GRE. > >>> > >>> How can I fix this? Thanks for any help. > >>> > >>> -- > >>> > >>> N.g.U.y.e.N.A.n.H.t.U > >> > > > > -- N.g.U.y.e.N.A.n.H.t.U