本文整理汇总了Golang中github.com/globocom/config.GetBool函数的典型用法代码示例。如果您正苦于以下问题:Golang GetBool函数的具体用法?Golang GetBool怎么用?Golang GetBool使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetBool函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestGetS3Endpoint
func (s *S) TestGetS3Endpoint(c *gocheck.C) {
oldRegion, _ := config.Get("aws:s3:region-name")
defer config.Set("aws:s3:region-name", oldRegion)
config.Set("aws:s3:region-name", "myregion")
edp, err := config.GetString("aws:s3:endpoint")
c.Assert(err, gocheck.IsNil)
locConst, err := config.GetBool("aws:s3:location-constraint")
c.Assert(err, gocheck.IsNil)
lwrCaseBucket, err := config.GetBool("aws:s3:lowercase-bucket")
c.Assert(err, gocheck.IsNil)
s3 := getS3Endpoint()
c.Assert(s3.S3Endpoint, gocheck.Equals, edp)
c.Assert(s3.S3LocationConstraint, gocheck.Equals, locConst)
c.Assert(s3.S3LowercaseBucket, gocheck.Equals, lwrCaseBucket)
c.Assert(s3.Region.Name, gocheck.Equals, "myregion")
}
示例2: elbSupport
func (p *JujuProvisioner) elbSupport() bool {
if p.elb == nil {
elb, _ := config.GetBool("juju:use-elb")
p.elb = &elb
}
return *p.elb
}
示例3: CreateApp
// CreateApp creates a new app.
//
// Creating a new app is a process composed of four steps:
//
// 1. Save the app in the database
// 2. Create IAM credentials for the app
// 3. Create S3 bucket for the app (if the bucket support is enabled)
// 4. Create the git repository using gandalf
// 5. Provision units within the provisioner
func CreateApp(app *App, units uint, teams []auth.Team) error {
if units == 0 {
return &errors.ValidationError{Message: "Cannot create app with 0 units."}
}
if len(teams) == 0 {
return NoTeamsError{}
}
app.SetTeams(teams)
if !app.isValid() {
msg := "Invalid app name, your app should have at most 63 " +
"characters, containing only lower case letters or numbers, " +
"starting with a letter."
return &errors.ValidationError{Message: msg}
}
actions := []*action.Action{&insertApp}
useS3, _ := config.GetBool("bucket-support")
if useS3 {
actions = append(actions, &createIAMUserAction,
&createIAMAccessKeyAction,
&createBucketAction, &createUserPolicyAction)
}
actions = append(actions, &exportEnvironmentsAction,
&createRepository, &provisionApp, &provisionAddUnits)
pipeline := action.NewPipeline(actions...)
err := pipeline.Execute(app, units)
if err != nil {
return &appCreationError{app: app.Name, err: err}
}
return nil
}
示例4: dockerCluster
func dockerCluster() *cluster.Cluster {
cmutex.Lock()
defer cmutex.Unlock()
if dCluster == nil {
if segregate, _ := config.GetBool("docker:segregate"); segregate {
dCluster, _ = cluster.New(segScheduler)
} else {
clusterNodes = make(map[string]string)
servers, _ := config.GetList("docker:servers")
if len(servers) < 1 {
log.Fatal(`Tsuru is misconfigured. Setting "docker:servers" is mandatory`)
}
nodes := make([]cluster.Node, len(servers))
for index, server := range servers {
id := fmt.Sprintf("server%d", index)
node := cluster.Node{
ID: id,
Address: server,
}
nodes[index] = node
clusterNodes[id] = server
}
dCluster, _ = cluster.New(nil, nodes...)
}
if redisServer, err := config.GetString("docker:scheduler:redis-server"); err == nil {
prefix, _ := config.GetString("docker:scheduler:redis-prefix")
if password, err := config.GetString("docker:scheduler:redis-password"); err == nil {
dCluster.SetStorage(storage.AuthenticatedRedis(redisServer, password, prefix))
} else {
dCluster.SetStorage(storage.Redis(redisServer, prefix))
}
}
}
return dCluster
}
示例5: CreateApp
// CreateApp creates a new app.
//
// Creating a new app is a process composed of four steps:
//
// 1. Save the app in the database
// 2. Create IAM credentials for the app
// 3. Create S3 bucket for the app (if the bucket support is enabled)
// 4. Create the git repository using gandalf
// 5. Provision units within the provisioner
func CreateApp(app *App, user *auth.User) error {
teams, err := user.Teams()
if err != nil {
return err
}
if len(teams) == 0 {
return NoTeamsError{}
}
if _, err := getPlatform(app.Platform); err != nil {
return err
}
app.SetTeams(teams)
app.Owner = user.Email
if !app.isValid() {
msg := "Invalid app name, your app should have at most 63 " +
"characters, containing only lower case letters, numbers or dashes, " +
"starting with a letter."
return &errors.ValidationError{Message: msg}
}
actions := []*action.Action{&reserveUserApp, &createAppQuota, &insertApp}
useS3, _ := config.GetBool("bucket-support")
if useS3 {
actions = append(actions, &createIAMUserAction,
&createIAMAccessKeyAction,
&createBucketAction, &createUserPolicyAction)
}
actions = append(actions, &exportEnvironmentsAction,
&createRepository, &provisionApp)
pipeline := action.NewPipeline(actions...)
err = pipeline.Execute(app, user)
if err != nil {
return &AppCreationError{app: app.Name, Err: err}
}
return nil
}
示例6: AddBackend
func (r elbRouter) AddBackend(name string) error {
var err error
options := elb.CreateLoadBalancer{
Name: name,
Listeners: []elb.Listener{
{
InstancePort: 80,
InstanceProtocol: "HTTP",
LoadBalancerPort: 80,
Protocol: "HTTP",
},
},
}
vpc, _ := config.GetBool("juju:elb-use-vpc")
if vpc {
options.Subnets, err = config.GetList("juju:elb-vpc-subnets")
if err != nil {
return err
}
options.SecurityGroups, err = config.GetList("juju:elb-vpc-secgroups")
if err != nil {
return err
}
options.Scheme = "internal"
} else {
options.AvailZones, err = config.GetList("juju:elb-avail-zones")
if err != nil {
return err
}
}
_, err = r.elb().CreateLoadBalancer(&options)
return router.Store(name, name)
}
示例7: checkInstances
func (h elbInstanceHealer) checkInstances(names []string) ([]elbInstance, error) {
if elbSupport, _ := config.GetBool("juju:use-elb"); !elbSupport {
return nil, nil
}
lbs, err := h.describeLoadBalancers(names)
if err != nil {
return nil, err
}
var unhealthy []elbInstance
description := "Instance has failed at least the UnhealthyThreshold number of health checks consecutively."
state := "OutOfService"
reasonCode := "Instance"
for _, lb := range lbs {
instances, err := h.describeInstancesHealth(lb)
if err != nil {
return nil, err
}
for _, instance := range instances {
if instance.description == description &&
instance.state == state &&
instance.reasonCode == reasonCode {
unhealthy = append(unhealthy, instance)
}
}
}
log.Printf("Found %d unhealthy instances.", len(unhealthy))
return unhealthy, nil
}
示例8: elbSupport
func (p *JujuProvisioner) elbSupport() bool {
if p.elb == nil {
p.elb = new(bool)
if elb, err := config.GetBool("juju:use-elb"); err == nil {
*p.elb = elb
}
}
return *p.elb
}
示例9: getHostAddr
func getHostAddr(hostID string) string {
var fullAddress string
if seg, _ := config.GetBool("docker:segregate"); seg {
node, _ := segScheduler.GetNode(hostID)
fullAddress = node.Address
} else {
fullAddress = clusterNodes[hostID]
}
url, _ := url.Parse(fullAddress)
host, _, _ := net.SplitHostPort(url.Host)
return host
}
示例10: Init
func Init() {
debug, err := config.GetBool("debug")
if err != nil {
debug = false
}
logFileName, err := config.GetString("log:file")
var logger Logger
if err != nil {
logger = NewSyslogLogger("tsr", debug)
} else {
logger = NewFileLogger(logFileName, debug)
}
SetLogger(logger)
}
示例11: getS3Endpoint
func getS3Endpoint() *s3.S3 {
regionName, _ := config.GetString("aws:s3:region-name")
endpoint, err := config.GetString("aws:s3:endpoint")
if err != nil {
panic("FATAL: aws:s3:endpoint must be defined in configuration file.")
}
bucketEndpoint, _ := config.GetString("aws:s3:bucketEndpoint")
locationConstraint, err := config.GetBool("aws:s3:location-constraint")
if err != nil {
panic("FATAL: aws:s3:location-constraint must be defined in configuration file.")
}
lowercaseBucket, err := config.GetBool("aws:s3:lowercase-bucket")
if err != nil {
panic("FATAL: aws:s3:lowercase-bucket must be defined in configuration file.")
}
region := aws.Region{
Name: regionName,
S3Endpoint: endpoint,
S3BucketEndpoint: bucketEndpoint,
S3LocationConstraint: locationConstraint,
S3LowercaseBucket: lowercaseBucket,
}
return s3.New(getAWSAuth(), region)
}
示例12: ForceDestroy
// ForceDestroy destroys an app with force.
//
// Destroying an app is a process composed of four steps:
//
// 1. Destroy the bucket and S3 credentials (if bucket-support is
// enabled).
// 2. Destroy the app unit using juju
// 3. Unbind all service instances from the app
// 4. Remove the app from the database
func ForceDestroy(app *App) error {
gUrl := repository.GitServerUri()
(&gandalf.Client{Endpoint: gUrl}).RemoveRepository(app.Name)
useS3, _ := config.GetBool("bucket-support")
if useS3 {
destroyBucket(app)
}
if len(app.Units) > 0 {
Provisioner.Destroy(app)
app.unbind()
}
conn, err := db.Conn()
if err != nil {
return err
}
defer conn.Close()
return conn.Apps().Remove(bson.M{"name": app.Name})
}
示例13: ReadWriteURL
// ReadWriteURL formats the git ssh url and return it. If no remote is configured in
// gandalf.conf, this method panics.
func (r *Repository) ReadWriteURL() string {
uid, err := config.GetString("uid")
if err != nil {
panic(err.Error())
}
remote := uid + "@%s:%s.git"
if useSSH, _ := config.GetBool("git:ssh:use"); useSSH {
port, err := config.GetString("git:ssh:port")
if err == nil {
remote = "ssh://" + uid + "@%s:" + port + "/%s.git"
} else {
remote = "ssh://" + uid + "@%s/%s.git"
}
}
host, err := config.GetString("host")
if err != nil {
panic(err.Error())
}
return fmt.Sprintf(remote, host, r.Name)
}
示例14: Delete
// Delete deletes an app.
//
// Delete an app is a process composed of four steps:
//
// 1. Destroy the bucket and S3 credentials (if bucket-support is
// enabled).
// 2. Destroy the app unit using juju
// 3. Unbind all service instances from the app
// 4. Remove the app from the database
func Delete(app *App) error {
gURL := repository.ServerURL()
(&gandalf.Client{Endpoint: gURL}).RemoveRepository(app.Name)
useS3, _ := config.GetBool("bucket-support")
if useS3 {
destroyBucket(app)
}
if len(app.Units) > 0 {
Provisioner.Destroy(app)
app.unbind()
}
token := app.Env["TSURU_APP_TOKEN"].Value
auth.DeleteToken(token)
quota.Release(app.Owner, app.Name)
conn, err := db.Conn()
if err != nil {
return err
}
defer conn.Close()
quota.Delete(app.Name)
return conn.Apps().Remove(bson.M{"name": app.Name})
}
示例15: dockerCluster
func dockerCluster() *cluster.Cluster {
cmutex.Lock()
defer cmutex.Unlock()
var clusterStorage cluster.Storage
if dCluster == nil {
if redisServer, err := config.GetString("docker:scheduler:redis-server"); err == nil {
prefix, _ := config.GetString("docker:scheduler:redis-prefix")
if password, err := config.GetString("docker:scheduler:redis-password"); err == nil {
clusterStorage = storage.AuthenticatedRedis(redisServer, password, prefix)
} else {
clusterStorage = storage.Redis(redisServer, prefix)
}
}
var nodes []cluster.Node
if segregate, _ := config.GetBool("docker:segregate"); segregate {
dCluster, _ = cluster.New(segScheduler, clusterStorage)
} else {
nodes = getDockerServers()
dCluster, _ = cluster.New(nil, clusterStorage, nodes...)
}
}
return dCluster
}