Skip to content

Feat: kusion should correctly handle empty spec in preview #1419

@ruquanzhao

Description

@ruquanzhao

What would you like to be added?

Currently, Kusion will throw a nil with logging No resource change found in this stack... for an empty spec during preview and apply.

However, passing an empty spec during the preview is a possible user path, and the result of the preview should indicate that all resources will be deleted.
Related Code:

// return immediately if no resource found in stack
// todo: if there is no resource, should still do diff job; for now, if output is json format, there is no hint
if sp == nil || len(sp.Resources) == 0 {
logutil.LogToAll(logger, runLogger, "Info", "No resource change found in this stack...")
return nil, nil
}

// return immediately if no resource found in stack
if spec == nil || len(spec.Resources) == 0 {
if o.Output != jsonOutput {
fmt.Println(pretty.GreenBold("\nNo resource found in this stack."))
}
return nil
}

Why is this needed?

It is actually valid to pass an empty spec for a preview, and Kusion should handle the preview result correctly.
This change should not affect how apply and destroy handle an empty spec.

Metadata

Metadata

Assignees

Labels

good first issueGood for newcomershelp wantedExtra attention is neededkind/featureCategorizes issue or PR as related to a new feature

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions