// Copyright (c) Microsoft. All rights reserved. // // This is unpublished source code of Microsoft. // The copyright notice above does not evidence any // actual or intended publication of such source code. // OneLiner : Implementation of MNLBCluster // DevUnit : wlbstest // Author : Murtaza Hakim // include files #include "MNLBCluster.h" #include "MWmiParameter.h" #include "MTrace.h" #include "WTokens.h" #include "wlbsctrl.h" #include "Common.h" #include "MNLBExe.h" #include using namespace std; // constructor // MNLBCluster::MNLBCluster( _bstr_t cip ) : m_clusterIP( cip ), m_pMachine( new MNLBMachine( cip, cip ) ) { TRACE(MTrace::INFO, L"mnlbcluster constructor\n" ); } // default constructor // // note that default constructor is purposely left undefined. // NO one should be using it. It is declared just for vector class usage. // copy constructor // MNLBCluster::MNLBCluster( const MNLBCluster& mcluster ) : m_clusterIP( mcluster.m_clusterIP ), m_pMachine( m_pMachine ) { TRACE(MTrace::INFO, L"mnlbcluster copy constructor\n" ); } // assignment operator // MNLBCluster& MNLBCluster::operator=( const MNLBCluster& rhs ) { m_clusterIP = rhs.m_clusterIP; m_pMachine = rhs.m_pMachine; TRACE(MTrace::INFO, L"mnlbcluster assignment operator\n" ); return *this; } // destructor // MNLBCluster::~MNLBCluster() { TRACE(MTrace::INFO, L"mlbcluster destructor\n" ); } // getClusterProperties // MNLBCluster::MNLBCluster_Error MNLBCluster::getClusterProperties( ClusterProperties* cp ) { m_pMachine->getClusterProperties( cp ); return MNLBCluster_SUCCESS; } // getHosts // MNLBCluster::MNLBCluster_Error MNLBCluster::getHosts( vector* hosts ) { vector< MNLBMachine::HostInfo > hostInfoStore; m_pMachine->getPresentHostsInfo( &hostInfoStore ); for( int i = 0; i < hostInfoStore.size(); ++i ) { hosts->push_back( MNLBHost( m_clusterIP, hostInfoStore[i].hostID ) ); } return MNLBCluster_SUCCESS; } // start // MNLBCluster::MNLBCluster_Error MNLBCluster::start( unsigned long* retVal ) { m_pMachine->start( Common::ALL_HOSTS, retVal ); return MNLBCluster_SUCCESS; } // stop // MNLBCluster::MNLBCluster_Error MNLBCluster::stop( unsigned long* retVal ) { m_pMachine->stop( Common::ALL_HOSTS, retVal ); return MNLBCluster_SUCCESS; } // resume // MNLBCluster::MNLBCluster_Error MNLBCluster::resume( unsigned long* retVal ) { m_pMachine->resume( Common::ALL_HOSTS, retVal ); return MNLBCluster_SUCCESS; } // suspend // MNLBCluster::MNLBCluster_Error MNLBCluster::suspend( unsigned long* retVal ) { m_pMachine->suspend( Common::ALL_HOSTS, retVal ); return MNLBCluster_SUCCESS; } // drainstop // MNLBCluster::MNLBCluster_Error MNLBCluster::drainstop( unsigned long* retVal ) { m_pMachine->drainstop( Common::ALL_HOSTS, retVal ); return MNLBCluster_SUCCESS; } // enable // MNLBCluster::MNLBCluster_Error MNLBCluster::enable( unsigned long* retVal, unsigned long portToAffect ) { m_pMachine->enable( Common::ALL_HOSTS, retVal, portToAffect ); return MNLBCluster_SUCCESS; } // disable // MNLBCluster::MNLBCluster_Error MNLBCluster::disable( unsigned long* retVal, unsigned long portToAffect ) { m_pMachine->disable( Common::ALL_HOSTS, retVal, portToAffect ); return MNLBCluster_SUCCESS; } // drain // MNLBCluster::MNLBCluster_Error MNLBCluster::drain( unsigned long* retVal, unsigned long portToAffect ) { m_pMachine->drain( Common::ALL_HOSTS, retVal, portToAffect ); return MNLBCluster_SUCCESS; } // refreshConnection // MNLBCluster::MNLBCluster_Error MNLBCluster::refreshConnection() { // reestablishing connection. // m_pMachine = auto_ptr (new MNLBMachine( m_clusterIP, m_clusterIP ) ); return MNLBCluster_SUCCESS; }