Skip to content
This repository has been archived by the owner on Mar 26, 2020. It is now read-only.

Commit

Permalink
Renaming commands folder to utils
Browse files Browse the repository at this point in the history
  • Loading branch information
rishubhjain committed May 21, 2018
1 parent 034fa48 commit 3ed7136
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 7 deletions.
3 changes: 1 addition & 2 deletions glusterd2/commands/peers/addpeer.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,7 @@ func addPeerHandler(w http.ResponseWriter, r *http.Request) {

for key := range req.Metadata {
if strings.HasPrefix(key, "_") {
logger.WithField("metadata-key", key).Error("Key names starting with '_' are restricted in metadata field")
restutils.SendHTTPError(ctx, w, http.StatusInternalServerError, "Key names starting with '_' are restricted in metadata field")
restutils.SendHTTPError(ctx, w, http.StatusInternalServerError, errors.ErrRestrictedKeyFound)
return
}
}
Expand Down
1 change: 1 addition & 0 deletions pkg/errors/error.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,5 @@ var (
ErrUnmarshallFailed = errors.New("failed to unmarshall from json")
ErrClusterNotFound = errors.New("Cluster instance not found in store")
ErrDuplicateBrickPath = errors.New("Duplicate brick entry")
ErrRestrictedKeyFound = errors.New("Key names starting with '_' are restricted in metadata field")
)
43 changes: 43 additions & 0 deletions plugins/device/deviceutils/utils.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package deviceutils

import (
"os/exec"
)

//
func CreatePV(device string) error {

pvcreateCmd := exec.Command("pvcreate", "--metadatasize=128M", "--dataalignment=256K", device)
if err := pvcreateCmd.Run(); err != nil {
return err
}
return nil
}

//
func CreateVG(device string, vgName string) error {

vgcreateCmd := exec.Command("vgcreate", vgName, device)
if err := vgcreateCmd.Run(); err != nil {
return err
}
return nil
}

//
func RemoveVG(vgName string) error {
vgremoveCmd := exec.Command("vgremove", vgName)
if err := vgremoveCmd.Run(); err != nil {
return err
}
return nil
}

//
func RemovePV(device string) error {
pvremoveCmd := exec.Command("pvremove", device)
if err := pvremoveCmd.Run(); err != nil {
return err
}
return nil
}
24 changes: 19 additions & 5 deletions plugins/device/transaction.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package device

import (
"strings"

"github.com/gluster/glusterd2/glusterd2/transaction"
deviceapi "github.com/gluster/glusterd2/plugins/device/api"
"github.com/gluster/glusterd2/plugins/device/cmdexec"
"github.com/gluster/glusterd2/plugins/device/deviceutils"
)

func txnPrepareDevice(c transaction.TxnCtx) error {
Expand All @@ -27,18 +29,30 @@ func txnPrepareDevice(c transaction.TxnCtx) error {
deviceList = append(deviceList, tempDevice)
}

var failedDevice []string
var successDevice []deviceapi.Info
for index, device := range deviceList {
err := cmdexec.DeviceSetup(c, device.Name)
err := deviceutils.CreatePV(device.Name)
if err != nil {
c.Logger().WithError(err).WithField("device", device.Name).Error("Failed to setup device, setting device status to 'DeviceFailed'")
deviceList[index].State = deviceapi.DeviceFailed
c.Logger().WithError(err).WithField("device", device.Name).Error("Failed to create physical volume")
continue
}
vgName := strings.Replace("vg"+device.Name, "/", "-", -1)
err = deviceutils.CreateVG(device.Name, vgName)
if err != nil {
c.Logger().WithError(err).WithField("device", device.Name).Error("Failed to create volume group")
err = deviceutils.RemovePV(device.Name)
if err != nil {
c.Logger().WithError(err).WithField("device", device.Name).Error("Failed to remove physical volume")
failedDevice = append(failedDevice, device.Name)
}
}
c.Logger().WithError(err).WithField("device", device.Name).Error("Setup device successful, setting device status to 'DeviceEnabled'")
deviceList[index].State = deviceapi.DeviceEnabled
successDevice = append(successDevice, deviceList[index])
}

err := AddDevices(deviceList, peerID)
err := AddDevices(successDevice, peerID)
if err != nil {
c.Logger().WithError(err).Error("Couldn't add deviceinfo to store")
return err
Expand Down

0 comments on commit 3ed7136

Please sign in to comment.