本文整理汇总了Golang中github.com/juju/juju/apiserver/params.ErrorResult类的典型用法代码示例。如果您正苦于以下问题:Golang ErrorResult类的具体用法?Golang ErrorResult怎么用?Golang ErrorResult使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ErrorResult类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestAddToUnit
func (s *storageMockSuite) TestAddToUnit(c *gc.C) {
size := uint64(42)
cons := params.StorageConstraints{
Pool: "value",
Size: &size,
}
errOut := "error"
unitStorages := []params.StorageAddParams{
params.StorageAddParams{UnitTag: "u-a", StorageName: "one", Constraints: cons},
params.StorageAddParams{UnitTag: "u-b", StorageName: errOut, Constraints: cons},
params.StorageAddParams{UnitTag: "u-b", StorageName: "nil-constraints"},
}
storageN := 3
expectedError := common.ServerError(errors.NotValidf("storage directive"))
one := func(u, s string, attrs params.StorageConstraints) params.ErrorResult {
result := params.ErrorResult{}
if s == errOut {
result.Error = expectedError
}
return result
}
apiCaller := basetesting.APICallerFunc(
func(objType string,
version int,
id, request string,
a, result interface{},
) error {
c.Check(objType, gc.Equals, "Storage")
c.Check(id, gc.Equals, "")
c.Check(request, gc.Equals, "AddToUnit")
args, ok := a.(params.StoragesAddParams)
c.Assert(ok, jc.IsTrue)
c.Assert(args.Storages, gc.HasLen, storageN)
c.Assert(args.Storages, gc.DeepEquals, unitStorages)
if results, k := result.(*params.ErrorResults); k {
out := []params.ErrorResult{}
for _, s := range args.Storages {
out = append(out, one(s.UnitTag, s.StorageName, s.Constraints))
}
results.Results = out
}
return nil
})
storageClient := storage.NewClient(apiCaller)
r, err := storageClient.AddToUnit(unitStorages)
c.Assert(err, jc.ErrorIsNil)
c.Assert(r, gc.HasLen, storageN)
expected := []params.ErrorResult{
{nil},
{expectedError},
{nil},
}
c.Assert(r, jc.SameContents, expected)
}
开发者ID:ktsakalozos,项目名称:juju,代码行数:60,代码来源:client_test.go
示例2: SetRsyslogCert
// SetRsyslogCert sets the rsyslog CACert.
func (api *RsyslogAPI) SetRsyslogCert(args params.SetRsyslogCertParams) (params.ErrorResult, error) {
var result params.ErrorResult
if !api.canModify {
result.Error = common.ServerError(common.ErrBadCreds)
return result, nil
}
if _, err := cert.ParseCert(string(args.CACert)); err != nil {
result.Error = common.ServerError(err)
return result, nil
}
attrs := map[string]interface{}{"rsyslog-ca-cert": string(args.CACert)}
if err := api.st.UpdateEnvironConfig(attrs, nil, nil); err != nil {
result.Error = common.ServerError(err)
}
return result, nil
}
开发者ID:kapilt,项目名称:juju,代码行数:17,代码来源:rsyslog.go
示例3: CleanupIPAddresses
// CleanupIPAddresses releases and removes the dead IP addresses.
func (api *AddresserAPI) CleanupIPAddresses() params.ErrorResult {
result := params.ErrorResult{}
netEnv, ok, err := api.getNetworkingEnviron()
if err != nil {
result.Error = common.ServerError(err)
return result
}
if !ok {
result.Error = common.ServerError(errors.NotSupportedf("IP address deallocation"))
return result
}
// Retrieve dead addresses, release and remove them.
logger.Debugf("retrieving dead IP addresses")
ipAddresses, err := api.st.DeadIPAddresses()
if err != nil {
err = errors.Annotate(err, "getting dead addresses")
result.Error = common.ServerError(err)
return result
}
canRetry := false
for _, ipAddress := range ipAddresses {
ipAddressValue := ipAddress.Value()
logger.Debugf("releasing dead IP address %q", ipAddressValue)
err := api.releaseIPAddress(netEnv, ipAddress)
if err != nil {
logger.Warningf("cannot release IP address %q: %v (will retry)", ipAddressValue, err)
canRetry = true
continue
}
logger.Debugf("removing released IP address %q", ipAddressValue)
err = ipAddress.Remove()
if errors.IsNotFound(err) {
continue
}
if err != nil {
logger.Warningf("failed to remove released IP address %q: %v (will retry)", ipAddressValue, err)
canRetry = true
continue
}
}
if canRetry {
result.Error = common.ServerError(common.ErrTryAgain)
}
return result
}
开发者ID:felicianotech,项目名称:juju,代码行数:46,代码来源:addresser.go
注:本文中的github.com/juju/juju/apiserver/params.ErrorResult类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论