Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var DescribeCmd = base.DescribeCmd{ ResourceNameSingular: "iso", ShortDescription: "Describe a iso", JSONKeyGetByID: "iso", JSONKeyGetByName: "isos", NameSuggestions: func(c hcapi2.Client) func() []string { return c.Location().Names }, Fetch: func(s state.State, _ *cobra.Command, idOrName string) (interface{}, interface{}, error) { iso, _, err := s.Client().ISO().Get(s, idOrName) if err != nil { return nil, nil, err } return iso, hcloud.SchemaFromISO(iso), nil }, PrintText: func(_ state.State, cmd *cobra.Command, resource interface{}) error { iso := resource.(*hcloud.ISO) cmd.Printf("ID:\t\t%d\n", iso.ID) cmd.Printf("Name:\t\t%s\n", iso.Name) cmd.Printf("Description:\t%s\n", iso.Description) cmd.Printf("Type:\t\t%s\n", iso.Type) cmd.Print(util.DescribeDeprecation(iso)) architecture := "-" if iso.Architecture != nil { architecture = string(*iso.Architecture) } cmd.Printf("Architecture:\t%s\n", architecture) return nil }, }
DescribeCmd defines a command for describing a iso.
View Source
var ListCmd = base.ListCmd{ ResourceNamePlural: "ISOs", JSONKeyGetByName: "isos", DefaultColumns: []string{"id", "name", "description", "type", "architecture"}, SortOption: nil, AdditionalFlags: func(cmd *cobra.Command) { cmd.Flags().StringSlice("architecture", []string{}, "Only show images of given architecture: x86|arm") _ = cmd.RegisterFlagCompletionFunc("architecture", cmpl.SuggestCandidates(string(hcloud.ArchitectureX86), string(hcloud.ArchitectureARM))) cmd.Flags().Bool("include-architecture-wildcard", false, "Include ISOs with unknown architecture, only required if you want so show custom ISOs and still filter for architecture.") cmd.Flags().StringSlice("type", []string{"public", "private"}, "Types to include (public, private)") _ = cmd.RegisterFlagCompletionFunc("type", cmpl.SuggestCandidates("public", "private")) }, Fetch: func(s state.State, flags *pflag.FlagSet, listOpts hcloud.ListOpts, sorts []string) ([]interface{}, error) { opts := hcloud.ISOListOpts{ListOpts: listOpts} types, _ := flags.GetStringSlice("type") var unknown []string for _, t := range types { switch t { case string(hcloud.ISOTypePublic), string(hcloud.ISOTypePrivate): break default: unknown = append(unknown, t) } } if len(unknown) > 0 { return nil, fmt.Errorf("unknown ISO types %s", strings.Join(unknown, ", ")) } architecture, _ := flags.GetStringSlice("architecture") if len(architecture) > 0 { for _, arch := range architecture { opts.Architecture = append(opts.Architecture, hcloud.Architecture(arch)) } } includeArchitectureWildcard, _ := flags.GetBool("include-architecture-wildcard") if includeArchitectureWildcard { opts.IncludeWildcardArchitecture = includeArchitectureWildcard } if len(sorts) > 0 { opts.Sort = sorts } isos, err := s.Client().ISO().AllWithOpts(s, opts) var resources []interface{} for _, iso := range isos { if slices.Contains(types, string(iso.Type)) { resources = append(resources, iso) } } return resources, err }, OutputTable: func(t *output.Table, _ hcapi2.Client) { t. AddAllowedFields(hcloud.ISO{}). AddFieldFn("architecture", func(obj interface{}) string { iso := obj.(*hcloud.ISO) if iso.Architecture == nil { return "-" } return string(*iso.Architecture) }) }, Schema: func(resources []interface{}) interface{} { isoSchemas := make([]schema.ISO, 0, len(resources)) for _, resource := range resources { iso := resource.(*hcloud.ISO) isoSchemas = append(isoSchemas, hcloud.SchemaFromISO(iso)) } return isoSchemas }, }
Functions ¶
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.