// GetNodeConfig takes a node name and reads its docker-machine config. func (g *Google) GetNodeConfig(name string) (*drivers.HostConfig, error) { cfg := &drivers.HostConfig{ Driver: &config{}, } // Parse the config file. err := docker.GetHostConfig(name, cfg) if err != nil { return nil, err } // We need the just-parsed driver config. driverCfg := cfg.Driver.(*config) // Lookup the instance, there are a few fields docker-machine does not save. instance, err := g.getInstanceDetails(driverCfg.MachineName) if err != nil { return nil, err } driverCfg.internalIPAddress = instance.NetworkInterfaces[0].NetworkIP driverCfg.link = instance.SelfLink // Lookup the forwarding rule. rule, err := g.getForwardingRule() if err != nil { return nil, err } cfg.Driver.(*config).forwardingRuleAddress = rule.IPAddress return cfg, err }
// GetNodeConfig takes a node name and reads its docker-machine config. // The LoadBalancerAddress is looked up and filled in. func (a *Amazon) GetNodeConfig(name string) (*drivers.HostConfig, error) { cfg := &drivers.HostConfig{ Driver: &config{}, } // Parse the config file. err := docker.GetHostConfig(name, cfg) if err != nil { return nil, err } // Add the load balancer address. dnsName, err := FindCockroachELB(a.region) if err != nil || dnsName == "" { return nil, util.Errorf("could not find load balancer: %v", err) } cfg.Driver.(*config).LoadBalancerAddress = dnsName return cfg, err }