Skip to content

Commit

Permalink
feat(iscsi-resync): v0.5.2 resync to kubernetes-csi/csi-lib-iscsi
Browse files Browse the repository at this point in the history
Signed-off-by: Joe Skazinski <joseph.skazinski@seagate.com>
  • Loading branch information
jskazinski committed Sep 3, 2021
1 parent c004506 commit 760493c
Show file tree
Hide file tree
Showing 9 changed files with 456 additions and 1,377 deletions.
57 changes: 25 additions & 32 deletions example/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,40 +11,31 @@ import (
)

var (
portals = flag.String("portals", "192.168.1.112:3260", "Comma delimited. Eg: 1.1.1.1,2.2.2.2")
iqn = flag.String("iqn", "iqn.2010-10.org.openstack:volume-95739000-1557-44f8-9f40-e9d29fe6ec47", "")
username = flag.String("username", "3aX7EEf3CEgvESQG75qh", "")
password = flag.String("password", "eJBDC7Bt7WE3XFDq", "")
lun = flag.Int("lun", 1, "")
debug = flag.Bool("debug", false, "enable logging")
portals = flag.String("portals", "192.168.1.112:3260", "Comma delimited. Eg: 1.1.1.1,2.2.2.2")
iqn = flag.String("iqn", "iqn.2010-10.org.openstack:volume-95739000-1557-44f8-9f40-e9d29fe6ec47", "")
multipath = flag.Bool("multipath", false, "")
username = flag.String("username", "3aX7EEf3CEgvESQG75qh", "")
password = flag.String("password", "eJBDC7Bt7WE3XFDq", "")
lun = flag.Int("lun", 1, "")
debug = flag.Bool("debug", false, "enable logging")
)

func main() {
flag.Parse()
tgtps := strings.Split(*portals, ",")
tgtp := strings.Split(*portals, ",")
if *debug {
iscsi.EnableDebugLogging(os.Stdout)
}

var targets []iscsi.TargetInfo

for _, tgtp := range tgtps {
parts := strings.Split(tgtp, ":")
targets = append(targets, iscsi.TargetInfo{
// Specify the target iqn we're dealing with
Iqn: *iqn,
Portal: parts[0],
Port: parts[1],
})
}

// You can utilize the iscsiadm calls directly if you wish, but by creating a Connector
// you can simplify interactions to simple calls like "Connect" and "Disconnect"
c := &iscsi.Connector{
c := iscsi.Connector{
// Our example uses chap
AuthType: "chap",
// List of targets must be >= 1 (>1 signals multipath/mpio)
Targets: targets,
// Specify the target iqn we're dealing with
TargetIqn: *iqn,
// List of portals must be >= 1 (>1 signals multipath/mpio)
TargetPortals: tgtp,
// CHAP can be setup up for discovery as well as sessions, our example
// device only uses CHAP security for sessions, for those that use Discovery
// as well, we'd add a DiscoverySecrets entry the same way
Expand All @@ -54,6 +45,8 @@ func main() {
SecretsType: "chap"},
// Lun is the lun number the devices uses for exports
Lun: int32(*lun),
// Multipath indicates that we want to configure this connection as a multipath device
Multipath: *multipath,
// Number of times we check for device path, waiting for CheckInterval seconds inbetween each check (defaults to 10 if omitted)
RetryCount: 11,
// CheckInterval is the time in seconds to wait inbetween device path checks when logging in to a target
Expand All @@ -62,21 +55,21 @@ func main() {

// Now we can just issue a connection request using our Connector
// A succesful connection will include the device path to access our iscsi volume
path, err := c.Connect()
path, err := iscsi.Connect(c)
if err != nil {
log.Printf("Error returned from c.Connect: %s", err.Error())
log.Printf("Error returned from iscsi.Connect: %s", err.Error())
os.Exit(1)
}

log.Printf("Connected device at path: %s\n", path)
time.Sleep(3 * time.Second)

// This will disconnect the volume
if err := c.DisconnectVolume(); err != nil {
log.Printf("Error returned from c.DisconnectVolume: %s", err.Error())
if path == "" {
log.Printf("Failed to connect, didn't receive a path, but also no error!")
os.Exit(1)
}

// This will disconnect the session as well as clear out the iscsi DB entries associated with it
c.Disconnect()
log.Printf("Connected device at path: %s\n", path)
time.Sleep(3 * time.Second)

// Disconnect is easy as well, we don't need the full Connector any more, just the Target IQN and the Portals
/// this should disconnect the volume as well as clear out the iscsi DB entries associated with it
iscsi.Disconnect(c.TargetIqn, c.TargetPortals)
}
7 changes: 1 addition & 6 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
module github.com/kubernetes-csi/csi-lib-iscsi

go 1.15

require (
github.com/prashantv/gostub v1.0.0
github.com/stretchr/testify v1.7.0
)
go 1.16
13 changes: 0 additions & 13 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,13 +0,0 @@
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/prashantv/gostub v1.0.0 h1:wTzvgO04xSS3gHuz6Vhuo0/kvWelyJxwNS0IRBPAwGY=
github.com/prashantv/gostub v1.0.0/go.mod h1:dP1v6T1QzyGJJKFocwAU0lSZKpfjstjH8TlhkEU0on0=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
Loading

0 comments on commit 760493c

Please sign in to comment.