本文整理汇总了Golang中github.com/eris-ltd/eris-cli/Godeps/_workspace/src/github.com/Sirupsen/logrus.WithFields函数的典型用法代码示例。如果您正苦于以下问题:Golang WithFields函数的具体用法?Golang WithFields怎么用?Golang WithFields使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了WithFields函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestInspectData
func TestInspectData(t *testing.T) {
testCreateDataByImport(t, dataName)
defer testKillDataCont(t, dataName)
do := definitions.NowDo()
do.Name = dataName
do.Operations.Args = []string{"name"}
do.Operations.ContainerNumber = 1
log.WithFields(log.Fields{
"data container": do.Name,
"args": do.Operations.Args,
}).Info("Inspecting data (from tests)")
if err := InspectData(do); err != nil {
log.Error(err)
t.FailNow()
}
do = definitions.NowDo()
do.Name = dataName
do.Operations.Args = []string{"config.network_disabled"}
do.Operations.ContainerNumber = 1
log.WithFields(log.Fields{
"data container": do.Name,
"args": do.Operations.Args,
}).Info("Inspecting data (from tests)")
if err := InspectData(do); err != nil {
log.Error(err)
t.Fail()
}
}
开发者ID:antonylewis,项目名称:eris-cli,代码行数:30,代码来源:data_test.go
示例2: testNumbersExistAndRun
//[zr] TODO move to testings package
func testNumbersExistAndRun(t *testing.T, servName string, containerExist, containerRun int) {
log.WithFields(log.Fields{
"=>": servName,
"existing#": containerExist,
"running#": containerRun,
}).Info("Checking number of containers for")
log.WithField("=>", servName).Debug("Checking existing containers for")
exist := util.HowManyContainersExisting(servName, "service")
log.WithField("=>", servName).Debug("Checking running containers for")
run := util.HowManyContainersRunning(servName, "service")
if exist != containerExist {
log.WithFields(log.Fields{
"name": servName,
"expected": containerExist,
"got": exist,
}).Error("Wrong number of existing containers")
fatal(t, nil)
}
if run != containerRun {
log.WithFields(log.Fields{
"name": servName,
"expected": containerExist,
"got": run,
}).Error("Wrong number of running containers")
fatal(t, nil)
}
log.Info("All good")
}
开发者ID:antonylewis,项目名称:eris-cli,代码行数:34,代码来源:clean_test.go
示例3: TestRenameChain
func TestRenameChain(t *testing.T) {
aChain := "hichain"
rename1 := "niahctset"
rename2 := chainName
testNewChain(aChain)
defer testKillChain(t, rename2)
do := def.NowDo()
do.Name = aChain
do.NewName = rename1
log.WithFields(log.Fields{
"from": do.Name,
"to": do.NewName,
}).Info("Renaming chain (from tests)")
if e := RenameChain(do); e != nil {
tests.IfExit(e)
}
testExistAndRun(t, rename1, true, true)
do = def.NowDo()
do.Name = rename1
do.NewName = rename2
log.WithFields(log.Fields{
"from": do.Name,
"to": do.NewName,
}).Info("Renaming chain (from tests)")
if e := RenameChain(do); e != nil {
tests.IfExit(e)
}
testExistAndRun(t, chainName, true, true)
}
开发者ID:mxjxn,项目名称:eris-cli,代码行数:34,代码来源:chains_test.go
示例4: TestRenameAction
func TestRenameAction(t *testing.T) {
testExist(t, newName, false)
testExist(t, oldName, true)
do := definitions.NowDo()
do.Name = oldName
do.NewName = newName
log.WithFields(log.Fields{
"from": do.Name,
"to": do.NewName,
}).Info("Renaming action (from tests)")
if err := RenameAction(do); err != nil {
log.Error(err)
t.Fail()
}
testExist(t, newName, true)
testExist(t, oldName, false)
do = definitions.NowDo()
do.Name = newName
do.NewName = oldName
log.WithFields(log.Fields{
"from": do.Name,
"to": do.NewName,
}).Info("Renaming action (from tests)")
if err := RenameAction(do); err != nil {
log.Error(err)
t.Fail()
}
testExist(t, newName, false)
testExist(t, oldName, true)
}
开发者ID:mxjxn,项目名称:eris-cli,代码行数:32,代码来源:actions_test.go
示例5: MoveOutOfDirAndRmDir
func MoveOutOfDirAndRmDir(src, dest string) error {
log.WithFields(log.Fields{
"from": src,
"to": dest,
}).Info("Move all files/dirs out of a dir and `rm -fr` that dir")
toMove, err := filepath.Glob(filepath.Join(src, "*"))
if err != nil {
return err
}
if len(toMove) == 0 {
log.Debug("No files to move")
}
for _, f := range toMove {
t := filepath.Join(dest, filepath.Base(f))
log.WithFields(log.Fields{
"from": f,
"to": t,
}).Debug("Moving")
// using a copy (read+write) strategy to get around swap partitions and other
// problems that cause a simple rename strategy to fail. it is more io overhead
// to do this, but for now that is preferable to alternative solutions.
Copy(f, t)
}
log.WithField("=>", src).Info("Removing directory")
err = os.RemoveAll(src)
if err != nil {
return err
}
return nil
}
开发者ID:mxjxn,项目名称:eris-cli,代码行数:35,代码来源:paths_and_fileops.go
示例6: TestExistAndRun
func TestExistAndRun(name, t string, contNum int, toExist, toRun bool) error {
log.WithFields(log.Fields{
"=>": name,
"running": toRun,
"existing": toExist,
}).Info("Checking container")
if existing := FindContainer(name, t, contNum, false); existing != toExist {
log.WithFields(log.Fields{
"=>": name,
"expected": toExist,
"got": existing,
}).Info("Checking container existing")
return ErrContainerExistMismatch
}
if running := FindContainer(name, t, contNum, true); running != toRun {
log.WithFields(log.Fields{
"=>": name,
"expected": toExist,
"got": running,
}).Info("Checking container running")
return ErrContainerRunMismatch
}
return nil
}
开发者ID:antonylewis,项目名称:eris-cli,代码行数:29,代码来源:testing_utils.go
示例7: TestInspectService
func TestInspectService(t *testing.T) {
testStartService(t, servName, false)
defer testKillService(t, servName, true)
do := def.NowDo()
do.Name = servName
do.Operations.Args = []string{"name"}
do.Operations.ContainerNumber = 1
log.WithFields(log.Fields{
"=>": fmt.Sprintf("%s:%d", servName, do.Operations.ContainerNumber),
"args": do.Operations.Args,
}).Debug("Inspect service (from tests)")
e := InspectService(do)
if e != nil {
log.Infof("Error inspecting service: %v", e)
tests.IfExit(e)
}
do = def.NowDo()
do.Name = servName
do.Operations.Args = []string{"config.user"}
do.Operations.ContainerNumber = 1
log.WithFields(log.Fields{
"=>": servName,
"args": do.Operations.Args,
}).Debug("Inspect service (from tests)")
e = InspectService(do)
if e != nil {
log.Infof("Error inspecting service: %v", e)
tests.IfExit(e)
}
}
开发者ID:mxjxn,项目名称:eris-cli,代码行数:33,代码来源:services_test.go
示例8: TestNewService
func TestNewService(t *testing.T) {
do := def.NowDo()
servName := "keys"
do.Name = servName
do.Operations.Args = []string{"quay.io/eris/keys"}
log.WithFields(log.Fields{
"=>": do.Name,
"args": do.Operations.Args,
}).Debug("Creating a new service (from tests)")
e := NewService(do)
if e != nil {
log.Error(e)
tests.IfExit(e)
}
do = def.NowDo()
do.Operations.Args = []string{servName}
log.WithFields(log.Fields{
"container number": do.Operations.ContainerNumber,
"args": do.Operations.Args,
}).Debug("Starting service (from tests)")
e = StartService(do)
if e != nil {
log.Error(e)
tests.IfExit(e)
}
testExistAndRun(t, servName, 1, true, true)
testNumbersExistAndRun(t, servName, 1, 1)
testKillService(t, servName, true)
testExistAndRun(t, servName, 1, false, false)
}
开发者ID:mxjxn,项目名称:eris-cli,代码行数:33,代码来源:services_test.go
示例9: TestLoadServiceDefinition
func TestLoadServiceDefinition(t *testing.T) {
var e error
srv, e = loaders.LoadServiceDefinition(servName, true, 1)
if e != nil {
log.Error(e)
tests.IfExit(e)
}
if srv.Name != servName {
log.WithFields(log.Fields{
"expected": servName,
"got": srv.Name,
}).Error("Improper name on load")
}
if srv.Service.Name != servName {
log.WithFields(log.Fields{
"expected": servName,
"got": srv.Service.Name,
}).Error("Improper service name on load")
tests.IfExit(e)
}
if !srv.Service.AutoData {
log.Error("data_container not properly read on load")
tests.IfExit(e)
}
if srv.Operations.DataContainerName == "" {
log.Error("data_container_name not set")
tests.IfExit(e)
}
}
开发者ID:mxjxn,项目名称:eris-cli,代码行数:34,代码来源:services_test.go
示例10: RenameAction
func RenameAction(do *definitions.Do) error {
if do.Name == do.NewName {
return fmt.Errorf("Cannot rename to same name")
}
do.Name = strings.Replace(do.Name, " ", "_", -1)
do.NewName = strings.Replace(do.NewName, " ", "_", -1)
act, _, err := LoadActionDefinition(do.Name)
if err != nil {
log.WithFields(log.Fields{
"from": do.Name,
"to": do.NewName,
}).Debug("Failed renaming action")
return err
}
do.Name = strings.Replace(do.Name, " ", "_", -1)
log.WithField("file", do.Name).Debug("Finding action definition file")
oldFile := util.GetFileByNameAndType("actions", do.Name)
if oldFile == "" {
return fmt.Errorf("Could not find that action definition file.")
}
log.WithField("file", oldFile).Debug("Found action definition file")
// if !strings.Contains(oldFile, ActionsPath) {
// oldFile = filepath.Join(ActionsPath, oldFile) + ".toml"
// }
var newFile string
newNameBase := strings.Replace(strings.Replace(do.NewName, " ", "_", -1), filepath.Ext(do.NewName), "", 1)
if newNameBase == do.Name {
newFile = strings.Replace(oldFile, filepath.Ext(oldFile), filepath.Ext(do.NewName), 1)
} else {
newFile = strings.Replace(oldFile, do.Name, do.NewName, 1)
newFile = strings.Replace(newFile, " ", "_", -1)
}
if newFile == oldFile {
log.Info("Not renaming the same file")
return nil
}
act.Name = strings.Replace(newNameBase, "_", " ", -1)
log.WithFields(log.Fields{
"old": act.Name,
"new": newFile,
}).Debug("Writing new action definition file")
err = WriteActionDefinitionFile(act, newFile)
if err != nil {
return err
}
log.WithField("file", oldFile).Debug("Removing old file")
os.Remove(oldFile)
return nil
}
开发者ID:mxjxn,项目名称:eris-cli,代码行数:59,代码来源:manage.go
示例11: StartService
func StartService(do *definitions.Do) (err error) {
var services []*definitions.ServiceDefinition
do.Operations.Args = append(do.Operations.Args, do.ServicesSlice...)
log.WithField("args", do.Operations.Args).Info("Building services group")
for _, srv := range do.Operations.Args {
s, e := BuildServicesGroup(srv, do.Operations.ContainerNumber)
if e != nil {
return e
}
services = append(services, s...)
}
// [csk]: controls for ops reconciliation, overwrite will, e.g., merge the maps and stuff
for _, s := range services {
util.Merge(s.Operations, do.Operations)
}
log.Debug("Preparing to build chain")
for _, s := range services {
log.WithFields(log.Fields{
"name": s.Name,
"dependencies": s.Dependencies,
"links": s.Service.Links,
"volumes from": s.Service.VolumesFrom,
}).Debug()
// Spacer.
log.Debug()
}
services, err = BuildChainGroup(do.ChainName, services)
if err != nil {
return err
}
log.Debug("Checking services after build chain")
for _, s := range services {
log.WithFields(log.Fields{
"name": s.Name,
"dependencies": s.Dependencies,
"links": s.Service.Links,
"volumes from": s.Service.VolumesFrom,
}).Debug()
// Spacer.
log.Debug()
}
// NOTE: the top level service should be at the end of the list
topService := services[len(services)-1]
topService.Service.Environment = append(topService.Service.Environment, do.Env...)
topService.Service.Links = append(topService.Service.Links, do.Links...)
services[len(services)-1] = topService
return StartGroup(services)
}
开发者ID:antonylewis,项目名称:eris-cli,代码行数:55,代码来源:operate.go
示例12: RegisterChain
func RegisterChain(do *definitions.Do) error {
// do.Name is mandatory
if do.Name == "" {
return fmt.Errorf("RegisterChain requires a chainame")
}
etcbChain := do.ChainID
do.ChainID = do.Name
// NOTE: registration expects you to have the data container
if !util.IsDataContainer(do.Name, do.Operations.ContainerNumber) {
return fmt.Errorf("Registration requires you to have a data container for the chain. Could not find data for %s", do.Name)
}
chain, err := loaders.LoadChainDefinition(do.Name, false, do.Operations.ContainerNumber)
if err != nil {
return err
}
log.WithField("image", chain.Service.Image).Debug("Chain loaded")
// set chainid and other vars
envVars := []string{
fmt.Sprintf("CHAIN_ID=%s", do.ChainID), // of the etcb chain
fmt.Sprintf("PUBKEY=%s", do.Pubkey), // pubkey to register chain with
fmt.Sprintf("ETCB_CHAIN_ID=%s", etcbChain), // chain id of the etcb chain
fmt.Sprintf("NODE_ADDR=%s", do.Gateway), // etcb node to send the register tx to
fmt.Sprintf("NEW_P2P_SEEDS=%s", do.Operations.Args[0]), // seeds to register for the chain // TODO: deal with multi seed (needs support in tendermint)
}
envVars = append(envVars, do.Env...)
log.WithFields(log.Fields{
"environment": envVars,
"links": do.Links,
}).Debug("Registering chain with")
chain.Service.Environment = append(chain.Service.Environment, envVars...)
chain.Service.Links = append(chain.Service.Links, do.Links...)
if err := bootDependencies(chain, do); err != nil {
return err
}
log.WithFields(log.Fields{
"=>": chain.Service.Name,
"image": chain.Service.Image,
}).Debug("Performing chain container start")
chain.Operations = loaders.LoadDataDefinition(chain.Service.Name, do.Operations.ContainerNumber)
chain.Operations.Args = []string{loaders.ErisChainRegister}
_, err = perform.DockerRunData(chain.Operations, chain.Service)
return err
}
开发者ID:mxjxn,项目名称:eris-cli,代码行数:51,代码来源:manage.go
示例13: readActionDefinition
func readActionDefinition(actionName []string, dropped map[string]string, varNum int) (*viper.Viper, map[string]string, error) {
if len(actionName) == 0 {
log.WithFields(log.Fields{
"action": actionName,
"drop": dropped,
"var#": varNum,
}).Debug("Failed to load action definition file")
return nil, dropped, fmt.Errorf("The marmots could not find the action definition file.\nPlease check your actions with [eris actions ls]")
}
log.WithField("file", strings.Join(actionName, "_")).Debug("Preparing to read action definition file")
log.WithField("drop", dropped).Debug()
var actionConf = viper.New()
actionConf.AddConfigPath(dir.ActionsPath)
actionConf.SetConfigName(strings.Join(actionName, "_"))
err := actionConf.ReadInConfig()
if err != nil {
log.WithField("action", actionName[len(actionName)-1]).Debug("Dropping and retrying")
dropped[fmt.Sprintf("$%d", varNum)] = actionName[len(actionName)-1]
actionName = actionName[:len(actionName)-1]
varNum++
return readActionDefinition(actionName, dropped, varNum)
} else {
log.Debug("Successfully read action definition file")
}
return actionConf, dropped, nil
}
开发者ID:antonylewis,项目名称:eris-cli,代码行数:31,代码来源:load.go
示例14: setAppType
func setAppType(app *definitions.Contracts, name, command, typ string) error {
var t string
log.WithFields(log.Fields{
"task": command,
"type": typ,
"app": name,
}).Debug("Setting app type")
if typ != "" {
t = typ
} else {
switch command {
case "test":
t = app.TestType
case "deploy":
t = app.DeployType
}
}
switch t {
case "embark":
app.AppType = definitions.EmbarkApp()
case "sunit":
app.AppType = definitions.SUnitApp()
case "manual":
app.AppType = definitions.GulpApp()
default:
app.AppType = definitions.EPMApp()
}
log.WithField("app type", app.AppType.Name).Debug()
return nil
}
开发者ID:antonylewis,项目名称:eris-cli,代码行数:35,代码来源:contracts.go
示例15: Migrate
func Migrate(dirsToMigrate map[string]string) error {
for depDir, newDir := range dirsToMigrate {
if !DoesDirExist(depDir) && !DoesDirExist(newDir) {
return fmt.Errorf("neither deprecated (%s) or new (%s) exists. please run `init` prior to `update`\n", depDir, newDir)
} else if DoesDirExist(depDir) && !DoesDirExist(newDir) { //never updated, just rename dirs
if err := os.Rename(depDir, newDir); err != nil {
return err
}
log.WithFields(log.Fields{
"from": depDir,
"to": newDir,
}).Warn("Directory migration successful")
} else if DoesDirExist(depDir) && DoesDirExist(newDir) { //both exist, better check what's in them
if err := checkFileNamesAndMigrate(depDir, newDir); err != nil {
return err
}
// [csk] once the files are migrated we need to remove the dir or
// the DoesDirExist function will return.
if err := os.Remove(depDir); err != nil {
return err
}
} else { //should never throw
return fmt.Errorf("unknown and unresolveable conflict between directory to deprecate (%s) and new directory (%s)\n", depDir, newDir)
}
if DoesDirExist(depDir) {
return fmt.Errorf("deprecated directory (%s) still exists, something went wrong", depDir)
}
}
return nil
}
开发者ID:mxjxn,项目名称:eris-cli,代码行数:31,代码来源:migrate_dirs.go
示例16: DockerExecData
// DockerExecData runs a data container with volumes-from field set interactively.
//
// ops.Args - command line parameters
// ops.Interactive - if true, set Entrypoint to ops.Args,
// if false, set Cmd to ops.Args
//
// See parameter description for DockerRunData.
func DockerExecData(ops *def.Operation, service *def.Service) (err error) {
log.WithFields(log.Fields{
"=>": ops.DataContainerName,
"args": ops.Args,
}).Info("Executing data container")
opts := configureVolumesFromContainer(ops, service)
log.WithField("image", opts.Config.Image).Info("Data container configured")
_, err = createContainer(opts)
if err != nil {
return err
}
// Clean up the container.
defer func() {
log.WithField("=>", opts.Name).Info("Removing data container")
if err2 := removeContainer(opts.Name, true, false); err2 != nil {
if os.Getenv("CIRCLE_BRANCH") == "" {
err = fmt.Errorf("Tragic! Error removing data container after executing (%v): %v", err, err2)
}
}
log.WithField("=>", opts.Name).Info("Data container removed")
}()
// Start the container.
log.WithField("=>", opts.Name).Info("Executing interactive data container")
if err = startInteractiveContainer(opts); err != nil {
return err
}
return nil
}
开发者ID:antonylewis,项目名称:eris-cli,代码行数:40,代码来源:docker_run.go
示例17: DockerStop
// DockerStop stops a running ops.SrvContainerName container unforcedly.
// timeout is a number of seconds to wait before killing the container process
// ungracefully.
// It returns Docker errors on exit if not successful. DockerStop doesn't return
// an error if the container isn't running.
func DockerStop(srv *def.Service, ops *def.Operation, timeout uint) error {
// don't limit this to verbose because it takes a few seconds
// [zr] unless force sets timeout to 0 (for, eg. stdout)
if timeout != 0 {
log.WithField("=>", srv.Name).Warn("Stopping (may take a few seconds)")
}
log.WithFields(log.Fields{
"=>": ops.SrvContainerName,
"timeout": timeout,
}).Info("Stopping container")
_, running := ContainerExists(ops)
if running {
log.WithField("=>", ops.SrvContainerName).Debug("Container found running")
err := stopContainer(ops.SrvContainerName, timeout)
if err != nil {
return err
}
} else {
log.WithField("=>", ops.SrvContainerName).Debug("Container found not running")
}
log.WithField("=>", ops.SrvContainerName).Info("Container stopped")
return nil
}
开发者ID:antonylewis,项目名称:eris-cli,代码行数:33,代码来源:docker_run.go
示例18: TestSetGlobalObjectDefaultConfig
func TestSetGlobalObjectDefaultConfig(t *testing.T) {
ChangeErisDir(configErisDir)
cli, err := SetGlobalObject(os.Stderr, os.Stdout)
if err != nil {
t.Fatalf("expected success, got error %v", err)
}
defaults, err := SetDefaults()
if err != nil {
t.Fatalf("expected defaults loaded, got error %v", err)
}
if def, returned := defaults.Get("IpfsHost"), cli.Config.IpfsHost; reflect.DeepEqual(returned, def) != true {
t.Fatalf("expected default %q, got %q", returned, def)
}
if def, returned := defaults.Get("CompilersHost"), cli.Config.CompilersHost; reflect.DeepEqual(returned, def) != true {
t.Fatalf("expected default %q, got %q", returned, def)
}
log.WithFields(log.Fields{
"ipfshost": cli.Config.IpfsHost,
"compilers host": cli.Config.CompilersHost,
"host": cli.Config.DockerHost,
"cert path": cli.Config.DockerCertPath,
"verbose": cli.Config.Verbose,
}).Info("Checking defaults")
}
开发者ID:antonylewis,项目名称:eris-cli,代码行数:29,代码来源:config_test.go
示例19: TestStartKillServiceWithDependencies
func TestStartKillServiceWithDependencies(t *testing.T) {
do := def.NowDo()
do.Operations.Args = []string{"do_not_use"}
log.WithFields(log.Fields{
"service": servName,
"dependency": "keys",
}).Debug("Starting service with dependency (from tests)")
if e := StartService(do); e != nil {
log.Infof("Error starting service: %v", e)
tests.IfExit(e)
}
defer func() {
testKillService(t, "do_not_use", true)
testExistAndRun(t, servName, 1, false, false)
testNumbersExistAndRun(t, servName, 0, 0)
testKillService(t, "keys", true)
}()
testExistAndRun(t, servName, 1, true, true)
testExistAndRun(t, "keys", 1, true, true)
testNumbersExistAndRun(t, "keys", 1, 1)
testNumbersExistAndRun(t, servName, 1, 1)
}
开发者ID:mxjxn,项目名称:eris-cli,代码行数:27,代码来源:services_test.go
示例20: connectToAService
// links and mounts for service dependencies
func connectToAService(srv *definitions.Service, ops *definitions.Operation, typ, name, internalName string, link, mount bool) {
log.WithFields(log.Fields{
"=>": srv.Name,
"type": typ,
"name": name,
"internal name": internalName,
"link": link,
"volumes from": mount,
}).Debug("Connecting to service")
containerName := util.ContainersName(typ, name, ops.ContainerNumber)
if link {
newLink := containerName + ":" + internalName
srv.Links = append(srv.Links, newLink)
}
if mount {
// Automagically mount VolumesFrom for serviceDeps so they can
// easily pass files back and forth. note that this is opinionated
// and will mount as read-write. we can revisit this if read-only
// mounting required for specific use cases
newVol := containerName + ":rw"
srv.VolumesFrom = append(srv.VolumesFrom, newVol)
}
}
开发者ID:mxjxn,项目名称:eris-cli,代码行数:26,代码来源:services.go
注:本文中的github.com/eris-ltd/eris-cli/Godeps/_workspace/src/github.com/Sirupsen/logrus.WithFields函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论