Skip to content

Commit

Permalink
implement resourceServerRead
Browse files Browse the repository at this point in the history
  • Loading branch information
sbehl-it4ipm committed Nov 3, 2022
1 parent 8bfe5ae commit 47ff9ad
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 6 deletions.
2 changes: 1 addition & 1 deletion examples/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ resource "cidr-reservator_network_request" "network_request" {
provider = cidr-reservator
prefix_length = 26
base_cidr = "10.5.0.0/16"
netmask_id = "test"
netmask_id = "rosa"
}
6 changes: 3 additions & 3 deletions examples/version.tf
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
terraform {
required_providers {
cidr-reservation = {
version = "~> 1.0.0"
source = "terraform-example.com/sbehl/cidr-reservation"
cidr-reservator = {
version = "~> 0.0.1"
source = "terraform-example.com/test/cidr-reservator"
}
}
}
34 changes: 32 additions & 2 deletions internal/provider/resource_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ func resourceServer() *schema.Resource {
},
},
Importer: &schema.ResourceImporter{
StateContext: importState,
StateContext: schema.ImportStatePassthroughContext,
// StateContext: importState,
},
}
}
Expand All @@ -65,6 +66,7 @@ func importState(ctx context.Context, data *schema.ResourceData, i interface{})
}

func readRemote(ctx context.Context, data *schema.ResourceData, m interface{}) (*connector.NetworkConfig, *connector.GcpConnector, error) {

cidrProviderBucket := m.(string)
gcpConnector := connector.New(cidrProviderBucket, data.Get("base_cidr").(string))
networkConfig, err := gcpConnector.ReadRemote(ctx)
Expand Down Expand Up @@ -150,7 +152,35 @@ func innerResourceServerCreate(ctx context.Context, data *schema.ResourceData, m
}

func resourceServerRead(ctx context.Context, data *schema.ResourceData, m interface{}) diag.Diagnostics {
return nil
var diags diag.Diagnostics
idContent := strings.Split(data.Id(), ":")
reservatorBucket := idContent[0]
baseCidr := idContent[1]
netmaskId := idContent[2]
gcpConnector := connector.New(reservatorBucket, baseCidr)
networkConfig, err := gcpConnector.ReadRemote(ctx)
if err != nil {
return diag.FromErr(err)
}
subnet, contains := networkConfig.Subnets[netmaskId]
if !contains {
return diag.FromErr(errors.New(fmt.Sprintf("Netmask with id %s does not exist!", netmaskId)))
}
prefixLength := strings.Split(subnet, "/")[1]
data.Set("base_cidr", baseCidr)
data.Set("netmask_id", netmaskId)
data.Set("prefix_length", prefixLength)
if err != nil {
return diag.FromErr(err)
}
if data.Get("id") != nil {
return nil
}
if _, contains := networkConfig.Subnets[netmaskId]; !contains {
return diag.FromErr(fmt.Errorf("The netmask for the netmaskId %s does not exist!!!", netmaskId))
}
data.Set("netmask", networkConfig.Subnets[netmaskId])
return diags
}

func resourceServerUpdate(ctx context.Context, data *schema.ResourceData, m interface{}) diag.Diagnostics {
Expand Down
Binary file modified terraform-provider-cidr-reservator
Binary file not shown.

0 comments on commit 47ff9ad

Please sign in to comment.