mirror of
https://github.com/opentofu/opentofu.git
synced 2025-02-25 18:45:20 -06:00
remove IP stuff for now
This commit is contained in:
parent
d60cf4d777
commit
3430afb8a5
@ -1,99 +0,0 @@
|
|||||||
package packet
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/hashicorp/terraform/helper/schema"
|
|
||||||
"github.com/packethost/packngo"
|
|
||||||
)
|
|
||||||
|
|
||||||
func resourcePacketIPAddress() *schema.Resource {
|
|
||||||
return &schema.Resource{
|
|
||||||
Create: resourcePacketIPAddressCreate,
|
|
||||||
Read: resourcePacketIPAddressRead,
|
|
||||||
Delete: resourcePacketIPAddressDelete,
|
|
||||||
|
|
||||||
Schema: map[string]*schema.Schema{
|
|
||||||
"id": &schema.Schema{
|
|
||||||
Type: schema.TypeString,
|
|
||||||
Computed: true,
|
|
||||||
},
|
|
||||||
|
|
||||||
"address": &schema.Schema{
|
|
||||||
Type: schema.TypeString,
|
|
||||||
Required: true,
|
|
||||||
ForceNew: true,
|
|
||||||
},
|
|
||||||
|
|
||||||
"created": &schema.Schema{
|
|
||||||
Type: schema.TypeString,
|
|
||||||
Computed: true,
|
|
||||||
},
|
|
||||||
|
|
||||||
"updated": &schema.Schema{
|
|
||||||
Type: schema.TypeString,
|
|
||||||
Computed: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func resourcePacketIPAddressCreate(d *schema.ResourceData, meta interface{}) error {
|
|
||||||
client := meta.(*packngo.Client)
|
|
||||||
|
|
||||||
createRequest := &packngo.IPAddressAssignRequest{
|
|
||||||
Address: d.Get("address").(string),
|
|
||||||
}
|
|
||||||
|
|
||||||
device_id := ""
|
|
||||||
if attr, ok := d.GetOk("instance_id"); ok {
|
|
||||||
device_id = attr.(string)
|
|
||||||
}
|
|
||||||
|
|
||||||
newIPAddress, _, err := client.Ips.Assign(device_id, createRequest)
|
|
||||||
if err != nil {
|
|
||||||
return friendlyError(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
d.SetId(newIPAddress.ID)
|
|
||||||
|
|
||||||
return resourcePacketIPAddressRead(d, meta)
|
|
||||||
}
|
|
||||||
|
|
||||||
func resourcePacketIPAddressRead(d *schema.ResourceData, meta interface{}) error {
|
|
||||||
client := meta.(*packngo.Client)
|
|
||||||
|
|
||||||
ip_address, _, err := client.Ips.Get(d.Id())
|
|
||||||
if err != nil {
|
|
||||||
err = friendlyError(err)
|
|
||||||
|
|
||||||
// If the ip_address somehow already destroyed, mark as succesfully gone.
|
|
||||||
if isNotFound(err) {
|
|
||||||
d.SetId("")
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
d.Set("address", ip_address.Address)
|
|
||||||
d.Set("gateway", ip_address.Gateway)
|
|
||||||
d.Set("network", ip_address.Network)
|
|
||||||
d.Set("family", ip_address.AddressFamily)
|
|
||||||
d.Set("netmask", ip_address.Netmask)
|
|
||||||
d.Set("public", ip_address.Public)
|
|
||||||
d.Set("cidr", ip_address.Cidr)
|
|
||||||
d.Set("assigned_to", ip_address.AssignedTo)
|
|
||||||
d.Set("created", ip_address.Created)
|
|
||||||
d.Set("updated", ip_address.Updated)
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func resourcePacketIPAddressDelete(d *schema.ResourceData, meta interface{}) error {
|
|
||||||
client := meta.(*packngo.Client)
|
|
||||||
|
|
||||||
if _, err := client.Ips.Unassign(d.Id()); err != nil {
|
|
||||||
return friendlyError(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
@ -1,86 +0,0 @@
|
|||||||
package packet
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"github.com/hashicorp/terraform/helper/resource"
|
|
||||||
"github.com/hashicorp/terraform/terraform"
|
|
||||||
"github.com/packethost/packngo"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestAccPacketIPAddress_Basic(t *testing.T) {
|
|
||||||
var ip_address packngo.IPAddress
|
|
||||||
|
|
||||||
resource.Test(t, resource.TestCase{
|
|
||||||
PreCheck: func() { testAccPreCheck(t) },
|
|
||||||
Providers: testAccProviders,
|
|
||||||
CheckDestroy: testAccCheckPacketIPAddressDestroy,
|
|
||||||
Steps: []resource.TestStep{
|
|
||||||
resource.TestStep{
|
|
||||||
Config: testAccCheckPacketIPAddressConfig_basic,
|
|
||||||
Check: resource.ComposeTestCheckFunc(
|
|
||||||
testAccCheckPacketIPAddressExists("packet_ip_address.foobar", &ip_address),
|
|
||||||
testAccCheckPacketIPAddressAttributes(&ip_address),
|
|
||||||
resource.TestCheckResourceAttr(
|
|
||||||
"packet_ip_address.foobar", "address", "foobar"),
|
|
||||||
),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func testAccCheckPacketIPAddressDestroy(s *terraform.State) error {
|
|
||||||
client := testAccProvider.Meta().(*packngo.Client)
|
|
||||||
|
|
||||||
for _, rs := range s.RootModule().Resources {
|
|
||||||
if rs.Type != "packet_ip_address" {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if _, _, err := client.Ips.Get(rs.Primary.ID); err == nil {
|
|
||||||
return fmt.Errorf("IPAddress cstill exists")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func testAccCheckPacketIPAddressAttributes(ip_address *packngo.IPAddress) resource.TestCheckFunc {
|
|
||||||
return func(s *terraform.State) error {
|
|
||||||
if ip_address.Address != "foobar" {
|
|
||||||
return fmt.Errorf("Bad address: %s", ip_address.Address)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func testAccCheckPacketIPAddressExists(n string, ip_address *packngo.IPAddress) resource.TestCheckFunc {
|
|
||||||
return func(s *terraform.State) error {
|
|
||||||
rs, ok := s.RootModule().Resources[n]
|
|
||||||
if !ok {
|
|
||||||
return fmt.Errorf("Not found: %s", n)
|
|
||||||
}
|
|
||||||
if rs.Primary.ID == "" {
|
|
||||||
return fmt.Errorf("No Record ID is set")
|
|
||||||
}
|
|
||||||
|
|
||||||
client := testAccProvider.Meta().(*packngo.Client)
|
|
||||||
|
|
||||||
foundIPAddress, _, err := client.Ips.Get(rs.Primary.ID)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if foundIPAddress.ID != rs.Primary.ID {
|
|
||||||
return fmt.Errorf("Record not found: %v - %v", rs.Primary.ID, foundIPAddress)
|
|
||||||
}
|
|
||||||
|
|
||||||
*ip_address = *foundIPAddress
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var testAccCheckPacketIPAddressConfig_basic = fmt.Sprintf(`
|
|
||||||
resource "packet_ip_address" "foobar" {
|
|
||||||
address = "foobar"
|
|
||||||
}`)
|
|
@ -1,116 +0,0 @@
|
|||||||
package packet
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/hashicorp/terraform/helper/schema"
|
|
||||||
"github.com/packethost/packngo"
|
|
||||||
)
|
|
||||||
|
|
||||||
func resourcePacketIPReservation() *schema.Resource {
|
|
||||||
return &schema.Resource{
|
|
||||||
Create: resourcePacketIPReservationCreate,
|
|
||||||
Read: resourcePacketIPReservationRead,
|
|
||||||
Delete: resourcePacketIPReservationDelete,
|
|
||||||
|
|
||||||
Schema: map[string]*schema.Schema{
|
|
||||||
"id": &schema.Schema{
|
|
||||||
Type: schema.TypeString,
|
|
||||||
Computed: true,
|
|
||||||
},
|
|
||||||
|
|
||||||
"type": &schema.Schema{
|
|
||||||
Type: schema.TypeString,
|
|
||||||
Required: true,
|
|
||||||
ForceNew: true,
|
|
||||||
},
|
|
||||||
|
|
||||||
"quantity": &schema.Schema{
|
|
||||||
Type: schema.TypeInt,
|
|
||||||
Optional: true,
|
|
||||||
ForceNew: true,
|
|
||||||
},
|
|
||||||
|
|
||||||
"comments": &schema.Schema{
|
|
||||||
Type: schema.TypeString,
|
|
||||||
Optional: true,
|
|
||||||
ForceNew: true,
|
|
||||||
},
|
|
||||||
|
|
||||||
"created": &schema.Schema{
|
|
||||||
Type: schema.TypeString,
|
|
||||||
Computed: true,
|
|
||||||
},
|
|
||||||
|
|
||||||
"updated": &schema.Schema{
|
|
||||||
Type: schema.TypeString,
|
|
||||||
Computed: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func resourcePacketIPReservationCreate(d *schema.ResourceData, meta interface{}) error {
|
|
||||||
client := meta.(*packngo.Client)
|
|
||||||
|
|
||||||
createRequest := &packngo.IPReservationRequest{
|
|
||||||
Type: d.Get("type").(string),
|
|
||||||
Quantity: d.Get("quantity").(int),
|
|
||||||
Comments: d.Get("comments").(string),
|
|
||||||
}
|
|
||||||
|
|
||||||
project_id := ""
|
|
||||||
if attr, ok := d.GetOk("project_id"); ok {
|
|
||||||
project_id = attr.(string)
|
|
||||||
}
|
|
||||||
|
|
||||||
newIPReservation, _, err := client.IpReservations.RequestMore(project_id, createRequest)
|
|
||||||
if err != nil {
|
|
||||||
return friendlyError(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
d.SetId(newIPReservation.ID)
|
|
||||||
|
|
||||||
return resourcePacketIPReservationRead(d, meta)
|
|
||||||
}
|
|
||||||
|
|
||||||
func resourcePacketIPReservationRead(d *schema.ResourceData, meta interface{}) error {
|
|
||||||
client := meta.(*packngo.Client)
|
|
||||||
|
|
||||||
ip_reservation, _, err := client.IpReservations.Get(d.Id())
|
|
||||||
if err != nil {
|
|
||||||
err = friendlyError(err)
|
|
||||||
|
|
||||||
// If the ip_reservation somehow already destroyed, mark as succesfully gone.
|
|
||||||
if isNotFound(err) {
|
|
||||||
d.SetId("")
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
d.Set("address", ip_reservation.Address)
|
|
||||||
d.Set("network", ip_reservation.Network)
|
|
||||||
d.Set("family", ip_reservation.AddressFamily)
|
|
||||||
d.Set("netmask", ip_reservation.Netmask)
|
|
||||||
d.Set("public", ip_reservation.Public)
|
|
||||||
d.Set("cidr", ip_reservation.Cidr)
|
|
||||||
d.Set("management", ip_reservation.Management)
|
|
||||||
d.Set("manageable", ip_reservation.Manageable)
|
|
||||||
d.Set("addon", ip_reservation.Addon)
|
|
||||||
d.Set("bill", ip_reservation.Bill)
|
|
||||||
d.Set("assignments", ip_reservation.Assignments)
|
|
||||||
d.Set("created", ip_reservation.Created)
|
|
||||||
d.Set("updated", ip_reservation.Updated)
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func resourcePacketIPReservationDelete(d *schema.ResourceData, meta interface{}) error {
|
|
||||||
client := meta.(*packngo.Client)
|
|
||||||
|
|
||||||
if _, err := client.IpReservations.Remove(d.Id()); err != nil {
|
|
||||||
return friendlyError(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
@ -1,86 +0,0 @@
|
|||||||
package packet
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"github.com/hashicorp/terraform/helper/resource"
|
|
||||||
"github.com/hashicorp/terraform/terraform"
|
|
||||||
"github.com/packethost/packngo"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestAccPacketIPReservation_Basic(t *testing.T) {
|
|
||||||
var ip_reservation packngo.IPReservation
|
|
||||||
|
|
||||||
resource.Test(t, resource.TestCase{
|
|
||||||
PreCheck: func() { testAccPreCheck(t) },
|
|
||||||
Providers: testAccProviders,
|
|
||||||
CheckDestroy: testAccCheckPacketIPReservationDestroy,
|
|
||||||
Steps: []resource.TestStep{
|
|
||||||
resource.TestStep{
|
|
||||||
Config: testAccCheckPacketIPReservationConfig_basic,
|
|
||||||
Check: resource.ComposeTestCheckFunc(
|
|
||||||
testAccCheckPacketIPReservationExists("packet_ip_reservation.foobar", &ip_reservation),
|
|
||||||
testAccCheckPacketIPReservationAttributes(&ip_reservation),
|
|
||||||
resource.TestCheckResourceAttr(
|
|
||||||
"packet_ip_reservation.foobar", "type", "foobar"),
|
|
||||||
),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func testAccCheckPacketIPReservationDestroy(s *terraform.State) error {
|
|
||||||
client := testAccProvider.Meta().(*packngo.Client)
|
|
||||||
|
|
||||||
for _, rs := range s.RootModule().Resources {
|
|
||||||
if rs.Type != "packet_ip_reservation" {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if _, _, err := client.IpReservations.Get(rs.Primary.ID); err == nil {
|
|
||||||
return fmt.Errorf("IPReservation cstill exists")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func testAccCheckPacketIPReservationAttributes(ip_reservation *packngo.IPReservation) resource.TestCheckFunc {
|
|
||||||
return func(s *terraform.State) error {
|
|
||||||
if ip_reservation.Address != "foobar" {
|
|
||||||
return fmt.Errorf("Bad address: %s", ip_reservation.Address)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func testAccCheckPacketIPReservationExists(n string, ip_reservation *packngo.IPReservation) resource.TestCheckFunc {
|
|
||||||
return func(s *terraform.State) error {
|
|
||||||
rs, ok := s.RootModule().Resources[n]
|
|
||||||
if !ok {
|
|
||||||
return fmt.Errorf("Not found: %s", n)
|
|
||||||
}
|
|
||||||
if rs.Primary.ID == "" {
|
|
||||||
return fmt.Errorf("No Record ID is set")
|
|
||||||
}
|
|
||||||
|
|
||||||
client := testAccProvider.Meta().(*packngo.Client)
|
|
||||||
|
|
||||||
foundIPReservation, _, err := client.IpReservations.Get(rs.Primary.ID)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if foundIPReservation.ID != rs.Primary.ID {
|
|
||||||
return fmt.Errorf("Record not found: %v - %v", rs.Primary.ID, foundIPReservation)
|
|
||||||
}
|
|
||||||
|
|
||||||
*ip_reservation = *foundIPReservation
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var testAccCheckPacketIPReservationConfig_basic = fmt.Sprintf(`
|
|
||||||
resource "packet_ip_reservation" "foobar" {
|
|
||||||
type = "foobar"
|
|
||||||
}`)
|
|
Loading…
Reference in New Issue
Block a user