@@ -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
@@ -131,7 +107,7 @@ func (APIImplementor) ConnectTarget(portal *TargetPortal, iqn string,
131107 return err
132108 }
133109
134- connected , err := target . GetPropertyIsConnected ( )
110+ connected , err := cim . IsISCSITargetConnected ( target )
135111 if err != nil {
136112 return err
137113 }
@@ -143,7 +119,7 @@ func (APIImplementor) ConnectTarget(portal *TargetPortal, iqn string,
143119
144120 targetAuthType := strings .ToUpper (strings .ReplaceAll (authType , "_" , "" ))
145121
146- result , _ , err := cim .ConnectISCSITarget (portal .Address , portal .Port , iqn , targetAuthType , & chapUser , & chapSecret )
122+ result , err := cim .ConnectISCSITarget (portal .Address , portal .Port , iqn , targetAuthType , & chapUser , & chapSecret )
147123 if err != nil {
148124 return fmt .Errorf ("error connecting to target portal. result: %d, err: %w" , result , err )
149125 }
@@ -157,7 +133,7 @@ func (APIImplementor) DisconnectTarget(portal *TargetPortal, iqn string) error {
157133 return err
158134 }
159135
160- connected , err := target . GetPropertyIsConnected ( )
136+ connected , err := cim . IsISCSITargetConnected ( target )
161137 if err != nil {
162138 return fmt .Errorf ("error query connected of target %s from target portal at (%s:%d). err: %w" , iqn , portal .Address , portal .Port , err )
163139 }
@@ -173,24 +149,24 @@ func (APIImplementor) DisconnectTarget(portal *TargetPortal, iqn string) error {
173149 return fmt .Errorf ("error query session of target %s from target portal at (%s:%d). err: %w" , iqn , portal .Address , portal .Port , err )
174150 }
175151
176- sessionIdentifier , err := session . GetPropertySessionIdentifier ( )
152+ sessionIdentifier , err := cim . GetISCSISessionIdentifier ( session )
177153 if err != nil {
178154 return fmt .Errorf ("error query session identifier of target %s from target portal at (%s:%d). err: %w" , iqn , portal .Address , portal .Port , err )
179155 }
180156
181- persistent , err := session . GetPropertyIsPersistent ( )
157+ persistent , err := cim . IsISCSISessionPersistent ( session )
182158 if err != nil {
183159 return fmt .Errorf ("error query session persistency of target %s from target portal at (%s:%d). err: %w" , iqn , portal .Address , portal .Port , err )
184160 }
185161
186162 if persistent {
187- result , err := session . InvokeMethodWithReturn ( "Unregister" )
163+ result , err := cim . UnregisterISCSISession ( session )
188164 if err != nil {
189165 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 )
190166 }
191167 }
192168
193- result , err := target . InvokeMethodWithReturn ( "Disconnect" , sessionIdentifier )
169+ result , err := cim . DisconnectISCSITarget ( target , sessionIdentifier )
194170 if err != nil {
195171 return fmt .Errorf ("error disconnecting target %s from target portal at (%s:%d). result: %d, err: %w" , iqn , portal .Address , portal .Port , result , err )
196172 }
@@ -204,7 +180,7 @@ func (APIImplementor) GetTargetDisks(portal *TargetPortal, iqn string) ([]string
204180 return nil , err
205181 }
206182
207- connected , err := target . GetPropertyIsConnected ( )
183+ connected , err := cim . IsISCSITargetConnected ( target )
208184 if err != nil {
209185 return nil , fmt .Errorf ("error query connected of target %s from target portal at (%s:%d). err: %w" , iqn , portal .Address , portal .Port , err )
210186 }
@@ -232,7 +208,7 @@ func (APIImplementor) GetTargetDisks(portal *TargetPortal, iqn string) ([]string
232208}
233209
234210func (APIImplementor ) SetMutualChapSecret (mutualChapSecret string ) error {
235- result , _ , err := cim .InvokeCimMethod ( cim . WMINamespaceStorage , "MSFT_iSCSISession" , "SetCHAPSecret" , map [ string ] interface {}{ "ChapSecret" : mutualChapSecret } )
211+ result , err := cim .SetISCSISessionChapSecret ( mutualChapSecret )
236212 if err != nil {
237213 return fmt .Errorf ("error setting mutual chap secret. result: %d, err: %v" , result , err )
238214 }
0 commit comments