class Bosh::Registry::InstanceManager
Public Instance Methods
delete_settings(instance_id)
click to toggle source
Seletes instance settings @param [String] instance_id instance id
# File lib/bosh/registry/instance_manager.rb, line 37 def delete_settings(instance_id) get_instance(instance_id).destroy end
instance_ips(instance_id)
click to toggle source
Get the list of IPs belonging to this instance @param [String] instance_id instance id
# File lib/bosh/registry/instance_manager.rb, line 44 def instance_ips(instance_id) raise NotImplemented, "Default implementation of InstanceManager does not support " \ "IPs retrieval. Create IaaS-specific subclass and override this method " \ "if IPs verfication is needed." end
read_settings(instance_id, remote_ip = nil)
click to toggle source
Reads instance settings @param [String] instance_id instance id @param [optional, String] remote_ip If this IP is provided,
check will be performed to see if it instance id actually has this IP address according to the IaaS.
# File lib/bosh/registry/instance_manager.rb, line 28 def read_settings(instance_id, remote_ip = nil) check_instance_ips(remote_ip, instance_id) if remote_ip get_instance(instance_id).settings end
update_settings(instance_id, settings)
click to toggle source
Updates instance settings @param [String] instance_id instance id (instance record
will be created in DB if it doesn't already exist)
@param [String] settings New settings for the instance
# File lib/bosh/registry/instance_manager.rb, line 12 def update_settings(instance_id, settings) params = { :instance_id => instance_id } instance = Models::RegistryInstance[params] || Models::RegistryInstance.new(params) instance.settings = settings instance.save end
Private Instance Methods
check_instance_ips(ip, instance_id)
click to toggle source
# File lib/bosh/registry/instance_manager.rb, line 52 def check_instance_ips(ip, instance_id) return if ip == "127.0.0.1" actual_ips = instance_ips(instance_id) unless actual_ips.include?(ip) raise InstanceError, "Instance IP mismatch, expected IP is " \ "'%s', actual IP(s): '%s'" % [ ip, actual_ips.join(", ") ] end end
get_instance(instance_id)
click to toggle source
# File lib/bosh/registry/instance_manager.rb, line 62 def get_instance(instance_id) instance = Models::RegistryInstance[:instance_id => instance_id] if instance.nil? raise InstanceNotFound, "Can't find instance '#{instance_id}'" end instance end