Skip to content

Commit

Permalink
Deprecate API driven licensing.
Browse files Browse the repository at this point in the history
The two methods in the API client to Put or Reset a license will now always return an error.
  • Loading branch information
mkeeler committed May 21, 2021
1 parent ce958e7 commit 08eb600
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 32 deletions.
3 changes: 3 additions & 0 deletions .changelog/10211.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:breaking-change
licensing: **(Enterprise Only)** Consul Enterprise 1.10 has removed API driven licensing of servers in favor of license loading via configuration. The `PUT` and `DELETE` methods on the `/v1/operator/license` endpoint will now return 405s, the `consul license put` and `consul license reset` CLI commands have been removed and the `LicensePut` and `LicenseReset` methods in the API client have been altered to always return an error.
```
44 changes: 12 additions & 32 deletions api/operator_license.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package api

import (
"fmt"
"io/ioutil"
"strings"
"time"
)

Expand Down Expand Up @@ -78,37 +78,17 @@ func (op *Operator) LicenseGetSigned(q *QueryOptions) (string, error) {

// LicenseReset will reset the license to the builtin one if it is still valid.
// If the builtin license is invalid, the current license stays active.
func (op *Operator) LicenseReset(opts *WriteOptions) (*LicenseReply, error) {
var reply LicenseReply
r := op.c.newRequest("DELETE", "/v1/operator/license")
r.setWriteOptions(opts)
_, resp, err := requireOK(op.c.doRequest(r))
if err != nil {
return nil, err
}
defer resp.Body.Close()

if err := decodeBody(resp, &reply); err != nil {
return nil, err
}

return &reply, nil
//
// DEPRECATED: Consul 1.10 removes the corresponding HTTP endpoint as licenses
// are now set via agent configuration instead of through the API
func (*Operator) LicenseReset(_ *WriteOptions) (*LicenseReply, error) {
return nil, fmt.Errorf("Consul 1.10 no longer supports API driven license management.")
}

func (op *Operator) LicensePut(license string, opts *WriteOptions) (*LicenseReply, error) {
var reply LicenseReply
r := op.c.newRequest("PUT", "/v1/operator/license")
r.setWriteOptions(opts)
r.body = strings.NewReader(license)
_, resp, err := requireOK(op.c.doRequest(r))
if err != nil {
return nil, err
}
defer resp.Body.Close()

if err := decodeBody(resp, &reply); err != nil {
return nil, err
}

return &reply, nil
// LicensePut will configure the Consul Enterprise license for the target datacenter
//
// DEPRECATED: Consul 1.10 removes the corresponding HTTP endpoint as licenses
// are now set via agent configuration instead of through the API
func (*Operator) LicensePut(_ string, _ *WriteOptions) (*LicenseReply, error) {
return nil, fmt.Errorf("Consul 1.10 no longer supports API driven license management.")
}

0 comments on commit 08eb600

Please sign in to comment.