Skip to content

Commit edc280a

Browse files
committed
add/update admin pass on server; change key pair format from map to string
1 parent 04a9d47 commit edc280a

1 file changed

Lines changed: 21 additions & 7 deletions

File tree

builtin/providers/openstack/resource_openstack_compute_instance.go

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,12 @@ func resourceComputeInstance() *schema.Resource {
9393
ForceNew: true,
9494
},
9595

96+
"admin_pass": &schema.Schema{
97+
Type: schema.TypeString,
98+
Optional: true,
99+
ForceNew: false,
100+
},
101+
96102
"access_ip_v4": &schema.Schema{
97103
Type: schema.TypeString,
98104
Computed: true,
@@ -108,7 +114,7 @@ func resourceComputeInstance() *schema.Resource {
108114
},
109115

110116
"key_pair": &schema.Schema{
111-
Type: schema.TypeMap,
117+
Type: schema.TypeString,
112118
Optional: true,
113119
ForceNew: true,
114120
},
@@ -131,14 +137,13 @@ func resourceComputeInstanceCreate(d *schema.ResourceData, meta interface{}) err
131137
Networks: resourceInstanceNetworks(d),
132138
Metadata: resourceInstanceMetadata(d),
133139
ConfigDrive: d.Get("config_drive").(bool),
140+
AdminPass: d.Get("admin_pass").(string),
134141
}
135142

136-
if kp, ok := d.Get("key_pair").(map[string]interface{}); ok && kp != nil {
137-
if keyName, ok := kp["name"].(string); ok && keyName != "" {
138-
createOpts = &keypairs.CreateOptsExt{
139-
serverCreateOpts,
140-
keyName,
141-
}
143+
if keyName, ok := d.Get("key_pair").(string); ok && keyName != "" {
144+
createOpts = &keypairs.CreateOptsExt{
145+
serverCreateOpts,
146+
keyName,
142147
}
143148
}
144149

@@ -308,6 +313,15 @@ func resourceComputeInstanceUpdate(d *schema.ResourceData, meta interface{}) err
308313
}
309314
}
310315

316+
if d.HasChange("admin_pass") {
317+
if newPwd, ok := d.Get("admin_pass").(string); ok {
318+
err := servers.ChangeAdminPassword(osClient, d.Id(), newPwd).ExtractErr()
319+
if err != nil {
320+
return fmt.Errorf("Error changing admin password of OpenStack server (%s): %s", d.Id(), err)
321+
}
322+
}
323+
}
324+
311325
if d.HasChange("flavor_ref") {
312326
resizeOpts := &servers.ResizeOpts{
313327
FlavorRef: d.Get("flavor_ref").(string),

0 commit comments

Comments
 (0)