Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ListCmd = base.ListCmd{ ResourceNamePlural: "networks", DefaultColumns: []string{"id", "name", "ip_range", "servers"}, Fetch: func(ctx context.Context, client hcapi2.Client, listOpts hcloud.ListOpts) ([]interface{}, error) { networks, err := client.Network().AllWithOpts(ctx, hcloud.NetworkListOpts{ListOpts: listOpts}) var resources []interface{} for _, n := range networks { resources = append(resources, n) } return resources, err }, OutputTable: func(_ hcapi2.Client) *output.Table { return output.NewTable(). AddAllowedFields(hcloud.Network{}). AddFieldFn("servers", output.FieldFn(func(obj interface{}) string { network := obj.(*hcloud.Network) serverCount := len(network.Servers) if serverCount <= 1 { return fmt.Sprintf("%v server", serverCount) } return fmt.Sprintf("%v servers", serverCount) })). AddFieldFn("ip_range", output.FieldFn(func(obj interface{}) string { network := obj.(*hcloud.Network) return network.IPRange.String() })). AddFieldFn("labels", output.FieldFn(func(obj interface{}) string { network := obj.(*hcloud.Network) return util.LabelsToString(network.Labels) })). AddFieldFn("protection", output.FieldFn(func(obj interface{}) string { network := obj.(*hcloud.Network) var protection []string if network.Protection.Delete { protection = append(protection, "delete") } return strings.Join(protection, ", ") })). AddFieldFn("created", output.FieldFn(func(obj interface{}) string { network := obj.(*hcloud.Network) return util.Datetime(network.Created) })) }, JSONSchema: func(resources []interface{}) interface{} { var networkSchemas []schema.Network for _, resource := range resources { network := resource.(*hcloud.Network) networkSchema := schema.Network{ ID: network.ID, Name: network.Name, IPRange: network.IPRange.String(), Protection: schema.NetworkProtection{Delete: network.Protection.Delete}, Created: network.Created, Labels: network.Labels, } for _, subnet := range network.Subnets { networkSchema.Subnets = append(networkSchema.Subnets, schema.NetworkSubnet{ Type: string(subnet.Type), IPRange: subnet.IPRange.String(), NetworkZone: string(subnet.NetworkZone), Gateway: subnet.Gateway.String(), }) } for _, route := range network.Routes { networkSchema.Routes = append(networkSchema.Routes, schema.NetworkRoute{ Destination: route.Destination.String(), Gateway: route.Gateway.String(), }) } for _, server := range network.Servers { networkSchema.Servers = append(networkSchema.Servers, server.ID) } networkSchemas = append(networkSchemas, networkSchema) } return networkSchemas }, }
Functions ¶
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.