blob: 818ca8b679037355d6aef73af7541179c131d552 [file] [log] [blame]
*** Settings ***
Library RequestsLibrary
Library Collections
Library OperatingSystem
Resource ../resources/dcaemod_interface.robot
Suite Setup Configure Nifi Registry And Distribution Target
Suite Teardown Delete Nifi Registry And Distribution Target
Test Teardown Delete Process Group And Deployment
*** Variables ***
${CONFIG_MAP_FILE} /tmp/sample-config
${COMPSPEC_WITH_CONFIG_VOLUME} dcaemod/compspec_with_config_volume.jinja
${COMPSPEC_WITHOUT_CONFIG_VOLUME} dcaemod/compspec_without_config_volume.jinja
*** Test Cases ***
Deploy DCAE Simple Application Without Config Map In Config Spec Json
[tags] dcaemod
[Documentation]
... Test case checks if operator is able to deploy DCAE application using DCAE MOD without config map definition.
... This test case:
... - Configures DCAE MOD by adding a registry client and a distribution target in the controller settings via NIFI API.
... - Onboards component spec via onboarding API.
... - Creates Process Group, Processor and saves created flows (by version controlling) via NIFI API.
... - Distributes the flow for helm charts generation via distributor API and pushes it to the Chart Museum.
... - Deploys such a helm charts.
${timestamp}= Get Time epoch
Set Test Variable ${processGroupName} nginx-${timestamp}
${dict_values} = Create Dictionary comp_spec_name=${processGroupName}
${compSpecName} = Set Variable ${dict_values['comp_spec_name']}
Deploy DCAE Application ${COMPSPEC_WITHOUT_CONFIG_VOLUME} ${dict_values} ${compSpecName} ${processGroupName}
Deploy DCAE Simple Application With Config Map In Config Spec Json But Not Present In K8s
[tags] dcaemod
[Documentation]
... Test case checks if operator is able to deploy DCAE application using DCAE MOD with config map definition in config spec json file but not present in k8s.
... This test case:
... Configures DCAE MOD by adding a registry client and a distribution target in the controller settings via NIFI API.
... - Onboards component spec with config map via onboarding API.
... - Creates Process Group, Processor and saves created flows (by version controlling) via NIFI API.
... - Distributes the flow for helm charts generation via distributor API and pushes it to the Chart Museum.
... - Deploys such a helm charts.
... - Verifies if config map is mounted as a volume and if mounted folder is empty
${timestamp}= Get Time epoch
Set Test Variable ${processGroupName} nginx-${timestamp}
${dict_values} = Create Dictionary comp_spec_name=${processGroupName}
... volume_mount_path=/opt/app/etc/config
... config_map_name=test-config-volume
${compSpecName} = Set Variable ${dict_values['comp_spec_name']}
${volumeMountPath} = Set Variable ${dict_values['volume_mount_path']}
${configMapName} = Set Variable ${dict_values['config_map_name']}
Deploy DCAE Application ${COMPSPEC_WITH_CONFIG_VOLUME} ${dict_values} ${compSpecName} ${processGroupName}
${podYaml} = Get Pod Yaml ${compSpecName}
Verify If Volume Is Mounted ${podYaml} ${volumeMountPath}
Verify If Config Map Is Mounted As Volume ${podYaml} ${configMapName}
${mountedFolderContent}= Wait Until Keyword Succeeds 1 min 10s Get Content Of Mounted Folder Inside Container ${compSpecName} ${volumeMountPath}
Verify If Mounted Folder Is Empty ${mountedFolderContent}
Deploy DCAE Simple Application With Config Map In Config Spec Json AND Present In K8s
[tags] dcaemod
[Documentation]
... Test case checks if operator is able to deploy DCAE application using DCAE MOD with config map definition and config map present in k8s.
... This test case:
... - Configures DCAE MOD by adding a registry client and a distribution target in the controller settings via NIFI API.
... - Onboards component spec with config map via onboarding API.
... - Creates Process Group, Processor and saves created flows (by version controlling) via NIFI API.
... - Creates config map from file
... - Distributes the flow for helm charts generation via distributor API and pushes it to the Chart Museum.
... - Deploys such a helm charts.
... - Verifies if mounted folder contains created file and this file contains user content
${timestamp}= Get Time epoch
Set Test Variable ${processGroupName} nginx-${timestamp}
${dict_values} = Create Dictionary comp_spec_name=${processGroupName}
... volume_mount_path=/opt/app/etc/config
... config_map_name=test-config-volume
${compSpecName} = Set Variable ${dict_values['comp_spec_name']}
${volumeMountPath} = Set Variable ${dict_values['volume_mount_path']}
${configMapName} = Set Variable ${dict_values['config_map_name']}
Set Test Variable ${CONFIG_MAP_NAME} ${configMapName}
${content} = Set Variable Hello, world!
${configMapDir} ${configMapFile} = Split Path ${CONFIG_MAP_FILE}
Create File ${CONFIG_MAP_FILE} ${content}
Create Config Map From File ${configMapName} ${CONFIG_MAP_FILE}
Deploy DCAE Application ${COMPSPEC_WITH_CONFIG_VOLUME} ${dict_values} ${compSpecName} ${processGroupName}
Wait Until Keyword Succeeds 1 min 10s Verify If Mounted Folder Contains File ${compSpecName} ${configMapFile} ${volumeMountPath}
Verify File Content ${compSpecName} ${volumeMountPath}/${CONFIG_MAP_FILE} ${content}
[Teardown] Run Keywords Delete Process Group And Deployment AND Delete Config Map With Mounted Config File