in src/terraform/providers/terraform-provider-avere/resource_vfxt.go [856:921]
func resourceVfxtRead(d *schema.ResourceData, m interface{}) error {
log.Printf("[INFO] [resourceVfxtRead")
defer log.Printf("[INFO] resourceVfxtRead]")
avereVfxt, err := fillAvereVfxt(d)
if err != nil {
return err
}
if avereVfxt.RunLocal == false {
if err := VerifySSHConnection(avereVfxt.ControllerAddress, avereVfxt.ControllerUsename, avereVfxt.SshAuthMethod, avereVfxt.SshPort); err != nil {
return err
}
}
// return from read if the vfxt is not alive since it may be stop deallocated
if !avereVfxt.IsAlive() {
return fmt.Errorf("The vfxt management IP '%s' is not reachable. Please confirm the cluster is alive and not stopped.", avereVfxt.ManagementIP)
}
// since the management IP may change nodes, prepare the environment to run commands for the newly created cluster
if err := avereVfxt.PrepareForVFXTNodeCommands(); err != nil {
return err
}
currentVServerIPAddresses, err := avereVfxt.GetVServerIPAddresses()
if err != nil {
return fmt.Errorf("error encountered while getting vserver addresses '%v'", err)
}
avereVfxt.VServerIPAddresses = ¤tVServerIPAddresses
d.Set(vserver_ip_addresses, flattenStringSlice(avereVfxt.VServerIPAddresses))
nodeNames, err := avereVfxt.GetNodes()
if err != nil {
return fmt.Errorf("error encountered getting nodes '%v'", err)
}
avereVfxt.NodeNames = &nodeNames
d.Set(node_names, flattenStringSlice(avereVfxt.NodeNames))
if len(*(avereVfxt.NodeNames)) >= MinNodesCount {
d.Set(vfxt_node_count, len(*(avereVfxt.NodeNames)))
}
primaryIPs, err := avereVfxt.GetNodePrimaryIPs()
if err != nil {
return fmt.Errorf("error encountered getting nodes primary ips '%v'", err)
}
d.Set(primary_cluster_ips, flattenStringSlice(&primaryIPs))
if len(*(avereVfxt.NodeNames)) >= MinNodesCount {
d.Set(vfxt_node_count, len(*(avereVfxt.NodeNames)))
}
massMappings, err := avereVfxt.GetGenericFilerMappingList()
if err != nil {
return fmt.Errorf("error encountered getting the filer mappings '%v'", err)
}
d.Set(mass_filer_mappings, flattenStringSlice(&massMappings))
cluster, err := avereVfxt.GetCluster()
if err != nil {
return fmt.Errorf("error encountered getting cluster '%v'", err)
}
d.Set(licensing_id, cluster.LicensingId)
log.Printf("[INFO] cluster name: '%s', uuid: '%s', support name: '%s'", avereVfxt.AvereVfxtName, cluster.LicensingId, avereVfxt.AvereVfxtSupportName)
return nil
}