本文整理汇总了Golang中github.com/jrperritt/rack/internal/github.com/Sirupsen/logrus.Logger.Infof方法的典型用法代码示例。如果您正苦于以下问题:Golang Logger.Infof方法的具体用法?Golang Logger.Infof怎么用?Golang Logger.Infof使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/jrperritt/rack/internal/github.com/Sirupsen/logrus.Logger
的用法示例。
在下文中一共展示了Logger.Infof方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: NewClient
// NewClient creates and returns a Rackspace client for the given service.
func NewClient(c *cli.Context, serviceType string, logger *logrus.Logger, noCache bool, useServiceNet bool) (*gophercloud.ServiceClient, error) {
// get the user's authentication credentials
credsResult, err := Credentials(c, logger)
if err != nil {
return nil, err
}
logMsg := "Using public endpoint"
urlType := gophercloud.AvailabilityPublic
if useServiceNet {
logMsg = "Using service net endpoint"
urlType = gophercloud.AvailabilityInternal
}
logger.Infoln(logMsg)
if noCache {
return authFromScratch(credsResult, serviceType, urlType, logger)
}
ao := credsResult.AuthOpts
region := credsResult.Region
// form the cache key
cacheKey := CacheKey(*ao, region, serviceType, urlType)
// initialize cache
cache := &Cache{}
logger.Infof("Looking in the cache for cache key: %s\n", cacheKey)
// get the value from the cache
creds, err := cache.Value(cacheKey)
// if there was an error accessing the cache or there was nothing in the cache,
// authenticate from scratch
if err == nil && creds != nil {
// we successfully retrieved a value from the cache
logger.Infof("Using token from cache: %s\n", creds.TokenID)
pc, err := rackspace.NewClient(ao.IdentityEndpoint)
if err == nil {
pc.TokenID = creds.TokenID
pc.ReauthFunc = reauthFunc(pc, *ao)
pc.UserAgent.Prepend(util.UserAgent)
pc.HTTPClient = newHTTPClient()
return &gophercloud.ServiceClient{
ProviderClient: pc,
Endpoint: creds.ServiceEndpoint,
}, nil
}
} else {
return authFromScratch(credsResult, serviceType, urlType, logger)
}
return nil, nil
}
示例2: NewClient
// NewClient creates and returns a Rackspace client for the given service.
func NewClient(c *cli.Context, serviceType string, logger *logrus.Logger) (*gophercloud.ServiceClient, error) {
// get the user's authentication credentials
ao, region, err := Credentials(c, logger)
if err != nil {
return nil, err
}
if c.GlobalIsSet("no-cache") || c.IsSet("no-cache") {
return authFromScratch(*ao, region, serviceType, logger)
}
// form the cache key
cacheKey := CacheKey(*ao, region, serviceType)
// initialize cache
cache := &Cache{}
// get the value from the cache
creds, err := cache.Value(cacheKey)
// if there was an error accessing the cache or there was nothing in the cache,
// authenticate from scratch
if err == nil && creds != nil {
// we successfully retrieved a value from the cache
logger.Infof("Using token from cache: %s\n", creds.TokenID)
pc, err := rackspace.NewClient(ao.IdentityEndpoint)
if err == nil {
pc.TokenID = creds.TokenID
pc.ReauthFunc = reauthFunc(pc, *ao)
pc.UserAgent.Prepend(util.UserAgent)
pc.HTTPClient = NewHTTPClient()
return &gophercloud.ServiceClient{
ProviderClient: pc,
Endpoint: creds.ServiceEndpoint,
}, nil
}
} else {
return authFromScratch(*ao, region, serviceType, logger)
}
return nil, nil
}
示例3: Credentials
// Credentials determines the appropriate authentication method for the user.
// It returns a gophercloud.AuthOptions object and a region.
//
// It will use command-line authentication parameters if available, then it will
// look for any unset parameters in the config file, and then finally in
// environment variables.
func Credentials(c *cli.Context, logger *logrus.Logger) (*CredentialsResult, error) {
ao := &gophercloud.AuthOptions{
AllowReauth: true,
}
have := make(map[string]commandoptions.Cred)
// let's looks for a region and identity endpoint
want := map[string]string{
"auth-url": "",
"region": "",
}
err := findAuthOpts(c, have, want)
if err != nil {
return nil, err
}
// if the user didn't provide an auth URL, default to the Rackspace US endpoint
if _, ok := have["auth-url"]; !ok || have["auth-url"].Value == "" {
have["auth-url"] = commandoptions.Cred{Value: rackspace.RackspaceUSIdentity, From: "default value"}
delete(want, "auth-url")
}
ao.IdentityEndpoint = have["auth-url"].Value
// upper-case the region
region := strings.ToUpper(have["region"].Value)
delete(want, "region")
// now we check for token authentication (only allowed via the command-line)
want["auth-tenant-id"] = ""
want["auth-token"] = ""
commandoptions.CLIopts(c, have, want)
// if a tenant ID was provided on the command-line, we don't bother checking for a
// username or api key
if have["auth-tenant-id"].Value != "" || have["auth-token"].Value != "" {
if tenantID, ok := have["auth-tenant-id"]; ok {
ao.TenantID = tenantID.Value
ao.TokenID = have["auth-token"].Value
delete(want, "auth-token")
} else {
return nil, Err(have, want, tenantIDAuthErrSlice)
}
} else {
// otherwise, let's look for a username and API key
want = map[string]string{
"username": "",
"api-key": "",
}
err = findAuthOpts(c, have, want)
if err != nil {
return nil, err
}
if have["username"].Value != "" || have["api-key"].Value != "" {
if username, ok := have["username"]; ok {
ao.Username = username.Value
ao.APIKey = have["api-key"].Value
delete(want, "api-key")
} else {
return nil, Err(have, want, usernameAuthErrSlice)
}
} else {
return nil, Err(have, want, usernameAuthErrSlice)
}
}
if logger != nil {
haveString := ""
for k, v := range have {
haveString += fmt.Sprintf("%s: %s (from %s)\n", k, v.Value, v.From)
}
logger.Infof("Authentication Credentials:\n%s\n", haveString)
}
credsResult := &CredentialsResult{
AuthOpts: ao,
Region: region,
Have: have,
Want: want,
}
return credsResult, nil
}
示例4: Credentials
// Credentials determines the appropriate authentication method for the user.
// It returns a gophercloud.AuthOptions object and a region.
//
// It will use command-line authentication parameters if available, then it will
// look for any unset parameters in the config file, and then finally in
// environment variables.
func Credentials(c *cli.Context, logger *logrus.Logger) (*gophercloud.AuthOptions, string, error) {
have := make(map[string]authCred)
need := map[string]string{
"username": "",
"apikey": "",
"authurl": "",
"region": "",
}
// use command-line options if available
cliopts(c, have, need)
// are there any unset auth variables?
if len(need) != 0 {
// if so, look in config file
err := configfile(c, have, need)
if err != nil {
return nil, "", err
}
// still unset auth variables?
if len(need) != 0 {
// if so, look in environment variables
envvars(have, need)
}
}
// if the user didn't provide an auth URL, default to the Rackspace US endpoint
if _, ok := have["authurl"]; !ok || have["authurl"].value == "" {
have["authurl"] = authCred{value: rackspace.RackspaceUSIdentity, from: "default value"}
delete(need, "authurl")
}
haveString := ""
for k, v := range have {
haveString += fmt.Sprintf("%s: %s (from %s)\n", k, v.value, v.from)
}
if len(need) > 0 {
needString := ""
for k := range need {
needString += fmt.Sprintf("%s\n", k)
}
authErrSlice := []string{"There are some required Rackspace Cloud credentials that we couldn't find.",
"Here's what we have:",
fmt.Sprintf("%s", haveString),
"and here's what we we're missing:",
fmt.Sprintf("%s", needString),
"",
"You can set any of these credentials in the following ways:",
"- Run `rack configure` to interactively create a configuration file,",
"- Specify it in the command as a flag (--username, --apikey, --region), or",
"- Export it as an environment variable (RS_USERNAME, RS_API_KEY, RS_REGION_NAME).",
"",
}
return nil, "", fmt.Errorf(strings.Join(authErrSlice, "\n"))
}
if logger != nil {
logger.Infof("Authentication Credentials:\n%s\n", haveString)
}
ao := &gophercloud.AuthOptions{
Username: have["username"].value,
APIKey: have["apikey"].value,
IdentityEndpoint: have["authurl"].value,
}
// upper-case the region
region := strings.ToUpper(have["region"].value)
// allow Gophercloud to re-authenticate
ao.AllowReauth = true
return ao, region, nil
}