public static object Resolve(SecretStore secrets, Service service, Resource resource)
 {
     Func<ResourceResolutionContext, object> resolver;
     if (!Resolvers.TryGetValue(resource.Type, out resolver))
     {
         return String.Empty;
     }
     return resolver(new ResourceResolutionContext(secrets, service, resource)) ?? String.Empty;
 }
 public ConfigTemplateModel(SecretStore secrets, Service service)
 {
     Resources = new ConfigObject(
         service
             .Datacenter
             .Resources
             .GroupBy(r => r.Type)
             .ToDictionary(g => g.Key, g => (object)g.ToDictionary(r => r.Name, r => ResolveValue(secrets, service, r))));
     Service = service;
     Services = new ConfigObject(
         service
             .Datacenter
             .Services
             .ToDictionary(s => s.Name, s => (object)new ServiceModel(s, secrets)));
 }
Example #3
0
 public ServiceModel(Service service, SecretStore secrets)
 {
     _service = service;
     _secrets = secrets;
     _attributes = new ConfigObject(service.Attributes.ToDictionary(p => p.Key, p => (object)p.Value));
 }
 public ResourceResolutionContext(SecretStore secrets, Service service, Resource resource)
 {
     Secrets = secrets;
     Service = service;
     Resource = resource;
 }
        protected virtual async Task<Secret> ReadSecretAndFollowLinks(string key, int? datacenter, SecretStore store)
        {
            var secret = await store.Read(key, datacenter, "nucmd get");

            while (secret != null && secret.Type == SecretType.Link)
            {
                // Follow link
                var link = SecretName.Parse(secret.Value);
                await Console.WriteInfoLine(Strings.Secrets_FollowingLink, link.Name);
                secret = await store.Read(
                    link,
                    String.Format(CultureInfo.InvariantCulture, "nucmd get (link from {0})", secret.Name));
            }
            return secret;
        }
 private object ResolveValue(SecretStore secrets, Service service, Resource r)
 {
     // Simpler to just to sync here.
     return ResourceResolver.Resolve(secrets, service, r);
 }