本文整理汇总了Golang中github.com/juju/names.Tag.String方法的典型用法代码示例。如果您正苦于以下问题:Golang Tag.String方法的具体用法?Golang Tag.String怎么用?Golang Tag.String使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/juju/names.Tag
的用法示例。
在下文中一共展示了Tag.String方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: primeAgent
// primeAgent writes the configuration file and tools with version vers
// for an agent with the given entity name. It returns the agent's
// configuration and the current tools.
func (s *agentSuite) primeAgent(c *gc.C, tag names.Tag, password string, vers version.Binary) (agent.ConfigSetterWriter, *coretools.Tools) {
stor := s.Environ.Storage()
agentTools := envtesting.PrimeTools(c, stor, s.DataDir(), vers)
err := envtools.MergeAndWriteMetadata(stor, coretools.List{agentTools}, envtools.DoNotWriteMirrors)
c.Assert(err, gc.IsNil)
tools1, err := agenttools.ChangeAgentTools(s.DataDir(), tag.String(), vers)
c.Assert(err, gc.IsNil)
c.Assert(tools1, gc.DeepEquals, agentTools)
stateInfo := s.MongoInfo(c)
apiInfo := s.APIInfo(c)
conf, err := agent.NewAgentConfig(
agent.AgentConfigParams{
DataDir: s.DataDir(),
Tag: tag,
UpgradedToVersion: vers.Number,
Password: password,
Nonce: agent.BootstrapNonce,
StateAddresses: stateInfo.Addrs,
APIAddresses: apiInfo.Addrs,
CACert: stateInfo.CACert,
})
conf.SetPassword(password)
c.Assert(conf.Write(), gc.IsNil)
s.primeAPIHostPorts(c)
return conf, agentTools
}
示例2: PrimeAgentVersion
// PrimeAgentVersion writes the configuration file and tools with version
// vers for an agent with the given entity name. It returns the agent's
// configuration and the current tools.
func (s *AgentSuite) PrimeAgentVersion(c *gc.C, tag names.Tag, password string, vers version.Binary) (agent.ConfigSetterWriter, *coretools.Tools) {
c.Logf("priming agent %s", tag.String())
stor, err := filestorage.NewFileStorageWriter(c.MkDir())
c.Assert(err, jc.ErrorIsNil)
agentTools := envtesting.PrimeTools(c, stor, s.DataDir(), "released", vers)
err = envtools.MergeAndWriteMetadata(stor, "released", "released", coretools.List{agentTools}, envtools.DoNotWriteMirrors)
tools1, err := agenttools.ChangeAgentTools(s.DataDir(), tag.String(), vers)
c.Assert(err, jc.ErrorIsNil)
c.Assert(tools1, gc.DeepEquals, agentTools)
stateInfo := s.MongoInfo(c)
apiInfo := s.APIInfo(c)
paths := agent.DefaultPaths
paths.DataDir = s.DataDir()
conf, err := agent.NewAgentConfig(
agent.AgentConfigParams{
Paths: paths,
Tag: tag,
UpgradedToVersion: vers.Number,
Password: password,
Nonce: agent.BootstrapNonce,
StateAddresses: stateInfo.Addrs,
APIAddresses: apiInfo.Addrs,
CACert: stateInfo.CACert,
Model: apiInfo.ModelTag,
})
c.Assert(err, jc.ErrorIsNil)
conf.SetPassword(password)
c.Assert(conf.Write(), gc.IsNil)
s.primeAPIHostPorts(c)
return conf, agentTools
}
示例3: WriteLogWithOplog
// WriteLogWithOplog writes out a log record to the a (probably fake)
// oplog collection and the logs collection.
func WriteLogWithOplog(
oplog *mgo.Collection,
envUUID string,
entity names.Tag,
t time.Time,
module string,
location string,
level loggo.Level,
msg string,
) error {
doc := &logDoc{
Id: bson.NewObjectId(),
Time: t,
EnvUUID: envUUID,
Entity: entity.String(),
Module: module,
Location: location,
Level: level,
Message: msg,
}
err := oplog.Insert(bson.D{
{"ts", bson.MongoTimestamp(time.Now().Unix() << 32)}, // an approximation which will do
{"h", rand.Int63()}, // again, a suitable fake
{"op", "i"}, // this will always be an insert
{"ns", "logs.logs"},
{"o", doc},
})
if err != nil {
return err
}
session := oplog.Database.Session
logs := session.DB("logs").C("logs")
return logs.Insert(doc)
}
示例4: SetPassword
// SetPassword is part of the ConnFacade interface.
func (facade *connFacade) SetPassword(entity names.Tag, password string) error {
var results params.ErrorResults
args := params.EntityPasswords{
Changes: []params.EntityPassword{{
Tag: entity.String(),
Password: password,
}},
}
err := facade.caller.FacadeCall("SetPasswords", args, &results)
if err != nil {
return errors.Trace(err)
}
if len(results.Results) != 1 {
return errors.Errorf("expected 1 result, got %d", len(results.Results))
}
if err := results.Results[0].Error; err != nil {
if params.IsCodeDead(err) {
return ErrDenied
} else if params.IsCodeNotFoundOrCodeUnauthorized(err) {
return ErrDenied
}
return errors.Trace(err)
}
return nil
}
示例5: Life
// Life is part of the ConnFacade interface.
func (facade *connFacade) Life(entity names.Tag) (Life, error) {
var results params.AgentGetEntitiesResults
args := params.Entities{
Entities: []params.Entity{{Tag: entity.String()}},
}
err := facade.caller.FacadeCall("GetEntities", args, &results)
if err != nil {
return "", errors.Trace(err)
}
if len(results.Entities) != 1 {
return "", errors.Errorf("expected 1 result, got %d", len(results.Entities))
}
if err := results.Entities[0].Error; err != nil {
if params.IsCodeNotFoundOrCodeUnauthorized(err) {
return "", ErrDenied
}
return "", errors.Trace(err)
}
life := Life(results.Entities[0].Life)
switch life {
case Alive, Dying, Dead:
return life, nil
}
return "", errors.Errorf("unknown life value %q", life)
}
示例6: paths
func (fix *SimpleToolsFixture) paths(tag names.Tag) (confPath, agentDir, toolsDir string) {
confName := fmt.Sprintf("jujud-%s.conf", tag)
confPath = filepath.Join(fix.initDir, confName)
agentDir = agent.Dir(fix.dataDir, tag)
toolsDir = tools.ToolsDir(fix.dataDir, tag.String())
return
}
示例7: NewDbLogger
// NewDbLogger returns a DbLogger instance which is used to write logs
// to the database.
func NewDbLogger(st LoggingState, entity names.Tag) *DbLogger {
_, logsColl := initLogsSession(st)
return &DbLogger{
logsColl: logsColl,
envUUID: st.EnvironUUID(),
entity: entity.String(),
}
}
示例8: getLogCount
func (s *dblogSuite) getLogCount(c *gc.C, entity names.Tag) int {
// TODO(mjs) - replace this with State's functionality for reading
// logs from the DB, once it gets this. This will happen before
// the DB logging feature branch is merged.
logs := s.Session.DB("logs").C("logs")
count, err := logs.Find(bson.M{"n": entity.String()}).Count()
c.Assert(err, jc.ErrorIsNil)
return count
}
示例9: assertAnnotationsRemoval
func (s *annotationSuite) assertAnnotationsRemoval(c *gc.C, tag names.Tag) {
entity := tag.String()
entities := params.Entities{[]params.Entity{{entity}}}
ann := s.annotationsApi.Get(entities)
c.Assert(ann.Results, gc.HasLen, 1)
aResult := ann.Results[0]
c.Assert(aResult.EntityTag, gc.DeepEquals, entity)
c.Assert(aResult.Annotations, gc.HasLen, 0)
}
示例10: FindEntity
func (f simpleEntityFinder) FindEntity(tag names.Tag) (state.Entity, error) {
if utag, ok := tag.(names.UserTag); ok {
// It's a user tag which we need to be in canonical form
// so we can look it up unambiguously.
tag = names.NewUserTag(utag.Canonical())
}
if f[tag.String()] {
return &simpleEntity{tag}, nil
}
return nil, errors.NotFoundf("entity %q", tag)
}
示例11: newRsyslogConfigHandler
func newRsyslogConfigHandler(st *apirsyslog.State, mode RsyslogMode, tag names.Tag, namespace string, stateServerAddrs []string, jujuConfigDir string) (*RsyslogConfigHandler, error) {
if namespace != "" {
jujuConfigDir += "-" + namespace
}
jujuConfigDir = filepath.Join(jujuConfigDir, "rsyslog")
if err := os.MkdirAll(jujuConfigDir, 0755); err != nil {
return nil, errors.Trace(err)
}
syslogConfig := &syslog.SyslogConfig{
LogFileName: tag.String(),
LogDir: logDir,
JujuConfigDir: jujuConfigDir,
Port: 0,
Namespace: namespace,
StateServerAddresses: stateServerAddrs,
}
if mode == RsyslogModeAccumulate {
syslog.NewAccumulateConfig(syslogConfig)
} else {
syslog.NewForwardConfig(syslogConfig)
}
// Historically only machine-0 includes the namespace in the log
// dir/file; for backwards compatibility we continue the tradition.
if tag != names.NewMachineTag("0") {
namespace = ""
}
switch tag := tag.(type) {
case names.MachineTag:
if namespace == "" {
syslogConfig.ConfigFileName = "25-juju.conf"
} else {
syslogConfig.ConfigFileName = fmt.Sprintf("25-juju-%s.conf", namespace)
}
default:
syslogConfig.ConfigFileName = fmt.Sprintf("26-juju-%s.conf", tag)
}
syslogConfig.ConfigDir = rsyslogConfDir
syslogConfig.LogDir = logDir
if namespace != "" {
syslogConfig.LogDir += "-" + namespace
}
return &RsyslogConfigHandler{
st: st,
mode: mode,
syslogConfig: syslogConfig,
tag: tag,
}, nil
}
示例12: primeStateAgent
// primeStateAgent writes the configuration file and tools with version vers
// for an agent with the given entity name. It returns the agent's configuration
// and the current tools.
func (s *agentSuite) primeStateAgent(
c *gc.C, tag names.Tag, password string, vers version.Binary) (agent.ConfigSetterWriter, *coretools.Tools) {
agentTools := envtesting.PrimeTools(c, s.Environ.Storage(), s.DataDir(), vers)
tools1, err := agenttools.ChangeAgentTools(s.DataDir(), tag.String(), vers)
c.Assert(err, gc.IsNil)
c.Assert(tools1, gc.DeepEquals, agentTools)
stateInfo := s.MongoInfo(c)
conf := writeStateAgentConfig(c, stateInfo, s.DataDir(), tag, password, vers)
s.primeAPIHostPorts(c)
return conf, agentTools
}
示例13: PrimeStateAgentVersion
// PrimeStateAgentVersion writes the configuration file and tools with
// version vers for a state agent with the given entity name. It
// returns the agent's configuration and the current tools.
func (s *AgentSuite) PrimeStateAgentVersion(c *gc.C, tag names.Tag, password string, vers version.Binary) (
agent.ConfigSetterWriter, *coretools.Tools,
) {
stor, err := filestorage.NewFileStorageWriter(c.MkDir())
c.Assert(err, jc.ErrorIsNil)
agentTools := envtesting.PrimeTools(c, stor, s.DataDir(), "released", vers)
tools1, err := agenttools.ChangeAgentTools(s.DataDir(), tag.String(), vers)
c.Assert(err, jc.ErrorIsNil)
c.Assert(tools1, gc.DeepEquals, agentTools)
conf := s.WriteStateAgentConfig(c, tag, password, vers, s.State.ModelTag())
s.primeAPIHostPorts(c)
return conf, agentTools
}
示例14: testSetGetEntitiesAnnotations
func (s *annotationSuite) testSetGetEntitiesAnnotations(c *gc.C, tag names.Tag) {
entity := tag.String()
entities := []string{entity}
for i, t := range clientAnnotationsTests {
c.Logf("test %d. %s. entity %s", i, t.about, tag.Id())
s.setupEntity(c, entities, t.initial)
s.assertSetEntityAnnotations(c, entities, t.input, t.err)
if t.err != "" {
continue
}
aResult := s.assertGetEntityAnnotations(c, params.Entities{[]params.Entity{{entity}}}, entity, t.expected)
s.cleanupEntityAnnotations(c, entities, aResult)
}
}
示例15: Life
// Life requests the life cycle of the given entity from the given
// server-side API facade via the given caller.
func Life(caller base.FacadeCaller, tag names.Tag) (params.Life, error) {
var result params.LifeResults
args := params.Entities{
Entities: []params.Entity{{Tag: tag.String()}},
}
if err := caller.FacadeCall("Life", args, &result); err != nil {
return "", err
}
if len(result.Results) != 1 {
return "", errors.Errorf("expected 1 result, got %d", len(result.Results))
}
if err := result.Results[0].Error; err != nil {
return "", err
}
return result.Results[0].Life, nil
}