Annotate With Subpackages

Delete Setters And Subst With Subpkgs
This commit is contained in:
Phani Teja Marupaka
2020-09-02 13:33:50 -07:00
parent 678ae12115
commit 0dc36a4f7c
9 changed files with 373 additions and 85 deletions

View File

@@ -135,18 +135,18 @@ func (dd DeleterDefinition) Filter(object *yaml.RNode) (*yaml.RNode, error) {
}
definitions, err := object.Pipe(yaml.Lookup(openapi.SupplementaryOpenAPIFieldName, "definitions"))
if err != nil || definitions == nil {
if err != nil {
return nil, err
}
// return error if the setter to be deleted doesn't exist
if definitions.Field(key) == nil {
return nil, errors.Errorf("%s with name %s does not exist", defType, dd.Name)
if definitions == nil || definitions.Field(key) == nil {
return nil, errors.Errorf("%s %q does not exist", defType, dd.Name)
}
subst := SubstReferringDefinition(definitions, key)
if subst != "" {
return nil, errors.Errorf("%s is used in substitution %s, please delete the parent substitution first", defType, subst)
return nil, errors.Errorf("%s %q is used in substitution %q, please delete the parent substitution first", defType, dd.Name, subst)
}
_, err = definitions.Pipe(yaml.FieldClearer{Name: key})

View File

@@ -75,8 +75,10 @@ func TestDeleterCreator_Delete(t *testing.T) {
if !assert.NoError(t, err) {
t.FailNow()
}
dc.OpenAPIPath = openAPI.Name()
dc.ResourcesPath = resource.Name()
err = dc.Delete(openAPI.Name(), resource.Name())
err = dc.Delete()
if !assert.NoError(t, err) {
t.FailNow()
}

View File

@@ -17,24 +17,34 @@ type DeleterCreator struct {
// DefinitionPrefix is the prefix of the OpenAPI definition type
DefinitionPrefix string
RecurseSubPackages bool
OpenAPIFileName string
// Path to openAPI file
OpenAPIPath string
// Path to resources folder
ResourcesPath string
}
func (d DeleterCreator) Delete(openAPIPath, resourcesPath string) error {
func (d DeleterCreator) Delete() error {
dd := setters2.DeleterDefinition{
Name: d.Name,
DefinitionPrefix: d.DefinitionPrefix,
}
if err := dd.DeleteFromFile(openAPIPath); err != nil {
if err := dd.DeleteFromFile(d.OpenAPIPath); err != nil {
return err
}
// Load the updated definitions
if err := openapi.AddSchemaFromFile(openAPIPath); err != nil {
if err := openapi.AddSchemaFromFile(d.OpenAPIPath); err != nil {
return err
}
// Update the resources with the deleter reference
inout := &kio.LocalPackageReadWriter{PackagePath: resourcesPath}
inout := &kio.LocalPackageReadWriter{PackagePath: d.ResourcesPath, PackageFileName: d.OpenAPIFileName}
return kio.Pipeline{
Inputs: []kio.Reader{inout},
Filters: []kio.Filter{kio.FilterAll(