@@ -247,7 +247,7 @@ func (driver *driver) joinEndpoint(w http.ResponseWriter, r *http.Request) {
247247 domainid = default_vd
248248 }
249249 gatewayIP := FindNetworkGateway (domainid , netID )
250- // create and attach local name to the bridge
250+
251251 local := vethPair (endID [:5 ])
252252 if err := netlink .LinkAdd (local ); err != nil {
253253 Log .Error (err )
@@ -257,42 +257,31 @@ func (driver *driver) joinEndpoint(w http.ResponseWriter, r *http.Request) {
257257
258258 if_local_name := "tap" + endID [:5 ]
259259
260- //getting mac address of tap...
261- cmdStr0 := "ifconfig " + local .PeerName + " | awk '/HWaddr/ {print $NF}'"
262- Log .Infof ("mac address cmd: %s" , cmdStr0 )
263- cmd0 := exec .Command ("/bin/sh" , "-c" , cmdStr0 )
264- var out0 bytes.Buffer
265- cmd0 .Stdout = & out0
266- err0 := cmd0 .Run ()
267- if err0 != nil {
268- Log .Error ("Error thrown: " , err0 )
269- }
270- mac := out0 .String ()
260+ link , _ := netlink .LinkByName (local .PeerName )
261+ mac := link .Attrs ().HardwareAddr .String ()
271262 Log .Infof ("output of cmd: %s\n " , mac )
272263
273264 //first command {adding port on plumgrid}
274- cmdStr1 := "sudo /opt/pg/bin/ifc_ctl gateway add_port " + if_local_name
275- Log .Infof ("second cmd: %s" , cmdStr1 )
276- cmd1 := exec .Command ("/bin/sh" , "-c" , cmdStr1 )
277- var out1 bytes.Buffer
278- cmd1 .Stdout = & out1
279- err1 := cmd1 .Run ()
280- if err1 != nil {
281- Log .Error ("Error thrown: " , err1 )
265+ cmdStr := "sudo /opt/pg/bin/ifc_ctl gateway add_port " + if_local_name
266+ Log .Infof ("second cmd: %s" , cmdStr )
267+ cmd := exec .Command ("/bin/sh" , "-c" , cmdStr )
268+ var addport bytes.Buffer
269+ cmd .Stdout = & addport
270+ if err := cmd .Run (); err != nil {
271+ Log .Error ("Error thrown: " , err )
282272 }
283- Log .Infof ("output of cmd: %+v\n " , out1 .String ())
273+ Log .Infof ("output of cmd: %+v\n " , addport .String ())
284274
285275 //second command {up the port on plumgrid}
286- cmdStr2 := "sudo /opt/pg/bin/ifc_ctl gateway ifup " + if_local_name + " access_container cont_" + endID [:2 ] + " " + mac [:17 ] + " pgtag2=" + bridgeID + " pgtag1=" + domainid
287- Log .Infof ("third cmd: %s" , cmdStr2 )
288- cmd2 := exec .Command ("/bin/sh" , "-c" , cmdStr2 )
289- var out2 bytes.Buffer
290- cmd2 .Stdout = & out2
291- err2 := cmd2 .Run ()
292- if err2 != nil {
293- Log .Error ("Error thrown: " , err2 )
276+ cmdStr = "sudo /opt/pg/bin/ifc_ctl gateway ifup " + if_local_name + " access_container cont_" + endID [:8 ] + " " + mac + " pgtag2=" + bridgeID + " pgtag1=" + domainid
277+ Log .Infof ("third cmd: %s" , cmdStr )
278+ cmd = exec .Command ("/bin/sh" , "-c" , cmdStr )
279+ var ifup bytes.Buffer
280+ cmd .Stdout = & ifup
281+ if err := cmd .Run (); err != nil {
282+ Log .Error ("Error thrown: " , err )
294283 }
295- Log .Infof ("output of cmd: %+v\n " , out2 .String ())
284+ Log .Infof ("output of cmd: %+v\n " , ifup .String ())
296285
297286 if netlink .LinkSetUp (local ) != nil {
298287 errorResponsef (w , `unable to bring veth up` )
@@ -309,7 +298,7 @@ func (driver *driver) joinEndpoint(w http.ResponseWriter, r *http.Request) {
309298 Gateway : gatewayIP ,
310299 }
311300
312- AddMetaconfig (domainid , bridgeID , j .SandboxKey [22 :], endID , mac [: 17 ] )
301+ AddMetaconfig (domainid , bridgeID , j .SandboxKey [22 :], endID , mac )
313302
314303 objectResponse (w , res )
315304 Log .Infof ("Join endpoint %s:%s to %s" , j .NetworkID , j .EndpointID , j .SandboxKey )
@@ -329,28 +318,26 @@ func (driver *driver) leaveEndpoint(w http.ResponseWriter, r *http.Request) {
329318 if_local_name := "tap" + l .EndpointID [:5 ]
330319
331320 //first command {adding port on plumgrid}
332- cmdStr1 := "sudo /opt/pg/bin/ifc_ctl gateway ifdown " + if_local_name
333- Log .Infof ("second cmd: %s" , cmdStr1 )
334- cmd1 := exec .Command ("/bin/sh" , "-c" , cmdStr1 )
335- var out1 bytes.Buffer
336- cmd1 .Stdout = & out1
337- err1 := cmd1 .Run ()
338- if err1 != nil {
339- Log .Error ("Error thrown: " , err1 )
321+ cmdStr := "sudo /opt/pg/bin/ifc_ctl gateway ifdown " + if_local_name
322+ Log .Infof ("second cmd: %s" , cmdStr )
323+ cmd := exec .Command ("/bin/sh" , "-c" , cmdStr )
324+ var ifdown bytes.Buffer
325+ cmd .Stdout = & ifdown
326+ if err := cmd .Run (); err != nil {
327+ Log .Error ("Error thrown: " , err )
340328 }
341- Log .Infof ("output of cmd: %+v\n " , out1 .String ())
329+ Log .Infof ("output of cmd: %+v\n " , ifdown .String ())
342330
343331 //second command {up the port on plumgrid}
344- cmdStr2 := "sudo /opt/pg/bin/ifc_ctl gateway del_port " + if_local_name
345- Log .Infof ("third cmd: %s" , cmdStr2 )
346- cmd2 := exec .Command ("/bin/sh" , "-c" , cmdStr2 )
347- var out2 bytes.Buffer
348- cmd2 .Stdout = & out2
349- err2 := cmd2 .Run ()
350- if err2 != nil {
351- Log .Error ("Error thrown: " , err2 )
332+ cmdStr = "sudo /opt/pg/bin/ifc_ctl gateway del_port " + if_local_name
333+ Log .Infof ("third cmd: %s" , cmdStr )
334+ cmd = exec .Command ("/bin/sh" , "-c" , cmdStr )
335+ var delport bytes.Buffer
336+ cmd .Stdout = & delport
337+ if err := cmd .Run (); err != nil {
338+ Log .Error ("Error thrown: " , err )
352339 }
353- Log .Infof ("output of cmd: %+v\n " , out2 .String ())
340+ Log .Infof ("output of cmd: %+v\n " , delport .String ())
354341
355342 local := vethPair (l .EndpointID [:5 ])
356343 if err := netlink .LinkDel (local ); err != nil {
0 commit comments