Parth, The plugin 1.0 won't work with any version beyond 4.9 (4.7 and 4.7 aren't tested). There is a branch, 'on-top-of-pr-2071-for-4.10 <https://github.com/shapeblue/ccs/tree/on-top-of-pr-2071-for-4.10>', that we are now porting to 4.11. If you have capability to build it you can try that.
On Tue, Mar 13, 2018 at 1:03 PM, Parth Patel <parthpatel2...@gmail.com> wrote: > Hi, > > Maybe somebody working in ShapeBlue can help me. I am trying to integrate > CCS service (https://github.com/shapeblue/ccs) with ACS 4.11 using > http://downloads.shapeblue.com/ccs/1.0/Installation_and_ > Administration_Guide.pdf > and > I quickly came to know about huge architecture changes that ACS has gone > through in the latest release. I somehow managed to bring the UI by editing > and placing the ccs folder in the new "webapp" folder instead of "webapps" > folder. But I am confused as to where to place the shapeblue-ccs and > flyaway core jar files. I tried placing them in > /usr/share/cloudstack-management/lib folder but it gave the following > error > in management-server.log: > > > 2018-03-13 16:59:27,953 INFO [o.a.c.s.m.m.i.DefaultModuleDefinitionSet] > (main:null) (logid:) Loading module context [ccs] from URL > [jar:file:/usr/share/cloudstack-management/webapp/ > WEB-INF/lib/cloud-plugin-shapeblue-ccs-1.0.1.jar!/META- > INF/cloudstack/ccs/spring-ccs-context.xml] > 2018-03-13 16:59:27,953 INFO [o.a.c.s.m.m.i.DefaultModuleDefinitionSet] > (main:null) (logid:) Loading module context [ccs] from URL > [jar:file:/usr/share/cloudstack-management/lib/ > cloudstack-4.11.0.0.jar!/META-INF/cloudstack/compute/spring- > core-lifecycle-compute-context-inheritable.xml] > 2018-03-13 16:59:27,953 INFO [o.a.c.s.m.m.i.DefaultModuleDefinitionSet] > (main:null) (logid:) Loading module context [ccs] from URL > [jar:file:/usr/share/cloudstack-management/lib/ > cloudstack-4.11.0.0.jar!/META-INF/cloudstack/core/spring- > core-lifecycle-core-context-inheritable.xml] > 2018-03-13 16:59:27,953 INFO [o.a.c.s.m.m.i.DefaultModuleDefinitionSet] > (main:null) (logid:) Loading module context [ccs] from URL > [jar:file:/usr/share/cloudstack-management/lib/ > cloudstack-4.11.0.0.jar!/META-INF/cloudstack/system/spring- > framework-config-system-context-inheritable.xml] > 2018-03-13 16:59:27,953 INFO [o.a.c.s.m.m.i.DefaultModuleDefinitionSet] > (main:null) (logid:) Loading module context [ccs] from URL > [jar:file:/usr/share/cloudstack-management/lib/ > cloudstack-4.11.0.0.jar!/META-INF/cloudstack/system/spring- > core-system-context-inheritable.xml] > 2018-03-13 16:59:27,953 INFO [o.a.c.s.m.m.i.DefaultModuleDefinitionSet] > (main:null) (logid:) Loading module context [ccs] from URL > [jar:file:/usr/share/cloudstack-management/lib/ > cloudstack-4.11.0.0.jar!/META-INF/cloudstack/system/spring- > contrail-system-context-inheritable.xml] > 2018-03-13 16:59:27,953 INFO [o.a.c.s.m.m.i.DefaultModuleDefinitionSet] > (main:null) (logid:) Loading module context [ccs] from URL > [jar:file:/usr/share/cloudstack-management/lib/ > cloudstack-4.11.0.0.jar!/META-INF/cloudstack/bootstrap/ > spring-bootstrap-context-inheritable.xml] > 2018-03-13 16:59:28,098 WARN [o.a.c.s.m.c.ResourceApplicationContext] > (main:null) (logid:) Exception encountered during context initialization - > cancelling refresh attempt: > org.springframework.beans.factory.BeanCreationException: Error creating > bean with name 'ContainerClusterManagerImpl': Lookup method resolution > failed; nested exception is java.lang.IllegalStateException: Failed to > introspect Class [com.cloud.containercluster.ContainerClusterManagerImpl] > from ClassLoader [WebAppClassLoader=500772834@1dd92fe2] > 2018-03-13 16:59:28,100 WARN [o.e.j.w.WebAppContext] (main:null) (logid:) > Failed startup of context o.e.j.w.WebAppContext@365c30cc > {/client,file:///usr/share/cloudstack-management/webapp/, > UNAVAILABLE}{/usr/share/cloudstack-management/webapp} > org.springframework.beans.factory.BeanCreationException: Error creating > bean with name 'ContainerClusterManagerImpl': Lookup method resolution > failed; nested exception is java.lang.IllegalStateException: Failed to > introspect Class [com.cloud.containercluster.ContainerClusterManagerImpl] > from ClassLoader [WebAppClassLoader=500772834@1dd92fe2] > at > org.springframework.beans.factory.annotation. > AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors( > AutowiredAnnotationBeanPostProcessor.java:262) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac > tory.determineConstructorsFromBeanPostProcessors( > AbstractAutowireCapableBeanFactory.java:1198) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac > tory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1123) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac > tory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFac > tory.createBean(AbstractAutowireCapableBeanFactory.java:502) > at > org.springframework.beans.factory.support.AbstractBeanFactory.lambda$ > doGetBean$0(AbstractBeanFactory.java:312) > at > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry. > getSingleton(DefaultSingletonBeanRegistry.java:228) > at > org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean( > AbstractBeanFactory.java:310) > at > org.springframework.beans.factory.support.AbstractBeanFactory.getBean( > AbstractBeanFactory.java:200) > at > org.springframework.beans.factory.support.DefaultListableBeanFactory. > preInstantiateSingletons(DefaultListableBeanFactory.java:758) > at > org.springframework.context.support.AbstractApplicationContext. > finishBeanFactoryInitialization(AbstractApplicationContext.java:868) > at > org.springframework.context.support.AbstractApplicationContext.refresh( > AbstractApplicationContext.java:549) > at > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet. > loadContext(DefaultModuleDefinitionSet.java:145) > at > org.apache.cloudstack.spring.module.model.impl. > DefaultModuleDefinitionSet$2.with(DefaultModuleDefinitionSet.java:122) > at > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet. > withModule(DefaultModuleDefinitionSet.java:245) > at > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet. > withModule(DefaultModuleDefinitionSet.java:250) > at > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet. > withModule(DefaultModuleDefinitionSet.java:250) > at > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet. > withModule(DefaultModuleDefinitionSet.java:250) > at > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet. > withModule(DefaultModuleDefinitionSet.java:250) > at > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet. > withModule(DefaultModuleDefinitionSet.java:250) > at > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet. > withModule(DefaultModuleDefinitionSet.java:233) > at > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet. > loadContexts(DefaultModuleDefinitionSet.java:117) > at > org.apache.cloudstack.spring.module.model.impl.DefaultModuleDefinitionSet. > load(DefaultModuleDefinitionSet.java:79) > at > org.apache.cloudstack.spring.module.factory.ModuleBasedContextFactory. > loadModules(ModuleBasedContextFactory.java:37) > at > org.apache.cloudstack.spring.module.factory.CloudStackSpringContext.init( > CloudStackSpringContext.java:71) > at > org.apache.cloudstack.spring.module.factory.CloudStackSpringContext.<init> > (CloudStackSpringContext.java:58) > at > org.apache.cloudstack.spring.module.factory.CloudStackSpringContext.<init> > (CloudStackSpringContext.java:62) > at > org.apache.cloudstack.spring.module.web.CloudStackContextLoaderListene > r.contextInitialized(CloudStackContextLoaderListener.java:52) > at > org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized( > ContextHandler.java:890) > at > org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized( > ServletContextHandler.java:532) > at > org.eclipse.jetty.server.handler.ContextHandler. > startContext(ContextHandler.java:853) > at > org.eclipse.jetty.servlet.ServletContextHandler.startContext( > ServletContextHandler.java:344) > at > org.eclipse.jetty.webapp.WebAppContext.startWebapp( > WebAppContext.java:1515) > at > org.eclipse.jetty.webapp.WebAppContext.startContext( > WebAppContext.java:1477) > at > org.eclipse.jetty.server.handler.ContextHandler. > doStart(ContextHandler.java:785) > at > org.eclipse.jetty.servlet.ServletContextHandler.doStart( > ServletContextHandler.java:261) > at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:545) > at > org.eclipse.jetty.util.component.AbstractLifeCycle. > start(AbstractLifeCycle.java:68) > at > org.eclipse.jetty.util.component.ContainerLifeCycle. > start(ContainerLifeCycle.java:133) > at > org.eclipse.jetty.util.component.ContainerLifeCycle. > doStart(ContainerLifeCycle.java:107) > at > org.eclipse.jetty.server.handler.AbstractHandler. > doStart(AbstractHandler.java:113) > at > org.eclipse.jetty.server.handler.gzip.GzipHandler. > doStart(GzipHandler.java:273) > at > org.eclipse.jetty.util.component.AbstractLifeCycle. > start(AbstractLifeCycle.java:68) > at > org.eclipse.jetty.util.component.ContainerLifeCycle. > start(ContainerLifeCycle.java:133) > at > org.eclipse.jetty.util.component.ContainerLifeCycle. > doStart(ContainerLifeCycle.java:115) > at > org.eclipse.jetty.server.handler.AbstractHandler. > doStart(AbstractHandler.java:113) > at > org.eclipse.jetty.util.component.AbstractLifeCycle. > start(AbstractLifeCycle.java:68) > at > org.eclipse.jetty.util.component.ContainerLifeCycle. > start(ContainerLifeCycle.java:133) > at org.eclipse.jetty.server.Server.start(Server.java:418) > at > org.eclipse.jetty.util.component.ContainerLifeCycle. > doStart(ContainerLifeCycle.java:107) > at > org.eclipse.jetty.server.handler.AbstractHandler. > doStart(AbstractHandler.java:113) > at org.eclipse.jetty.server.Server.doStart(Server.java:385) > at > org.eclipse.jetty.util.component.AbstractLifeCycle. > start(AbstractLifeCycle.java:68) > at org.apache.cloudstack.ServerDaemon.start(ServerDaemon.java:200) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: > 62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > org.apache.commons.daemon.support.DaemonLoader.start( > DaemonLoader.java:241) > Caused by: java.lang.IllegalStateException: Failed to introspect Class > [com.cloud.containercluster.ContainerClusterManagerImpl] from ClassLoader > [WebAppClassLoader=500772834@1dd92fe2] > at > org.springframework.util.ReflectionUtils.getDeclaredMethods( > ReflectionUtils.java:659) > at > org.springframework.util.ReflectionUtils.doWithMethods( > ReflectionUtils.java:556) > at > org.springframework.util.ReflectionUtils.doWithMethods( > ReflectionUtils.java:541) > ... 59 more > Caused by: java.lang.NoClassDefFoundError: > org/bouncycastle/asn1/DEREncodable > at java.lang.Class.getDeclaredMethods0(Native Method) > at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) > at java.lang.Class.getDeclaredMethods(Class.java:1975) > ... 62 more > Caused by: java.lang.ClassNotFoundException: > org.bouncycastle.asn1.DEREncodable > at java.net.URLClassLoader.findClass(URLClassLoader.java:381) > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338) > ... 68 more > 2018-03-13 16:59:28,106 INFO [o.e.j.s.h.ContextHandler] (main:null) > (logid:) Started o.e.j.s.h.MovedContextHandler@80169cf{/,null,AVAILABLE} > 2018-03-13 16:59:28,125 INFO [o.e.j.s.AbstractConnector] (main:null) > (logid:) Started ServerConnector@15d0c81b{HTTP/1.1,[http/1.1]}{:::8080} > 2018-03-13 16:59:28,125 INFO [o.e.j.s.Server] (main:null) (logid:) Started > @30618ms > > > > I also tried placing them in > /usr/share/cloudstack-management/lib/cloudstack-4.11.0.0.jar but it showed > the following error: > > Caused by: java.io.IOException: Resource > [jar:file:/usr/share/cloudstack-management/lib/ > cloud-plugin-shapeblue-ccs-1.0.1.jar!/META-INF/cloudstack/ > ccs/module.properties] > and > [jar:file:/usr/share/cloudstack-management/webapp/ > WEB-INF/lib/cloud-plugin-shapeblue-ccs-1.0.1.jar!/META- > INF/cloudstack/ccs/module.properties] > do not appear to be the same resource, please ensure the name property is > correct or that the module is not defined twice > > I suppose I would have to change module.properties or context files of the > ccs code? I don't know where to start. Even the write your plugin guide > here:http://docs.cloudstack.apache.org/en/latest/plugins.html guides > writing UI plugins for tomcat and other storage services. Can somebody > point me to an updated guide for writing plugins *now* in ACS 4.11? so that > I can verify and modify if required the GitHub code available at > shapeblue/ccs. Any guidance is appreciated. > > Thanks, > Parth Patel > -- Daan