Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
| ... | ... |
@@ -44,9 +44,10 @@ func parseSecretString(secretString string) (string, string, error) {
|
| 44 | 44 |
// them to secret references to use with the spec |
| 45 | 45 |
func parseSecrets(client client.APIClient, requestedSecrets []string) ([]*swarmtypes.SecretReference, error) {
|
| 46 | 46 |
lookupSecretNames := []string{}
|
| 47 |
- needSecrets := make(map[string]*swarmtypes.SecretReference) |
|
| 47 |
+ neededSecrets := make(map[string]*swarmtypes.SecretReference) |
|
| 48 | 48 |
ctx := context.Background() |
| 49 | 49 |
|
| 50 |
+ neededLookup := map[string]string{}
|
|
| 50 | 51 |
for _, secret := range requestedSecrets {
|
| 51 | 52 |
n, t, err := parseSecretString(secret) |
| 52 | 53 |
if err != nil {
|
| ... | ... |
@@ -60,7 +61,8 @@ func parseSecrets(client client.APIClient, requestedSecrets []string) ([]*swarmt |
| 60 | 60 |
} |
| 61 | 61 |
|
| 62 | 62 |
lookupSecretNames = append(lookupSecretNames, n) |
| 63 |
- needSecrets[n] = secretRef |
|
| 63 |
+ neededLookup[t] = n |
|
| 64 |
+ neededSecrets[t] = secretRef |
|
| 64 | 65 |
} |
| 65 | 66 |
|
| 66 | 67 |
args := filters.NewArgs() |
| ... | ... |
@@ -82,12 +84,17 @@ func parseSecrets(client client.APIClient, requestedSecrets []string) ([]*swarmt |
| 82 | 82 |
|
| 83 | 83 |
addedSecrets := []*swarmtypes.SecretReference{}
|
| 84 | 84 |
|
| 85 |
- for secretName, secretRef := range needSecrets {
|
|
| 85 |
+ for target, secretName := range neededLookup {
|
|
| 86 | 86 |
id, ok := foundSecrets[secretName] |
| 87 | 87 |
if !ok {
|
| 88 | 88 |
return nil, fmt.Errorf("secret not found: %s", secretName)
|
| 89 | 89 |
} |
| 90 | 90 |
|
| 91 |
+ secretRef, ok := neededSecrets[target] |
|
| 92 |
+ if !ok {
|
|
| 93 |
+ return nil, fmt.Errorf("secret reference not found: %s", secretName)
|
|
| 94 |
+ } |
|
| 95 |
+ |
|
| 91 | 96 |
// set the id for the ref to properly assign in swarm |
| 92 | 97 |
// since swarm needs the ID instead of the name |
| 93 | 98 |
secretRef.SecretID = id |