[TD-63] [TD-61] change the interface of acct and grant
This commit is contained in:
parent
63f825a7e6
commit
306fde55fd
|
@ -18,6 +18,9 @@ IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM))
|
||||||
IF (TD_ACCOUNT)
|
IF (TD_ACCOUNT)
|
||||||
TARGET_LINK_LIBRARIES(account)
|
TARGET_LINK_LIBRARIES(account)
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
IF (TD_GRANT)
|
||||||
|
TARGET_LINK_LIBRARIES(grant)
|
||||||
|
ENDIF ()
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -21,18 +21,21 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
#include "mnode.h"
|
#include "mnode.h"
|
||||||
|
|
||||||
int32_t mgmtInitAccts();
|
typedef enum {
|
||||||
void mgmtCleanUpAccts();
|
TSDB_ACCT_USER,
|
||||||
SAcctObj *mgmtGetAcct(char *acctName);
|
TSDB_ACCT_DB,
|
||||||
|
TSDB_ACCT_TABLE
|
||||||
|
} EAcctGrantType;
|
||||||
|
|
||||||
int32_t mgmtCheckUserLimit(SAcctObj *pAcct);
|
int32_t acctInit();
|
||||||
int32_t mgmtCheckDbLimit(SAcctObj *pAcct);
|
void acctCleanUp();
|
||||||
int32_t mgmtCheckTableLimit(SAcctObj *pAcct);
|
SAcctObj *acctGetAcct(char *acctName);
|
||||||
|
int32_t acctCheck(SAcctObj *pAcct, EAcctGrantType type);
|
||||||
|
|
||||||
int32_t mgmtAddDbIntoAcct(SAcctObj *pAcct, SDbObj *pDb);
|
int32_t acctAddDb(SAcctObj *pAcct, SDbObj *pDb);
|
||||||
int32_t mgmtRemoveDbFromAcct(SAcctObj *pAcct, SDbObj *pDb);
|
int32_t acctRemoveDb(SAcctObj *pAcct, SDbObj *pDb);
|
||||||
int32_t mgmtAddUserIntoAcct(SAcctObj *pAcct, SUserObj *pUser);
|
int32_t acctAddUser(SAcctObj *pAcct, SUserObj *pUser);
|
||||||
int32_t mgmtRemoveUserFromAcct(SAcctObj *pAcct, SUserObj *pUser);
|
int32_t acctRemoveUser(SAcctObj *pAcct, SUserObj *pUser);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,20 +19,30 @@
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
"C" {
|
"C" {
|
||||||
#endif
|
#endif
|
||||||
#include "mnode.h"
|
|
||||||
|
|
||||||
bool mgmtCheckExpired();
|
typedef enum {
|
||||||
void mgmtParseParameterKFp();
|
TSDB_GRANT_ALL,
|
||||||
void mgmtSendMsgToMaster();
|
TSDB_GRANT_TIME,
|
||||||
void mgmtSetCurStorage(uint64_t storage);
|
TSDB_GRANT_USER,
|
||||||
void mgmtAddTimeSeries(SAcctObj *pAcct, uint32_t timeSeriesNum);
|
TSDB_GRANT_DB,
|
||||||
void mgmtRestoreTimeSeries(SAcctObj *pAcct, uint32_t timeseries);
|
TSDB_GRANT_TIMESERIES,
|
||||||
|
TSDB_GRANT_DNODE,
|
||||||
|
TSDB_GRANT_ACCT,
|
||||||
|
TSDB_GRANT_STORAGE,
|
||||||
|
TSDB_GRANT_SPEED,
|
||||||
|
TSDB_GRANT_QUERY_TIME,
|
||||||
|
TSDB_GRANT_CONNS,
|
||||||
|
TSDB_GRANT_STREAMS,
|
||||||
|
TSDB_GRANT_CPU_CORES,
|
||||||
|
} EGrantType;
|
||||||
|
|
||||||
int32_t mgmtCheckTimeSeries(uint32_t timeseries);
|
int32_t grantInit();
|
||||||
int32_t mgmtCheckUserGrant();
|
void grantCleanUp();
|
||||||
int32_t mgmtCheckDbGrant();
|
void grantParseParameter();
|
||||||
int32_t mgmtCheckDnodeGrant();
|
int32_t grantCheck(EGrantType grant);
|
||||||
int32_t mgmtCheckAccts();
|
void grantReset(EGrantType grant, uint64_t value);
|
||||||
|
void grantAdd(EGrantType grant, uint64_t value);
|
||||||
|
void grantRestore(EGrantType grant, uint64_t value);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,28 +21,19 @@
|
||||||
|
|
||||||
static SAcctObj tsAcctObj = {0};
|
static SAcctObj tsAcctObj = {0};
|
||||||
|
|
||||||
int32_t mgmtInitAccts() {
|
int32_t acctInit() {
|
||||||
tsAcctObj.acctId = 0;
|
tsAcctObj.acctId = 0;
|
||||||
strcpy(tsAcctObj.user, "root");
|
strcpy(tsAcctObj.user, "root");
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
SAcctObj *mgmtGetAcct(char *acctName) { return &tsAcctObj; }
|
void acctCleanUp() {}
|
||||||
|
SAcctObj *acctGetAcct(char *acctName) { return &tsAcctObj; }
|
||||||
|
int32_t acctCheck(SAcctObj *pAcct, EAcctGrantType type) { return TSDB_CODE_SUCCESS; }
|
||||||
|
|
||||||
void mgmtCleanUpAccts() {}
|
int32_t acctAddDb(SAcctObj *pAcct, SDbObj *pDb) { return TSDB_CODE_SUCCESS; }
|
||||||
|
int32_t acctRemoveDb(SAcctObj *pAcct, SDbObj *pDb) { return TSDB_CODE_SUCCESS; }
|
||||||
int32_t mgmtAddDbIntoAcct(SAcctObj *pAcct, SDbObj *pDb) { return TSDB_CODE_SUCCESS; }
|
int32_t acctAddUser(SAcctObj *pAcct, SUserObj *pUser) { return TSDB_CODE_SUCCESS; }
|
||||||
|
int32_t acctRemoveUser(SAcctObj *pAcct, SUserObj *pUser) { return TSDB_CODE_SUCCESS; }
|
||||||
int32_t mgmtRemoveDbFromAcct(SAcctObj *pAcct, SDbObj *pDb) { return TSDB_CODE_SUCCESS; }
|
|
||||||
|
|
||||||
int32_t mgmtAddUserIntoAcct(SAcctObj *pAcct, SUserObj *pUser) { return TSDB_CODE_SUCCESS; }
|
|
||||||
|
|
||||||
int32_t mgmtRemoveUserFromAcct(SAcctObj *pAcct, SUserObj *pUser) { return TSDB_CODE_SUCCESS; }
|
|
||||||
|
|
||||||
int32_t mgmtCheckUserLimit(SAcctObj *pAcct) { return TSDB_CODE_SUCCESS; }
|
|
||||||
|
|
||||||
int32_t mgmtCheckDbLimit(SAcctObj *pAcct) { return TSDB_CODE_SUCCESS; }
|
|
||||||
|
|
||||||
int32_t mgmtCheckTableLimit(SAcctObj *pAcct) { return TSDB_CODE_SUCCESS; }
|
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -48,7 +48,7 @@
|
||||||
#include "mgmtVgroup.h"
|
#include "mgmtVgroup.h"
|
||||||
#include "mgmtUser.h"
|
#include "mgmtUser.h"
|
||||||
|
|
||||||
static void *tsChildTableSdb;
|
void *tsChildTableSdb;
|
||||||
static int32_t tsChildTableUpdateSize;
|
static int32_t tsChildTableUpdateSize;
|
||||||
static void mgmtProcessMultiTableMetaMsg(SQueuedMsg *queueMsg);
|
static void mgmtProcessMultiTableMetaMsg(SQueuedMsg *queueMsg);
|
||||||
static void mgmtProcessCreateTableRsp(SRpcMsg *rpcMsg);
|
static void mgmtProcessCreateTableRsp(SRpcMsg *rpcMsg);
|
||||||
|
@ -84,7 +84,7 @@ static int32_t mgmtChildTableActionInsert(SSdbOperDesc *pOper) {
|
||||||
return TSDB_CODE_INVALID_DB;
|
return TSDB_CODE_INVALID_DB;
|
||||||
}
|
}
|
||||||
|
|
||||||
SAcctObj *pAcct = mgmtGetAcct(pDb->cfg.acct);
|
SAcctObj *pAcct = acctGetAcct(pDb->cfg.acct);
|
||||||
if (pAcct == NULL) {
|
if (pAcct == NULL) {
|
||||||
mError("ctable:%s, account:%s not exists", pTable->info.tableId, pDb->cfg.acct);
|
mError("ctable:%s, account:%s not exists", pTable->info.tableId, pDb->cfg.acct);
|
||||||
return TSDB_CODE_INVALID_ACCT;
|
return TSDB_CODE_INVALID_ACCT;
|
||||||
|
@ -93,9 +93,11 @@ static int32_t mgmtChildTableActionInsert(SSdbOperDesc *pOper) {
|
||||||
if (pTable->info.type == TSDB_CHILD_TABLE) {
|
if (pTable->info.type == TSDB_CHILD_TABLE) {
|
||||||
pTable->superTable = mgmtGetSuperTable(pTable->superTableId);
|
pTable->superTable = mgmtGetSuperTable(pTable->superTableId);
|
||||||
pTable->superTable->numOfTables++;
|
pTable->superTable->numOfTables++;
|
||||||
mgmtAddTimeSeries(pAcct, pTable->superTable->numOfColumns - 1);
|
grantAdd(TSDB_GRANT_TIMESERIES, pTable->superTable->numOfColumns - 1);
|
||||||
|
pAcct->acctInfo.numOfTimeSeries += (pTable->superTable->numOfColumns - 1);
|
||||||
} else {
|
} else {
|
||||||
mgmtAddTimeSeries(pAcct, pTable->numOfColumns - 1);
|
grantAdd(TSDB_GRANT_TIMESERIES, pTable->numOfColumns - 1);
|
||||||
|
pAcct->acctInfo.numOfTimeSeries += (pTable->numOfColumns - 1);
|
||||||
}
|
}
|
||||||
mgmtAddTableIntoDb(pDb);
|
mgmtAddTableIntoDb(pDb);
|
||||||
mgmtAddTableIntoVgroup(pVgroup, pTable);
|
mgmtAddTableIntoVgroup(pVgroup, pTable);
|
||||||
|
@ -120,17 +122,19 @@ static int32_t mgmtChildTableActionDelete(SSdbOperDesc *pOper) {
|
||||||
return TSDB_CODE_INVALID_DB;
|
return TSDB_CODE_INVALID_DB;
|
||||||
}
|
}
|
||||||
|
|
||||||
SAcctObj *pAcct = mgmtGetAcct(pDb->cfg.acct);
|
SAcctObj *pAcct = acctGetAcct(pDb->cfg.acct);
|
||||||
if (pAcct == NULL) {
|
if (pAcct == NULL) {
|
||||||
mError("ctable:%s, account:%s not exists", pTable->info.tableId, pDb->cfg.acct);
|
mError("ctable:%s, account:%s not exists", pTable->info.tableId, pDb->cfg.acct);
|
||||||
return TSDB_CODE_INVALID_ACCT;
|
return TSDB_CODE_INVALID_ACCT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pTable->info.type == TSDB_CHILD_TABLE) {
|
if (pTable->info.type == TSDB_CHILD_TABLE) {
|
||||||
mgmtRestoreTimeSeries(pAcct, pTable->superTable->numOfColumns - 1);
|
grantRestore(TSDB_GRANT_TIMESERIES, pTable->superTable->numOfColumns - 1);
|
||||||
|
pAcct->acctInfo.numOfTimeSeries -= (pTable->superTable->numOfColumns - 1);
|
||||||
pTable->superTable->numOfTables--;
|
pTable->superTable->numOfTables--;
|
||||||
} else {
|
} else {
|
||||||
mgmtRestoreTimeSeries(pAcct, pTable->numOfColumns - 1);
|
grantRestore(TSDB_GRANT_TIMESERIES, pTable->numOfColumns - 1);
|
||||||
|
pAcct->acctInfo.numOfTimeSeries -= (pTable->numOfColumns - 1);
|
||||||
}
|
}
|
||||||
mgmtRemoveTableFromDb(pDb);
|
mgmtRemoveTableFromDb(pDb);
|
||||||
mgmtRemoveTableFromVgroup(pVgroup, pTable);
|
mgmtRemoveTableFromVgroup(pVgroup, pTable);
|
||||||
|
@ -464,9 +468,9 @@ static SChildTableObj* mgmtDoCreateChildTable(SCMCreateTableMsg *pCreate, SVgObj
|
||||||
void mgmtCreateChildTable(SQueuedMsg *pMsg) {
|
void mgmtCreateChildTable(SQueuedMsg *pMsg) {
|
||||||
SCMCreateTableMsg *pCreate = pMsg->pCont;
|
SCMCreateTableMsg *pCreate = pMsg->pCont;
|
||||||
|
|
||||||
int32_t code = mgmtCheckTimeSeries(htons(pCreate->numOfColumns));
|
int32_t code = grantCheck(TSDB_GRANT_TIMESERIES);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
mError("table:%s, failed to create, timeseries exceed the limit", pCreate->tableId);
|
mError("table:%s, failed to create, grant not", pCreate->tableId);
|
||||||
mgmtSendSimpleResp(pMsg->thandle, code);
|
mgmtSendSimpleResp(pMsg->thandle, code);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -634,7 +638,7 @@ static int32_t mgmtAddNormalTableColumn(SChildTableObj *pTable, SSchema schema[]
|
||||||
return TSDB_CODE_APP_ERROR;
|
return TSDB_CODE_APP_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
SAcctObj *pAcct = mgmtGetAcct(pDb->cfg.acct);
|
SAcctObj *pAcct = acctGetAcct(pDb->cfg.acct);
|
||||||
if (pAcct == NULL) {
|
if (pAcct == NULL) {
|
||||||
mError("DB: %s not belongs to andy account", pDb->name);
|
mError("DB: %s not belongs to andy account", pDb->name);
|
||||||
return TSDB_CODE_APP_ERROR;
|
return TSDB_CODE_APP_ERROR;
|
||||||
|
@ -677,7 +681,7 @@ static int32_t mgmtDropNormalTableColumnByName(SChildTableObj *pTable, char *col
|
||||||
return TSDB_CODE_APP_ERROR;
|
return TSDB_CODE_APP_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
SAcctObj *pAcct = mgmtGetAcct(pDb->cfg.acct);
|
SAcctObj *pAcct = acctGetAcct(pDb->cfg.acct);
|
||||||
if (pAcct == NULL) {
|
if (pAcct == NULL) {
|
||||||
mError("DB: %s not belongs to any account", pDb->name);
|
mError("DB: %s not belongs to any account", pDb->name);
|
||||||
return TSDB_CODE_APP_ERROR;
|
return TSDB_CODE_APP_ERROR;
|
||||||
|
|
|
@ -54,7 +54,7 @@ static int32_t mgmtDbActionDestroy(SSdbOperDesc *pOper) {
|
||||||
|
|
||||||
static int32_t mgmtDbActionInsert(SSdbOperDesc *pOper) {
|
static int32_t mgmtDbActionInsert(SSdbOperDesc *pOper) {
|
||||||
SDbObj *pDb = pOper->pObj;
|
SDbObj *pDb = pOper->pObj;
|
||||||
SAcctObj *pAcct = mgmtGetAcct(pDb->cfg.acct);
|
SAcctObj *pAcct = acctGetAcct(pDb->cfg.acct);
|
||||||
|
|
||||||
pDb->pHead = NULL;
|
pDb->pHead = NULL;
|
||||||
pDb->pTail = NULL;
|
pDb->pTail = NULL;
|
||||||
|
@ -65,7 +65,7 @@ static int32_t mgmtDbActionInsert(SSdbOperDesc *pOper) {
|
||||||
pDb->numOfSuperTables = 0;
|
pDb->numOfSuperTables = 0;
|
||||||
|
|
||||||
if (pAcct != NULL) {
|
if (pAcct != NULL) {
|
||||||
mgmtAddDbIntoAcct(pAcct, pDb);
|
acctAddDb(pAcct, pDb);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
mError("db:%s, acct:%s info not exist in sdb", pDb->name, pDb->cfg.acct);
|
mError("db:%s, acct:%s info not exist in sdb", pDb->name, pDb->cfg.acct);
|
||||||
|
@ -77,9 +77,9 @@ static int32_t mgmtDbActionInsert(SSdbOperDesc *pOper) {
|
||||||
|
|
||||||
static int32_t mgmtDbActionDelete(SSdbOperDesc *pOper) {
|
static int32_t mgmtDbActionDelete(SSdbOperDesc *pOper) {
|
||||||
SDbObj *pDb = pOper->pObj;
|
SDbObj *pDb = pOper->pObj;
|
||||||
SAcctObj *pAcct = mgmtGetAcct(pDb->cfg.acct);
|
SAcctObj *pAcct = acctGetAcct(pDb->cfg.acct);
|
||||||
|
|
||||||
mgmtRemoveDbFromAcct(pAcct, pDb);
|
acctRemoveDb(pAcct, pDb);
|
||||||
mgmtDropAllChildTables(pDb);
|
mgmtDropAllChildTables(pDb);
|
||||||
mgmtDropAllSuperTables(pDb);
|
mgmtDropAllSuperTables(pDb);
|
||||||
mgmtDropAllVgroups(pDb);
|
mgmtDropAllVgroups(pDb);
|
||||||
|
@ -277,7 +277,7 @@ static int32_t mgmtCheckDbParams(SCMCreateDbMsg *pCreate) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t mgmtCreateDb(SAcctObj *pAcct, SCMCreateDbMsg *pCreate) {
|
static int32_t mgmtCreateDb(SAcctObj *pAcct, SCMCreateDbMsg *pCreate) {
|
||||||
int32_t code = mgmtCheckDbLimit(pAcct);
|
int32_t code = acctCheck(pAcct, TSDB_ACCT_DB);
|
||||||
if (code != 0) {
|
if (code != 0) {
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
@ -292,7 +292,7 @@ static int32_t mgmtCreateDb(SAcctObj *pAcct, SCMCreateDbMsg *pCreate) {
|
||||||
|
|
||||||
assert(pCreate->daysToKeep1 <= pCreate->daysToKeep2 && pCreate->daysToKeep2 <= pCreate->daysToKeep);
|
assert(pCreate->daysToKeep1 <= pCreate->daysToKeep2 && pCreate->daysToKeep2 <= pCreate->daysToKeep);
|
||||||
|
|
||||||
code = mgmtCheckDbGrant();
|
code = grantCheck(TSDB_GRANT_DB);
|
||||||
if (code != 0) {
|
if (code != 0) {
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
@ -692,7 +692,7 @@ static void mgmtProcessCreateDbMsg(SQueuedMsg *pMsg) {
|
||||||
pCreate->rowsInFileBlock = htonl(pCreate->rowsInFileBlock);
|
pCreate->rowsInFileBlock = htonl(pCreate->rowsInFileBlock);
|
||||||
|
|
||||||
int32_t code;
|
int32_t code;
|
||||||
if (mgmtCheckExpired()) {
|
if (grantCheck(TSDB_GRANT_TIME) != TSDB_CODE_SUCCESS) {
|
||||||
code = TSDB_CODE_GRANT_EXPIRED;
|
code = TSDB_CODE_GRANT_EXPIRED;
|
||||||
} else if (!pMsg->pUser->writeAuth) {
|
} else if (!pMsg->pUser->writeAuth) {
|
||||||
code = TSDB_CODE_NO_RIGHTS;
|
code = TSDB_CODE_NO_RIGHTS;
|
||||||
|
@ -771,7 +771,7 @@ static void mgmtProcessAlterDbMsg(SQueuedMsg *pMsg) {
|
||||||
SCMAlterDbMsg *pAlter = pMsg->pCont;
|
SCMAlterDbMsg *pAlter = pMsg->pCont;
|
||||||
mTrace("db:%s, alter db msg is received from thandle:%p", pAlter->db, pMsg->thandle);
|
mTrace("db:%s, alter db msg is received from thandle:%p", pAlter->db, pMsg->thandle);
|
||||||
|
|
||||||
if (mgmtCheckExpired()) {
|
if (grantCheck(TSDB_GRANT_TIME) != TSDB_CODE_SUCCESS) {
|
||||||
mError("db:%s, failed to alter, grant expired", pAlter->db);
|
mError("db:%s, failed to alter, grant expired", pAlter->db);
|
||||||
mgmtSendSimpleResp(pMsg->thandle, TSDB_CODE_GRANT_EXPIRED);
|
mgmtSendSimpleResp(pMsg->thandle, TSDB_CODE_GRANT_EXPIRED);
|
||||||
return;
|
return;
|
||||||
|
@ -842,7 +842,7 @@ static void mgmtProcessDropDbMsg(SQueuedMsg *pMsg) {
|
||||||
SCMDropDbMsg *pDrop = pMsg->pCont;
|
SCMDropDbMsg *pDrop = pMsg->pCont;
|
||||||
mTrace("db:%s, drop db msg is received from thandle:%p", pDrop->db, pMsg->thandle);
|
mTrace("db:%s, drop db msg is received from thandle:%p", pDrop->db, pMsg->thandle);
|
||||||
|
|
||||||
if (mgmtCheckExpired()) {
|
if (grantCheck(TSDB_GRANT_TIME) != TSDB_CODE_SUCCESS) {
|
||||||
mError("db:%s, failed to drop, grant expired", pDrop->db);
|
mError("db:%s, failed to drop, grant expired", pDrop->db);
|
||||||
mgmtSendSimpleResp(pMsg->thandle, TSDB_CODE_GRANT_EXPIRED);
|
mgmtSendSimpleResp(pMsg->thandle, TSDB_CODE_GRANT_EXPIRED);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -16,18 +16,15 @@
|
||||||
#define _DEFAULT_SOURCE
|
#define _DEFAULT_SOURCE
|
||||||
#ifndef _GRANT
|
#ifndef _GRANT
|
||||||
#include "os.h"
|
#include "os.h"
|
||||||
|
#include "tlog.h"
|
||||||
#include "mgmtGrant.h"
|
#include "mgmtGrant.h"
|
||||||
|
|
||||||
bool mgmtCheckExpired() { return false; }
|
int32_t grantInit() { return TSDB_CODE_SUCCESS; }
|
||||||
void mgmtParseParameterKFp() {}
|
void grantCleanUp() {}
|
||||||
void mgmtSendMsgToMaster() {}
|
void grantParseParameter() { mError("can't parsed parameter k"); }
|
||||||
void mgmtSetCurStorage(uint64_t storage) {}
|
int32_t grantCheck(EGrantType grant) { return true; }
|
||||||
void mgmtAddTimeSeries(SAcctObj *pAcct, uint32_t timeSeriesNum) {}
|
void grantReset(EGrantType grant, uint64_t value) {}
|
||||||
void mgmtRestoreTimeSeries(SAcctObj *pAcct, uint32_t timeseries) {}
|
void grantAdd(EGrantType grant, uint64_t value) {}
|
||||||
int32_t mgmtCheckTimeSeries(uint32_t timeseries) { return TSDB_CODE_SUCCESS; }
|
void grantRestore(EGrantType grant, uint64_t value) {}
|
||||||
int32_t mgmtCheckUserGrant() { return TSDB_CODE_SUCCESS; }
|
|
||||||
int32_t mgmtCheckDbGrant() { return TSDB_CODE_SUCCESS; }
|
|
||||||
int32_t mgmtCheckDnodeGrant() { return TSDB_CODE_SUCCESS; }
|
|
||||||
int32_t mgmtCheckAccts() { return TSDB_CODE_SUCCESS; }
|
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -25,6 +25,7 @@
|
||||||
#include "mgmtDClient.h"
|
#include "mgmtDClient.h"
|
||||||
#include "mgmtDnode.h"
|
#include "mgmtDnode.h"
|
||||||
#include "mgmtDServer.h"
|
#include "mgmtDServer.h"
|
||||||
|
#include "mgmtGrant.h"
|
||||||
#include "mgmtMnode.h"
|
#include "mgmtMnode.h"
|
||||||
#include "mgmtSdb.h"
|
#include "mgmtSdb.h"
|
||||||
#include "mgmtVgroup.h"
|
#include "mgmtVgroup.h"
|
||||||
|
@ -73,11 +74,16 @@ int32_t mgmtStartSystem() {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mgmtInitAccts() < 0) {
|
if (acctInit() < 0) {
|
||||||
mError("failed to init accts");
|
mError("failed to init accts");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (grantInit() < 0) {
|
||||||
|
mError("failed to init grants");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
if (mgmtInitUsers() < 0) {
|
if (mgmtInitUsers() < 0) {
|
||||||
mError("failed to init users");
|
mError("failed to init users");
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -138,6 +144,7 @@ void mgmtStopSystem() {
|
||||||
|
|
||||||
void mgmtCleanUpSystem() {
|
void mgmtCleanUpSystem() {
|
||||||
mPrint("starting to clean up mgmt");
|
mPrint("starting to clean up mgmt");
|
||||||
|
grantCleanUp();
|
||||||
mgmtCleanupMnodes();
|
mgmtCleanupMnodes();
|
||||||
mgmtCleanupBalance();
|
mgmtCleanupBalance();
|
||||||
mgmtCleanUpShell();
|
mgmtCleanUpShell();
|
||||||
|
@ -148,7 +155,7 @@ void mgmtCleanUpSystem() {
|
||||||
mgmtCleanUpDbs();
|
mgmtCleanUpDbs();
|
||||||
mgmtCleanUpDnodes();
|
mgmtCleanUpDnodes();
|
||||||
mgmtCleanUpUsers();
|
mgmtCleanUpUsers();
|
||||||
mgmtCleanUpAccts();
|
acctCleanUp();
|
||||||
taosTmrCleanUp(tsMgmtTmr);
|
taosTmrCleanUp(tsMgmtTmr);
|
||||||
mPrint("mgmt is cleaned up");
|
mPrint("mgmt is cleaned up");
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,7 +137,7 @@ static void mgmtProcessMsgFromShell(SRpcMsg *rpcMsg) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mgmtCheckExpired()) {
|
if (grantCheck(TSDB_GRANT_TIME) != TSDB_CODE_SUCCESS) {
|
||||||
mgmtSendSimpleResp(rpcMsg->handle, TSDB_CODE_GRANT_EXPIRED);
|
mgmtSendSimpleResp(rpcMsg->handle, TSDB_CODE_GRANT_EXPIRED);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -373,12 +373,12 @@ static void mgmtProcessConnectMsg(SQueuedMsg *pMsg) {
|
||||||
goto connect_over;
|
goto connect_over;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mgmtCheckExpired()) {
|
if (grantCheck(TSDB_GRANT_TIME) != TSDB_CODE_SUCCESS) {
|
||||||
code = TSDB_CODE_GRANT_EXPIRED;
|
code = TSDB_CODE_GRANT_EXPIRED;
|
||||||
goto connect_over;
|
goto connect_over;
|
||||||
}
|
}
|
||||||
|
|
||||||
SAcctObj *pAcct = mgmtGetAcct(pUser->acct);
|
SAcctObj *pAcct = acctGetAcct(pUser->acct);
|
||||||
if (pAcct == NULL) {
|
if (pAcct == NULL) {
|
||||||
code = TSDB_CODE_INVALID_ACCT;
|
code = TSDB_CODE_INVALID_ACCT;
|
||||||
goto connect_over;
|
goto connect_over;
|
||||||
|
|
|
@ -253,7 +253,7 @@ static int32_t mgmtAddSuperTableTag(SSuperTableObj *pStable, SSchema schema[], i
|
||||||
return TSDB_CODE_APP_ERROR;
|
return TSDB_CODE_APP_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
SAcctObj *pAcct = mgmtGetAcct(pDb->cfg.acct);
|
SAcctObj *pAcct = acctGetAcct(pDb->cfg.acct);
|
||||||
if (pAcct == NULL) {
|
if (pAcct == NULL) {
|
||||||
mError("DB: %s not belongs to andy account", pDb->name);
|
mError("DB: %s not belongs to andy account", pDb->name);
|
||||||
return TSDB_CODE_APP_ERROR;
|
return TSDB_CODE_APP_ERROR;
|
||||||
|
@ -293,7 +293,7 @@ static int32_t mgmtDropSuperTableTag(SSuperTableObj *pStable, char *tagName) {
|
||||||
return TSDB_CODE_APP_ERROR;
|
return TSDB_CODE_APP_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
SAcctObj *pAcct = mgmtGetAcct(pDb->cfg.acct);
|
SAcctObj *pAcct = acctGetAcct(pDb->cfg.acct);
|
||||||
if (pAcct == NULL) {
|
if (pAcct == NULL) {
|
||||||
mError("DB: %s not belongs to any account", pDb->name);
|
mError("DB: %s not belongs to any account", pDb->name);
|
||||||
return TSDB_CODE_APP_ERROR;
|
return TSDB_CODE_APP_ERROR;
|
||||||
|
@ -381,7 +381,7 @@ static int32_t mgmtAddSuperTableColumn(SSuperTableObj *pStable, SSchema schema[]
|
||||||
return TSDB_CODE_APP_ERROR;
|
return TSDB_CODE_APP_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
SAcctObj *pAcct = mgmtGetAcct(pDb->cfg.acct);
|
SAcctObj *pAcct = acctGetAcct(pDb->cfg.acct);
|
||||||
if (pAcct == NULL) {
|
if (pAcct == NULL) {
|
||||||
mError("DB: %s not belongs to andy account", pDb->name);
|
mError("DB: %s not belongs to andy account", pDb->name);
|
||||||
return TSDB_CODE_APP_ERROR;
|
return TSDB_CODE_APP_ERROR;
|
||||||
|
@ -420,7 +420,7 @@ static int32_t mgmtDropSuperTableColumnByName(SSuperTableObj *pStable, char *col
|
||||||
return TSDB_CODE_APP_ERROR;
|
return TSDB_CODE_APP_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
SAcctObj *pAcct = mgmtGetAcct(pDb->cfg.acct);
|
SAcctObj *pAcct = acctGetAcct(pDb->cfg.acct);
|
||||||
if (pAcct == NULL) {
|
if (pAcct == NULL) {
|
||||||
mError("DB: %s not belongs to any account", pDb->name);
|
mError("DB: %s not belongs to any account", pDb->name);
|
||||||
return TSDB_CODE_APP_ERROR;
|
return TSDB_CODE_APP_ERROR;
|
||||||
|
|
|
@ -44,10 +44,10 @@ static int32_t mgmtUserActionDestroy(SSdbOperDesc *pOper) {
|
||||||
|
|
||||||
static int32_t mgmtUserActionInsert(SSdbOperDesc *pOper) {
|
static int32_t mgmtUserActionInsert(SSdbOperDesc *pOper) {
|
||||||
SUserObj *pUser = pOper->pObj;
|
SUserObj *pUser = pOper->pObj;
|
||||||
SAcctObj *pAcct = mgmtGetAcct(pUser->acct);
|
SAcctObj *pAcct = acctGetAcct(pUser->acct);
|
||||||
|
|
||||||
if (pAcct != NULL) {
|
if (pAcct != NULL) {
|
||||||
mgmtAddUserIntoAcct(pAcct, pUser);
|
acctAddUser(pAcct, pUser);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
mError("user:%s, acct:%s info not exist in sdb", pUser->user, pUser->acct);
|
mError("user:%s, acct:%s info not exist in sdb", pUser->user, pUser->acct);
|
||||||
|
@ -59,9 +59,9 @@ static int32_t mgmtUserActionInsert(SSdbOperDesc *pOper) {
|
||||||
|
|
||||||
static int32_t mgmtUserActionDelete(SSdbOperDesc *pOper) {
|
static int32_t mgmtUserActionDelete(SSdbOperDesc *pOper) {
|
||||||
SUserObj *pUser = pOper->pObj;
|
SUserObj *pUser = pOper->pObj;
|
||||||
SAcctObj *pAcct = mgmtGetAcct(pUser->acct);
|
SAcctObj *pAcct = acctGetAcct(pUser->acct);
|
||||||
|
|
||||||
mgmtRemoveUserFromAcct(pAcct, pUser);
|
acctRemoveUser(pAcct, pUser);
|
||||||
|
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -114,7 +114,7 @@ int32_t mgmtInitUsers() {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
SAcctObj *pAcct = mgmtGetAcct("root");
|
SAcctObj *pAcct = acctGetAcct("root");
|
||||||
mgmtCreateUser(pAcct, "root", "taosdata");
|
mgmtCreateUser(pAcct, "root", "taosdata");
|
||||||
mgmtCreateUser(pAcct, "monitor", tsInternalPass);
|
mgmtCreateUser(pAcct, "monitor", tsInternalPass);
|
||||||
mgmtCreateUser(pAcct, "_root", tsInternalPass);
|
mgmtCreateUser(pAcct, "_root", tsInternalPass);
|
||||||
|
@ -155,7 +155,7 @@ static int32_t mgmtUpdateUser(SUserObj *pUser) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t mgmtCreateUser(SAcctObj *pAcct, char *name, char *pass) {
|
int32_t mgmtCreateUser(SAcctObj *pAcct, char *name, char *pass) {
|
||||||
int32_t code = mgmtCheckUserLimit(pAcct);
|
int32_t code = acctCheck(pAcct, TSDB_ACCT_USER);
|
||||||
if (code != 0) {
|
if (code != 0) {
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
@ -170,8 +170,8 @@ int32_t mgmtCreateUser(SAcctObj *pAcct, char *name, char *pass) {
|
||||||
return TSDB_CODE_USER_ALREADY_EXIST;
|
return TSDB_CODE_USER_ALREADY_EXIST;
|
||||||
}
|
}
|
||||||
|
|
||||||
code = mgmtCheckUserGrant();
|
code = grantCheck(TSDB_GRANT_USER);
|
||||||
if (code != 0) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,10 +9,6 @@ IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM))
|
||||||
AUX_SOURCE_DIRECTORY(src SRC)
|
AUX_SOURCE_DIRECTORY(src SRC)
|
||||||
ADD_LIBRARY(tutil ${SRC})
|
ADD_LIBRARY(tutil ${SRC})
|
||||||
TARGET_LINK_LIBRARIES(tutil thirdparty pthread os m rt)
|
TARGET_LINK_LIBRARIES(tutil thirdparty pthread os m rt)
|
||||||
IF (TD_CLUSTER)
|
|
||||||
ADD_DEFINITIONS(-DUSE_LIBICONV)
|
|
||||||
TARGET_LINK_LIBRARIES(tutil iconv)
|
|
||||||
ELSE()
|
|
||||||
FIND_PATH(ICONV_INCLUDE_EXIST iconv.h /usr/include/ /usr/local/include/)
|
FIND_PATH(ICONV_INCLUDE_EXIST iconv.h /usr/include/ /usr/local/include/)
|
||||||
IF (ICONV_INCLUDE_EXIST)
|
IF (ICONV_INCLUDE_EXIST)
|
||||||
ADD_DEFINITIONS(-DUSE_LIBICONV)
|
ADD_DEFINITIONS(-DUSE_LIBICONV)
|
||||||
|
@ -28,7 +24,6 @@ IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM))
|
||||||
ELSE ()
|
ELSE ()
|
||||||
MESSAGE(STATUS "Failed to find iconv, use default encoding method")
|
MESSAGE(STATUS "Failed to find iconv, use default encoding method")
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
ENDIF ()
|
|
||||||
ELSEIF (TD_WINDOWS_64)
|
ELSEIF (TD_WINDOWS_64)
|
||||||
ADD_DEFINITIONS(-DUSE_LIBICONV)
|
ADD_DEFINITIONS(-DUSE_LIBICONV)
|
||||||
INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/pthread)
|
INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/pthread)
|
||||||
|
|
Loading…
Reference in New Issue