instance-scheduler-on-aws
instance-scheduler-on-aws copied to clipboard
scheduler-cli is super frustrating
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).
- --profile-name is not documented in --help, so using it when having multiple account credentials isn't intuitive
- I'm not sure if the arguments are positional (e.g. --stack should be first)
- 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 - 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
- I finally got this to work, after a dozen and a half commands, due to insufficient help and difficult usage guidance from the command
- 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.[]')
- 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" } ] }
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.
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 Thanks for the feedback, will review the command line help option and update the documentation.