Skip to content

Commit f3f0800

Browse files
authored
Merge pull request #53 from plumgrid/sagheer-dev
port ifc_ctl to PG CLI code base
2 parents 8ebd9aa + e1ed253 commit f3f0800

2 files changed

Lines changed: 12 additions & 45 deletions

File tree

plugin/driver/driver.go

Lines changed: 11 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,18 @@
1515
package driver
1616

1717
import (
18-
"bytes"
1918
"encoding/hex"
2019
"encoding/json"
2120
"fmt"
2221
"io"
2322
"net"
2423
"net/http"
25-
"os/exec"
2624

2725
Log "github.com/Sirupsen/logrus"
2826
"github.com/docker/libnetwork/drivers/remote/api"
2927
"github.com/docker/libnetwork/netlabel"
3028
docker "github.com/fsouza/go-dockerclient"
29+
"github.com/plumgrid/cli/helpers/plumgrid/ifc_ctl"
3130

3231
"github.com/gorilla/mux"
3332
"github.com/vishvananda/netlink"
@@ -202,7 +201,7 @@ func (driver *driver) createEndpoint(w http.ResponseWriter, r *http.Request) {
202201
local := vethPair(endID[:5])
203202
if err := netlink.LinkAdd(local); err != nil {
204203
Log.Error(err)
205-
errorResponsef(w, "could not create veth pair")
204+
errorResponse(w, "could not create veth pair")
206205
return
207206
}
208207
link, _ := netlink.LinkByName(local.PeerName)
@@ -273,30 +272,14 @@ func (driver *driver) joinEndpoint(w http.ResponseWriter, r *http.Request) {
273272
mac := link.Attrs().HardwareAddr.String()
274273
Log.Infof("mac address: %s\n", mac)
275274

276-
//first command {adding port on plumgrid}
277-
cmdStr := "sudo /opt/pg/bin/ifc_ctl gateway add_port " + if_local_name
278-
Log.Infof("addport cmd: %s", cmdStr)
279-
cmd := exec.Command("/bin/sh", "-c", cmdStr)
280-
var addport bytes.Buffer
281-
cmd.Stdout = &addport
282-
if err := cmd.Run(); err != nil {
283-
Log.Error("Error thrown: ", err)
284-
}
285-
Log.Infof("output: %+v\n", addport.String())
286-
287-
//second command {up the port on plumgrid}
288-
cmdStr = "sudo /opt/pg/bin/ifc_ctl gateway ifup " + if_local_name + " access_container cont_" + endID[:8] + " " + mac + " pgtag2=" + bridgeID + " pgtag1=" + domainid
289-
Log.Infof("ifup cmd: %s", cmdStr)
290-
cmd = exec.Command("/bin/sh", "-c", cmdStr)
291-
var ifup bytes.Buffer
292-
cmd.Stdout = &ifup
293-
if err := cmd.Run(); err != nil {
294-
Log.Error("Error thrown: ", err)
275+
// ifc_ctl interface up {Interface Name, Container ID, Domain ID, Bridge ID, MAC address, SE name}
276+
if err := ifc_ctl.PgIfUp(if_local_name, "cont_"+endID[:8], domainid, bridgeID, mac, "gateway"); err != nil {
277+
Log.Error(err)
278+
errorResponse(w, "Unable to on-board container onto PLUMgrid")
295279
}
296-
Log.Infof("output: %+v\n", ifup.String())
297280

298281
if netlink.LinkSetUp(local) != nil {
299-
errorResponsef(w, `unable to bring veth up`)
282+
errorResponse(w, `unable to bring veth up`)
300283
return
301284
}
302285

@@ -329,27 +312,11 @@ func (driver *driver) leaveEndpoint(w http.ResponseWriter, r *http.Request) {
329312

330313
if_local_name := "tap" + l.EndpointID[:5]
331314

332-
//first command {adding port on plumgrid}
333-
cmdStr := "sudo /opt/pg/bin/ifc_ctl gateway ifdown " + if_local_name
334-
Log.Infof("ifdown cmd: %s", cmdStr)
335-
cmd := exec.Command("/bin/sh", "-c", cmdStr)
336-
var ifdown bytes.Buffer
337-
cmd.Stdout = &ifdown
338-
if err := cmd.Run(); err != nil {
339-
Log.Error("Error thrown: ", err)
340-
}
341-
Log.Infof("output: %+v\n", ifdown.String())
342-
343-
//second command {up the port on plumgrid}
344-
cmdStr = "sudo /opt/pg/bin/ifc_ctl gateway del_port " + if_local_name
345-
Log.Infof("delport cmd: %s", cmdStr)
346-
cmd = exec.Command("/bin/sh", "-c", cmdStr)
347-
var delport bytes.Buffer
348-
cmd.Stdout = &delport
349-
if err := cmd.Run(); err != nil {
350-
Log.Error("Error thrown: ", err)
315+
// ifc_ctl interface down {Interface name, SE name}
316+
if err := ifc_ctl.PgIfDown(if_local_name, "gateway"); err != nil {
317+
Log.Error(err)
318+
errorResponse(w, "Unable to off-board container from PLUMgrid")
351319
}
352-
Log.Infof("output: %+v\n", delport.String())
353320

354321
RemoveMetaconfig(domainid, bridgeID, l.EndpointID)
355322

plugin/driver/utils.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func sendError(w http.ResponseWriter, msg string, code int) {
3636
http.Error(w, msg, code)
3737
}
3838

39-
func errorResponsef(w http.ResponseWriter, fmtString string, item ...interface{}) {
39+
func errorResponse(w http.ResponseWriter, fmtString string, item ...interface{}) {
4040
json.NewEncoder(w).Encode(map[string]string{
4141
"Err": fmt.Sprintf(fmtString, item...),
4242
})

0 commit comments

Comments
 (0)