Initial checkin of EopenECOMP testsuite

Change-Id: I64a2b6d8cf66169829866b73b3d26a4ff59b0a42
Signed-off-by: DR695H <dr695h@att.com>
diff --git a/robot/resources/aai/service_instance.robot b/robot/resources/aai/service_instance.robot
new file mode 100644
index 0000000..c9fdadd
--- /dev/null
+++ b/robot/resources/aai/service_instance.robot
@@ -0,0 +1,82 @@
+*** Settings ***
+Documentation	  Validate A&AI Serivce Instance
+...
+...	              Validate A&AI Serivce Instance
+
+Resource          aai_interface.robot
+Library    Collections
+Library    OperatingSystem
+Library    RequestsLibrary
+Library    JSONUtils
+Library    HttpLibrary.HTTP
+Library    StringTemplater
+Resource          ../json_templater.robot
+Resource          ../stack_validation/validate_vlb.robot
+Resource          ../stack_validation/validate_vfw.robot
+Resource          ../stack_validation/validate_vvg.robot
+
+*** Variables ***
+${INDEX PATH}     /aai/v8
+${GENERIC_QUERY_PATH}  /search/generic-query?
+${SYSTEM USER}    robot-ete
+${CUSTOMER SPEC PATH}    /business/customers/customer/
+${SERVICE SUBSCRIPTIONS}    /service-subscriptions/service-subscription/
+${SERVICE INSTANCE}    /service-instances?service-instance-id=
+${SERVCE INSTANCE TEMPLATE}    robot/assets/templates/aai/service_subscription.template    
+
+${GENERIC_VNF_PATH_TEMPLATE}   /network/generic-vnfs/generic-vnf/\${vnf_id}/vf-modules/vf-module/\${vf_module_id}
+${VLB_CLOSED_LOOP_HACK_BODY}    robot/assets/templates/aai/vlb_closed_loop_hack.template
+
+*** Keywords ***    
+Validate Service Instance
+    [Documentation]    Query and Validates A&AI Service Instance	
+    [Arguments]    ${service_instance_name}    ${service_type}  ${customer_name}
+    ${cust_resp}=    Run A&AI Get Request      ${INDEX PATH}/business/customers?subscriber-name=${customer_name}  
+	${resp}=    Run A&AI Get Request      ${INDEX PATH}${CUSTOMER SPEC PATH}${cust_resp.json()['customer'][0]['global-customer-id']}${SERVICE SUBSCRIPTIONS}${service_type}${SERVICE INSTANCE}${service_instance_name}
+    Dictionary Should Contain Value	${resp.json()['service-instance'][0]}    ${service_instance_name}
+    Dictionary Should Contain Key	${resp.json()['service-instance'][0]}    persona-model-id
+    Dictionary Should Contain Key	${resp.json()['service-instance'][0]}    persona-model-version
+	   
+Validate Generic VNF
+    [Documentation]    Query and Validates A&AI Service Instance	
+    [Arguments]    ${vnf_name}  ${vnf_type}    ${service_instance_id}    
+    ${generic_vnf}=    Run A&AI Get Request      ${INDEX PATH}/network/generic-vnfs/generic-vnf?vnf-name=${vnf_name}	
+    Dictionary Should Contain Value	${generic_vnf.json()}    ${vnf_name}
+    ${returned_vnf_type}=    Get From Dictionary    ${generic_vnf.json()}    vnf-type
+    Should Contain	${returned_vnf_type}    ${vnf_type}
+    [Return]    ${generic_vnf.json()}
+    
+VLB Closed Loop Hack
+    [Arguments]    ${service}    ${generic_vnf}   ${closedloop_vf_module}  
+    Return From Keyword If    '${service}' != 'vLB'
+    ${vnf_id}=     Get From Dictionary    ${generic_vnf}    vnf-id
+    ${vf_modules}=    Get From Dictionary    ${generic_vnf}    vf-modules
+    ${list}=    Get From Dictionary    ${vf_modules}   vf-module
+    ${vfmodule}=    Get From List    ${list}    0
+    ${persona_model_id}=    Get From Dictionary    ${closedloop_vf_module}    invariantUUID
+    ${persona_model_version}=   Get From Dictionary    ${closedloop_vf_module}    version
+    ${dict}=    Create Dictionary   vnf_id=${vnf_id}   vf_module_id=dummy   persona_model_id=${persona_model_id}   persona_model_version=${persona_model_version}    
+    ${datapath}=    Template String    ${GENERIC_VNF_PATH_TEMPLATE}    ${dict}
+    ${data}=	Fill JSON Template File    ${VLB_CLOSED_LOOP_HACK_BODY}    ${dict}    
+	${put_resp}=    Run A&AI Put Request     ${INDEX PATH}${datapath}   ${data}
+    ${status_string}=    Convert To String    ${put_resp.status_code}
+    Should Match Regexp    ${status_string}    ^(201|412)$     
+		
+    
+Validate VF Module
+    [Documentation]    Query and Validates A&AI Service Instance	
+    [Arguments]    ${vf_module_name}    ${stack_type}
+	Run Keyword If    '${stack_type}'=='vLB'    Validate vLB Stack    ${vf_module_name}      	
+	Run Keyword If    '${stack_type}'=='vFW'    Validate Firewall Stack    ${vf_module_name}      	
+	Run Keyword If    '${stack_type}'=='vVG'    Validate vVG Stack    ${vf_module_name}      	
+
+*** Keywords ***    
+Create AAI Service Instance
+    [Documentation]    Query and Validates A&AI Service Instance	
+    [Arguments]    ${customer_id}    ${service_type}    ${service_instance_id}    ${service_instance_name}    
+    ${json_string}=    Catenate     { "service-type": "VDNS" , "service-subscriptions":[{"service-instance-id":"instanceid123","service-instance-name":"VDNS"}]}
+	${put_resp}=    Run A&AI Put Request     ${INDEX PATH}${CUSTOMER SPEC PATH}${CUSTOMER ID}${SERVICE SUBSCRIPTIONS}/{service_type}   ${json_string}
+    Should Be Equal As Strings 	${put_resp.status_code} 	201
+	[Return]  ${put_resp.status_code}	
+	
+	
\ No newline at end of file