instance-scheduler-on-aws icon indicating copy to clipboard operation
instance-scheduler-on-aws copied to clipboard

scheduler-cli is super frustrating

Open sandwormusmc opened this issue 3 years ago • 3 comments

Some thoughts on scheduler-cli after installing it (had to run sudo, setup.py said to use -d but that option as well as --install-dir didn't work).

  1. --profile-name is not documented in --help, so using it when having multiple account credentials isn't intuitive
  2. I'm not sure if the arguments are positional (e.g. --stack should be first)
  3. If I use =, the command seems to work, sort of... if I use a space (e.g. --stack stackname), I get an error. The help doesn't mention how to pass arguments
  4. If I use "argumentname argumentvalue" the wrong argumentvalue is picked for argumentname. E.g. one of the attempts below I tried "scheduler-cli --profile-name=someprofile -s instance-scheduler describe-periods", and the script attempted to use instance-scheduler as the command
  5. I finally got this to work, after a dozen and a half commands, due to insufficient help and difficult usage guidance from the command
  6. coming from a Linux and AWS CLI background, having this CLI require the action be at the front of the command was a difficult mental block for me, as I'm used to putting "--" arguments that change the behavior in the front of a command, and items like filters after the "action" (e.g. aws --profile=something ec2 describe-instances --query 'Something[].' --filter 'SomethingElse.[]')
  7. The -h (or --help) seem to indicate that the arguments can go in front of the action (e.g. -h and --version). Why can these go in front but others can't?

mmoldvan  ~  projects  someprofile  keypairs  scheduler-cli --profile-name someprofile describe-periods usage: scheduler-cli [-h] [--version] {create-period,create-schedule,delete-period,delete-schedule,describe-periods,describe-schedule-usage,describe-schedules,update-period,update-schedule} ... scheduler-cli: error: invalid choice: 'someprofile' (choose from 'create-period', 'create-schedule', 'delete-period', 'delete-schedule', 'describe-periods', 'describe-schedule-usage', 'describe-schedules', 'update-period', 'update-schedule') mmoldvan  ~  projects  someprofile  keypairs  scheduler-cli --profile-name=someprofile describe-periods usage: scheduler-cli describe-periods [-h] [--name NAME] [--query QUERY] [--region REGION] --stack STACK [--profile-name PROFILE_NAME] scheduler-cli describe-periods: error: the following arguments are required: --stack/-s  mmoldvan  ~  projects  someprofile  keypairs  scheduler-cli --profile-name=someprofile -s instance-scheduler describe-periods usage: scheduler-cli [-h] [--version] {create-period,create-schedule,delete-period,delete-schedule,describe-periods,describe-schedule-usage,describe-schedules,update-period,update-schedule} ... scheduler-cli: error: invalid choice: 'instance-scheduler' (choose from 'create-period', 'create-schedule', 'delete-period', 'delete-schedule', 'describe-periods', 'describe-schedule-usage', 'describe-schedules', 'update-period', 'update-schedule')  mmoldvan  ~  projects  someprofile  keypairs  scheduler-cli --profile-name=someprofile -s=instance-scheduler describe-periods usage: scheduler-cli describe-periods [-h] [--name NAME] [--query QUERY] [--region REGION] --stack STACK [--profile-name PROFILE_NAME] scheduler-cli describe-periods: error: the following arguments are required: --stack/-s  mmoldvan  ~  projects  someprofile  keypairs  scheduler-cli --profile-name=someprofile --stacks=instance-scheduler describe-periods usage: scheduler-cli describe-periods [-h] [--name NAME] [--query QUERY] [--region REGION] --stack STACK [--profile-name PROFILE_NAME] scheduler-cli describe-periods: error: the following arguments are required: --stack/-s  mmoldvan  ~  projects  someprofile  keypairs  scheduler-cli --profile-name=someprofile --stacks instance-scheduler describe-periods usage: scheduler-cli [-h] [--version] {create-period,create-schedule,delete-period,delete-schedule,describe-periods,describe-schedule-usage,describe-schedules,update-period,update-schedule} ... scheduler-cli: error: invalid choice: 'instance-scheduler' (choose from 'create-period', 'create-schedule', 'delete-period', 'delete-schedule', 'describe-periods', 'describe-schedule-usage', 'describe-schedules', 'update-period', 'update-schedule')  mmoldvan  ~  projects  someprofile  keypairs  scheduler-cli --profile-name someprofile --stacks instance-scheduler describe-periods usage: scheduler-cli [-h] [--version] {create-period,create-schedule,delete-period,delete-schedule,describe-periods,describe-schedule-usage,describe-schedules,update-period,update-schedule} ... scheduler-cli: error: invalid choice: 'someprofile' (choose from 'create-period', 'create-schedule', 'delete-period', 'delete-schedule', 'describe-periods', 'describe-schedule-usage', 'describe-schedules', 'update-period', 'update-schedule')  mmoldvan  ~  projects  someprofile  keypairs  scheduler-cli --profile-name someprofile --stacks instance-scheduler describe-periods usage: scheduler-cli [-h] [--version] {create-period,create-schedule,delete-period,delete-schedule,describe-periods,describe-schedule-usage,describe-schedules,update-period,update-schedule} ... scheduler-cli: error: invalid choice: 'someprofile' (choose from 'create-period', 'create-schedule', 'delete-period', 'delete-schedule', 'describe-periods', 'describe-schedule-usage', 'describe-schedules', 'update-period', 'update-schedule')  mmoldvan  ~  projects  someprofile  keypairs  scheduler-cli --profile-name=someprofile --stacks instance-scheduler describe-periods usage: scheduler-cli [-h] [--version] {create-period,create-schedule,delete-period,delete-schedule,describe-periods,describe-schedule-usage,describe-schedules,update-period,update-schedule} ... scheduler-cli: error: invalid choice: 'instance-scheduler' (choose from 'create-period', 'create-schedule', 'delete-period', 'delete-schedule', 'describe-periods', 'describe-schedule-usage', 'describe-schedules', 'update-period', 'update-schedule')  mmoldvan  ~  projects  someprofile  keypairs  scheduler-cli --profile-name=someprofile --stacks=instance-scheduler describe-periods usage: scheduler-cli describe-periods [-h] [--name NAME] [--query QUERY] [--region REGION] --stack STACK [--profile-name PROFILE_NAME] scheduler-cli describe-periods: error: the following arguments are required: --stack/-s  mmoldvan  ~  projects  someprofile  keypairs  scheduler-cli --profile-name=someprofile --stack=instance-scheduler describe-periods usage: scheduler-cli describe-periods [-h] [--name NAME] [--query QUERY] [--region REGION] --stack STACK [--profile-name PROFILE_NAME] scheduler-cli describe-periods: error: the following arguments are required: --stack/-s  mmoldvan  ~  projects  someprofile  keypairs  scheduler-cli --profile-name=someprofile -s=instance-scheduler describe-periods usage: scheduler-cli describe-periods [-h] [--name NAME] [--query QUERY] [--region REGION] --stack STACK [--profile-name PROFILE_NAME] scheduler-cli describe-periods: error: the following arguments are required: --stack/-s  mmoldvan  ~  projects  someprofile  keypairs  scheduler-cli -s=instance-scheduler --profile-name=someprofile describe-periods usage: scheduler-cli describe-periods [-h] [--name NAME] [--query QUERY] [--region REGION] --stack STACK [--profile-name PROFILE_NAME] scheduler-cli describe-periods: error: the following arguments are required: --stack/-s  mmoldvan  ~  projects  someprofile  keypairs  scheduler-cli --stack=instance-scheduler --profile-name=someprofile describe-periods usage: scheduler-cli describe-periods [-h] [--name NAME] [--query QUERY] [--region REGION] --stack STACK [--profile-name PROFILE_NAME] scheduler-cli describe-periods: error: the following arguments are required: --stack/-s  mmoldvan  ~  projects  someprofile  keypairs  scheduler-cli --stack instance-scheduler --profile-name someprofile describe-periods usage: scheduler-cli [-h] [--version] {create-period,create-schedule,delete-period,delete-schedule,describe-periods,describe-schedule-usage,describe-schedules,update-period,update-schedule} ... scheduler-cli: error: invalid choice: 'instance-scheduler' (choose from 'create-period', 'create-schedule', 'delete-period', 'delete-schedule', 'describe-periods', 'describe-schedule-usage', 'describe-schedules', 'update-period', 'update-schedule')  mmoldvan  ~  projects  someprofile  keypairs  scheduler-cli --stack instance-scheduler --profile-name=someprofile describe-periods usage: scheduler-cli [-h] [--version] {create-period,create-schedule,delete-period,delete-schedule,describe-periods,describe-schedule-usage,describe-schedules,update-period,update-schedule} ... scheduler-cli: error: invalid choice: 'instance-scheduler' (choose from 'create-period', 'create-schedule', 'delete-period', 'delete-schedule', 'describe-periods', 'describe-schedule-usage', 'describe-schedules', 'update-period', 'update-schedule')  mmoldvan  ~  projects  someprofile  keypairs  scheduler-cli --stack=instance-scheduler --profile-name=someprofile describe-periods usage: scheduler-cli describe-periods [-h] [--name NAME] [--query QUERY] [--region REGION] --stack STACK [--profile-name PROFILE_NAME] scheduler-cli describe-periods: error: the following arguments are required: --stack/-s

FINAL WORKING COMMAND (seems arguments are positional, after all)

 mmoldvan  ~  projects  someprofile  keypairs  scheduler-cli describe-periods -s instance-scheduler --profile-name=someprofile { "Periods": [ { "Begintime": "00:00", "Description": "development systems schedule", "Endtime": "12:00", "Weekdays": "mon-fri", "Name": "dev", "Type": "period" }, { "Begintime": "21:00", "Description": "production systems schedule", "Endtime": "22:30", "Weekdays": "mon-fri", "Name": "prod", "Type": "period" } ] }

sandwormusmc avatar Apr 28 '21 04:04 sandwormusmc

Hi @sandwormusmc Reviewing your entire comment, looks like you were able to create the periods. Scheduler-cli instructions are provided in the documenation here, let me know if these instructions are not helpful or are missing some details which would have been helpful. We will review the documentation and update it.

gockle avatar Apr 29 '21 15:04 gockle

Yes, the help area in the command itself is lacking and it's unclear if the arguments are positional. I think other users of the CLI would find it helpful if the help and documentation were consistent, so rather than opening a browser and searching for the documentation, then the part that is relevant to what they are doing, it could be in the output of -h. Hope I explained that well.

sandwormusmc avatar Apr 29 '21 17:04 sandwormusmc

@sandwormusmc Thanks for the feedback, will review the command line help option and update the documentation.

gockle avatar Apr 30 '21 15:04 gockle