Class: Bosh::Deployer::InstanceManager::Openstack
- Inherits:
-
Object
- Object
- Bosh::Deployer::InstanceManager::Openstack
- Defined in:
- lib/bosh/deployer/instance_manager/openstack.rb
Instance Method Summary collapse
- #agent_services_ip ⇒ Object
- #check_dependencies ⇒ Object
- #client_services_ip ⇒ Object
-
#disk_size(cid) ⇒ Integer
Size in MiB.
-
#initialize(instance_manager, config, logger) ⇒ Openstack
constructor
A new instance of Openstack.
- #internal_services_ip ⇒ Object
- #persistent_disk_changed? ⇒ Boolean
- #remote_tunnel ⇒ Object
- #start ⇒ Object
- #stop ⇒ Object
- #update_spec(spec) ⇒ Object
Constructor Details
#initialize(instance_manager, config, logger) ⇒ Openstack
Returns a new instance of Openstack.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/bosh/deployer/instance_manager/openstack.rb', line 8 def initialize(instance_manager, config, logger) @instance_manager = instance_manager @logger = logger @config = config properties = config.['properties'] @registry = Registry.new( properties['registry']['endpoint'], 'openstack', properties['openstack'], instance_manager, logger, ) ssh_key, ssh_port, ssh_user, ssh_wait = ssh_properties(properties) ssh_server = SshServer.new(ssh_user, ssh_key, ssh_port, logger) @remote_tunnel = RemoteTunnel.new(ssh_server, ssh_wait, logger) end |
Instance Method Details
#agent_services_ip ⇒ Object
62 63 64 65 |
# File 'lib/bosh/deployer/instance_manager/openstack.rb', line 62 def agent_services_ip logger.info('discovering agent services ip') discover_agent_services_ip end |
#check_dependencies ⇒ Object
44 45 46 |
# File 'lib/bosh/deployer/instance_manager/openstack.rb', line 44 def check_dependencies # nothing to check, move on... end |
#client_services_ip ⇒ Object
57 58 59 60 |
# File 'lib/bosh/deployer/instance_manager/openstack.rb', line 57 def client_services_ip logger.info('discovering client services ip') discover_client_services_ip end |
#disk_size(cid) ⇒ Integer
Returns size in MiB.
72 73 74 75 |
# File 'lib/bosh/deployer/instance_manager/openstack.rb', line 72 def disk_size(cid) # OpenStack stores disk size in GiB but we work with MiB instance_manager.cloud.openstack.volumes.get(cid).size * 1024 end |
#internal_services_ip ⇒ Object
67 68 69 |
# File 'lib/bosh/deployer/instance_manager/openstack.rb', line 67 def internal_services_ip config.internal_services_ip end |
#persistent_disk_changed? ⇒ Boolean
77 78 79 80 81 82 83 84 |
# File 'lib/bosh/deployer/instance_manager/openstack.rb', line 77 def persistent_disk_changed? # since OpenStack stores disk size in GiB and we use MiB there # is a risk of conversion errors which lead to an unnecessary # disk migration, so we need to do a double conversion # here to avoid that requested = (config.resources['persistent_disk'] / 1024.0).ceil * 1024 requested != disk_size(instance_manager.state.disk_cid) end |
#remote_tunnel ⇒ Object
27 28 29 |
# File 'lib/bosh/deployer/instance_manager/openstack.rb', line 27 def remote_tunnel @remote_tunnel.create(instance_manager.client_services_ip, registry.port) end |
#start ⇒ Object
48 49 50 |
# File 'lib/bosh/deployer/instance_manager/openstack.rb', line 48 def start registry.start end |
#stop ⇒ Object
52 53 54 55 |
# File 'lib/bosh/deployer/instance_manager/openstack.rb', line 52 def stop registry.stop instance_manager.save_state end |
#update_spec(spec) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/bosh/deployer/instance_manager/openstack.rb', line 31 def update_spec(spec) properties = spec.properties properties['openstack'] = config.spec_properties['openstack'] || config.['properties']['openstack'].dup properties['openstack']['registry'] = config.['properties']['registry'] properties['openstack']['stemcell'] = config.['properties']['stemcell'] spec.delete('networks') end |