[ovirt-users] Questions regarding neutron implementation for oVirt 3.5

Moti Asayag masayag at redhat.com
Thu Dec 11 10:48:58 UTC 2014



----- Original Message -----
> From: "Juan Hernández" <jhernand at redhat.com>
> To: "Moti Asayag" <masayag at redhat.com>, "Andrew Brimer" <abrimer at pearlnet.com>
> Cc: users at ovirt.org
> Sent: Thursday, December 11, 2014 11:23:37 AM
> Subject: Re: [ovirt-users] Questions regarding neutron implementation for oVirt 3.5
> 
> On 12/11/2014 09:56 AM, Moti Asayag wrote:
> > 
> > 
> > ----- Original Message -----
> >> From: "Andrew Brimer" <abrimer at pearlnet.com>
> >> To: "Moti Asayag" <masayag at redhat.com>
> >> Cc: users at ovirt.org
> >> Sent: Thursday, December 11, 2014 1:04:46 AM
> >> Subject: RE: Questions regarding neutron implementation for oVirt 3.5
> >>
> >> Hi Modi,
> >>
> >> In the discussion found at
> >> https://bugzilla.redhat.com/show_bug.cgi?id=1064231 Comment #12 states
> >> that
> >> the fedora Jackson package will not make a difference because the Jackson
> >> jar files pre-packaged in JBoss is what is actually used for this. Is that
> >> a
> >> true statement in your opinion? If so, how can I locate the appropriate
> >> jar
> >> and then what is the path in the oVirt Engine that I need to place
> >> that/those jar file(s) into?
> > 
> > Adding Juan to verify the suggested sequence, and to verify no better
> > alternative is
> > available.
> > 
> > In order to upgrade the jackson module version, you should replace both the
> > .jar files
> > and edit each module.xml of the corresponding jar file:
> > 
> > The files which should be replaced could be identified by:
> > $ find /usr/share/jboss-as-7.1.1.Final/modules -name "jackson*.jar"
> > /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/jackson-jaxrs/main/jackson-jaxrs-1.9.2.jar
> > /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/jackson-mapper-asl/main/jackson-mapper-asl-1.9.2.jar
> > /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/jackson-xc/main/jackson-xc-1.9.2.jar
> > /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/jackson-core-asl/main/jackson-core-asl-1.9.2.jar
> > 
> > Jar files can be downloaded from maven repository:
> > http://central.maven.org/maven2/org/codehaus/jackson/jackson-jaxrs/1.9.9/jackson-jaxrs-1.9.9.jar
> > http://central.maven.org/maven2/org/codehaus/jackson/jackson-xc/1.9.9/jackson-xc-1.9.9.jar
> > http://central.maven.org/maven2/org/codehaus/jackson/jackson-mapper-asl/1.9.9/jackson-mapper-asl-1.9.9.jar
> > http://central.maven.org/maven2/org/codehaus/jackson/jackson-core-asl/1.9.9/jackson-core-asl-1.9.9.jar
> > 
> > After the replacement, you should have the following:
> > /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/jackson-jaxrs/main/jackson-jaxrs-1.9.9.jar
> > /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/jackson-mapper-asl/main/jackson-mapper-asl-1.9.9.jar
> > /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/jackson-xc/main/jackson-xc-1.9.9.jar
> > /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/jackson-core-asl/main/jackson-core-asl-1.9.9.jar
> > 
> > Next, update the "module.xml" version from 1.9.2 to 1.9.9 files detected
> > by:
> > $ find  /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/ -name
> > "module.xml"
> > /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/jackson-jaxrs/main/module.xml:
> > <resource-root path="jackson-jaxrs-1.9.2.jar"/>
> > /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/jackson-mapper-asl/main/module.xml:
> > <resource-root path="jackson-mapper-asl-1.9.2.jar"/>
> > /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/jackson-xc/main/module.xml:
> > <resource-root path="jackson-xc-1.9.2.jar"/>
> > /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/jackson-core-asl/main/module.xml:
> > <resource-root path="jackson-core-asl-1.9.2.jar"/>
> > 
> > for example, by editing them in place by:
> > $ find  /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/ -name
> > "module.xml" -exec sed 's/1.9.9/1.9.2/' {} \;
> > 
> > And verify the output is:
> > $ find  /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/ -name
> > "module.xml" | xargs grep 1\.9
> > /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/jackson-jaxrs/main/module.xml:
> > <resource-root path="jackson-jaxrs-1.9.9.jar"/>
> > /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/jackson-mapper-asl/main/module.xml:
> > <resource-root path="jackson-mapper-asl-1.9.9.jar"/>
> > /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/jackson-xc/main/module.xml:
> > <resource-root path="jackson-xc-1.9.9.jar"/>
> > /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/jackson-core-asl/main/module.xml:
> > <resource-root path="jackson-core-asl-1.9.9.jar"/>
> > 
> > Last thing is either rename the .jar.index file names to match the new
> > version or remove them, so jboss will auto-generate them.
> > $ find  /usr/share/jboss-as-7.1.1.Final/modules/org/codehaus/jackson/ -name
> > ".jar.index"
> > 
> 
> If you are using Fedora 20 then you are also using the
> "ovirt-engine-jboss-as" package. That is a repackaging of JBoss AS 7.1.1
> needed because Fedora 20 ships with WildFly, and we don't support it.
> What is relevant for you is that the location of the files is not
> /usr/share/jboss-as-7.1.1.Final but /usr/share/ovirt-engine-jboss-as.
> Other than that the instructions provided by Moti are correct. However
> the modifications of those files will be lost when the
> "ovirt-engine-jboss-as" package is updated (unlikely). I'd suggest to
> create a new module from scratch, in the
> /usr/share/ovirt-engine/modules/common directory. I did so and it is
> available here:
> 
>   https://jhernand.fedorapeople.org/jackson-1.9.9-module.zip
> 
> And you can install it as follows:
> 
>   # curl -o jackson-1.9.9-module.zip
> https://jhernand.fedorapeople.org/jackson-1.9.9-module.zip
>   # unzip -o -d /usr/share/ovirt-engine/modules/common
> jackson-1.9.9-module.zip
> 
> Then restart the engine:
> 
>   # systemctl restart ovirt-engine
> 
> The right solution is to do exactly this during the build of the engine:
> 
>   core: Use Jackson 1.9.9
>   http://gerrit.ovirt.org/33959
> 

+1
Thanks! 

> >>
> >> Am I on the right track? What is your advice?
> >>
> >> Kind Regards,
> >>
> >> Andrew Brimer
> >>
> >> -----Original Message-----
> >> From: Moti Asayag [mailto:masayag at redhat.com]
> >> Sent: Wednesday, December 10, 2014 4:16 PM
> >> To: Andrew Brimer
> >> Cc: users at ovirt.org
> >> Subject: Re: Questions regarding neutron implementation for oVirt 3.5
> >>
> >>
> >>
> >> ----- Original Message -----
> >>> From: "Andrew Brimer" <abrimer at pearlnet.com>
> >>> To: "Moti Asayag" <masayag at redhat.com>
> >>> Sent: Wednesday, December 10, 2014 5:55:31 PM
> >>> Subject: RE: Questions regarding neutron implementation for oVirt 3.5
> >>>
> >>> Hi Moti,
> >>>
> >>> Yes. I did not consider sending this out in a way that everyone would
> >>> benefit, sorry. This is the first time that I have posted a question
> >>> for oVirt and just saw your email address in the instructions document
> >>> and quickly fired off an email. I will post to users at ovirt.org for all
> >>> future questions, I would love to participate in any way possible to
> >>> help you guys (and those of us who rely on your efforts) move things
> >>> forward. If you would like for me to forward the next (or this one)
> >>> message to users at ovirt.org I would be very happy to.
> >>>
> >>
> >> Done. I think this will help other users which might face the same
> >> problem.
> >>
> >>> To answer your question regarding testing connectivity, yes I pressed
> >>> the test button and was provided the success message. In addition to
> >>> that, when I create a net and subnet in oVirt I am able to query neutron
> >>> and find them.
> >>> I can also create a net in neutron (neutron net-create) and import it
> >>> into oVirt. It seems that the two systems are communicating but that
> >>> somewhere along the way an error is halting your workflow (see the
> >>> snippit from the
> >>> /var/log/ovirt-engine/engine.log)
> >>>
> >>
> >> The cause for the error is documented in bug 1064231 [1] as a result of a
> >> buggy jackson package version which is delivered by jboss. The bug wasn't
> >> fixed for f20, and it appears since ovirt-engine-3.4.
> >>
> >> Although requests are being sent to the neutron server and being processed
> >> successfully, retrieving the subnets from neutron fails due to the bug in
> >> jackson.
> >>
> >> Local upgrade of the jackson package under jboss-as-7.1 to 1.9.9 or using
> >> jboss-eap-6.3 which is shipped with jackson-1.9.9 will solve this issue.
> >>
> >> [1] https://bugzilla.redhat.com/show_bug.cgi?id=1064231
> >>
> >>
> >>> Output (subset) of the /var/log/ovirt-engine/engine.log:
> >>>
> >>> 2014-12-10 14:41:23,623 ERROR
> >>> [org.ovirt.engine.core.bll.provider.network.GetExternalSubnetsOnProvid
> >>> erByNetworkQuery]
> >>> (ajp--127.0.0.1-8702-3) Query
> >>> GetExternalSubnetsOnProviderByNetworkQuery
> >>> failed. Exception message is
> >>> org.codehaus.jackson.map.JsonMappingException:
> >>> Parameter #0 type for factory method ([method valueOf, annotations:
> >>> {interface
> >>> org.codehaus.jackson.annotate.JsonCreator=@org.codehaus.jackson.annota
> >>> te.JsonCreator()}]) not suitable, must be java.lang.String :
> >>> org.jboss.resteasy.spi.ReaderException:
> >>> org.codehaus.jackson.map.JsonMappingException: Parameter #0 type for
> >>> factory method ([method valueOf, annotations: {interface
> >>> org.codehaus.jackson.annotate.JsonCreator=@org.codehaus.jackson.annota
> >>> te.JsonCreator()}]) not suitable, must be java.lang.String:
> >>> org.jboss.resteasy.spi.ReaderException:
> >>> org.codehaus.jackson.map.JsonMappingException: Parameter #0 type for
> >>> factory method ([method valueOf, annotations: {interface
> >>> org.codehaus.jackson.annotate.JsonCreator=@org.codehaus.jackson.annota
> >>> te.JsonCreator()}]) not suitable, must be java.lang.String
> >>>         at
> >>>         org.jboss.resteasy.client.core.BaseClientResponse.readFrom(BaseClientResponse.java:469)
> >>>         [resteasy-jaxrs-2.3.2.Final.jar:]
> >>>         at
> >>>         org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:377)
> >>>         [resteasy-jaxrs-2.3.2.Final.jar:]
> >>>         at
> >>>         org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:350)
> >>>         [resteasy-jaxrs-2.3.2.Final.jar:]
> >>>         at
> >>>         org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:344)
> >>>         [resteasy-jaxrs-2.3.2.Final.jar:]
> >>>         at
> >>>         com.woorea.openstack.connector.RESTEasyResponse.getEntity(RESTEasyResponse.java:25)
> >>>         [resteasy-connector.jar:]
> >>>         at
> >>>         com.woorea.openstack.base.client.OpenStackClient.execute(OpenStackClient.java:67)
> >>>         [openstack-client.jar:]
> >>>         at
> >>>         com.woorea.openstack.base.client.OpenStackRequest.execute(OpenStackRequest.java:98)
> >>>         [openstack-client.jar:]
> >>>         at
> >>>         org.ovirt.engine.core.bll.provider.network.openstack.OpenstackNetworkProviderProxy.getAllSubnets(OpenstackNetworkProviderProxy.java:132)
> >>>         [bll.jar:]
> >>>         at
> >>>         org.ovirt.engine.core.bll.provider.network.GetExternalSubnetsOnProviderByNetworkQuery.executeQueryCommand(GetExternalSubnetsOnProviderByNetworkQuery.java:28)
> >>>         [bll.jar:]
> >>>         at
> >>>         org.ovirt.engine.core.bll.QueriesCommandBase.executeCommand(QueriesCommandBase.java:73)
> >>>         [bll.jar:]
> >>>         at
> >>>         org.ovirt.engine.core.dal.VdcCommandBase.execute(VdcCommandBase.java:31)
> >>>         [dal.jar:]
> >>>         at
> >>>         org.ovirt.engine.core.bll.Backend.runQueryImpl(Backend.java:492)
> >>>         [bll.jar:]
> >>>         at org.ovirt.engine.core.bll.Backend.runQuery(Backend.java:466)
> >>>         [bll.jar:]
> >>>         at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
> >>>         [:1.7.0_71]
> >>>         at
> >>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> >>>         [rt.jar:1.7.0_71]
> >>>         at java.lang.reflect.Method.invoke(Method.java:606)
> >>>         [rt.jar:1.7.0_71]
> >>>         at
> >>>         org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72)
> >>>         [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:374)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.delegateInterception(Jsr299BindingsInterceptor.java:114)
> >>>         [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:125)
> >>>         [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:135)
> >>>         [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36)
> >>>         [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:374)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.ovirt.engine.core.bll.interceptors.ThreadLocalSessionCleanerInterceptor.injectWebContextToThreadLocal(ThreadLocalSessionCleanerInterceptor.java:13)
> >>>         [bll.jar:]
> >>>         at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
> >>>         [:1.7.0_71]
> >>>         at
> >>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> >>>         [rt.jar:1.7.0_71]
> >>>         at java.lang.reflect.Method.invoke(Method.java:606)
> >>>         [rt.jar:1.7.0_71]
> >>>         at
> >>>         org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptorFactory$ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptorFactory.java:123)
> >>>         [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36)
> >>>         [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:82)
> >>>         [jboss-as-weld-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53)
> >>>         [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.as.ejb3.component.singleton.SingletonComponentInstanceAssociationInterceptor.processInvocation(SingletonComponentInstanceAssociationInterceptor.java:53)
> >>>         [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInNoTx(CMTTxInterceptor.java:211)
> >>>         [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.jboss.as.ejb3.tx.CMTTxInterceptor.supports(CMTTxInterceptor.java:363)
> >>>         [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:194)
> >>>         [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
> >>>         [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)
> >>>         [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
> >>>         [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45)
> >>>         [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165)
> >>>         [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:173)
> >>>         [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
> >>>         [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> >>>         at
> >>>         org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:72)
> >>>         [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final]
> >>>         at
> >>>         org.ovirt.engine.core.common.interfaces.BackendLocal$$$view8.runQuery(Unknown
> >>>         Source) [common.jar:]
> >>>         at
> >>>         org.ovirt.engine.ui.frontend.server.gwt.GenericApiGWTServiceImpl.runQuery(GenericApiGWTServiceImpl.java:56)
> >>>         at
> >>>         org.ovirt.engine.ui.frontend.server.gwt.GenericApiGWTServiceImpl.runMultipleQueries(GenericApiGWTServiceImpl.java:87)
> >>>         at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
> >>>         [:1.7.0_71]
> >>>         at
> >>>         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> >>>         [rt.jar:1.7.0_71]
> >>>         at java.lang.reflect.Method.invoke(Method.java:606)
> >>>         [rt.jar:1.7.0_71]
> >>>         at
> >>>         com.google.gwt.rpc.server.RPC.invokeAndStreamResponse(RPC.java:196)
> >>>         at
> >>>         com.google.gwt.rpc.server.RpcServlet.processCall(RpcServlet.java:172)
> >>>         at
> >>>         com.google.gwt.rpc.server.RpcServlet.processPost(RpcServlet.java:233)
> >>>         at
> >>>         com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
> >>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
> >>>         [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
> >>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
> >>>         [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
> >>>         at
> >>>         org.ovirt.engine.core.utils.servlet.HeaderFilter.doFilter(HeaderFilter.java:94)
> >>>         [utils.jar:]
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
> >>>         at
> >>>         org.ovirt.engine.ui.frontend.server.gwt.GwtCachingFilter.doFilter(GwtCachingFilter.java:132)
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
> >>>         at
> >>>         org.ovirt.engine.core.branding.BrandingFilter.doFilter(BrandingFilter.java:72)
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
> >>>         at
> >>>         org.ovirt.engine.core.utils.servlet.LocaleFilter.doFilter(LocaleFilter.java:64)
> >>>         [utils.jar:]
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
> >>>         at
> >>>         org.ovirt.engine.core.aaa.filters.SessionMgmtFilter.doFilter(SessionMgmtFilter.java:31)
> >>>         [aaa.jar:]
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
> >>>         at
> >>>         org.ovirt.engine.core.aaa.filters.LoginFilter.doFilter(LoginFilter.java:73)
> >>>         [aaa.jar:]
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
> >>>         at
> >>>         org.ovirt.engine.core.aaa.filters.NegotiationFilter.doFilter(NegotiationFilter.java:112)
> >>>         [aaa.jar:]
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
> >>>         at
> >>>         org.ovirt.engine.core.aaa.filters.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:75)
> >>>         [aaa.jar:]
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
> >>>         at
> >>>         org.ovirt.engine.core.aaa.filters.SessionValidationFilter.doFilter(SessionValidationFilter.java:63)
> >>>         [aaa.jar:]
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
> >>>         at
> >>>         org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
> >>>         at
> >>>         org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
> >>>         at
> >>>         org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
> >>>         at
> >>>         org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:489)
> >>>         at
> >>>         org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
> >>>         at
> >>>         org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
> >>>         at
> >>>         org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> >>>         at
> >>>         org.jboss.web.rewrite.RewriteValve.invoke(RewriteValve.java:466)
> >>>         at
> >>>         org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> >>>         at
> >>>         org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
> >>>         at
> >>>         org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:505)
> >>>         at
> >>>         org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:445)
> >>>         at
> >>>         org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)
> >>>         at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_71]
> >>> Caused by: org.codehaus.jackson.map.JsonMappingException: Parameter #0
> >>> type for factory method ([method valueOf, annotations: {interface
> >>> org.codehaus.jackson.annotate.JsonCreator=@org.codehaus.jackson.annota
> >>> te.JsonCreator()}]) not suitable, must be java.lang.String
> >>>         at
> >>>         org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCache2(StdDeserializerProvider.java:346)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCacheValueDeserializer(StdDeserializerProvider.java:321)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.StdDeserializerProvider.findValueDeserializer(StdDeserializerProvider.java:167)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.std.StdDeserializer.findDeserializer(StdDeserializer.java:596)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.BeanDeserializer.resolve(BeanDeserializer.java:379)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.StdDeserializerProvider._resolveDeserializer(StdDeserializerProvider.java:438)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCache2(StdDeserializerProvider.java:383)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCacheValueDeserializer(StdDeserializerProvider.java:321)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.StdDeserializerProvider.findValueDeserializer(StdDeserializerProvider.java:167)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.BasicDeserializerFactory.createCollectionDeserializer(BasicDeserializerFactory.java:274)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.StdDeserializerProvider._createDeserializer(StdDeserializerProvider.java:420)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCache2(StdDeserializerProvider.java:341)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCacheValueDeserializer(StdDeserializerProvider.java:321)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.StdDeserializerProvider.findValueDeserializer(StdDeserializerProvider.java:167)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.std.StdDeserializer.findDeserializer(StdDeserializer.java:596)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.BeanDeserializer.resolve(BeanDeserializer.java:379)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.StdDeserializerProvider._resolveDeserializer(StdDeserializerProvider.java:438)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCache2(StdDeserializerProvider.java:383)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCacheValueDeserializer(StdDeserializerProvider.java:321)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.StdDeserializerProvider.findValueDeserializer(StdDeserializerProvider.java:167)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.StdDeserializerProvider.findTypedValueDeserializer(StdDeserializerProvider.java:188)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.ObjectMapper._findRootDeserializer(ObjectMapper.java:2820)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2690)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1308)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:419)
> >>>         at
> >>>         org.jboss.resteasy.core.interception.MessageBodyReaderContextImpl.proceed(MessageBodyReaderContextImpl.java:105)
> >>>         [resteasy-jaxrs-2.3.2.Final.jar:]
> >>>         at
> >>>         org.jboss.resteasy.client.core.BaseClientResponse.readFrom(BaseClientResponse.java:433)
> >>>         [resteasy-jaxrs-2.3.2.Final.jar:]
> >>>         ... 114 more
> >>> Caused by: java.lang.IllegalArgumentException: Parameter #0 type for
> >>> factory method ([method valueOf, annotations: {interface
> >>> org.codehaus.jackson.annotate.JsonCreator=@org.codehaus.jackson.annota
> >>> te.JsonCreator()}]) not suitable, must be java.lang.String
> >>>         at
> >>>         org.codehaus.jackson.map.deser.std.EnumDeserializer.deserializerForCreator(EnumDeserializer.java:49)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.BasicDeserializerFactory.createEnumDeserializer(BasicDeserializerFactory.java:495)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.StdDeserializerProvider._createDeserializer(StdDeserializerProvider.java:401)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         at
> >>>         org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCache2(StdDeserializerProvider.java:341)
> >>>         [jackson-mapper-asl-1.9.2.jar:1.9.2]
> >>>         ... 140 more
> >>>
> >>> -----Original Message-----
> >>> From: Moti Asayag [mailto:masayag at redhat.com]
> >>> Sent: Wednesday, December 10, 2014 10:28 AM
> >>> To: Andrew Brimer
> >>> Subject: Re: Questions regarding neutron implementation for oVirt 3.5
> >>>
> >>> Hi Andrew,
> >>>
> >>> Generally, it is preferable to send ovirt related questions to
> >>> users at ovirt.org for the benefit of other community members.
> >>>
> >>> If no concerns, please include it in your next reply's cc.
> >>>
> >>> Regarding your issue - see inline.
> >>>
> >>> ----- Original Message -----
> >>>> From: "Andrew Brimer" <abrimer at pearlnet.com>
> >>>> To: masayag at redhat.com
> >>>> Sent: Wednesday, December 10, 2014 4:52:14 PM
> >>>> Subject: Questions regarding neutron implementation for oVirt 3.5
> >>>>
> >>>> Good Morning Moti,
> >>>>
> >>>>  
> >>>>
> >>>> I am hoping that you may be able to help me out if you have a little
> >>>> time Sir.
> >>>>
> >>>>  
> >>>>
> >>>> I have followed your instructions (youtube and
> >>>> NeutronVirtualAppliance
> >>>> document) for integrating Neutron into my oVirt 3.5 system and I am
> >>>> running into some issues when attempting to create a subnet.
> >>>>
> >>>
> >>> Were you able to verify connectivity to the neutron appliance after it
> >>> was added to the ovirt-engine as shown on
> >>> https://www.youtube.com/watch?feature=player_detailpage&v=naLFSFwHI94#t=510?
> >>>
> >>> Could you post the /var/log/ovirt-engine/engine.log ?
> >>>
> >>> Thanks,
> >>> Moti
> >>>
> >>>>  
> >>>>
> >>>> Networks->extent->Subnets->New
> >>>>
> >>>> Network: extent
> >>>>
> >>>> Name: extsubtest
> >>>>
> >>>> CIDR:10.0.9.0/24
> >>>>
> >>>> [OK]
> >>>>
> >>>>  
> >>>>
> >>>>  
> >>>>
> >>>>  
> >>>>
> >>>> Returns: Error while executing action Add Subnet to Provider: Failed
> >>>> to communicate with the external provider.
> >>>>
> >>>>  
> >>>>
> >>>>  
> >>>>
> >>>>  
> >>>>
> >>>> On the Neutron machine:
> >>>>
> >>>> neutron net-list shows 'extnet'
> >>>>
> >>>> neutron subnet-list shows 'extsubtest'
> >>>>
> >>>> neutron router-list shows nothing
> >>>>
> >>>>  
> >>>>
> >>>> oVirt Visor 1 is the host that I used when following your
> >>>> instructions and Visor 2 is the additional host added per your
> >>>> instructions towards the end of the video.
> >>>>
> >>>>  
> >>>>
> >>>> I really appreciate any help that you can provide, I only have
> >>>> Neutron integration to complete and will then have a fully working
> >>>> oVirt 3.5 stack running.
> >>>>
> >>>>  
> >>>>
> >>>> Kind Regards,
> >>>>
> >>>>  
> >>>>
> >>>> Andrew Brimer
> >>>>
> >>>> Chief Systems Architect
> >>>>
> >>>> PearlNet, LLC
> >>>>
> >>>> abrimer at pearlnet.com
> >>>>
> >>>> 770-352-0111 (office)
> >>>>
> >>>> 678-852-8808 (cell)
> >>>>
> >>>>  
> >>>>
> >>>> The following describes my current environment to a level that I
> >>>> hope meets your needs:
> >>>>
> >>>>  
> >>>>
> >>>> oVirt Engine 3.5
> >>>>
> >>>> Fedora 20 Linux ENGINE.example.com 3.17.4-200.fc20.x86_64 #1 SMP Fri
> >>>> Nov
> >>>> 21 23:26:41 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
> >>>>
> >>>> Version Information:
> >>>>
> >>>>  
> >>>>
> >>>> ovirt-engine-setup-base-3.5.0.1-1.fc20.noarch
> >>>>
> >>>> ovirt-engine-tools-3.5.0.1-1.fc20.noarch
> >>>>
> >>>> ovirt-image-uploader-3.5.0-1.fc20.noarch
> >>>>
> >>>> ovirt-host-deploy-java-1.3.0-1.fc20.noarch
> >>>>
> >>>> ovirt-engine-jboss-as-7.1.1-1.fc20.x86_64
> >>>>
> >>>> ovirt-engine-dbscripts-3.5.0.1-1.fc20.noarch
> >>>>
> >>>> ovirt-host-deploy-1.3.0-1.fc20.noarch
> >>>>
> >>>> ovirt-engine-websocket-proxy-3.5.0.1-1.fc20.noarch
> >>>>
> >>>> ovirt-engine-setup-plugin-ovirt-engine-common-3.5.0.1-1.fc20.noarch
> >>>>
> >>>> ovirt-engine-setup-plugin-ovirt-engine-3.5.0.1-1.fc20.noarch
> >>>>
> >>>> ovirt-engine-userportal-3.5.0.1-1.fc20.noarch
> >>>>
> >>>> ovirt-engine-cli-3.5.0.5-1.fc20.noarch
> >>>>
> >>>> ovirt-engine-setup-plugin-websocket-proxy-3.5.0.1-1.fc20.noarch
> >>>>
> >>>> ovirt-engine-sdk-python-3.5.0.8-1.fc20.noarch
> >>>>
> >>>> ovirt-engine-lib-3.5.0.1-1.fc20.noarch
> >>>>
> >>>> ovirt-engine-webadmin-portal-3.5.0.1-1.fc20.noarch
> >>>>
> >>>> ovirt-engine-restapi-3.5.0.1-1.fc20.noarch
> >>>>
> >>>> ovirt-engine-3.5.0.1-1.fc20.noarch
> >>>>
> >>>> ovirt-release35-002-0.0.master.noarch
> >>>>
> >>>> ovirt-engine-backend-3.5.0.1-1.fc20.noarch
> >>>>
> >>>> ovirt-engine-extensions-api-impl-3.5.0.1-1.fc20.noarch
> >>>>
> >>>> ovirt-engine-setup-3.5.0.1-1.fc20.noarch
> >>>>
> >>>> ovirt-iso-uploader-3.5.0-1.fc20.noarch
> >>>>
> >>>>  
> >>>>
> >>>> openstack-java-glance-client-3.0.5-1.fc20.noarch
> >>>>
> >>>> openstack-java-keystone-model-3.0.5-1.fc20.noarch
> >>>>
> >>>> openstack-java-glance-model-3.0.5-1.fc20.noarch
> >>>>
> >>>> openstack-java-quantum-client-3.0.5-1.fc20.noarch
> >>>>
> >>>> openstack-java-resteasy-connector-3.0.5-1.fc20.noarch
> >>>>
> >>>> openstack-java-client-3.0.5-1.fc20.noarch
> >>>>
> >>>> openstack-java-quantum-model-3.0.5-1.fc20.noarch
> >>>>
> >>>> openstack-java-keystone-client-3.0.5-1.fc20.noarch
> >>>>
> >>>>  
> >>>>
> >>>> oVirt Visor 1
> >>>>
> >>>> Fedora 20 Linux VISOR1-ov.example.com 3.17.4-200.fc20.x86_64 #1 SMP
> >>>> Fri Nov 21 23:26:41 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
> >>>>
> >>>> Version Information:
> >>>>
> >>>>  
> >>>>
> >>>> ovirt-release35-002-0.0.master.noarch
> >>>>
> >>>> sos-3.1-1.1.fc20.ovirt.noarch
> >>>>
> >>>>  
> >>>>
> >>>>  
> >>>>
> >>>> oVirt Visor 2
> >>>>
> >>>> Fedora 20 Linux VISOR2-ov.vdi-zen.com 3.17.4-200.fc20.x86_64 #1 SMP
> >>>> Fri Nov 21 23:26:41 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
> >>>>
> >>>> Version Information:
> >>>>
> >>>>  
> >>>>
> >>>> ovirt-release35-002-0.0.master.noarch
> >>>>
> >>>> sos-3.1-1.1.fc20.ovirt.noarch
> >>>>
> >>>>  
> >>>>
> >>>> openstack-neutron-2013.2.4-6.fc20.noarch
> >>>>
> >>>> openstack-utils-2014.1-3.fc20.noarch
> >>>>
> >>>> openstack-neutron-openvswitch-2013.2.4-6.fc20.noarch
> >>>>
> >>>> vdsm-hook-openstacknet-4.16.7-1.gitdb83943.fc20.noarch
> >>>>
> >>>>  
> >>>>
> >>>>  
> >>>>
> >>>> Neutron Appliance
> >>>>
> >>>> Downloaded from Glance inside oVirt Admin
> >>>>
> >>>> Version 2.3.4
> >>>>
> >>>>  
> >>>>
> >>>>  
> >>>>
> >>>>
> >>>
> >>>
> >>
> >>
> 
> 
> 
> --
> Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta
> 3ºD, 28016 Madrid, Spain
> Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.
> 



More information about the Users mailing list