in cmd/dump.go [133:200]
func dumpAgentPoliciesCmdAction(cmd *cobra.Command, args []string) error {
packageName, err := cmd.Flags().GetString(cobraext.PackageFlagName)
if err != nil {
return cobraext.FlagParsingError(err, cobraext.PackageFlagName)
}
agentPolicy, err := cmd.Flags().GetString(cobraext.AgentPolicyFlagName)
if err != nil {
return cobraext.FlagParsingError(err, cobraext.AgentPolicyFlagName)
}
outputPath, err := cmd.Flags().GetString(cobraext.DumpOutputFlagName)
if err != nil {
return cobraext.FlagParsingError(err, cobraext.DumpOutputFlagName)
}
tlsSkipVerify, _ := cmd.Flags().GetBool(cobraext.TLSSkipVerifyFlagName)
var clientOptions []kibana.ClientOption
if tlsSkipVerify {
clientOptions = append(clientOptions, kibana.TLSSkipVerify())
}
profile, err := cobraext.GetProfileFlag(cmd)
if err != nil {
return err
}
kibanaClient, err := stack.NewKibanaClientFromProfile(profile, clientOptions...)
if err != nil {
return fmt.Errorf("failed to initialize Kibana client: %w", err)
}
switch {
case agentPolicy != "" && packageName != "":
return fmt.Errorf("agent-policy and package parameters cannot be set at the same time")
case agentPolicy != "":
dumper := dump.NewAgentPoliciesDumper(kibanaClient)
err = dumper.DumpByName(cmd.Context(), outputPath, agentPolicy)
if err != nil {
return fmt.Errorf("dump failed: %w", err)
}
cmd.Printf("Dumped agent policy %s to %s\n", agentPolicy, outputPath)
case packageName != "":
dumper := dump.NewAgentPoliciesDumper(kibanaClient)
count, err := dumper.DumpByPackage(cmd.Context(), outputPath, packageName)
if err != nil {
return fmt.Errorf("dump failed: %w", err)
}
if count != 0 {
cmd.Printf("Dumped %d agent policies filtering by package name %s to %s\n", count, packageName, outputPath)
} else {
cmd.Printf("No agent policies were found filtering by package name %s\n", packageName)
}
default:
dumper := dump.NewAgentPoliciesDumper(kibanaClient)
count, err := dumper.DumpAll(cmd.Context(), outputPath)
if err != nil {
return fmt.Errorf("dump failed: %w", err)
}
if count != 0 {
cmd.Printf("Dumped %d agent policies to %s\n", count, outputPath)
} else {
cmd.Printf("No agent policies were found\n")
}
}
return nil
}