Commit graph

472 commits

Author SHA1 Message Date
Nate Wolfe
56f0896d48
(maint) Don't require configuration file for get
Make the vmpooler_fallback optional for cases when there's no
configuration file and everything is specified on the CLI invocation.
2020-09-24 12:32:29 -07:00
Samuel Beaulieu
6deadb2267 Fix tests 2020-09-24 10:00:15 -05:00
Samuel Beaulieu
3a60ffbdbd (maint) Don't require config file for list --active
Will fallback to printing ABS information, which is less than what you
get if vmpooler_fallback is available
2020-09-24 09:46:22 -05:00
Christopher Thorn
5c8aa13081 (maint) Add vmpooler_fallback to the get service check
Previously the vmpooler_fallback setting was not being recognizied, this
PR will fix it.
2020-09-23 15:06:24 -07:00
Jesse Scott
c5b9e1d184
Update completion scripts for service subcommands 2020-09-22 12:07:11 -07:00
Belén
1e81c78a5b
Merge pull request #100 from puppetlabs/v1-release
Bump to version 1.0.0
2020-09-22 09:15:43 -07:00
d9b5bb5e89
Bump to version 1.0.0 2020-09-22 12:02:56 -04:00
bc1ea2e2d9
Merge pull request #90 from scotje/add_zsh_completions_new
Add tab completion script for zsh and fix bash completion for ABS services
2020-09-22 11:56:31 -04:00
Samuel Beaulieu
2b56448d50 Fix pretty print when multiple backend services
are returned by ABS. Added test with vmpooler and nspooler result
2020-09-22 09:53:13 -05:00
Samuel Beaulieu
45f0ef031e Fix spec tests for ABS pretty print
ABS now returns the ABS job_id on the first line, then every
vmpooler hostname indented. It queries them from vmpooler to
get the metadata like lifetime etc
2020-09-22 09:15:15 -05:00
013325b7a6
Merge pull request #99 from puppetlabs/fix-returned-abs-json
(maint) Fix for ABS PR#306 that includes json responses
2020-09-22 08:57:08 -04:00
Jesse Scott
8546c1c4b6
WIP: fixup specs after rebase 2020-09-21 16:59:04 -07:00
Jesse Scott
e269d71fea
Add README for zsh tab completion 2020-09-21 16:58:50 -07:00
Jesse Scott
dee735e017
(FIXUP) Collect hostnames in array before outputting 2020-09-21 16:55:09 -07:00
Jesse Scott
57e7542f73
Add tab completion script for zsh
This commit adds a new tab completion script for zsh. It also
fixes the completion script for bash to work with ABS backends.
2020-09-21 16:55:09 -07:00
Jesse Scott
b31f44fb40
Add --hostnameonly option to floaty list --active
Adds an option to the `floaty list` subcommand so that, when listing
active hosts, floaty will output just the hostnames, without any
additional information or formatting. Hostnames will be separated by a
newline.

This functionality is primarily intended for consuming by tooling (such
as the tab completion scripts).
2020-09-21 16:55:07 -07:00
Jesse Scott
40072e90e4
Fix print_to_stderr option for Utils.pretty_print_hosts
Previously this option had no effect on the output. This commit makes
the option effective and also refactors the tests for this method to
cover this case.
2020-09-21 16:54:17 -07:00
Samuel Beaulieu
cd7c0fae13 Adding spec tests for #list 2020-09-21 15:20:22 -05:00
Samuel Beaulieu
4df970b21f (maint) Fix for ABS PR#306 that includes json responses
Before this change ABS sometiimes returned a string of JSON with escaped
quotes, that had to be parsed again
With this change, floaty should accept both the legacy and the new
full JSON responses.
2020-09-21 14:46:00 -05:00
mattkirby
f3cd540455
Merge pull request #98 from puppetlabs/better-abs-config
(maint) Support any vmpooler for ABS via vmpooler_fallback
2020-09-17 10:08:05 -07:00
mattkirby
81c6e48528
Merge pull request #97 from puppetlabs/types-docs
(DIO-991) Add service command
2020-09-17 08:58:24 -07:00
mattkirby
e34964be00
Merge pull request #96 from puppetlabs/dio-911
( DIO-911) Include job_id in ABS --json output
2020-09-17 08:55:43 -07:00
9e61247cfe
Add service command
This change creates the `floaty service` command with two valid
arguemnts: types and examples

- `floaty service types` prints out a list of valid types for use in a
  service definition in ~/.vmfloaty.yml
- `floaty service examples` prints out example configuration files for
  both a single service and multiple services.
2020-09-16 12:55:42 -04:00
Samuel Beaulieu
5333158bdc (maint) Support any vmpooler for ABS via vmpooler_fallback
Before this change, the fallback vmpooler for ABS had to be named
'vmpooler' and it only supported one. With this new code, users can
set a key within an 'abs' service type called vmpooler_fallback that
points to any other service configured in the ~/.vmfloaty.yml config
file. If not set, the appropriate error message is returned, with
an example configuration.
Added the various use cases for the config to the unit tests
2020-09-16 11:25:49 -05:00
Samuel Beaulieu
4b7cbbf0e5 fix abs spec tests 2020-09-15 11:21:58 -05:00
mattkirby
512adb4af1
Merge pull request #94 from puppetlabs/fix-abs-vmpooler
ABS enables fallback to vmpooler for some scenarios
2020-09-11 13:27:02 -07:00
Samuel Beaulieu
c65b72d86b Document the ~/.vmfloaty content for ABS usage 2020-09-11 13:38:33 -05:00
Samuel Beaulieu
dbf6c54173 The main goal for this PR is to enable using all of the vmfloaty scenarios when
the service is set to ABS. Since ABS does not implement all the services, it
fallsback on vmpooler when needed (example increasing the lifetime value)

- Validating JSON can be parsed before parsing, as it used to throw uncaught errors
- self.list_active is returning hosts for both nspooler and vmpooler but was returning
job_ids for abs. Now standardized the returned values for use in the "modify" cli,
and created a separate list_active_job_ids for the cases where a job_id list is expected

- added a way to change the service in place for methods that do not make sense
for ABS, and instead fallback on using vmpooler in those cases:
1. summary
2. modify
3. snapshot
4. revert
5. disk
For those methods in the class itself, raising a NoMethodError, in case it is used directly

- query now returns the queue info. For information on VMs, users should use --service vmpooler
- pretty_print_hosts (used in list, and delete scenarios) will now print the job_id
ABS information and indent each VM within and print it's metadata. Useful for
knowing the running time and extending it.

- added a new utility method to get the config for the vmpooler service, used for the fallback
- added a passthrough for the vmpooler token to use when running ABS. This enables
vmpooler to track the VMs used by each token (user). Also aligns the list between
both ABS and vmpooler. Fixes the bit-bar issue where the VMs do not appear when created
via ABS
2020-09-11 13:38:24 -05:00
5a0640c515
Merge pull request #91 from nwolfe/maint/remove-warning
(maint) Remove warning about missing configuration file
2020-09-03 07:06:05 -04:00
Nate Wolfe
cb1ea8247b
WIP (DIO-911) Include job_id in ABS --json output
Prior to this commit, when using --service=abs and --json the job_id
value is not included in the JSON blob, which makes it difficult for
calling code to grab both the job_id and the hosts without text
processing the log messages printed to standard error.
2020-08-24 16:07:49 -07:00
Nate Wolfe
9a44cc480e
(maint) Add --user CLI option on delete and list subcommands
To support usage without a configuration file.
2020-08-24 12:11:06 -07:00
Nate Wolfe
8341a5f45d
(maint) Mention configuration file in CLI help text description
So users can be aware of the configuration file since it will no
longer be emitted as a warning during CLI invocation.
2020-08-21 15:45:10 -07:00
Nate Wolfe
04c73a970d
(maint) Remove warning about missing configuration file
Previously the CLI would emit a warning about missing configuration
file, but a configuration file does not appear to be a requirement, at
least based on the documentation and the fact that everything can be
specified directly on the command line.

This commit simply removes the warning.

Users will no longer get a warning when doing things like `floaty
--version`, `floaty help`, and any other subcommand.
2020-08-21 14:38:04 -07:00
mattkirby
b9bb08e3c0
Merge pull request #89 from puppetlabs/release_0111
Update version for 0.11.1 release
2020-08-20 14:07:45 -07:00
kirby@puppetlabs.com
3f10e987b4 Update version for 0.11.1 release 2020-08-20 14:06:08 -07:00
mattkirby
d3d6ebeb1a
Merge pull request #86 from McdonaldSeanp/json_output
Json output for delete/list + better ABS error handling
2020-08-20 14:02:53 -07:00
mattkirby
13fee7ef13
Merge pull request #87 from jarretlavallee/fix/master/nspooler
Fix the argument list for nonstandardpooler
2020-08-20 14:01:38 -07:00
mattkirby
5436f54258
Merge pull request #88 from cthorn42/maint/master/no_config_file_non_vmpooler_service_fix
(maint) Fix using ABS service without a .vmfloaty.yml file
2020-08-20 14:00:48 -07:00
Christopher Thorn
701534872d (maint) Fix using ABS service without a .vmfloaty.yml file
If you do not use a config file, and define everything on the command line,
previously the service always defaulted to vmpooler. Even if you requested ABS.
This PR fixes that, now we'll see if the config has no service defined and we
defined on the command line a service, we'll use that service.
2020-08-20 11:37:20 -07:00
Jarret Lavallee
e684933525 (maint) Fix the argument list for nonstandardpooler
Prior to this commit, 7 arguments would be sent into the `retrieve`
method in nonstandardpooler. There were only 6 arguments in the method
definition so an error would be thrown. This commit adds the `ondemand`
argument to the `retrieve` method, but does not utilize it.
2020-08-13 12:37:09 -06:00
Sean P. McDonald
1eaa80706c
(maint) Fail in ABS when queue requests don't return 200/202
When ABS returns an http status code other than 200 or 202, the ABS code
should fail
2020-08-12 16:14:02 -05:00
Sean P. McDonald
d22e2b4194
(new-feature) Add json option to list/delete command
This commit adds an option `--json` to the list and delete commands. When the
json flag is used the commands will print output as formatted JSON rather than
pretty printed strings.
2020-08-12 16:13:58 -05:00
b944760c93
Merge pull request #85 from puppetlabs/release_0110
Bump version for 0.11.0 release
2020-08-12 14:54:57 -04:00
kirby@puppetlabs.com
b44b9c6e98 Bump version for 0.11.0 release 2020-08-12 11:47:58 -07:00
mattkirby
3b91d6f582
Merge pull request #84 from austb/print-debug-to-stderr
Print all non-success output to STDERR
2020-08-12 11:34:11 -07:00
Austin Blatt
35faeab6be Move logger instance to class var in FloatyLogger
This moves the instance of the logger class to a class variable in the
`FloatyLogger` class and provides three class methods to log with in the
rest of the project `FloatyLogger.info`, `FloatyLogger.warn`, and
`FloatyLogger.error`.
2020-08-12 09:57:18 -07:00
barriserloth
8ec90007ca Use Logger for non-result output
This adds the Logger class for log output, all of which goes to STDERR,
and uses puts to send only the command result to STDOUT.
2020-08-11 12:41:22 -07:00
Austin Blatt
4755343df2 Print all non-success output to STDERR 2020-08-10 16:20:25 -07:00
mattkirby
d843066a56
Merge pull request #83 from puppetlabs/maint_update_travis
Update travis.yml
2020-08-06 12:22:59 -07:00
Belen Bustamante
309929f8d8 Update travis.yml 2020-08-06 11:50:43 -07:00