@@ -80,40 +80,28 @@ func (m maasPlugin) deleteTagsFromNode(systemID string, tags []maas.MAASObject)
80
80
81
81
func (m maasPlugin ) getTagsFromNode (systemID string ) (map [string ]string , error ) {
82
82
ret := map [string ]string {}
83
- nodeListing := m .MaasObj .GetSubObject ("nodes" )
84
- listNodeObjects , err := nodeListing .CallGet ("list" , url.Values {})
83
+ node , err := m .MaasObj .GetSubObject ("nodes" ).GetSubObject (systemID ).Get ()
85
84
if err != nil {
86
85
return nil , err
87
86
}
88
- listNodes , err := listNodeObjects .GetArray ()
89
- for _ , nodeObj := range listNodes {
90
- node , err := nodeObj .GetMAASObject ()
87
+ tags , err := node .GetMap ()["tag_names" ].GetArray ()
88
+ if err != nil {
89
+ return nil , err
90
+ }
91
+ for _ , tagObj := range tags {
92
+ tag , err := tagObj .GetMAASObject ()
91
93
if err != nil {
92
94
return nil , err
93
95
}
94
- id , err := node .GetField ("system_id" )
95
- if id == systemID {
96
- tags , err := node .GetMap ()["tag_names" ].GetArray ()
97
- if err != nil {
98
- return nil , err
99
- }
100
- for _ , tagObj := range tags {
101
- tag , err := tagObj .GetMAASObject ()
102
- if err != nil {
103
- return nil , err
104
- }
105
- tagname , err := tag .GetField ("name" )
106
- if err != nil {
107
- return nil , err
108
- }
109
- tagcomment , err := tag .GetField ("comment" )
110
- if err != nil {
111
- return nil , err
112
- }
113
- ret [tagname ] = tagcomment
114
- }
115
- return ret , nil
96
+ tagname , err := tag .GetField ("name" )
97
+ if err != nil {
98
+ return nil , err
99
+ }
100
+ tagcomment , err := tag .GetField ("comment" )
101
+ if err != nil {
102
+ return nil , err
116
103
}
104
+ ret [tagname ] = tagcomment
117
105
}
118
106
return ret , nil
119
107
}
@@ -234,78 +222,52 @@ func (m maasPlugin) Provision(spec instance.Spec) (*instance.ID, error) {
234
222
235
223
// Label labels the instance
236
224
func (m maasPlugin ) Label (id instance.ID , labels map [string ]string ) error {
237
- nodeListing := m .MaasObj .GetSubObject ("nodes" )
238
- listNodeObjects , err := nodeListing .CallGet ("list" , url.Values {})
225
+ node , err := m .MaasObj .GetSubObject ("nodes" ).GetSubObject (string (id )).Get ()
239
226
if err != nil {
240
227
return err
241
228
}
242
- listNodes , err := listNodeObjects .GetArray ()
243
- for _ , nodeObj := range listNodes {
244
- node , err := nodeObj .GetMAASObject ()
229
+ tagObjs , err := node .GetMap ()["tag_names" ].GetArray ()
230
+ if err != nil {
231
+ return err
232
+ }
233
+ tags := make ([]maas.MAASObject , len (tagObjs ))
234
+ for i , tagObj := range tagObjs {
235
+ tag , err := tagObj .GetMAASObject ()
245
236
if err != nil {
246
237
return err
247
238
}
248
- systemID , err := node .GetField ("system_id" )
249
- if string (id ) == systemID {
250
- tagObjs , err := node .GetMap ()["tag_names" ].GetArray ()
251
- if err != nil {
252
- return err
253
- }
254
- tags := make ([]maas.MAASObject , len (tagObjs ))
255
- for i , tagObj := range tagObjs {
256
- tag , err := tagObj .GetMAASObject ()
257
- if err != nil {
258
- return err
259
- }
260
- tags [i ] = tag
261
- }
262
-
263
- m .deleteTagsFromNode (systemID , tags )
264
- }
239
+ tags [i ] = tag
265
240
}
241
+
242
+ m .deleteTagsFromNode (string (id ), tags )
266
243
return m .addTagsToNode (string (id ), labels )
267
244
}
268
245
269
246
// Destroy terminates an existing instance.
270
247
func (m maasPlugin ) Destroy (id instance.ID ) error {
271
- fmt .Println ("Destroying " , id )
272
- nodeListing := m .MaasObj .GetSubObject ("nodes" )
273
- listNodeObjects , err := nodeListing .CallGet ("list" , url.Values {})
248
+ node , err := m .MaasObj .GetSubObject ("nodes" ).GetSubObject (string (id )).Get ()
274
249
if err != nil {
275
250
return err
276
251
}
277
- listNodes , err := listNodeObjects .GetArray ()
278
- for _ , nodeObj := range listNodes {
279
- node , err := nodeObj .GetMAASObject ()
252
+ tagObjs , err := node .GetMap ()["tag_names" ].GetArray ()
253
+ tags := make ([]maas.MAASObject , len (tagObjs ))
254
+ for i , tagObj := range tagObjs {
255
+ tag , err := tagObj .GetMAASObject ()
280
256
if err != nil {
281
257
return err
282
258
}
283
- systemID , err := node .GetField ("system_id" )
284
- if err != nil {
259
+ tags [i ] = tag
260
+ }
261
+ m .deleteTagsFromNode (string (id ), tags )
262
+ if state , _ := node .GetField ("substatus_name" ); state == "Deploying" {
263
+ params := url.Values {}
264
+ if _ , err = node .CallPost ("abort_operation" , params ); err != nil {
285
265
return err
286
266
}
287
- if systemID == string (id ) {
288
- tagObjs , err := node .GetMap ()["tag_names" ].GetArray ()
289
- tags := make ([]maas.MAASObject , len (tagObjs ))
290
- for i , tagObj := range tagObjs {
291
- tag , err := tagObj .GetMAASObject ()
292
- if err != nil {
293
- return err
294
- }
295
- tags [i ] = tag
296
- }
297
- m .deleteTagsFromNode (string (id ), tags )
298
- if state , _ := node .GetField ("substatus_name" ); state == "Deploying" {
299
- params := url.Values {}
300
- if _ , err = node .CallPost ("abort_operation" , params ); err != nil {
301
- return err
302
- }
303
- }
304
- params := url.Values {}
305
- if _ , err = node .CallPost ("release" , params ); err != nil {
306
- return err
307
- }
308
- }
267
+ }
268
+ params := url.Values {}
269
+ if _ , err = node .CallPost ("release" , params ); err != nil {
270
+ return err
309
271
}
310
272
files , err := ioutil .ReadDir (m .MaasfilesDir )
311
273
if err != nil {
0 commit comments