summaryrefslogtreecommitdiffstats
path: root/bpmn/MSOCommonBPMN/src/main/java
AgeCommit message (Collapse)AuthorFilesLines
2018-09-20various bugfixes for casablancaBenjamin, Max (mb388a)1-1/+1
fixed unit tests after addition of A&AI edge label added option for edgelabel between vnf inst group added belongs to in connecting a vnf to instance group - Adding test for getRainyDayHandlerStatusByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAn dWorkStep method in the catalogdb client correct default RainyDay table search input updated custom resolver to include float and added comment to explain timestamp configuration added a custom resolver and updated snake yaml version Replacing bowman client with restTemplate.exchange | Add Accept and Content-Type to headers Removing the unused imports as well Implementing some review comments for hte tests being ignored Replacing bowman client with restTemplate.exchange |Fixing Junits Replacing bowman client with restTemplate.exchange | Making Data inserts to go specifically in requestDB Replacing bowman client with restTemplate.exchange | Adding Junits Replacing bowman client with restTemplate.exchange | Adding Junits Replacing bowman client with restTemplate.exchange | Adding Junits Replacing bowman client with restTemplate.exchange - Updated tosca parser version to 1.4.3 and upgraded vnfc test case with new csar to pass with latest parser code. added test case for when workflow has not called all flows fixed issue with rollback and retry in workflowaction Reverted homing changes and changes assign vnf to use the homing produced GeneralBuildingBlock. fixed unit test to build the correct format hashmap reverted extraction back to LinkedHashMap marshal sdnc output to an object removed unused variables and imports extract response code/message from embedded map add junits to parse SDNC assign response removed missed org.openecomp.mso imports from bpmn Change-Id: Ib2b6591a744ecb5b08c522494cdf1ad7dae18a08 Issue-ID: SO-1069 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-09-20Update LoggingSmokowski, Steve (ss835w)1-3/+5
Update logging to meet Casablanca Spec Change-Id: I029d6c63765992d6f091d96e2b4c34c60d30c484 Issue-ID: SO-947 Signed-off-by: Smokowski, Steve (ss835w) <ss835w@us.att.com>
2018-09-19Merge "Workflow Activities Execution Environment"Rob Daugherty1-9/+35
2018-09-19Workflow Activities Execution EnvironmentElena Kuleshov1-9/+35
Add a license header to ExecuteActivity.java Fix a JUnit by modifying the values for the expected variables. BBInput changes to support CM flows Implement JavaDelegate for activities execution Change-Id: I9cfc51241d414b85441d1a8443a950b97d14b65f Issue-ID: SO-827 Signed-off-by: Elena Kuleshov <EK1439@att.com>
2018-09-19Workflow Designer Activities ImplementationElena Kuleshov2-1/+10
Logging changes and error message fixes for runAppcCommand() added unit test and removed catch blocks Workflow Designer Activities Implementation Change-Id: I22d3d95541708ddc9e2617a92085b0d4c16caad9 Issue-ID: SO-829 Signed-off-by: Elena Kuleshov <EK1439@att.com>
2018-09-18Merge "save csar file path add directory version"Seshu Kumar M1-1/+3
2018-09-17Updated error handling of BPMN sub flowsBenjamin, Max (mb388a)1-5/+5
Added error handling subprocess to only those BBs that call a sub flow. Refactored error handling in ExecuteBuildingBlock. Added error handling and enhanced modeling of remaing BB flows Added error handling and enhanced modeling of assign/activate BBs. Change-Id: I2ab6236e3c2206b74b6368db69d8953a779f4f19 Issue-ID: SO-1059 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-09-13Stability fixesBenjamin, Max (mb388a)2-2/+3
sdnc now logs the full response message as a json removed erroneous encoding of variables with full XML Return created network from getVirtualLinkL3Network added exception logger to workflowaction aai check Check for null value for vnfcPorts before referencing it Added test case for invalid camunda response Changed to use updateStatus method Added saving for currentActiveReq and test for 401 resp Change JUnit to use expectedException and clean up unused items. Add vfModuleId to the exception message for missing model info. Report an error if VF Module model info is expected but is null. - Just renamed the Cvnfc and Vnfc set names - Updated code to check for duplicate VNFC's across multiple modules in the same VNF. - Removed commented out if statement line for ALLOTTED_RESOURCE - Reinitialize the Cvnfc and Vnfc Sets each time we iterate the VFModule loop. This will avoid the concurrent modification exception. Eliminated Ben from the sample request Changed to use else if for null check Added null check before catdb call and test case Fix implementation of a call to VNF Adapter for DeleteVolumeGroupBB. Update the method to no call save and do a put Revert usage of PUT method, use save instead Change-Id: I9f69fb68d0639c23b8e1de6931938119bd3ac54b Issue-ID: SO-1032 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-09-12Merge "Update GenericHealthCheck to send vnfHostIpAddress"Rob Daugherty2-8/+16
2018-09-12Update GenericHealthCheck to send vnfHostIpAddressPrema Bhatt2-8/+16
Change-Id: Ia0adb8784e81001ca0b54bfa62b12f28060114cf Issue-ID: SO-1024 Signed-off-by: Prema Bhatt <pb6115@att.com>
2018-09-12Sonar fix for ResourceRequestBuilderGOPINATH MATHIVANAN1-2/+3
Fixed sonar reported Vulnerability Issue-ID: SO-1009 Change-Id: I39b5a89bc182cff570167f7dd2a109cb29ae1eae Signed-off-by: GOPINATH MATHIVANAN <gopinath.mathivanan@in.ibm.com>
2018-09-08stability fixesBenjamin, Max (mb388a)1-10/+19
fixed bean error fixed execution variable name do not explicitly set hibernate objects Removed remaing references to tunnel-xconnect fixed virtual link case Change-Id: Ia5a59794e84beadcbf259efb899878cc4465ca57 Issue-ID: SO-997 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-09-08added generic fabric support to SOBenjamin, Max (mb388a)12-119/+235
Fix Autoincrement of ID field in table Fix accidental removal of method Update usage of requestdb client removed unused imports in common tasks and test Fix broken branch, have unit tests pass references the Epic branch Fix broken branch from compiling committing classpath for vfc adapter cause its not going away added in the fail case for when there are no profiles removed second set of adapters in application test yml removed double adapters in request db application test added jpa repo dependency to the so bpmn folder pom add creation timestamp column to the table added in null checks for Config returned from policy switched to string in requestprocess with jenerate switched to string in requestprocess with jenerate updated aai version in common pom to 605 from 591 renamed the db scripts for flyway sync to register added endpoint to application test yml for failing test ... Change-Id: I800f837ea75d7cdff740dc3a387e4d7654cfd085 Issue-ID: SO-972 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-09-04Added ConfigurationScaleOutBB, tasks, and testsBrittany Plummer (bp896r)3-0/+124
Issue-ID: SO-765 Change-Id: I7e0e902f00417b8c2439962f9ebfed6cc117a86e Signed-off-by: Brittany Plummer (bp896r) <bp896r@att.com>
2018-08-28Added GenericVnfHealthCheckBB, tasks, and testsBrittany Plummer (bp896r)1-1/+2
Issue-ID: SO-777 Change-Id: I8a46f1802feb18ab4df098472fef5373ac42208b Signed-off-by: Brittany Plummer (bp896r) <bp896r@att.com>
2018-08-23Prod fixes August 21stBenjamin, Max (mb388a)16-86/+86
changes required for unit tests to pass again Changes sniro homing BB license demand to be a named array per sniro defect. boolean checks must now account for null fixed compilation issues in code updated tests and removed primatives from bbobjects upgraded to A&AI dependency with Boolean Change-Id: I5f3e69c0ad24d2c3e4591568467bad861abd0261 Issue-ID: SO-896 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-08-22Prod fixes August 18thBenjamin, Max (mb388a)2-7/+28
fixed compilation issues and all unit tests now pass fix condition that checks for vnf in list to set homing flags fix resource name variable being null Skip volume group search for alacarte VF Module creation, since that group is expected to be specified on the input Remove temporary change to JUnit for creation of volume group. Add mapping of isBaseVfModule setting to AAIObjectMapper for vfModule. adding a unit test for hte issue which was fixed Explicitly return heatStackId variable from VnfAdapter subprocess Fixing an issue with the workflow processor/asynresource which may lead to apihandler leaving the active_Request table record in_progress while the bpmn quits the processing due to the error. Change-Id: I7587193fcb5251f50370d72a1e4c10d112a1c72f Issue-ID: SO-879 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-08-21save csar file path add directory versionYulian Han1-1/+3
Change-Id: Idaa55084f5ecb0dd3636c232cebc14fa70000009 Issue-ID: SO-668 Signed-off-by: Yulian Han <elaine.hanyulian@huawei.com>
2018-08-10Casablana bugfixesBenjamin, Max (mb388a)3-79/+76
updated mock in unassignnetworkbbtest instead of base added mock to extract pojos method in unassignnetwork Return gBuildingBlockExecution from calls to VnfAdapter subprocess Correct JUnit data to expect modelInfoVfModule Enable Spring Security for logging of unauthorized/bad credentials errors Fix handling of a case of no VF Modules in a VNF resource. fix populating lookupKeyMap with resource ids removed unnecessary test resources Issue-ID: SO-848 Change-Id: Id89f075dcac4042bf8fb1e207e66d289d079171f Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-08-09GR-API flow, VF Module, SDNC GR API FixesBenjamin, Max (mb388a)7-15/+41
Fixes the new GR-API flow Various fixes in the create VF Module area Fixes issues parsing the SDNC GR API response Fixes new resource type in ASDC controller Fixes AppC mismatch in JSON marshaling Issue-ID: SO-821 Change-Id: I4ace0d348483ab1303fcfee26c5801674be51466 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-08-06Add SPPaterner resource procssElaine_Han1-0/+20
Change-Id: Idaa55084f5ecb0dd3636c232cebc14fa70000001 Issue-ID: SO-683 Signed-off-by: Yulian Han <elaine.hanyulian@huawei.com>
2018-07-31Containerization feature of SOBenjamin, Max (mb388a)194-10277/+12501
Change-Id: I95381232eeefcd247a66a5cec370a8ce1c288e18 Issue-ID: SO-670 Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
2018-07-25Merge "Replace printStackTrace with usage of logger"Seshu Kumar M3-8/+4
2018-06-13Set controllerType to uppercase for LCMElena Kuleshov1-2/+3
Change-Id: If229caa7abfad85f10e5ee7b8f5f6eccfb6600ac Issue-ID: SO-602 Signed-off-by: Elena Kuleshov <ek1439@att.com>
2018-05-31Set controllerType to DEFAULT when null.Elena Kuleshov1-0/+6
Change-Id: I6fa62b9dca0e7f69030fffab5cbc13fe57b39294 Issue-ID: SO-602 Signed-off-by: Elena Kuleshov <ek1439@att.com>
2018-05-31Miscellaneous fixes for SO-SDNC integrationArthur Martella1-2/+2
changing capitalization of SDNC in LCM property adding payload to createVfModule bpmn Change-Id: Ib4d8e172a929a8138cf4e3fbf446170467b44a42 Issue-ID: INT-475 Signed-off-by: Arthur Martella <am153x@att.com>
2018-05-30Add ConfigScaleOut to ApplicationControllerActionArthur Martella1-0/+1
Change-Id: Ia9aaf05cd2a255491b0f73351653f1b622140e62 Issue-ID: SO-602 Signed-off-by: Arthur Martella <am153x@att.com>
2018-05-30Change topics setup for LCMElena Kuleshov1-9/+3
- Fix general topic properties. - Fix junit for getLcmProperties Change-Id: I424129c18a017908280c6bdc831a6a72ba1192ca Issue-ID: SO-602 Signed-off-by: Elena Kuleshov <ek1439@att.com>
2018-05-30Correct controllerType property nameElena Kuleshov1-1/+1
Change-Id: I71003381548d1d221854f78e0d0734994dd16d5f Issue-ID: SO-602 Signed-off-by: Elena Kuleshov <ek1439@att.com>
2018-05-24Replace printStackTrace with usage of loggerMichal Korman3-8/+4
Change-Id: I648e5a25337beca1f8c483ba6e5359d245e237d3 Issue-ID: SO-642 Signed-off-by: mkorman <michal.korman@nokia.com>
2018-05-23APPC client changes topic for controllerTypeArthur Martella1-2/+7
... again. Back to just changing topic.read and topic.write based on controllerType (but still setting controllerType too, just in case). Change-Id: I175d20b998c6d141ca7587504535bd7bb494563c Issue-ID: INT-475 Signed-off-by: Arthur Martella <am153x@att.com>
2018-05-23Change LCM property for SDNC topicArthur Martella1-0/+2
Followup to https://gerrit.onap.org/r/#/c/48571/ Adding property sdnc-topic.read and sdnc-topic.write to match topic.sdnc.read and topic.sdnc.write on advice of SDNC LCM dev. Change-Id: I3c856f126ecb2f6b1c45df818ea7d294e0440e5c Issue-ID: INT-475 Signed-off-by: Arthur Martella <am153x@att.com>
2018-05-22APPC client changes topic for controllerTypeArthur Martella1-2/+7
When controllerType is sdnc, it's still using the appc topic names. Trying this to switch topic based on controllerType. Patch 2 changed to match APPCClient in ATT code base. Change-Id: I72e7e84720f73ac30d3d28e3387af2d537d301ad Issue-ID: INT-475 Signed-off-by: Arthur Martella <am153x@att.com>
2018-05-17Fix resource building logicsubhash kumar singh1-1/+5
Fix resource building logic. Change-Id: I95064d945a6ff026a0ea10336a550d9bb8af401a Issue-ID: SO-624 Signed-off-by: subhash kumar singh <subhash.kumar.singh@huawei.com>
2018-05-15WorkflowResponse json issuesRob Daugherty4-59/+87
This commit adds some robustness to the interface between the API-H and BPMN, specifically, in how the response is handled. I don't have proof, but there appears to be some randomness to the json provider behavior when used with the jax-rs. Sometimes, the serializer is adding the root element, and sometimes it is not. Maybe there's something wrong with the configuration. Maybe we have competing json providers. I couldn't pin this down. I'm almost certain it is the presence of the root element in the content that causes the API-H code to fail parsing of the BPMN response. This doesn't kill the request, as you might expect, but rather, the API-H passes the BPMN response through to the client (VID, or policy, or whatever). The original problem (SO-586) was "fixed" by "removing the wrapper". This "wrapper" is a needed feature of the interface between BPMN and the API-H. We shouldn't have removed it. The fact that the "fix" appeared to work is due to the behavior I described in the previous paragraph. The API-H chokes on the message, and it passes it through unchanged. Not really what we want. So, I don't know why the jackson/json behavior is flaky and different now, but I can (and did) modify the API-H so it can parse a json message whether or not it has a root element. Note that WorkflowResponse.java (in BPMN) and CamundaResponse.java (in the API-H) are basically the same bean representing the message format. Seems less than ideal to have two different classes. Also note that I changed the name of the "response" attribute of the WorkflowResponse and CamundaResponse classes to "content". Got tired of seeing this nonsense everywhere in the code: response.getResponse() Change-Id: Icaf70f8457de99e493cf882170fe778c620308c9 Issue-ID: SO-586 Issue-ID: SO-618 Signed-off-by: Rob Daugherty <rd472p@att.com>
2018-05-08Remove wrapper from WorkflowResponseArthur Martella1-2/+2
When the workflow response succeeds, the requestReferences object is being wrapped by "WorkflowResponse": {"response": {... and all the other fields from the WorkflowResponse object are being included as well. Adding a WorkflowResponseSerializer didn't seem to work since the root node was still included and there was no ObjectMapper in which to set WrapRootValue to false. So this is the next best thing. Patch 2 fixes most of the broken unit tests. Change-Id: Ifa5bd02e70b23f41c9042ac207848c8ade77313a Issue-ID: SO-586 Signed-off-by: Arthur Martella <am153x@att.com>
2018-05-04Use tosca parser without resolving GetInputsubhash kumar singh1-1/+1
Use tosca parser without resolving GetInput. Change-Id: I964464dd76c0bdd096e67ce78ab4cc7c2e76a167 Issue-ID: SO-422 Signed-off-by: subhash kumar singh <subhash.kumar.singh@huawei.com>
2018-04-25Set Resource Recipe Time Out Valc001491072-12/+15
Set Resource Recipe Time Out Val Change-Id: I7f304465c71837ee37e5fa99a48ca14d97d8f91f Issue-ID: SO-587 Signed-off-by: c00149107 <chenchuanyu@huawei.com>
2018-04-25Sonar-Critical:Use Dedicated ExceptionAS004650591-157/+157
File Name:ApplicationControllerAction.java Line: L127 L134 L142 L150 L155 L160 L165 Sonar Link: https://sonar.onap.org/project/issues?assignees=as00465059&id=org.onap.so%3Aso&open=AWJuJvroRGy6eclHE9B2&resolved=false&rules=squid%3AS00112&severities=CRITICAL%2CMAJOR Change-Id: I84c79aef3ceda73b9421b0a1881c5d14817c7840 Issue-ID: SO-593 Signed-off-by: AS00465059 <AS00465059@techmahindra.com>
2018-04-24Create VF Module ErrorRob Daugherty1-30/+69
There are multiple issues here. 1) The LCM healthcheck and config-scale-out should be made conditional upon the VNF orchestration status being Active or Activated. I'm not going to do that with this commit, since the logic will probably need to be moved to the DoCreateVfModule flow. What I will do is bypass the LCM operations to unblock testing. Another ticket will need to address the real solution. 2) APP-C gave us an API where the controller type is configured in their client object, which is NOT what we wanted. As a result, we have to keep a client object for each controller type. Our implementation did not do this. 3) Need to support the APP-C client configuration properties for specifying the SDN-C topic names. I'm refactoring the APP-C client urn mapping names to make it clear that they are for configuring the APP-C *client* and not necessarily for APP-C itself. Change-Id: I588f3b98b4ee44ba53b4931f9f1a7938ee70bebf Issue-ID: SO-577 Signed-off-by: Rob Daugherty <rd472p@att.com>
2018-04-23Sonar-Critical Bug FixingAS004650593-295/+303
File:RestfulUtil.java Line:L85 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:E2EServiceInstances.java Line:L263 L1059 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:OrchestrationRequests.java Line:L343 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:ASDCConfiguration.java Line:L286 L378 SonarLink: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:ResourceInput.java Line:L287 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:ResourceRecipeRequest.java Line:L136 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:ResourceRequestBuilder.java Line:L108 L214 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:CheckAaiForCorrelationIdDelegate.java Line:L70 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:AbstractSdncOperationTask.java Line:L359 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:DmaapClient.java Line:L62 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL File:HasAnnotationPropertyWithValueMatcher.java Line:L60 Sonar Link: https://sonar.onap.org/issues?assigned=false&projectUuids=AWHCr9eDWid2ybiDeORt&resolved=false&rules=squid%3AS1166&severities=BLOCKER%2CCRITICAL Change-Id: Ic168a118790c31850a9f32f98465be5d52b8c96f Issue-ID: SO-581 Signed-off-by: AS00465059 <AS00465059@techmahindra.com>
2018-04-21Fix request parameter building for sdnc resourcesubhash kumar singh1-6/+1
Fix request parameter building for sdnc resource Change-Id: Ib87c08e31837ec9f2c10bcfe9ce7caccfb3f461e Issue-ID: SO-422 Signed-off-by: subhash kumar singh <subhash.kumar.singh@huawei.com>
2018-04-21Merge "Fix input for SDNC resource creaation"Chuanyu Chen1-2/+7
2018-04-20Fix input for SDNC resource creaationsubhash kumar singh1-2/+7
Fix version id and model name. Fix input param for sdnc resource request. Change-Id: I6ade488aec061c9bf4dc0cd04e124896a71571be Issue-ID: SO-422 Signed-off-by: subhash kumar singh <subhash.kumar.singh@huawei.com>
2018-04-20Update create flow for E2E servicec001491074-9/+74
Update create generic flow for E2E service Change-Id: I7f5c912348ce0d0ee9035aa3a5e34979ee14b247 Issue-ID: SO-583 Signed-off-by: c00149107 <chenchuanyu@huawei.com>
2018-04-18AAIRestClient support for Basic AuthRob Daugherty2-21/+10
Adding support for Basic Auth in the AAI Rest Clients because ONAP uses this (whereas ECOMP uses 2-way SSL). In general, each AAI client will allow the user to configure properties called "aai.auth" and "mso.msoKey". If these are set, then the client will add the Authorization header to every request. Change-Id: I7c81ec05d2ec4a7dca131f2e9e19d341ac89b09f Issue-ID: SO-576 Signed-off-by: Rob Daugherty <rd472p@att.com>
2018-04-10Fix exception case in null returnsubhash kumar singh1-0/+9
Fix exception case in null return. Change-Id: I7f6a0ec3c372e34c1f04468be729d1cbc079e991 Issue-ID: SO-422 Signed-off-by: subhash kumar singh <subhash.kumar.singh@huawei.com>
2018-04-10Fix URL to get CSAR namesubhash kumar singh1-3/+4
Fix URL to collect CSAR name. Change-Id: I6ba5baf5b41cb24793e510f93d1a9ffe6de4407e Issue-ID: SO-422 Signed-off-by: subhash kumar singh <subhash.kumar.singh@huawei.com>
2018-04-10Add service type for bpmn inputsubhash kumar singh1-0/+1
Add service type for bpmn input. Change-Id: Icc7487724bd4f6df5a78473f39a0e99a4e16cd28 Issue-ID: SO-422 Signed-off-by: subhash kumar singh <subhash.kumar.singh@huawei.com>
2018-04-10Update web.xml file to enable propertiessubhash kumar singh1-0/+1
Update web.xml to enable reacing properties from MSO-API-Prop. Change-Id: I7dc1f48ff798c6f83e8976584edb5dfd9152f950 Issue-ID: SO-422 Signed-off-by: subhash kumar singh <subhash.kumar.singh@huawei.com>