-
Bug
-
Resolution: Done
-
Medium
-
None
-
None
It would be nice for aaa-cert-config.xml file to support both relative and absolute paths. Also if path is not found controller fails to start.
For example, using this aaa-cert-config.xml:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <aaa-cert-service-config xmlns="urn:opendaylight:yang:aaa:cert"> <use-config>true</use-config> <use-mdsal>false</use-mdsal> <bundle-name>opendaylight</bundle-name> <ctlKeystore> <name>/opt/lumina/lsc/controller/etc/controller1.sjt.openedge.keystore.p12</name> <alias>controller1.sjt.openedge</alias> <store-password>LH0L7Z19KG/sxGOOv8zn</store-password> </ctlKeystore> <trustKeystore> <name>/opt/lumina/lsc/controller/etc/controller1.sjt.openedge.truststore.p12</name> <store-password>4xACSpAzJI5mZZ7fy4wo</store-password> </trustKeystore> </aaa-cert-service-config>
Controller fails to start with this ERROR:
2019-08-19T20:55:01,018 | ERROR | Blueprint Extender: 1 | ServiceRecipe | 93 - org.apache.aries.blueprint.core - 1.8.3 | Error retrieving service from ServiceRecipe[name='.component-1'] org.osgi.service.blueprint.container.ComponentDefinitionException: Error when instantiating bean certManager of class org.opendaylight.aaa.cert.impl.CertificateManagerService at org.apache.aries.blueprint.container.BeanRecipe.wrapAsCompDefEx(BeanRecipe.java:361) [93:org.apache.aries.blueprint.core:1.8.3] at org.apache.aries.blueprint.container.BeanRecipe.getInstanceFromType(BeanRecipe.java:351) [93:org.apache.aries.blueprint.core:1.8.3] at org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:282) [93:org.apache.aries.blueprint.core:1.8.3] at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:830) [93:org.apache.aries.blueprint.core:1.8.3] at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:811) [93:org.apache.aries.blueprint.core:1.8.3] at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79) [93:org.apache.aries.blueprint.core:1.8.3] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?] at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88) [93:org.apache.aries.blueprint.core:1.8.3] at org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:62) [93:org.apache.aries.blueprint.core:1.8.3] at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:106) [93:org.apache.aries.blueprint.core:1.8.3] at org.apache.aries.blueprint.container.ServiceRecipe.createService(ServiceRecipe.java:285) [93:org.apache.aries.blueprint.core:1.8.3] at org.apache.aries.blueprint.container.ServiceRecipe.internalGetService(ServiceRecipe.java:252) [93:org.apache.aries.blueprint.core:1.8.3] at org.apache.aries.blueprint.container.ServiceRecipe.internalCreate(ServiceRecipe.java:149) [93:org.apache.aries.blueprint.core:1.8.3] at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79) [93:org.apache.aries.blueprint.core:1.8.3] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?] at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88) [93:org.apache.aries.blueprint.core:1.8.3] at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:255) [93:org.apache.aries.blueprint.core:1.8.3] at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:186) [93:org.apache.aries.blueprint.core:1.8.3] at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:704) [93:org.apache.aries.blueprint.core:1.8.3] at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:410) [93:org.apache.aries.blueprint.core:1.8.3] at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:275) [93:org.apache.aries.blueprint.core:1.8.3] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?] at org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106) [93:org.apache.aries.blueprint.core:1.8.3] at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48) [93:org.apache.aries.blueprint.core:1.8.3] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?] at java.lang.Thread.run(Thread.java:748) [?:?] Caused by: java.lang.NullPointerException at org.opendaylight.aaa.cert.impl.AaaCertProvider.createKeyStores(AaaCertProvider.java:82) ~[?:?] at org.opendaylight.aaa.cert.impl.CertificateManagerService.<init>(CertificateManagerService.java:96) ~[?:?] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:?] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?] at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:?] at org.apache.aries.blueprint.utils.ReflectionUtils.newInstance(ReflectionUtils.java:331) ~[?:?] at org.apache.aries.blueprint.container.BeanRecipe.newInstance(BeanRecipe.java:984) ~[?:?] at org.apache.aries.blueprint.container.BeanRecipe.getInstanceFromType(BeanRecipe.java:349) ~[?:?] ... 30 more