@@ -139,7 +139,12 @@ func (driver *driver) createNetwork(w http.ResponseWriter, r *http.Request) {
139139 neName := create .Options [netlabel .GenericData ].(map [string ]interface {})["bridge" ]
140140
141141 if neName != nil {
142- AddNetworkInfo (create .NetworkID , neName .(string ), domainid .(string ))
142+ if err := AddNetworkInfo (create .NetworkID , neName .(string ), domainid .(string )); err != nil {
143+ Log .Error (err )
144+ DomainDelete (domainid .(string ))
145+ errorResponse (w , fmt .Sprintf ("Bridge (%s) doesnot exist in doamin (%s)." , neName .(string ), domainid .(string )))
146+ return
147+ }
143148 AddGatewayInfo (create .NetworkID , domainid .(string ), gatewayip )
144149 emptyResponse (w )
145150
@@ -155,7 +160,13 @@ func (driver *driver) createNetwork(w http.ResponseWriter, r *http.Request) {
155160 tm , _ := hex .DecodeString (ipnet .Mask .String ())
156161 netmask := fmt .Sprintf ("%v.%v.%v.%v" , tm [0 ], tm [1 ], tm [2 ], tm [3 ])
157162 Log .Infof ("Adding router interface for : " , router , gatewayip , netmask )
158- CreateNetworkLink (router .(string ), domainid .(string ), create .NetworkID , gatewayip , netmask )
163+ if err := CreateNetworkLink (router .(string ), domainid .(string ), create .NetworkID , gatewayip , netmask ); err != nil {
164+ Log .Error (err )
165+ BridgeDelete (create .NetworkID , domainid .(string ))
166+ DomainDelete (domainid .(string ))
167+ errorResponse (w , fmt .Sprintf ("Router (%s) doesnot exist in doamin (%s)." , router .(string ), domainid .(string )))
168+ return
169+ }
159170 }
160171
161172 emptyResponse (w )
@@ -202,7 +213,7 @@ func (driver *driver) createEndpoint(w http.ResponseWriter, r *http.Request) {
202213 local := vethPair (endID [:5 ])
203214 if err := netlink .LinkAdd (local ); err != nil {
204215 Log .Error (err )
205- errorResponsef (w , "could not create veth pair" )
216+ errorResponse (w , "could not create veth pair" )
206217 return
207218 }
208219 link , _ := netlink .LinkByName (local .PeerName )
@@ -273,7 +284,6 @@ func (driver *driver) joinEndpoint(w http.ResponseWriter, r *http.Request) {
273284 mac := link .Attrs ().HardwareAddr .String ()
274285 Log .Infof ("mac address: %s\n " , mac )
275286
276- //first command {adding port on plumgrid}
277287 cmdStr := "sudo /opt/pg/bin/ifc_ctl gateway add_port " + if_local_name
278288 Log .Infof ("addport cmd: %s" , cmdStr )
279289 cmd := exec .Command ("/bin/sh" , "-c" , cmdStr )
@@ -282,9 +292,12 @@ func (driver *driver) joinEndpoint(w http.ResponseWriter, r *http.Request) {
282292 if err := cmd .Run (); err != nil {
283293 Log .Error ("Error thrown: " , err )
284294 }
285- Log .Infof ("output: %+v\n " , addport .String ())
295+ if addport .String () != "" {
296+ Log .Error (fmt .Errorf (addport .String ()))
297+ errorResponse (w , "Unable to on-board container onto PLUMgrid" )
298+ return
299+ }
286300
287- //second command {up the port on plumgrid}
288301 cmdStr = "sudo /opt/pg/bin/ifc_ctl gateway ifup " + if_local_name + " access_container cont_" + endID [:8 ] + " " + mac + " pgtag2=" + bridgeID + " pgtag1=" + domainid
289302 Log .Infof ("ifup cmd: %s" , cmdStr )
290303 cmd = exec .Command ("/bin/sh" , "-c" , cmdStr )
@@ -293,10 +306,14 @@ func (driver *driver) joinEndpoint(w http.ResponseWriter, r *http.Request) {
293306 if err := cmd .Run (); err != nil {
294307 Log .Error ("Error thrown: " , err )
295308 }
296- Log .Infof ("output: %+v\n " , ifup .String ())
309+ if ifup .String () != "" {
310+ Log .Error (fmt .Errorf (ifup .String ()))
311+ errorResponse (w , "Unable to on-board container onto PLUMgrid" )
312+ return
313+ }
297314
298315 if netlink .LinkSetUp (local ) != nil {
299- errorResponsef (w , ` unable to bring veth up` )
316+ errorResponse (w , " unable to bring veth up" )
300317 return
301318 }
302319
@@ -329,7 +346,6 @@ func (driver *driver) leaveEndpoint(w http.ResponseWriter, r *http.Request) {
329346
330347 if_local_name := "tap" + l .EndpointID [:5 ]
331348
332- //first command {adding port on plumgrid}
333349 cmdStr := "sudo /opt/pg/bin/ifc_ctl gateway ifdown " + if_local_name
334350 Log .Infof ("ifdown cmd: %s" , cmdStr )
335351 cmd := exec .Command ("/bin/sh" , "-c" , cmdStr )
@@ -338,9 +354,11 @@ func (driver *driver) leaveEndpoint(w http.ResponseWriter, r *http.Request) {
338354 if err := cmd .Run (); err != nil {
339355 Log .Error ("Error thrown: " , err )
340356 }
341- Log .Infof ("output: %+v\n " , ifdown .String ())
357+ if ifdown .String () != "" {
358+ Log .Error (fmt .Errorf (ifdown .String ()))
359+ errorResponse (w , "Unable to off-board container from PLUMgrid" )
360+ }
342361
343- //second command {up the port on plumgrid}
344362 cmdStr = "sudo /opt/pg/bin/ifc_ctl gateway del_port " + if_local_name
345363 Log .Infof ("delport cmd: %s" , cmdStr )
346364 cmd = exec .Command ("/bin/sh" , "-c" , cmdStr )
@@ -350,6 +368,10 @@ func (driver *driver) leaveEndpoint(w http.ResponseWriter, r *http.Request) {
350368 Log .Error ("Error thrown: " , err )
351369 }
352370 Log .Infof ("output: %+v\n " , delport .String ())
371+ if delport .String () != "" {
372+ Log .Error (fmt .Errorf (delport .String ()))
373+ errorResponse (w , "Unable to off-board container from PLUMgrid" )
374+ }
353375
354376 RemoveMetaconfig (domainid , bridgeID , l .EndpointID )
355377
0 commit comments