@@ -21,20 +21,6 @@ func New() APIImplementor {
2121 return APIImplementor {}
2222}
2323
24- func parseTargetPortal (instance * storage.MSFT_iSCSITargetPortal ) (string , uint32 , error ) {
25- portalAddress , err := instance .GetPropertyTargetPortalAddress ()
26- if err != nil {
27- return "" , 0 , fmt .Errorf ("failed parsing target portal address %v. err: %w" , instance , err )
28- }
29-
30- portalPort , err := instance .GetProperty ("TargetPortalPortNumber" )
31- if err != nil {
32- return "" , 0 , fmt .Errorf ("failed parsing target portal port number %v. err: %w" , instance , err )
33- }
34-
35- return portalAddress , uint32 (portalPort .(int32 )), nil
36- }
37-
3824func (APIImplementor ) AddTargetPortal (portal * TargetPortal ) error {
3925 existing , err := cim .QueryISCSITargetPortal (portal .Address , portal .Port , nil )
4026 if cim .IgnoreNotFound (err ) != nil {
@@ -67,26 +53,26 @@ func (APIImplementor) DiscoverTargetPortal(portal *TargetPortal) ([]string, erro
6753
6854 var iqns []string
6955 for _ , target := range targets {
70- iqn , err := target . GetProperty ( "NodeAddress" )
56+ iqn , err := cim . GetISCSITargetNodeAddress ( target )
7157 if err != nil {
7258 return nil , fmt .Errorf ("failed parsing node address of target %v to target portal at (%s:%d). err: %w" , target , portal .Address , portal .Port , err )
7359 }
7460
75- iqns = append (iqns , iqn .( string ) )
61+ iqns = append (iqns , iqn )
7662 }
7763
7864 return iqns , nil
7965}
8066
8167func (APIImplementor ) ListTargetPortals () ([]TargetPortal , error ) {
82- instances , err := cim .ListISCSITargetPortals ([] string { "TargetPortalAddress" , "TargetPortalPortNumber" } )
68+ instances , err := cim .ListISCSITargetPortals (cim . ISCSITargetPortalDefaultSelectorList )
8369 if err != nil {
8470 return nil , err
8571 }
8672
8773 var portals []TargetPortal
8874 for _ , instance := range instances {
89- address , port , err := parseTargetPortal (instance )
75+ address , port , err := cim . ParseISCSITargetPortal (instance )
9076 if err != nil {
9177 return nil , fmt .Errorf ("failed parsing target portal %v. err: %w" , instance , err )
9278 }
@@ -106,19 +92,9 @@ func (APIImplementor) RemoveTargetPortal(portal *TargetPortal) error {
10692 return err
10793 }
10894
109- address , port , err := parseTargetPortal (instance )
110- if err != nil {
111- return fmt .Errorf ("failed to parse target portal %v. error: %v" , instance , err )
112- }
113-
114- result , err := instance .InvokeMethodWithReturn ("Remove" ,
115- nil ,
116- nil ,
117- int (port ),
118- address ,
119- )
95+ result , err := cim .RemoveISCSITargetPortal (instance )
12096 if result != 0 || err != nil {
121- return fmt .Errorf ("error removing target portal at (%s:%d). result: %d, err: %w" , address , port , result , err )
97+ return fmt .Errorf ("error removing target portal at (%s:%d). result: %d, err: %w" , portal . Address , portal . Port , result , err )
12298 }
12399
124100 return nil
@@ -130,7 +106,7 @@ func (APIImplementor) ConnectTarget(portal *TargetPortal, iqn string, authType s
130106 return err
131107 }
132108
133- connected , err := target . GetPropertyIsConnected ( )
109+ connected , err := cim . IsISCSITargetConnected ( target )
134110 if err != nil {
135111 return err
136112 }
@@ -142,7 +118,7 @@ func (APIImplementor) ConnectTarget(portal *TargetPortal, iqn string, authType s
142118
143119 targetAuthType := strings .ToUpper (strings .ReplaceAll (authType , "_" , "" ))
144120
145- result , _ , err := cim .ConnectISCSITarget (portal .Address , portal .Port , iqn , targetAuthType , & chapUser , & chapSecret )
121+ result , err := cim .ConnectISCSITarget (portal .Address , portal .Port , iqn , targetAuthType , & chapUser , & chapSecret )
146122 if err != nil {
147123 return fmt .Errorf ("error connecting to target portal. result: %d, err: %w" , result , err )
148124 }
@@ -156,7 +132,7 @@ func (APIImplementor) DisconnectTarget(portal *TargetPortal, iqn string) error {
156132 return err
157133 }
158134
159- connected , err := target . GetPropertyIsConnected ( )
135+ connected , err := cim . IsISCSITargetConnected ( target )
160136 if err != nil {
161137 return fmt .Errorf ("error query connected of target %s from target portal at (%s:%d). err: %w" , iqn , portal .Address , portal .Port , err )
162138 }
@@ -172,24 +148,24 @@ func (APIImplementor) DisconnectTarget(portal *TargetPortal, iqn string) error {
172148 return fmt .Errorf ("error query session of target %s from target portal at (%s:%d). err: %w" , iqn , portal .Address , portal .Port , err )
173149 }
174150
175- sessionIdentifier , err := session . GetPropertySessionIdentifier ( )
151+ sessionIdentifier , err := cim . GetISCSISessionIdentifier ( session )
176152 if err != nil {
177153 return fmt .Errorf ("error query session identifier of target %s from target portal at (%s:%d). err: %w" , iqn , portal .Address , portal .Port , err )
178154 }
179155
180- persistent , err := session . GetPropertyIsPersistent ( )
156+ persistent , err := cim . IsISCSISessionPersistent ( session )
181157 if err != nil {
182158 return fmt .Errorf ("error query session persistency of target %s from target portal at (%s:%d). err: %w" , iqn , portal .Address , portal .Port , err )
183159 }
184160
185161 if persistent {
186- result , err := session . InvokeMethodWithReturn ( "Unregister" )
162+ result , err := cim . UnregisterISCSISession ( session )
187163 if err != nil {
188164 return fmt .Errorf ("error unregister session on target %s from target portal at (%s:%d). result: %d, err: %w" , iqn , portal .Address , portal .Port , result , err )
189165 }
190166 }
191167
192- result , err := target . InvokeMethodWithReturn ( "Disconnect" , sessionIdentifier )
168+ result , err := cim . DisconnectISCSITarget ( target , sessionIdentifier )
193169 if err != nil {
194170 return fmt .Errorf ("error disconnecting target %s from target portal at (%s:%d). result: %d, err: %w" , iqn , portal .Address , portal .Port , result , err )
195171 }
@@ -203,7 +179,7 @@ func (APIImplementor) GetTargetDisks(portal *TargetPortal, iqn string) ([]string
203179 return nil , err
204180 }
205181
206- connected , err := target . GetPropertyIsConnected ( )
182+ connected , err := cim . IsISCSITargetConnected ( target )
207183 if err != nil {
208184 return nil , fmt .Errorf ("error query connected of target %s from target portal at (%s:%d). err: %w" , iqn , portal .Address , portal .Port , err )
209185 }
@@ -220,18 +196,18 @@ func (APIImplementor) GetTargetDisks(portal *TargetPortal, iqn string) ([]string
220196
221197 var ids []string
222198 for _ , disk := range disks {
223- number , err := disk . GetProperty ( "Number" )
199+ number , err := cim . GetDiskNumber ( disk )
224200 if err != nil {
225201 return nil , fmt .Errorf ("error getting number of disk %v on target %s from target portal at (%s:%d). err: %w" , disk , iqn , portal .Address , portal .Port , err )
226202 }
227203
228- ids = append (ids , strconv .Itoa (int (number .( int32 ) )))
204+ ids = append (ids , strconv .Itoa (int (number )))
229205 }
230206 return ids , nil
231207}
232208
233209func (APIImplementor ) SetMutualChapSecret (mutualChapSecret string ) error {
234- result , _ , err := cim .InvokeCimMethod ( cim . WMINamespaceStorage , "MSFT_iSCSISession" , "SetCHAPSecret" , map [ string ] interface {}{ "ChapSecret" : mutualChapSecret } )
210+ result , err := cim .SetISCSISessionChapSecret ( mutualChapSecret )
235211 if err != nil {
236212 return fmt .Errorf ("error setting mutual chap secret. result: %d, err: %v" , result , err )
237213 }
0 commit comments