Skip to content

Commit

Permalink
Address jerome's comments
Browse files Browse the repository at this point in the history
  • Loading branch information
kindermoumoute committed Sep 3, 2019
1 parent ac65dc4 commit 102ebad
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 29 deletions.
2 changes: 1 addition & 1 deletion scaleway/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ func Provider() terraform.ResourceProvider {
},

ResourcesMap: map[string]*schema.Resource{
"scaleway_baremetal_server_beta": resourceScalewayBaremetalServer(),
"scaleway_baremetal_server_beta": resourceScalewayBaremetalServerBeta(),
"scaleway_bucket": resourceScalewayBucket(),
"scaleway_instance_ip": resourceScalewayInstanceIP(),
"scaleway_instance_volume": resourceScalewayInstanceVolume(),
Expand Down
50 changes: 30 additions & 20 deletions scaleway/resource_baremetal_server_beta.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ import (
"github.com/scaleway/scaleway-sdk-go/scw"
)

func resourceScalewayBaremetalServer() *schema.Resource {
func resourceScalewayBaremetalServerBeta() *schema.Resource {
return &schema.Resource{
Create: resourceScalewayBaremetalServerCreate,
Read: resourceScalewayBaremetalServerRead,
Update: resourceScalewayBaremetalServerUpdate,
Delete: resourceScalewayBaremetalServerDelete,
Create: resourceScalewayBaremetalServerBetaCreate,
Read: resourceScalewayBaremetalServerBetaRead,
Update: resourceScalewayBaremetalServerBetaUpdate,
Delete: resourceScalewayBaremetalServerBetaDelete,
Importer: &schema.ResourceImporter{
State: schema.ImportStatePassthrough,
},
Expand Down Expand Up @@ -44,8 +44,7 @@ func resourceScalewayBaremetalServer() *schema.Resource {
Type: schema.TypeString,
ValidateFunc: validationUUID(),
},
Required: true,
ForceNew: true,
Optional: true,
Description: "Array of SSH key IDs allowed to SSH to the server.",
},
"description": {
Expand All @@ -68,7 +67,7 @@ func resourceScalewayBaremetalServer() *schema.Resource {
}
}

func resourceScalewayBaremetalServerCreate(d *schema.ResourceData, m interface{}) error {
func resourceScalewayBaremetalServerBetaCreate(d *schema.ResourceData, m interface{}) error {
baremetalApi, zone, err := getBaremetalAPIWithZone(d, m)
if err != nil {
return err
Expand Down Expand Up @@ -117,26 +116,36 @@ func resourceScalewayBaremetalServerCreate(d *schema.ResourceData, m interface{}
for _, sshKeyID := range raw.([]interface{}) {
installReq.SSHKeyIds = append(installReq.SSHKeyIds, sshKeyID.(string))
}
} else {
// TODO: pull all user ssh keys
}

_, err = baremetalApi.InstallServer(installReq)
if err != nil {
return err
}

return resourceScalewayBaremetalServerRead(d, m)
_, err = baremetalApi.WaitForServer(&baremetal.WaitForServerRequest{
Zone: zone,
ServerID: res.ID,
Timeout: BaremetalServerWaitForTimeout,
})
if err != nil {
return err
}

return resourceScalewayBaremetalServerBetaRead(d, m)
}

func resourceScalewayBaremetalServerRead(d *schema.ResourceData, m interface{}) error {
func resourceScalewayBaremetalServerBetaRead(d *schema.ResourceData, m interface{}) error {
baremetalApi, zone, ID, err := getBaremetalAPIWithZoneAndID(m, d.Id())
if err != nil {
return err
}

res, err := baremetalApi.WaitForServer(&baremetal.WaitForServerRequest{
res, err := baremetalApi.GetServer(&baremetal.GetServerRequest{
Zone: zone,
ServerID: ID,
Timeout: BaremetalServerWaitForTimeout,
})

if err != nil {
Expand All @@ -159,7 +168,7 @@ func resourceScalewayBaremetalServerRead(d *schema.ResourceData, m interface{})
return nil
}

func resourceScalewayBaremetalServerUpdate(d *schema.ResourceData, m interface{}) error {
func resourceScalewayBaremetalServerBetaUpdate(d *schema.ResourceData, m interface{}) error {
baremetalApi, zone, ID, err := getBaremetalAPIWithZoneAndID(m, d.Id())
if err != nil {
return err
Expand Down Expand Up @@ -193,10 +202,10 @@ func resourceScalewayBaremetalServerUpdate(d *schema.ResourceData, m interface{}
}
}

return resourceScalewayBaremetalServerRead(d, m)
return resourceScalewayBaremetalServerBetaRead(d, m)
}

func resourceScalewayBaremetalServerDelete(d *schema.ResourceData, m interface{}) error {
func resourceScalewayBaremetalServerBetaDelete(d *schema.ResourceData, m interface{}) error {
baremetalApi, zone, ID, err := getBaremetalAPIWithZoneAndID(m, d.Id())
if err != nil {
return err
Expand All @@ -211,10 +220,11 @@ func resourceScalewayBaremetalServerDelete(d *schema.ResourceData, m interface{}
return err
}

err = resourceScalewayBaremetalServerRead(d, m)
if err != nil && !is404Error(err) {
return err
}
_, err = baremetalApi.WaitForServer(&baremetal.WaitForServerRequest{
Zone: zone,
ServerID: ID,
Timeout: BaremetalServerWaitForTimeout,
})

return nil
return err
}
14 changes: 7 additions & 7 deletions scaleway/resource_baremetal_server_beta_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@ import (
baremetal "github.com/scaleway/scaleway-sdk-go/api/baremetal/v1alpha1"
)

func TestAccScalewayBaremetalServerMinimal1(t *testing.T) {
func TestAccScalewayBaremetalServerBetaMinimal1(t *testing.T) {
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
CheckDestroy: testAccCheckScalewayBaremetalServerDestroy,
CheckDestroy: testAccCheckScalewayBaremetalServerBetaDestroy,
Steps: []resource.TestStep{
{
Config: testAccCheckScalewayBaremetalServerConfigMinimal(),
Config: testAccCheckScalewayBaremetalServerBetaConfigMinimal(),
Check: resource.ComposeTestCheckFunc(
testAccCheckScalewayBaremetalServerExists("scaleway_baremetal_server_beta.base"),
testAccCheckScalewayBaremetalServerBetaExists("scaleway_baremetal_server_beta.base"),
resource.TestCheckResourceAttr("scaleway_baremetal_server_beta.base", "name", "namo"),
resource.TestCheckResourceAttr("scaleway_baremetal_server_beta.base", "type", "9eebce52-f7d5-484f-9437-b234164c4c4b"),
resource.TestCheckResourceAttr("scaleway_baremetal_server_beta.base", "image_id", "d17d6872-0412-45d9-a198-af82c34d3c5c"),
Expand All @@ -32,7 +32,7 @@ func TestAccScalewayBaremetalServerMinimal1(t *testing.T) {
})
}

func testAccCheckScalewayBaremetalServerExists(n string) resource.TestCheckFunc {
func testAccCheckScalewayBaremetalServerBetaExists(n string) resource.TestCheckFunc {
return func(s *terraform.State) error {
rs, ok := s.RootModule().Resources[n]
if !ok {
Expand All @@ -53,7 +53,7 @@ func testAccCheckScalewayBaremetalServerExists(n string) resource.TestCheckFunc
}
}

func testAccCheckScalewayBaremetalServerDestroy(s *terraform.State) error {
func testAccCheckScalewayBaremetalServerBetaDestroy(s *terraform.State) error {
for _, rs := range s.RootModule().Resources {
if rs.Type != "scaleway_baremetal_server_beta" {
continue
Expand Down Expand Up @@ -83,7 +83,7 @@ func testAccCheckScalewayBaremetalServerDestroy(s *terraform.State) error {
return nil
}

func testAccCheckScalewayBaremetalServerConfigMinimal() string {
func testAccCheckScalewayBaremetalServerBetaConfigMinimal() string {
return `
resource "scaleway_baremetal_server_beta" "base" {
name = "namo"
Expand Down
2 changes: 1 addition & 1 deletion website/docs/r/baremetal_server.html.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -58,5 +58,5 @@ In addition to all arguments above, the following attributes are exported:
Baremetal servers can be imported using the `{zone}/{id}`, e.g.

```bash
$ terraform import scaleway_baremetal_server_beta.web fr-par-1/11111111-1111-1111-1111-111111111111
$ terraform import scaleway_baremetal_server_beta.web fr-par-2/11111111-1111-1111-1111-111111111111
```

0 comments on commit 102ebad

Please sign in to comment.