Commit graph

92 commits

Author SHA1 Message Date
Tim Sharpe
7cd0256a97 (rubocop) Fix Layout/SpaceInsideBlockBraces 2019-02-03 12:28:17 +11:00
Tim Sharpe
58f64b2843 (rubocop) Fix Style/TrailingCommaInHashLiteral 2019-02-03 12:22:41 +11:00
Tim Sharpe
7bafee35a7 (rubocop) Fix Style/IfUnlessModifier 2019-02-03 12:22:41 +11:00
Tim Sharpe
79f764560d (rubocop) Fix Style/AndOr 2019-02-03 12:22:41 +11:00
Tim Sharpe
fcf7154a8b (rubocop) Style/HashSyntax to use hash_rockets for consistency 2019-02-03 12:22:41 +11:00
Tim Sharpe
e0cbf89b8f (rubocop) Fix Style/FrozenStringLiteralComment 2019-02-03 12:22:41 +11:00
Tim Sharpe
1272343cdd (rubocop) Fix Style/StringLiterals 2019-02-03 10:42:28 +11:00
Nick Lewis
50eeb8f265 Add --json option for floaty get
This option will return structured output from `floaty get`, which is
easier to parse in some cases.

Example output:

```json
{
  "centos-7-x86_64": [
    "hpfhhf5aqxowfd8.delivery.puppetlabs.net",
    "k65euywltpz9fz0.delivery.puppetlabs.net"
  ],
  "centos-6-x86_64": [
    "oahunrurl7xis05.delivery.puppetlabs.net"
  ]
}
```
2018-01-02 10:23:54 -08:00
Casey Williams
ca5b0f5e8b Integrate nonstandard pooler service into vmfloaty 2017-10-12 12:53:04 -07:00
Casey Williams
e78bcc6216 Allow configuration of multiple services 2017-09-25 15:23:10 -07:00
Jesse Scott
6d57a1b5df Add basic bash completion script and framework for others 2017-07-27 11:27:16 -07:00
Brian Cain
5fa65b6400 Merge branch 'master' of github.com:briancain/vmfloaty 2017-03-14 08:58:51 -07:00
Brian Cain
cfbad921ce (maint) Be clearer about which password to use 2017-03-14 08:58:28 -07:00
Ryan McKern
5c794cd2b0 Use the Classname::VERSION pattern
Instead of having a hardcoded version identifier in multiple
locations, we can leverage the Classname::VERSION pattern to have a
single canonical version number that everything can reference
programmatically.
2017-03-01 14:02:58 -08:00
Brian Cain
313742ebfd Use actual hostname when creating snapshots in warn msg 2016-12-16 11:21:20 -08:00
Brian Cain
82afa94b6e Properly check for large pool size requests 2016-12-14 11:04:51 -08:00
Brian Cain
c9b718b379 (#40) Require a --force flag when users request large pools
Prior to this commit, a user could easily steam roll vmpooler by
accidentally adding an extra digit to their get request:

$ floaty get centos=100

Accidentially hitting enter on this would completely drain a centos
pool.

This commit updates that bevaior to force users to use the --force flag
if they really want to get more than 5 vms per template. 5 was choosen
because most vm pools at Puppet were in the 5-10 range.
2016-12-08 21:26:14 -08:00
Brian Cain
345300f58a (#41) Improve help text for vmfloaty
General clean up of the text around the --help flag for all vmfloaty
commands.
2016-12-08 21:15:01 -08:00
Brian Cain
b023339516 Move pretty status printing to Utils namespace and out of commands 2016-12-06 11:21:21 -08:00
Nick Lewis
7ee73083fd Show the status of pools with floaty status
Previously, `floaty status` would simply pretty-print the JSON output of
the status request to the pooler. That data requires additional
parsing, either human or machine, in order to be able to deduce any
meaningful information about the state of the pooler.

This commit updates `floaty status` to visually represent the state of
pools, indicating which pools have nodes missing or being built. It also
prints the status summary message returned by the pooler, providing an
easy way to tell if everything is okay.

By default, this command will only show the state of pools that aren't
full. If `--verbose` is passed, it will show all pools. If the complete
status information provided by the API is desired, the `--json` option
will print the raw JSON output, preserving the previous functionality.

This also updates the status command to exit non-zero if the status is
not ok.
2016-12-02 13:47:58 -08:00
Brian Cain
a6ff0515d3 Raise TokenError if none provided to Pooler.delete 2016-11-14 09:49:23 -08:00
Brian Cain
97e188cf6d (#36) Update floaty modify command to work with multiple hosts
Prior to this commit, you could only modify 1 host at a time with the
floaty modify command. This commit updates that command to allow users
to modify either all known token vms, or vms passed in as a comma
separated list.
2016-11-12 14:25:08 -08:00
Brian Cain
586f4f5c05 Abstract out getting all active token vms into Utils 2016-11-12 13:59:26 -08:00
Brian Cain
414ac22f40 (#37) floaty snapshot warns users about snapshots pending
Vmpooler works by generating a snapshot sha and queueing
the host for taking a snapshot. Depending on the load of
vmpooler, this could take quite a while to complete
making it a little confusing to users trying to use that
snapshot name right away. This commit adds a warning to
the snapshot command about taking snapshots.
2016-11-12 13:39:16 -08:00
Brian Cain
b51a549fe5 (#34) Raise TokenError on operations that require tokens
Prior to this commit, the Pooler class would raise an exception if the
token provided was nil and it attempted to make a request with Faraday.
This fixes that by catching when nil tokens are provided and instead
raising a TokenError to be caught by the consumer.
2016-10-07 18:10:52 -07:00
Brian Cain
c9e582c24a (maint) Catch TokenError from Auth class 2016-09-24 13:34:28 -07:00
Brian Cain
c62c1c7083 (#33) Handle more exceptions in vmfloaty command class
This commit adds more handling to the vmfloaty command class that deals
with exceptions thrown from the Pooler class.
2016-09-24 13:29:43 -07:00
Brian Cain
478761023d (maint) Don't raise error in command class 2016-09-24 13:13:27 -07:00
Brian Cain
8b8ac88578 (maint) Use correct exit code in token delete 2016-09-24 11:19:44 -07:00
Brian Cain
8da1deaf6b (#33) Handle Auth class errors
This commit updates the Auth class to properly raise an error when
something goes wrong. It also updates the vmpooler command class to
handle when those errors get raised.
2016-09-24 11:11:14 -07:00
Brian Cain
1d0fc42c80 (#31) Improve how users can provide arguments to commands
Prior this commit, some commands did not accept some options as an
argument and instead only worked through a flag. This commit updates
that behavior to allow users to specify some options through arguments,
while leaving the ability to continue to specify those options through
flags. Command line arguments take precedence over flags. It also fixes
an issue where if a snapshot sha was nil, it would submit a request to
take a snapshot to vmpooler.
2016-09-17 16:07:21 -07:00
Brian Cain
b07139b64c (#29) Don't system exit in Auth class
This commit cleans up the Auth class so that it no longer system exits
if an error occurs. Instead it will return nil if it could not properly
make the request, and it's on the consumer of the class to handle
error cases.
2016-09-15 08:47:38 -07:00
Brian Cain
93e842a2aa (#28) Add new ssh command to vmfloaty
This commit adds a new feature to vmfloaty. It grabs a single vm from
the pooler based on the os template provided and then attempts to ssh
into it from the host machine.
2016-08-26 10:01:08 -07:00
Brian Cain
64a88106a0 Format hosts if --notoken is used 2016-08-15 11:46:19 -07:00
Brian Cain
5f6cd1df1d (#25) Remove printing from delete method in pooler api 2016-07-09 19:53:12 -07:00
Brian Cain
2e24a455a3 (#19) Update vmfloaty to expect /api/v1 in URL for disk endpoint
This commit updates floaty to use a new endpoint to modify vms. Now you
can use the modify command to extend the disk space of a given vm. The
downside is this new endpoint only exists at /api/v1 on the pooler, and
the way Faraday works required an update to removing a leading slash for
each request endpoint. Users should update their URL in the floaty dot
file to include a /api/v1 at the end of the pooler url
2016-05-03 14:57:00 -07:00
Brian Cain
d4d6010eda Make force flag single dash 2015-11-21 12:43:32 -08:00
Brian Cain
8a3ad76b81 (#17) Add a force option for delete --all 2015-11-21 12:26:09 -08:00
Brian Cain
6447a5f217 (#12) List active vms for a given token
This commit updates the list command to add a flag --active. It will
list all active vms based on the given token as well as what template
they are and how long they've been running for. As a result, this also
updates how the delete --all command formats running vms.
2015-11-16 09:19:51 -08:00
Brian Cain
3b92f12ee9 Print obtained token during get command if no token exists 2015-11-16 09:04:52 -08:00
Brian Cain
f15df69eef Fix missing end 2015-11-15 14:35:16 -08:00
Brian Cain
c6cf86669a Cleanup vmfloaty library and command line functions 2015-11-15 14:24:24 -08:00
Brian Cain
3394a14ea0 (#14) Remove printing in auth library 2015-11-15 13:27:07 -08:00
Brian Cain
a0ba604006 (#11) Provide a way to delete all vms acquired by token
This commit adds a way for a user to delete all vms that were obtained
by a specific token. It will ask the user if they are sure before
deleting everything.
2015-11-13 11:52:01 -08:00
Brian Cain
bc4cff5363 (maint) Have pooler delete class take array
Prior to this commit, the pooler class was expecting a comma separated
string of hosts to delete. This commit updates that to expect hostnames
to be an array instead.
2015-11-10 11:42:56 -08:00
Brian Cain
fa92da5c05 (maint) Update token status to not require password 2015-11-05 13:28:37 -08:00
Brian Cain
b62cffa2cd (spec) Add format spec test 2015-10-21 22:21:13 -07:00
Brian Cain
3a17b418cf Add default for grabbing an os
If a user does not specify a number of vms with the get command (i.e.
does not include an = sign after the os), the get command will assume
the user just wants 1 vm.
2015-10-16 15:48:16 -07:00
Brian Cain
0effe55c31 Add failure message if modify command did not work 2015-10-14 17:17:00 -07:00
Brian Cain
2153507098 Merge branch 'master' of github.com:briancain/vmfloaty 2015-10-14 09:56:54 -07:00