Files
micromdm/cmd/mdmctl/remove.go
Scott Knight 529860bf15 Allow removal of device records (#444)
The new remove devices command takes a UDID or list of UDIDs
as input and calls the devices delete endpoint. Since serial number
isn't strictly required by the spec it seemed to make more sense
to keep the remove working with only UDIDs. The get devices command
with a serial number filter can always be used to look up a UDID
from a serial number.
2018-06-21 11:43:16 -04:00

77 lines
1.2 KiB
Go

package main
import (
"fmt"
"os"
"strings"
"github.com/go-kit/kit/log"
)
type removeCommand struct {
config *ServerConfig
*remoteServices
}
func (cmd *removeCommand) setup() error {
cfg, err := LoadServerConfig()
if err != nil {
return err
}
cmd.config = cfg
logger := log.NewLogfmtLogger(os.Stderr)
remote, err := setupClient(logger)
if err != nil {
return err
}
cmd.remoteServices = remote
return nil
}
func (cmd *removeCommand) Run(args []string) error {
if len(args) < 1 {
cmd.Usage()
os.Exit(1)
}
if err := cmd.setup(); err != nil {
return err
}
var run func([]string) error
switch strings.ToLower(args[0]) {
case "blueprints":
run = cmd.removeBlueprints
case "devices":
run = cmd.removeDevices
case "profiles":
run = cmd.removeProfiles
case "block":
run = cmd.removeBlock
case "dep-autoassigner":
run = cmd.removeDEPAutoAssigner
default:
cmd.Usage()
os.Exit(1)
}
return run(args[1:])
}
func (cmd *removeCommand) Usage() error {
const getUsage = `
Display one or many resources.
Valid resource types:
* blueprints
* devices
* profiles
* block
* dep-autoassigner
`
fmt.Println(getUsage)
return nil
}