Skip to content

Commit 11a439a

Browse files
authored
Merge pull request #17 from 27149chen/improve_discoverydb_method
improve discoverydb method
2 parents 4a4d032 + 9ab5bfe commit 11a439a

File tree

3 files changed

+16
-38
lines changed

3 files changed

+16
-38
lines changed

iscsi/iscsi.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -283,18 +283,20 @@ func Connect(c Connector) (string, error) {
283283

284284
if c.DoDiscovery {
285285
// build discoverydb and discover iscsi target
286-
if err := Discovery(p, iFace, c.DiscoverySecrets, c.DoCHAPDiscovery); err != nil {
286+
if err := Discoverydb(p, iFace, c.DiscoverySecrets, c.DoCHAPDiscovery); err != nil {
287287
debug.Printf("Error in discovery of the target: %s\n", err.Error())
288288
lastErr = err
289289
continue
290290
}
291291
}
292292

293-
// Make sure we don't log the secrets
294-
err := CreateDBEntry(target.Iqn, p, iFace, c.DiscoverySecrets, c.SessionSecrets, c.DoCHAPDiscovery)
295-
if err != nil {
296-
debug.Printf("Error creating db entry: %s\n", err.Error())
297-
continue
293+
if c.DoCHAPDiscovery {
294+
// Make sure we don't log the secrets
295+
err := CreateDBEntry(target.Iqn, p, iFace, c.DiscoverySecrets, c.SessionSecrets)
296+
if err != nil {
297+
debug.Printf("Error creating db entry: %s\n", err.Error())
298+
continue
299+
}
298300
}
299301

300302
// perform the login

iscsi/iscsiadm.go

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,8 @@ func ShowInterface(iface string) (string, error) {
8888
}
8989

9090
// CreateDBEntry sets up a node entry for the specified tgt in the nodes iscsi nodes db
91-
func CreateDBEntry(tgtIQN, portal, iFace string, discoverySecrets, sessionSecrets Secrets, chapDiscovery bool) error {
91+
func CreateDBEntry(tgtIQN, portal, iFace string, discoverySecrets, sessionSecrets Secrets) error {
9292
debug.Println("Begin CreateDBEntry...")
93-
if !chapDiscovery {
94-
return nil
95-
}
9693
baseArgs := []string{"-m", "node", "-T", tgtIQN, "-p", portal}
9794
_, err := iscsiCmd(append(baseArgs, []string{"-I", iFace, "-o", "new"}...)...)
9895
if err != nil {
@@ -113,27 +110,17 @@ func CreateDBEntry(tgtIQN, portal, iFace string, discoverySecrets, sessionSecret
113110

114111
}
115112

116-
func updateISCSIDiscoverydb(tp, iface string, discoverySecrets Secrets) error {
117-
baseArgs := []string{"-m", "discoverydb", "-t", "sendtargets", "-p", tp, "-I", iface}
118-
_, err := iscsiCmd(append(baseArgs, []string{"-o", "update", "-n", "discovery.sendtargets.auth.authmethod", "-v", "CHAP"}...)...)
119-
if err != nil {
120-
return fmt.Errorf("failed to update discoverydb with CHAP, err: %v", err)
121-
}
122-
123-
return createCHAPEntries(baseArgs, discoverySecrets, true)
124-
}
125-
126-
// Discovery discover the iscsi target
127-
func Discovery(tp, iface string, discoverySecrets Secrets, chapDiscovery bool) error {
128-
debug.Println("Begin Discovery...")
113+
// Discoverydb discovers the iscsi target
114+
func Discoverydb(tp, iface string, discoverySecrets Secrets, chapDiscovery bool) error {
115+
debug.Println("Begin Discoverydb...")
129116
baseArgs := []string{"-m", "discoverydb", "-t", "sendtargets", "-p", tp, "-I", iface}
130117
out, err := iscsiCmd(append(baseArgs, []string{"-o", "new"}...)...)
131118
if err != nil {
132119
return fmt.Errorf("failed to create new entry of target in discoverydb, output: %v, err: %v", string(out), err)
133120
}
134121

135122
if chapDiscovery {
136-
if err := updateISCSIDiscoverydb(tp, iface, discoverySecrets); err != nil {
123+
if err := createCHAPEntries(baseArgs, discoverySecrets, true); err != nil {
137124
return err
138125
}
139126
}

iscsi/iscsiadm_test.go

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@ iscsiadm: Could not perform SendTargets discovery.\n`,
6565
t.Run(name, func(t *testing.T) {
6666
mockedExitStatus = tt.mockedExitStatus
6767
mockedStdout = tt.mockedStdout
68-
err := Discovery(tt.tgtPortal, tt.iface, tt.discoverySecret, tt.chapDiscovery)
68+
err := Discoverydb(tt.tgtPortal, tt.iface, tt.discoverySecret, tt.chapDiscovery)
6969
if (err != nil) != tt.wantErr {
70-
t.Errorf("Discovery() error = %v, wantErr %v", err, tt.wantErr)
70+
t.Errorf("Discoverydb() error = %v, wantErr %v", err, tt.wantErr)
7171
return
7272
}
7373
})
@@ -82,19 +82,10 @@ func TestCreateDBEntry(t *testing.T) {
8282
iface string
8383
discoverySecret Secrets
8484
sessionSecret Secrets
85-
chapDiscovery bool
8685
wantErr bool
8786
mockedStdout string
8887
mockedExitStatus int
8988
}{
90-
"CreateDBEntrySuccess": {
91-
tgtPortal: "192.168.1.107:3260",
92-
tgtIQN: "iqn.2010-10.org.openstack:volume-eb393993-73d0-4e39-9ef4-b5841e244ced",
93-
iface: "default",
94-
chapDiscovery: false,
95-
mockedStdout: nodeDB,
96-
mockedExitStatus: 0,
97-
},
9889
"CreateDBEntryWithChapDiscoverySuccess": {
9990
tgtPortal: "192.168.1.107:3260",
10091
tgtIQN: "iqn.2010-10.org.openstack:volume-eb393993-73d0-4e39-9ef4-b5841e244ced",
@@ -109,15 +100,13 @@ func TestCreateDBEntry(t *testing.T) {
109100
PasswordIn: "dummypass",
110101
SecretsType: "chap",
111102
},
112-
chapDiscovery: true,
113103
mockedStdout: nodeDB,
114104
mockedExitStatus: 0,
115105
},
116106
"CreateDBEntryWithChapDiscoveryFailure": {
117107
tgtPortal: "172.18.0.2:3260",
118108
tgtIQN: "iqn.2016-09.com.openebs.jiva:store1",
119109
iface: "default",
120-
chapDiscovery: true,
121110
mockedStdout: "iscsiadm: No records found\n",
122111
mockedExitStatus: 21,
123112
wantErr: true,
@@ -128,7 +117,7 @@ func TestCreateDBEntry(t *testing.T) {
128117
t.Run(name, func(t *testing.T) {
129118
mockedExitStatus = tt.mockedExitStatus
130119
mockedStdout = tt.mockedStdout
131-
err := CreateDBEntry(tt.tgtIQN, tt.tgtPortal, tt.iface, tt.discoverySecret, tt.sessionSecret, tt.chapDiscovery)
120+
err := CreateDBEntry(tt.tgtIQN, tt.tgtPortal, tt.iface, tt.discoverySecret, tt.sessionSecret)
132121
if (err != nil) != tt.wantErr {
133122
t.Errorf("CreateDBEntry() error = %v, wantErr %v", err, tt.wantErr)
134123
return

0 commit comments

Comments
 (0)