Support usage for SON policy/models templates. 23/131923/1
authorjhh <jorge.hernandez-herrero@att.com>
Mon, 31 Oct 2022 16:31:50 +0000 (11:31 -0500)
committerjhh <jorge.hernandez-herrero@att.com>
Mon, 31 Oct 2022 16:31:50 +0000 (11:31 -0500)
Issue-ID: POLICY-4427
Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
Change-Id: I22706cdbd45c49946435aff15bc5ec5f7408296b

controlloop/common/rules-test/src/main/java/org/onap/policy/controlloop/common/rules/test/Rules.java

index 09eb58d..111f008 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP
  * ================================================================================
- * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2020-2022 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -232,6 +232,16 @@ public class Rules {
             throw new CoderException(new FileNotFoundException(policyPath));
         }
 
+        if (policyPath.startsWith("policies/")) {
+            // using policy/models examples where policies are wrapped with the ToscaServiceTemplate
+            // for API component provisioning
+            logger.info("retrieving policy from policy models examples");
+            ToscaServiceTemplate template = coder.decode(policyJson, ToscaServiceTemplate.class);
+            if (template.getToscaTopologyTemplate().getPolicies().size() == 1) {
+                return template.getToscaTopologyTemplate().getPolicies().get(0).values().iterator().next();
+            }
+        }
+
         return coder.decode(policyJson, ToscaPolicy.class);
     }