Class: PuavoRest::LtspServer

Inherits:
Host show all
Includes:
LocalStore
Defined in:
resources/ltsp_servers.rb

Constant Summary

Constant Summary

Constants inherited from LdapModel

LdapModel::ESCAPES, LdapModel::ESCAPE_RE, LdapModel::KRB_LOCK, LdapModel::PROF

Instance Attribute Summary

Attributes inherited from LdapModel

#ldap_attr_store, #serialize_attrs

Class Method Summary (collapse)

Instance Method Summary (collapse)

Methods included from LocalStore

close_connection, included, #local_store, #local_store_del, #local_store_expire, #local_store_get, #local_store_set

Methods inherited from Host

#boot_duration, by_mac_address!, #grub_boot_configuration, #grub_configuration, #grub_header, #grub_kernel_arguments, #grub_kernel_version, #grub_type, #instance_key, #localboot?, #netboot?, #organisation, #preferred_boot_image, #save_boot_time, specialized_instance!

Methods inherited from LdapModel

#[], #[]=, _class_store, #add, #add_validation_error, after, all, #as_json, #assert_validation, before, by_attr, by_attr!, by_dn, by_dn!, by_dn_array, by_id, by_id!, by_ldap_attr, by_ldap_attr!, callable_from_instance, #changed?, class_store, clear_setup, computed_attr, connection, #create!, create_connection, create_filter_lambda, #dirty?, dn_bind, #empty?, escape, filter, from_ldap_hash, #get_own, #get_raw, inherited, #initialize, is_dn, is_not_found?, ldap_attrs, ldap_map, #ldap_merge!, ldap_op, #ldap_set, #link, #merge, #new?, #object_model, organisation, organisation?, pretty_attrs_to_ldap, raw_by_dn, raw_filter, sasl_bind, #save!, search, search_filters, #set, settings, settings=, setup, skip_serialize, #to_json, #to_ldap_hash, #transform, #update!, #validate, #validate!, #validate_unique, #write_raw

Constructor Details

This class inherits a constructor from LdapModel

Class Method Details

+ (Object) all_with_state



121
122
123
124
125
# File 'resources/ltsp_servers.rb', line 121

def self.all_with_state
  all.select do |server|
    not server.state.nil?
  end
end

+ (Object) base_filter

Bootservers are saved to same ldap branch as ltsp servers so we must filter with type too



104
105
106
# File 'resources/ltsp_servers.rb', line 104

def self.base_filter
  "(puavoDeviceType=ltspserver)"
end

+ (Object) by_fqdn!(fqdn)



116
117
118
119
# File 'resources/ltsp_servers.rb', line 116

def self.by_fqdn!(fqdn)
  hostname = fqdn.split(".").first
  by_hostname!(hostname)
end

+ (Object) by_hostname(hostname)



108
109
110
# File 'resources/ltsp_servers.rb', line 108

def self.by_hostname(hostname)
  by_attr(:hostname, hostname)
end

+ (Object) by_hostname!(hostname)



112
113
114
# File 'resources/ltsp_servers.rb', line 112

def self.by_hostname!(hostname)
  by_attr!(:hostname, hostname)
end

+ (Object) ldap_base



98
99
100
# File 'resources/ltsp_servers.rb', line 98

def self.ldap_base
  "ou=Servers,ou=Hosts,#{ organisation["base"] }"
end

Instance Method Details

- (Object) mountpoints



157
158
159
160
161
162
163
# File 'resources/ltsp_servers.rb', line 157

def mountpoints
  schools_mountpoints = []
  schools.each do |school|
    schools_mountpoints += school.mountpoints
  end
  schools_mountpoints
end

- (Object) preferred_image



148
149
150
151
152
153
154
# File 'resources/ltsp_servers.rb', line 148

def preferred_image
   if get_own(:preferred_image).nil?
     organisation.preferred_image
   else
     get_own(:preferred_image).strip
   end
end

- (Object) save_state(state)



131
132
133
134
135
# File 'resources/ltsp_servers.rb', line 131

def save_state(state)
  state["updated"] = Time.now.to_i
  local_store[state_key] = state.to_json
  state
end

- (Object) schools



165
166
167
# File 'resources/ltsp_servers.rb', line 165

def schools
  @schools ||= school_dns.map{ |dn| School.by_dn(dn) }
end

- (Object) state



137
138
139
140
# File 'resources/ltsp_servers.rb', line 137

def state
  json = local_store[state_key]
  JSON.parse(json) if json
end

- (Object) state_key



127
128
129
# File 'resources/ltsp_servers.rb', line 127

def state_key
  "ltsp_server:#{ hostname }:state"
end

- (Object) timezone



169
170
171
172
173
174
175
# File 'resources/ltsp_servers.rb', line 169

def timezone
  if get_own(:timezone).nil?
    organisation.timezone
  else
    get_own(:timezone)
  end
end

- (Object) to_hash



142
143
144
145
146
# File 'resources/ltsp_servers.rb', line 142

def to_hash
  o = super
  o["state"] = state
  o
end