本文整理汇总了Golang中github.com/juju/names.NewServiceTag函数的典型用法代码示例。如果您正苦于以下问题:Golang NewServiceTag函数的具体用法?Golang NewServiceTag怎么用?Golang NewServiceTag使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewServiceTag函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestStreamCharmsTools
func (s *ImportSuite) TestStreamCharmsTools(c *gc.C) {
model := description.NewModel(description.ModelArgs{
Owner: names.NewUserTag("me"),
})
model.AddService(description.ServiceArgs{
Tag: names.NewServiceTag("magic"),
CharmURL: "local:trusty/magic",
})
model.AddService(description.ServiceArgs{
Tag: names.NewServiceTag("magic"),
CharmURL: "cs:trusty/postgresql-42",
})
uploader := &fakeUploader{charms: make(map[string]string)}
config := migration.UploadBinariesConfig{
State: &fakeStateStorage{},
Model: model,
Target: &fakeAPIConnection{},
GetCharmUploader: func(api.Connection) migration.CharmUploader { return uploader },
GetToolsUploader: func(target api.Connection) migration.ToolsUploader { return &noOpUploader{} },
GetStateStorage: func(migration.UploadBackend) storage.Storage { return &fakeCharmsStorage{} },
GetCharmStoragePath: func(_ migration.UploadBackend, u *charm.URL) (string, error) {
return "/path/for/" + u.String(), nil
},
}
err := migration.UploadBinaries(config)
c.Assert(err, jc.ErrorIsNil)
c.Assert(uploader.charms, jc.DeepEquals, map[string]string{
"local:trusty/magic": "fake file at /path/for/local:trusty/magic",
"cs:trusty/postgresql-42": "fake file at /path/for/cs:trusty/postgresql-42",
})
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:33,代码来源:migration_test.go
示例2: Rescale
// Rescale requests that all supplied service names be rescaled to
// their minimum configured sizes. It returns the first error it
// encounters.
func (api *API) Rescale(services []string) error {
args := params.Entities{
Entities: make([]params.Entity, len(services)),
}
for i, service := range services {
if !names.IsValidService(service) {
return errors.NotValidf("service name %q", service)
}
tag := names.NewServiceTag(service)
args.Entities[i].Tag = tag.String()
}
var results params.ErrorResults
err := api.caller.FacadeCall("Rescale", args, &results)
if err != nil {
return errors.Trace(err)
}
for _, result := range results.Results {
if result.Error != nil {
if err == nil {
err = result.Error
} else {
logger.Errorf("additional rescale error: %v", err)
}
}
}
return errors.Trace(err)
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:30,代码来源:api.go
示例3: TestWriteSettings
func (s *settingsSuite) TestWriteSettings(c *gc.C) {
numWriteSettingCalls := 0
writeSettings := func(serviceId string, settings map[string]string) error {
numWriteSettingCalls++
c.Check(serviceId, gc.Equals, StubServiceNm)
return nil
}
numIsLeaderCalls := 0
isLeader := func(serviceId, unitId string) (bool, error) {
numIsLeaderCalls++
c.Check(serviceId, gc.Equals, StubServiceNm)
c.Check(unitId, gc.Equals, StubUnitNm)
return true, nil
}
accessor := NewLeadershipSettingsAccessor(&stubAuthorizer{}, nil, nil, writeSettings, isLeader)
results, err := accessor.Merge(params.MergeLeadershipSettingsBulkParams{
[]params.MergeLeadershipSettingsParam{
{
ServiceTag: names.NewServiceTag(StubServiceNm).String(),
Settings: map[string]string{"baz": "biz"},
},
},
})
c.Assert(err, gc.IsNil)
c.Assert(results.Results, gc.HasLen, 1)
c.Check(results.Results[0].Error, gc.IsNil)
c.Check(numWriteSettingCalls, gc.Equals, 1)
c.Check(numIsLeaderCalls, gc.Equals, 1)
}
开发者ID:Pankov404,项目名称:juju,代码行数:33,代码来源:settings_test.go
示例4: TestWatchSuccess
func (*FacadeSuite) TestWatchSuccess(c *gc.C) {
caller := apiCaller(c, func(_ string, _, results interface{}) error {
typed, ok := results.(*params.NotifyWatchResults)
c.Assert(ok, jc.IsTrue)
*typed = params.NotifyWatchResults{
Results: []params.NotifyWatchResult{{
NotifyWatcherId: "123",
}},
}
return nil
})
expectWatcher := &struct{ watcher.NotifyWatcher }{}
newWatcher := func(apiCaller base.APICaller, result params.NotifyWatchResult) watcher.NotifyWatcher {
c.Check(apiCaller, gc.NotNil) // uncomparable
c.Check(result, jc.DeepEquals, params.NotifyWatchResult{
NotifyWatcherId: "123",
})
return expectWatcher
}
facade := lifeflag.NewFacade(caller, newWatcher)
watcher, err := facade.Watch(names.NewServiceTag("blah"))
c.Check(err, jc.ErrorIsNil)
c.Check(watcher, gc.Equals, expectWatcher)
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:25,代码来源:facade_test.go
示例5: TestEntityUnknownLife
func (*ScaryConnectSuite) TestEntityUnknownLife(c *gc.C) {
// "random" failure case
stub := &testing.Stub{}
expectConn := &mockConn{stub: stub}
apiOpen := func(info *api.Info, opts api.DialOpts) (api.Connection, error) {
return expectConn, nil
}
entity := names.NewServiceTag("omg")
connect := func() (api.Connection, error) {
return apicaller.ScaryConnect(&mockAgent{
stub: stub,
model: coretesting.ModelTag,
entity: entity,
}, apiOpen)
}
conn, err := lifeTest(c, stub, apiagent.Life("zombie"), connect)
c.Check(conn, gc.IsNil)
c.Check(err, gc.ErrorMatches, `unknown life value "zombie"`)
stub.CheckCalls(c, []testing.StubCall{{
FuncName: "Life",
Args: []interface{}{entity},
}, {
FuncName: "Close",
}})
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:27,代码来源:connect_test.go
示例6: TestClaimLeadershipTranslation
func (s *leadershipSuite) TestClaimLeadershipTranslation(c *gc.C) {
var ldrMgr stubLeadershipManager
ldrMgr.ClaimLeadershipFn = func(sid, uid string, duration time.Duration) error {
c.Check(sid, gc.Equals, StubServiceNm)
c.Check(uid, gc.Equals, StubUnitNm)
expectDuration := time.Duration(299.9 * float64(time.Second))
checkDurationEquals(c, duration, expectDuration)
return nil
}
ldrSvc := &leadershipService{LeadershipManager: &ldrMgr, authorizer: &stubAuthorizer{}}
results, err := ldrSvc.ClaimLeadership(params.ClaimLeadershipBulkParams{
Params: []params.ClaimLeadershipParams{
{
ServiceTag: names.NewServiceTag(StubServiceNm).String(),
UnitTag: names.NewUnitTag(StubUnitNm).String(),
DurationSeconds: 299.9,
},
},
})
c.Check(err, jc.ErrorIsNil)
c.Assert(results.Results, gc.HasLen, 1)
c.Check(results.Results[0].Error, gc.IsNil)
}
开发者ID:Pankov404,项目名称:juju,代码行数:25,代码来源:leadership_test.go
示例7: prepareClaimLeadership
// prepareClaimLeadership creates a single set of params in
// preperation for making a bulk call.
func (c *client) prepareClaimLeadership(serviceId, unitId string, duration time.Duration) params.ClaimLeadershipParams {
return params.ClaimLeadershipParams{
names.NewServiceTag(serviceId).String(),
names.NewUnitTag(unitId).String(),
duration.Seconds(),
}
}
开发者ID:imoapps,项目名称:juju,代码行数:9,代码来源:client.go
示例8: testEntityFine
func testEntityFine(c *gc.C, life apiagent.Life) {
stub := &testing.Stub{}
expectConn := &mockConn{stub: stub}
apiOpen := func(info *api.Info, opts api.DialOpts) (api.Connection, error) {
// no apiOpen stub calls necessary in this suite; covered
// by RetrySuite, just an extra complication here.
return expectConn, nil
}
// to make the point that this code should be entity-agnostic,
// use an entity that doesn't correspond to an agent at all.
entity := names.NewServiceTag("omg")
connect := func() (api.Connection, error) {
return apicaller.ScaryConnect(&mockAgent{
stub: stub,
model: coretesting.ModelTag,
entity: entity,
}, apiOpen)
}
conn, err := lifeTest(c, stub, apiagent.Alive, connect)
c.Check(conn, gc.Equals, expectConn)
c.Check(err, jc.ErrorIsNil)
stub.CheckCalls(c, []testing.StubCall{{
FuncName: "Life",
Args: []interface{}{entity},
}, {
FuncName: "SetPassword",
Args: []interface{}{entity, "new"},
}})
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:31,代码来源:connect_test.go
示例9: NewAddPendingResourcesArgs
// NewAddPendingResourcesArgs returns the arguments for the
// AddPendingResources API endpoint.
func NewAddPendingResourcesArgs(serviceID string, chID charmstore.CharmID, csMac *macaroon.Macaroon, resources []charmresource.Resource) (AddPendingResourcesArgs, error) {
var args AddPendingResourcesArgs
if !names.IsValidService(serviceID) {
return args, errors.Errorf("invalid service %q", serviceID)
}
tag := names.NewServiceTag(serviceID).String()
var apiResources []CharmResource
for _, res := range resources {
if err := res.Validate(); err != nil {
return args, errors.Trace(err)
}
apiRes := CharmResource2API(res)
apiResources = append(apiResources, apiRes)
}
args.Tag = tag
args.Resources = apiResources
if chID.URL != nil {
args.URL = chID.URL.String()
args.Channel = string(chID.Channel)
args.CharmStoreMacaroon = csMac
}
return args, nil
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:27,代码来源:data.go
示例10: TestClaimLeadershipDeniedError
func (s *leadershipSuite) TestClaimLeadershipDeniedError(c *gc.C) {
var ldrMgr stubLeadershipManager
ldrMgr.ClaimLeadershipFn = func(sid, uid string, duration time.Duration) error {
c.Check(sid, gc.Equals, StubServiceNm)
c.Check(uid, gc.Equals, StubUnitNm)
expectDuration := time.Duration(5.001 * float64(time.Second))
checkDurationEquals(c, duration, expectDuration)
return errors.Annotatef(leadership.ErrClaimDenied, "obfuscated")
}
ldrSvc := &leadershipService{LeadershipManager: &ldrMgr, authorizer: &stubAuthorizer{}}
results, err := ldrSvc.ClaimLeadership(params.ClaimLeadershipBulkParams{
Params: []params.ClaimLeadershipParams{
{
ServiceTag: names.NewServiceTag(StubServiceNm).String(),
UnitTag: names.NewUnitTag(StubUnitNm).String(),
DurationSeconds: 5.001,
},
},
})
c.Check(err, jc.ErrorIsNil)
c.Assert(results.Results, gc.HasLen, 1)
c.Check(results.Results[0].Error, jc.Satisfies, params.IsCodeLeadershipClaimDenied)
}
开发者ID:Pankov404,项目名称:juju,代码行数:25,代码来源:leadership_test.go
示例11: checkChangePassword
func checkChangePassword(c *gc.C, errs ...error) (*testing.Stub, error) {
// We prepend the unauth/success pair that triggers password
// change, and consume them in apiOpen below...
errUnauth := ¶ms.Error{Code: params.CodeUnauthorized}
allErrs := append([]error{errUnauth, nil}, errs...)
stub := &testing.Stub{}
stub.SetErrors(allErrs...)
expectConn := &mockConn{stub: stub}
apiOpen := func(info *api.Info, opts api.DialOpts) (api.Connection, error) {
// ...but we *don't* record the calls themselves; they
// are tested plenty elsewhere, and hiding them makes
// client code simpler.
if err := stub.NextErr(); err != nil {
return nil, err
}
return expectConn, nil
}
entity := names.NewServiceTag("omg")
connect := func() (api.Connection, error) {
return apicaller.ScaryConnect(&mockAgent{
stub: stub,
model: coretesting.ModelTag,
entity: entity,
}, apiOpen)
}
conn, err := lifeTest(c, stub, apiagent.Alive, connect)
c.Check(conn, gc.IsNil)
return stub, err
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:32,代码来源:connect_test.go
示例12: TestEntityDenied
func (*ScaryConnectSuite) TestEntityDenied(c *gc.C) {
// permanent failure case
stub := &testing.Stub{}
stub.SetErrors(apiagent.ErrDenied)
expectConn := &mockConn{stub: stub}
apiOpen := func(info *api.Info, opts api.DialOpts) (api.Connection, error) {
return expectConn, nil
}
entity := names.NewServiceTag("omg")
connect := func() (api.Connection, error) {
return apicaller.ScaryConnect(&mockAgent{
stub: stub,
model: coretesting.ModelTag,
entity: entity,
}, apiOpen)
}
conn, err := lifeTest(c, stub, apiagent.Dead, connect)
c.Check(conn, gc.IsNil)
c.Check(err, gc.Equals, apicaller.ErrConnectImpossible)
stub.CheckCalls(c, []testing.StubCall{{
FuncName: "Life",
Args: []interface{}{entity},
}, {
FuncName: "Close",
}})
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:28,代码来源:connect_test.go
示例13: TestNotSupportedTag
func (s *agentAuthenticatorSuite) TestNotSupportedTag(c *gc.C) {
srv := newServer(c, s.State)
defer srv.Stop()
authenticator, err := apiserver.ServerAuthenticatorForTag(srv, names.NewServiceTag("not-support"))
c.Assert(err, gc.ErrorMatches, "unexpected login entity tag: invalid request")
c.Assert(authenticator, gc.IsNil)
}
开发者ID:imoapps,项目名称:juju,代码行数:7,代码来源:authenticator_test.go
示例14: TestInit
func (s *DefinedSuite) TestInit(c *gc.C) {
tests := []struct {
should string
args []string
expectedSvc names.ServiceTag
expectedOutputSchema bool
expectedErr string
}{{
should: "fail with missing service name",
args: []string{},
expectedErr: "no service name specified",
}, {
should: "fail with invalid service name",
args: []string{invalidServiceId},
expectedErr: "invalid service name \"" + invalidServiceId + "\"",
}, {
should: "fail with too many args",
args: []string{"two", "things"},
expectedErr: "unrecognized args: \\[\"things\"\\]",
}, {
should: "init properly with valid service name",
args: []string{validServiceId},
expectedSvc: names.NewServiceTag(validServiceId),
}, {
should: "init properly with valid service name and --schema",
args: []string{"--schema", validServiceId},
expectedOutputSchema: true,
expectedSvc: names.NewServiceTag(validServiceId),
}}
for i, t := range tests {
for _, modelFlag := range s.modelFlags {
c.Logf("test %d should %s: juju actions defined %s", i,
t.should, strings.Join(t.args, " "))
s.wrappedCommand, s.command = action.NewDefinedCommand(s.store)
args := append([]string{modelFlag, "admin"}, t.args...)
err := testing.InitCommand(s.wrappedCommand, args)
if t.expectedErr == "" {
c.Check(s.command.ServiceTag(), gc.Equals, t.expectedSvc)
c.Check(s.command.FullSchema(), gc.Equals, t.expectedOutputSchema)
} else {
c.Check(err, gc.ErrorMatches, t.expectedErr)
}
}
}
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:46,代码来源:defined_test.go
示例15: TestUpgraderAPIRefusesNonUnitNonMachineAgent
func (s *rsyslogSuite) TestUpgraderAPIRefusesNonUnitNonMachineAgent(c *gc.C) {
anAuthorizer := s.authorizer
anAuthorizer.Tag = names.NewServiceTag("hadoop")
anUpgrader, err := rsyslog.NewRsyslogAPI(s.State, s.resources, anAuthorizer)
c.Check(err, gc.NotNil)
c.Check(anUpgrader, gc.IsNil)
c.Assert(err, gc.ErrorMatches, "permission denied")
}
开发者ID:kapilt,项目名称:juju,代码行数:8,代码来源:rsyslog_test.go
示例16: TestCreateVolumeItemNoUnit
func (s *volumeSuite) TestCreateVolumeItemNoUnit(c *gc.C) {
s.storageInstance.owner = names.NewServiceTag("test-service")
found := storage.CreateVolumeItem(s.api, s.volumeTag.String(), nil)
c.Assert(found.Error, gc.IsNil)
c.Assert(found.Error, gc.IsNil)
expected, err := storage.ConvertStateVolumeToParams(s.api, s.volume)
c.Assert(err, jc.ErrorIsNil)
c.Assert(found.Volume, gc.DeepEquals, expected)
}
开发者ID:Pankov404,项目名称:juju,代码行数:9,代码来源:volumelist_test.go
示例17: TestAuthFuncForTagKind
func (s *commonSuite) TestAuthFuncForTagKind(c *gc.C) {
// TODO(dimitern): This list of all supported tags and kinds needs
// to live in juju/names.
uuid, err := utils.NewUUID()
c.Assert(err, jc.ErrorIsNil)
allTags := []names.Tag{
nil, // invalid tag
names.NewActionTag(uuid.String()),
names.NewCharmTag("cs:precise/missing"),
names.NewModelTag(uuid.String()),
names.NewFilesystemTag("20/20"),
names.NewLocalUserTag("user"),
names.NewMachineTag("42"),
names.NewNetworkTag("public"),
names.NewRelationTag("wordpress:mysql mysql:db"),
names.NewServiceTag("wordpress"),
names.NewSpaceTag("apps"),
names.NewStorageTag("foo/42"),
names.NewUnitTag("wordpress/5"),
names.NewUserTag("joe"),
names.NewVolumeTag("80/20"),
}
for i, allowedTag := range allTags {
c.Logf("test #%d: allowedTag: %v", i, allowedTag)
var allowedKind string
if allowedTag != nil {
allowedKind = allowedTag.Kind()
}
getAuthFunc := common.AuthFuncForTagKind(allowedKind)
authFunc, err := getAuthFunc()
if allowedKind == "" {
c.Check(err, gc.ErrorMatches, "tag kind cannot be empty")
c.Check(authFunc, gc.IsNil)
continue
} else if !c.Check(err, jc.ErrorIsNil) {
continue
}
for j, givenTag := range allTags {
c.Logf("test #%d.%d: givenTag: %v", i, j, givenTag)
var givenKind string
if givenTag != nil {
givenKind = givenTag.Kind()
}
if allowedKind == givenKind {
c.Check(authFunc(givenTag), jc.IsTrue)
} else {
c.Check(authFunc(givenTag), jc.IsFalse)
}
}
}
}
开发者ID:exekias,项目名称:juju,代码行数:56,代码来源:common_test.go
示例18: TestWatchNoResultsError
func (*FacadeSuite) TestWatchNoResultsError(c *gc.C) {
caller := apiCaller(c, func(_ string, _, _ interface{}) error {
return nil
})
facade := lifeflag.NewFacade(caller, nil)
watcher, err := facade.Watch(names.NewServiceTag("blah"))
c.Check(err, gc.ErrorMatches, "expected 1 Watch result, got 0")
c.Check(watcher, gc.IsNil)
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:10,代码来源:facade_test.go
示例19: TestLifeNoResultsError
func (*FacadeSuite) TestLifeNoResultsError(c *gc.C) {
caller := apiCaller(c, func(_ string, _, _ interface{}) error {
return nil
})
facade := lifeflag.NewFacade(caller, nil)
result, err := facade.Life(names.NewServiceTag("blah"))
c.Check(err, gc.ErrorMatches, "expected 1 Life result, got 0")
c.Check(result, gc.Equals, life.Value(""))
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:10,代码来源:facade_test.go
示例20: TestLifeCallError
func (*FacadeSuite) TestLifeCallError(c *gc.C) {
caller := apiCaller(c, func(_ string, _, _ interface{}) error {
return errors.New("crunch belch")
})
facade := lifeflag.NewFacade(caller, nil)
result, err := facade.Life(names.NewServiceTag("blah"))
c.Check(err, gc.ErrorMatches, "crunch belch")
c.Check(result, gc.Equals, life.Value(""))
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:10,代码来源:facade_test.go
注:本文中的github.com/juju/names.NewServiceTag函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论