|
| 1 | +*** Settings *** |
| 2 | +Resource ${CURDIR}/stackql.resource |
| 3 | +Test Teardown Stackql Per Test Teardown |
| 4 | + |
| 5 | +*** Test Cases *** |
| 6 | +Google Buckets Lifecycle |
| 7 | + [Documentation] This test case inserts a bucket ("row") into the google.storage.buckets "table", checks the row was inserted, deletes the row, and checks the row was deleted. |
| 8 | + [Tags] google storage buckets gooogle.storage google.storage.buckets |
| 9 | + ${insertInputStr} = Catenate |
| 10 | + ... insert into google.storage.buckets(data__name, project) |
| 11 | + ... select '${GCS_BUCKET_NAME}', '${GCP_PROJECT}'; |
| 12 | + ${checkInputStr} = Catenate |
| 13 | + ... select name, "softDeleteTime", "hardDeleteTime" from google.storage.buckets where bucket = '${GCS_BUCKET_NAME}'; |
| 14 | + ${deleteInputStr} = Catenate |
| 15 | + ... delete from google.storage.buckets where bucket = '${GCS_BUCKET_NAME}'; |
| 16 | + Stock Stackql Exec Inline Equals Both Streams |
| 17 | + ... ${insertInputStr} |
| 18 | + ... ${EMPTY} |
| 19 | + ... The operation was despatched successfully |
| 20 | + ... Google-Buckets-Lifecycle-Insert |
| 21 | + Stock Stackql Exec Inline Equals Both Streams |
| 22 | + ... ${checkInputStr} |
| 23 | + ... ${EXPECTED_GCS_BUCKET_CHECK} |
| 24 | + ... ${EMPTY} |
| 25 | + ... Google-Buckets-Lifecycle-Post-Insert-Check |
| 26 | + Stock Stackql Exec Inline Equals Both Streams |
| 27 | + ... ${deleteInputStr} |
| 28 | + ... ${EMPTY} |
| 29 | + ... The operation was despatched successfully |
| 30 | + ... Google-Buckets-Lifecycle-Delete |
| 31 | + Sleep 5s |
| 32 | + Stock Stackql Exec Inline Equals Stdout |
| 33 | + ... ${checkInputStr} |
| 34 | + ... ${EXPECTED_EMPTY_GCS_BUCKET_CHECK} |
| 35 | + ... Google-Buckets-Lifecycle-Post-Delete-Check |
| 36 | + |
| 37 | +Google Network Lifecycle |
| 38 | + [Documentation] This test case inserts a VPC network then a subnet then mutates the subnet then deletes it and then deletes the network. |
| 39 | + [Tags] google compute networks subnetworks vpc gooogle.compute google.compute.networks google.compute.subnetworks Google${SPACE}Networks |
| 40 | + ${insertNetworkInputStr} = Catenate |
| 41 | + ... insert into google.compute.networks(data__name, data__autoCreateSubnetworks, project) |
| 42 | + ... select 'robot-vpc-01', false, '${GCP_PROJECT}'; |
| 43 | + ${insertSubnetInputStr} = Catenate |
| 44 | + ... insert into google.compute.subnetworks( |
| 45 | + ... data__name, |
| 46 | + ... data__ipCidrRange, |
| 47 | + ... data__description, |
| 48 | + ... data__network, |
| 49 | + ... project, |
| 50 | + ... region) |
| 51 | + ... select |
| 52 | + ... 'robot-subnet-01', |
| 53 | + ... '10.0.0.0/8', |
| 54 | + ... 'An immutable subnet description.', |
| 55 | + ... 'projects/${GCP_PROJECT}/global/networks/robot-vpc-01', |
| 56 | + ... '${GCP_PROJECT}', |
| 57 | + ... 'australia-southeast1' |
| 58 | + ... ; |
| 59 | + ${getNetworkDetailQueryStr} = Catenate |
| 60 | + ... select name, description, subnetworks |
| 61 | + ... from google.compute.networks |
| 62 | + ... where |
| 63 | + ... name = 'robot-vpc-01' |
| 64 | + ... and project = '${GCP_PROJECT}'; |
| 65 | + ${getSubnetDetailQueryStr} = Catenate |
| 66 | + ... select name, secondaryIpRanges, fingerprint |
| 67 | + ... from google.compute.subnetworks |
| 68 | + ... where |
| 69 | + ... name = 'robot-subnet-01' |
| 70 | + ... and region = 'australia-southeast1' |
| 71 | + ... and project = '${GCP_PROJECT}' |
| 72 | + ... ; |
| 73 | + ${insertNetworkInputStr} = Catenate |
| 74 | + ... insert into google.compute.networks(data__name, data__autoCreateSubnetworks, project) |
| 75 | + ... select 'robot-vpc-01', false, '${GCP_PROJECT}'; |
| 76 | + ${deleteNetworkStr} = Catenate |
| 77 | + ... delete from google.compute.networks where network = 'robot-vpc-01' and project = '${GCP_PROJECT}'; |
| 78 | + ${deleteSubnetStr} = Catenate |
| 79 | + ... delete from google.compute.subnetworks where subnetwork = 'robot-subnet-01' and project = '${GCP_PROJECT}' and region = 'australia-southeast1'; |
| 80 | + Stock Stackql Exec Inline Equals Both Streams |
| 81 | + ... ${insertNetworkInputStr} |
| 82 | + ... ${EMPTY} |
| 83 | + ... The operation was despatched successfully |
| 84 | + ... Google-Network-Lifecycle-Insert-Network |
| 85 | + Sleep 20s |
| 86 | + ${networkResult} = Catenate SEPARATOR=\n |
| 87 | + ... |--------------|-------------|-------------| |
| 88 | + ... |${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}name${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}description${SPACE}|${SPACE}subnetworks${SPACE}| |
| 89 | + ... |--------------|-------------|-------------| |
| 90 | + ... |${SPACE}robot-vpc-01${SPACE}|${SPACE}null${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}null${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}| |
| 91 | + ... |--------------|-------------|-------------| |
| 92 | + Stock Stackql Exec Inline Equals Both Streams |
| 93 | + ... ${getNetworkDetailQueryStr} |
| 94 | + ... ${networkResult} |
| 95 | + ... ${EMPTY} |
| 96 | + ... Google-Network-Lifecycle-Select-Network-01 |
| 97 | + Sleep 20s |
| 98 | + Stock Stackql Exec Inline Equals Both Streams |
| 99 | + ... ${insertSubnetInputStr} |
| 100 | + ... ${EMPTY} |
| 101 | + ... The operation was despatched successfully |
| 102 | + ... Google-Network-Lifecycle-Insert-Subnet |
| 103 | + Sleep 20s |
| 104 | + ${networkDetailResult} = Run Process |
| 105 | + ... ${STACKQL_EXE} |
| 106 | + ... \-\-output\=json |
| 107 | + ... \-\-registry |
| 108 | + ... ${REGISTRY_LOCAL_NO_VERIFY_CFG_STR} |
| 109 | + ... exec |
| 110 | + ... ${getNetworkDetailQueryStr} |
| 111 | + ... stdout=${CURDIR}${/}tmp${/}Google-Network-Lifecycle-get-network-detail-1.tmp |
| 112 | + ... stderr=${CURDIR}${/}tmp${/}Google-Network-Lifecycle-get-network-detail-1-stderr.tmp |
| 113 | + Log Detail dict string = ${networkDetailResult.stdout} |
| 114 | + ${networkDetailDictList} = Evaluate json.loads($networkDetailResult.stdout) |
| 115 | + Log Detail is:${networkDetailDictList}[0] |
| 116 | + Should Contain ${networkDetailDictList[0]["subnetworks"]} robot\-subnet\-01 |
| 117 | + ${detailResult} = Run Process |
| 118 | + ... ${STACKQL_EXE} |
| 119 | + ... \-\-output\=json |
| 120 | + ... \-\-registry |
| 121 | + ... ${REGISTRY_LOCAL_NO_VERIFY_CFG_STR} |
| 122 | + ... exec |
| 123 | + ... ${getSubnetDetailQueryStr} |
| 124 | + ... stdout=${CURDIR}${/}tmp${/}Google-Network-Lifecycle-get-subnet-detail-1.tmp |
| 125 | + ... stderr=${CURDIR}${/}tmp${/}Google-Network-Lifecycle-get-subnet-detail-1-stderr.tmp |
| 126 | + Log Detail dict string = ${detailResult.stdout} |
| 127 | + ${detailDict} = Evaluate json.loads($detailResult.stdout) |
| 128 | + Should Be Equal ${detailDict[0]["name"]} robot\-subnet\-01 |
| 129 | + ${CAPTURED_FINGERPRINT} = Set Variable ${detailDict[0]["fingerprint"]} |
| 130 | + ${updateSubnetInputStr} = Catenate |
| 131 | + ... update google.compute.subnetworks |
| 132 | + ... SET |
| 133 | + ... data__secondaryIpRanges = '[ |
| 134 | + ... { |
| 135 | + ... "ipCidrRange": "192.168.0.0/24", |
| 136 | + ... "rangeName": "s-r-01" |
| 137 | + ... } |
| 138 | + ... ]', |
| 139 | + ... data__fingerprint = '${CAPTURED_FINGERPRINT}' |
| 140 | + ... WHERE |
| 141 | + ... project = '${GCP_PROJECT}' |
| 142 | + ... and |
| 143 | + ... region = 'australia-southeast1' |
| 144 | + ... and |
| 145 | + ... subnetwork = 'robot-subnet-01' |
| 146 | + ... ; |
| 147 | + Stock Stackql Exec Inline Equals Both Streams |
| 148 | + ... ${updateSubnetInputStr} |
| 149 | + ... ${EMPTY} |
| 150 | + ... The operation was despatched successfully |
| 151 | + ... Google-Buckets-Lifecycle-Delete |
| 152 | + Sleep 30s |
| 153 | + ${updatedDetailResult} = Run Process |
| 154 | + ... ${STACKQL_EXE} |
| 155 | + ... \-\-output\=json |
| 156 | + ... \-\-registry |
| 157 | + ... ${REGISTRY_LOCAL_NO_VERIFY_CFG_STR} |
| 158 | + ... exec |
| 159 | + ... ${getSubnetDetailQueryStr} |
| 160 | + ... stdout=${CURDIR}${/}tmp${/}Google-Network-Lifecycle-get-subnet-detail-2.tmp |
| 161 | + ... stderr=${CURDIR}${/}tmp${/}Google-Network-Lifecycle-get-subnet-detail-2-stderr.tmp |
| 162 | + Log Updated detail dict string = ${updatedDetailResult.stdout} |
| 163 | + ${updatedDetailDict} = Evaluate json.loads($updatedDetailResult.stdout) |
| 164 | + Should Contain ${updatedDetailDict[0]["secondaryIpRanges"]} 192.168.0.0/24 |
| 165 | + Sleep 30s |
| 166 | + Stock Stackql Exec Inline Equals Both Streams |
| 167 | + ... ${deleteSubnetStr} |
| 168 | + ... ${EMPTY} |
| 169 | + ... ${EMPTY} |
| 170 | + ... Google-Network-Lifecycle-Subnet-Delete |
| 171 | + Sleep 20s |
| 172 | + ${networkZeroSubnetResult} = Catenate SEPARATOR=\n |
| 173 | + ... |--------------|-------------|-------------| |
| 174 | + ... |${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}name${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}description${SPACE}|${SPACE}subnetworks${SPACE}| |
| 175 | + ... |--------------|-------------|-------------| |
| 176 | + ... |${SPACE}robot-vpc-01${SPACE}|${SPACE}null${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}|${SPACE}null${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}${SPACE}| |
| 177 | + ... |--------------|-------------|-------------| |
| 178 | + Stock Stackql Exec Inline Equals Both Streams |
| 179 | + ... ${getNetworkDetailQueryStr} |
| 180 | + ... ${networkZeroSubnetResult} |
| 181 | + ... ${EMPTY} |
| 182 | + ... Google-Network-Lifecycle-Select-Network-02 |
| 183 | + Sleep 60s |
| 184 | + Stock Stackql Exec Inline Equals Both Streams |
| 185 | + ... ${deleteNetworkStr} |
| 186 | + ... ${EMPTY} |
| 187 | + ... ${EMPTY} |
| 188 | + ... Google-Network-Lifecycle-Network-Delete |
| 189 | + Sleep 20s |
| 190 | + ${networkEmptyResult} = Catenate SEPARATOR=\n |
| 191 | + ... |------|-------------|-------------| |
| 192 | + ... |${SPACE}name${SPACE}|${SPACE}description${SPACE}|${SPACE}subnetworks${SPACE}| |
| 193 | + ... |------|-------------|-------------| |
| 194 | + Stock Stackql Exec Inline Equals Both Streams |
| 195 | + ... ${getNetworkDetailQueryStr} |
| 196 | + ... ${networkEmptyResult} |
| 197 | + ... ${EMPTY} |
| 198 | + ... Google-Network-Lifecycle-Select-Network-03 |
| 199 | + |
| 200 | + |
0 commit comments