Class: Bosh::Deployer::Configuration
- Inherits:
-
Object
- Object
- Bosh::Deployer::Configuration
- Defined in:
- lib/bosh/deployer/configuration.rb
Instance Attribute Summary collapse
-
#agent_properties ⇒ Object
Returns the value of attribute agent_properties.
-
#bosh_ip ⇒ Object
Returns the value of attribute bosh_ip.
-
#cloud_options ⇒ Object
Returns the value of attribute cloud_options.
-
#db ⇒ Object
Returns the value of attribute db.
-
#env ⇒ Object
Returns the value of attribute env.
-
#logger ⇒ Object
Returns the value of attribute logger.
-
#name ⇒ Object
Returns the value of attribute name.
-
#net_conf ⇒ Object
Returns the value of attribute net_conf.
-
#resources ⇒ Object
Returns the value of attribute resources.
-
#spec_properties ⇒ Object
Returns the value of attribute spec_properties.
-
#uuid ⇒ Object
Returns the value of attribute uuid.
Instance Method Summary collapse
- #agent ⇒ Object
- #agent_url ⇒ Object
-
#cloud ⇒ Object
rubocop:enable MethodLength.
-
#configure(config) ⇒ Object
rubocop:disable MethodLength.
- #networks ⇒ Object
- #task_checkpoint ⇒ Object
Instance Attribute Details
#agent_properties ⇒ Object
Returns the value of attribute agent_properties.
3 4 5 |
# File 'lib/bosh/deployer/configuration.rb', line 3 def agent_properties @agent_properties end |
#bosh_ip ⇒ Object
Returns the value of attribute bosh_ip.
3 4 5 |
# File 'lib/bosh/deployer/configuration.rb', line 3 def bosh_ip @bosh_ip end |
#cloud_options ⇒ Object
Returns the value of attribute cloud_options.
3 4 5 |
# File 'lib/bosh/deployer/configuration.rb', line 3 def end |
#db ⇒ Object
Returns the value of attribute db.
3 4 5 |
# File 'lib/bosh/deployer/configuration.rb', line 3 def db @db end |
#env ⇒ Object
Returns the value of attribute env.
3 4 5 |
# File 'lib/bosh/deployer/configuration.rb', line 3 def env @env end |
#logger ⇒ Object
Returns the value of attribute logger.
3 4 5 |
# File 'lib/bosh/deployer/configuration.rb', line 3 def logger @logger end |
#name ⇒ Object
Returns the value of attribute name.
3 4 5 |
# File 'lib/bosh/deployer/configuration.rb', line 3 def name @name end |
#net_conf ⇒ Object
Returns the value of attribute net_conf.
3 4 5 |
# File 'lib/bosh/deployer/configuration.rb', line 3 def net_conf @net_conf end |
#resources ⇒ Object
Returns the value of attribute resources.
3 4 5 |
# File 'lib/bosh/deployer/configuration.rb', line 3 def resources @resources end |
#spec_properties ⇒ Object
Returns the value of attribute spec_properties.
3 4 5 |
# File 'lib/bosh/deployer/configuration.rb', line 3 def spec_properties @spec_properties end |
#uuid ⇒ Object
Returns the value of attribute uuid.
3 4 5 |
# File 'lib/bosh/deployer/configuration.rb', line 3 def uuid @uuid end |
Instance Method Details
#agent ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/bosh/deployer/configuration.rb', line 69 def agent uri = URI.parse(agent_url) user, password = uri.userinfo.split(':', 2) uri.userinfo = nil uri.host = bosh_ip Bosh::Agent::HTTPClient.new(uri.to_s, { 'user' => user, 'password' => password, 'reply_to' => uuid, }) end |
#agent_url ⇒ Object
81 82 83 |
# File 'lib/bosh/deployer/configuration.rb', line 81 def agent_url ['properties']['agent']['mbus'] end |
#cloud ⇒ Object
rubocop:enable MethodLength
61 62 63 64 65 66 67 |
# File 'lib/bosh/deployer/configuration.rb', line 61 def cloud if @cloud.nil? @cloud = Bosh::Clouds::Provider.create( ['plugin'], ['properties']) end @cloud end |
#configure(config) ⇒ Object
rubocop:disable MethodLength
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/bosh/deployer/configuration.rb', line 7 def configure(config) plugin = config['cloud']['plugin'] config = deep_merge(load_defaults(plugin), config) @base_dir = config['dir'] FileUtils.mkdir_p(@base_dir) @name = config['name'] = config['cloud'] @net_conf = config['network'] @bosh_ip = @net_conf['ip'] @resources = config['resources'] @env = config['env'] @logger = Logger.new(config['logging']['file'] || STDOUT) @logger.level = Logger.const_get(config['logging']['level'].upcase) @logger.formatter = ThreadFormatter.new apply_spec = config['apply_spec'] @spec_properties = apply_spec['properties'] @agent_properties = apply_spec['agent'] @db = Sequel.sqlite migrate_cpi @db.create_table :instances do primary_key :id column :name, :text, unique: true, null: false column :uuid, :text column :stemcell_cid, :text column :stemcell_sha1, :text column :stemcell_name, :text column :config_sha1, :text column :vm_cid, :text column :disk_cid, :text end Sequel::Model.plugin :validation_helpers Bosh::Clouds::Config.configure(self) require 'bosh/deployer/models/instance' ['properties']['agent']['mbus'] ||= 'https://vcap:[email protected]:6868' @disk_model = nil @cloud = nil @networks = nil end |
#networks ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/bosh/deployer/configuration.rb', line 85 def networks return @networks if @networks @networks = { 'bosh' => { 'cloud_properties' => @net_conf['cloud_properties'], 'netmask' => @net_conf['netmask'], 'gateway' => @net_conf['gateway'], 'ip' => @net_conf['ip'], 'dns' => @net_conf['dns'], 'type' => @net_conf['type'], 'default' => %w(dns gateway) } } if @net_conf['vip'] @networks['vip'] = { 'ip' => @net_conf['vip'], 'type' => 'vip', 'cloud_properties' => {} } end @networks end |
#task_checkpoint ⇒ Object
110 111 112 113 114 115 |
# File 'lib/bosh/deployer/configuration.rb', line 110 def task_checkpoint # Bosh::Clouds::Config (bosh_cli >= 0.5.1) delegates task_checkpoint # method to periodically check if director task is cancelled, # so we need to define a void method in Bosh::Deployer::Config to avoid # NoMethodError exceptions. end |