Openstack Adapter call to MultiCloud fails
Description
Environment
OOM Daily Master deployment (DT Labs) from 13.05.2020
Activity
Andreas Geißler August 10, 2020 at 12:55 PM
Hi,
sorry, I found the request to check this Fix quite late.
I tried to retest the usecase (activation of MultiCloud and vfmodule creation) on the actual Frankfur release.
I updated the catalogdb cloud_sites table, changed the API version to v2 and started the test again.
The test does not fail, but the reason was, that it did not use the MultiCloud at all!!
The SO Openstack Adapter seems to ignore completely the "ORCHESTRATOR" entry in the DB.
I will check, whether there are new "Add a Cloud" instructions, otherwise I will raise a new bug.
Best regards
Andreas
Former user May 29, 2020 at 4:33 PM
Team - @Andreas Geißler is on leave. I am closing this ticket for now but be ready to jump if Andreas will find another issue.
Former user May 27, 2020 at 7:30 AM
Hi @Andreas Geißler , @Seshu Kumar Mudiganti , @Former user - all relevant patches have been merged to Frankfurt oom today (and to master some time ago), so since now, this issue should no longer be visible on today's or newer environments.
Seshu Kumar Mudiganti May 26, 2020 at 5:54 AM
@Andreas Geißler : Could you please confirm this...
Former user May 21, 2020 at 6:58 PMEdited
Ok, I have brought up a new ONAP env in Windriver OOF project as of 5/20/2020. It is running SO 1.6.1.
In short, with the two oom fixes below, the so-msb-multicloud communication is working.
Detailed steps:
After onap installed, I cherrypicked @Former user 's two oom patches
https://gerrit.onap.org/r/c/oom/+/107649/3 (Set certificate SAN as msb-iag) and https://gerrit.onap.org/r/c/oom/+/106826/3 ([so][msb] Update MSB url to match with its certificate)
then helm deleted so and msb
I also editted
so/charts/so-bpmn-infra/resources/config/overrides/override.yaml
to set the vnf endpoint to v2 (to avoid later configmap edit step)
then:
make so msb
make onap
helm deploy dev local/onap -f /root/oom/kubernetes/onap/resources/environments/public-cloud.yaml -f /root/integration-override.yaml --namespace onap
Then:
run 'demo init' script to set up some data
added a cloud site
from vid - made a service instance, vnf, sndc preload
from vid - make a vfw packet generator vfmodule
key point - so openstack adapter is able to communicate to multicloud via msb with no other workarounds (besides two oof patches above)
(I did not concern myself with complete / correct deployment of the vfmodule as that takes more time)
Snippet from openstack adatper debug.log showing successful communication to multicloud via msb:
2020-05-21T18:41:39.561Z|f95b332f-8bec-4a00-899e-618783f48ded|o.o.l.filter.spring.SpringClientPayloadFilter - =======================response end=================================================
2020-05-21T18:41:39.563Z|f95b332f-8bec-4a00-899e-618783f48ded|org.onap.so.openstack.utils.MsoMulticloudUtils - Query multicloud HEAT stack: vfw-vfm-pkg-2 in tenant 709ba629fe194f8699b12f9d6ffd86a0
2020-05-21T18:41:39.566Z|f95b332f-8bec-4a00-899e-618783f48ded|org.onap.so.openstack.utils.MsoMulticloudUtils - Multicloud Endpoint is: https://msb-iag:443/api/multicloud/v1/CloudOwner/ONAP-POD-01-Rail-06/infra_workload?name=vfw-vfm-pkg-2
2020-05-21T18:41:39.598Z|f95b332f-8bec-4a00-899e-618783f48ded|o.o.logging.filter.base.PayloadLoggingClientFilter - Sending HTTP GET to:https://msb-iag:443/api/multicloud/v1/CloudOwner/ONAP-POD-01-Rail-06/infra_workload?name=vfw-vfm-pkg-2 with request headers:{X-RequestID=[f95b332f-8bec-4a00-899e-618783f48ded], Project=[709ba629fe194f8699b12f9d6ffd86a0], X-ONAP-PartnerName=[UNKNOWN], Accept=[application/json], X-InvocationID=[0dcbcb98-759b-466d-9b47-109caa1740f3], X-ECOMP-RequestID=[f95b332f-8bec-4a00-899e-618783f48ded], X-TransactionID=[f95b332f-8bec-4a00-899e-618783f48ded], X-ONAP-RequestID=[f95b332f-8bec-4a00-899e-618783f48ded]}
2020-05-21T18:41:40.561Z|f95b332f-8bec-4a00-899e-618783f48ded|o.o.logging.filter.base.PayloadLoggingClientFilter - Response from method:GET performed on uri:https://msb-iag:443/api/multicloud/v1/CloudOwner/ONAP-POD-01-Rail-06/infra_workload?name=vfw-vfm-pkg-2 has http status code:200 and response headers:{-content-encoding=[gzip], Allow=[GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS], connection=[keep-alive], Content-Length=[113], content-location=https://msb-iag.onap:443/api/multicloud-titaniumcloud/v1/CloudOwner/ONAP-POD-01-Rail-06/infra_workload?name=vfw-vfm-pkg-2, content-type=[application/json], Date=[Thu, 21 May 2020 18:41:40 GMT], Server=[openresty], status=[200]}
2020-05-21T18:41:40.563Z|f95b332f-8bec-4a00-899e-618783f48ded|o.o.logging.filter.base.PayloadLoggingClientFilter - {"template_type":"HEAT","workload_id":"","workload_status":"GET_COMPLETE","workload_status_reason":{"stacks":[]}}
2020-05-21T18:41:40.565Z|f95b332f-8bec-4a00-899e-618783f48ded|org.onap.so.openstack.utils.MsoMulticloudUtils - Multicloud GET Response: org.apache.cxf.jaxrs.impl.ResponseImpl@f87bbe8
2020-05-21T18:41:40.583Z|f95b332f-8bec-4a00-899e-618783f48ded|org.onap.so.openstack.utils.MsoMulticloudUtils - Multicloud Create Response Body: org.onap.so.openstack.utils.MulticloudQueryResponse@6bfbb50[templateType=HEAT,workloadId=,workloadStatus=GET_COMPLETE,workloadStatusReason={"stacks":[]}]
2020-05-21T18:41:40.601Z|f95b332f-8bec-4a00-899e-618783f48ded|org.onap.so.openstack.utils.MsoMulticloudUtils - Multicloud getWorkloadStack() returning Stack Object: Stack{description='null', links=null, stackStatusReason='null', stackName='null', updatedTime=null, creationTime=null, stackStatus='NOT_FOUND', id='null', outputs='null', parameters='{}', files='null'}
Testing vf-Module creation via MultiCloud Openstack Adapter, the call from
SO-Openstack-Adapter to MultiCloud fails.
Test executed:
Successfull execution of vf-module creation via so-openstack-adapter
Changed cloud_sites DB entry "ORCHESTRATOR" value to "multicloud" and "VNF Adapter Rest API endpoint" version version “v2”, restart of SO-BPMN pod
Re-execution of vf-module creation
Result:
so-openstack-adapter tries to call multicloud
call fails (most likely due to certificate error)
Call (from debug.log):
Sending HTTP GET to:https://msb-iag.onap:443/api/multicloud/v1/DT/RegionOne/infra_workload?name=Python_ONAP_SDK_vf_module_instance_5e7c7a79-6 c55-46c7-99ee-c0e8c80bf636 with request headers:{X-RequestID=[a7f95ea6-2476-4131-b18b-3c6a08909ffb], Project=[b5f12d2cdda0449194 8d9fb4cb00994e], X-ONAP-PartnerName=[UNKNOWN], Accept=[application/json], X-InvocationID=[5cbf1df3-2ee8-48cc-a784-e6ef32062ea2], X-ECOMP-RequestID=[a7f95ea6-2476-4131-b18b-3c6a08909ffb], X-TransactionID=[a7f95ea6-2476-4131-b18b-3c6a08909ffb], X-ONAP-Reques tID=[a7f95ea6-2476-4131-b18b-3c6a08909ffb]}
Fails with:
2020-05-13T09:36:31.644Z|a7f95ea6-2476-4131-b18b-3c6a08909ffb|org.apache.cxf.phase.PhaseInterceptorChain - Interceptor for {http2020-05-13T09:36:31.644Z|a7f95ea6-2476-4131-b18b-3c6a08909ffb|org.apache.cxf.phase.PhaseInterceptorChain - Interceptor for {https://msb-iag.onap:443/api/multicloud/v1/DT/RegionOne/infra_workload}WebClient has thrown exception, unwinding noworg.apache.cxf.interceptor.Fault: Could not send Message. at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:67) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) at org.apache.cxf.jaxrs.client.AbstractClient.doRunInterceptorChain(AbstractClient.java:710) at org.apache.cxf.jaxrs.client.WebClient.doChainedInvocation(WebClient.java:1050) at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:897) at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:866) at org.apache.cxf.jaxrs.client.WebClient.invoke(WebClient.java:431) at org.apache.cxf.jaxrs.client.SyncInvokerImpl.method(SyncInvokerImpl.java:135) at org.apache.cxf.jaxrs.client.SyncInvokerImpl.method(SyncInvokerImpl.java:130) at org.apache.cxf.jaxrs.client.SyncInvokerImpl.get(SyncInvokerImpl.java:50) at org.apache.cxf.jaxrs.client.spec.InvocationBuilderImpl.get(InvocationBuilderImpl.java:88) at org.onap.so.client.RestRequest.get(RestRequest.java:52) at org.onap.so.client.RestClient.buildRequest(RestClient.java:292) at org.onap.so.client.RestClient.lambda$method$3(RestClient.java:288) at net.jodah.failsafe.Functions.lambda$resultSupplierOf$11(Functions.java:283) at net.jodah.failsafe.internal.executor.RetryPolicyExecutor.lambda$supply$0(RetryPolicyExecutor.java:67) at net.jodah.failsafe.Execution.executeSync(Execution.java:117) at net.jodah.failsafe.FailsafeExecutor.call(FailsafeExecutor.java:319) at net.jodah.failsafe.FailsafeExecutor.get(FailsafeExecutor.java:71) at org.onap.so.client.RestClient.method(RestClient.java:288) at org.onap.so.client.RestClient.get(RestClient.java:223) at org.onap.so.openstack.utils.MsoMulticloudUtils.queryStack(MsoMulticloudUtils.java:290) at org.onap.so.openstack.utils.MsoMulticloudUtils.queryVdu(MsoMulticloudUtils.java:914) at org.onap.so.adapters.vnf.MsoVnfPluginAdapterImpl.deleteVfModule(MsoVnfPluginAdapterImpl.java:1089) at org.onap.so.adapters.vnf.MsoVnfPluginAdapterImpl$$FastClassBySpringCGLIB$$2ff25d29.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:295) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688) at org.onap.so.adapters.vnf.MsoVnfPluginAdapterImpl$$EnhancerBySpringCGLIB$$6dc9ba0e.deleteVfModule(<generated>) at org.onap.so.adapters.vnf.VnfAdapterRestV2$DeleteVfModuleTask.run(VnfAdapterRestV2.java:197) at java.lang.Thread.run(Thread.java:748)Caused by: java.io.IOException: IOException invoking https://msb-iag.onap:443/api/multicloud/v1/DT/RegionOne/infra_workload?name=Python_ONAP_SDK_vf_module_instance_5e7c7a79-6c55-46c7-99ee-c0e8c80bf636: HTTPS hostname wrong: should be <msb-iag.onap> at sun.reflect.GeneratedConstructorAccessor210.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1402) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1386) at org.apache.cxf.io.AbstractWrappedOutputStream.close(AbstractWrappedOutputStream.java:77)
When trying to execute wget on the so-openstack-adapter container:
/app/logs/openstack $ wget https://msb-iag.onap:443/api/multicloud/v1/DT/RegionOne Connecting to msb-iag.onap:443 (10.43.99.138:443) ssl_client: msb-iag.onap: certificate verification failed: unable to get local issuer certificate wget: error getting response: Connection reset by peer
Most likely the Certificate-Validation has to be disabled