This commit is contained in:
parent
dd44e5f994
commit
1e1b70540d
|
@ -26,10 +26,11 @@
|
||||||
#include "mnodeAccount.h"
|
#include "mnodeAccount.h"
|
||||||
#include "mnodeBalance.h"
|
#include "mnodeBalance.h"
|
||||||
#include "mnodeCluster.h"
|
#include "mnodeCluster.h"
|
||||||
#include "mnodeReplica.h"
|
#include "sdbReplica.h"
|
||||||
#include "multilevelStorage.h"
|
#include "multilevelStorage.h"
|
||||||
#include "vnodeCluster.h"
|
#include "vnodeCluster.h"
|
||||||
#include "vnodeReplica.h"
|
#include "vnodeReplica.h"
|
||||||
|
#include "dnodeGrant.h"
|
||||||
void init() {
|
void init() {
|
||||||
dnodeClusterInit();
|
dnodeClusterInit();
|
||||||
httpAdminInit();
|
httpAdminInit();
|
||||||
|
@ -40,6 +41,7 @@
|
||||||
multilevelStorageInit();
|
multilevelStorageInit();
|
||||||
vnodeClusterInit();
|
vnodeClusterInit();
|
||||||
vnodeReplicaInit();
|
vnodeReplicaInit();
|
||||||
|
dnodeGrantInit();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -273,25 +273,6 @@ int mgmtInitShell();
|
||||||
void mgmtCleanUpShell();
|
void mgmtCleanUpShell();
|
||||||
int mgmtRetriveUserAuthInfo(char *user, char *spi, char *encrypt, uint8_t *secret, uint8_t *ckey);
|
int mgmtRetriveUserAuthInfo(char *user, char *spi, char *encrypt, uint8_t *secret, uint8_t *ckey);
|
||||||
|
|
||||||
// acct API
|
|
||||||
int mgmtInitAccts();
|
|
||||||
SAcctObj *mgmtGetAcct(char *name);
|
|
||||||
int mgmtCreateAcct(char *name, char *pass, SAcctCfg *pCfg);
|
|
||||||
int mgmtUpdateAcct(SAcctObj *pAcct);
|
|
||||||
int mgmtDropAcct(char *name);
|
|
||||||
int mgmtAddDbIntoAcct(SAcctObj *pAcct, SDbObj *pDb);
|
|
||||||
int mgmtRemoveDbFromAcct(SAcctObj *pAcct, SDbObj *pDb);
|
|
||||||
int mgmtAddUserIntoAcct(SAcctObj *pAcct, SUserObj *pUser);
|
|
||||||
int mgmtRemoveUserFromAcct(SAcctObj *pAcct, SUserObj *pUser);
|
|
||||||
int mgmtAddConnIntoAcct(SConnObj *pConn);
|
|
||||||
int mgmtRemoveConnFromAcct(SConnObj *pConn);
|
|
||||||
int mgmtGetAcctMeta(SMeterMeta *pMeta, SShowObj *pShow, SConnObj *pConn);
|
|
||||||
int mgmtRetrieveAccts(SShowObj *pShow, char *data, int rows, SConnObj *pConn);
|
|
||||||
void mgmtCheckAcct();
|
|
||||||
void mgmtCleanUpAccts();
|
|
||||||
int mgmtAlterAcct(char *name, char *pass, SAcctCfg *pCfg);
|
|
||||||
int64_t mgmtGetAcctStatistic(SAcctObj *pAcct);
|
|
||||||
|
|
||||||
// user API
|
// user API
|
||||||
int mgmtInitUsers();
|
int mgmtInitUsers();
|
||||||
SUserObj *mgmtGetUser(char *name);
|
SUserObj *mgmtGetUser(char *name);
|
||||||
|
@ -358,26 +339,6 @@ bool mgmtMeterCreateFromMetric(STabObj *pMeterObj);
|
||||||
bool mgmtIsMetric(STabObj *pMeterObj);
|
bool mgmtIsMetric(STabObj *pMeterObj);
|
||||||
bool mgmtIsNormalMeter(STabObj *pMeterObj);
|
bool mgmtIsNormalMeter(STabObj *pMeterObj);
|
||||||
|
|
||||||
// grant API
|
|
||||||
void grantActiveSystem(const char* cfgFile);
|
|
||||||
void grantSendMsgToMgmt();
|
|
||||||
void grantReset();
|
|
||||||
void grantUpdate(void *pGrant);
|
|
||||||
bool grantCheckExpired();
|
|
||||||
void grantRestoreTimeSeries(uint32_t timeseries);
|
|
||||||
void grantAddTimeSeries(uint32_t timeseries);
|
|
||||||
int grantCheckTimeSeries(uint32_t timeseries);
|
|
||||||
void grantResetCurStorage(uint64_t totalStorage);
|
|
||||||
int grantCheckStorage();
|
|
||||||
int grantCheckDatabases();
|
|
||||||
int grantCheckUsers();
|
|
||||||
int grantCheckAccts();
|
|
||||||
int grantCheckDnodes();
|
|
||||||
int grantCheckConns();
|
|
||||||
int grantCheckStreams();
|
|
||||||
int grantCheckCpuCores();
|
|
||||||
int grantCheckQueryTime();
|
|
||||||
|
|
||||||
// dnode API
|
// dnode API
|
||||||
int mgmtInitDnodes();
|
int mgmtInitDnodes();
|
||||||
SDnodeObj *mgmtGetDnode(uint32_t ip);
|
SDnodeObj *mgmtGetDnode(uint32_t ip);
|
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
|
||||||
|
*
|
||||||
|
* This program is free software: you can use, redistribute, and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License, version 3
|
||||||
|
* or later ("AGPL"), as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TDENGINE_MGMT_ACCT_H
|
||||||
|
#define TDENGINE_MGMT_ACCT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "mgmt.h"
|
||||||
|
|
||||||
|
int32_t mgmtCreateAcct(char *name, char *pass, SAcctCfg *pCfg);
|
||||||
|
int32_t mgmtUpdateAcct(SAcctObj *pAcct);
|
||||||
|
int32_t mgmtDropAcct(char *name);
|
||||||
|
int32_t mgmtAddDbIntoAcct(SAcctObj *pAcct, SDbObj *pDb);
|
||||||
|
int32_t mgmtRemoveDbFromAcct(SAcctObj *pAcct, SDbObj *pDb);
|
||||||
|
int32_t mgmtAddUserIntoAcct(SAcctObj *pAcct, SUserObj *pUser);
|
||||||
|
int32_t mgmtRemoveUserFromAcct(SAcctObj *pAcct, SUserObj *pUser);
|
||||||
|
int32_t mgmtAddConnIntoAcct(SConnObj *pConn);
|
||||||
|
int32_t mgmtRemoveConnFromAcct(SConnObj *pConn);
|
||||||
|
int32_t mgmtAlterAcct(char *name, char *pass, SAcctCfg *pCfg);
|
||||||
|
int64_t mgmtGetAcctStatistic(SAcctObj *pAcct);
|
||||||
|
|
||||||
|
extern int32_t (*mgmtInitAccts)();
|
||||||
|
extern SAcctObj* (*mgmtGetAcct)(char *acctName);
|
||||||
|
extern void (*mgmtCreateRootAcct)();
|
||||||
|
extern int32_t (*mgmtCheckUserLimit)(SAcctObj *pAcct);
|
||||||
|
extern int32_t (*mgmtCheckDbLimit)(SAcctObj *pAcct);
|
||||||
|
extern int32_t (*mgmtCheckTableLimit)(SAcctObj *pAcct);
|
||||||
|
extern void (*mgmtCheckAcct)();
|
||||||
|
extern void (*mgmtCleanUpAccts)();
|
||||||
|
extern int32_t (*mgmtGetAcctMeta)(SMeterMeta *pMeta, SShowObj *pShow, SConnObj *pConn);
|
||||||
|
extern int32_t (*mgmtRetrieveAccts)(SShowObj *pShow, char *data, int rows, SConnObj *pConn);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // TDENGINE_MGMTSYSTEM_H
|
|
@ -13,7 +13,25 @@
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define _DEFAULT_SOURCE
|
#ifndef TDENGINE_MGMT_GRANT_H
|
||||||
#include "mgmt.h"
|
#define TDENGINE_MGMT_GTANT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
extern bool (*mgmtCheckExpired)();
|
||||||
|
extern void (*mgmtAddTimeSeries)(uint32_t timeSeriesNum);
|
||||||
|
extern void (*mgmtRestoreTimeSeries)(uint32_t timeseries);
|
||||||
|
extern int32_t (*mgmtCheckTimeSeries)(uint32_t timeseries);
|
||||||
|
extern int32_t (*mgmtCheckUserGrant)();
|
||||||
|
extern int32_t (*mgmtCheckDbGrant)();
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
|
@ -15,15 +15,14 @@
|
||||||
|
|
||||||
#define _DEFAULT_SOURCE
|
#define _DEFAULT_SOURCE
|
||||||
#include "os.h"
|
#include "os.h"
|
||||||
|
|
||||||
#include "mgmt.h"
|
#include "mgmt.h"
|
||||||
|
#include "mgmtAcct.h"
|
||||||
#include "tschemautil.h"
|
#include "tschemautil.h"
|
||||||
|
|
||||||
extern void *userSdb;
|
extern void *userSdb;
|
||||||
extern void *dbSdb;
|
extern void *dbSdb;
|
||||||
SAcctObj acctObj;
|
SAcctObj acctObj;
|
||||||
|
|
||||||
|
|
||||||
int mgmtGetAcctsNum();
|
int mgmtGetAcctsNum();
|
||||||
SShowObj *mgmtGetNextAcct(SShowObj *pShow, SAcctObj **pAcct);
|
SShowObj *mgmtGetNextAcct(SShowObj *pShow, SAcctObj **pAcct);
|
||||||
|
|
||||||
|
@ -132,18 +131,16 @@ int mgmtRemoveConnFromAcct(SConnObj *pConn) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
int32_t mgmtInitAcctsImp() { return 0; }
|
||||||
* Edge Version Implementation
|
int32_t (*mgmtInitAccts)() = mgmtInitAcctsImp;
|
||||||
*/
|
|
||||||
|
|
||||||
int mgmtInitAcctsImp() { return 0; }
|
void mgmtCreateRootAcctImp() {}
|
||||||
int (*mgmtInitAccts)() = mgmtInitAcctsImp;
|
void (*mgmtCreateRootAcct)() = mgmtCreateRootAcctImp;
|
||||||
|
|
||||||
void mgmtCreateRootAcct() {}
|
SAcctObj *mgmtGetAcctImp(char *acctName) { return &acctObj; }
|
||||||
|
SAcctObj* (*mgmtGetAcct)(char *acctName) = mgmtGetAcctImp;
|
||||||
|
|
||||||
SAcctObj *mgmtGetAcct(char *name) { return &acctObj; }
|
int32_t mgmtCheckUserLimitImp(SAcctObj *pAcct) {
|
||||||
|
|
||||||
int mgmtCheckUserLimit(SAcctObj *pAcct) {
|
|
||||||
int numOfUsers = sdbGetNumOfRows(userSdb);
|
int numOfUsers = sdbGetNumOfRows(userSdb);
|
||||||
if (numOfUsers >= tsMaxUsers) {
|
if (numOfUsers >= tsMaxUsers) {
|
||||||
mWarn("numOfUsers:%d, exceed tsMaxUsers:%d", numOfUsers, tsMaxUsers);
|
mWarn("numOfUsers:%d, exceed tsMaxUsers:%d", numOfUsers, tsMaxUsers);
|
||||||
|
@ -151,8 +148,9 @@ int mgmtCheckUserLimit(SAcctObj *pAcct) {
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
int32_t (*mgmtCheckUserLimit)(SAcctObj *pAcct) = mgmtCheckUserLimitImp;
|
||||||
|
|
||||||
int mgmtCheckDbLimit(SAcctObj *pAcct) {
|
int32_t mgmtCheckDbLimitImp(SAcctObj *pAcct) {
|
||||||
int numOfDbs = sdbGetNumOfRows(dbSdb);
|
int numOfDbs = sdbGetNumOfRows(dbSdb);
|
||||||
if (numOfDbs >= tsMaxDbs) {
|
if (numOfDbs >= tsMaxDbs) {
|
||||||
mWarn("numOfDbs:%d, exceed tsMaxDbs:%d", numOfDbs, tsMaxDbs);
|
mWarn("numOfDbs:%d, exceed tsMaxDbs:%d", numOfDbs, tsMaxDbs);
|
||||||
|
@ -160,18 +158,12 @@ int mgmtCheckDbLimit(SAcctObj *pAcct) {
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
int32_t (*mgmtCheckDbLimit)(SAcctObj *pAcct) = mgmtCheckDbLimitImp;
|
||||||
|
|
||||||
int mgmtCheckMeterLimit(SAcctObj *pAcct) { return 0; }
|
int32_t mgmtCheckTableLimitImp(SAcctObj *pAcct) { return 0; }
|
||||||
|
int32_t (*mgmtCheckTableLimit)(SAcctObj *pAcct) = mgmtCheckTableLimitImp;
|
||||||
|
|
||||||
int mgmtCheckUserGrant() { return 0; }
|
void mgmtCheckAcctImp() {
|
||||||
|
|
||||||
int mgmtCheckDbGrant() { return 0; }
|
|
||||||
|
|
||||||
int mgmtCheckMeterGrant() { return 0; }
|
|
||||||
|
|
||||||
void grantAddTimeSeries(uint32_t timeSeriesNum) {}
|
|
||||||
|
|
||||||
void mgmtCheckAcct() {
|
|
||||||
SAcctObj *pAcct = &acctObj;
|
SAcctObj *pAcct = &acctObj;
|
||||||
pAcct->acctId = 0;
|
pAcct->acctId = 0;
|
||||||
strcpy(pAcct->user, "root");
|
strcpy(pAcct->user, "root");
|
||||||
|
@ -180,9 +172,13 @@ void mgmtCheckAcct() {
|
||||||
mgmtCreateUser(pAcct, "monitor", tsInternalPass);
|
mgmtCreateUser(pAcct, "monitor", tsInternalPass);
|
||||||
mgmtCreateUser(pAcct, "_root", tsInternalPass);
|
mgmtCreateUser(pAcct, "_root", tsInternalPass);
|
||||||
}
|
}
|
||||||
|
void (*mgmtCheckAcct)() = mgmtCheckAcctImp;
|
||||||
|
|
||||||
void mgmtCleanUpAccts() {}
|
void mgmtCleanUpAcctsImp() {}
|
||||||
|
void (*mgmtCleanUpAccts)() = mgmtCleanUpAcctsImp;
|
||||||
|
|
||||||
int mgmtGetAcctMeta(SMeterMeta *pMeta, SShowObj *pShow, SConnObj *pConn) { return TSDB_CODE_OPS_NOT_SUPPORT; }
|
int32_t mgmtGetAcctMetaImp(SMeterMeta *pMeta, SShowObj *pShow, SConnObj *pConn) { return TSDB_CODE_OPS_NOT_SUPPORT; }
|
||||||
|
int32_t (*mgmtGetAcctMeta)(SMeterMeta *pMeta, SShowObj *pShow, SConnObj *pConn) = mgmtGetAcctMetaImp;
|
||||||
|
|
||||||
int mgmtRetrieveAccts(SShowObj *pShow, char *data, int rows, SConnObj *pConn) { return 0; }
|
int32_t mgmtRetrieveAcctsImp(SShowObj *pShow, char *data, int rows, SConnObj *pConn) { return 0; }
|
||||||
|
int32_t (*mgmtRetrieveAccts)(SShowObj *pShow, char *data, int rows, SConnObj *pConn) = mgmtRetrieveAcctsImp;
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#include "os.h"
|
#include "os.h"
|
||||||
|
|
||||||
#include "mgmt.h"
|
#include "mgmt.h"
|
||||||
|
#include "mgmtGrant.h"
|
||||||
#include "mgmtBalance.h"
|
#include "mgmtBalance.h"
|
||||||
#include "mgmtUtil.h"
|
#include "mgmtUtil.h"
|
||||||
#include "tschemautil.h"
|
#include "tschemautil.h"
|
||||||
|
@ -37,7 +38,6 @@ void *mgmtDbActionAfterBatchUpdate(void *row, char *str, int size, int *ssize);
|
||||||
void *mgmtDbActionReset(void *row, char *str, int size, int *ssize);
|
void *mgmtDbActionReset(void *row, char *str, int size, int *ssize);
|
||||||
void *mgmtDbActionDestroy(void *row, char *str, int size, int *ssize);
|
void *mgmtDbActionDestroy(void *row, char *str, int size, int *ssize);
|
||||||
|
|
||||||
int mgmtCheckDbGrant();
|
|
||||||
int mgmtCheckDbLimit(SAcctObj *pAcct);
|
int mgmtCheckDbLimit(SAcctObj *pAcct);
|
||||||
|
|
||||||
void mgmtDbActionInit() {
|
void mgmtDbActionInit() {
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
|
||||||
|
*
|
||||||
|
* This program is free software: you can use, redistribute, and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License, version 3
|
||||||
|
* or later ("AGPL"), as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define _DEFAULT_SOURCE
|
||||||
|
#include "os.h"
|
||||||
|
#include "mgmt.h"
|
||||||
|
#include "mgmtAcct.h"
|
||||||
|
#include "mgmtGrant.h"
|
||||||
|
|
||||||
|
int32_t mgmtCheckUserGrantImp() { return 0; }
|
||||||
|
int32_t (*mgmtCheckUserGrant)() = mgmtCheckUserGrantImp;
|
||||||
|
|
||||||
|
int32_t mgmtCheckDbGrantImp() { return 0; }
|
||||||
|
int32_t (*mgmtCheckDbGrant)() = mgmtCheckDbGrantImp;
|
||||||
|
|
||||||
|
void mgmtAddTimeSeriesImp(uint32_t timeSeriesNum) {}
|
||||||
|
void (*mgmtAddTimeSeries)(uint32_t timeSeriesNum) = mgmtAddTimeSeriesImp;
|
||||||
|
|
||||||
|
void mgmtRestoreTimeSeriesImp(uint32_t timeSeriesNum) {}
|
||||||
|
void (*mgmtRestoreTimeSeries)(uint32_t timeSeriesNum) = mgmtRestoreTimeSeriesImp;
|
||||||
|
|
||||||
|
int32_t mgmtCheckTimeSeriesImp(uint32_t timeseries) { return 0; }
|
||||||
|
int32_t (*mgmtCheckTimeSeries)(uint32_t timeseries) = mgmtCheckTimeSeriesImp;
|
||||||
|
|
||||||
|
bool mgmtCheckExpiredImp() { return false; }
|
||||||
|
bool (*mgmtCheckExpired)() = mgmtCheckExpiredImp;
|
|
@ -17,6 +17,8 @@
|
||||||
#include "os.h"
|
#include "os.h"
|
||||||
|
|
||||||
#include "mgmt.h"
|
#include "mgmt.h"
|
||||||
|
#include "mgmtAcct.h"
|
||||||
|
#include "mgmtGrant.h"
|
||||||
#include "mgmtUtil.h"
|
#include "mgmtUtil.h"
|
||||||
#include "taosmsg.h"
|
#include "taosmsg.h"
|
||||||
#include "tast.h"
|
#include "tast.h"
|
||||||
|
@ -91,8 +93,7 @@ int32_t mgmtMeterDropColumnByName(STabObj *pMeter, const char *name);
|
||||||
static int dropMeterImp(SDbObj *pDb, STabObj * pMeter, SAcctObj *pAcct);
|
static int dropMeterImp(SDbObj *pDb, STabObj * pMeter, SAcctObj *pAcct);
|
||||||
static void dropAllMetersOfMetric(SDbObj *pDb, STabObj * pMetric, SAcctObj *pAcct);
|
static void dropAllMetersOfMetric(SDbObj *pDb, STabObj * pMetric, SAcctObj *pAcct);
|
||||||
|
|
||||||
int mgmtCheckMeterLimit(SAcctObj *pAcct, SCreateTableMsg *pCreate);
|
int mgmtCheckTableLimit(SAcctObj *pAcct, SCreateTableMsg *pCreate);
|
||||||
int mgmtCheckMeterGrant(SCreateTableMsg *pCreate, STabObj * pMeter);
|
|
||||||
|
|
||||||
void mgmtMeterActionInit() {
|
void mgmtMeterActionInit() {
|
||||||
mgmtMeterActionFp[SDB_TYPE_INSERT] = mgmtMeterActionInsert;
|
mgmtMeterActionFp[SDB_TYPE_INSERT] = mgmtMeterActionInsert;
|
||||||
|
@ -540,7 +541,7 @@ int mgmtCreateMeter(SDbObj *pDb, SCreateTableMsg *pCreate) {
|
||||||
|
|
||||||
pAcct = mgmtGetAcct(pDb->cfg.acct);
|
pAcct = mgmtGetAcct(pDb->cfg.acct);
|
||||||
assert(pAcct != NULL);
|
assert(pAcct != NULL);
|
||||||
int code = mgmtCheckMeterLimit(pAcct, pCreate);
|
int code = mgmtCheckTableLimit(pAcct, pCreate);
|
||||||
if (code != 0) {
|
if (code != 0) {
|
||||||
mError("table:%s, exceed the limit", pCreate->meterId);
|
mError("table:%s, exceed the limit", pCreate->meterId);
|
||||||
return code;
|
return code;
|
||||||
|
@ -636,10 +637,17 @@ int mgmtCreateMeter(SDbObj *pDb, SCreateTableMsg *pCreate) {
|
||||||
return TSDB_CODE_FAILED_TO_LOCK_RESOURCES;
|
return TSDB_CODE_FAILED_TO_LOCK_RESOURCES;
|
||||||
}
|
}
|
||||||
|
|
||||||
code = mgmtCheckMeterGrant(pCreate, pMeter);
|
if (mgmtCheckExpired()) {
|
||||||
if (code != 0) {
|
mError("failed to create meter:%s, reason:grant expired", pMeter->meterId);
|
||||||
mError("table:%s, grant expired", pCreate->meterId);
|
return TSDB_CODE_GRANT_EXPIRED;
|
||||||
return code;
|
}
|
||||||
|
|
||||||
|
if (pCreate->numOfTags == 0) {
|
||||||
|
int grantCode = mgmtCheckTimeSeries(pMeter->numOfColumns);
|
||||||
|
if (grantCode != 0) {
|
||||||
|
mError("table:%s, grant expired", pCreate->meterId);
|
||||||
|
return grantCode;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pCreate->numOfTags == 0) { // handle normal meter creation
|
if (pCreate->numOfTags == 0) { // handle normal meter creation
|
||||||
|
@ -704,7 +712,7 @@ int mgmtCreateMeter(SDbObj *pDb, SCreateTableMsg *pCreate) {
|
||||||
mTrace("table:%s, send create table msg to dnode, vgId:%d, sid:%d, vnode:%d",
|
mTrace("table:%s, send create table msg to dnode, vgId:%d, sid:%d, vnode:%d",
|
||||||
pMeter->meterId, pMeter->gid.vgId, pMeter->gid.sid, pVgroup->vnodeGid[0].vnode);
|
pMeter->meterId, pMeter->gid.vgId, pMeter->gid.sid, pVgroup->vnodeGid[0].vnode);
|
||||||
|
|
||||||
grantAddTimeSeries(pMeter->numOfColumns - 1);
|
mgmtAddTimeSeries(pMeter->numOfColumns - 1);
|
||||||
mgmtSendCreateMsgToVgroup(pMeter, pVgroup);
|
mgmtSendCreateMsgToVgroup(pMeter, pVgroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -805,7 +813,7 @@ static int dropMeterImp(SDbObj *pDb, STabObj * pMeter, SAcctObj *pAcct) {
|
||||||
pVgroup = mgmtGetVgroup(pMeter->gid.vgId);
|
pVgroup = mgmtGetVgroup(pMeter->gid.vgId);
|
||||||
if (pVgroup == NULL) return TSDB_CODE_OTHERS;
|
if (pVgroup == NULL) return TSDB_CODE_OTHERS;
|
||||||
|
|
||||||
grantRestoreTimeSeries(pMeter->numOfColumns - 1);
|
mgmtRestoreTimeSeries(pMeter->numOfColumns - 1);
|
||||||
mgmtSendRemoveMeterMsgToDnode(pMeter, pVgroup);
|
mgmtSendRemoveMeterMsgToDnode(pMeter, pVgroup);
|
||||||
sdbDeleteRow(meterSdb, pMeter);
|
sdbDeleteRow(meterSdb, pMeter);
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include "dnodeSystem.h"
|
#include "dnodeSystem.h"
|
||||||
#include "mgmt.h"
|
#include "mgmt.h"
|
||||||
|
#include "mgmtGrant.h"
|
||||||
#include "mgmtProfile.h"
|
#include "mgmtProfile.h"
|
||||||
#include "taosmsg.h"
|
#include "taosmsg.h"
|
||||||
#include "tlog.h"
|
#include "tlog.h"
|
||||||
|
@ -561,7 +562,7 @@ int mgmtProcessCreateDbMsg(char *pMsg, int msgLen, SConnObj *pConn) {
|
||||||
pCreate->blocksPerMeter = htons(pCreate->blocksPerMeter);
|
pCreate->blocksPerMeter = htons(pCreate->blocksPerMeter);
|
||||||
pCreate->rowsInFileBlock = htonl(pCreate->rowsInFileBlock);
|
pCreate->rowsInFileBlock = htonl(pCreate->rowsInFileBlock);
|
||||||
|
|
||||||
if (grantCheckExpired()) {
|
if (mgmtCheckExpired()) {
|
||||||
code = TSDB_CODE_GRANT_EXPIRED;
|
code = TSDB_CODE_GRANT_EXPIRED;
|
||||||
} else if (!pConn->writeAuth) {
|
} else if (!pConn->writeAuth) {
|
||||||
code = TSDB_CODE_NO_RIGHTS;
|
code = TSDB_CODE_NO_RIGHTS;
|
||||||
|
@ -1290,7 +1291,7 @@ int mgmtProcessConnectMsg(char *pMsg, int msgLen, SConnObj *pConn) {
|
||||||
goto _rsp;
|
goto _rsp;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (grantCheckExpired()) {
|
if (mgmtCheckExpired()) {
|
||||||
code = TSDB_CODE_GRANT_EXPIRED;
|
code = TSDB_CODE_GRANT_EXPIRED;
|
||||||
goto _rsp;
|
goto _rsp;
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,10 +36,8 @@ void mgmtStopSystem() {}
|
||||||
|
|
||||||
void mgmtCleanUpRedirect() {}
|
void mgmtCleanUpRedirect() {}
|
||||||
|
|
||||||
bool grantCheckExpired() { return false; }
|
|
||||||
|
|
||||||
int grantGetGrantsMeta(SMeterMeta *pMeta, SShowObj *pShow, SConnObj *pConn) { return TSDB_CODE_OPS_NOT_SUPPORT; }
|
int grantGetGrantsMeta(SMeterMeta *pMeta, SShowObj *pShow, SConnObj *pConn) { return TSDB_CODE_OPS_NOT_SUPPORT; }
|
||||||
|
|
||||||
int grantRetrieveGrants(SShowObj *pShow, char *data, int rows, SConnObj *pConn) { return 0; }
|
int grantRetrieveGrants(SShowObj *pShow, char *data, int rows, SConnObj *pConn) { return 0; }
|
||||||
|
|
||||||
void grantRestoreTimeSeries(uint32_t timeseries) {}
|
|
|
@ -17,6 +17,8 @@
|
||||||
#include "os.h"
|
#include "os.h"
|
||||||
|
|
||||||
#include "mgmt.h"
|
#include "mgmt.h"
|
||||||
|
#include "mgmtGrant.h"
|
||||||
|
#include "mgmtAcct.h"
|
||||||
#include "tschemautil.h"
|
#include "tschemautil.h"
|
||||||
#include "ttime.h"
|
#include "ttime.h"
|
||||||
|
|
||||||
|
@ -35,10 +37,6 @@ void *mgmtUserActionAfterBatchUpdate(void *row, char *str, int size, int *ssize)
|
||||||
void *mgmtUserActionReset(void *row, char *str, int size, int *ssize);
|
void *mgmtUserActionReset(void *row, char *str, int size, int *ssize);
|
||||||
void *mgmtUserActionDestroy(void *row, char *str, int size, int *ssize);
|
void *mgmtUserActionDestroy(void *row, char *str, int size, int *ssize);
|
||||||
|
|
||||||
SAcctObj *mgmtGetAcct(char *name);
|
|
||||||
void mgmtCreateRootAcct();
|
|
||||||
int mgmtCheckUserLimit(SAcctObj *pAcct);
|
|
||||||
int mgmtCheckUserGrant();
|
|
||||||
|
|
||||||
void mgmtUserActionInit() {
|
void mgmtUserActionInit() {
|
||||||
mgmtUserActionFp[SDB_TYPE_INSERT] = mgmtUserActionInsert;
|
mgmtUserActionFp[SDB_TYPE_INSERT] = mgmtUserActionInsert;
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
|
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
|
||||||
PROJECT(TDengine)
|
PROJECT(TDengine)
|
||||||
|
|
||||||
ADD_SUBDIRECTORY(detail)
|
ADD_SUBDIRECTORY(detail)
|
||||||
ADD_SUBDIRECTORY(lite)
|
|
Loading…
Reference in New Issue