本文整理汇总了Golang中github.com/juju/errors.Errorf函数的典型用法代码示例。如果您正苦于以下问题:Golang Errorf函数的具体用法?Golang Errorf怎么用?Golang Errorf使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Errorf函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: parseLexRangeItem
func parseLexRangeItem(buf []byte) ([]byte, bool, error) {
if len(buf) == 0 {
return nil, false, errors.Errorf("empty lex range item")
}
ex := false
var dest []byte
switch buf[0] {
case '+':
if len(buf) > 1 {
return nil, false, errors.Errorf("invalid lex range item, only + allowed, but %s", buf)
}
dest = maxString
case '-':
if len(buf) > 1 {
return nil, false, errors.Errorf("invalid lex range item, only - allowed, but %s", buf)
}
dest = minString
case '(', '[':
dest = buf[1:]
if len(dest) == 0 {
return nil, false, errors.Errorf("invalid empty lex range item %s", buf)
}
ex = buf[0] == '('
default:
return nil, false, errors.Errorf("invalid lex range item at first byte, %s", buf)
}
return dest, ex, nil
}
开发者ID:ksmaheshkumar,项目名称:qdb,代码行数:31,代码来源:zset.go
示例2: Decode
func (h *EventHeader) Decode(data []byte) error {
if len(data) < EventHeaderSize {
return errors.Errorf("header size too short %d, must 19", len(data))
}
pos := 0
h.Timestamp = binary.LittleEndian.Uint32(data[pos:])
pos += 4
h.EventType = EventType(data[pos])
pos++
h.ServerID = binary.LittleEndian.Uint32(data[pos:])
pos += 4
h.EventSize = binary.LittleEndian.Uint32(data[pos:])
pos += 4
h.LogPos = binary.LittleEndian.Uint32(data[pos:])
pos += 4
h.Flags = binary.LittleEndian.Uint16(data[pos:])
pos += 2
if h.EventSize < uint32(EventHeaderSize) {
return errors.Errorf("invalid event size %d, must >= 19", h.EventSize)
}
return nil
}
开发者ID:ZhiephieCook,项目名称:gh-ost,代码行数:31,代码来源:event.go
示例3: ValidateVolumeParams
// ValidateVolumeParams is specified on the storage.VolumeSource interface.
func (v *ebsVolumeSource) ValidateVolumeParams(params storage.VolumeParams) error {
vol, err := parseVolumeOptions(params.Size, params.Attributes)
if err != nil {
return err
}
var minVolumeSize, maxVolumeSize int
switch vol.VolumeType {
case volumeTypeStandard:
minVolumeSize = minMagneticVolumeSizeGiB
maxVolumeSize = maxMagneticVolumeSizeGiB
case volumeTypeGp2:
minVolumeSize = minSsdVolumeSizeGiB
maxVolumeSize = maxSsdVolumeSizeGiB
case volumeTypeIo1:
minVolumeSize = minProvisionedIopsVolumeSizeGiB
maxVolumeSize = maxProvisionedIopsVolumeSizeGiB
}
if vol.VolumeSize < minVolumeSize {
return errors.Errorf(
"volume size is %d GiB, must be at least %d GiB",
vol.VolumeSize, minVolumeSize,
)
}
if vol.VolumeSize > maxVolumeSize {
return errors.Errorf(
"volume size %d GiB exceeds the maximum of %d GiB",
vol.VolumeSize, maxVolumeSize,
)
}
return nil
}
开发者ID:pmatulis,项目名称:juju,代码行数:32,代码来源:ebs.go
示例4: composeColumnPrivUpdate
// Compose update stmt assignment list for column scope privilege update.
func composeColumnPrivUpdate(ctx context.Context, priv mysql.PrivilegeType, name string, host string, db string, tbl string, col string) (string, error) {
newColumnPriv := ""
if priv == mysql.AllPriv {
for _, p := range mysql.AllColumnPrivs {
v, ok := mysql.Priv2SetStr[p]
if !ok {
return "", errors.Errorf("Unknown column privilege %v", p)
}
if len(newColumnPriv) == 0 {
newColumnPriv = v
} else {
newColumnPriv = fmt.Sprintf("%s,%s", newColumnPriv, v)
}
}
} else {
currColumnPriv, err := getColumnPriv(ctx, name, host, db, tbl, col)
if err != nil {
return "", errors.Trace(err)
}
p, ok := mysql.Priv2SetStr[priv]
if !ok {
return "", errors.Errorf("Unknown priv: %v", priv)
}
if len(currColumnPriv) == 0 {
newColumnPriv = p
} else {
newColumnPriv = fmt.Sprintf("%s,%s", currColumnPriv, p)
}
}
return fmt.Sprintf(`Column_priv="%s"`, newColumnPriv), nil
}
开发者ID:jmptrader,项目名称:tidb,代码行数:32,代码来源:grant.go
示例5: CheckCIDRs
// CheckCIDRs parses the list of strings as CIDRs, checking for
// correct formatting, no duplication and no overlaps. Returns error
// if no CIDRs are provided, unless cidrsOptional is true.
func CheckCIDRs(args []string, cidrsOptional bool) (set.Strings, error) {
// Validate any given CIDRs.
CIDRs := set.NewStrings()
for _, arg := range args {
_, ipNet, err := net.ParseCIDR(arg)
if err != nil {
logger.Debugf("cannot parse %q: %v", arg, err)
return CIDRs, errors.Errorf("%q is not a valid CIDR", arg)
}
cidr := ipNet.String()
if CIDRs.Contains(cidr) {
if cidr == arg {
return CIDRs, errors.Errorf("duplicate subnet %q specified", cidr)
}
return CIDRs, errors.Errorf("subnet %q overlaps with %q", arg, cidr)
}
CIDRs.Add(cidr)
}
if CIDRs.IsEmpty() && !cidrsOptional {
return CIDRs, errors.New("CIDRs required but not provided")
}
return CIDRs, nil
}
开发者ID:makyo,项目名称:juju,代码行数:28,代码来源:space.go
示例6: decorateAndWriteInfo
// decorateAndWriteInfo decorates the info struct with information
// from the given cfg, and the writes that out to the filesystem.
func decorateAndWriteInfo(info configstore.EnvironInfo, cfg *config.Config) error {
// Sanity check our config.
var endpoint configstore.APIEndpoint
if cert, ok := cfg.CACert(); !ok {
return errors.Errorf("CACert is not set")
} else if uuid, ok := cfg.UUID(); !ok {
return errors.Errorf("UUID is not set")
} else if adminSecret := cfg.AdminSecret(); adminSecret == "" {
return errors.Errorf("admin-secret is not set")
} else {
endpoint = configstore.APIEndpoint{
CACert: cert,
EnvironUUID: uuid,
}
}
creds := configstore.APICredentials{
User: "admin", // TODO(waigani) [email protected] once we have that set
Password: cfg.AdminSecret(),
}
info.SetAPICredentials(creds)
info.SetAPIEndpoint(endpoint)
info.SetBootstrapConfig(cfg.AllAttrs())
if err := info.Write(); err != nil {
return errors.Annotatef(err, "cannot create environment info %q", cfg.Name())
}
return nil
}
开发者ID:zhouqt,项目名称:juju,代码行数:33,代码来源:open.go
示例7: ensureUpgradeInfoUpdated
func ensureUpgradeInfoUpdated(st *State, machineId string, previousVersion, targetVersion version.Number) (*UpgradeInfo, error) {
var doc upgradeInfoDoc
if pdoc, err := currentUpgradeInfoDoc(st); err != nil {
return nil, errors.Trace(err)
} else {
doc = *pdoc
}
if doc.PreviousVersion != previousVersion {
return nil, errors.Errorf(
"current upgrade info mismatch: expected previous version %s, got %s",
previousVersion, doc.PreviousVersion)
}
if doc.TargetVersion != targetVersion {
return nil, errors.Errorf(
"current upgrade info mismatch: expected target version %s, got %s",
targetVersion, doc.TargetVersion)
}
controllersReady := set.NewStrings(doc.ControllersReady...)
if !controllersReady.Contains(machineId) {
return nil, errors.Trace(errUpgradeInfoNotUpdated)
}
return &UpgradeInfo{st: st, doc: doc}, nil
}
开发者ID:AlexisBruemmer,项目名称:juju,代码行数:25,代码来源:upgrade.go
示例8: requestStart
// requestStart invokes a runWorker goroutine for the manifold with the supplied
// name. It must only be called from the loop goroutine.
func (engine *engine) requestStart(name string, delay time.Duration) {
// Check preconditions.
manifold, found := engine.manifolds[name]
if !found {
engine.tomb.Kill(errors.Errorf("fatal: unknown manifold %q", name))
}
// Copy current info and check more preconditions.
info := engine.current[name]
if !info.stopped() {
engine.tomb.Kill(errors.Errorf("fatal: trying to start a second %q manifold worker", name))
}
// Final check that we're not shutting down yet...
if engine.isDying() {
logger.Tracef("not starting %q manifold worker (shutting down)", name)
return
}
// ...then update the info, copy it back to the engine, and start a worker
// goroutine based on current known state.
info.starting = true
engine.current[name] = info
resourceGetter := engine.resourceGetter(name, manifold.Inputs)
go engine.runWorker(name, delay, manifold.Start, resourceGetter)
}
开发者ID:kakamessi99,项目名称:juju,代码行数:29,代码来源:engine.go
示例9: fetchResult
// fetchResult queries the given API for the given Action ID prefix, and
// makes sure the results are acceptable, returning an error if they are not.
func fetchResult(api APIClient, requestedId string) (params.ActionResult, error) {
none := params.ActionResult{}
actionTag, err := getActionTagByPrefix(api, requestedId)
if err != nil {
return none, err
}
actions, err := api.Actions(params.Entities{
Entities: []params.Entity{{actionTag.String()}},
})
if err != nil {
return none, err
}
actionResults := actions.Results
numActionResults := len(actionResults)
if numActionResults == 0 {
return none, errors.Errorf("no results for action %s", requestedId)
}
if numActionResults != 1 {
return none, errors.Errorf("too many results for action %s", requestedId)
}
result := actionResults[0]
if result.Error != nil {
return none, result.Error
}
return result, nil
}
开发者ID:imoapps,项目名称:juju,代码行数:32,代码来源:fetch.go
示例10: checkTableDuplicate
func (r *JoinRset) checkTableDuplicate(t *TableSource, tr *TableRset) error {
if len(t.Name) > 0 {
// use alias name
_, ok := r.tableNames[t.Name]
if ok {
return errors.Errorf("%s: duplicate name %s", r, t.Name)
}
r.tableNames[t.Name] = struct{}{}
return nil
}
// first check ident name
identName := t.String()
_, ok := r.tableNames[identName]
if ok {
return errors.Errorf("%s: duplicate name %s", r, identName)
}
r.tableNames[identName] = struct{}{}
qualifiedName := tr.Schema + "." + tr.Name
// we should check qualifed name too, e,g select * form t1 join test.t1
if identName != qualifiedName {
_, ok = r.tableNames[qualifiedName]
if ok {
return errors.Errorf("%s: duplicate name %s", r, identName)
}
r.tableNames[qualifiedName] = struct{}{}
}
return nil
}
开发者ID:H0bby,项目名称:tidb,代码行数:31,代码来源:join.go
示例11: getMembers
func (o *setRow) getMembers(r storeReader, count int64) ([][]byte, error) {
it := r.getIterator()
defer r.putIterator(it)
var members [][]byte
for pfx := it.SeekTo(o.DataKeyPrefix()); count > 0 && it.Valid(); it.Next() {
key := it.Key()
if !bytes.HasPrefix(key, pfx) {
break
}
sfx := key[len(pfx):]
if err := o.ParseDataKeySuffix(sfx); err != nil {
return nil, err
}
if err := o.ParseDataValue(it.Value()); err != nil {
return nil, err
}
if len(o.Member) == 0 {
return nil, errors.Errorf("len(member) = %d", len(o.Member))
}
members = append(members, o.Member)
count--
}
if err := it.Error(); err != nil {
return nil, err
}
if len(members) == 0 {
return nil, errors.Errorf("len(members) = %d, set.size = %d", len(members), o.Size)
}
return members, nil
}
开发者ID:superwood,项目名称:qdb,代码行数:30,代码来源:set.go
示例12: buildIndexInfo
func buildIndexInfo(tblInfo *model.TableInfo, unique bool, indexName model.CIStr, indexID int64, idxColNames []*coldef.IndexColName) (*model.IndexInfo, error) {
for _, col := range tblInfo.Columns {
if col.Name.L == indexName.L {
return nil, errors.Errorf("CREATE INDEX: index name collision with existing column: %s", indexName)
}
}
// build offsets
idxColumns := make([]*model.IndexColumn, 0, len(idxColNames))
for _, ic := range idxColNames {
col := findCol(tblInfo.Columns, ic.ColumnName)
if col == nil {
return nil, errors.Errorf("CREATE INDEX: column does not exist: %s", ic.ColumnName)
}
idxColumns = append(idxColumns, &model.IndexColumn{
Name: col.Name,
Offset: col.Offset,
Length: ic.Length,
})
}
// create index info
idxInfo := &model.IndexInfo{
ID: indexID,
Name: indexName,
Columns: idxColumns,
Unique: unique,
State: model.StateNone,
}
return idxInfo, nil
}
开发者ID:youprofit,项目名称:tidb,代码行数:31,代码来源:index.go
示例13: ParseMariadbGTIDSet
// We don't support multi source replication, so the mariadb gtid set may have only domain-server-sequence
func ParseMariadbGTIDSet(str string) (GTIDSet, error) {
if len(str) == 0 {
return MariadbGTID{0, 0, 0}, nil
}
seps := strings.Split(str, "-")
var gtid MariadbGTID
if len(seps) != 3 {
return gtid, errors.Errorf("invalid Mariadb GTID %v, must domain-server-sequence", str)
}
domainID, err := strconv.ParseUint(seps[0], 10, 32)
if err != nil {
return gtid, errors.Errorf("invalid MariaDB GTID Domain ID (%v): %v", seps[0], err)
}
serverID, err := strconv.ParseUint(seps[1], 10, 32)
if err != nil {
return gtid, errors.Errorf("invalid MariaDB GTID Server ID (%v): %v", seps[1], err)
}
sequenceID, err := strconv.ParseUint(seps[2], 10, 64)
if err != nil {
return gtid, errors.Errorf("invalid MariaDB GTID Sequence number (%v): %v", seps[2], err)
}
return MariadbGTID{
DomainID: uint32(domainID),
ServerID: uint32(serverID),
SequenceNumber: sequenceID}, nil
}
开发者ID:ZhiephieCook,项目名称:gh-ost,代码行数:34,代码来源:mariadb_gtid.go
示例14: buildUpdateLists
func (b *planBuilder) buildUpdateLists(list []*ast.Assignment, p LogicalPlan) ([]*expression.Assignment, LogicalPlan) {
schema := p.GetSchema()
newList := make([]*expression.Assignment, len(schema))
for _, assign := range list {
col, err := schema.FindColumn(assign.Column)
if err != nil {
b.err = errors.Trace(err)
return nil, nil
}
if col == nil {
b.err = errors.Trace(errors.Errorf("column %s not found", assign.Column.Name.O))
return nil, nil
}
offset := schema.GetIndex(col)
if offset == -1 {
b.err = errors.Trace(errors.Errorf("could not find column %s.%s", col.TblName, col.ColName))
}
newExpr, np, _, err := b.rewrite(assign.Expr, p, nil, false)
if err != nil {
b.err = errors.Trace(err)
return nil, nil
}
p = np
newList[offset] = &expression.Assignment{Col: col, Expr: newExpr}
}
return newList, p
}
开发者ID:yangxuanjia,项目名称:tidb,代码行数:27,代码来源:logical_plan_builder.go
示例15: GetColDefaultValue
// GetColDefaultValue gets default value of the column.
func GetColDefaultValue(ctx context.Context, col *model.ColumnInfo) (interface{}, bool, error) {
// Check no default value flag.
if mysql.HasNoDefaultValueFlag(col.Flag) && col.Tp != mysql.TypeEnum {
return nil, false, errors.Errorf("Field '%s' doesn't have a default value", col.Name)
}
// Check and get timestamp/datetime default value.
if col.Tp == mysql.TypeTimestamp || col.Tp == mysql.TypeDatetime {
if col.DefaultValue == nil {
return nil, true, nil
}
value, err := expression.GetTimeValue(ctx, col.DefaultValue, col.Tp, col.Decimal)
if err != nil {
return nil, true, errors.Errorf("Field '%s' get default value fail - %s", col.Name, errors.Trace(err))
}
return value, true, nil
} else if col.Tp == mysql.TypeEnum {
// For enum type, if no default value and not null is set,
// the default value is the first element of the enum list
if col.DefaultValue == nil && mysql.HasNotNullFlag(col.Flag) {
return col.FieldType.Elems[0], true, nil
}
}
return col.DefaultValue, true, nil
}
开发者ID:lovedboy,项目名称:tidb,代码行数:29,代码来源:tables.go
示例16: Run
func (c *addCloudCommand) Run(ctxt *cmd.Context) error {
specifiedClouds, err := cloud.ParseCloudMetadataFile(c.CloudFile)
if err != nil {
return err
}
if specifiedClouds == nil {
return errors.New("no personal clouds are defined")
}
newCloud, ok := specifiedClouds[c.Cloud]
if !ok {
return errors.Errorf("cloud %q not found in file %q", c.Cloud, c.CloudFile)
}
personalClouds, err := cloud.PersonalCloudMetadata()
if err != nil {
return err
}
if _, ok = personalClouds[c.Cloud]; ok && !c.Replace {
return errors.Errorf("cloud called %q already exists; use --replace to replace this existing cloud", c.Cloud)
}
if personalClouds == nil {
personalClouds = make(map[string]cloud.Cloud)
}
personalClouds[c.Cloud] = newCloud
return cloud.WritePersonalCloudMetadata(personalClouds)
}
开发者ID:makyo,项目名称:juju,代码行数:25,代码来源:add.go
示例17: DecodeRecordKey
// DecodeRecordKey decodes the key and gets the tableID, handle and columnID.
func DecodeRecordKey(key kv.Key) (tableID int64, handle int64, columnID int64, err error) {
k := key
if !key.HasPrefix(TablePrefix) {
return 0, 0, 0, errors.Errorf("invalid record key - %q", k)
}
key = key[len(TablePrefix):]
key, tableID, err = codec.DecodeInt(key)
if err != nil {
return 0, 0, 0, errors.Trace(err)
}
if !key.HasPrefix(recordPrefixSep) {
return 0, 0, 0, errors.Errorf("invalid record key - %q", k)
}
key = key[len(recordPrefixSep):]
key, handle, err = codec.DecodeInt(key)
if err != nil {
return 0, 0, 0, errors.Trace(err)
}
if len(key) == 0 {
return
}
key, columnID, err = codec.DecodeInt(key)
if err != nil {
return 0, 0, 0, errors.Trace(err)
}
return
}
开发者ID:lovedboy,项目名称:tidb,代码行数:34,代码来源:tables.go
示例18: getAllFields
func (o *hashRow) getAllFields(r storeReader) ([][]byte, error) {
it := r.getIterator()
defer r.putIterator(it)
var fields [][]byte
for pfx := it.SeekTo(o.DataKeyPrefix()); it.Valid(); it.Next() {
key := it.Key()
if !bytes.HasPrefix(key, pfx) {
break
}
sfx := key[len(pfx):]
if err := o.ParseDataKeySuffix(sfx); err != nil {
return nil, errors.Trace(err)
}
if len(o.Field) == 0 {
return nil, errors.Errorf("len(field) = %d", len(o.Field))
}
fields = append(fields, o.Field)
}
if err := it.Error(); err != nil {
return nil, errors.Trace(err)
}
if len(fields) == 0 || int64(len(fields)) != o.Size {
return nil, errors.Errorf("len(fields) = %d, hash.size = %d", len(fields), o.Size)
}
return fields, nil
}
开发者ID:guileen,项目名称:ferrydb,代码行数:26,代码来源:hash.go
示例19: checkUnits
func checkUnits(app PrecheckApplication, modelVersion version.Number) error {
units, err := app.AllUnits()
if err != nil {
return errors.Annotatef(err, "retrieving units for %s", app.Name())
}
if len(units) < app.MinUnits() {
return errors.Errorf("application %s is below its minimum units threshold", app.Name())
}
appCharmURL, _ := app.CharmURL()
for _, unit := range units {
if unit.Life() != state.Alive {
return errors.Errorf("unit %s is %s", unit.Name(), unit.Life())
}
if err := checkUnitAgentStatus(unit); err != nil {
return errors.Trace(err)
}
if err := checkAgentTools(modelVersion, unit, "unit "+unit.Name()); err != nil {
return errors.Trace(err)
}
unitCharmURL, _ := unit.CharmURL()
if appCharmURL.String() != unitCharmURL.String() {
return errors.Errorf("unit %s is upgrading", unit.Name())
}
}
return nil
}
开发者ID:bac,项目名称:juju,代码行数:31,代码来源:precheck.go
示例20: getAllValues
func (o *hashRow) getAllValues(r storeReader) ([][]byte, error) {
it := r.getIterator()
defer r.putIterator(it)
var values [][]byte
for pfx := it.SeekTo(o.DataKeyPrefix()); it.Valid(); it.Next() {
key := it.Key()
if !bytes.HasPrefix(key, pfx) {
break
}
if err := o.ParseDataValue(it.Value()); err != nil {
return nil, errors.Trace(err)
}
if len(o.Value) == 0 {
return nil, errors.Errorf("len(value) = %d", len(o.Value))
}
values = append(values, o.Value)
}
if err := it.Error(); err != nil {
return nil, errors.Trace(err)
}
if len(values) == 0 || int64(len(values)) != o.Size {
return nil, errors.Errorf("len(values) = %d, hash.size = %d", len(values), o.Size)
}
return values, nil
}
开发者ID:guileen,项目名称:ferrydb,代码行数:25,代码来源:hash.go
注:本文中的github.com/juju/errors.Errorf函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论