Skip to content

Commit

Permalink
porch cli: 'rpkg reject' should also reject proposals for deletion (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
natasha41575 committed Jan 31, 2023
1 parent 1cb21f9 commit 5a7e65f
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 6 deletions.
39 changes: 33 additions & 6 deletions commands/alpha/rpkg/reject/command.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ type runner struct {
ctx context.Context
cfg *genericclioptions.ConfigFlags
client rest.Interface
porchClient client.Client
Command *cobra.Command

// Flags
Expand All @@ -79,6 +80,12 @@ func (r *runner) preRunE(cmd *cobra.Command, args []string) error {
return errors.E(op, err)
}
r.client = client

porchClient, err := porch.CreateClientWithFlags(r.cfg)
if err != nil {
return errors.E(op, err)
}
r.porchClient = porchClient
return nil
}

Expand All @@ -89,14 +96,34 @@ func (r *runner) runE(cmd *cobra.Command, args []string) error {
namespace := *r.cfg.Namespace

for _, name := range args {
if err := porch.UpdatePackageRevisionApproval(r.ctx, r.client, client.ObjectKey{
pr := &v1alpha1.PackageRevision{}
if err := r.porchClient.Get(r.ctx, client.ObjectKey{
Namespace: namespace,
Name: name,
}, v1alpha1.PackageRevisionLifecycleDraft); err != nil {
messages = append(messages, err.Error())
fmt.Fprintf(r.Command.ErrOrStderr(), "%s failed (%s)\n", name, err)
} else {
fmt.Fprintf(r.Command.OutOrStderr(), "%s rejected\n", name)
}, pr); err != nil {
return errors.E(op, err)
}
switch pr.Spec.Lifecycle {
case v1alpha1.PackageRevisionLifecycleProposed:
if err := porch.UpdatePackageRevisionApproval(r.ctx, r.client, client.ObjectKey{
Namespace: namespace,
Name: name,
}, v1alpha1.PackageRevisionLifecycleDraft); err != nil {
messages = append(messages, err.Error())
fmt.Fprintf(r.Command.ErrOrStderr(), "%s failed (%s)\n", name, err)
} else {
fmt.Fprintf(r.Command.OutOrStderr(), "%s rejected\n", name)
}
case v1alpha1.PackageRevisionLifecycleDeletionProposed:
pr.Spec.Lifecycle = v1alpha1.PackageRevisionLifecyclePublished
if err := r.porchClient.Update(r.ctx, pr); err != nil {
messages = append(messages, err.Error())
fmt.Fprintf(r.Command.ErrOrStderr(), "%s failed (%s)\n", name, err)
} else {
fmt.Fprintf(r.Command.OutOrStderr(), "%s no longer proposed for deletion\n", name)
}
default:
fmt.Fprintf(r.Command.ErrOrStderr(), "cannot reject %s with lifecycle '%s'\n", name, pr.Spec.Lifecycle)
}
}

Expand Down
42 changes: 42 additions & 0 deletions e2e/testdata/porch/rpkg-lifecycle/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,48 @@ commands:
stdout: |
NAME PACKAGE WORKSPACENAME REVISION LATEST LIFECYCLE REPOSITORY
git-017a8366a5e0d9b35ae6dc489d4d3f68046d6034 lifecycle-package lifecycle v1 true DeletionProposed git
- args:
- alpha
- rpkg
- reject
- git-017a8366a5e0d9b35ae6dc489d4d3f68046d6034
- --namespace=rpkg-lifecycle
stderr: |
git-017a8366a5e0d9b35ae6dc489d4d3f68046d6034 no longer proposed for deletion
- args:
- alpha
- rpkg
- reject
- git-017a8366a5e0d9b35ae6dc489d4d3f68046d6034
- --namespace=rpkg-lifecycle
stderr: |
cannot reject git-017a8366a5e0d9b35ae6dc489d4d3f68046d6034 with lifecycle 'Published'
- args:
- alpha
- rpkg
- get
- git-017a8366a5e0d9b35ae6dc489d4d3f68046d6034
- --namespace=rpkg-lifecycle
stdout: |
NAME PACKAGE WORKSPACENAME REVISION LATEST LIFECYCLE REPOSITORY
git-017a8366a5e0d9b35ae6dc489d4d3f68046d6034 lifecycle-package lifecycle v1 true Published git
- args:
- alpha
- rpkg
- propose-delete
- git-017a8366a5e0d9b35ae6dc489d4d3f68046d6034
- --namespace=rpkg-lifecycle
stderr: |
git-017a8366a5e0d9b35ae6dc489d4d3f68046d6034 proposed for deletion
- args:
- alpha
- rpkg
- get
- git-017a8366a5e0d9b35ae6dc489d4d3f68046d6034
- --namespace=rpkg-lifecycle
stdout: |
NAME PACKAGE WORKSPACENAME REVISION LATEST LIFECYCLE REPOSITORY
git-017a8366a5e0d9b35ae6dc489d4d3f68046d6034 lifecycle-package lifecycle v1 true DeletionProposed git
- args:
- alpha
- rpkg
Expand Down

0 comments on commit 5a7e65f

Please sign in to comment.