You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by db...@apache.org on 2018/02/06 19:23:25 UTC
[06/11] trafodion git commit: [TRAFODION-2650] Restructured Trafodion
Configuration code into separate directory structure.
http://git-wip-us.apache.org/repos/asf/trafodion/blob/87849fcf/core/sqf/monitor/linux/tcdbsqlite.h
----------------------------------------------------------------------
diff --git a/core/sqf/monitor/linux/tcdbsqlite.h b/core/sqf/monitor/linux/tcdbsqlite.h
deleted file mode 100644
index 5659f31..0000000
--- a/core/sqf/monitor/linux/tcdbsqlite.h
+++ /dev/null
@@ -1,130 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-// @@@ START COPYRIGHT @@@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-// @@@ END COPYRIGHT @@@
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef TCDBSQLITE_H_
-#define TCDBSQLITE_H_
-
-#include <stdlib.h>
-#include <sqlite3.h>
-#include "trafconfig.h"
-#include "tcdbstore.h"
-
-class CTcdbSqlite : public CTcdbStore
-{
-public:
-
- CTcdbSqlite( void );
- ~CTcdbSqlite( void );
-
- int Close( void );
- int AddRegistryKey( const char *key );
- int AddRegistryProcess( const char *name );
- int AddRegistryClusterData( const char *key, const char *dataValue );
- int AddRegistryProcessData( const char *procName
- , const char *key
- , const char *dataValue );
- int AddUniqueString( int nid, int id, const char *uniqStr );
- int DeleteNodeData( int pnid );
- int DeleteUniqueString( int nid );
- int GetNode( int nid
- , node_configuration_t &nodeConfig );
- int GetNode( const char *name
- , node_configuration_t &nodeConfig );
- int GetNodes( int &count
- , int max
- , node_configuration_t nodeConfig[] );
- int GetPNode( int pnid
- , physical_node_configuration_t &pnodeConfig );
- int GetPNode( const char *name
- , physical_node_configuration_t &pnodeConfig );
- int GetSNodes( int &count
- , int max
- , physical_node_configuration_t pNodeConfig[] );
- int GetPersistProcess( const char *persistPrefix
- , persist_configuration_t &persistConfig );
- int GetPersistProcessKeys( const char *persistProcessKeys );
- int GetRegistryClusterSet( int &count
- , int max
- , registry_configuration_t registryConfig[] );
- int GetRegistryProcessSet( int &count
- , int max
- , registry_configuration_t registryConfig[] );
- int GetUniqueString( int nid, int id, const char *uniqStr );
- int GetUniqueStringId( int nid
- , const char *uniqStr
- , int &id );
- int GetUniqueStringIdMax( int nid, int &id );
- int Initialize( void );
- inline bool IsInitialized( void ) { return( (db_ != NULL) ); }
- int SaveLNodeData( int nid
- , int pnid
- , int firstCore
- , int lastCore
- , int processors
- , int roles );
- int SavePNodeData( const char *name
- , int pnid
- , int excludedFirstCore
- , int excludedLastCore );
- int UpdatePNodeConfig( int pnid
- , const char *name
- , int excludedFirstCore
- , int excludedLastCore );
-
-protected:
-private:
- int GetSNodeData( int pnid
- , const char *nodename
- , int excfirstcore
- , int exclastcore
- , physical_node_configuration_t &spareNodeConfig );
- void SetLNodeData( int nid
- , int pnid
- , const char *nodename
- , int excfirstcore
- , int exclastcore
- , int firstcore
- , int lastcore
- , int processors
- , int roles
- , node_configuration_t &nodeConfig );
- void SetPNodeData( int pnid
- , const char *nodename
- , int excfirstcore
- , int exclastcore
- , physical_node_configuration_t &pnodeConfig );
- int SetPersistProcessData( const char *persistkey
- , const char *persistvalue
- , persist_configuration_t &persistConfig );
- int UpdatePNodeData( int pnid
- , const char *name
- , int excludedFirstCore
- , int excludedLastCore );
-
- sqlite3 *db_;
-};
-
-
-#endif /* TCDBSQLITE_H_ */
http://git-wip-us.apache.org/repos/asf/trafodion/blob/87849fcf/core/sqf/monitor/linux/tcdbstore.cxx
----------------------------------------------------------------------
diff --git a/core/sqf/monitor/linux/tcdbstore.cxx b/core/sqf/monitor/linux/tcdbstore.cxx
deleted file mode 100644
index aed2469..0000000
--- a/core/sqf/monitor/linux/tcdbstore.cxx
+++ /dev/null
@@ -1,55 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-// @@@ START COPYRIGHT @@@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-// @@@ END COPYRIGHT @@@
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#include <stdlib.h>
-#include <string.h>
-#include <cctype>
-#include <string>
-
-using namespace std;
-
-#include "tclog.h"
-#include "tctrace.h"
-#include "tcdbstore.h"
-
-///////////////////////////////////////////////////////////////////////////////
-// Cluster Configuration
-///////////////////////////////////////////////////////////////////////////////
-
-CTcdbStore::CTcdbStore( TC_STORAGE_TYPE dbStorageType )
- : dbStorageType_(dbStorageType)
-{
- const char method_name[] = "CTcdbStore::CTcdbStore";
- TRACE_ENTRY;
- TRACE_EXIT;
-}
-
-CTcdbStore::~CTcdbStore ( void )
-{
- const char method_name[] = "CTcdbStore::~CTcdbStore";
- TRACE_ENTRY;
- TRACE_EXIT;
-}
-
http://git-wip-us.apache.org/repos/asf/trafodion/blob/87849fcf/core/sqf/monitor/linux/tcdbstore.h
----------------------------------------------------------------------
diff --git a/core/sqf/monitor/linux/tcdbstore.h b/core/sqf/monitor/linux/tcdbstore.h
deleted file mode 100644
index 50814e0..0000000
--- a/core/sqf/monitor/linux/tcdbstore.h
+++ /dev/null
@@ -1,113 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-// @@@ START COPYRIGHT @@@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-// @@@ END COPYRIGHT @@@
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef TCDBSTORE_H_
-#define TCDBSTORE_H_
-
-#include "zookeeper/zookeeper.h"
-#include "trafconfig.h"
-
-using namespace std;
-
-
-//
-// Trafodion Configuration Database Adaptor (CTcdbStore class)
-//
-// Implements common interface to storage classes used by the
-// Trafodion Configuration API (trafconfig.cxx/.h).
-//
-
-class CTcdbStore
-{
-protected:
- int eyecatcher_; // Debuggging aid -- leave as first
- // member variable of the class
-public:
-
- CTcdbStore( TC_STORAGE_TYPE dbStorageType );
- virtual ~CTcdbStore( void );
-
- virtual int Close( void ) = 0;
- virtual int AddRegistryKey( const char *key ) = 0;
- virtual int AddRegistryProcess( const char *name ) = 0;
- virtual int AddRegistryClusterData( const char *key
- , const char *dataValue ) = 0;
- virtual int AddRegistryProcessData( const char *procName
- , const char *key
- , const char *dataValue ) = 0;
- virtual int AddUniqueString( int nid
- , int id
- , const char *uniqStr ) = 0;
- virtual int DeleteNodeData( int pnid ) = 0;
- virtual int DeleteUniqueString( int nid ) = 0;
- virtual int GetNode( int nid
- , node_configuration_t &nodeConfig ) = 0;
- virtual int GetNode( const char *name
- , node_configuration_t &nodeConfig ) = 0;
- virtual int GetNodes( int &count
- , int max
- , node_configuration_t nodeConfig[] ) = 0;
- virtual int GetPNode( int pnid
- , physical_node_configuration_t &pnodeConfig ) = 0;
- virtual int GetPNode( const char *name
- , physical_node_configuration_t &pnodeConfig ) = 0;
- virtual int GetSNodes( int &count
- , int max
- , physical_node_configuration_t pNodeConfig[] ) = 0;
- virtual int GetPersistProcess( const char *persistPrefix
- , persist_configuration_t &persistConfig ) = 0;
- virtual int GetPersistProcessKeys( const char *persistProcessKeys ) = 0;
- virtual int GetRegistryClusterSet( int &count
- , int max
- , registry_configuration_t registryConfig[] ) = 0;
- virtual int GetRegistryProcessSet( int &count
- , int max
- , registry_configuration_t registryConfig[] ) = 0;
- virtual int GetUniqueString( int nid, int id, const char *uniqStr ) = 0;
- virtual int GetUniqueStringId( int nid
- , const char *uniqStr
- , int &id ) = 0;
- virtual int GetUniqueStringIdMax( int nid, int &id ) = 0;
- inline TC_STORAGE_TYPE GetStorageType( void ) { return( dbStorageType_ ); }
- virtual int Initialize( void ) = 0;
- virtual bool IsInitialized( void ) = 0;
- virtual int SaveLNodeData( int nid
- , int pnid
- , int firstCore
- , int lastCore
- , int processors
- , int roles ) = 0;
- virtual int SavePNodeData( const char *name
- , int pnid
- , int excludedFirstCore
- , int excludedLastCore ) = 0;
-
-protected:
- TC_STORAGE_TYPE dbStorageType_;
-private:
-};
-
-
-#endif /* TCDBSTORE_H_ */
http://git-wip-us.apache.org/repos/asf/trafodion/blob/87849fcf/core/sqf/monitor/linux/tcdbzstore.cxx
----------------------------------------------------------------------
diff --git a/core/sqf/monitor/linux/tcdbzstore.cxx b/core/sqf/monitor/linux/tcdbzstore.cxx
deleted file mode 100644
index 4422e22..0000000
--- a/core/sqf/monitor/linux/tcdbzstore.cxx
+++ /dev/null
@@ -1,2192 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-// @@@ START COPYRIGHT @@@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-// @@@ END COPYRIGHT @@@
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#include <string>
-#include <stdlib.h>
-#include <string.h>
-
-using namespace std;
-
-#include "type2str.h"
-#include "tclog.h"
-#include "tctrace.h"
-#include "trafconfig.h"
-#include "tcdbzstore.h"
-
-CTcdbZstore::CTcdbZstore( void )
- : CTcdbStore( TCDBZOOKEEPER )
-{
- const char method_name[] = "CTcdbZstore::CTcdbZstore";
- TRACE_ENTRY;
-
- memcpy(&eyecatcher_, "TCZS", 4);
-
- TRACE_EXIT;
-}
-
-CTcdbZstore::~CTcdbZstore ( void )
-{
- const char method_name[] = "CTcdbZstore::~CTcdbZstore";
- TRACE_ENTRY;
-
- memcpy(&eyecatcher_, "tczs", 4);
-
- TRACE_EXIT;
-}
-
-int CTcdbZstore::AddRegistryKey( const char *key )
-{
- const char method_name[] = "CTcdbZstore::AddRegistryKey";
- TRACE_ENTRY;
-
- key = key; // Make compiler happy!
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- // Do nothing, the key (znode) will be added along with the value (data)
- // on a subsequent method invocation of AddRegistryClusterData()
- // or AddRegistryProcessData()
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::AddRegistryProcess( const char *procName )
-{
- const char method_name[] = "CTcdbZstore::AddRegistryProcess";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- // /TRAFODION_REGISTRY_PROCESS_ZNODE
- // /<process-name>
- stringstream ss;
- ss.str( "" );
- ss << regProcessZNodePath_ << "/"
- << procName;
- string znodePath(ss.str());
-
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST))
- {
- trace_printf( "%s@%d Adding registry process znode: %s\n"
- , method_name, __LINE__, znodePath.c_str());
- }
-
- int rc = zConfig_.CreateConfigZNode( znodePath.c_str(), NULL, 0 );
- if ( rc != ZOK )
- {
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::AddRegistryClusterData( const char *key
- , const char *value )
-{
- const char method_name[] = "CTcdbZstore::AddRegistryClusterData";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- // /TRAFODION_REGISTRY_CLUSTER_ZNODE
- // /<key-name> (<value>)
- stringstream ss;
- ss.str( "" );
- ss << regClusterZNodePath_ << "/"
- << key;
- string znodePath(ss.str());
-
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST))
- {
- trace_printf( "%s@%d Adding registry cluster znode: %s (%s)\n"
- , method_name, __LINE__, znodePath.c_str(), value);
- }
-
- int rc = zConfig_.CreateConfigZNode( znodePath.c_str(), value, 0 );
- if ( rc != ZOK )
- {
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::AddRegistryProcessData( const char *procName
- , const char *key
- , const char *value )
-{
- const char method_name[] = "CTcdbZstore::AddRegistryProcessData";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- // /TRAFODION_REGISTRY_PROCESS_ZNODE
- // /<process-name>
- // /<key-name> (<value>)
- stringstream ss;
- ss.str( "" );
- ss << regProcessZNodePath_ << "/"
- << procName << "/"
- << key;
- string znodePath(ss.str());
-
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST))
- {
- trace_printf( "%s@%d Adding registry process znode: %s (%s)\n"
- , method_name, __LINE__, znodePath.c_str(), value);
- }
-
- int rc = zConfig_.CreateConfigZNode( znodePath.c_str(), value, 0 );
- if ( rc != ZOK )
- {
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::AddUniqueString( int nid
- , int id
- , const char *uniqueStr )
-{
- const char method_name[] = "CTcdbZstore::AddUniqueString";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- stringstream ss;
-
-#if 1
- // /TRAFODION_REGISTRY_USTRING_ZNODE
- // /<nid-1>
- // /<id-1> (<uniqueStr>)
- // . . .
- // /<id-n> (<uniqueStr>)
- ss.str( "" );
- ss << regUStringZNodePath_ << "/"
- << nid;
- string znodePath(ss.str());
-
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST))
- {
- trace_printf( "%s@%d Adding registry unique string znode: %s\n"
- , method_name, __LINE__, znodePath.c_str());
- }
-
- rc = MakeConfigZNode( znodePath.c_str() );
- if ( rc && rc != ZNODEEXISTS )
- {
- TRACE_EXIT;
- return(rc);
- }
-
- ss.str( "" );
- ss << regUStringZNodePath_ << "/"
- << nid << "/"
- << id;
- znodePath = ss.str();
-
-#else
- // /TRAFODION_REGISTRY_USTRING_ZNODE
- // /<id-1> (<uniqueStr>)
- ss.str( "" );
- ss << regUStringZNodePath_ << "/"
- << id;
- string znodePath(ss.str());
-
-#endif
-
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST))
- {
- trace_printf( "%s@%d Adding registry unique string znode: %s (%s)\n"
- , method_name, __LINE__, znodePath.c_str(), uniqueStr);
- }
-
- int rc = zConfig_.CreateConfigZNode( znodePath.c_str(), uniqueStr, 0 );
- if ( rc != ZOK )
- {
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST))
- {
- trace_printf("%s@%d inserting unique string nid=%d id=%d into "
- "monRegUniqueStrings\n", method_name, __LINE__,
- nid, id);
- }
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::Close( void )
-{
- const char method_name[] = "CTcdbZstore::Close";
- TRACE_ENTRY;
-
- if ( ! IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- int rc = zConfig_.Close();
-
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper store session ended! (%s)\n"
- , method_name, __LINE__, tc_errmsg( rc ));
- }
-
- TRACE_EXIT;
- return( rc );
-}
-
-int CTcdbZstore::DeleteNodeData( int pnid )
-{
- const char method_name[] = "CTcdbZstore::DeleteNodeData";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- //
- // Get pnodesZNodePath_ children znodes
- // znode=<pnid>, data=(<hostname>:<excFirstCore>:<excLastCore>)
- // Scan each znode for matching <pnid>
- // Save matching pnode znode and <hostname>
- // Get clusterZNodePath_ children znodes
- // znode=<hostname>, data=(<pnid>)
- // Scan each znode's data for matching <pnid>
- // Save matching cluster znode
- // Get lnodesZNodePath_ children znodes
- // znode=<nid>, data=(<pnid>:<processors>:<roles>:<first-core>:<last-core>)
- // Scan each znode's data for matching <pnid>
- // Save matching lnode znode
- // Get snodesZNodePath_ children znodes
- // znode=<hostname>, data=(<spare-hostname>)
- // Scan each znode for matching <hostname>
- // Save matching snode znode
- //
- // Delete saved cluster znode
- // Delete saved pnode znode
- // Delete saved lnode znode
- // Delete saved snode znode
- //
-
- stringstream ss;
- ss.str( "" );
- ss << lnodesZNodePath_ << "/"
- << nid;
- string znodePath(ss.str());
-
- if (TcTraceSettings & (TC_TRACE_NODE | TC_TRACE_REQUEST))
- {
- trace_printf( "%s@%d Deleting logical node znode: %s\n"
- , method_name, __LINE__
- , znodePath.c_str() );
- }
-
- int rc = zConfig_.DeleteConfigZNode( znodePath.c_str() );
- if ( rc != ZOK )
- {
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
-
- if (TcTraceSettings & (TC_TRACE_NODE | TC_TRACE_REQUEST))
- {
- trace_printf( "%s@%d delete from lnode, pnode values (pNid=%d)\n"
- , method_name, __LINE__
- , pnid );
- }
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::DeleteUniqueString( int nid )
-{
- const char method_name[] = "CTcdbZstore::DeleteUniqueString";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST))
- {
- trace_printf( "%s@%d delete from monRegUniqueStrings values (nid=%d)\n"
- , method_name, __LINE__
- , nid );
- }
-
- //
- // Get regUStringZNodePath_ children znodes
- // znode=<usid>, data=(<ustring>)
- // Loop on children
- // Delete regUString znode
- //
- // NOTE: This will delete all ustrings on cluster, not just a give nid's
- //
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::GetNode( int nid
- , node_configuration_t &nodeConfig )
-{
- const char method_name[] = "CTcdbZstore::GetNode";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- //
- // List a node's configuration by <nid>
- //
- // Get lnodesZNodePath_ children znodes
- // znode=<nid>, data=(<pnid>:<processors>:<roles>:<first-core>:<last-core>)
- // Scan each lnodes znode for matching <nid>
- // Save matching lnodes znode's data
- // Get pnodesZNodePath_ children znodes
- // znode=<pnid>, data=(<hostname>:<excFirstCore>:<excLastCore>)
- // Scan each pnodes znode for matching <pnid>
- // Save matching pnode znode's data
- // Return saved lnodes znode's and pnode znode's data
- //
-
- int rc;
- int firstcore = -1;
- int lastcore = -1;
- int excfirstcore = -1;
- int exclastcore = -1;
- int lnid = -1;
- int pnid = -1;
- int processors = 0;
- int roles;
-
- SetLNodeData( lnid
- , pnid
- , nodename
- , excfirstcore
- , exclastcore
- , firstcore
- , lastcore
- , processors
- , roles
- , nodeConfig );
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::GetNode( const char *name
- , node_configuration_t &nodeConfig )
-{
- const char method_name[] = "CTcdbZstore::GetNode";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- //
- // List a node's configuration by <hostname>
- //
- // Get clusterZNodePath_ children znodes
- // znode=<hostname>, data=(<pnid>)
- // Scan each cluster znode for matching <hostname>
- // Save matching cluster znode's data
- // Get pnodesZNodePath_ children znodes
- // znode=<pnid>, data=(<hostname>:<excFirstCore>:<excLastCore>)
- // Scan each pnodes znode for matching <pnid>
- // Save matching pnode znode's data
- // Get lnodesZNodePath_ children znodes
- // znode=<nid>, data=(<pnid>:<processors>:<roles>:<first-core>:<last-core>)
- // Scan each lnodes znode's data for matching <pnid>
- // Save matching lnodes znode's data
- // Return saved lnodes znode's and pnode znode's data
- //
-
- int rc;
- int firstcore = -1;
- int lastcore = -1;
- int excfirstcore = -1;
- int exclastcore = -1;
- int nid = -1;
- int pnid = -1;
- int processors = 0;
- int roles;
-
- pnid = sqlite3_column_int(prepStmt, 0);
- nid = sqlite3_column_int(prepStmt, 1);
- nodename = (const char *) sqlite3_column_text(prepStmt, 2);
- firstcore = sqlite3_column_int(prepStmt, 3);
- lastcore = sqlite3_column_int(prepStmt, 4);
- excfirstcore = sqlite3_column_int(prepStmt, 5);
- exclastcore = sqlite3_column_int(prepStmt, 6);
- processors = sqlite3_column_int(prepStmt, 7);
- roles = sqlite3_column_int(prepStmt, 8);
- SetLNodeData( nid
- , pnid
- , nodename
- , excfirstcore
- , exclastcore
- , firstcore
- , lastcore
- , processors
- , roles
- , nodeConfig );
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::GetNodes( int &count
- , int max
- , node_configuration_t nodeConfig[] )
-{
- const char method_name[] = "CTcdbZstore::GetNodes";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- //
- // List all logical nodes, limited by max
- //
-
- sqlStmt = "select p.pNid, l.lNid, p.nodeName, l.firstCore, l.lastCore,"
- " p.excFirstCore, p.excLastCore, l.processors, l.roles"
- " from pnode p, lnode l where p.pNid = l.pNid";
-
- //
- // Loop on lnodesZNodePath_ children
- // Get lnodesZNodePath_ children znodes
- // znode=<nid>, data=(<pnid>:<processors>:<roles>:<first-core>:<last-core>)
- // Scan each lnodes znode for matching <nid>
- // Save matching lnodes znode's data
- // Get pnodesZNodePath_ children znodes
- // znode=<pnid>, data=(<hostname>:<excFirstCore>:<excLastCore>)
- // Scan each pnodes znode for matching <pnid>
- // Save matching pnode znode's data
- // Save lnodes znode's and pnode znode's data in nodeConfig[nodeCount]
- //
-
- int rc;
- int firstcore = -1;
- int lastcore = -1;
- int excfirstcore = -1;
- int exclastcore = -1;
- int nid = -1;
- int pnid = -1;
- int processors = 0;
- int roles;
- int nodeCount = 0;
-
- while ( 1 )
- {
- if ( nodeCount < max )
- {
- pnid = sqlite3_column_int(prepStmt, 0);
- nid = sqlite3_column_int(prepStmt, 1);
- nodename = (const char *) sqlite3_column_text(prepStmt, 2);
- firstcore = sqlite3_column_int(prepStmt, 3);
- lastcore = sqlite3_column_int(prepStmt, 4);
- excfirstcore = sqlite3_column_int(prepStmt, 5);
- exclastcore = sqlite3_column_int(prepStmt, 6);
- processors = sqlite3_column_int(prepStmt, 7);
- roles = sqlite3_column_int(prepStmt, 8);
- SetLNodeData( nid
- , pnid
- , nodename
- , excfirstcore
- , exclastcore
- , firstcore
- , lastcore
- , processors
- , roles
- , nodeConfig[nodeCount] );
- nodeCount++;
- }
- }
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::GetPNode( int pNid
- , physical_node_configuration_t &pnodeConfig )
-{
- const char method_name[] = "CTcdbZstore::GetPNode";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- int rc;
- int excfirstcore = -1;
- int exclastcore = -1;
- int pnid = -1;
-
- //
- // List a node's physical configuration by <pnid>
- //
-
- sqlStmt = "select p.pNid, p.nodeName, p.excFirstCore, p.excLastCore"
- " from pnode p where p.pNid = ?";
-
- //
- // Get pnodesZNodePath_/<pnid> znode
- // znode=<pnid>, data=(<hostname>:<excFirstCore>:<excLastCore>)
- // Save matching pnode znode's data
- // Return saved pnode znode's data
- //
-
- pnid = sqlite3_column_int(prepStmt, 0);
- nodename = (const char *) sqlite3_column_text(prepStmt, 1);
- excfirstcore = sqlite3_column_int(prepStmt, 2);
- exclastcore = sqlite3_column_int(prepStmt, 3);
- SetPNodeData( pnid
- , nodename
- , excfirstcore
- , exclastcore
- , pnodeConfig );
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::GetPNode( const char *name
- , physical_node_configuration_t &pnodeConfig )
-{
- const char method_name[] = "CTcdbZstore::GetPNode";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- int rc;
- int excfirstcore = -1;
- int exclastcore = -1;
- int pnid = -1;
-
- //
- // List a node's physical configuration by <hostname>
- //
-
- sqlStmt = "select p.pNid, p.nodeName, p.excFirstCore, p.excLastCore"
- " from pnode p where p.nodeName = ?";
-
- //
- // Get clusterZNodePath_/<hostname> znode
- // znode=<hostname>, data=(<pnid>)
- // Get pnodesZNodePath_/<pnid> znode
- // znode=<pnid>, data=(<hostname>:<excFirstCore>:<excLastCore>)
- // Save matching pnode znode's data
- // Return saved pnode znode's data
- //
-
- pnid = sqlite3_column_int(prepStmt, 0);
- nodename = (const char *) sqlite3_column_text(prepStmt, 1);
- excfirstcore = sqlite3_column_int(prepStmt, 2);
- exclastcore = sqlite3_column_int(prepStmt, 3);
- SetPNodeData( pnid
- , nodename
- , excfirstcore
- , exclastcore
- , pnodeConfig );
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::GetSNodes( int &count
- , int max
- , physical_node_configuration_t spareNodeConfig[] )
-{
- const char method_name[] = "CTcdbZstore::GetSNodes";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- //
- // List all spare nodes, limited by max
- //
-
- sqlStmt = "select p.pNid, p.nodeName, p.excFirstCore, p.excLastCore,"
- " s.spNid "
- " from pnode p, snode s where p.pNid = s.pNid";
-
- //
- // Loop on snodesZNodePath_ znodes <spare-pnid>
- // Get pnodesZNodePath_/<spare-pnid> znode's data
- // znode=<pnid>, data=(<hostname>:<excFirstCore>:<excLastCore>)
- // Save <spare-pnid> pnode znode's data IN spareNodeConfig[snodeCount]
- // Loop on each snodesZNodePath_/<spare-pnid> children <spared-pnid>
- // Save <spared-pnid> in spareNodeConfig[snodeCount].spare_pnid[spareCount]
- //
-
- int rc;
- int pnid = -1;
- int excfirstcore = -1;
- int exclastcore = -1;
- int snodeCount = 0;
-
- // Process spare nodes
- while ( 1 )
- {
- if ( snodeCount < max )
- {
- pnid = sqlite3_column_int(prepStmt, 0);
- nodename = (const char *) sqlite3_column_text(prepStmt, 1);
- excfirstcore = sqlite3_column_int(prepStmt, 2);
- exclastcore = sqlite3_column_int(prepStmt, 3);
- if ( ! GetSNodeData( pnid
- , nodename
- , excfirstcore
- , exclastcore
- , spareNodeConfig[snodeCount] ) )
- {
- char buf[TC_LOG_BUF_SIZE];
- snprintf( buf, sizeof(buf)
- , "[%s], Error: Invalid node configuration\n"
- , method_name);
- TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
- snodeCount++;
- }
- }
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::GetSNodeData( int pnid
- , const char *nodename
- , int excfirstcore
- , int exclastcore
- , physical_node_configuration_t &spareNodeConfig )
-{
- const char method_name[] = "CTcdbZstore::GetSNodeData";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- int rc;
- const char *sqlStmt;
- sqlite3_stmt *prepStmt = NULL;
-
- if ( TcTraceSettings & (TC_TRACE_NODE | TC_TRACE_REQUEST) )
- {
- trace_printf( "%s@%d pnid=%d, name=%s, excluded cores=(%d:%d)\n"
- , method_name, __LINE__
- , pnid
- , nodename
- , excfirstcore
- , exclastcore );
- }
-
- spareNodeConfig.pnid = pnid;
- strncpy( spareNodeConfig.node_name
- , nodename
- , sizeof(spareNodeConfig.node_name) );
- spareNodeConfig.excluded_first_core = excfirstcore;
- spareNodeConfig.excluded_last_core = exclastcore;
-
- // Select all spared nodes configured for this spare node
- sqlStmt = "select p.pNid, s.spNid"
- " from pnode p, snode s"
- " where p.pNid = s.pNid and p.pNid = ?";
-
- rc = sqlite3_prepare_v2( db_
- , sqlStmt
- , strlen(sqlStmt)+1
- , &prepStmt
- , NULL);
- if ( rc != SQLITE_OK )
- {
- char buf[TC_LOG_BUF_SIZE];
- snprintf( buf, sizeof(buf)
- , "[%s] prepare (%s) failed, error: %s\n"
- , method_name, sqlStmt, sqlite3_errmsg(db_) );
- TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
- else
- { // Set pnid in prepared statement
- rc = sqlite3_bind_int(prepStmt, 1, pnid );
- if ( rc != SQLITE_OK )
- {
- char buf[TC_LOG_BUF_SIZE];
- snprintf( buf, sizeof(buf),
- "[%s] sqlite3_bind_int(pnid) failed, error: %s\n"
- , method_name, sqlite3_errmsg(db_) );
- TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
- }
-
- int spnid;
- int sparedpnid;
- int spareCount = 0;
-
- // Process spare nodes
- while ( 1 )
- {
- rc = sqlite3_step( prepStmt );
- if ( rc == SQLITE_ROW )
- { // Process row
- int colCount = sqlite3_column_count(prepStmt);
- if ( TcTraceSettings & (TC_TRACE_NODE | TC_TRACE_REQUEST) )
- {
- trace_printf("%s@%d sqlite3_column_count=%d\n",
- method_name, __LINE__, colCount);
- for (int i=0; i<colCount; ++i)
- {
- trace_printf("%s@%d column %d is %s\n",
- method_name, __LINE__, i,
- sqlite3_column_name(prepStmt, i));
- }
- }
-
- spnid = sqlite3_column_int(prepStmt, 0);
- sparedpnid = sqlite3_column_int(prepStmt, 1);
- spareNodeConfig.spare_pnid[spareCount] = sparedpnid;
- spareCount++;
- }
- else if ( rc == SQLITE_DONE )
- {
- spareNodeConfig.spare_count = spareCount;
- // Destroy prepared statement object
- if ( prepStmt != NULL )
- {
- sqlite3_finalize( prepStmt );
- }
-
- if ( TcTraceSettings & (TC_TRACE_NODE | TC_TRACE_REQUEST) )
- {
- trace_printf("%s@%d Finished processing spared node set.\n",
- method_name, __LINE__);
- }
-
- break;
- }
- else
- {
- char buf[TC_LOG_BUF_SIZE];
- snprintf( buf, sizeof(buf)
- , "[%s] (%s) failed, error: %s\n"
- , method_name, sqlStmt, sqlite3_errmsg(db_) );
- TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
- }
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::GetPersistProcess( const char *persistPrefix
- , persist_configuration_t &persistConfig )
-{
- const char method_name[] = "CTcdbZstore::GetPersistProcess";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- int rc, rs;
- char param[TC_PERSIST_KEY_MAX];
- const char *persistKey;
- const char *persistValue;
- const char *sqlStmtStmt;
- sqlite3_stmt *prepStmt = NULL;
-
- if ( TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST) )
- {
- trace_printf( "%s@%d processkey=%s\n"
- , method_name, __LINE__
- , persistPrefix );
- }
-
- strncpy( persistConfig.persist_prefix
- , persistPrefix
- , sizeof(persistConfig.persist_prefix) );
-
- snprintf( param, sizeof(param), "%s_%%", persistPrefix );
-
- // Prepare select persistent process for the key
- sqlStmtStmt = "select p.keyName, p.valueName"
- " from monRegPersistData p"
- " where p.keyName like ?";
-
- rc = sqlite3_prepare_v2( db_
- , sqlStmtStmt
- , strlen(sqlStmtStmt)+1
- , &prepStmt
- , NULL);
- if ( rc != SQLITE_OK )
- {
- char buf[TC_LOG_BUF_SIZE];
- snprintf( buf, sizeof(buf)
- , "[%s] prepare (%s) failed, error: %s\n"
- , method_name, sqlStmtStmt, sqlite3_errmsg(db_) );
- TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
- else
- { // Set key in prepared statement
- rc = sqlite3_bind_text( prepStmt, 1, param, -1, SQLITE_STATIC );
- if ( rc != SQLITE_OK )
- {
- char buf[TC_LOG_BUF_SIZE];
- snprintf( buf, sizeof(buf)
- , "[%s] sqlite3_bind_text(keyName) failed, error: %s\n"
- , method_name, sqlite3_errmsg(db_) );
- TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
- }
-
- while ( 1 )
- {
- rc = sqlite3_step( prepStmt );
- if ( rc == SQLITE_ROW )
- { // Process row
- int colCount = sqlite3_column_count(prepStmt);
- if ( TcTraceSettings & (TC_TRACE_PERSIST | TC_TRACE_REQUEST) )
- {
- trace_printf( "%s@%d sqlite3_column_count=%d\n"
- , method_name, __LINE__, colCount);
- for (int i=0; i<colCount; ++i)
- {
- trace_printf("%s@%d column %d is %s\n",
- method_name, __LINE__, i,
- sqlite3_column_name(prepStmt, i));
- }
- }
-
- persistKey = (const char *) sqlite3_column_text(prepStmt, 0);
- persistValue = (const char *) sqlite3_column_text(prepStmt, 1);
-
- if ( TcTraceSettings & (TC_TRACE_PERSIST | TC_TRACE_REQUEST) )
- {
- trace_printf( "%s@%d monRegPersistData key=%s, value=%s\n"
- , method_name, __LINE__, persistKey, persistValue);
- }
-
- // Parse the value based on the key
- rs = SetPersistProcessData( persistKey
- , persistValue
- , persistConfig );
- if ( rs != TCSUCCESS )
- {
- char buf[TC_LOG_BUF_SIZE];
- snprintf( buf, sizeof(buf)
- , "[%s], Error: Invalid persist key value in "
- "configuration, key=%s, value=%s\n"
- , method_name, persistKey, persistValue );
- TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
- }
- else if ( rc == SQLITE_DONE )
- {
- if ( TcTraceSettings & (TC_TRACE_PERSIST | TC_TRACE_REQUEST) )
- {
- trace_printf("%s@%d Finished processing all rows.\n",
- method_name, __LINE__);
- }
- break;
- }
- else
- {
- char buf[TC_LOG_BUF_SIZE];
- snprintf( buf, sizeof(buf)
- , "[%s] (%s) failed, error: %s\n"
- , method_name, sqlStmtStmt, sqlite3_errmsg(db_) );
- TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
- }
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::GetPersistProcessKeys( const char *persistProcessKeys )
-{
- const char method_name[] = "CTcdbZstore::GetPersistProcessKeys";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
-
- int rc;
-
- const char *sqlStmt;
- sqlite3_stmt *prepStmt = NULL;
- sqlStmt = "select p.valueName"
- " from monRegPersistData p"
- " where p.keyName = 'PERSIST_PROCESS_KEYS'";
-
- rc = sqlite3_prepare_v2( db_
- , sqlStmt
- , strlen(sqlStmt)+1
- , &prepStmt
- , NULL);
- if ( rc != SQLITE_OK )
- {
- char buf[TC_LOG_BUF_SIZE];
- snprintf( buf, sizeof(buf)
- , "[%s] prepare (%s) failed, error: %s\n"
- , method_name, sqlStmt, sqlite3_errmsg(db_) );
- TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
-
- // Process persistent process keys
- rc = sqlite3_step( prepStmt );
- if ( rc == SQLITE_ROW )
- { // Process row
- int colCount = sqlite3_column_count(prepStmt);
-
- if ( TcTraceSettings & (TC_TRACE_PERSIST | TC_TRACE_REQUEST) )
- {
- trace_printf("%s@%d sqlite3_column_count=%d\n",
- method_name, __LINE__, colCount);
- for (int i=0; i<colCount; ++i)
- {
- trace_printf("%s@%d column %d is %s\n",
- method_name, __LINE__, i,
- sqlite3_column_name(prepStmt, i));
- }
- }
-
- const unsigned char *value;
-
- value = sqlite3_column_text(prepStmt, 0);
- strncpy( (char *)persistProcessKeys, (const char *)value, TC_PERSIST_KEYS_VALUE_MAX );
-
- }
- else if ( rc == SQLITE_DONE )
- {
- if ( prepStmt != NULL )
- {
- sqlite3_finalize( prepStmt );
- }
- return( TCDBNOEXIST );
- }
- else
- {
- char buf[TC_LOG_BUF_SIZE];
- snprintf( buf, sizeof(buf)
- , "[%s] (%s) failed, error: %s\n"
- , method_name, sqlStmt, sqlite3_errmsg(db_) );
- TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
-
- if ( prepStmt != NULL )
- {
- sqlite3_finalize( prepStmt );
- }
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::GetRegistryClusterSet( int &count
- , int max
- , registry_configuration_t registryConfig[] )
-{
- const char method_name[] = "CTcdbZstore::GetRegistryClusterSet";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST))
- {
- trace_printf( "%s@%d Getting registry cluster set\n"
- , method_name, __LINE__, znodePath.c_str());
- }
-
- char keyString[TC_REGISTRY_KEY_MAX];
- char *pch;
- char *token1;
- const char *group = "CLUSTER";
- const char *key;
- static const char *delimBSlash = "/";
- int entryNum = 0;
- struct String_vector regKeys; // Children znode paths
-
- count = 0;
-
- // /TRAFODION_REGISTRY_CLUSTER_ZNODE
- // /<key-name> (<value>)
- stringstream ss;
- ss.str( "" );
- ss << regClusterZNodePath_;
- string znodePath(ss.str());
-
- int rc = zConfig_.GetConfigZNodeChildren( znodePath, ®Keys );
- if ( rc != ZOK )
- {
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
-
- if ( max == 0 )
- {
- // Just return the count
- entryNum = regKeys.count;
- FreeStringVector( ®Keys );
- }
- else if ( regKeys.count > 0 )
- {
- for (int i = 0; i < regKeys.count ; i++ )
- {
- if ( entryNum < max )
- {
- // Get the value from:
- // /trafodion/instance/registry/cluster/<key> (<value>)
- rc = zConfig_.GetConfigZNodeData( regKeys.data[i]
- , registryConfig[entryNum].value )
- if ( rc != ZOK )
- {
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
-
- strncpy( keyString, (const char *)regKeys.data[i], sizeof(keyString) );
- pch = (char *) strstr( keyString, TRAFODION_REGISTRY_CLUSTER_ZNODE );
- if (pch != NULL)
- {
- // Set key name
- token1 = strtok( ++pch, delimBSlash );
- if (token1)
- {
- key = token1;
- }
- }
-
- if ( TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST) )
- {
- trace_printf( "%s@%d entry %d: group=%s key=%s, value=%s\n"
- , method_name, __LINE__
- , entryNum, group, key, value);
- }
-
- strncpy( registryConfig[entryNum].scope, (const char *)group, TC_REGISTRY_KEY_MAX );
- strncpy( registryConfig[entryNum].key, (const char *)key, TC_REGISTRY_KEY_MAX );
- ++entryNum;
- }
- else
- {
- count = entryNum;
- return( TCDBTRUNCATE );
- }
- }
-
- FreeStringVector( ®Keys );
- }
-
- count = entryNum;
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::GetRegistryProcessSet( int &count
- , int max
- , registry_configuration_t registryConfig[] )
-{
- const char method_name[] = "CTcdbZstore::GetRegistryProcessSet";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST))
- {
- trace_printf( "%s@%d Getting registry process set\n"
- , method_name, __LINE__, znodePath.c_str());
- }
-
- char processString[TC_REGISTRY_KEY_MAX];
- char keyString[TC_REGISTRY_KEY_MAX];
- char *pch;
- char *token1;
- const char *group;
- const char *key;
- static const char *delimBSlash = "/";
- int entryNum = 0;
- struct String_vector processNames; // Children znode paths
- struct String_vector regKeys; // Children znode paths
-
- count = 0;
-
- // TRAFODION_REGISTRY_PROCESS_ZNODE
- // /<process-name>
- // /<key-name> (<value>)
- stringstream ss;
- ss.str( "" );
- ss << regClusterZNodePath_;
- string znodePath(ss.str());
-
- // /trafodion/instance/registry/process/<process-names>
- int rc = zConfig_.GetConfigZNodeChildren( znodePath, &processNames );
- if ( rc != ZOK )
- {
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
-
- if ( processNames.count > 0 )
- {
- strncpy( processString, (const char *)processNames.data[i], sizeof(processString) );
- pch = (char *) strstr( processString, TRAFODION_REGISTRY_PROCESS_ZNODE );
- if (pch != NULL)
- {
- // Set process name group
- token1 = strtok( ++pch, delimBSlash );
- if (token1)
- {
- group = token1;
- }
- }
-
- // Get the keys for each process name
- for (int i = 0; i < processNames.count ; i++ )
- {
- // /trafodion/instance/registry/process/<process-name>/<keys>
- int rc = zConfig_.GetConfigZNodeChildren( processNames.data[i], ®Keys );
- if ( rc != ZOK )
- {
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
-
- if ( max == 0 )
- {
- // Just return the count
- entryNum += regKeys.count;
- FreeStringVector( ®Keys );
- }
- else if ( regKeys.count > 0 )
- {
- for (int j = 0; i < regKeys.count ; j++ )
- {
- if ( entryNum < max )
- {
- // Get the value from:
- // /trafodion/instance/registry/process/<process-name>/<key> (<value>)
- rc = zConfig_.GetConfigZNodeData( regKeys.data[j]
- , registryConfig[entryNum].value )
- if ( rc != ZOK )
- {
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
-
- strncpy( keyString, (const char *)regKeys.data[i], sizeof(keyString) );
- pch = (char *) strstr( keyString, TRAFODION_REGISTRY_CLUSTER_ZNODE );
- if (pch != NULL)
- {
- // Set key name
- token1 = strtok( ++pch, delimBSlash );
- if (token1)
- {
- key = token1;
- }
- }
-
- if ( TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST) )
- {
- trace_printf( "%s@%d entry %d: group=%s key=%s, value=%s\n"
- , method_name, __LINE__
- , entryNum, group, key, value);
- }
-
- strncpy( registryConfig[entryNum].scope, (const char *)group, TC_REGISTRY_KEY_MAX );
- strncpy( registryConfig[entryNum].key, (const char *)key, TC_REGISTRY_KEY_MAX );
- ++entryNum;
- }
- else
- {
- count = entryNum;
- return( TCDBTRUNCATE );
- }
- }
-
- FreeStringVector( ®Keys );
- }
- }
-
- FreeStringVector( &processNames );
- }
-
- count = entryNum;
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::GetUniqueString( int nid, int id, const char *uniqStr )
-{
- const char method_name[] = "CTcdbZstore::GetUniqueString";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- stringstream ss;
- ss.str( "" );
-
-#if 1
- // /TRAFODION_REGISTRY_USTRING_ZNODE
- // /<nid>
- // /<id> (<uniqueStr>)
- ss << regUStringZNodePath_ << "/"
- << nid << "/"
- << id;
- string znodePath(ss.str());
-
- // Get the value from:
- // /trafodion/instance/registry/ustring/<nid>/<id> (<value>)
-#else
- // /TRAFODION_REGISTRY_USTRING_ZNODE
- // /<id> (<uniqueStr>)
- ss << regUStringZNodePath_ << "/"
- << id;
- string znodePath(ss.str());
-
- // Get the value from:
- // /trafodion/instance/registry/ustring/<id> (<value>)
-#endif
-
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST))
- {
- trace_printf( "%s@%d Getting unique string: znodePath=%d\n"
- , method_name, __LINE__, znodePath.c_str());
- }
-
- int rc = zConfig_.GetConfigZNodeData( znodePath.c_str(), uniqStr )
- if ( rc != ZOK )
- {
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::GetUniqueStringId( int nid
- , const char *uniqStr
- , int &id )
-{
- const char method_name[] = "CTcdbZstore::GetUniqueStringId";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST))
- {
- trace_printf( "%s@%d Getting unique string id: nid=%d string=%s\n"
- , method_name, __LINE__, nid, uniqStr);
- }
-
- char uStringValue[TC_UNIQUE_STRING_VALUE_MAX];
- char keyString[TC_REGISTRY_KEY_MAX];
- char *pch;
- char *token1;
- const char *key;
- int diff;
- static const char *delimBSlash = "/";
- struct String_vector regKeys; // Children znode paths
-
- stringstream ss;
- ss.str( "" );
-
-#if 1
- // /TRAFODION_REGISTRY_USTRING_ZNODE
- // /<nid>
- // /<id> (<uniqueStr>)
- ss << regUStringZNodePath_ << "/"
- << nid << "/"
- << id;
- string znodePath(ss.str());
-
- // Get the value from:
- // /trafodion/instance/registry/ustring/<nid>/<id> (<uniqueStr>)
-#else
- // /TRAFODION_REGISTRY_USTRING_ZNODE
- // /<id> (<uniqueStr>)
- ss << regUStringZNodePath_ << "/"
- << id;
- string znodePath(ss.str());
-
- // Get the value from:
- // /trafodion/instance/registry/ustring/<id> (<uniqueStr>)
-#endif
-
- int rc = zConfig_.GetConfigZNodeChildren( znodePath, ®Keys );
- if ( rc != ZOK )
- {
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
-
- if ( regKeys.count > 0 )
- {
- for (int i = 0; i < regKeys.count ; i++ )
- {
- // Get the value from:
- // /trafodion/instance/registry/ustring/<nid>/<id> (<uniqueStr>)
- // or
- // /trafodion/instance/registry/ustring/<id> (<uniqueStr>)
- rc = zConfig_.GetConfigZNodeData( regKeys.data[i], uStringValue )
- if ( rc != ZOK )
- {
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
-
- if ( TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST) )
- {
- trace_printf( "%s@%d znodePath=%s\nuniqStr=%s\nvalue=%s\n"
- , method_name, __LINE__
- , regKeys.data[i], uniqStr, uStringValue);
- }
-
- diff = strncpy( (const char *)uniqStr
- , (const char *)uStringValue
- , TC_UNIQUE_STRING_VALUE_MAX );
- if ( diff == 0 )
- {
- // /trafodion/instance/registry/ustring/[<nid>/]<id> (<uniqueStr>)
- strncpy( keyString, (const char *)regKeys.data[i], sizeof(keyString) );
- // /ustring[/<nid>]/<id> (<uniqueStr>)
- pch = (char *) strstr( keyString, TRAFODION_REGISTRY_USTRING_ZNODE );
- if (pch != NULL)
- {
-#if 1
- // /ustring/<nid>/<id> (<uniqueStr>)
- pch = strtok( ++pch, delimBSlash );
- if (pch != NULL)
- {
- // /<nid>/<id> (<uniqueStr>)
- // Set the id
- token1 = strtok( ++pch, delimBSlash );
- if (token1)
- {
- key = token1;
- }
- }
-#else
- // /ustring/<id> (<uniqueStr>)
- // Set the id
- token1 = strtok( ++pch, delimBSlash );
- if (token1)
- {
- key = token1;
- }
-#endif
- }
- }
- }
-
- FreeStringVector( ®Keys );
- }
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::GetUniqueStringIdMax( int nid, int &id )
-{
- const char method_name[] = "CTcdbZstore::GetUniqueStringIdMax";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- int result = 0;
- int rc;
- const char *sqlStmt;
- sqlStmt = "select max(id) from monRegUniqueStrings where nid=?";
-
- sqlite3_stmt * prepStmt;
- rc = sqlite3_prepare_v2( db_, sqlStmt, strlen(sqlStmt)+1, &prepStmt,
- NULL);
- if ( rc != SQLITE_OK )
- {
- char buf[TC_LOG_BUF_SIZE];
- snprintf( buf, sizeof(buf)
- , "[%s] prepare (%s) failed, error: %s\n"
- , method_name, sqlStmt, sqlite3_errmsg(db_) );
- TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
- else
- {
- rc = sqlite3_bind_int( prepStmt, 1, nid );
- if ( rc != SQLITE_OK )
- {
- char buf[TC_LOG_BUF_SIZE];
- snprintf( buf, sizeof(buf),
- "[%s] sqlite3_bind_int(nid) failed, error: %s\n"
- , method_name, sqlite3_errmsg(db_) );
- TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
-
- rc = sqlite3_step( prepStmt );
-
- if ( rc == SQLITE_ROW )
- {
- result = sqlite3_column_int(prepStmt, 0);
- id = result;
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST))
- {
- trace_printf("%s@%d found max(id)=%d for nid=%d in "
- "monRegUniqueStrings\n", method_name, __LINE__,
- result, nid);
- }
- }
- else if ( rc == SQLITE_DONE )
- {
- if ( prepStmt != NULL )
- {
- sqlite3_finalize( prepStmt );
- }
- return( TCDBNOEXIST );
- }
- else
- {
- char buf[TC_LOG_BUF_SIZE];
- snprintf( buf, sizeof(buf)
- , "[%s] (%s) failed, nid=%d, error: %s\n"
- , method_name, sqlStmt, nid, sqlite3_errmsg(db_) );
- TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
- }
-
- if ( prepStmt != NULL )
- {
- sqlite3_finalize( prepStmt );
- }
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::Initialize( void )
-{
- const char method_name[] = "CTcdbZstore::Initialize";
- TRACE_ENTRY;
-
- if ( IsInitialized() )
- {
- return( TCALREADYINIT );
- }
-
- TRACE_EXIT;
- return( zConfig_.InitializeZConfig() );
-}
-
-bool CTcdbZstore::IsInitialized( void )
-{
- return ( (ZHandle != 0) );
-}
-
-int CTcdbZstore::SaveLNodeData( int nid
- , int pnid
- , int firstCore
- , int lastCore
- , int processors
- , int roles )
-{
- const char method_name[] = "CTcdbZstore::SaveLNodeData";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- stringstream ss;
- ss.str( "" );
- ss << lnodesZNodePath_ << "/"
- << nid;
- string znodePath(ss.str());
- ss.str( "" );
- ss << pnid << ":"
- << processors << ":"
- << roles << ":"
- << firstCore << ":"
- << lastCore;
- string znodeData(ss.str());
-
- if (TcTraceSettings & (TC_TRACE_NODE | TC_TRACE_REQUEST))
- {
- trace_printf( "%s@%d Adding logical node znode: %s\n"
- " (pnid=%d, processors=%d, roles=%d, firstCore=%d, lastCore=%d )\n"
- " (%s)\n"
- , method_name, __LINE__
- , znodePath.c_str()
- , pnid
- , processors
- , roles
- , firstCore
- , lastCore
- , znodeData.c_str() );
- }
-
- int rc = zConfig_.CreateConfigZNode( znodePath.c_str(), znodeData.c_str(), 0 );
- if ( rc != ZOK )
- {
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::SavePNodeData( const char *name
- , int pnid
- , int excludedFirstCore
- , int excludedLastCore )
-{
- const char method_name[] = "CTcdbZstore::SavePNodeData";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- stringstream ss;
-
- // /TRAFODION_CLUSTER_ZNODE [physical node]
- ss.str( "" );
- ss << clusterZNodePath_ << "/"
- << name;
- string znodePath(ss.str());
-
- // /<hostname> (<pnid>)
- ss.str( "" );
- ss << pnid;
- string znodeData(ss.str());
-
- if (TcTraceSettings & (TC_TRACE_NODE | TC_TRACE_REQUEST))
- {
- trace_printf( "%s@%d Adding cluster node znode: %s\n"
- " (pNid=%d)\n"
- " (%s)\n"
- , method_name, __LINE__
- , znodePath.c_str()
- , pnid
- , znodeData.c_str() );
- }
-
-
- int rc = zConfig_.CreateConfigZNode( znodePath.c_str(), znodeData.c_str(), 0 );
- if ( rc != ZOK )
- {
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
-
- // /TRAFODION_PNODES_ZNODE [physical node]
- ss.str( "" );
- ss << pnodesZNodePath_ << "/"
- << pnid;
- znodePath = ss.str();
-
- // /<pnid> (<hostname>:<excFirstCore>:<excLastCore>)
- ss.str( "" );
- ss << name << ":"
- << excludedFirstCore << ":"
- << excludedLastCore;
- znodeData = ss.str();
-
- if (TcTraceSettings & (TC_TRACE_NODE | TC_TRACE_REQUEST))
- {
- trace_printf( "%s@%d Adding physical node znode: %s\n"
- " (hostname=%s, excFirstCore=%d, excLastCore=%d)\n"
- " (%s)\n"
- , method_name, __LINE__
- , znodePath.c_str()
- , name
- , excludedFirstCore
- , excludedLastCore
- , znodeData.c_str() );
- }
-
-
- int rc = zConfig_.CreateConfigZNode( znodePath.c_str(), znodeData.c_str(), 0 );
- if ( rc != ZOK )
- {
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-void CTcdbZstore::SetLNodeData( int nid
- , int pnid
- , const char *nodename
- , int excfirstcore
- , int exclastcore
- , int firstcore
- , int lastcore
- , int processors
- , int roles
- , node_configuration_t &nodeConfig )
-{
- const char method_name[] = "CTcdbZstore::SetLNodeData";
- TRACE_ENTRY;
-
- if ( TcTraceSettings & (TC_TRACE_NODE | TC_TRACE_REQUEST) )
- {
- trace_printf( "%s@%d nid=%d, pnid=%d, name=%s, excluded cores=(%d:%d),"
- " cores=(%d:%d), processors=%d, roles=%d\n"
- , method_name, __LINE__
- , nid
- , pnid
- , nodename
- , excfirstcore
- , exclastcore
- , firstcore
- , lastcore
- , processors
- , roles );
- }
-
- nodeConfig.nid = nid;
- nodeConfig.pnid = pnid;
- strncpy( nodeConfig.node_name
- , nodename
- , sizeof(nodeConfig.node_name) );
- nodeConfig.excluded_first_core = excfirstcore;
- nodeConfig.excluded_last_core = exclastcore;
- nodeConfig.first_core = firstcore;
- nodeConfig.last_core = lastcore;
- nodeConfig.processors = processors;
- nodeConfig.roles = roles;
-
- TRACE_EXIT;
-}
-
-void CTcdbZstore::SetPNodeData( int pnid
- , const char *nodename
- , int excfirstcore
- , int exclastcore
- , physical_node_configuration_t &pnodeConfig )
-
-{
- const char method_name[] = "CTcdbZstore::SetLNodeData";
- TRACE_ENTRY;
-
- if ( TcTraceSettings & (TC_TRACE_NODE | TC_TRACE_REQUEST) )
- {
- trace_printf( "%s@%d pnid=%d, name=%s, excluded cores=(%d:%d)\n"
- , method_name, __LINE__
- , pnid
- , nodename
- , excfirstcore
- , exclastcore );
- }
-
- pnodeConfig.pnid = pnid;
- strncpy( pnodeConfig.node_name
- , nodename
- , sizeof(pnodeConfig.node_name) );
- pnodeConfig.excluded_first_core = excfirstcore;
- pnodeConfig.excluded_last_core = exclastcore;
-
- TRACE_EXIT;
-}
-
-int CTcdbZstore::SetPersistProcessData( const char *persistkey
- , const char *persistvalue
- , persist_configuration_t &persistConfig )
-{
- const char method_name[] = "CTcdbZstore::GetPersistProcessData";
- TRACE_ENTRY;
-
- char workValue[TC_PERSIST_KEY_MAX];
- char *pch;
- char *token1;
- char *token2;
- static const char *delimNone = "\0";
- static const char *delimComma = ",";
-
- if ( TcTraceSettings & (TC_TRACE_PERSIST | TC_TRACE_REQUEST) )
- {
- trace_printf( "%s@%d persistKey=%s, persistValue=%s\n"
- , method_name, __LINE__
- , persistkey, persistvalue );
- }
-
- strncpy( workValue, persistvalue, sizeof(workValue) );
-
- pch = (char *) strstr( persistkey, PERSIST_PROCESS_NAME_KEY );
- if (pch != NULL)
- {
- strncpy( persistConfig.process_name
- , workValue
- , sizeof(persistConfig.process_name) );
- goto done;
- }
- pch = (char *) strstr( persistkey, PERSIST_PROCESS_TYPE_KEY );
- if (pch != NULL)
- {
- strncpy( persistConfig.process_type
- , workValue
- , sizeof(persistConfig.process_type) );
- goto done;
- }
- pch = (char *) strstr( persistkey, PERSIST_PROGRAM_NAME_KEY );
- if (pch != NULL)
- {
- strncpy( persistConfig.program_name
- , workValue
- , sizeof(persistConfig.program_name) );
- goto done;
- }
- pch = (char *) strstr( persistkey, PERSIST_PROGRAM_ARGS_KEY );
- if (pch != NULL)
- {
- strncpy( persistConfig.program_args
- , workValue
- , sizeof(persistConfig.program_args) );
- goto done;
- }
- pch = (char *) strstr( persistkey, PERSIST_STDOUT_KEY );
- if (pch != NULL)
- {
- strncpy( persistConfig.std_out
- , workValue
- , sizeof(persistConfig.std_out) );
- goto done;
- }
- pch = (char *) strstr( persistkey, PERSIST_REQUIRES_DTM );
- if (pch != NULL)
- {
- persistConfig.requires_DTM = (strcasecmp(workValue,"Y") == 0)
- ? true : false;
- goto done;
- }
- pch = (char *) strstr( persistkey, PERSIST_RETRIES_KEY );
- if (pch != NULL)
- {
- // Set retries
- token1 = strtok( workValue, delimComma );
- if (token1)
- {
- persistConfig.persist_retries = atoi(token1);
- }
- // Set time window
- token2 = strtok( NULL, delimNone );
- if (token2)
- {
- persistConfig.persist_window = atoi(token2);
- }
- goto done;
- }
- pch = (char *) strstr( persistkey, PERSIST_ZONES_KEY );
- if (pch != NULL)
- {
- strncpy( persistConfig.persist_zones
- , workValue
- , sizeof(persistConfig.persist_zones) );
- goto done;
- }
- else
- {
- TRACE_EXIT;
- return( TCDBCORRUPT );
- }
-
-done:
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
-int CTcdbZstore::UpdatePNodeData( int pnid
- , const char *name
- , int excludedFirstCore
- , int excludedLastCore )
-{
- const char method_name[] = "CTcdbZstore::UpdatePNodeData";
- TRACE_ENTRY;
-
- if ( !IsInitialized() )
- {
- if (TcTraceSettings & (TC_TRACE_REGISTRY | TC_TRACE_REQUEST | TC_TRACE_INIT))
- {
- trace_printf( "%s@%d Zookeeper is not initialized for access!\n"
- , method_name, __LINE__);
- }
- TRACE_EXIT;
- return( TCNOTINIT );
- }
-
- if (TcTraceSettings & (TC_TRACE_NODE | TC_TRACE_REQUEST))
- {
- trace_printf( "%s@%d update pnode "
- "nodeName=%s, excFirstCore=%d, excLastCore=%d\n"
- "where pnid=%d)\n"
- , method_name, __LINE__
- , name
- , excludedFirstCore
- , excludedLastCore
- , pnid );
- }
-
- int rc;
- const char *sqlStmt;
- sqlStmt = "update or replace pnode "
- " set nodeName = ?, excFirstCore = ?, excLastCore = ?"
- " where pnode.pNid = :pNid";
-
- sqlite3_stmt *prepStmt = NULL;
- rc = sqlite3_prepare_v2( db_, sqlStmt, strlen(sqlStmt)+1, &prepStmt, NULL);
- if ( rc != SQLITE_OK )
- {
- char buf[TC_LOG_BUF_SIZE];
- snprintf( buf, sizeof(buf)
- , "[%s] prepare (%s) failed, error: %s\n"
- , method_name, sqlStmt, sqlite3_errmsg(db_) );
- TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
- else
- {
- rc = sqlite3_bind_text( prepStmt,
- 1,
- name, -1, SQLITE_STATIC );
- if ( rc != SQLITE_OK )
- {
- char buf[TC_LOG_BUF_SIZE];
- snprintf( buf, sizeof(buf)
- , "[%s] sqlite3_bind_text(name) failed, error: %s\n"
- , method_name, sqlite3_errmsg(db_) );
- TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
- rc = sqlite3_bind_int( prepStmt,
- 2,
- excludedFirstCore );
- if ( rc != SQLITE_OK )
- {
- char buf[TC_LOG_BUF_SIZE];
- snprintf( buf, sizeof(buf),
- "[%s] sqlite3_bind_int(excludedFirstCore) failed, error: %s\n"
- , method_name, sqlite3_errmsg(db_) );
- TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
- rc = sqlite3_bind_int( prepStmt,
- 3,
- excludedLastCore );
- if ( rc != SQLITE_OK )
- {
- char buf[TC_LOG_BUF_SIZE];
- snprintf( buf, sizeof(buf),
- "[%s] sqlite3_bind_int(excludedLastCore) failed, error: %s\n"
- , method_name, sqlite3_errmsg(db_) );
- TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
- rc = sqlite3_bind_int( prepStmt,
- sqlite3_bind_parameter_index( prepStmt, ":pNid" ),
- pnid );
- if ( rc != SQLITE_OK )
- {
- char buf[TC_LOG_BUF_SIZE];
- snprintf( buf, sizeof(buf),
- "[%s] sqlite3_bind_int(:pNid) failed, error: %s\n"
- , method_name, sqlite3_errmsg(db_) );
- TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
-
- rc = sqlite3_step( prepStmt );
- if (( rc != SQLITE_DONE ) && ( rc != SQLITE_ROW )
- && ( rc != SQLITE_CONSTRAINT ) )
- {
- char buf[TC_LOG_BUF_SIZE];
- snprintf( buf, sizeof(buf)
- , "[%s] (%s) failed, error: %s\n"
- " (nodeName=%s, excFirstCore=%d, excLastCore=%d) "
- " where pNid=%d "
- , method_name, sqlStmt, sqlite3_errmsg(db_)
- , name, excludedFirstCore, excludedLastCore, pnid );
- TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
- TRACE_EXIT;
- return( TCDBOPERROR );
- }
- }
-
- if ( prepStmt != NULL )
- {
- sqlite3_finalize( prepStmt );
- }
-
- TRACE_EXIT;
- return( TCSUCCESS );
-}
-
http://git-wip-us.apache.org/repos/asf/trafodion/blob/87849fcf/core/sqf/monitor/linux/tcdbzstore.h
----------------------------------------------------------------------
diff --git a/core/sqf/monitor/linux/tcdbzstore.h b/core/sqf/monitor/linux/tcdbzstore.h
deleted file mode 100644
index dc83f3e..0000000
--- a/core/sqf/monitor/linux/tcdbzstore.h
+++ /dev/null
@@ -1,130 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-//
-// @@@ START COPYRIGHT @@@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-// @@@ END COPYRIGHT @@@
-//
-///////////////////////////////////////////////////////////////////////////////
-#ifndef TCDBZSTORE_H_
-#define TCDBZSTORE_H_
-
-#include <stdlib.h>
-#include <sstream>
-#include <list>
-#include <string>
-#include "trafconfig.h"
-#include "zconfig.h"
-#include "tcdbstore.h"
-
-using namespace std;
-
-class CTcdbZstore : public CTcdbStore
-{
-public:
-
- CTcdbZstore( void );
- ~CTcdbZstore( void );
-
- int Close( void );
- int AddRegistryKey( const char *key );
- int AddRegistryProcess( const char *name );
- int AddRegistryClusterData( const char *key, const char *value );
- int AddRegistryProcessData( const char *procName
- , const char *key
- , const char *value );
- int AddUniqueString( int nid, int id, const char *uniqueStr );
- int DeleteNodeData( int pnid );
- int DeleteUniqueString( int nid );
- int GetNode( int nid
- , node_configuration_t &nodeConfig );
- int GetNode( const char *name
- , node_configuration_t &nodeConfig );
- int GetNodes( int &count
- , int max
- , node_configuration_t nodeConfig[] );
- int GetPNode( int pnid
- , physical_node_configuration_t &pnodeConfig );
- int GetPNode( const char *name
- , physical_node_configuration_t &pnodeConfig );
- int GetSNodes( int &count
- , int max
- , physical_node_configuration_t pNodeConfig[] );
- int GetPersistProcess( const char *persistPrefix
- , persist_configuration_t &persistConfig );
- int GetPersistProcessKeys( const char *persistProcessKeys );
- int GetRegistryClusterSet( int &count
- , int max
- , registry_configuration_t registryConfig[] );
- int GetRegistryProcessSet( int &count
- , int max
- , registry_configuration_t registryConfig[] );
- int GetUniqueString( int nid, int id, const char *uniqStr );
- int GetUniqueStringId( int nid
- , const char *uniqStr
- , int &id );
- int GetUniqueStringIdMax( int nid, int &id );
- int Initialize( void );
- bool IsInitialized( void );
- int SaveLNodeData( int nid
- , int pnid
- , int firstCore
- , int lastCore
- , int processors
- , int roles );
- int SavePNodeData( const char *name
- , int pnid
- , int excludedFirstCore
- , int excludedLastCore );
-
-protected:
-private:
- int GetSNodeData( int pnid
- , const char *nodename
- , int excfirstcore
- , int exclastcore
- , physical_node_configuration_t &spareNodeConfig );
- void SetLNodeData( int nid
- , int pnid
- , const char *nodename
- , int excfirstcore
- , int exclastcore
- , int firstcore
- , int lastcore
- , int processors
- , int roles
- , node_configuration_t &nodeConfig );
- void SetPNodeData( int pnid
- , const char *nodename
- , int excfirstcore
- , int exclastcore
- , physical_node_configuration_t &pnodeConfig );
- int SetPersistProcessData( const char *persistkey
- , const char *persistvalue
- , persist_configuration_t &persistConfig );
- int UpdatePNodeData( int pnid
- , const char *name
- , int excludedFirstCore
- , int excludedLastCore );
-
- CZConfig zConfig_;
-};
-
-
-#endif /* TCDBZSTORE_H_ */