Yeah that’s ok to do it in both clients, is better than current state +1 - Carlos Santana @csantanapr
> On Mar 24, 2020, at 9:21 PM, Nick Mitchell <moose...@gmail.com> wrote: > > i think the core problem is that there are several layers of collections, > but no bulk and no cursored operations against these collections: "all > actions", "actions in package"... retries and careful coding can work > around these. so it might be sufficient just do it "twice" (in the > openwhisk client npm, and in the go CLI). our code is open source. it's > still not 100% correct. we still get travis failures 1/100 times or so. > >> On Tue, Mar 24, 2020 at 9:09 PM Carlos Santana <csantan...@gmail.com> wrote: >> >> Hi Nick this is very useful even outside demos, I remember having a bash >> alias that it was 95% correct to delete all. >> >> Your proposing the heavy lifting is implemented on the server side >> controller API and the client/api just do a single http request “delete >> all” ? >> >> - Carlos Santana >> @csantanapr >> >>>> On Mar 24, 2020, at 7:16 PM, Nick Mitchell <moose...@gmail.com> wrote: >>> >>> we implemented this in https://github.com/kui-shell/oui >>> >>> some lessons learned. it's possible, but tricky, due to the loose >> semantics >>> of openwhisk delete-after-delete ordering, plus some bits of potential >> race >>> conditions with with list windowing. things may have improved since we >>> first implemented this, so keep that in mind: >>> >>> 1) if you have an action in a package; then you have to delete the >> actions >>> in the package before you can delete the package; but... if you issue the >>> package delete after the last action delete API call has returned, there >>> (at least used to be) a short window where the package delete would >> fail. i >>> think this depends upon the quorum configuration of your backend >> database. >>> so you may need to have retries here. >>> >>> 2) if you have more than 200 (or whatever the LIMIT config is of your >>> server) actions (c.f. packages, etc.), then you will need to manage the >>> windowing yourself. since the openwhisk API has no strong sense of >> cursors >>> (or does it now?), you have to be careful to fetch all windows before >>> initiating any deletes in any of the windows... >>> >>> there may be more issues, but this one was non-trivial to get right. >> after >>> doing all the work, "delete all" struck me as the kind of thing that >> should >>> be supported by the API directly. >>> >>> @starpit >>> >>>> On Tue, Mar 24, 2020 at 5:23 PM Will Plusnick <pwplu...@us.ibm.com> >> wrote: >>>> >>>> Hello all! >>>> >>>> I've frequently found myself having to clear a namespace after working >>>> on a demo or when experimenting. I'll have a number of artifacts left >>>> in a namespace that I don't want to preserve. Right now, unless I used >>>> wskdeploy for deployment, I'm stuck manually deleting all of the >>>> actions, rules, etc. I want to propose adding a command to the >>>> namespace subcommand in the cli for deleting all the artifacts in a >>>> namespace. >>>> >>>> I envision the syntax for the command going something like: >>>> >>>> $ wsk namespace delete all >>>> This command will delete all entities in the namespace <namespace>: >>>> <list of entities> >>>> Are you sure you want to proceed? Type '<namespace name>' to proceed: >>>> <user typed namespace name> >>>> action: >>>> <entity 1> is deleted >>>> <entity 2> is deleted >>>> .. >>>> trigger: >>>> <entity 3> is deleted >>>> <entity 4> is deleted >>>> .. >>>> etc >>>> >>>> The user would then be prompted whether they really want to delete all >>>> of the entities in the namespace. They would need to type in a "danger >>>> phrase" such as the name of the namespace to avoid accidentally running >>>> the command. This is similar to deleting a github repo. If anything >>>> but the "danger phrase" is received then the operation is aborted. >>>> >>>> This is a feature I would find personally useful, and would like to >>>> add it to the cli. Does the community at large feel this is a useful >>>> feature? >>>> >>>> Thanks, >>>> Will >>>> >>>> >>