Create the Storage Policy
Server Connection
The following code fragment uses a vCenter
session cookie to create a Storage Policy Server session.
- Extract the actual cookie value from thename=valueexpression in the cookie string obtained from the vCenter session connection.
- Create aPbmServiceobject.
- Set up a header handler to support adding the vCenter session cookie to the Storage Policy Server connection.
- Retrieve thePbmPortobject for access to the Storage Policy API methods.
- Retrieve the request context and set the endpoint to the Storage Policy Server URL.
- Call thePbmRetrieveServiceContentmethod to establish the HTTP connection to the Storage Policy Server.
Storage Policy Server Connection
// 1. Set the extracted cookie in the PbmPortType // // Need to extract only the cookie value String[] tokens = cookieVal.split(";"); tokens = tokens[0].split("="); String extractedCookie = tokens[1]; // 2. Create a PbmService object. pbmService = new PbmService(); // 3. Setting the header resolver for adding the VC session cookie to the // requests for authentication HeaderHandlerResolver headerResolver = new HeaderHandlerResolver(); headerResolver.addHandler(new VcSessionHandler(extractedCookie)); pbmService.setHandlerResolver(headerResolver); // 4. Retrieve the PbmPort object for access to the Storage Policy API pbmPort = pbmService.getPbmPort(); // 5. Set the Storage Policy Server endpoint Map<String, Object> pbmCtxt = ((BindingProvider) pbmPort).getRequestContext(); pbmCtxt.put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true); pbmCtxt.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, spbmurl.toString()); // 6. Retrieve the service content (creates the connection) pbmServiceContent = pbmPort.pbmRetrieveServiceContent(getPbmServiceInstanceReference());