Skip to content

Commit 9c041fc

Browse files
committed
Merge pull request #43 from QuentinPerez/ip
Ip
2 parents 770d2d5 + c8a72b0 commit 9c041fc

File tree

2 files changed

+31
-20
lines changed

2 files changed

+31
-20
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ More [examples](https://github.com/scaleway/docker-machine-driver-scaleway/tree/
187187

188188
### master (unreleased)
189189

190-
* No entry
190+
* Delete IP only when she has been created by docker-machine
191191

192192
View full [commits list](https://github.com/scaleway/docker-machine-driver-scaleway/compare/v1.2.0...master)
193193

driver/scaleway.go

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ type Driver struct {
4141
image string
4242
ip string
4343
volumes string
44+
IPPersistant bool
4445
stopping bool
4546
created bool
4647
// userDataFile string
@@ -159,27 +160,11 @@ func (d *Driver) GetCreateFlags() []mcnflag.Flag {
159160
}
160161
}
161162

162-
// Create configures and starts a scaleway server
163-
func (d *Driver) Create() (err error) {
164-
var publicKey []byte
165-
var cl *api.ScalewayAPI
166-
167-
log.Infof("Creating SSH key...")
168-
if err = ssh.GenerateSSHKey(d.GetSSHKeyPath()); err != nil {
169-
return err
170-
}
171-
publicKey, err = ioutil.ReadFile(d.GetSSHKeyPath() + ".pub")
172-
if err != nil {
173-
return
174-
}
175-
log.Infof("Creating server...")
176-
cl, err = d.getClient()
177-
if err != nil {
178-
return
179-
}
163+
func (d *Driver) resolveIP(cl *api.ScalewayAPI) (err error) {
180164
if d.ip != "" {
181165
var ips *api.ScalewayGetIPS
182166

167+
d.IPPersistant = true
183168
ips, err = cl.GetIPS()
184169
if err != nil {
185170
return
@@ -219,6 +204,30 @@ func (d *Driver) Create() (err error) {
219204
d.IPAddress = ip.IP.Address
220205
d.IPID = ip.IP.ID
221206
}
207+
return
208+
}
209+
210+
// Create configures and starts a scaleway server
211+
func (d *Driver) Create() (err error) {
212+
var publicKey []byte
213+
var cl *api.ScalewayAPI
214+
215+
log.Infof("Creating SSH key...")
216+
if err = ssh.GenerateSSHKey(d.GetSSHKeyPath()); err != nil {
217+
return err
218+
}
219+
publicKey, err = ioutil.ReadFile(d.GetSSHKeyPath() + ".pub")
220+
if err != nil {
221+
return
222+
}
223+
log.Infof("Creating server...")
224+
cl, err = d.getClient()
225+
if err != nil {
226+
return
227+
}
228+
if err = d.resolveIP(cl); err != nil {
229+
return
230+
}
222231
d.ServerID, err = api.CreateServer(cl, &api.ConfigCreateServer{
223232
ImageName: d.image,
224233
CommercialType: d.CommercialType,
@@ -320,7 +329,9 @@ func (d *Driver) Remove() (err error) {
320329
break
321330
}
322331
}
323-
err = cl.DeleteIP(d.IPID)
332+
if !d.IPPersistant {
333+
err = cl.DeleteIP(d.IPID)
334+
}
324335
return
325336
}
326337

0 commit comments

Comments
 (0)