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.AbstractAutowireCapableBeanFactory.determineConstructorsFromBeanPostProcessors(AbstractAutowireCapableBeanFactory.java:1198)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1123)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.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.CloudStackContextLoaderListener.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

Reply via email to