func()

in internal/provider/diskpool_data_source.go [267:363]


func (d *diskpoolDataSource) Read(ctx context.Context, req datasource.ReadRequest, resp *datasource.ReadResponse) {

	var state diskPoolResourceModel
	// Read Terraform configuration data into the model
	resp.Diagnostics.Append(req.Config.Get(ctx, &state)...)

	diskpool, res, err := d.client.DiskPoolApi.GetDiskPool(d.authCtx, state.ID.ValueString())
	if err != nil {
		resp.Diagnostics.AddError(
			"Unable to Read BackupDR DiskPool",
			err.Error(),
		)
		return
	}

	if res.StatusCode != 200 {
		resp.Diagnostics.AddError(
			"Unable to Read BackupDR DiskPool",
			res.Status,
		)
		return
	}

	// Map response body to model
	state = diskPoolResourceModel{
		Name:                types.StringValue(diskpool.Name),
		ID:                  types.StringValue(diskpool.Id),
		Pooltype:            types.StringValue(diskpool.Pooltype),
		State:               types.StringValue(diskpool.State),
		Srcid:               types.StringValue(diskpool.Srcid),
		Status:              types.StringValue(diskpool.Status),
		Mdiskgrp:            types.StringValue(diskpool.Mdiskgrp),
		Pooltypedisplayname: types.StringValue(diskpool.Pooltypedisplayname),
		Href:                types.StringValue(diskpool.Href),
		Usedefaultsa:        types.BoolValue(diskpool.Usedefaultsa),
		Immutable:           types.BoolValue(diskpool.Immutable),
		Metadataonly:        types.BoolValue(diskpool.Metadataonly),
		Stale:               types.BoolValue(diskpool.Stale),
		Modifydate:          types.Int64Value(diskpool.Modifydate),
		Warnpct:             types.Int64Value(int64(diskpool.Warnpct)),
		Safepct:             types.Int64Value(int64(diskpool.Safepct)),
		Udsuid:              types.Int64Value(int64(diskpool.Udsuid)),
		FreeMb:              types.Int64Value(diskpool.FreeMb),
		UsageMb:             types.Int64Value(diskpool.UsageMb),
		CapacityMb:          types.Int64Value(diskpool.CapacityMb),
		Syncdate:            types.Int64Value(diskpool.Syncdate),
	}

	for _, prop := range diskpool.Properties {
		state.Properties = append(state.Properties, keyValueRestModel{
			Key:   types.StringValue(prop.Key),
			Value: types.StringValue(prop.Value),
		})
	}

	if diskpool.Cluster != nil {
		state.ApplianceClusterID = types.StringValue(diskpool.Cluster.Clusterid)
		state.Cluster = &ClusterRest{
			Clusterid:       types.StringValue(diskpool.Cluster.Clusterid),
			Serviceaccount:  types.StringValue(diskpool.Cluster.Serviceaccount),
			Zone:            types.StringValue(diskpool.Cluster.Zone),
			Region:          types.StringValue(diskpool.Cluster.Region),
			Projectid:       types.StringValue(diskpool.Cluster.Projectid),
			Version:         types.StringValue(diskpool.Cluster.Version),
			Name:            types.StringValue(diskpool.Cluster.Name),
			Type:            types.StringValue(diskpool.Cluster.Type_),
			Ipaddress:       types.StringValue(diskpool.Cluster.Ipaddress),
			Publicip:        types.StringValue(diskpool.Cluster.Publicip),
			Secureconnect:   types.BoolValue(diskpool.Cluster.Secureconnect),
			PkiBootstrapped: types.BoolValue(diskpool.Cluster.PkiBootstrapped),
			Supportstatus:   types.StringValue(diskpool.Cluster.Supportstatus),
			ID:              types.StringValue(diskpool.Cluster.Id),
			Href:            types.StringValue(diskpool.Cluster.Href),
			Syncdate:        types.Int64Value(diskpool.Cluster.Syncdate),
			Stale:           types.BoolValue(diskpool.Cluster.Stale),
		}
	}

	if diskpool.Vaultprops != nil {
		state.Vaultprops = &vaultPropsRest{
			Bucket:      types.StringValue(diskpool.Vaultprops.Bucket),
			Compression: types.BoolValue(diskpool.Vaultprops.Compression),
			Region:      types.StringValue(diskpool.Vaultprops.Region),
			ID:          types.StringValue(diskpool.Vaultprops.Id),
			Href:        types.StringValue(diskpool.Vaultprops.Href),
			Syncdate:    types.Int64Value(diskpool.Vaultprops.Syncdate),
			Stale:       types.BoolValue(diskpool.Vaultprops.Stale),
		}
	}

	// Save data into Terraform state
	resp.Diagnostics.Append(resp.State.Set(ctx, &state)...)
	if resp.Diagnostics.HasError() {
		return
	}

}