@@ -21,14 +21,17 @@ import (
21
21
"errors"
22
22
"fmt"
23
23
"io"
24
+ "log"
24
25
"net/http"
25
26
"net/url"
26
27
"strings"
27
28
"sync"
28
29
"time"
29
30
31
+ "github.com/vmware/govmomi/session"
30
32
"github.com/vmware/govmomi/vapi/rest"
31
33
"github.com/vmware/govmomi/vapi/tags"
34
+ "github.com/vmware/govmomi/vim25"
32
35
"github.com/vmware/govmomi/vim25/mo"
33
36
"github.com/vmware/govmomi/vim25/types"
34
37
"github.com/vmware/govmomi/vim25/xml"
@@ -147,17 +150,42 @@ func newClientWithTimeout(ctx context.Context, u *url.URL, insecure bool, timeou
147
150
clientCreateCtx , clientCreateCtxCancel := context .WithTimeout (ctx , timeout )
148
151
defer clientCreateCtxCancel ()
149
152
// It makes call to vcenter during new client creation, so pass context with timeout there.
150
- client , err := govmomi .NewClient (clientCreateCtx , u , insecure )
151
- if err != nil {
152
- return nil , err
153
- }
153
+ /*
154
+ client, err := govmomi.NewClient(clientCreateCtx, u, insecure)
155
+ if err != nil {
156
+ return nil, err
157
+ }
158
+
159
+ */
154
160
155
161
customTransport := & CustomTransport {
156
162
RoundTripper : http .DefaultTransport ,
157
163
}
158
164
165
+ soapClient := soap .NewClient (u , insecure )
166
+ soapClient .Transport = customTransport
167
+
168
+ // Create vim25 client
169
+ vimClient , err := vim25 .NewClient (clientCreateCtx , soapClient )
170
+ if err != nil {
171
+ log .Fatalf ("Failed to create vim25 client: %v" , err )
172
+ }
173
+
174
+ // Create govmomi client
175
+ client := & govmomi.Client {
176
+ Client : vimClient ,
177
+ SessionManager : session .NewManager (vimClient ),
178
+ }
179
+
180
+ // Login to vSphere
181
+ err = client .Login (ctx , u .User )
182
+ if err != nil {
183
+ log .Fatalf ("Failed to login to vSphere: %v" , err )
184
+ }
185
+ defer client .Logout (clientCreateCtx )
186
+
159
187
// Create SOAP client with custom transport
160
- client .Transport = customTransport
188
+ // client.Transport = customTransport
161
189
162
190
client .Timeout = timeout
163
191
return client , nil
0 commit comments