本文整理匯總了Golang中github.com/eris-ltd/eris-cli/definitions.Do.Name方法的典型用法代碼示例。如果您正苦於以下問題:Golang Do.Name方法的具體用法?Golang Do.Name怎麽用?Golang Do.Name使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/eris-ltd/eris-cli/definitions.Do
的用法示例。
在下文中一共展示了Do.Name方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: bootDependencies
// boot chain dependencies
// TODO: this currently only supports simple services (with no further dependencies)
func bootDependencies(chain *definitions.Chain, do *definitions.Do) error {
if chain.Dependencies != nil {
name := do.Name
logger.Infoln("Booting chain dependencies", chain.Dependencies.Services, chain.Dependencies.Chains)
for _, srvName := range chain.Dependencies.Services {
do.Name = srvName
srv, err := loaders.LoadServiceDefinition(do.Name, false, do.Operations.ContainerNumber)
if err != nil {
return err
}
// Start corresponding service.
if !services.IsServiceRunning(srv.Service, srv.Operations) {
name := strings.ToUpper(do.Name)
logger.Infof("%s is not running. Starting now. Waiting for %s to become available \n", name, name)
if err = perform.DockerRunService(srv.Service, srv.Operations); err != nil {
return err
}
}
}
do.Name = name // undo side effects
for _, chainName := range chain.Dependencies.Chains {
chn, err := loaders.LoadChainDefinition(chainName, false, do.Operations.ContainerNumber)
if err != nil {
return err
}
if !IsChainRunning(chn) {
return fmt.Errorf("chain %s depends on chain %s but %s is not running", chain.Name, chainName, chainName)
}
}
}
return nil
}
示例2: 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
}
示例3: 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 {
logger.Debugf("About to fail. Name:NewName =>\t%s:%s", do.Name, do.NewName)
return err
}
do.Name = strings.Replace(do.Name, " ", "_", -1)
logger.Debugf("About to find defFile =>\t%s\n", do.Name)
oldFile := util.GetFileByNameAndType("actions", do.Name)
if oldFile == "" {
return fmt.Errorf("Could not find that action definition file.")
}
logger.Debugf("Found defFile at =>\t\t%s\n", oldFile)
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 {
logger.Infoln("Those are the same file. Not renaming")
return nil
}
act.Name = strings.Replace(newNameBase, "_", " ", -1)
logger.Debugf("About to write new def file =>\t%s:%s\n", act.Name, newFile)
err = WriteActionDefinitionFile(act, newFile)
if err != nil {
return err
}
logger.Debugf("Removing old file =>\t\t%s\n", oldFile)
os.Remove(oldFile)
return nil
}
示例4: RmData
// TODO: skip errors flag
func RmData(do *definitions.Do) (err error) {
if len(do.Operations.Args) == 0 {
do.Operations.Args = []string{do.Name}
}
for _, name := range do.Operations.Args {
do.Name = name
if util.IsDataContainer(do.Name, do.Operations.ContainerNumber) {
log.WithField("=>", do.Name).Info("Removing data container")
srv := definitions.BlankServiceDefinition()
srv.Operations.SrvContainerName = util.ContainersName("data", do.Name, do.Operations.ContainerNumber)
if err = perform.DockerRemove(srv.Service, srv.Operations, false, do.Volumes); err != nil {
log.Errorf("Error removing %s: %v", do.Name, err)
return err
}
} else {
err = fmt.Errorf("I cannot find that data container for %s. Please check the data container name you sent me.", do.Name)
log.Error(err)
return err
}
if do.RmHF {
log.WithField("=>", do.Name).Warn("Removing host directory")
if err = os.RemoveAll(filepath.Join(DataContainersPath, do.Name)); err != nil {
return err
}
}
}
do.Result = "success"
return err
}
示例5: ImportKey
func ImportKey(do *definitions.Do) error {
do.Name = "keys"
do.Operations.ContainerNumber = 1
if err := srv.EnsureRunning(do); err != nil {
return err
}
do.Operations.Interactive = false
dir := path.Join(ErisContainerRoot, "keys", "data", do.Address)
do.Operations.Args = []string{"mkdir", dir} //need to mkdir for import
if err := srv.ExecService(do); err != nil {
return err
}
//src on host
if do.Source == "" {
do.Source = filepath.Join(KeysPath, "data", do.Address, do.Address)
}
//dest in container
do.Destination = dir
if err := data.ImportData(do); err != nil {
return err
}
return nil
}
示例6: MakeGenesisFile
func MakeGenesisFile(do *def.Do) error {
//otherwise it'll start its own keys server that won't have the key needed...
do.Name = "keys"
IfExit(srv.EnsureRunning(do))
doThr := def.NowDo()
doThr.Chain.ChainType = "throwaway" //for teardown
doThr.Name = "default"
doThr.Operations.ContainerNumber = 1
doThr.Operations.PublishAllPorts = true
logger.Infof("Starting chain from MakeGenesisFile =>\t%s\n", doThr.Name)
if er := StartChain(doThr); er != nil {
return fmt.Errorf("error starting chain %v\n", er)
}
doThr.Operations.Args = []string{"mintgen", "known", do.Chain.Name, fmt.Sprintf("--pub=%s", do.Pubkey)}
doThr.Chain.Name = "default" //for teardown
// pipe this output to /chains/chainName/genesis.json
err := ExecChain(doThr)
if err != nil {
logger.Printf("exec chain err: %v\nCleaning up...\n", err)
doThr.Rm = true
doThr.RmD = true
if err := CleanUp(doThr); err != nil {
return err
}
}
doThr.Rm = true
doThr.RmD = true
return CleanUp(doThr) // doesn't clean up keys but that's ~ ok b/c it's about to be used...
}
示例7: bootThrowAwayChain
func bootThrowAwayChain(name string, do *definitions.Do) error {
do.Chain.ChainType = "throwaway"
tmp := do.Name
do.Name = name
err := chains.ThrowAwayChain(do)
if err != nil {
do.Name = tmp
return err
}
do.Chain.Name = do.Name // setting this for tear down purposes
log.WithField("=>", do.Name).Debug("Throwaway chain booted")
do.Name = tmp
return nil
}
示例8: NewAction
func NewAction(do *definitions.Do) error {
do.Name = strings.Join(do.Args, "_")
path := filepath.Join(ActionsPath, do.Name)
logger.Debugf("NewActionRaw to MockAction =>\t%v:%s\n", do.Name, path)
act, _ := MockAction(do.Name)
if err := WriteActionDefinitionFile(act, path); err != nil {
return err
}
return nil
}
示例9: bootDependencies
// boot chain dependencies
// TODO: this currently only supports simple services (with no further dependencies)
func bootDependencies(chain *definitions.Chain, do *definitions.Do) error {
if do.Logsrotate {
chain.Dependencies.Services = append(chain.Dependencies.Services, "logsrotate")
}
if chain.Dependencies != nil {
name := do.Name
log.WithFields(log.Fields{
"services": chain.Dependencies.Services,
"chains": chain.Dependencies.Chains,
}).Info("Booting chain dependencies")
for _, srvName := range chain.Dependencies.Services {
do.Name = srvName
srv, err := loaders.LoadServiceDefinition(do.Name, false, do.Operations.ContainerNumber)
if err != nil {
return err
}
// Start corresponding service.
if !services.IsServiceRunning(srv.Service, srv.Operations) {
name := strings.ToUpper(do.Name)
log.WithField("=>", name).Info("Dependency not running. Starting now")
if err = perform.DockerRunService(srv.Service, srv.Operations); err != nil {
return err
}
}
}
do.Name = name // undo side effects
for _, chainName := range chain.Dependencies.Chains {
chn, err := loaders.LoadChainDefinition(chainName, false, do.Operations.ContainerNumber)
if err != nil {
return err
}
if !IsChainRunning(chn) {
return fmt.Errorf("chain %s depends on chain %s but %s is not running", chain.Name, chainName, chainName)
}
}
}
return nil
}
示例10: ConvertKey
func ConvertKey(do *definitions.Do) error {
do.Name = "keys"
if err := srv.EnsureRunning(do); err != nil {
return err
}
do.Operations.Args = []string{"mintkey", "mint", do.Address}
if err := srv.ExecService(do); err != nil {
return err
}
return nil
}
示例11: ExecData
func ExecData(do *definitions.Do) error {
if util.IsDataContainer(do.Name, do.Operations.ContainerNumber) {
do.Name = util.DataContainersName(do.Name, do.Operations.ContainerNumber)
logger.Infoln("Running exec on container with volumes from data container " + do.Name)
if err := perform.DockerRunVolumesFromContainer(do.Name, do.Interactive, do.Args); err != nil {
return err
}
} else {
return fmt.Errorf("I cannot find that data container. Please check the data container name you sent me.")
}
do.Result = "success"
return nil
}
示例12: NewAction
func NewAction(do *definitions.Do) error {
do.Name = strings.Join(do.Operations.Args, "_")
path := filepath.Join(ActionsPath, do.Name)
log.WithFields(log.Fields{
"action": do.Name,
"file": path,
}).Debug("Creating new action (mocking)")
act, _ := MockAction(do.Name)
if err := WriteActionDefinitionFile(act, path); err != nil {
return err
}
return nil
}
示例13: PlopChain
func PlopChain(do *definitions.Do) error {
do.Name = do.ChainID
rootDir := path.Join("/home/eris/.eris/blockchains", do.ChainID)
switch do.Type {
case "genesis":
do.Args = []string{"cat", path.Join(rootDir, "genesis.json")}
case "config":
do.Args = []string{"cat", path.Join(rootDir, "config.toml")}
case "status":
do.Args = []string{"mintinfo", "--node-addr", "http://0.0.0.0:46657", "status"}
default:
return fmt.Errorf("unknown plop option %s", do.Type)
}
return ExecChain(do)
}
示例14: ThrowAwayChain
// Throw away chains are used for eris contracts
func ThrowAwayChain(do *definitions.Do) error {
do.Name = do.Name + "_" + strings.Split(uuid.New(), "-")[0]
do.Path = filepath.Join(ChainsPath, "default")
logger.Debugf("Making a ThrowAwayChain =>\t%s:%s\n", do.Name, do.Path)
if err := NewChain(do); err != nil {
return err
}
logger.Debugf("ThrowAwayChain created =>\t%s\n", do.Name)
do.Run = true // turns on edb api
StartChain(do) // XXX [csk]: may not need to do this now that New starts....
logger.Debugf("ThrowAwayChain started =>\t%s\n", do.Name)
return nil
}
示例15: GenerateKey
func GenerateKey(do *definitions.Do) error {
do.Name = "keys"
do.Operations.ContainerNumber = 1
if err := srv.EnsureRunning(do); err != nil {
return err
}
do.Operations.Interactive = false
do.Operations.Args = []string{"eris-keys", "gen", "--no-pass"}
if err := srv.ExecService(do); err != nil {
return err
}
return nil
}