Class: VagrantPlugins::Ventriloquist::Service
- Inherits:
-
Object
- Object
- VagrantPlugins::Ventriloquist::Service
- Defined in:
- lib/ventriloquist/service.rb
Direct Known Subclasses
VagrantPlugins::Ventriloquist::Services::ElasticSearch, VagrantPlugins::Ventriloquist::Services::MailCatcher, VagrantPlugins::Ventriloquist::Services::Memcached, VagrantPlugins::Ventriloquist::Services::MySql, VagrantPlugins::Ventriloquist::Services::PostgreSQL, VagrantPlugins::Ventriloquist::Services::Redis, VagrantPlugins::Ventriloquist::Services::RethinkDB
Constant Summary collapse
- CONTAINER_IDS_PATH =
'/var/lib/ventriloquist/cids'
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
-
#docker_client ⇒ Object
readonly
Returns the value of attribute docker_client.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
-
#initialize(name, config, docker_client) ⇒ Service
constructor
A new instance of Service.
- #provision(machine) ⇒ Object
Constructor Details
#initialize(name, config, docker_client) ⇒ Service
Returns a new instance of Service.
8 9 10 |
# File 'lib/ventriloquist/service.rb', line 8 def initialize(name, config, docker_client) @name, @config, @docker_client = name, config, docker_client end |
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
6 7 8 |
# File 'lib/ventriloquist/service.rb', line 6 def config @config end |
#docker_client ⇒ Object (readonly)
Returns the value of attribute docker_client.
6 7 8 |
# File 'lib/ventriloquist/service.rb', line 6 def docker_client @docker_client end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
6 7 8 |
# File 'lib/ventriloquist/service.rb', line 6 def name @name end |
Instance Method Details
#provision(machine) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/ventriloquist/service.rb', line 12 def provision(machine) cidfile = "#{CONTAINER_IDS_PATH}/#{@name}" if @docker_client.container_running?("$(cat #{cidfile})") machine.env.ui.info("Service '#{@name}' already running") else machine.env.ui.info("Starting '#{@name}' service") machine.communicate.sudo("mkdir -p #{CONTAINER_IDS_PATH}") @config[:cidfile] = cidfile @config[:daemonize] = true @config[:name] = @name @config[:auto_assign_name] = true @docker_client.run_container(@config) end end |