Browse Source

judge manager before getting secret

Signed-off-by: allencloud <allen.sun@daocloud.io>
allencloud 8 years ago
parent
commit
1addb4817b
2 changed files with 10 additions and 2 deletions
  1. 7 0
      daemon/cluster/secrets.go
  2. 3 2
      docs/reference/api/docker_remote_api_v1.25.md

+ 7 - 0
daemon/cluster/secrets.go

@@ -9,6 +9,13 @@ import (
 
 
 // GetSecret returns a secret from a managed swarm cluster
 // GetSecret returns a secret from a managed swarm cluster
 func (c *Cluster) GetSecret(id string) (types.Secret, error) {
 func (c *Cluster) GetSecret(id string) (types.Secret, error) {
+	c.RLock()
+	defer c.RUnlock()
+
+	if !c.isActiveManager() {
+		return types.Secret{}, c.errNoManager()
+	}
+
 	ctx, cancel := c.getRequestContext()
 	ctx, cancel := c.getRequestContext()
 	defer cancel()
 	defer cancel()
 
 

+ 3 - 2
docs/reference/api/docker_remote_api_v1.25.md

@@ -6060,9 +6060,9 @@ Create a secret
 
 
 ### Inspect a secret
 ### Inspect a secret
 
 
-`GET /secrets/(secret id)`
+`GET /secrets/(id)`
 
 
-Get details on a secret
+Get details on the secret `id`
 
 
 **Example request**:
 **Example request**:
 
 
@@ -6088,6 +6088,7 @@ Get details on a secret
 
 
 - **200** – no error
 - **200** – no error
 - **404** – unknown secret
 - **404** – unknown secret
+- **406** – node is not part of a swarm
 - **500** – server error
 - **500** – server error
 
 
 ### Remove a secret
 ### Remove a secret