[lxc-devel] [lxd/master] More API cleanup

stgraber on Github lxc-bot at linuxcontainers.org
Wed Apr 24 21:03:30 UTC 2019


A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 301 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20190424/3f1aabc9/attachment.bin>
-------------- next part --------------
From 9fa2d7dba6e17e39ae7e04a54137424f43d3aaa6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Wed, 24 Apr 2019 16:49:08 -0400
Subject: [PATCH 1/3] lxd/api: Rename alias* commands to imageAlias*
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
 lxd/api_1.0.go |  4 ++--
 lxd/images.go  | 32 ++++++++++++++++----------------
 2 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/lxd/api_1.0.go b/lxd/api_1.0.go
index 7390ddf5c1..2d0163833c 100644
--- a/lxd/api_1.0.go
+++ b/lxd/api_1.0.go
@@ -30,8 +30,6 @@ var api10Cmd = Command{
 }
 
 var api10 = []Command{
-	aliasCmd,
-	aliasesCmd,
 	api10Cmd,
 	api10ResourcesCmd,
 	certificateFingerprintCmd,
@@ -55,6 +53,8 @@ var api10 = []Command{
 	containerSnapshotsCmd,
 	containerStateCmd,
 	eventsCmd,
+	imageAliasCmd,
+	imageAliasesCmd,
 	imageCmd,
 	imageExportCmd,
 	imageRefreshCmd,
diff --git a/lxd/images.go b/lxd/images.go
index bdd29c9583..746904a49b 100644
--- a/lxd/images.go
+++ b/lxd/images.go
@@ -74,20 +74,20 @@ var imageRefreshCmd = Command{
 	post: imageRefresh,
 }
 
-var aliasesCmd = Command{
+var imageAliasesCmd = Command{
 	name: "images/aliases",
-	post: aliasesPost,
-	get:  aliasesGet,
+	post: imageAliasesPost,
+	get:  imageAliasesGet,
 }
 
-var aliasCmd = Command{
+var imageAliasCmd = Command{
 	name:         "images/aliases/{name:.*}",
 	untrustedGet: true,
-	get:          aliasGet,
-	delete:       aliasDelete,
-	put:          aliasPut,
-	post:         aliasPost,
-	patch:        aliasPatch,
+	get:          imageAliasGet,
+	delete:       imageAliasDelete,
+	put:          imageAliasPut,
+	post:         imageAliasPost,
+	patch:        imageAliasPatch,
 }
 
 /* We only want a single publish running at any one time.
@@ -1596,7 +1596,7 @@ func imagePatch(d *Daemon, r *http.Request) Response {
 	return EmptySyncResponse
 }
 
-func aliasesPost(d *Daemon, r *http.Request) Response {
+func imageAliasesPost(d *Daemon, r *http.Request) Response {
 	project := projectParam(r)
 	req := api.ImageAliasesPost{}
 	if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
@@ -1630,7 +1630,7 @@ func aliasesPost(d *Daemon, r *http.Request) Response {
 	return SyncResponseLocation(true, nil, fmt.Sprintf("/%s/images/aliases/%s", version.APIVersion, req.Name))
 }
 
-func aliasesGet(d *Daemon, r *http.Request) Response {
+func imageAliasesGet(d *Daemon, r *http.Request) Response {
 	project := projectParam(r)
 	recursion := util.IsRecursionRequest(r)
 
@@ -1661,7 +1661,7 @@ func aliasesGet(d *Daemon, r *http.Request) Response {
 	return SyncResponse(true, responseMap)
 }
 
-func aliasGet(d *Daemon, r *http.Request) Response {
+func imageAliasGet(d *Daemon, r *http.Request) Response {
 	project := projectParam(r)
 	name := mux.Vars(r)["name"]
 
@@ -1673,7 +1673,7 @@ func aliasGet(d *Daemon, r *http.Request) Response {
 	return SyncResponseETag(true, alias, alias)
 }
 
-func aliasDelete(d *Daemon, r *http.Request) Response {
+func imageAliasDelete(d *Daemon, r *http.Request) Response {
 	project := projectParam(r)
 	name := mux.Vars(r)["name"]
 	_, _, err := d.cluster.ImageAliasGet(project, name, true)
@@ -1689,7 +1689,7 @@ func aliasDelete(d *Daemon, r *http.Request) Response {
 	return EmptySyncResponse
 }
 
-func aliasPut(d *Daemon, r *http.Request) Response {
+func imageAliasPut(d *Daemon, r *http.Request) Response {
 	// Get current value
 	project := projectParam(r)
 	name := mux.Vars(r)["name"]
@@ -1726,7 +1726,7 @@ func aliasPut(d *Daemon, r *http.Request) Response {
 	return EmptySyncResponse
 }
 
-func aliasPatch(d *Daemon, r *http.Request) Response {
+func imageAliasPatch(d *Daemon, r *http.Request) Response {
 	// Get current value
 	project := projectParam(r)
 	name := mux.Vars(r)["name"]
@@ -1779,7 +1779,7 @@ func aliasPatch(d *Daemon, r *http.Request) Response {
 	return EmptySyncResponse
 }
 
-func aliasPost(d *Daemon, r *http.Request) Response {
+func imageAliasPost(d *Daemon, r *http.Request) Response {
 	project := projectParam(r)
 	name := mux.Vars(r)["name"]
 

From 11fda24b1e308baec75df8139547fa6ca2781e17 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Wed, 24 Apr 2019 16:51:40 -0400
Subject: [PATCH 2/3] lxd/api: Rename certificateFingerprint* to certficate*
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
 lxd/api_1.0.go      |  2 +-
 lxd/certificates.go | 18 +++++++++---------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/lxd/api_1.0.go b/lxd/api_1.0.go
index 2d0163833c..056d60d5b7 100644
--- a/lxd/api_1.0.go
+++ b/lxd/api_1.0.go
@@ -32,7 +32,7 @@ var api10Cmd = Command{
 var api10 = []Command{
 	api10Cmd,
 	api10ResourcesCmd,
-	certificateFingerprintCmd,
+	certificateCmd,
 	certificatesCmd,
 	clusterCmd,
 	clusterNodeCmd,
diff --git a/lxd/certificates.go b/lxd/certificates.go
index 2e4e190ef3..8c0b8bcc2b 100644
--- a/lxd/certificates.go
+++ b/lxd/certificates.go
@@ -31,12 +31,12 @@ var certificatesCmd = Command{
 	post:          certificatesPost,
 }
 
-var certificateFingerprintCmd = Command{
+var certificateCmd = Command{
 	name:   "certificates/{fingerprint}",
-	get:    certificateFingerprintGet,
-	delete: certificateFingerprintDelete,
-	put:    certificateFingerprintPut,
-	patch:  certificateFingerprintPatch,
+	get:    certificateGet,
+	delete: certificateDelete,
+	put:    certificatePut,
+	patch:  certificatePatch,
 }
 
 func certificatesGet(d *Daemon, r *http.Request) Response {
@@ -211,7 +211,7 @@ func certificatesPost(d *Daemon, r *http.Request) Response {
 	return SyncResponseLocation(true, nil, fmt.Sprintf("/%s/certificates/%s", version.APIVersion, fingerprint))
 }
 
-func certificateFingerprintGet(d *Daemon, r *http.Request) Response {
+func certificateGet(d *Daemon, r *http.Request) Response {
 	fingerprint := mux.Vars(r)["fingerprint"]
 
 	cert, err := doCertificateGet(d.cluster, fingerprint)
@@ -242,7 +242,7 @@ func doCertificateGet(db *db.Cluster, fingerprint string) (api.Certificate, erro
 	return resp, nil
 }
 
-func certificateFingerprintPut(d *Daemon, r *http.Request) Response {
+func certificatePut(d *Daemon, r *http.Request) Response {
 	fingerprint := mux.Vars(r)["fingerprint"]
 
 	oldEntry, err := doCertificateGet(d.cluster, fingerprint)
@@ -264,7 +264,7 @@ func certificateFingerprintPut(d *Daemon, r *http.Request) Response {
 	return doCertificateUpdate(d, fingerprint, req)
 }
 
-func certificateFingerprintPatch(d *Daemon, r *http.Request) Response {
+func certificatePatch(d *Daemon, r *http.Request) Response {
 	fingerprint := mux.Vars(r)["fingerprint"]
 
 	oldEntry, err := doCertificateGet(d.cluster, fingerprint)
@@ -312,7 +312,7 @@ func doCertificateUpdate(d *Daemon, fingerprint string, req api.CertificatePut)
 	return EmptySyncResponse
 }
 
-func certificateFingerprintDelete(d *Daemon, r *http.Request) Response {
+func certificateDelete(d *Daemon, r *http.Request) Response {
 	fingerprint := mux.Vars(r)["fingerprint"]
 
 	certInfo, err := d.cluster.CertificateGet(fingerprint)

From 494038f96e6c9f8a63ff8e1458364b01fa7db4f4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Wed, 24 Apr 2019 16:55:06 -0400
Subject: [PATCH 3/3] lxd/api: Rename apiProject* to project*
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
 lxd/api_project.go | 48 +++++++++++++++++++++++-----------------------
 1 file changed, 24 insertions(+), 24 deletions(-)

diff --git a/lxd/api_project.go b/lxd/api_project.go
index 0ae5a7fe17..814a021d51 100644
--- a/lxd/api_project.go
+++ b/lxd/api_project.go
@@ -21,20 +21,20 @@ import (
 
 var projectsCmd = Command{
 	name: "projects",
-	get:  apiProjectsGet,
-	post: apiProjectsPost,
+	get:  projectsGet,
+	post: projectsPost,
 }
 
 var projectCmd = Command{
 	name:   "projects/{name}",
-	get:    apiProjectGet,
-	post:   apiProjectPost,
-	put:    apiProjectPut,
-	patch:  apiProjectPatch,
-	delete: apiProjectDelete,
+	get:    projectGet,
+	post:   projectPost,
+	put:    projectPut,
+	patch:  projectPatch,
+	delete: projectDelete,
 }
 
-func apiProjectsGet(d *Daemon, r *http.Request) Response {
+func projectsGet(d *Daemon, r *http.Request) Response {
 	recursion := util.IsRecursionRequest(r)
 
 	var result interface{}
@@ -55,7 +55,7 @@ func apiProjectsGet(d *Daemon, r *http.Request) Response {
 	return SyncResponse(true, result)
 }
 
-func apiProjectsPost(d *Daemon, r *http.Request) Response {
+func projectsPost(d *Daemon, r *http.Request) Response {
 	// Parse the request
 	project := api.ProjectsPost{}
 
@@ -105,7 +105,7 @@ func apiProjectsPost(d *Daemon, r *http.Request) Response {
 		}
 
 		if project.Config["features.profiles"] == "true" {
-			err = apiProjectCreateDefaultProfile(tx, project.Name)
+			err = projectCreateDefaultProfile(tx, project.Name)
 			if err != nil {
 				return err
 			}
@@ -121,7 +121,7 @@ func apiProjectsPost(d *Daemon, r *http.Request) Response {
 }
 
 // Create the default profile of a project.
-func apiProjectCreateDefaultProfile(tx *db.ClusterTx, project string) error {
+func projectCreateDefaultProfile(tx *db.ClusterTx, project string) error {
 	// Create a default profile
 	profile := db.Profile{}
 	profile.Project = project
@@ -137,7 +137,7 @@ func apiProjectCreateDefaultProfile(tx *db.ClusterTx, project string) error {
 	return nil
 }
 
-func apiProjectGet(d *Daemon, r *http.Request) Response {
+func projectGet(d *Daemon, r *http.Request) Response {
 	name := mux.Vars(r)["name"]
 
 	// Get the database entry
@@ -160,7 +160,7 @@ func apiProjectGet(d *Daemon, r *http.Request) Response {
 	return SyncResponseETag(true, project, etag)
 }
 
-func apiProjectPut(d *Daemon, r *http.Request) Response {
+func projectPut(d *Daemon, r *http.Request) Response {
 	name := mux.Vars(r)["name"]
 
 	// Get the current data
@@ -193,10 +193,10 @@ func apiProjectPut(d *Daemon, r *http.Request) Response {
 		return BadRequest(err)
 	}
 
-	return apiProjectChange(d, project, req)
+	return projectChange(d, project, req)
 }
 
-func apiProjectPatch(d *Daemon, r *http.Request) Response {
+func projectPatch(d *Daemon, r *http.Request) Response {
 	name := mux.Vars(r)["name"]
 
 	// Get the current data
@@ -255,11 +255,11 @@ func apiProjectPatch(d *Daemon, r *http.Request) Response {
 		req.Config["features.images"] = project.Config["features.profiles"]
 	}
 
-	return apiProjectChange(d, project, req)
+	return projectChange(d, project, req)
 }
 
 // Common logic between PUT and PATCH.
-func apiProjectChange(d *Daemon, project *api.Project, req api.ProjectPut) Response {
+func projectChange(d *Daemon, project *api.Project, req api.ProjectPut) Response {
 	// Flag indicating if any feature has changed.
 	featuresChanged := req.Config["features.images"] != project.Config["features.images"] || req.Config["features.profiles"] != project.Config["features.profiles"]
 
@@ -268,7 +268,7 @@ func apiProjectChange(d *Daemon, project *api.Project, req api.ProjectPut) Respo
 		return BadRequest(fmt.Errorf("You can't change the features of the default project"))
 	}
 
-	if !apiProjectIsEmpty(project) && featuresChanged {
+	if !projectIsEmpty(project) && featuresChanged {
 		return BadRequest(fmt.Errorf("Features can only be changed on empty projects"))
 	}
 
@@ -287,7 +287,7 @@ func apiProjectChange(d *Daemon, project *api.Project, req api.ProjectPut) Respo
 
 		if req.Config["features.profiles"] != project.Config["features.profiles"] {
 			if req.Config["features.profiles"] == "true" {
-				err = apiProjectCreateDefaultProfile(tx, project.Name)
+				err = projectCreateDefaultProfile(tx, project.Name)
 				if err != nil {
 					return err
 				}
@@ -311,7 +311,7 @@ func apiProjectChange(d *Daemon, project *api.Project, req api.ProjectPut) Respo
 	return EmptySyncResponse
 }
 
-func apiProjectPost(d *Daemon, r *http.Request) Response {
+func projectPost(d *Daemon, r *http.Request) Response {
 	name := mux.Vars(r)["name"]
 
 	// Parse the request
@@ -344,7 +344,7 @@ func apiProjectPost(d *Daemon, r *http.Request) Response {
 				return errors.Wrapf(err, "Fetch project %q", name)
 			}
 
-			if !apiProjectIsEmpty(project) {
+			if !projectIsEmpty(project) {
 				return fmt.Errorf("Only empty projects can be renamed")
 			}
 
@@ -362,7 +362,7 @@ func apiProjectPost(d *Daemon, r *http.Request) Response {
 	return OperationResponse(op)
 }
 
-func apiProjectDelete(d *Daemon, r *http.Request) Response {
+func projectDelete(d *Daemon, r *http.Request) Response {
 	name := mux.Vars(r)["name"]
 
 	// Sanity checks
@@ -375,7 +375,7 @@ func apiProjectDelete(d *Daemon, r *http.Request) Response {
 		if err != nil {
 			return errors.Wrapf(err, "Fetch project %q", name)
 		}
-		if !apiProjectIsEmpty(project) {
+		if !projectIsEmpty(project) {
 			return fmt.Errorf("Only empty projects can be removed")
 		}
 
@@ -390,7 +390,7 @@ func apiProjectDelete(d *Daemon, r *http.Request) Response {
 }
 
 // Check if a project is empty.
-func apiProjectIsEmpty(project *api.Project) bool {
+func projectIsEmpty(project *api.Project) bool {
 	if len(project.UsedBy) > 0 {
 		// Check if the only entity is the default profile.
 		if len(project.UsedBy) == 1 && strings.Contains(project.UsedBy[0], "/profiles/default") {


More information about the lxc-devel mailing list