INNER CODE UNIT · Go

crudWithContext

dikhan/terraform-provider-openapi · openapi/common.go:18

func crudWithContext(crudFunc func(data *schema.ResourceData, i interface{}) error, timeoutFor string, resourceName string) func(context.Context, *schema.ResourceData, interface{}) diag.Diagnostics {
	return func(ctx context.Context, data *schema.ResourceData, i interface{}) diag.Diagnostics {
		errChan := make(chan error, 1)
		go func() { errChan <- crudFunc(data, i) }()
		select {
		case <-ctx.Done():
			return diag.Errorf("%s: '%s' %s timeout is %s", ctx.Err(), resourceName, timeoutFor, data.Timeout(timeoutFor))
		case err := <-errChan:
			if err != nil {
				return diag.FromErr(err)
			}
		}
		return nil
	}
}

func checkHTTPStatusCode(openAPIResource SpecResource, res *http.Response, expectedHTTPStatusCodes []int) error {
	if !responseContainsExpectedStatus(expectedHTTPStatusCodes, res.StatusCode) {

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…