Class: Engineyard::Local::Middleware::Tag

Inherits:
Object
  • Object
show all
Includes:
Helpers::Network
Defined in:
lib/engineyard-local/middleware/tag.rb

Instance Method Summary collapse

Methods included from Helpers::Network

#networks, #proposed_ip

Constructor Details

#initialize(app, env) ⇒ Tag

Returns a new instance of Tag.



9
10
11
# File 'lib/engineyard-local/middleware/tag.rb', line 9

def initialize(app, env)
  @app, @env = app, env
end

Instance Method Details

#call(env) ⇒ Object



13
14
15
16
17
# File 'lib/engineyard-local/middleware/tag.rb', line 13

def call(env)
  @env[:ui].info I18n.t("eylocal.tag")
  tag_vm(env)
  @app.call(env)
end

#set_extra_data(env, key, value) ⇒ Object



27
28
29
# File 'lib/engineyard-local/middleware/tag.rb', line 27

def set_extra_data(env, key, value)
  env[:vm].driver.execute("setextradata", env[:vm].uuid, key, value)
end

#tag_vm(env) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/engineyard-local/middleware/tag.rb', line 19

def tag_vm(env)
  value = env[:root_path].to_s

  # mark the vm as ey-local for listing
  set_extra_data(env, Local.config[:managed_vm_key], value)
  set_extra_data(env, Local.config[:network_ip_key], proposed_ip)
end