blob: 6bc8fd05d74fdf7ee8489c2719cb66d886de7ab0 [file] [log] [blame]
//----------------------------------------------------------------------------
//
// Copyright (C) Intel Corporation, 2007.
//
// File: OpenWsmanClient.cpp
//
// Contents: An implementation of the WsmanClient interface using openwsman
//
//----------------------------------------------------------------------------
#ifndef __OPEN_WSMAN_CLIENT_H
#define __OPEN_WSMAN_CLIENT_H
#include "WsmanClient.h"
struct _WsManClient;
typedef struct _WsManClient WsManClient; // FW declaration of struct
struct WsManClientData;
namespace WsmanClientNamespace
{
class OpenWsmanClient : public WsmanClient
{
private:
WsManClient* cl;
// Copy constructor is declared private
OpenWsmanClient(const OpenWsmanClient& cl);
// operator = is declared private
OpenWsmanClient& operator =(const OpenWsmanClient& cl);
public:
// Construct from params.
OpenWsmanClient(const char *host = "localhost",
const int port = 80,
const char *path = "/wsman",
const char *scheme = "http",
const char *auth_method = "digest",
const char *username = NULL,
const char *password = NULL,
// search for a client proxy address include proxy port
const char *proxy = NULL,
// search for a client proxy user name
const char *proxy_username = NULL,
// search for a client proxy password
const char *proxy_password = NULL
#ifdef _WIN32
// determines which cert store to search
,const bool local = false,
// search for a client cert with this name
const char *cert = NULL,
// search for a client cert with this oid
const char *oid = NULL
#endif
);
// Destructor.
virtual ~OpenWsmanClient();
// Creates a new instance of a resource.
string Create(const string &resourceUri, const string &data) const;
// Identify.
string Identify() const;
// Delete a resource.
void Delete(const string &resourceUri, const NameValuePairs *s = NULL) const;
// Enumerate resource.
void Enumerate(const string &resourceUri, vector<string> &enumRes, const NameValuePairs *s = NULL) const;
void Enumerate(const string & resourceUri, WsmanFilter & filter, vector<string> &enumRes) const;
// Retrieve a resource.
string Get(const string &resourceUri, const NameValuePairs *s = NULL) const;
// Update a resource.
string Put(const string &resourceUri, const string &content, const NameValuePairs *s = NULL) const;
// Invokes a method and returns the results of the method call.
string Invoke(const string &resourceUri, const string &methodName, const string &content, const NameValuePairs *s = NULL) const;
// Submit a subscription
string Subscribe(const string &resourceUri, const SubscribeInfo &info, string &subsContext) const;
// Renew a subscription
string Renew(const string &resourceUri, const string &subsContext, float expire, const NameValuePairs *s = NULL) const;
// Terminate a subscription
void Unsubscribe(const string &resourceUri, const string &subsContext, const NameValuePairs *s = NULL) const;
// Set auth method
void SetAuth(const char *auth_method = "digest");
// Set user name
void SetUserName(const char *user_name);
// Set passsword
void SetPassword(const char *password);
// Set encoding
void SetEncoding(const char *encoding);
// Set CIM namespace
void SetNamespace(const char *ns);
void SetProxy(const char *proxy=NULL, const char *proxy_username=NULL, const char *proxy_password=NULL);
#ifdef _WIN32
// Set client certificate params
void SetClientCert(const char *caOid=NULL, const char *caName=NULL, const bool localCert=false);
#else
// Set server certificate params
void SetServerCert(const char *cainfo=NULL, const char *capath=NULL);
// Set client certificates params
void SetClientCert(const char *cert, const char *key);
#endif
};
} // namespace WsmanClient
#endif