Skip to content

Commit

Permalink
[Internal] Remove dependency to the openapi package of the Go SDK (#…
Browse files Browse the repository at this point in the history
…1676)

## Changes

This PR removes the dependency to the `databricks-sdk-go/openapi`
package by copying the struct and functions that are needed in a new
`schema/spec.go` file.

The reason to remove this dependency is that it is being deprecated.
Copying the code in the `cli` repo seems reasonable given that it only
uses a couple of very small structs.

## Tests

Verified that CLI code can be properly generated after this change.
  • Loading branch information
renaudhartert-db authored Aug 14, 2024
1 parent f32902d commit 7aaaee2
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 14 deletions.
3 changes: 1 addition & 2 deletions bundle/schema/docs.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (

"github.com/databricks/cli/bundle/config"
"github.com/databricks/cli/libs/jsonschema"
"github.com/databricks/databricks-sdk-go/openapi"
)

// A subset of Schema struct
Expand Down Expand Up @@ -63,7 +62,7 @@ func UpdateBundleDescriptions(openapiSpecPath string) (*Docs, error) {
if err != nil {
return nil, err
}
spec := &openapi.Specification{}
spec := &Specification{}
err = json.Unmarshal(openapiSpec, spec)
if err != nil {
return nil, err
Expand Down
3 changes: 1 addition & 2 deletions bundle/schema/openapi.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,11 @@ import (
"strings"

"github.com/databricks/cli/libs/jsonschema"
"github.com/databricks/databricks-sdk-go/openapi"
)

type OpenapiReader struct {
// OpenAPI spec to read schemas from.
OpenapiSpec *openapi.Specification
OpenapiSpec *Specification

// In-memory cache of schemas read from the OpenAPI spec.
memo map[string]jsonschema.Schema
Expand Down
19 changes: 9 additions & 10 deletions bundle/schema/openapi_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"testing"

"github.com/databricks/cli/libs/jsonschema"
"github.com/databricks/databricks-sdk-go/openapi"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
Expand Down Expand Up @@ -45,7 +44,7 @@ func TestReadSchemaForObject(t *testing.T) {
}
}
`
spec := &openapi.Specification{}
spec := &Specification{}
reader := &OpenapiReader{
OpenapiSpec: spec,
memo: make(map[string]jsonschema.Schema),
Expand Down Expand Up @@ -103,7 +102,7 @@ func TestReadSchemaForArray(t *testing.T) {
}
}
}`
spec := &openapi.Specification{}
spec := &Specification{}
reader := &OpenapiReader{
OpenapiSpec: spec,
memo: make(map[string]jsonschema.Schema),
Expand Down Expand Up @@ -149,7 +148,7 @@ func TestReadSchemaForMap(t *testing.T) {
}
}
}`
spec := &openapi.Specification{}
spec := &Specification{}
reader := &OpenapiReader{
OpenapiSpec: spec,
memo: make(map[string]jsonschema.Schema),
Expand Down Expand Up @@ -198,7 +197,7 @@ func TestRootReferenceIsResolved(t *testing.T) {
}
}
}`
spec := &openapi.Specification{}
spec := &Specification{}
reader := &OpenapiReader{
OpenapiSpec: spec,
memo: make(map[string]jsonschema.Schema),
Expand Down Expand Up @@ -248,7 +247,7 @@ func TestSelfReferenceLoopErrors(t *testing.T) {
}
}
}`
spec := &openapi.Specification{}
spec := &Specification{}
reader := &OpenapiReader{
OpenapiSpec: spec,
memo: make(map[string]jsonschema.Schema),
Expand Down Expand Up @@ -282,7 +281,7 @@ func TestCrossReferenceLoopErrors(t *testing.T) {
}
}
}`
spec := &openapi.Specification{}
spec := &Specification{}
reader := &OpenapiReader{
OpenapiSpec: spec,
memo: make(map[string]jsonschema.Schema),
Expand Down Expand Up @@ -327,7 +326,7 @@ func TestReferenceResolutionForMapInObject(t *testing.T) {
}
}
}`
spec := &openapi.Specification{}
spec := &Specification{}
reader := &OpenapiReader{
OpenapiSpec: spec,
memo: make(map[string]jsonschema.Schema),
Expand Down Expand Up @@ -397,7 +396,7 @@ func TestReferenceResolutionForArrayInObject(t *testing.T) {
}
}
}`
spec := &openapi.Specification{}
spec := &Specification{}
reader := &OpenapiReader{
OpenapiSpec: spec,
memo: make(map[string]jsonschema.Schema),
Expand Down Expand Up @@ -460,7 +459,7 @@ func TestReferenceResolutionDoesNotOverwriteDescriptions(t *testing.T) {
}
}
}`
spec := &openapi.Specification{}
spec := &Specification{}
reader := &OpenapiReader{
OpenapiSpec: spec,
memo: make(map[string]jsonschema.Schema),
Expand Down
11 changes: 11 additions & 0 deletions bundle/schema/spec.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package schema

import "github.com/databricks/cli/libs/jsonschema"

type Specification struct {
Components *Components `json:"components"`
}

type Components struct {
Schemas map[string]*jsonschema.Schema `json:"schemas,omitempty"`
}

0 comments on commit 7aaaee2

Please sign in to comment.