magic-modules icon indicating copy to clipboard operation
magic-modules copied to clipboard

Add WireGroup Resource

Open NandiniAgrawal15 opened this issue 8 months ago • 20 comments

`google_compute_wire_group`

The WireGroup resource represents a group of redundant wires between interconnects in two different metros.

google_compute_wire_group

The WireGroup resource represents a group of redundant wires between interconnects in two different metros. Each WireGroup belongs to a CrossSiteNetwork. A wire group defines endpoints and the wires which exist between them.

~> Warning: This resource is in beta, and should be used with the terraform-provider-google-beta provider. See Provider Versions for more details on beta resources.

To get more information about WireGroup, see:

Example Usage - Compute Wire Group Basic

data "google_project" "project" {
provider = google-beta
}

resource "google_compute_cross_site_network" "example-cross-site-network" {
  name        = "test-cross-site-network"
  description = "Example cross site network"
  provider    = google-beta
}

resource "google_compute_wire_group" "example-test-wire-group" {
  name               = "test-wire-group"
  description        = "Example Wire Group"
  cross_site_network = "test-cross-site-network"
  provider           = google-beta
  depends_on = [
    google_compute_cross_site_network.example-cross-site-network
  ]
  wire_properties {
    bandwidth_unmetered = 10
  }
  wire_group_properties {
    type = "WIRE"
  }
  admin_enabled = true
}

Argument Reference

The following arguments are supported:

  • name - (Required) Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.

  • cross_site_network - (Required) Required cross site network to which wire group belongs.


  • description - (Optional) An optional description of this resource. Provide this property when you create the resource.

  • endpoints - (Optional) Endpoints grouped by location, each mapping to interconnect configurations. Structure is documented below.

  • admin_enabled - (Optional) Indicates whether the wire group is administratively enabled.

  • wire_group_properties - (Optional) Properties specific to the wire group. Structure is documented below.

  • wire_properties - (Optional) Default properties for wires within the group. Structure is documented below.

  • project - (Optional) The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

The endpoints block supports:

  • endpoint - (Required) The identifier for this object. Format specified above.

  • interconnects - (Optional) Structure is documented below.

The interconnects block supports:

  • interconnect_name - (Required) The identifier for this object. Format specified above.

  • interconnect - (Optional)

  • vlan_tags - (Optional) VLAN tags for the interconnect.

The wire_group_properties block supports:

  • type - (Optional) Type of wire group (enum). WIRE: a single pseudowire over two Interconnect connections with no redundancy. REDUNDANT: two pseudowires over four Interconnect connections, with two connections in one metro and two connections in another metro. BOX_AND_CROSS: four pseudowires over four Interconnect connections, with two connections in one metro and two connections in another metro.

The wire_properties block supports:

  • bandwidth_unmetered - (Optional) The unmetered bandwidth setting.

  • fault_response - (Optional) Response when a fault is detected in a pseudowire: NONE: default. DISABLE_PORT: set the port line protocol down when inline probes detect a fault. This setting is only permitted on port mode pseudowires.

Attributes Reference

In addition to the arguments listed above, the following computed attributes are exported:

  • id - an identifier for the resource with format projects/{{project}}/global/crossSiteNetworks/{{cross_site_network}}/wireGroups/{{name}}

  • creation_timestamp - Creation timestamp in RFC3339 text format.

  • wires - The single/redundant wire(s) managed by the wire group. Structure is documented below.

  • topology - Topology details for the wire group configuration. Structure is documented below.

The wires block contains:

  • label - (Output)

  • endpoints - (Output) 'Wire endpoints are specific Interconnect connections.' Structure is documented below.

  • wire_properties - (Output) A nested object resource. Structure is documented below.

  • admin_enabled - (Output)

The endpoints block contains:

  • interconnect - (Output)

  • vlan_tag - (Output)

The wire_properties block contains:

  • bandwidth_unmetered - (Optional)

  • fault_response - (Optional)

The topology block contains:

  • endpoints - (Output) Structure is documented below.

The endpoints block contains:

  • label - (Output)

  • city - (Output)

Timeouts

This resource provides the following Timeouts configuration options:

  • create - Default is 20 minutes.
  • update - Default is 20 minutes.
  • delete - Default is 20 minutes.

Import

WireGroup can be imported using any of these accepted formats:

  • projects/{{project}}/global/crossSiteNetworks/{{cross_site_network}}/wireGroups/{{name}}
  • {{project}}/{{cross_site_network}}/{{name}}
  • {{cross_site_network}}/{{name}}

In Terraform v1.5.0 and later, use an import block to import WireGroup using one of the formats above. For example:

import {
  id = "projects/{{project}}/global/crossSiteNetworks/{{cross_site_network}}/wireGroups/{{name}}"
  to = google_compute_wire_group.default
}

When using the terraform import command, WireGroup can be imported using one of the formats above. For example:

$ terraform import google_compute_wire_group.default projects/{{project}}/global/crossSiteNetworks/{{cross_site_network}}/wireGroups/{{name}}
$ terraform import google_compute_wire_group.default {{project}}/{{cross_site_network}}/{{name}}
$ terraform import google_compute_wire_group.default {{cross_site_network}}/{{name}}

User Project Overrides

This resource supports User Project Overrides.

NandiniAgrawal15 avatar Jun 13 '25 16:06 NandiniAgrawal15

Hi there, I'm the Modular magician. I've detected the following information about your changes:

Diff report

Your PR generated some diffs in downstreams - here they are.

google provider: Diff ( 2 files changed, 279 insertions(+)) google-beta provider: Diff ( 6 files changed, 1582 insertions(+), 2 deletions(-)) terraform-google-conversion: Diff ( 1 file changed, 233 insertions(+))

Missing test report

Your PR includes resource fields which are not covered by any test.

Resource: google_compute_wire_group (3 total tests) Please add an acceptance test which includes these fields. The test should include the following:

resource "google_compute_wire_group" "primary" {
  endpoints {
    endpoint = # value needed
    interconnects {
      interconnect      = # value needed
      interconnect_name = # value needed
      vlan_tags         = # value needed
    }
  }
  wire_properties {
    fault_response = # value needed
  }
  wires {
    wire_properties {
      bandwidth_unmetered = # value needed
      fault_response      = # value needed
    }
  }
}


Missing service labels

The following new resources do not have corresponding service labels:

  • google_compute_wire_group

If you believe this detection to be incorrect please raise the concern with your reviewer. Googlers: This error is safe to ignore once you've completed go/fix-missing-service-labels. An override-missing-service-label label can be added to allow merging.

modular-magician avatar Jun 13 '25 16:06 modular-magician

Hi there, I'm the Modular magician. I've detected the following information about your changes:

Diff report

Your PR generated some diffs in downstreams - here they are.

google provider: Diff ( 2 files changed, 279 insertions(+)) google-beta provider: Diff ( 6 files changed, 1582 insertions(+), 2 deletions(-)) terraform-google-conversion: Diff ( 1 file changed, 233 insertions(+))

Missing test report

Your PR includes resource fields which are not covered by any test.

Resource: google_compute_wire_group (3 total tests) Please add an acceptance test which includes these fields. The test should include the following:

resource "google_compute_wire_group" "primary" {
  endpoints {
    endpoint = # value needed
    interconnects {
      interconnect      = # value needed
      interconnect_name = # value needed
      vlan_tags         = # value needed
    }
  }
  wire_properties {
    fault_response = # value needed
  }
  wires {
    wire_properties {
      bandwidth_unmetered = # value needed
      fault_response      = # value needed
    }
  }
}


Missing service labels

The following new resources do not have corresponding service labels:

  • google_compute_wire_group

If you believe this detection to be incorrect please raise the concern with your reviewer. Googlers: This error is safe to ignore once you've completed go/fix-missing-service-labels. An override-missing-service-label label can be added to allow merging.

modular-magician avatar Jun 13 '25 16:06 modular-magician

Hi there, I'm the Modular magician. I've detected the following information about your changes:

Diff report

Your PR generated some diffs in downstreams - here they are.

google provider: Diff ( 2 files changed, 279 insertions(+)) google-beta provider: Diff ( 6 files changed, 1582 insertions(+), 2 deletions(-)) terraform-google-conversion: Diff ( 1 file changed, 233 insertions(+))

Missing test report

Your PR includes resource fields which are not covered by any test.

Resource: google_compute_wire_group (3 total tests) Please add an acceptance test which includes these fields. The test should include the following:

resource "google_compute_wire_group" "primary" {
  endpoints {
    endpoint = # value needed
    interconnects {
      interconnect      = # value needed
      interconnect_name = # value needed
      vlan_tags         = # value needed
    }
  }
  wire_properties {
    fault_response = # value needed
  }
  wires {
    wire_properties {
      bandwidth_unmetered = # value needed
      fault_response      = # value needed
    }
  }
}


Missing service labels

The following new resources do not have corresponding service labels:

  • google_compute_wire_group

If you believe this detection to be incorrect please raise the concern with your reviewer. Googlers: This error is safe to ignore once you've completed go/fix-missing-service-labels. An override-missing-service-label label can be added to allow merging.

modular-magician avatar Jun 13 '25 16:06 modular-magician

Hi there, I'm the Modular magician. I've detected the following information about your changes:

Diff report

Your PR generated some diffs in downstreams - here they are.

google provider: Diff ( 2 files changed, 279 insertions(+)) google-beta provider: Diff ( 6 files changed, 1582 insertions(+), 2 deletions(-)) terraform-google-conversion: Diff ( 1 file changed, 233 insertions(+))

Missing test report

Your PR includes resource fields which are not covered by any test.

Resource: google_compute_wire_group (3 total tests) Please add an acceptance test which includes these fields. The test should include the following:

resource "google_compute_wire_group" "primary" {
  endpoints {
    endpoint = # value needed
    interconnects {
      interconnect      = # value needed
      interconnect_name = # value needed
      vlan_tags         = # value needed
    }
  }
  wire_properties {
    fault_response = # value needed
  }
  wires {
    wire_properties {
      bandwidth_unmetered = # value needed
      fault_response      = # value needed
    }
  }
}


Missing service labels

The following new resources do not have corresponding service labels:

  • google_compute_wire_group

If you believe this detection to be incorrect please raise the concern with your reviewer. Googlers: This error is safe to ignore once you've completed go/fix-missing-service-labels. An override-missing-service-label label can be added to allow merging.

modular-magician avatar Jun 13 '25 16:06 modular-magician

Tests analytics

Total tests: 1226 Passed tests: 1141 Skipped tests: 83 Affected tests: 2

Click here to see the affected service packages
  • compute
#### Action taken
Found 2 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
  • TestAccComputeWireGroup_computeWireGroupBasicExample
  • TestAccComputeWireGroup_update

Get to know how VCR tests work

modular-magician avatar Jun 13 '25 16:06 modular-magician

Tests analytics

Total tests: 1226 Passed tests: 1141 Skipped tests: 83 Affected tests: 2

Click here to see the affected service packages
  • compute
#### Action taken
Found 2 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
  • TestAccComputeWireGroup_computeWireGroupBasicExample
  • TestAccComputeWireGroup_update

Get to know how VCR tests work

modular-magician avatar Jun 13 '25 16:06 modular-magician

🟢 Tests passed during RECORDING mode: TestAccComputeWireGroup_computeWireGroupBasicExample [Debug log] TestAccComputeWireGroup_update [Debug log]

🟢 No issues found for passed tests after REPLAYING rerun.


🟢 All tests passed!

View the build log or the debug log for each test

modular-magician avatar Jun 13 '25 16:06 modular-magician

🟢 Tests passed during RECORDING mode: TestAccComputeWireGroup_computeWireGroupBasicExample [Debug log] TestAccComputeWireGroup_update [Debug log]

🟢 No issues found for passed tests after REPLAYING rerun.


🟢 All tests passed!

View the build log or the debug log for each test

modular-magician avatar Jun 13 '25 17:06 modular-magician

Tests analytics

Total tests: 1226 Passed tests: 1141 Skipped tests: 83 Affected tests: 2

Click here to see the affected service packages
  • compute
#### Action taken
Found 2 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
  • TestAccComputeWireGroup_computeWireGroupBasicExample
  • TestAccComputeWireGroup_update

Get to know how VCR tests work

modular-magician avatar Jun 13 '25 17:06 modular-magician

🟢 Tests passed during RECORDING mode: TestAccComputeWireGroup_computeWireGroupBasicExample [Debug log] TestAccComputeWireGroup_update [Debug log]

🟢 No issues found for passed tests after REPLAYING rerun.


🟢 All tests passed!

View the build log or the debug log for each test

modular-magician avatar Jun 13 '25 17:06 modular-magician

Tests analytics

Total tests: 1226 Passed tests: 1141 Skipped tests: 83 Affected tests: 2

Click here to see the affected service packages
  • compute
#### Action taken
Found 2 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
  • TestAccComputeWireGroup_computeWireGroupBasicExample
  • TestAccComputeWireGroup_update

Get to know how VCR tests work

modular-magician avatar Jun 13 '25 17:06 modular-magician

🟢 Tests passed during RECORDING mode: TestAccComputeWireGroup_computeWireGroupBasicExample [Debug log] TestAccComputeWireGroup_update [Debug log]

🟢 No issues found for passed tests after REPLAYING rerun.


🟢 All tests passed!

View the build log or the debug log for each test

modular-magician avatar Jun 13 '25 17:06 modular-magician

Hi there, I'm the Modular magician. I've detected the following information about your changes:

Diff report

Your PR generated some diffs in downstreams - here they are.

google provider: Diff ( 2 files changed, 280 insertions(+)) google-beta provider: Diff ( 6 files changed, 1584 insertions(+), 2 deletions(-)) terraform-google-conversion: Diff ( 1 file changed, 233 insertions(+))

Missing test report

Your PR includes resource fields which are not covered by any test.

Resource: google_compute_wire_group (3 total tests) Please add an acceptance test which includes these fields. The test should include the following:

resource "google_compute_wire_group" "primary" {
  endpoints {
    endpoint = # value needed
    interconnects {
      interconnect      = # value needed
      interconnect_name = # value needed
      vlan_tags         = # value needed
    }
  }
}


Missing service labels

The following new resources do not have corresponding service labels:

  • google_compute_wire_group

If you believe this detection to be incorrect please raise the concern with your reviewer. Googlers: This error is safe to ignore once you've completed go/fix-missing-service-labels. An override-missing-service-label label can be added to allow merging.

modular-magician avatar Jun 13 '25 18:06 modular-magician

Tests analytics

Total tests: 1226 Passed tests: 1142 Skipped tests: 83 Affected tests: 1

Click here to see the affected service packages
  • compute
#### Action taken
Found 1 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected tests
  • TestAccComputeWireGroup_computeWireGroupBasicExample

Get to know how VCR tests work

modular-magician avatar Jun 13 '25 19:06 modular-magician

🟢 Tests passed during RECORDING mode: TestAccComputeWireGroup_computeWireGroupBasicExample [Debug log]

🟢 No issues found for passed tests after REPLAYING rerun.


🟢 All tests passed!

View the build log or the debug log for each test

modular-magician avatar Jun 13 '25 19:06 modular-magician

Referencing to https://github.com/GoogleCloudPlatform/magic-modules/pull/14271#issuecomment-2971325998, Endpoints could not be added in acceptance test due to reasons stated at https://docs.google.com/document/d/1awPrV2G5S3pVBy-aClJEBHw86vtWPvELodJA8jDfa68/edit?tab=t.0#bookmark=id.omc9knup59on But this field has been tested manually. Please find Link to manual testing: https://paste.googleplex.com/6378546827886592

NandiniAgrawal15 avatar Jun 13 '25 19:06 NandiniAgrawal15

Hello! I am a robot. Tests will require approval from a repository maintainer to run.

Googlers: For automatic test runs see go/terraform-auto-test-runs.

@NickElliot, a repository maintainer, has been assigned to review your changes. If you have not received review feedback within 2 business days, please leave a comment on this PR asking them to take a look.

You can help make sure that review is quick by doing a self-review and by running impacted tests locally.

github-actions[bot] avatar Jun 13 '25 19:06 github-actions[bot]

@c2thorn, Could u please take a look. Additional Info: This PR was originally merged as https://github.com/GoogleCloudPlatform/magic-modules/pull/13944, but was reverted because some fields required type-changes at the time. Those issues have now been addressed. Thanks !

NandiniAgrawal15 avatar Jun 18 '25 08:06 NandiniAgrawal15

@c2thorn This PR has been waiting for review for 3 weekdays. Please take a look! Use the label disable-review-reminders to disable these notifications.

github-actions[bot] avatar Jun 18 '25 09:06 github-actions[bot]

@modular-magician reassign-reviewer @NickElliot

c2thorn avatar Jun 18 '25 21:06 c2thorn

Due to some reasons, acceptance test for the same couldn't be added, The manual testing is done though. Please refer https://github.com/GoogleCloudPlatform/magic-modules/pull/14271#issuecomment-2971423915.

NandiniAgrawal15 avatar Jun 23 '25 04:06 NandiniAgrawal15

Manual Testing Update test: Test-1 : https://paste.googleplex.com/6294796045647872 Test-2: https://paste.googleplex.com/5906646278340608

NandiniAgrawal15 avatar Jun 25 '25 10:06 NandiniAgrawal15