parent
b7357dde21
commit
642581eefd
|
@ -45,6 +45,9 @@ const (
|
||||||
EnvKeyDatabaseCACert = "DATABASE_CA_CERT"
|
EnvKeyDatabaseCACert = "DATABASE_CA_CERT"
|
||||||
// EnvCouchbaseBucket key for env variable COUCHBASE_BUCKET
|
// EnvCouchbaseBucket key for env variable COUCHBASE_BUCKET
|
||||||
EnvCouchbaseBucket = "COUCHBASE_BUCKET"
|
EnvCouchbaseBucket = "COUCHBASE_BUCKET"
|
||||||
|
// EnvCouchbaseBucketRAMQuotaMB key for env variable COUCHBASE_BUCKET_RAM_QUOTA
|
||||||
|
// This value should be parsed as number
|
||||||
|
EnvCouchbaseBucketRAMQuotaMB = "COUCHBASE_BUCKET_RAM_QUOTA"
|
||||||
// EnvCouchbaseBucket key for env variable COUCHBASE_SCOPE
|
// EnvCouchbaseBucket key for env variable COUCHBASE_SCOPE
|
||||||
EnvCouchbaseScope = "COUCHBASE_SCOPE"
|
EnvCouchbaseScope = "COUCHBASE_SCOPE"
|
||||||
// EnvKeySmtpHost key for env variable SMTP_HOST
|
// EnvKeySmtpHost key for env variable SMTP_HOST
|
||||||
|
|
|
@ -5,6 +5,7 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -90,15 +91,23 @@ func NewProvider() (*provider, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func CreateBucketAndScope(cluster *gocb.Cluster, bucketName string, scopeName string) (*gocb.Bucket, error) {
|
func CreateBucketAndScope(cluster *gocb.Cluster, bucketName string, scopeName string) (*gocb.Bucket, error) {
|
||||||
|
bucketRAMQuotaMB := memorystore.RequiredEnvStoreObj.GetRequiredEnv().CouchbaseBucketRAMQuotaMB
|
||||||
|
if bucketRAMQuotaMB == "" {
|
||||||
|
bucketRAMQuotaMB = "1000"
|
||||||
|
}
|
||||||
|
bucketRAMQuota, err := strconv.ParseInt(bucketRAMQuotaMB, 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
settings := gocb.BucketSettings{
|
settings := gocb.BucketSettings{
|
||||||
Name: bucketName,
|
Name: bucketName,
|
||||||
RAMQuotaMB: 1000,
|
RAMQuotaMB: uint64(bucketRAMQuota),
|
||||||
BucketType: gocb.CouchbaseBucketType,
|
BucketType: gocb.CouchbaseBucketType,
|
||||||
EvictionPolicy: gocb.EvictionPolicyTypeValueOnly,
|
EvictionPolicy: gocb.EvictionPolicyTypeValueOnly,
|
||||||
FlushEnabled: true,
|
FlushEnabled: true,
|
||||||
CompressionMode: gocb.CompressionModeActive,
|
CompressionMode: gocb.CompressionModeActive,
|
||||||
}
|
}
|
||||||
err := cluster.Buckets().CreateBucket(gocb.CreateBucketSettings{
|
err = cluster.Buckets().CreateBucket(gocb.CreateBucketSettings{
|
||||||
BucketSettings: settings,
|
BucketSettings: settings,
|
||||||
ConflictResolutionType: gocb.ConflictResolutionTypeSequenceNumber,
|
ConflictResolutionType: gocb.ConflictResolutionTypeSequenceNumber,
|
||||||
}, nil)
|
}, nil)
|
||||||
|
|
8
server/env/env.go
vendored
8
server/env/env.go
vendored
|
@ -83,6 +83,7 @@ func InitAllEnv() error {
|
||||||
osAwsSecretKey := os.Getenv(constants.EnvAwsSecretAccessKey)
|
osAwsSecretKey := os.Getenv(constants.EnvAwsSecretAccessKey)
|
||||||
osCouchbaseBucket := os.Getenv(constants.EnvCouchbaseBucket)
|
osCouchbaseBucket := os.Getenv(constants.EnvCouchbaseBucket)
|
||||||
osCouchbaseScope := os.Getenv(constants.EnvCouchbaseScope)
|
osCouchbaseScope := os.Getenv(constants.EnvCouchbaseScope)
|
||||||
|
osCouchbaseBucketRAMQuotaMB := os.Getenv(constants.EnvCouchbaseBucketRAMQuotaMB)
|
||||||
|
|
||||||
// os bool vars
|
// os bool vars
|
||||||
osAppCookieSecure := os.Getenv(constants.EnvKeyAppCookieSecure)
|
osAppCookieSecure := os.Getenv(constants.EnvKeyAppCookieSecure)
|
||||||
|
@ -154,6 +155,13 @@ func InitAllEnv() error {
|
||||||
envData[constants.EnvCouchbaseBucket] = osCouchbaseBucket
|
envData[constants.EnvCouchbaseBucket] = osCouchbaseBucket
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if val, ok := envData[constants.EnvCouchbaseBucketRAMQuotaMB]; !ok || val == "" {
|
||||||
|
envData[constants.EnvCouchbaseBucketRAMQuotaMB] = osCouchbaseBucketRAMQuotaMB
|
||||||
|
}
|
||||||
|
if osCouchbaseBucketRAMQuotaMB != "" && envData[constants.EnvCouchbaseBucketRAMQuotaMB] != osCouchbaseBucketRAMQuotaMB {
|
||||||
|
envData[constants.EnvCouchbaseBucketRAMQuotaMB] = osCouchbaseBucketRAMQuotaMB
|
||||||
|
}
|
||||||
|
|
||||||
if val, ok := envData[constants.EnvCouchbaseScope]; !ok || val == "" {
|
if val, ok := envData[constants.EnvCouchbaseScope]; !ok || val == "" {
|
||||||
envData[constants.EnvCouchbaseScope] = osCouchbaseScope
|
envData[constants.EnvCouchbaseScope] = osCouchbaseScope
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,8 +33,9 @@ type RequiredEnv struct {
|
||||||
AwsAccessKeyID string `json:"AWS_ACCESS_KEY_ID"`
|
AwsAccessKeyID string `json:"AWS_ACCESS_KEY_ID"`
|
||||||
AwsSecretAccessKey string `json:"AWS_SECRET_ACCESS_KEY"`
|
AwsSecretAccessKey string `json:"AWS_SECRET_ACCESS_KEY"`
|
||||||
// Couchbase related envs
|
// Couchbase related envs
|
||||||
CouchbaseBucket string `json:"COUCHBASE_BUCKET"`
|
CouchbaseBucket string `json:"COUCHBASE_BUCKET"`
|
||||||
CouchbaseScope string `json:"COUCHBASE_SCOPE"`
|
CouchbaseScope string `json:"COUCHBASE_SCOPE"`
|
||||||
|
CouchbaseBucketRAMQuotaMB string `json:"COUCHBASE_BUCKET_RAM_QUOTA"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// RequiredEnvObj is a simple in-memory store for sessions.
|
// RequiredEnvObj is a simple in-memory store for sessions.
|
||||||
|
@ -98,6 +99,7 @@ func InitRequiredEnv() error {
|
||||||
awsSecretAccessKey := os.Getenv(constants.EnvAwsSecretAccessKey)
|
awsSecretAccessKey := os.Getenv(constants.EnvAwsSecretAccessKey)
|
||||||
couchbaseBucket := os.Getenv(constants.EnvCouchbaseBucket)
|
couchbaseBucket := os.Getenv(constants.EnvCouchbaseBucket)
|
||||||
couchbaseScope := os.Getenv(constants.EnvCouchbaseScope)
|
couchbaseScope := os.Getenv(constants.EnvCouchbaseScope)
|
||||||
|
couchbaseBucketRAMQuotaMB := os.Getenv(constants.EnvCouchbaseBucketRAMQuotaMB)
|
||||||
|
|
||||||
if strings.TrimSpace(redisURL) == "" {
|
if strings.TrimSpace(redisURL) == "" {
|
||||||
if cli.ARG_REDIS_URL != nil && *cli.ARG_REDIS_URL != "" {
|
if cli.ARG_REDIS_URL != nil && *cli.ARG_REDIS_URL != "" {
|
||||||
|
@ -140,24 +142,25 @@ func InitRequiredEnv() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
requiredEnv := RequiredEnv{
|
requiredEnv := RequiredEnv{
|
||||||
EnvPath: envPath,
|
EnvPath: envPath,
|
||||||
DatabaseURL: dbURL,
|
DatabaseURL: dbURL,
|
||||||
DatabaseType: dbType,
|
DatabaseType: dbType,
|
||||||
DatabaseName: dbName,
|
DatabaseName: dbName,
|
||||||
DatabaseHost: dbHost,
|
DatabaseHost: dbHost,
|
||||||
DatabasePort: dbPort,
|
DatabasePort: dbPort,
|
||||||
DatabaseUsername: dbUsername,
|
DatabaseUsername: dbUsername,
|
||||||
DatabasePassword: dbPassword,
|
DatabasePassword: dbPassword,
|
||||||
DatabaseCert: dbCert,
|
DatabaseCert: dbCert,
|
||||||
DatabaseCertKey: dbCertKey,
|
DatabaseCertKey: dbCertKey,
|
||||||
DatabaseCACert: dbCACert,
|
DatabaseCACert: dbCACert,
|
||||||
RedisURL: redisURL,
|
RedisURL: redisURL,
|
||||||
DisableRedisForEnv: disableRedisForEnv,
|
DisableRedisForEnv: disableRedisForEnv,
|
||||||
AwsRegion: awsRegion,
|
AwsRegion: awsRegion,
|
||||||
AwsAccessKeyID: awsAccessKeyID,
|
AwsAccessKeyID: awsAccessKeyID,
|
||||||
AwsSecretAccessKey: awsSecretAccessKey,
|
AwsSecretAccessKey: awsSecretAccessKey,
|
||||||
CouchbaseBucket: couchbaseBucket,
|
CouchbaseBucket: couchbaseBucket,
|
||||||
CouchbaseScope: couchbaseScope,
|
CouchbaseScope: couchbaseScope,
|
||||||
|
CouchbaseBucketRAMQuotaMB: couchbaseBucketRAMQuotaMB,
|
||||||
}
|
}
|
||||||
|
|
||||||
RequiredEnvStoreObj = &RequiredEnvStore{
|
RequiredEnvStoreObj = &RequiredEnvStore{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user