本文整理汇总了Golang中github.com/juju/juju/apiserver/params.ErrorResult.Error方法的典型用法代码示例。如果您正苦于以下问题:Golang ErrorResult.Error方法的具体用法?Golang ErrorResult.Error怎么用?Golang ErrorResult.Error使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/juju/juju/apiserver/params.ErrorResult
的用法示例。
在下文中一共展示了ErrorResult.Error方法的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)
}
示例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
}
示例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
}