237 lines
6.9 KiB
C++
237 lines
6.9 KiB
C++
#ifndef COMMONNLB_H
|
|
#define COMMONNLB_H
|
|
|
|
#include "stdafx.h"
|
|
|
|
#include "DataSinkI.h"
|
|
|
|
#include "LeftView.h"
|
|
|
|
#include "MNLBUIData.h"
|
|
#include "MNLBNetCfg.h"
|
|
|
|
#include "Common.h"
|
|
|
|
class CommonNLB
|
|
{
|
|
|
|
public:
|
|
|
|
enum CommonNLB_Error
|
|
{
|
|
CommonNLB_SUCCESS = 0,
|
|
};
|
|
|
|
#if 0
|
|
class NicNLBBound
|
|
{
|
|
public:
|
|
_bstr_t fullNicName;
|
|
_bstr_t adapterGuid;
|
|
_bstr_t friendlyName;
|
|
|
|
bool isDHCPEnabled;
|
|
|
|
vector<_bstr_t> ipsOnNic;
|
|
vector<_bstr_t> subnetMasks;
|
|
|
|
bool isBoundToNLB;
|
|
};
|
|
#endif
|
|
|
|
class NicNLBBound : public NicInfo
|
|
{
|
|
public:
|
|
bool isBoundToNLB;
|
|
};
|
|
|
|
|
|
static
|
|
CommonNLB_Error
|
|
connectToClusterDirectOld( const _bstr_t& clusterIP,
|
|
ClusterData* clusterData,
|
|
DataSinkI* dataSinkObj );
|
|
|
|
static
|
|
CommonNLB_Error
|
|
connectToClusterDirect( const _bstr_t& clusterIP,
|
|
const _bstr_t& hostMember,
|
|
ClusterData* p_clusterData,
|
|
DataSinkI* dataSinkObj );
|
|
|
|
static
|
|
CommonNLB_Error
|
|
connectToClusterIndirect( const _bstr_t& clusterIP,
|
|
const vector<_bstr_t>& connectionIPS,
|
|
ClusterData* clusterData,
|
|
DataSinkI* dataSinkObj );
|
|
|
|
|
|
static
|
|
CommonNLB_Error
|
|
connectToClusterIndirectNew( const _bstr_t& clusterIP,
|
|
const vector<_bstr_t>& connectionIPS,
|
|
vector< ClusterData>* clusterDataStore,
|
|
bool& clusterPropertiesMatched,
|
|
DataSinkI* dataSinkObj );
|
|
|
|
static
|
|
CommonNLB_Error
|
|
connectToMachine( const _bstr_t& machineToConnect,
|
|
_bstr_t& machineServerName,
|
|
vector< NicNLBBound >& nicList,
|
|
DataSinkI* dataSinkObj );
|
|
|
|
|
|
static
|
|
CommonNLB_Error
|
|
changeNLBHostSettings( const ClusterData* oldSettings,
|
|
const ClusterData* newSettings,
|
|
const _bstr_t& machineName,
|
|
DataSinkI* dataSinkObj );
|
|
|
|
static
|
|
CommonNLB_Error
|
|
addHostToClusterOld( const ClusterData* clusterToAddTo,
|
|
const _bstr_t& machineName,
|
|
DataSinkI* dataSinkObj );
|
|
|
|
static
|
|
CommonNLB_Error
|
|
addHostToCluster( const ClusterData* clusterToAddTo,
|
|
const _bstr_t& machineName,
|
|
DataSinkI* dataSinkObj );
|
|
|
|
|
|
static
|
|
CommonNLB_Error
|
|
changeNLBClusterSettings( const ClusterData* oldSettings,
|
|
const ClusterData* newSettings,
|
|
DataSinkI* dataSinkObj );
|
|
|
|
|
|
static
|
|
CommonNLB_Error
|
|
changeNLBHostPortSettings( const ClusterData* oldSettings,
|
|
const ClusterData* newSettings,
|
|
const _bstr_t& machineName,
|
|
DataSinkI* dataSinkObj );
|
|
|
|
static
|
|
CommonNLB_Error
|
|
changeNLBClusterAndPortSettings( const ClusterData* oldSettings,
|
|
const ClusterData* newSettings,
|
|
DataSinkI* dataSinkObj,
|
|
bool* pbClusterIpChanged);
|
|
|
|
static
|
|
CommonNLB_Error
|
|
removeCluster( const ClusterData* clusterSettings,
|
|
DataSinkI* dataSinkObj );
|
|
|
|
static
|
|
CommonNLB_Error
|
|
removeHost( const ClusterData* clusterSettings,
|
|
const _bstr_t& machineName,
|
|
DataSinkI* dataSinkObj );
|
|
|
|
static
|
|
CommonNLB_Error
|
|
runControlMethodOnCluster( const ClusterData* clusterSettings,
|
|
DataSinkI* dataSinkObj,
|
|
const _bstr_t& methodToRun,
|
|
unsigned long portToAffect = Common::ALL_PORTS
|
|
);
|
|
|
|
static
|
|
CommonNLB_Error
|
|
runControlMethodOnHost( const ClusterData* clusterSettings,
|
|
const _bstr_t& machineName,
|
|
DataSinkI* dataSinkObj,
|
|
const _bstr_t& methodToRun,
|
|
unsigned long portToAffect = Common::ALL_PORTS
|
|
);
|
|
|
|
static
|
|
CommonNLB_Error
|
|
getWLBSErrorString( unsigned long retVal,
|
|
_bstr_t& errString );
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
static
|
|
UINT
|
|
DummyThread( LPVOID pParam );
|
|
|
|
static
|
|
UINT
|
|
UnbindThread( LPVOID pParam );
|
|
|
|
static
|
|
UINT
|
|
BindAndConfigureThread( LPVOID pParam );
|
|
|
|
static
|
|
UINT
|
|
ModifyClusterPropertiesThread( LPVOID pParam );
|
|
|
|
static
|
|
CommonNLB_Error
|
|
findPortRulesAddedUnchangedRemovedELB(
|
|
const ClusterData* oldSettings,
|
|
const ClusterData* newSettings,
|
|
DataSinkI* dataSinkObj,
|
|
vector<long>& rulesAdded,
|
|
vector<long>& rulesUnchanged,
|
|
vector<long>& rulesRemoved );
|
|
|
|
static
|
|
CommonNLB_Error
|
|
findPortRulesAddedUnchangedRemovedULB(
|
|
const ClusterData* oldSettings,
|
|
const ClusterData* newSettings,
|
|
DataSinkI* dataSinkObj,
|
|
vector<long>& rulesAdded,
|
|
vector<long>& rulesUnchanged,
|
|
vector<long>& rulesRemoved );
|
|
|
|
static
|
|
CommonNLB_Error
|
|
findPortRulesAddedUnchangedRemovedD(
|
|
const ClusterData* oldSettings,
|
|
const ClusterData* newSettings,
|
|
DataSinkI* dataSinkObj,
|
|
vector<long>& rulesAdded,
|
|
vector<long>& rulesUnchanged,
|
|
vector<long>& rulesRemoved );
|
|
|
|
static
|
|
CommonNLB_Error
|
|
findPortRulesAddedUnchangedRemovedF(
|
|
const ClusterData* oldSettings,
|
|
const ClusterData* newSettings,
|
|
DataSinkI* dataSinkObj,
|
|
vector<long>& rulesAdded,
|
|
vector<long>& rulesUnchanged,
|
|
vector<long>& rulesRemoved );
|
|
|
|
|
|
struct BindAndConfigureParameters
|
|
{
|
|
MNLBNetCfg* nlbNetCfg;
|
|
ClusterData* clusterData;
|
|
_bstr_t* machineName;
|
|
};
|
|
typedef struct BindAndConfigureParameters ModifyClusterPropertiesParameters;
|
|
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|