in src/terraform/providers/terraform-provider-avere/restore_backup.go [538:586]
func FillAvereVfxtFromBackupFile(lines []string) (AvereVfxt, error) {
avereVfxt := AvereVfxt{
EnableSupportUploads: false, // customer always chooses to enable support uploads
NodeCount: 3,
NodeCacheSize: 4096,
}
isClusterModify := false
clusterModifyStr := ""
for _, line := range lines {
// handle averecmd cluster.modify
if strings.Index(line, "averecmd cluster.modify") >= 0 {
isClusterModify = true
}
if isClusterModify {
openIndex := strings.Index(line, "\"{")
closeIndex := strings.Index(line, "}\"")
if openIndex > 0 && closeIndex > 0 {
clusterModifyStr = line[openIndex+1 : closeIndex+1]
isClusterModify = false
} else if openIndex > 0 {
clusterModifyStr = line[openIndex+1:]
} else if closeIndex > 0 {
clusterModifyStr += line[:closeIndex+1]
isClusterModify = false
} else {
clusterModifyStr += line
}
if isClusterModify == false {
var cluster Cluster
if err := json.Unmarshal([]byte(strings.ReplaceAll(clusterModifyStr, "'", "\"")), &cluster); err != nil {
return avereVfxt, fmt.Errorf("unable to parse json string")
}
avereVfxt.AvereVfxtName = cluster.ClusterName
avereVfxt.NtpServers = cluster.NtpServers
avereVfxt.Timezone = cluster.Timezone
avereVfxt.DnsServer = cluster.DnsServer
avereVfxt.DnsDomain = cluster.DnsDomain
avereVfxt.DnsSearch = cluster.DnsSearch
if len(cluster.Proxy) > 0 {
avereVfxt.ProxyUri = cluster.Proxy
avereVfxt.ClusterProxyUri = cluster.Proxy
}
}
}
}
return avereVfxt, nil
}