Documentation
¶
Index ¶
Constants ¶
View Source
const ( NamespacesKey = "namespaces" NamespacesShorthand = "n" DistinctByLabelKey = "distinct-by-label" )
Variables ¶
View Source
var ExportCmd = &cobra.Command{ Use: "export", Short: "Export Otterize intents from network mapper", Args: cobra.NoArgs, RunE: func(cmd *cobra.Command, args []string) error { return mapperclient.WithClient(func(c *mapperclient.Client) error { if err := intentsexporter.ValidateExporterOutputFlags(); err != nil { return err } ctxTimeout, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() namespacesFilter := viper.GetStringSlice(NamespacesKey) var intentsFromMapperWithLabels []mapperclient.ServiceIntentsWithLabelsServiceIntents if viper.IsSet(DistinctByLabelKey) { includeLabels := []string{viper.GetString(DistinctByLabelKey)} intentsFromMapperV1018, err := c.ServiceIntentsWithLabels(ctxTimeout, namespacesFilter, includeLabels) if err != nil { if httpErr := (mapperclient.HTTPError{}); errors.As(err, &httpErr) && httpErr.StatusCode == http.StatusUnprocessableEntity { prints.PrintCliStderr("You've specified --%s, but your network mapper does not support this capability. Please upgrade.", DistinctByLabelKey) } return err } intentsFromMapperWithLabels = intentsFromMapperV1018 } else { intentsFromMapperV1017, err := c.ServiceIntents(ctxTimeout, namespacesFilter) if err != nil { return err } intentsFromMapperWithLabels = lo.Map(intentsFromMapperV1017, func(item mapperclient.ServiceIntentsUpToMapperV017ServiceIntents, _ int) mapperclient.ServiceIntentsWithLabelsServiceIntents { return mapperclient.ServiceIntentsWithLabelsServiceIntents{ Client: mapperclient.ServiceIntentsWithLabelsServiceIntentsClientOtterizeServiceIdentity{ NamespacedNameFragment: item.Client.NamespacedNameFragment, }, Intents: lo.Map(item.Intents, func(item mapperclient.ServiceIntentsUpToMapperV017ServiceIntentsIntentsOtterizeServiceIdentity, _ int) mapperclient.ServiceIntentsWithLabelsServiceIntentsIntentsOtterizeServiceIdentity { return mapperclient.ServiceIntentsWithLabelsServiceIntentsIntentsOtterizeServiceIdentity{ NamespacedNameFragment: item.NamespacedNameFragment, } }), } }) } exporter, err := intentsexporter.NewExporter() if err != nil { return err } intents := intentsoutput.MapperIntentsWithLabelsToAPIIntents(intentsFromMapperWithLabels, viper.GetString(DistinctByLabelKey)) if err := exporter.ExportIntents(intents); err != nil { return err } return nil }) }, }
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.