Add test in CSIT for Fix stuck in Deleting State in ACM 36/140836/1
authorFrancescoFioraEst <francesco.fiora@est.tech>
Wed, 30 Apr 2025 15:14:01 +0000 (16:14 +0100)
committerFrancesco Fiora <francesco.fiora@est.tech>
Thu, 1 May 2025 15:01:22 +0000 (15:01 +0000)
Issue-ID: POLICY-5348
Change-Id: Ic8d3299d21f837d0973a7c92abe70e4c6453e503
Signed-off-by: FrancescoFioraEst <francesco.fiora@est.tech>
csit/resources/tests/policy-clamp-test.robot

index 082b8ef..cca01df 100644 (file)
@@ -98,18 +98,23 @@ PrimeACDefinitionTo
     Should Be Equal As Strings    ${resp.status_code}     202
     Wait Until Keyword Succeeds    2 min    5 sec    VerifyPriming  ${compositionToId}  PRIMED
 
+DeleteUndeployedInstantiateAutomationComposition
+    [Documentation]  Delete Instantiate automation composition that has never been deployed.
+    Run Keyword If    '${TEST_ENV}'=='k8s'    set Suite variable  ${instantiationfile}  AcK8s.json
+
+    ...    ELSE    set Suite variable  ${instantiationfile}  AcDocker.json
+    ${postjson}=  Get file  ${CURDIR}/data/${instantiationfile}
+    ${tmpInstanceId}=  MakeJsonInstantiateAutomationComposition  ${compositionId}  ${postjson}
+    DeleteAutomationComposition  ${compositionId}  ${tmpInstanceId}
+    Wait Until Keyword Succeeds    1 min    5 sec    VerifyUninstantiated  ${compositionId}
+
 InstantiateAutomationComposition
     [Documentation]  Instantiate automation composition.
-    ${auth}=    ClampAuth
     Run Keyword If    '${TEST_ENV}'=='k8s'    set Suite variable  ${instantiationfile}  AcK8s.json
 
     ...    ELSE    set Suite variable  ${instantiationfile}  AcDocker.json
     ${postjson}=  Get file  ${CURDIR}/data/${instantiationfile}
-    ${updatedpostjson}=   Replace String     ${postjson}     COMPOSITIONIDPLACEHOLDER       ${compositionId}
-    ${resp}=   MakeJsonPostRequest  ACM  ${POLICY_RUNTIME_ACM_IP}  /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances  ${updatedpostjson}  ${auth}
-    ${respyaml}=  yaml.Safe Load  ${resp.text}
-    set Suite variable  ${instanceId}    ${respyaml["instanceId"]}
-    Should Be Equal As Strings    ${resp.status_code}     201
+    ${instanceId}=  MakeJsonInstantiateAutomationComposition  ${compositionId}  ${postjson}
 
 InstantiateAutomationCompositionMigrationFrom
     [Documentation]  Instantiate automation composition migration.
@@ -369,37 +374,19 @@ UnDeployAutomationCompositionMigrationTo
 
 UnInstantiateAutomationComposition
     [Documentation]  Delete automation composition instance.
-    ${auth}=    ClampAuth
-    Log    Creating session http://${POLICY_RUNTIME_ACM_IP}
-    ${session}=    Create Session      policy  http://${POLICY_RUNTIME_ACM_IP}   auth=${auth}
-    ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
-    ${resp}=   DELETE On Session     policy  /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId}     headers=${headers}
-    Log    Received response from runtime acm ${resp.text}
-    Should Be Equal As Strings    ${resp.status_code}     202
+    DeleteAutomationComposition  ${compositionId}  ${instanceId}
     Wait Until Keyword Succeeds    1 min    5 sec    VerifyUninstantiated  ${compositionId}
 
 FailUnInstantiateAutomationCompositionMigrationTo
     [Documentation]  Fail Delete automation composition instance migrated.
     SetParticipantSimFail
-    ${auth}=    ClampAuth
-    Log    Creating session http://${POLICY_RUNTIME_ACM_IP}
-    ${session}=    Create Session      policy  http://${POLICY_RUNTIME_ACM_IP}   auth=${auth}
-    ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
-    ${resp}=   DELETE On Session     policy  /onap/policy/clamp/acm/v2/compositions/${compositionToId}/instances/${instanceMigrationId}     headers=${headers}
-    Log    Received response from runtime acm ${resp.text}
-    Should Be Equal As Strings    ${resp.status_code}     202
+    DeleteAutomationComposition  ${compositionToId}  ${instanceMigrationId}
     Wait Until Keyword Succeeds    2 min    5 sec    VerifyStateChangeResult  ${compositionToId}  ${instanceMigrationId}  FAILED
 
 UnInstantiateAutomationCompositionMigrationTo
     [Documentation]  Delete automation composition instance migrated.
     SetParticipantSimSuccess
-    ${auth}=    ClampAuth
-    Log    Creating session http://${POLICY_RUNTIME_ACM_IP}
-    ${session}=    Create Session      policy  http://${POLICY_RUNTIME_ACM_IP}   auth=${auth}
-    ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
-    ${resp}=   DELETE On Session     policy  /onap/policy/clamp/acm/v2/compositions/${compositionToId}/instances/${instanceMigrationId}     headers=${headers}
-    Log    Received response from runtime acm ${resp.text}
-    Should Be Equal As Strings    ${resp.status_code}     202
+    DeleteAutomationComposition  ${compositionToId}  ${instanceMigrationId}
     Wait Until Keyword Succeeds    1 min    5 sec    VerifyUninstantiated  ${compositionToId}
 
 DePrimeACDefinitions
@@ -600,6 +587,27 @@ ParticipantAuth
     ${auth}=    Create List    participantUser    zb!XztG34
     RETURN  ${auth}
 
+MakeJsonInstantiateAutomationComposition
+    [Arguments]  ${compositionId}  ${postjson}
+    ${auth}=    ClampAuth
+    ${updatedpostjson}=   Replace String     ${postjson}     COMPOSITIONIDPLACEHOLDER       ${compositionId}
+    ${resp}=   MakeJsonPostRequest  ACM  ${POLICY_RUNTIME_ACM_IP}  /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances  ${updatedpostjson}  ${auth}
+    ${respyaml}=  yaml.Safe Load  ${resp.text}
+    set Suite variable  ${instanceId}    ${respyaml["instanceId"]}
+    Should Be Equal As Strings    ${resp.status_code}     201
+    RETURN  ${instanceId}
+
+DeleteAutomationComposition
+    [Arguments]  ${compositionId}  ${instanceId}
+    ${auth}=    ClampAuth
+    Log    Creating session http://${POLICY_RUNTIME_ACM_IP}
+    ${session}=    Create Session      policy  http://${POLICY_RUNTIME_ACM_IP}   auth=${auth}
+    ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+    ${resp}=   DELETE On Session     policy  /onap/policy/clamp/acm/v2/compositions/${compositionId}/instances/${instanceId}     headers=${headers}
+    Log    Received response from runtime acm ${resp.text}
+    Should Be Equal As Strings    ${resp.status_code}     202
+
+
 MakeYamlPostRequest
     [Arguments]  ${name}  ${domain}  ${url}  ${postyaml}  ${auth}
     Log  Creating session http://${domain}