func()

in provider/secrets_manager_provider.go [40:103]


func (p *SecretsManagerProvider) GetSecretValues(
	ctx context.Context,
	descriptors []*SecretDescriptor,
	curMap map[string]*v1alpha1.ObjectVersion,
) (v []*SecretValue, e error) {

	// Fetch each secret
	var values []*SecretValue
	for _, descriptor := range descriptors {

		// Don't re-fetch if we already have the current version.
		isCurrent, version, err := p.isCurrent(ctx, descriptor, curMap)
		if err != nil {
			return nil, err
		}

		// If version is current, read it back in, otherwise pull it down
		var secret *SecretValue
		if isCurrent {

			secret, err = p.reloadSecret(descriptor)
			if err != nil {
				return nil, err
			}

		} else { // Fetch the latest version.

			version, secret, err = p.fetchSecret(ctx, descriptor)
			if err != nil {
				return nil, err
			}

		}
		values = append(values, secret) // Build up the slice of values

		//Fetch individual json key value pairs based on jmesPath
		jsonSecrets, err := secret.getJsonSecrets()
		if err != nil {
			return nil, err
		}

		values = append(values, jsonSecrets...)

		// Update the version in the current version map.
		for _, jsonSecret := range jsonSecrets {
			jsonDescriptor := jsonSecret.Descriptor
			curMap[jsonDescriptor.GetFileName()] = &v1alpha1.ObjectVersion{
				Id:      jsonDescriptor.GetFileName(),
				Version: version,
			}

		}

		// Update the version in the current version map.
		curMap[descriptor.GetFileName()] = &v1alpha1.ObjectVersion{
			Id:      descriptor.GetFileName(),
			Version: version,
		}

	}

	return values, nil

}