cloud-nuke
cloud-nuke copied to clipboard
General UX Enhancement Ideas
Currently aws-nuke outputs its prompt as follows:
INFO[2018-02-18T12:02:57-07:00] Retrieving all active AWS resources
INFO[2018-02-18T12:04:05-07:00] The following AWS resources are going to be nuked:
INFO[2018-02-18T12:04:05-07:00] * ec2-i-023397578dd4e6940-eu-west-2
INFO[2018-02-18T12:04:05-07:00] * ec2-i-0d13286852fecf36f-eu-west-2
INFO[2018-02-18T12:04:05-07:00] * ebs-vol-095e6aabf8f382f20-eu-west-2
INFO[2018-02-18T12:04:05-07:00] * ebs-vol-0f6d2742b48945347-eu-west-2
INFO[2018-02-18T12:04:05-07:00] * ebs-vol-02af799dda2ba7e18-eu-west-2
INFO[2018-02-18T12:04:05-07:00] * asg-confluent-tools-OYr86p-0-sa-east-1
INFO[2018-02-18T12:04:05-07:00] * asg-confluent-tools-OYr86p-1-sa-east-1
INFO[2018-02-18T12:04:05-07:00] * asg-confluent-tools-OYr86p-2-sa-east-1
...
There are a few opportunities for improvement here:
- It would be helpful to see this output summarized by region.
- There's extra line between each line of output which causes more scrolling
- The
INFO[2018-02-18T12:04:05-07:00]prefix doesn't add much value in this context. It'd be nice to have it without for the interactive prompt. Perhaps for automated runs it returns. - Some summary stats (ASGs: 5, EC2 Instance: 5) by region and overall would be helpful.
None of these are critical, just suggestions for future improvements.
On the positive side, I really like the manual prompt the tool requires, however the prompt should include the AWS account number. Better yet, it'd be nice if there were some way to get the AWS Account Name (e.g. phxdevops).
Also, when I first ran the tool, I ran aws-nuke expecting to get the output I would expect if I ran aws-nuke --help but instead it immediately began running. That might be jarring for some users, especially on such a destructive tool where you then worry "oh no, did I just trigger this? Am I in the right account?"
One other thought. The UI just pauses for a long time (~45 secs in my case) on:
Retrieving all active AWS resources
It'd be nice to output resources one a time as an indicator that the tool is making progress.
A better CLI user experience is definitely something we're gonna be iterating on. I'd have this worked on once I get through #11 and #12. In the meantime, any other ideas are welcome
@tonerdo As we discussed real-time today, this is not an immediate priority so we can handle later if applicable.
Also, the nuking operation is so destructive that you want extra assurances you are actually deleting the right account. It would be very helpful to show the AWS Account ID that you plan to nuke. Or better yet, you can confirm the nuke by entering the AWS Account ID. That forces you to both be authenticated to the right account, and copy and paste that Acocount ID in.
It would be very helpful to show the AWS Account ID that you plan to nuke
+1
Also, show the root email address and account nickname (if one has been set).
Or better yet, you can confirm the nuke by entering the AWS Account ID.
Great idea!
Here's another one. I received the following output in cloud-nuke:
INFO[2018-03-28T10:09:55-07:00] Deleting all Auto Scaling Groups in region eu-central-1
INFO[2018-03-28T10:09:56-07:00] Deleted Auto Scaling Group: zk-centos-test1wmu5A-0
INFO[2018-03-28T10:09:56-07:00] Deleted Auto Scaling Group: zk-centos-test1wmu5A-1
INFO[2018-03-28T10:09:57-07:00] Deleted Auto Scaling Group: zk-centos-test1wmu5A-2
INFO[2018-03-28T10:09:57-07:00] Deleted Auto Scaling Group: zk-centos-testvsYKgZ-0
INFO[2018-03-28T10:09:57-07:00] Deleted Auto Scaling Group: zk-centos-testvsYKgZ-1
INFO[2018-03-28T10:09:58-07:00] Deleted Auto Scaling Group: zk-centos-testvsYKgZ-2
But then it just hung there indefinitely. I suspect it's readying the next operation and not actually stukc, but make sure that the user always see some output clarifying what's happening and setting the expectation that you should expect to wait. Ideally, some intermediate updates help assure you the program isn't frozen.
Quite a lot of UI improvements have been recently submitted:
- Using the
ptermlibrary to make the UI prettier. - Displaying the final result set in a tabular format.
- Removing unnecessary debug levels from printing unless users want it in debug level mode.
Closing this PR but we can re-open when we think we need more UI improvements.
One potential improvement we can make is to support both "bullet point" visualization vs. "tabular" visualization because in circle-ci output, the table is not sized properly.