func (c *networkCmd) doNetworkDetach(client *lxd.Client, name string, args []string) error { if len(args) < 1 || len(args) > 2 { return errArgs } containerName := args[0] devName := "" if len(args) > 1 { devName = args[1] } container, err := client.ContainerInfo(containerName) if err != nil { return err } if devName == "" { for n, d := range container.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 := container.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")) } resp, err := client.ContainerDeviceDelete(containerName, devName) if err != nil { return err } return client.WaitForSuccess(resp.Operation) }