Skip to content

Commit d7eae00

Browse files
Ankit KansaraNishtha Goel
authored andcommitted
Added - VCNIP Provide IP Inventory view and IP Utilization alerts
1 parent b57ed42 commit d7eae00

12 files changed

+986
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
// Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
variable "tenancy_ocid" {}
5+
variable "user_ocid" {}
6+
variable "fingerprint" {}
7+
variable "private_key_path" {}
8+
variable "region" {}
9+
10+
variable "compartment_ocid" {
11+
}
12+
13+
variable "vcn_ocid" {
14+
}
15+
16+
variable "subnet_ocid" {
17+
}
18+
19+
variable "ip_inventory_vcn_overlap_compartment_list" {
20+
type = list(string)
21+
default = []
22+
}
23+
24+
variable "ip_inventory_vcn_overlap_region_list" {
25+
type = list(string)
26+
default = []
27+
}
28+
29+
provider "oci" {
30+
tenancy_ocid = var.tenancy_ocid
31+
user_ocid = var.user_ocid
32+
fingerprint = var.fingerprint
33+
private_key_path = var.private_key_path
34+
region = var.region
35+
}
36+
37+
// Get VCN Overlap
38+
data "oci_core_ip_inventory_vcn_overlaps" "test_ip_inventory_vcn_overlaps" {
39+
#Required
40+
compartment_list = var.ip_inventory_vcn_overlap_compartment_list
41+
region_list = var.ip_inventory_vcn_overlap_region_list
42+
vcn_id = var.vcn_ocid
43+
}
44+
45+
// Subnet CIDR Utilisation
46+
data "oci_core_ip_inventory_subnet_cidr" "test_ip_inventory_subnet_cidrs" {
47+
#Required
48+
subnet_id = var.subnet_ocid
49+
}
50+
51+
// Subnet Details
52+
data "oci_core_ip_inventory_subnet" "test_ip_inventory_subnets" {
53+
#Required
54+
subnet_id = var.subnet_ocid
55+
}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
// Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
package integrationtest
5+
6+
import (
7+
"fmt"
8+
"testing"
9+
10+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
11+
12+
"github.com/oracle/terraform-provider-oci/httpreplay"
13+
"github.com/oracle/terraform-provider-oci/internal/acctest"
14+
15+
"github.com/oracle/terraform-provider-oci/internal/utils"
16+
)
17+
18+
var (
19+
CoreIpInventorySubnetCidrSingularDataSourceRepresentation = map[string]interface{}{
20+
"subnet_id": acctest.Representation{RepType: acctest.Required, Create: `${var.subnet_id}`},
21+
}
22+
23+
CoreIpInventorySubnetCidrResourceConfig = acctest.GenerateResourceFromRepresentationMap("oci_core_subnet", "test_subnet", acctest.Required, acctest.Create, CoreSubnetRepresentation) +
24+
acctest.GenerateResourceFromRepresentationMap("oci_core_vcn", "test_vcn", acctest.Required, acctest.Create, CoreVcnRepresentation)
25+
)
26+
27+
// issue-routing-tag: core/vcnip
28+
func TestCoreIpInventorySubnetCidrResource_basic(t *testing.T) {
29+
httpreplay.SetScenario("TestCoreIpInventorySubnetCidrResource_basic")
30+
defer httpreplay.SaveScenario()
31+
32+
config := acctest.ProviderTestConfig()
33+
34+
subnetId := utils.GetEnvSettingWithBlankDefault("subnet_ocid")
35+
subnetIdVariableStr := fmt.Sprintf("variable \"subnet_id\" { default = \"%s\" }\n", subnetId)
36+
37+
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
38+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
39+
40+
singularDatasourceName := "data.oci_core_ip_inventory_subnet_cidr.test_ip_inventory_subnet_cidr"
41+
42+
acctest.SaveConfigContent("", "", "", t)
43+
44+
acctest.ResourceTest(t, nil, []resource.TestStep{
45+
// verify singular datasource
46+
{
47+
Config: config +
48+
acctest.GenerateDataSourceFromRepresentationMap("oci_core_ip_inventory_subnet_cidr", "test_ip_inventory_subnet_cidr", acctest.Required, acctest.Create, CoreIpInventorySubnetCidrSingularDataSourceRepresentation) +
49+
compartmentIdVariableStr + subnetIdVariableStr,
50+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
51+
resource.TestCheckResourceAttrSet(singularDatasourceName, "compartment_id"),
52+
resource.TestCheckResourceAttr(singularDatasourceName, "ip_inventory_cidr_utilization_summary.#", "2"),
53+
/* Below - Pass result to check as env variable not working */
54+
resource.TestCheckResourceAttr(singularDatasourceName, "ip_inventory_subnet_cidr_count", "2"),
55+
resource.TestCheckResourceAttr(singularDatasourceName, "ip_inventory_cidr_utilization_summary.0.address_type", "Private_IPv4"),
56+
resource.TestCheckResourceAttr(singularDatasourceName, "ip_inventory_cidr_utilization_summary.0.cidr", "10.0.0.0/24"),
57+
resource.TestCheckResourceAttrSet(singularDatasourceName, "ip_inventory_cidr_utilization_summary.0.utilization"),
58+
resource.TestCheckResourceAttr(singularDatasourceName, "ip_inventory_cidr_utilization_summary.1.address_type", "ULA_IPv6"),
59+
resource.TestCheckResourceAttr(singularDatasourceName, "ip_inventory_cidr_utilization_summary.1.cidr", "fc00:0000:0000:0000:0000:0000:0000:0000/64"),
60+
resource.TestCheckResourceAttrSet(singularDatasourceName, "ip_inventory_cidr_utilization_summary.1.utilization"),
61+
resource.TestCheckResourceAttrSet(singularDatasourceName, "last_updated_timestamp"),
62+
resource.TestCheckResourceAttr(singularDatasourceName, "message", ""),
63+
),
64+
},
65+
})
66+
}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
// Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
package integrationtest
5+
6+
import (
7+
"fmt"
8+
"testing"
9+
10+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
11+
12+
"github.com/oracle/terraform-provider-oci/httpreplay"
13+
"github.com/oracle/terraform-provider-oci/internal/acctest"
14+
15+
"github.com/oracle/terraform-provider-oci/internal/utils"
16+
)
17+
18+
var (
19+
CoreIpInventorySubnetSingularDataSourceRepresentation = map[string]interface{}{
20+
"subnet_id": acctest.Representation{RepType: acctest.Required, Create: `${var.subnet_id}`},
21+
}
22+
23+
CoreIpInventorySubnetResourceConfig = acctest.GenerateResourceFromRepresentationMap("oci_core_subnet", "test_subnet", acctest.Required, acctest.Create, CoreSubnetRepresentation) +
24+
acctest.GenerateResourceFromRepresentationMap("oci_core_vcn", "test_vcn", acctest.Required, acctest.Create, CoreVcnRepresentation)
25+
)
26+
27+
// issue-routing-tag: core/vcnip
28+
func TestCoreIpInventorySubnetResource_basic(t *testing.T) {
29+
httpreplay.SetScenario("TestCoreIpInventorySubnetResource_basic")
30+
defer httpreplay.SaveScenario()
31+
32+
config := acctest.ProviderTestConfig()
33+
34+
subnetId := utils.GetEnvSettingWithBlankDefault("subnet_ocid")
35+
subnetIdVariableStr := fmt.Sprintf("variable \"subnet_id\" { default = \"%s\" }\n", subnetId)
36+
37+
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
38+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
39+
40+
singularDatasourceName := "data.oci_core_ip_inventory_subnet.test_ip_inventory_subnet"
41+
42+
acctest.SaveConfigContent("", "", "", t)
43+
44+
acctest.ResourceTest(t, nil, []resource.TestStep{
45+
// verify singular datasource
46+
{
47+
Config: config +
48+
acctest.GenerateDataSourceFromRepresentationMap("oci_core_ip_inventory_subnet", "test_ip_inventory_subnet", acctest.Required, acctest.Create, CoreIpInventorySubnetSingularDataSourceRepresentation) +
49+
compartmentIdVariableStr + subnetIdVariableStr,
50+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
51+
resource.TestCheckResourceAttrSet(singularDatasourceName, "subnet_id"),
52+
resource.TestCheckResourceAttrSet(singularDatasourceName, "compartment_id"),
53+
resource.TestCheckResourceAttrSet(singularDatasourceName, "ip_inventory_subnet_resource_summary.#"),
54+
resource.TestCheckResourceAttrSet(singularDatasourceName, "ip_inventory_subnet_resource_summary.0.ip_id"),
55+
resource.TestCheckResourceAttrSet(singularDatasourceName, "ip_inventory_subnet_resource_summary.0.ip_address"),
56+
resource.TestCheckResourceAttr(singularDatasourceName, "ip_inventory_subnet_resource_summary.0.ip_address_lifetime", "Ephemeral"),
57+
resource.TestCheckResourceAttrSet(singularDatasourceName, "ip_inventory_subnet_resource_summary.0.associated_public_ip"),
58+
resource.TestCheckResourceAttr(singularDatasourceName, "ip_inventory_subnet_resource_summary.0.public_ip_lifetime", "Ephemeral"),
59+
resource.TestCheckResourceAttr(singularDatasourceName, "ip_inventory_subnet_resource_summary.0.associated_public_ip_pool", "ORACLE"),
60+
resource.TestCheckResourceAttrSet(singularDatasourceName, "ip_inventory_subnet_resource_summary.0.dns_host_name"),
61+
resource.TestCheckResourceAttrSet(singularDatasourceName, "ip_inventory_subnet_resource_summary.0.assigned_resource_name"),
62+
resource.TestCheckResourceAttrSet(singularDatasourceName, "ip_inventory_subnet_resource_summary.0.assigned_resource_type"),
63+
resource.TestCheckResourceAttr(singularDatasourceName, "ip_inventory_subnet_resource_summary.0.address_type", "Private_IPv4"),
64+
resource.TestCheckResourceAttrSet(singularDatasourceName, "ip_inventory_subnet_resource_summary.0.assigned_time"),
65+
66+
resource.TestCheckResourceAttr(singularDatasourceName, "ip_inventory_subnet_resource_summary.1.address_type", "ULA_IPv6"),
67+
resource.TestCheckResourceAttrSet(singularDatasourceName, "ip_inventory_subnet_resource_summary.1.assigned_time"),
68+
69+
resource.TestCheckResourceAttrSet(singularDatasourceName, "ip_inventory_subnet_count"),
70+
resource.TestCheckResourceAttrSet(singularDatasourceName, "last_updated_timestamp"),
71+
resource.TestCheckResourceAttr(singularDatasourceName, "message", ""),
72+
),
73+
},
74+
})
75+
}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
// Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
2+
// Licensed under the Mozilla Public License v2.0
3+
4+
package integrationtest
5+
6+
import (
7+
"fmt"
8+
"testing"
9+
10+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
11+
12+
"github.com/oracle/terraform-provider-oci/httpreplay"
13+
"github.com/oracle/terraform-provider-oci/internal/acctest"
14+
15+
"github.com/oracle/terraform-provider-oci/internal/utils"
16+
)
17+
18+
var (
19+
CoreIpInventoryVcnOverlapDataSourceRepresentation = map[string]interface{}{
20+
"compartment_list": acctest.Representation{RepType: acctest.Required, Create: []string{`${var.compartment_id}`}},
21+
"region_list": acctest.Representation{RepType: acctest.Required, Create: []string{`${var.region_id}`}},
22+
"vcn_id": acctest.Representation{RepType: acctest.Required, Create: `${var.vcn_id}`},
23+
}
24+
25+
CoreIpInventoryVcnOverlapResourceConfig = acctest.GenerateResourceFromRepresentationMap("oci_core_vcn", "test_vcn", acctest.Required, acctest.Create, CoreVcnRepresentation)
26+
)
27+
28+
// issue-routing-tag: core/vcnip
29+
func TestCoreIpInventoryVcnOverlapResource_basic(t *testing.T) {
30+
httpreplay.SetScenario("TestCoreIpInventoryVcnOverlapResource_basic")
31+
defer httpreplay.SaveScenario()
32+
33+
config := acctest.ProviderTestConfig()
34+
35+
vcnId := utils.GetEnvSettingWithBlankDefault("vcn_ocid")
36+
vncIdVariableStr := fmt.Sprintf("variable \"vcn_id\" { default = \"%s\" }\n", vcnId)
37+
38+
regionId := utils.GetEnvSettingWithBlankDefault("region_id")
39+
regionIdVariableStr := fmt.Sprintf("variable \"region_id\" { default = \"%s\" }\n", regionId)
40+
41+
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
42+
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
43+
44+
datasourceName := "data.oci_core_ip_inventory_vcn_overlaps.test_ip_inventory_vcn_overlaps"
45+
46+
acctest.SaveConfigContent("", "", "", t)
47+
48+
acctest.ResourceTest(t, nil, []resource.TestStep{
49+
// verify datasource
50+
{
51+
Config: config +
52+
acctest.GenerateDataSourceFromRepresentationMap("oci_core_ip_inventory_vcn_overlaps", "test_ip_inventory_vcn_overlaps", acctest.Required, acctest.Create, CoreIpInventoryVcnOverlapDataSourceRepresentation) +
53+
compartmentIdVariableStr + vncIdVariableStr + regionIdVariableStr,
54+
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
55+
resource.TestCheckResourceAttrSet(datasourceName, "ip_inventory_vcn_overlap_summary.0.overlapping_vcn_id"),
56+
resource.TestCheckResourceAttrSet(datasourceName, "ip_inventory_vcn_overlap_summary.0.overlapping_vcn_name"),
57+
resource.TestCheckResourceAttr(datasourceName, "ip_inventory_vcn_overlap_summary.0.overlapping_cidr", "10.0.0.0/16"),
58+
resource.TestCheckResourceAttr(datasourceName, "ip_inventory_vcn_overlap_summary.0.cidr", "10.0.0.0/16"),
59+
resource.TestCheckResourceAttrSet(datasourceName, "last_updated_timestamp"),
60+
resource.TestCheckResourceAttr(datasourceName, "message", ""),
61+
resource.TestCheckResourceAttrSet(datasourceName, "overlap_count"),
62+
),
63+
},
64+
})
65+
}

0 commit comments

Comments
 (0)