Class: Sqlfire::ServerInstance

Inherits:
Shared::Instance show all
Defined in:
lib/vas/sqlfire/server_instances.rb

Overview

A server instance

Instance Attribute Summary collapse

Attributes inherited from Shared::Instance

#name

Attributes included from Shared::Deletable

#collection

Attributes inherited from Shared::Resource

#location, #security

Instance Method Summary collapse

Methods inherited from Shared::Instance

#group, #installation, #live_configurations, #node_instances, #pending_configurations, #start, #stop

Methods included from Shared::Deletable

#delete

Methods inherited from Shared::StateResource

#start, #state, #stop

Constructor Details

#initialize(location, client) ⇒ ServerInstance

Returns a new instance of ServerInstance.



124
125
126
# File 'lib/vas/sqlfire/server_instances.rb', line 124

def initialize(location, client)
  super(location, client, Group, Installation, ServerLiveConfigurations, ServerPendingConfigurations, ServerNodeInstance, 'server-node-instance')
end

Instance Attribute Details

#bind_addressString (readonly)

Returns the property in a node’s metadata used to determine the address that the server binds to for peer-to-peer communication. If nil, the server uses the node’s hostname.

Returns:

  • (String)

    the property in a node’s metadata used to determine the address that the server binds to for peer-to-peer communication. If nil, the server uses the node’s hostname



97
98
99
# File 'lib/vas/sqlfire/server_instances.rb', line 97

def bind_address
  @bind_address
end

#client_bind_addressString (readonly)

Returns the property in a node’s metadata used to determine the address that the server binds to for client communication. If nil, the server uses localhost. Only takes effect if run_netserver is true.

Returns:

  • (String)

    the property in a node’s metadata used to determine the address that the server binds to for client communication. If nil, the server uses localhost. Only takes effect if run_netserver is true



101
102
103
# File 'lib/vas/sqlfire/server_instances.rb', line 101

def client_bind_address
  @client_bind_address
end

#client_portInteger (readonly)

Returns the port that the server listens on for client connections. Only takes effect if run_netserver is true.

Returns:

  • (Integer)

    the port that the server listens on for client connections. Only takes effect if run_netserver is true



105
106
107
# File 'lib/vas/sqlfire/server_instances.rb', line 105

def client_port
  @client_port
end

#critical_heap_percentageInteger (readonly)

Returns critical heap percentage as a percentage of the old generation heap. nil if the server uses the default.

Returns:

  • (Integer)

    critical heap percentage as a percentage of the old generation heap. nil if the server uses the default



109
110
111
# File 'lib/vas/sqlfire/server_instances.rb', line 109

def critical_heap_percentage
  @critical_heap_percentage
end

#initial_heapString (readonly)

Returns The initial heap size of the server’s JVM. nil if the default is used.

Returns:

  • (String)

    The initial heap size of the server’s JVM. nil if the default is used



112
113
114
# File 'lib/vas/sqlfire/server_instances.rb', line 112

def initial_heap
  @initial_heap
end

#jvm_optionsString[] (readonly)

Returns The JVM options that are passed to the server’s JVM when it is started.

Returns:

  • (String[])

    The JVM options that are passed to the server’s JVM when it is started



115
116
117
# File 'lib/vas/sqlfire/server_instances.rb', line 115

def jvm_options
  @jvm_options
end

#max_heapString (readonly)

Returns The max heap size of the server’s JVM. nil if the default is used.

Returns:

  • (String)

    The max heap size of the server’s JVM. nil if the default is used



118
119
120
# File 'lib/vas/sqlfire/server_instances.rb', line 118

def max_heap
  @max_heap
end

#run_netserverBoolean (readonly)

Returns true if the server runs a netserver that can service thin clients, otherwise false.

Returns:

  • (Boolean)

    true if the server runs a netserver that can service thin clients, otherwise false



121
122
123
# File 'lib/vas/sqlfire/server_instances.rb', line 121

def run_netserver
  @run_netserver
end

Instance Method Details

#reloadvoid

This method returns an undefined value.

Reloads the instance’s details from the server



173
174
175
176
177
178
179
180
181
182
183
# File 'lib/vas/sqlfire/server_instances.rb', line 173

def reload
  super
  @bind_address = details['bind-address']
  @client_bind_address = details['client-bind-address']
  @client_port = details['client-port']
  @critical_heap_percentage = details['critical-heap-percentage']
  @initial_heap = details['initial-heap']
  @jvm_options = details['jvm-options']
  @max_heap = details['max-heap']
  @run_netserver = details['run-netserver']
end

#to_sString

Returns a string representation of the instance.

Returns:

  • (String)

    a string representation of the instance



186
187
188
# File 'lib/vas/sqlfire/server_instances.rb', line 186

def to_s
  "#<#{self.class} name='#{name}' bind_address='#@bind_address' client_bind_address='#@client_bind_address' client_port='#@client_port' critical_heap_percentage='#@critical_heap_percentage' initial_heap='#@initial_heap' jvm_options='#@jvm_options' max_heap='#@max_heap' run_netserver='#@run_netserver'>"
end

#update(options = {}) ⇒ void

This method returns an undefined value.

Updates the instance using the supplied options.

Parameters:

  • options (Hash) (defaults to: {})

    optional configuration for the instance

Options Hash (options):

  • The ('bind-address'String)

    property in a node’s metadata to use to determine the address that the server binds to for peer-to-peer communication. If omitted or nil, the configuration will not be changed. If set to an empty string the server will use the node’s hostname

  • The ('client-bind-address'String)

    property in a node’s metadata to use to determine the address that the server binds to for client communication. If omitted or nil, the configuration will not be changed. If set to an empty string the server will bind to localhost

  • The ('client-port'Integer)

    port that the server listens on for client connections. If omitted or nil, the configuration will not be changed

  • Critical ('critical-heap-percentage'Integer)

    heap threshold as a percentage of the old generation heap. Valid value are 0-100 inclusive. If omitted or nil, the configuration will not be changed

  • The ('initial-heap'String)

    intial heap size to be used by the server’s JVM. If omitted or nil, the configuration will not be changed. If set to an empty string the JVM’s default is used

  • :installation (String)

    The installation to be used by the instance. If omitted or nil, the configuration will not be changed.

  • The ('jvm-options'String[])

    JVM options that are passed to the server’s JVM when it is started. If omitted or nil, the configuration will not be chanaged

  • The ('max-heap'String)

    maximum heap size to be used by the server’s JVM. If omitted or nil, the configuration will not be changed. If set to an empty string the JVM’s default is used

  • Whether ('run-netserver'Boolean)

    the server should run a netserver that can service thin clients. If omitted or nil, the configuration will not be changed



154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
# File 'lib/vas/sqlfire/server_instances.rb', line 154

def update(options = {})
  payload = {}

  options.each { |key, value|
    if (UPDATE_PAYLOAD_KEYS.include?(key))
      payload[key] = value
    end
  }

  if (options.has_key? :installation)
    payload[:installation] = options[:installation].location
  end

  client.post(location, payload)
  reload
end