func (c *networkCmd) doNetworkDetachProfile(client *lxd.Client, name string, args []string) error { if len(args) < 1 || len(args) > 2 { return errArgs } profileName := args[0] devName := "" if len(args) > 1 { devName = args[1] } profile, err := client.ProfileConfig(profileName) if err != nil { return err } if devName == "" { for n, d := range profile.Devices { if d["type"] == "nic" && d["parent"] == name { if devName != "" { return fmt.Errorf(i18n.G("More than one device matches, specify the device name.")) } devName = n } } } if devName == "" { return fmt.Errorf(i18n.G("No device found for this network")) } device, ok := profile.Devices[devName] if !ok { return fmt.Errorf(i18n.G("The specified device doesn't exist")) } if device["type"] != "nic" || device["parent"] != name { return fmt.Errorf(i18n.G("The specified device doesn't match the network")) } _, err = client.ProfileDeviceDelete(profileName, devName) return err }