2018-03-19 18:56:51 -04:00
|
|
|
package licenseutils
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
|
|
|
|
"github.com/docker/licensing"
|
|
|
|
"github.com/docker/licensing/model"
|
|
|
|
)
|
|
|
|
|
|
|
|
type (
|
|
|
|
fakeLicensingClient struct {
|
|
|
|
loginViaAuthFunc func(ctx context.Context, username, password string) (authToken string, err error)
|
|
|
|
getHubUserOrgsFunc func(ctx context.Context, authToken string) (orgs []model.Org, err error)
|
|
|
|
getHubUserByNameFunc func(ctx context.Context, username string) (user *model.User, err error)
|
|
|
|
verifyLicenseFunc func(ctx context.Context, license model.IssuedLicense) (res *model.CheckResponse, err error)
|
2018-10-18 17:45:27 -04:00
|
|
|
generateNewTrialSubscriptionFunc func(ctx context.Context, authToken, dockerID string) (subscriptionID string, err error)
|
2018-03-19 18:56:51 -04:00
|
|
|
listSubscriptionsFunc func(ctx context.Context, authToken, dockerID string) (response []*model.Subscription, err error)
|
|
|
|
listSubscriptionsDetailsFunc func(ctx context.Context, authToken, dockerID string) (response []*model.SubscriptionDetail, err error)
|
|
|
|
downloadLicenseFromHubFunc func(ctx context.Context, authToken, subscriptionID string) (license *model.IssuedLicense, err error)
|
|
|
|
parseLicenseFunc func(license []byte) (parsedLicense *model.IssuedLicense, err error)
|
|
|
|
storeLicenseFunc func(ctx context.Context, dclnt licensing.WrappedDockerClient, licenses *model.IssuedLicense, localRootDir string) error
|
|
|
|
loadLocalLicenseFunc func(ctx context.Context, dclnt licensing.WrappedDockerClient) (*model.Subscription, error)
|
2018-09-10 17:31:45 -04:00
|
|
|
summarizeLicenseFunc func(*model.CheckResponse, string) *model.Subscription
|
2018-03-19 18:56:51 -04:00
|
|
|
}
|
|
|
|
)
|
|
|
|
|
|
|
|
func (c *fakeLicensingClient) LoginViaAuth(ctx context.Context, username, password string) (authToken string, err error) {
|
|
|
|
if c.loginViaAuthFunc != nil {
|
|
|
|
return c.loginViaAuthFunc(ctx, username, password)
|
|
|
|
}
|
|
|
|
return "", nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *fakeLicensingClient) GetHubUserOrgs(ctx context.Context, authToken string) (orgs []model.Org, err error) {
|
|
|
|
if c.getHubUserOrgsFunc != nil {
|
|
|
|
return c.getHubUserOrgsFunc(ctx, authToken)
|
|
|
|
}
|
|
|
|
return nil, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *fakeLicensingClient) GetHubUserByName(ctx context.Context, username string) (user *model.User, err error) {
|
|
|
|
if c.getHubUserByNameFunc != nil {
|
|
|
|
return c.getHubUserByNameFunc(ctx, username)
|
|
|
|
}
|
|
|
|
return nil, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *fakeLicensingClient) VerifyLicense(ctx context.Context, license model.IssuedLicense) (res *model.CheckResponse, err error) {
|
|
|
|
if c.verifyLicenseFunc != nil {
|
|
|
|
return c.verifyLicenseFunc(ctx, license)
|
|
|
|
}
|
|
|
|
return nil, nil
|
|
|
|
}
|
|
|
|
|
2018-10-18 17:45:27 -04:00
|
|
|
func (c *fakeLicensingClient) GenerateNewTrialSubscription(ctx context.Context, authToken, dockerID string) (subscriptionID string, err error) {
|
2018-03-19 18:56:51 -04:00
|
|
|
if c.generateNewTrialSubscriptionFunc != nil {
|
2018-10-18 17:45:27 -04:00
|
|
|
return c.generateNewTrialSubscriptionFunc(ctx, authToken, dockerID)
|
2018-03-19 18:56:51 -04:00
|
|
|
}
|
|
|
|
return "", nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *fakeLicensingClient) ListSubscriptions(ctx context.Context, authToken, dockerID string) (response []*model.Subscription, err error) {
|
|
|
|
if c.listSubscriptionsFunc != nil {
|
|
|
|
return c.listSubscriptionsFunc(ctx, authToken, dockerID)
|
|
|
|
}
|
|
|
|
return nil, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *fakeLicensingClient) ListSubscriptionsDetails(ctx context.Context, authToken, dockerID string) (response []*model.SubscriptionDetail, err error) {
|
|
|
|
if c.listSubscriptionsDetailsFunc != nil {
|
|
|
|
return c.listSubscriptionsDetailsFunc(ctx, authToken, dockerID)
|
|
|
|
}
|
|
|
|
return nil, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *fakeLicensingClient) DownloadLicenseFromHub(ctx context.Context, authToken, subscriptionID string) (license *model.IssuedLicense, err error) {
|
|
|
|
if c.downloadLicenseFromHubFunc != nil {
|
|
|
|
return c.downloadLicenseFromHubFunc(ctx, authToken, subscriptionID)
|
|
|
|
}
|
|
|
|
return nil, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *fakeLicensingClient) ParseLicense(license []byte) (parsedLicense *model.IssuedLicense, err error) {
|
|
|
|
if c.parseLicenseFunc != nil {
|
|
|
|
return c.parseLicenseFunc(license)
|
|
|
|
}
|
|
|
|
return nil, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *fakeLicensingClient) StoreLicense(ctx context.Context, dclnt licensing.WrappedDockerClient, licenses *model.IssuedLicense, localRootDir string) error {
|
|
|
|
if c.storeLicenseFunc != nil {
|
|
|
|
return c.storeLicenseFunc(ctx, dclnt, licenses, localRootDir)
|
|
|
|
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *fakeLicensingClient) LoadLocalLicense(ctx context.Context, dclnt licensing.WrappedDockerClient) (*model.Subscription, error) {
|
|
|
|
if c.loadLocalLicenseFunc != nil {
|
|
|
|
return c.loadLocalLicenseFunc(ctx, dclnt)
|
|
|
|
|
|
|
|
}
|
|
|
|
return nil, nil
|
|
|
|
}
|
2018-09-10 17:31:45 -04:00
|
|
|
|
|
|
|
func (c *fakeLicensingClient) SummarizeLicense(cr *model.CheckResponse, keyid string) *model.Subscription {
|
|
|
|
if c.summarizeLicenseFunc != nil {
|
|
|
|
return c.summarizeLicenseFunc(cr, keyid)
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|