本文整理汇总了Golang中github.com/wallyworld/core/juju.NewAPIClientFromName函数的典型用法代码示例。如果您正苦于以下问题:Golang NewAPIClientFromName函数的具体用法?Golang NewAPIClientFromName怎么用?Golang NewAPIClientFromName使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewAPIClientFromName函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: Run
func (c *DestroyEnvironmentCommand) Run(ctx *cmd.Context) (result error) {
store, err := configstore.Default()
if err != nil {
return fmt.Errorf("cannot open environment info storage: %v", err)
}
environ, err := environs.NewFromName(c.envName, store)
if err != nil {
if environs.IsEmptyConfig(err) {
// Delete the .jenv file and call it done.
ctx.Infof("removing empty environment file")
return environs.DestroyInfo(c.envName, store)
}
return err
}
if !c.assumeYes {
fmt.Fprintf(ctx.Stdout, destroyEnvMsg, environ.Name(), environ.Config().Type())
scanner := bufio.NewScanner(ctx.Stdin)
scanner.Scan()
err := scanner.Err()
if err != nil && err != io.EOF {
return fmt.Errorf("Environment destruction aborted: %s", err)
}
answer := strings.ToLower(scanner.Text())
if answer != "y" && answer != "yes" {
return errors.New("environment destruction aborted")
}
}
// If --force is supplied, then don't attempt to use the API.
// This is necessary to destroy broken environments, where the
// API server is inaccessible or faulty.
if !c.force {
defer func() {
if result == nil {
return
}
logger.Errorf(`failed to destroy environment %q
If the environment is unusable, then you may run
juju destroy-environment --force
to forcefully destroy the environment. Upon doing so, review
your environment provider console for any resources that need
to be cleaned up.
`, c.envName)
}()
apiclient, err := juju.NewAPIClientFromName(c.envName)
if err != nil {
return fmt.Errorf("cannot connect to API: %v", err)
}
defer apiclient.Close()
err = apiclient.DestroyEnvironment()
if err != nil && !params.IsCodeNotImplemented(err) {
return fmt.Errorf("destroying environment: %v", err)
}
}
return environs.Destroy(environ, store)
}
开发者ID:jameinel,项目名称:core,代码行数:60,代码来源:destroyenvironment.go
示例2: Run
func (c *ResolvedCommand) Run(_ *cmd.Context) error {
client, err := juju.NewAPIClientFromName(c.EnvName)
if err != nil {
return err
}
defer client.Close()
return client.Resolved(c.UnitName, c.Retry)
}
开发者ID:jameinel,项目名称:core,代码行数:8,代码来源:resolved.go
示例3: Run
// Run connects to the environment specified on the command line
// and calls EnsureAvailability.
func (c *EnsureAvailabilityCommand) Run(_ *cmd.Context) error {
client, err := juju.NewAPIClientFromName(c.EnvName)
if err != nil {
return err
}
defer client.Close()
return client.EnsureAvailability(c.NumStateServers, c.Constraints, c.Series)
}
开发者ID:jameinel,项目名称:core,代码行数:10,代码来源:ensureavailability.go
示例4: TestMultipleCloseOk
// TODO(jam): 2013-08-27 This should move somewhere in api.*
func (*NewAPIClientSuite) TestMultipleCloseOk(c *gc.C) {
defer coretesting.MakeSampleHome(c).Restore()
bootstrapEnv(c, "", defaultConfigStore(c))
client, _ := juju.NewAPIClientFromName("")
c.Assert(client.Close(), gc.IsNil)
c.Assert(client.Close(), gc.IsNil)
c.Assert(client.Close(), gc.IsNil)
}
开发者ID:jameinel,项目名称:core,代码行数:9,代码来源:apiconn_test.go
示例5: Run
func (c *DestroyRelationCommand) Run(_ *cmd.Context) error {
client, err := juju.NewAPIClientFromName(c.EnvName)
if err != nil {
return err
}
defer client.Close()
return client.DestroyRelation(c.Endpoints...)
}
开发者ID:jameinel,项目名称:core,代码行数:8,代码来源:destroyrelation.go
示例6: Run
// Run changes the juju-managed firewall to hide any
// ports that were also explicitly marked by units as closed.
func (c *UnexposeCommand) Run(_ *cmd.Context) error {
client, err := juju.NewAPIClientFromName(c.EnvName)
if err != nil {
return err
}
defer client.Close()
return client.ServiceUnexpose(c.ServiceName)
}
开发者ID:jameinel,项目名称:core,代码行数:10,代码来源:unexpose.go
示例7: Run
// Run resets the configuration of a service.
func (c *UnsetCommand) Run(ctx *cmd.Context) error {
apiclient, err := juju.NewAPIClientFromName(c.EnvName)
if err != nil {
return err
}
defer apiclient.Close()
return apiclient.ServiceUnset(c.ServiceName, c.Options)
}
开发者ID:jameinel,项目名称:core,代码行数:9,代码来源:unset.go
示例8: Run
// Run connects to the environment specified on the command line and destroys
// units therein.
func (c *DestroyUnitCommand) Run(_ *cmd.Context) error {
client, err := juju.NewAPIClientFromName(c.EnvName)
if err != nil {
return err
}
defer client.Close()
return client.DestroyServiceUnits(c.UnitNames...)
}
开发者ID:jameinel,项目名称:core,代码行数:10,代码来源:destroyunit.go
示例9: Run
func (c *UnsetEnvironmentCommand) Run(ctx *cmd.Context) error {
client, err := juju.NewAPIClientFromName(c.EnvName)
if err != nil {
return err
}
defer client.Close()
return client.EnvironmentUnset(c.keys...)
}
开发者ID:jameinel,项目名称:core,代码行数:8,代码来源:environment.go
示例10: TestNameNotDefault
func (*NewAPIClientSuite) TestNameNotDefault(c *gc.C) {
defer coretesting.MakeMultipleEnvHome(c).Restore()
envName := coretesting.SampleCertName + "-2"
bootstrapEnv(c, envName, defaultConfigStore(c))
apiclient, err := juju.NewAPIClientFromName(envName)
c.Assert(err, gc.IsNil)
defer apiclient.Close()
assertEnvironmentName(c, apiclient, envName)
}
开发者ID:jameinel,项目名称:core,代码行数:9,代码来源:apiconn_test.go
示例11: Run
// Run connects to the environment specified on the command line
// and calls AddServiceUnits for the given service.
func (c *AddUnitCommand) Run(_ *cmd.Context) error {
apiclient, err := juju.NewAPIClientFromName(c.EnvName)
if err != nil {
return err
}
defer apiclient.Close()
_, err = apiclient.AddServiceUnits(c.ServiceName, c.NumUnits, c.ToMachineSpec)
return err
}
开发者ID:jameinel,项目名称:core,代码行数:12,代码来源:addunit.go
示例12: Run
func (c *DestroyMachineCommand) Run(_ *cmd.Context) error {
apiclient, err := juju.NewAPIClientFromName(c.EnvName)
if err != nil {
return err
}
defer apiclient.Close()
if c.Force {
return apiclient.ForceDestroyMachines(c.MachineIds...)
}
return apiclient.DestroyMachines(c.MachineIds...)
}
开发者ID:jameinel,项目名称:core,代码行数:11,代码来源:destroymachine.go
示例13: ProvisionMachine
// ProvisionMachine provisions a machine agent to an existing host, via
// an SSH connection to the specified host. The host may optionally be preceded
// with a login username, as in [[email protected]]host.
//
// On successful completion, this function will return the id of the state.Machine
// that was entered into state.
func ProvisionMachine(args ProvisionMachineArgs) (machineId string, err error) {
client, err := juju.NewAPIClientFromName(args.EnvName)
if err != nil {
return "", err
}
defer func() {
if machineId != "" && err != nil {
logger.Errorf("provisioning failed, removing machine %v: %v", machineId, err)
if cleanupErr := client.DestroyMachines(machineId); cleanupErr != nil {
logger.Warningf("error cleaning up machine: %s", cleanupErr)
}
machineId = ""
}
client.Close()
}()
// Create the "ubuntu" user and initialise passwordless sudo. We populate
// the ubuntu user's authorized_keys file with the public keys in the current
// user's ~/.ssh directory. The authenticationworker will later update the
// ubuntu user's authorized_keys.
user, hostname := splitUserHost(args.Host)
authorizedKeys, err := config.ReadAuthorizedKeys("")
if err := InitUbuntuUser(hostname, user, authorizedKeys, args.Stdin, args.Stdout); err != nil {
return "", err
}
machineParams, err := gatherMachineParams(hostname)
if err != nil {
return "", err
}
// Inform Juju that the machine exists.
machineId, err = recordMachineInState(client, *machineParams)
if err != nil {
return "", err
}
provisioningScript, err := client.ProvisioningScript(params.ProvisioningScriptParams{
MachineId: machineId,
Nonce: machineParams.Nonce,
})
if err != nil {
return "", err
}
// Finally, provision the machine agent.
err = runProvisionScript(provisioningScript, hostname, args.Stderr)
if err != nil {
return machineId, err
}
logger.Infof("Provisioned machine %v", machineId)
return machineId, nil
}
开发者ID:jameinel,项目名称:core,代码行数:60,代码来源:provisioner.go
示例14: Run
func (c *SetConstraintsCommand) Run(_ *cmd.Context) (err error) {
apiclient, err := juju.NewAPIClientFromName(c.EnvName)
if err != nil {
return err
}
defer apiclient.Close()
if c.ServiceName == "" {
return apiclient.SetEnvironmentConstraints(c.Constraints)
}
return apiclient.SetServiceConstraints(c.ServiceName, c.Constraints)
}
开发者ID:jameinel,项目名称:core,代码行数:11,代码来源:constraints.go
示例15: Run
func (c *RetryProvisioningCommand) Run(context *cmd.Context) error {
client, err := juju.NewAPIClientFromName(c.EnvName)
if err != nil {
return err
}
defer client.Close()
results, err := client.RetryProvisioning(c.Machines...)
if err != nil {
return err
}
for i, result := range results {
if result.Error != nil {
fmt.Fprintf(context.Stderr, "cannot retry provisioning %q: %v\n", c.Machines[i], result.Error)
}
}
return nil
}
开发者ID:jameinel,项目名称:core,代码行数:17,代码来源:retryprovisioning.go
示例16: Run
// Run changes the version proposed for the juju envtools.
func (c *UpgradeJujuCommand) Run(_ *cmd.Context) (err error) {
client, err := juju.NewAPIClientFromName(c.EnvName)
if err != nil {
return err
}
defer client.Close()
defer func() {
if err == errUpToDate {
logger.Infof(err.Error())
err = nil
}
}()
// Determine the version to upgrade to, uploading tools if necessary.
attrs, err := client.EnvironmentGet()
if err != nil {
return err
}
cfg, err := config.New(config.NoDefaults, attrs)
if err != nil {
return err
}
context, err := c.initVersions(client, cfg)
if err != nil {
return err
}
if c.UploadTools {
series := bootstrap.SeriesToUpload(cfg, c.Series)
if err := context.uploadTools(series); err != nil {
return err
}
}
if err := context.validate(); err != nil {
return err
}
logger.Infof("upgrade version chosen: %s", context.chosen)
// TODO(fwereade): this list may be incomplete, pending envtools.Upload change.
logger.Infof("available tools: %s", context.tools)
if err := client.SetEnvironAgentVersion(context.chosen); err != nil {
return err
}
logger.Infof("started upgrade to %s", context.chosen)
return nil
}
开发者ID:jameinel,项目名称:core,代码行数:46,代码来源:upgradejuju.go
示例17: Run
// Run updates the configuration of a service.
func (c *SetCommand) Run(ctx *cmd.Context) error {
api, err := juju.NewAPIClientFromName(c.EnvName)
if err != nil {
return err
}
defer api.Close()
if c.SettingsYAML.Path != "" {
b, err := c.SettingsYAML.Read(ctx)
if err != nil {
return err
}
return api.ServiceSetYAML(c.ServiceName, string(b))
} else if len(c.SettingsStrings) == 0 {
return nil
}
return api.ServiceSet(c.ServiceName, c.SettingsStrings)
}
开发者ID:jameinel,项目名称:core,代码行数:19,代码来源:set.go
示例18: TestNameDefault
func (s *NewAPIClientSuite) TestNameDefault(c *gc.C) {
defer coretesting.MakeMultipleEnvHome(c).Restore()
// The connection logic should not delay the config connection
// at all when there is no environment info available.
// Make sure of that by providing a suitably long delay
// and checking that the connection happens within that
// time.
s.PatchValue(juju.ProviderConnectDelay, coretesting.LongWait)
bootstrapEnv(c, coretesting.SampleEnvName, defaultConfigStore(c))
startTime := time.Now()
apiclient, err := juju.NewAPIClientFromName("")
c.Assert(err, gc.IsNil)
defer apiclient.Close()
c.Assert(time.Since(startTime), jc.LessThan, coretesting.LongWait)
// We should get the default sample environment if we ask for ""
assertEnvironmentName(c, apiclient, coretesting.SampleEnvName)
}
开发者ID:jameinel,项目名称:core,代码行数:19,代码来源:apiconn_test.go
示例19: Run
// Run fetches the configuration of the service and formats
// the result as a YAML string.
func (c *GetCommand) Run(ctx *cmd.Context) error {
client, err := juju.NewAPIClientFromName(c.EnvName)
if err != nil {
return err
}
defer client.Close()
results, err := client.ServiceGet(c.ServiceName)
if err != nil {
return err
}
resultsMap := map[string]interface{}{
"service": results.Service,
"charm": results.Charm,
"settings": results.Config,
}
return c.out.Write(ctx, resultsMap)
}
开发者ID:jameinel,项目名称:core,代码行数:21,代码来源:get.go
示例20: Run
func (c *StatusCommand) Run(ctx *cmd.Context) error {
// Just verify the pattern validity client side, do not use the matcher
_, err := client.NewUnitMatcher(c.patterns)
if err != nil {
return err
}
apiclient, err := juju.NewAPIClientFromName(c.EnvName)
if err != nil {
return fmt.Errorf(connectionError, c.EnvName, err)
}
defer apiclient.Close()
status, err := apiclient.Status(c.patterns)
// Display any error, but continue to print status if some was returned
if err != nil {
fmt.Fprintf(ctx.Stderr, "%v\n", err)
}
result := formatStatus(status)
return c.out.Write(ctx, result)
}
开发者ID:jameinel,项目名称:core,代码行数:20,代码来源:status.go
注:本文中的github.com/wallyworld/core/juju.NewAPIClientFromName函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论