本文整理汇总了Golang中github.com/docker/swarmkit/cmd/swarmctl/common.Context函数的典型用法代码示例。如果您正苦于以下问题:Golang Context函数的具体用法?Golang Context怎么用?Golang Context使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Context函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: changeNodeRole
func changeNodeRole(cmd *cobra.Command, args []string, role api.NodeRole) error {
if len(args) == 0 {
return errors.New("missing node ID")
}
c, err := common.Dial(cmd)
if err != nil {
return err
}
node, err := getNode(common.Context(cmd), c, args[0])
if err != nil {
return err
}
spec := &node.Spec
if spec.Role == role {
return errNoChange
}
spec.Role = role
_, err = c.UpdateNode(common.Context(cmd), &api.UpdateNodeRequest{
NodeID: node.ID,
NodeVersion: &node.Meta.Version,
Spec: spec,
})
if err != nil {
return err
}
return nil
}
开发者ID:ypjin,项目名称:swarmkit,代码行数:33,代码来源:common.go
示例2: updateNode
func updateNode(cmd *cobra.Command, args []string) error {
if len(args) == 0 {
return errors.New("node ID missing")
}
c, err := common.Dial(cmd)
if err != nil {
return err
}
node, err := getNode(common.Context(cmd), c, args[0])
if err != nil {
return err
}
spec := node.Spec.Copy()
flags := cmd.Flags()
if flags.Changed(flagLabel) {
labels, err := flags.GetStringSlice(flagLabel)
if err != nil {
return err
}
// overwrite existing labels
spec.Annotations.Labels = map[string]string{}
for _, l := range labels {
parts := strings.SplitN(l, "=", 2)
if len(parts) != 2 {
return fmt.Errorf("malformed label for node %s", l)
}
spec.Annotations.Labels[strings.TrimSpace(parts[0])] = strings.TrimSpace(parts[1])
}
}
if reflect.DeepEqual(spec, &node.Spec) {
return errNoChange
}
_, err = c.UpdateNode(common.Context(cmd), &api.UpdateNodeRequest{
NodeID: node.ID,
NodeVersion: &node.Meta.Version,
Spec: spec,
})
if err != nil {
return err
}
return nil
}
开发者ID:docker,项目名称:swarmkit,代码行数:48,代码来源:common.go
示例3: changeNodeMembership
func changeNodeMembership(cmd *cobra.Command, args []string, membership api.NodeSpec_Membership) error {
if len(args) == 0 {
return errors.New("missing node ID")
}
if len(args) > 1 {
return errors.New("command takes exactly 1 argument")
}
c, err := common.Dial(cmd)
if err != nil {
return err
}
node, err := getNode(common.Context(cmd), c, args[0])
if err != nil {
return err
}
spec := &node.Spec
if spec.Membership == membership {
return errNoChange
}
spec.Membership = membership
_, err = c.UpdateNode(common.Context(cmd), &api.UpdateNodeRequest{
NodeID: node.ID,
NodeVersion: &node.Meta.Version,
Spec: spec,
})
if err != nil {
return err
}
return nil
}
开发者ID:docker,项目名称:swarmkit,代码行数:37,代码来源:common.go
示例4: displayUnlockKey
func displayUnlockKey(cmd *cobra.Command) error {
conn, err := common.DialConn(cmd)
if err != nil {
return err
}
defer conn.Close()
resp, err := api.NewCAClient(conn).GetUnlockKey(common.Context(cmd), &api.GetUnlockKeyRequest{})
if err != nil {
return err
}
if len(resp.UnlockKey) == 0 {
fmt.Printf("Managers not auto-locked")
}
fmt.Printf("Managers auto-locked. Unlock key: %s\n", encryption.HumanReadableKey(resp.UnlockKey))
return nil
}
开发者ID:docker,项目名称:swarmkit,代码行数:18,代码来源:unlockkey.go
示例5: parseNetworks
func parseNetworks(cmd *cobra.Command, spec *api.ServiceSpec, c api.ControlClient) error {
flags := cmd.Flags()
if !flags.Changed("network") {
return nil
}
input, err := flags.GetString("network")
if err != nil {
return err
}
n, err := network.GetNetwork(common.Context(cmd), c, input)
if err != nil {
return err
}
spec.Task.Networks = []*api.NetworkAttachmentConfig{
{
Target: n.ID,
},
}
return nil
}
开发者ID:docker,项目名称:swarmkit,代码行数:23,代码来源:network.go
示例6:
var (
updateCmd = &cobra.Command{
Use: "update <cluster name>",
Short: "Update a cluster",
RunE: func(cmd *cobra.Command, args []string) error {
if len(args) == 0 {
return errors.New("cluster name missing")
}
c, err := common.Dial(cmd)
if err != nil {
return err
}
cluster, err := getCluster(common.Context(cmd), c, args[0])
if err != nil {
return err
}
flags := cmd.Flags()
spec := &cluster.Spec
if flags.Changed("autoaccept") {
autoaccept, err := flags.GetStringSlice("autoaccept")
if err != nil {
return err
}
// We are getting a whitelist, so make all of the autoaccepts false
for _, policy := range spec.AcceptancePolicy.Policies {
开发者ID:RobbieJVMW,项目名称:swarmkit,代码行数:30,代码来源:update.go
示例7: ParseAddSecret
// ParseAddSecret validates secrets passed on the command line
func ParseAddSecret(cmd *cobra.Command, spec *api.ServiceSpec, flagName string) error {
flags := cmd.Flags()
if flags.Changed(flagName) {
secrets, err := flags.GetStringSlice(flagName)
if err != nil {
return err
}
container := spec.Task.GetContainer()
if container == nil {
spec.Task.Runtime = &api.TaskSpec_Container{
Container: &api.ContainerSpec{},
}
}
lookupSecretNames := []string{}
var needSecrets []*api.SecretReference
for _, secret := range secrets {
n, p, err := parseSecretString(secret)
if err != nil {
return err
}
// TODO(diogo): defaults to File targets, but in the future will take different types
secretRef := &api.SecretReference{
SecretName: n,
Target: &api.SecretReference_File{
File: &api.SecretReference_FileTarget{
Name: p,
Mode: 0444,
},
},
}
lookupSecretNames = append(lookupSecretNames, n)
needSecrets = append(needSecrets, secretRef)
}
client, err := common.Dial(cmd)
if err != nil {
return err
}
r, err := client.ListSecrets(common.Context(cmd),
&api.ListSecretsRequest{Filters: &api.ListSecretsRequest_Filters{Names: lookupSecretNames}})
if err != nil {
return err
}
foundSecrets := make(map[string]*api.Secret)
for _, secret := range r.Secrets {
foundSecrets[secret.Spec.Annotations.Name] = secret
}
for _, secretRef := range needSecrets {
secret, ok := foundSecrets[secretRef.SecretName]
if !ok {
return fmt.Errorf("secret not found: %s", secretRef.SecretName)
}
secretRef.SecretID = secret.ID
container.Secrets = append(container.Secrets, secretRef)
}
}
return nil
}
开发者ID:docker,项目名称:swarmkit,代码行数:70,代码来源:secret.go
示例8:
)
var (
removeCmd = &cobra.Command{
Use: "remove <task ID>",
Short: "Remove a task",
Aliases: []string{"rm"},
RunE: func(cmd *cobra.Command, args []string) error {
if len(args) == 0 {
return errors.New("task ID missing")
}
if len(args) > 1 {
return errors.New("remove command takes exactly 1 argument")
}
c, err := common.Dial(cmd)
if err != nil {
return err
}
_, err = c.RemoveTask(common.Context(cmd), &api.RemoveTaskRequest{TaskID: args[0]})
if err != nil {
return err
}
fmt.Println(args[0])
return nil
},
}
)
开发者ID:docker,项目名称:swarmkit,代码行数:30,代码来源:remove.go
示例9:
listCmd = &cobra.Command{
Use: "ls",
Short: "List services",
RunE: func(cmd *cobra.Command, args []string) error {
flags := cmd.Flags()
quiet, err := flags.GetBool("quiet")
if err != nil {
return err
}
c, err := common.Dial(cmd)
if err != nil {
return err
}
r, err := c.ListServices(common.Context(cmd), &api.ListServicesRequest{})
if err != nil {
return err
}
var output func(j *api.Service)
if !quiet {
tr, err := c.ListTasks(common.Context(cmd), &api.ListTasksRequest{})
if err != nil {
return err
}
running := map[string]int{}
for _, task := range tr.Tasks {
if task.Status.State == api.TaskStateRunning {
开发者ID:ChristianKniep,项目名称:swarmkit,代码行数:31,代码来源:list.go
示例10:
flags := cmd.Flags()
all, err := flags.GetBool("all")
if err != nil {
return err
}
c, err := common.Dial(cmd)
if err != nil {
return err
}
res := common.NewResolver(cmd, c)
service, err := getService(common.Context(cmd), c, args[0])
if err != nil {
return err
}
r, err := c.ListTasks(common.Context(cmd),
&api.ListTasksRequest{
Filters: &api.ListTasksRequest_Filters{
ServiceIDs: []string{service.ID},
},
})
if err != nil {
return err
}
var running int
for _, t := range r.Tasks {
开发者ID:yongtang,项目名称:swarmkit,代码行数:30,代码来源:inspect.go
示例11:
return errors.New("node ID missing")
}
flags := cmd.Flags()
all, err := flags.GetBool("all")
if err != nil {
return err
}
c, err := common.Dial(cmd)
if err != nil {
return err
}
node, err := getNode(common.Context(cmd), c, args[0])
if err != nil {
return err
}
r, err := c.ListTasks(common.Context(cmd),
&api.ListTasksRequest{
Filters: &api.ListTasksRequest_Filters{
NodeIDs: []string{node.ID},
},
})
if err != nil {
return err
}
printNodeSummary(node)
开发者ID:ChristianKniep,项目名称:swarmkit,代码行数:31,代码来源:inspect.go
示例12:
if len(args) != 0 {
return errors.New("ls command takes no arguments")
}
flags := cmd.Flags()
quiet, err := flags.GetBool("quiet")
if err != nil {
return err
}
c, err := common.Dial(cmd)
if err != nil {
return err
}
r, err := c.ListNetworks(common.Context(cmd), &api.ListNetworksRequest{})
if err != nil {
return err
}
var output func(*api.Network)
if !quiet {
w := tabwriter.NewWriter(os.Stdout, 0, 4, 2, ' ', 0)
defer func() {
// Ignore flushing errors - there's nothing we can do.
_ = w.Flush()
}()
common.PrintHeader(w, "ID", "Name", "Driver")
output = func(n *api.Network) {
spec := n.Spec
开发者ID:docker,项目名称:swarmkit,代码行数:31,代码来源:list.go
示例13:
if len(args) != 0 {
return errors.New("ls command takes no arguments")
}
flags := cmd.Flags()
quiet, err := flags.GetBool("quiet")
if err != nil {
return err
}
client, err := common.Dial(cmd)
if err != nil {
return err
}
resp, err := client.ListSecrets(common.Context(cmd), &api.ListSecretsRequest{})
if err != nil {
return err
}
var output func(*api.Secret)
if !quiet {
w := tabwriter.NewWriter(os.Stdout, 0, 4, 4, ' ', 0)
defer func() {
// Ignore flushing errors - there's nothing we can do.
_ = w.Flush()
}()
common.PrintHeader(w, "ID", "Name", "Created")
output = func(s *api.Secret) {
created, err := gogotypes.TimestampFromProto(s.Meta.CreatedAt)
开发者ID:yongtang,项目名称:swarmkit,代码行数:31,代码来源:list.go
示例14: processIPAMOptions
return err
}
spec := &api.NetworkSpec{
Annotations: api.Annotations{
Name: name,
},
DriverConfig: driver,
IPAM: ipamOpts,
}
c, err := common.Dial(cmd)
if err != nil {
return err
}
r, err := c.CreateNetwork(common.Context(cmd), &api.CreateNetworkRequest{Spec: spec})
if err != nil {
return err
}
fmt.Println(r.Network.ID)
return nil
},
}
)
func processIPAMOptions(cmd *cobra.Command) (*api.IPAMOptions, error) {
flags := cmd.Flags()
var ipamOpts *api.IPAMOptions
if flags.Changed("ipam-driver") {
driver, err := cmd.Flags().GetString("ipam-driver")
开发者ID:docker,项目名称:swarmkit,代码行数:31,代码来源:create.go
示例15: printNetworkSummary
)
var (
inspectCmd = &cobra.Command{
Use: "inspect <network ID>",
Short: "Inspect a network",
RunE: func(cmd *cobra.Command, args []string) error {
if len(args) == 0 {
return errors.New("network ID missing")
}
c, err := common.Dial(cmd)
if err != nil {
return err
}
network, err := GetNetwork(common.Context(cmd), c, args[0])
if err != nil {
return err
}
printNetworkSummary(network)
return nil
},
}
)
func printNetworkSummary(network *api.Network) {
w := tabwriter.NewWriter(os.Stdout, 8, 8, 8, ' ', 0)
defer func() {
// Ignore flushing errors - there's nothing we can do.
开发者ID:ChristianKniep,项目名称:swarmkit,代码行数:31,代码来源:inspect.go
示例16: init
}
} else {
secretData, err = ioutil.ReadAll(os.Stdin)
if err != nil {
return fmt.Errorf("Error reading content from STDIN: %s", err.Error())
}
}
client, err := common.Dial(cmd)
if err != nil {
return err
}
spec := &api.SecretSpec{
Annotations: api.Annotations{Name: args[0]},
Data: secretData,
}
resp, err := client.CreateSecret(common.Context(cmd), &api.CreateSecretRequest{Spec: spec})
if err != nil {
return err
}
fmt.Println(resp.Secret.ID)
return nil
},
}
func init() {
createCmd.Flags().StringP("file", "f", "", "Rather than read the secret from STDIN, read from the given file")
}
开发者ID:docker,项目名称:swarmkit,代码行数:30,代码来源:create.go
示例17:
"github.com/spf13/cobra"
)
var (
removeCmd = &cobra.Command{
Use: "remove <node ID>",
Short: "Remove a node",
Aliases: []string{"rm"},
RunE: func(cmd *cobra.Command, args []string) error {
if len(args) == 0 {
return errors.New("missing node ID")
}
c, err := common.Dial(cmd)
if err != nil {
return err
}
node, err := getNode(common.Context(cmd), c, args[0])
if err != nil {
return err
}
_, err = c.RemoveNode(common.Context(cmd), &api.RemoveNodeRequest{
NodeID: node.ID,
})
return err
},
}
)
开发者ID:ChristianKniep,项目名称:swarmkit,代码行数:30,代码来源:remove.go
示例18:
Short: "Update a service",
RunE: func(cmd *cobra.Command, args []string) error {
if len(args) == 0 {
return errors.New("service ID missing")
}
if len(args) > 1 {
return errors.New("update command takes exactly 1 argument")
}
c, err := common.Dial(cmd)
if err != nil {
return err
}
service, err := getService(common.Context(cmd), c, args[0])
if err != nil {
return err
}
spec := service.Spec.Copy()
if err := flagparser.Merge(cmd, spec, c); err != nil {
return err
}
if err := flagparser.ParseAddSecret(cmd, spec, "add-secret"); err != nil {
return err
}
if err := flagparser.ParseRemoveSecret(cmd, spec, "rm-secret"); err != nil {
return err
开发者ID:docker,项目名称:swarmkit,代码行数:31,代码来源:update.go
示例19:
fmt.Fprintf(w, " Certificate Validity Duration: %s\n", clusterDuration.String())
}
}
}
var (
inspectCmd = &cobra.Command{
Use: "inspect <cluster name>",
Short: "Inspect a cluster",
RunE: func(cmd *cobra.Command, args []string) error {
if len(args) == 0 {
return errors.New("cluster name missing")
}
c, err := common.Dial(cmd)
if err != nil {
return err
}
cluster, err := getCluster(common.Context(cmd), c, args[0])
if err != nil {
return err
}
printClusterSummary(cluster)
return nil
},
}
)
开发者ID:RobbieJVMW,项目名称:swarmkit,代码行数:30,代码来源:inspect.go
示例20:
}
}
common.FprintfIfNotEmpty(w, "Created\t: %s\n", ptypes.TimestampString(secret.Meta.CreatedAt))
}
var (
inspectCmd = &cobra.Command{
Use: "inspect <secret ID or name>",
Short: "Inspect a secret",
RunE: func(cmd *cobra.Command, args []string) error {
if len(args) != 1 {
return errors.New("inspect command takes a single secret ID or name")
}
client, err := common.Dial(cmd)
if err != nil {
return err
}
secret, err := getSecret(common.Context(cmd), client, args[0])
if err != nil {
return err
}
printSecretSummary(secret)
return nil
},
}
)
开发者ID:docker,项目名称:swarmkit,代码行数:30,代码来源:inspect.go
注:本文中的github.com/docker/swarmkit/cmd/swarmctl/common.Context函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论