Skip to content

Vagrant plugin for monitoring vm state changes and executing actions on changes

License

Notifications You must be signed in to change notification settings

pr3sto/vagrant-state-change-listener

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vagrant-state-change-listener

Vagrant plugin for listening vm state changes and executing actions on changes.

Gem Version

Installation

foo@bar:~$ vagrant plugin install vagrant-state-change-listener

Usage

Use listen-state-changes command to listen vm state changes. When state is changed (e.g., from running to stopped), command executes given actions (shell commands).

Command syntax

foo@bar:~$ vagrant listen-state-changes <vm name> <actions> [options]

<vm name> - name of virtual machine

<actions> - shell commands to execute after state change

Options

-f (--first-state) FSTATE - If vm changes it's state from FSTATE, plugin executes <actions>

-s (--second-state) SSTATE - If vm changes it's state to SSTATE, plugin executes <actions>"

-l (--latency SECONDS) - Delay (in seconds) between checking for changes. Default: 1 sec

-a (--auto-stop) - Stop listening after first state change (after executing <actions>)

Examples

foo@bar:~$ vagrant listen-state-changes default 'echo Changed!'

When vm with name default changes it's state, Changed! is printed to console. Terminal is blocked until the user manually terminates command


foo@bar:~$ vagrant listen-state-changes default 'echo Changed!' -a

When vm with name default changes it's state, Changed! is printed to console and command terminates


foo@bar:~$ vagrant listen-state-changes default 'echo Changed!' -f running

When vm with name default changes it's state from running to any other state, Changed! is printed to console


foo@bar:~$ vagrant listen-state-changes default 'echo Changed!' -s stopped

When vm with name default changes it's state to stopped from any other state, Changed! is printed to console


foo@bar:~$ vagrant listen-state-changes default 'echo Changed!' -f running -s stopped

When vm with name default changes it's state from running to stopped, Changed! is printed to console


foo@bar:~$ vagrant listen-state-changes default 'echo Changed!' -l 10

When vm with name default changes it's state, Changed! is printed to console. Delay between state checking - 10 sec\

Example

# in other terminal: $ vagrant up

foo@bar:~$ vagrant listen-state-changes default 'echo Changed!'

# in other terminal: $ vagrant destroy

VM state changed from 'running' to 'stopped'
Executing actions: 'echo Changed!'
Changed!
Actions executed successfully: true

VM state changed from 'stopped' to 'not created'
Executing actions: 'echo Changed!'
Changed!
Actions executed successfully: true

With --auto-stop option:

# in other terminal: $ vagrant up

foo@bar:~$ vagrant listen-state-changes default 'echo Changed! -a

# in other terminal: $ vagrant destroy

VM state changed from 'running' to 'stopped'
Executing actions: 'echo Changed!'
Changed!
Actions executed successfully: true
Stopping listening ...

foo@bar:~$

About

Vagrant plugin for monitoring vm state changes and executing actions on changes

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages