Skip to content

Commit

Permalink
Fix wrong variable assignment
Browse files Browse the repository at this point in the history
  • Loading branch information
itoussies committed Dec 11, 2024
1 parent eb7ae7f commit e86c74e
Show file tree
Hide file tree
Showing 3 changed files with 163 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/cloud/azure/network/vpngateway/mode/vpngatewaystatus.pm
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ sub manage_selection {
&& $vpn->{name} !~ /$self->{option_results}->{filter_name}/);

$self->{vpns}->{$vpn->{id}} = {
display => $vpn->{name},
name => $vpn->{name},
provisioning_state => ($vpn->{provisioningState}) ? $vpn->{provisioningState} : $vpn->{properties}->{provisioningState},
gateway_type => ($vpn->{gatewayType}) ? $vpn->{gatewayType} : $vpn->{properties}->{gatewayType},
vpn_type => ($vpn->{vpnType}) ? $vpn->{vpnType} : $vpn->{properties}->{vpnType},
Expand Down Expand Up @@ -131,7 +131,7 @@ Set resource group (required).
=item B<--filter-name>
Filter vpn name (can be a regexp).
Filter VPN Gateways by name (can be a regexp).
=item B<--warning-status>
Expand Down
125 changes: 125 additions & 0 deletions tests/cloud/azure/network/vpngateway/vpngateway.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
{
"uuid": "e745f255-dee8-48eb-a952-88bb0f9e5a0c",
"lastMigration": 32,
"name": "Azure vpn gateway",
"endpointPrefix": "",
"latency": 0,
"port": 3004,
"hostname": "",
"folders": [],
"routes": [
{
"uuid": "f8dc6ac1-febc-46a8-be79-9e5e14cedd3a",
"type": "http",
"documentation": "List By Resource Group Reference (reduced reponse info)",
"method": "get",
"endpoint": "subscriptions/:subscriptionId/resourcegroups/:resourceGroup/providers/Microsoft.Network/virtualNetworkGateways",
"responses": [
{
"uuid": "4b0edd9d-2052-45a3-9969-cf0cf461154c",
"body": "{\r\n \"value\": [\r\n {\r\n \"name\": \"gateway1\",\r\n \"id\": \"/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/vpnGateways/gateway1\",\r\n \"type\": \"Microsoft.Network/vpnGateways\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"gatewayType\": \"ExpressRoute\",\r\n \"vpnType\": \"RouteBased\"\r\n },\r\n {\r\n \"name\": \"gateway2\",\r\n \"id\": \"/subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/vpnGateways/gateway2\",\r\n \"type\": \"Microsoft.Network/vpnGateways\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"gatewayType\": \"ExpressRoute\",\r\n \"vpnType\": \"RouteBased\"\r\n }\r\n ]\r\n}",
"latency": 0,
"statusCode": 200,
"label": "",
"headers": [],
"bodyType": "INLINE",
"filePath": "",
"databucketID": "",
"sendFileAsBody": false,
"rules": [],
"rulesOperator": "OR",
"disableTemplating": false,
"fallbackTo404": false,
"default": true,
"crudKey": "id",
"callbacks": []
}
],
"responseMode": null
},
{
"uuid": "325811e6-6a5d-4906-90a1-3df24183d529",
"type": "http",
"documentation": "Azure login",
"method": "post",
"endpoint": "login/:tenant/oauth2/token",
"responses": [
{
"uuid": "e381c634-cbff-431e-851e-e4631f0f9e2c",
"body": "{\n \"access_token\": \"token\",\n \"expires_on\": \"{{ faker 'string.numeric' 10 }}\"\n}",
"latency": 0,
"statusCode": 200,
"label": "",
"headers": [],
"bodyType": "INLINE",
"filePath": "",
"databucketID": "",
"sendFileAsBody": false,
"rules": [],
"rulesOperator": "OR",
"disableTemplating": false,
"fallbackTo404": false,
"default": true,
"crudKey": "id",
"callbacks": []
}
],
"responseMode": null
}
],
"rootChildren": [
{
"type": "route",
"uuid": "f8dc6ac1-febc-46a8-be79-9e5e14cedd3a"
},
{
"type": "route",
"uuid": "325811e6-6a5d-4906-90a1-3df24183d529"
}
],
"proxyMode": false,
"proxyHost": "",
"proxyRemovePrefix": false,
"tlsOptions": {
"enabled": false,
"type": "CERT",
"pfxPath": "",
"certPath": "",
"keyPath": "",
"caPath": "",
"passphrase": ""
},
"cors": true,
"headers": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Access-Control-Allow-Origin",
"value": "*"
},
{
"key": "Access-Control-Allow-Methods",
"value": "GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS"
},
{
"key": "Access-Control-Allow-Headers",
"value": "Content-Type, Origin, Accept, Authorization, Content-Length, X-Requested-With"
}
],
"proxyReqHeaders": [
{
"key": "",
"value": ""
}
],
"proxyResHeaders": [
{
"key": "",
"value": ""
}
],
"data": [],
"callbacks": []
}
36 changes: 36 additions & 0 deletions tests/cloud/azure/network/vpngateway/vpngatewaystatus.robot
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
*** Settings ***
Documentation Azure Network VPN Gateway plugin
Resource ${CURDIR}${/}..${/}..${/}..${/}..${/}resources/import.resource

Suite Setup Start Mockoon ${MOCKOON_JSON}
Suite Teardown Stop Mockoon
Test Timeout 120s


*** Variables ***
${MOCKOON_JSON} ${CURDIR}${/}vpngatewaystatus.json

${BASE_URL} http://${HOSTNAME}:${APIPORT}
${LOGIN_ENDPOINT} ${BASE_URL}/login
${CMD} ${CENTREON_PLUGINS} --plugin=cloud::azure::network::vpngateway::plugin --custommode=api --mode=vpn-gateway-status --subscription=subscription --tenant=tenant --client-id=client_id --client-secret=secret --resource-group=resource-group --login-endpoint=${LOGIN_ENDPOINT} --management-endpoint=${BASE_URL}


*** Test Cases ***
VPN Gateway status ${tc}
[Tags] cloud azure api mockoon
${command} Catenate
... ${CMD}
... ${extra_options}

Ctn Run Command And Check Result As Strings ${command} ${expected_result}

Examples: tc extra_options expected_result --
... 1 ${EMPTY} OK: All VPN gateways are ok
... 2 --warning-status='\\%\{provisioning_state\} eq "Succeeded"' WARNING: VPN Gateway 'gateway1' Provisioning State 'Succeeded' [Gateway type: ExpressRoute] [VPN type: RouteBased] - VPN Gateway 'gateway2' Provisioning State 'Succeeded' [Gateway type: ExpressRoute] [VPN type: RouteBased]
... 3 --critical-status='\\%\{provisioning_state\} eq "Succeeded"' CRITICAL: VPN Gateway 'gateway1' Provisioning State 'Succeeded' [Gateway type: ExpressRoute] [VPN type: RouteBased] - VPN Gateway 'gateway2' Provisioning State 'Succeeded' [Gateway type: ExpressRoute] [VPN type: RouteBased]
... 4 --filter-name='gateway1' OK: VPN Gateway 'gateway1' Provisioning State 'Succeeded' [Gateway type: ExpressRoute] [VPN type: RouteBased]
... 5 --filter-name='gateway1' --warning-status='\\%\{provisioning_state\} eq "Succeeded"' WARNING: VPN Gateway 'gateway1' Provisioning State 'Succeeded' [Gateway type: ExpressRoute] [VPN type: RouteBased]
... 6 --filter-name='gateway1' --critical-status='\\%\{provisioning_state\} eq "Succeeded"' CRITICAL: VPN Gateway 'gateway1' Provisioning State 'Succeeded' [Gateway type: ExpressRoute] [VPN type: RouteBased]


0 comments on commit e86c74e

Please sign in to comment.