init target and luns from config file
This commit is contained in:
+6
-5
@@ -22,7 +22,7 @@ import (
|
||||
"github.com/gostor/gotgt/pkg/api"
|
||||
)
|
||||
|
||||
func NewSCSILu(lun uint64, target *api.SCSITarget) (*api.SCSILu, error) {
|
||||
func NewSCSILu(lun uint64, target *api.SCSITarget, file string) (*api.SCSILu, error) {
|
||||
sbc := NewSBCDevice()
|
||||
backing, err := NewBackingStore("file")
|
||||
if err != nil {
|
||||
@@ -35,13 +35,14 @@ func NewSCSILu(lun uint64, target *api.SCSITarget) (*api.SCSILu, error) {
|
||||
DeviceProtocol: sbc,
|
||||
Storage: backing,
|
||||
BlockShift: api.DefaultBlockShift,
|
||||
Size: 1024 * 1024 * 10,
|
||||
}
|
||||
// hack this
|
||||
if _, err = os.Stat("/var/tmp/disk.img"); err != nil && os.IsExist(err) {
|
||||
panic(err)
|
||||
if finfo, err := os.Stat(file); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
lu.Size = uint64(finfo.Size())
|
||||
}
|
||||
f, err := backing.Open(lu, "/var/tmp/disk.img")
|
||||
f, err := backing.Open(lu, file)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
+10
-6
@@ -23,7 +23,7 @@ import (
|
||||
"github.com/gostor/gotgt/pkg/api"
|
||||
)
|
||||
|
||||
func (s *SCSITargetService) NewSCSITarget(tid int, driverName, name string) (*api.SCSITarget, error) {
|
||||
func (s *SCSITargetService) NewSCSITarget(tid int, driverName, name string, luns []string) (*api.SCSITarget, error) {
|
||||
// verify the target ID
|
||||
|
||||
// verify the target's Name
|
||||
@@ -34,13 +34,17 @@ func (s *SCSITargetService) NewSCSITarget(tid int, driverName, name string) (*ap
|
||||
TID: tid,
|
||||
Devices: []*api.SCSILu{},
|
||||
}
|
||||
lun, err := NewSCSILu(0, target)
|
||||
if err != nil {
|
||||
glog.Errorf("fail to create LU: %v", err)
|
||||
return nil, err
|
||||
var devices = []*api.SCSILu{}
|
||||
for i, ln := range luns {
|
||||
lun, err := NewSCSILu(uint64(i), target, ln)
|
||||
if err != nil {
|
||||
glog.Errorf("fail to create LU: %v", err)
|
||||
return nil, err
|
||||
}
|
||||
devices = append(devices, lun)
|
||||
}
|
||||
s.mutex.Lock()
|
||||
target.Devices = append(target.Devices, lun)
|
||||
target.Devices = devices
|
||||
s.Targets = append(s.Targets, target)
|
||||
s.mutex.Unlock()
|
||||
return target, nil
|
||||
|
||||
Reference in New Issue
Block a user