Let the Reserve button pick another address of the lease's subnet
The Reserve dialog fills in the lease's address but lets it be changed;
POST /leases/{ip}/reserve takes an optional ip, steward lease reserve
takes --ip. The address must be in the lease's subnet.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
c7a64773a7
commit
1bc9f9f63a
8 files changed
+49
-12
No files matched your search
@@ -126,7 +126,7 @@ gets a NAK when it next renews, and then asks for a new address.`,
|
||||
}
|
||||
del.Flags().BoolVarP(&yes, "yes", "y", false, "don't ask")
|
||||
cmd.AddCommand(del)
|
||||
var hostname, comment, by string
|
||||
var hostname, comment, by, ip string
|
||||
reserve := &cobra.Command{
|
||||
Use: "reserve IP",
|
||||
Short: "Make a lease's address its client's reservation",
|
||||
@@ -136,7 +136,10 @@ then on. The host name the client sent becomes the reservation's, unless
|
||||
|
||||
The reservation knows the client by its MAC address and, if it sent one,
|
||||
its client ID (option 61): either one gets it the address. --by mac or
|
||||
--by client-id uses just one.`,
|
||||
--by client-id uses just one.
|
||||
|
||||
--ip reserves another address of the same subnet instead; the client
|
||||
moves there when it next renews.`,
|
||||
Args: cobra.ExactArgs(1),
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
c, err := newClient()
|
||||
@@ -153,6 +156,9 @@ its client ID (option 61): either one gets it the address. --by mac or
|
||||
if by != "" {
|
||||
body["by"] = by
|
||||
}
|
||||
if ip != "" {
|
||||
body["ip"] = ip
|
||||
}
|
||||
var resp api.MutationResponse
|
||||
if err := c.Do(ctx(), "POST", "/leases/"+args[0]+"/reserve", nil, body, &resp); err != nil {
|
||||
return err
|
||||
@@ -162,6 +168,7 @@ its client ID (option 61): either one gets it the address. --by mac or
|
||||
}
|
||||
reserve.Flags().StringVar(&hostname, "hostname", "", "the reservation's host name")
|
||||
reserve.Flags().StringVar(&comment, "comment", "", "a comment")
|
||||
reserve.Flags().StringVar(&ip, "ip", "", "reserve this address of the lease's subnet instead")
|
||||
reserve.Flags().StringVar(&by, "by", "", "know the client by mac, client-id or both (the default)")
|
||||
cmd.AddCommand(reserve)
|
||||
return cmd
|
||||
|
||||
Reference in new issue
Block a user