func()

in teamcity/vcsroot.go [398:497]


func (r *vcsRootResource) readState(result client.VcsRoot) (vcsRootResourceModel, error) {
	var state vcsRootResourceModel
	state.Name = types.StringValue(result.Name)
	state.Id = types.StringValue(*result.Id)
	state.ProjectId = types.StringValue(result.Project.Id)

	if result.PollingInterval != nil {
		state.PollingInterval = types.Int64Value(int64(*result.PollingInterval))
	}

	props := make(map[string]string)
	for _, p := range result.Properties.Property {
		props[p.Name] = p.Value
	}
	state.Git = &GitPropertiesModel{
		Url:    types.StringValue(props["url"]),
		Branch: types.StringValue(props["branch"]),
	}

	if val, ok := props["push_url"]; ok {
		state.Git.PushUrl = types.StringValue(val)
	}

	if val, ok := props["teamcity:branchSpec"]; ok {
		state.Git.BranchSpec = types.StringValue(val)
	}

	if val, ok := props["reportTagRevisions"]; ok {
		v, err := strconv.ParseBool(val)
		if err != nil {
			return vcsRootResourceModel{}, err
		}
		state.Git.TagsAsBranches = types.BoolValue(v)
	}

	if val, ok := props["usernameStyle"]; ok {
		state.Git.UsernameStyle = types.StringValue(val)
	}

	if val, ok := props["submoduleCheckout"]; ok {
		state.Git.Submodules = types.StringValue(val)
	}

	if val, ok := props["userForTags"]; ok {
		state.Git.UsernameForTags = types.StringValue(val)
	}

	if val, ok := props["authMethod"]; ok {
		state.Git.AuthMethod = types.StringValue(val)
	}

	if val, ok := props["username"]; ok {
		state.Git.Username = types.StringValue(val)
	}

	if val, ok := props["teamcitySshKey"]; ok {
		state.Git.UploadedKey = types.StringValue(val)
	}

	if val, ok := props["privateKeyPath"]; ok {
		state.Git.PrivateKeyPath = types.StringValue(val)
	}

	if val, ok := props["ignoreKnownHosts"]; ok {
		v, err := strconv.ParseBool(val)
		if err != nil {
			return vcsRootResourceModel{}, err
		}
		state.Git.IgnoreKnownHosts = types.BoolValue(v)
	}

	if val, ok := props["serverSideAutoCrlf"]; ok {
		v, err := strconv.ParseBool(val)
		if err != nil {
			return vcsRootResourceModel{}, err
		}
		state.Git.ConvertCrlf = types.BoolValue(v)
	}

	if val, ok := props["agentGitPath"]; ok {
		state.Git.PathToGit = types.StringValue(val)
	}

	if val, ok := props["useAlternates"]; ok {
		state.Git.CheckoutPolicy = types.StringValue(val)
	}

	if val, ok := props["agentCleanPolicy"]; ok {
		state.Git.CleanPolicy = types.StringValue(val)
	}

	if val, ok := props["agentCleanFilesPolicy"]; ok {
		state.Git.CleanFilesPolicy = types.StringValue(val)
	}
	if val, ok := props["tokenId"]; ok {
		state.Git.TokenId = types.StringValue(val)
	}

	return state, nil
}