in internal/onetime/configure/oracle/metrics.go [97:163]
func newMetricsConnectionAddCmd(cfg *cliconfig.Configure) *cobra.Command {
connectionAddCmd := &cobra.Command{
Use: "connection-add",
Short: "Add a database connection",
RunE: func(cmd *cobra.Command, args []string) error {
cfg.ValidateOracleMetricsConnection()
username, err := cmd.Flags().GetString("username")
if err != nil {
return fmt.Errorf("error getting username: %w", err)
}
host, err := cmd.Flags().GetString("host")
if err != nil {
return fmt.Errorf("error getting host: %w", err)
}
port, err := cmd.Flags().GetInt("port")
if err != nil {
return fmt.Errorf("error getting port: %w", err)
}
serviceName, err := cmd.Flags().GetString("service-name")
if err != nil {
return fmt.Errorf("error getting service-name: %w", err)
}
projectID, err := cmd.Flags().GetString("project-id")
if err != nil {
return fmt.Errorf("error getting project-id: %w", err)
}
secretName, err := cmd.Flags().GetString("secret-name")
if err != nil {
return fmt.Errorf("error getting secret-name: %w", err)
}
newConn := &cpb.ConnectionParameters{
Username: username,
Host: host,
Port: int32(port),
ServiceName: serviceName,
Secret: &cpb.SecretRef{
ProjectId: projectID,
SecretName: secretName,
},
}
msg := fmt.Sprintf("Oracle Metrics Connection Added: %v", newConn)
cfg.LogToBoth(cmd.Context(), msg)
cfg.Configuration.OracleConfiguration.OracleMetrics.ConnectionParameters = append(cfg.Configuration.OracleConfiguration.OracleMetrics.ConnectionParameters, newConn)
cfg.OracleConfigModified = true
return nil
},
}
// Add flags for the connection
connectionAddCmd.Flags().String("username", "", "Database username")
connectionAddCmd.Flags().String("host", "", "Database host")
connectionAddCmd.Flags().Int("port", 1521, "Database port")
connectionAddCmd.Flags().String("service-name", "", "Oracle service name")
connectionAddCmd.Flags().String("project-id", "", "Project ID")
connectionAddCmd.Flags().String("secret-name", "", "Secret name")
connectionAddCmd.MarkFlagRequired("username")
connectionAddCmd.MarkFlagRequired("host")
connectionAddCmd.MarkFlagRequired("service-name")
connectionAddCmd.MarkFlagRequired("project-id")
connectionAddCmd.MarkFlagRequired("secret-name")
return connectionAddCmd
}