Class: PublishToWeb::Directory

Inherits:
Object
  • Object
show all
Defined in:
lib/publish_to_web/directory.rb

Defined Under Namespace

Classes: HttpResponseError

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(host:, config:, logger:) ⇒ Directory

Returns a new instance of Directory.



18
19
20
21
22
# File 'lib/publish_to_web/directory.rb', line 18

def initialize(host:, config:, logger:)
  @host   = host
  @config = config
  @logger = logger
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



16
17
18
# File 'lib/publish_to_web/directory.rb', line 16

def config
  @config
end

#hostObject (readonly)

Returns the value of attribute host.



16
17
18
# File 'lib/publish_to_web/directory.rb', line 16

def host
  @host
end

#loggerObject (readonly)

Returns the value of attribute logger.



16
17
18
# File 'lib/publish_to_web/directory.rb', line 16

def logger
  @logger
end

Instance Method Details

#directory_public_key_sha1Object



28
29
30
# File 'lib/publish_to_web/directory.rb', line 28

def directory_public_key_sha1
  info["pubkey_sha1"] if info
end

#hardware_idObject

Returns the stored hardware_id or generates a new one



47
48
49
# File 'lib/publish_to_web/directory.rb', line 47

def hardware_id
  config.hardware_id ||= "aal-#{SecureRandom.uuid}"
end

#license_keyObject

Returns the stored license_key or requests a new one



52
53
54
# File 'lib/publish_to_web/directory.rb', line 52

def license_key
  config.license_key ||= create_license_key
end

#node_nameObject



32
33
34
# File 'lib/publish_to_web/directory.rb', line 32

def node_name
  info["node_name"] if info
end

#private_keyObject



36
37
38
39
# File 'lib/publish_to_web/directory.rb', line 36

def private_key
  ensure_valid_identity!
  config.private_key
end

#public_keyObject



41
42
43
44
# File 'lib/publish_to_web/directory.rb', line 41

def public_key
  ensure_valid_identity!
  config.public_key
end

#remote_portObject



24
25
26
# File 'lib/publish_to_web/directory.rb', line 24

def remote_port
  info["port"] if info
end

#set_node_name(node_name) ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
# File 'lib/publish_to_web/directory.rb', line 60

def set_node_name(node_name)
  logger.info "Setting node name at directory to #{node_name}"
  response = HTTP.post url_for('set_node_name'), form: { license_key: license_key, node_name: node_name }
  if (200..299).include? response.status
    logger.info "New node name registered successfully"
    info refresh: true
    true
  else
    raise HttpResponseError.new("Failed to set new node name in directory", response)
  end
end

#set_versionObject



72
73
74
75
76
77
78
79
80
# File 'lib/publish_to_web/directory.rb', line 72

def set_version
  logger.info "Setting version at directory to #{version}"
  response = HTTP.post url_for('set_version'), form: { license_key: license_key, version: Shellwords.shellescape(version) }
  if (200..299).include? response.status
    true
  else
    raise HttpResponseError.new("Failed to set version in directory", response)
  end
end

#versionObject



56
57
58
# File 'lib/publish_to_web/directory.rb', line 56

def version
  "platform-alpha"
end