Class: Cradlepoint::Router

Inherits:
CradlepointObject show all
Defined in:
lib/cradlepoint/router.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from CradlepointObject

build_new_url, #build_new_url, #build_url, build_url, ecm_object_blob?, #ecm_object_blob?, #params, #successful_response?, successful_response?

Constructor Details

#initialize(id = nil, options = {}) ⇒ Router

Returns a new instance of Router.



10
11
12
13
# File 'lib/cradlepoint/router.rb', line 10

def initialize(id = nil, options = {})
  self.id = id
  options.each { |k, v| send("#{ k }=", v) if v }
end

Instance Attribute Details

#config_statusObject

Returns the value of attribute config_status.



4
5
6
# File 'lib/cradlepoint/router.rb', line 4

def config_status
  @config_status
end

#dataObject

Returns the value of attribute data.



4
5
6
# File 'lib/cradlepoint/router.rb', line 4

def data
  @data
end

#descriptionObject

Returns the value of attribute description.



4
5
6
# File 'lib/cradlepoint/router.rb', line 4

def description
  @description
end

#ecm_configuration_manager_dataObject

Returns the value of attribute ecm_configuration_manager_data.



4
5
6
# File 'lib/cradlepoint/router.rb', line 4

def ecm_configuration_manager_data
  @ecm_configuration_manager_data
end

#ecm_configuration_manager_uriObject

Returns the value of attribute ecm_configuration_manager_uri.



4
5
6
# File 'lib/cradlepoint/router.rb', line 4

def ecm_configuration_manager_uri
  @ecm_configuration_manager_uri
end

#ecm_configuration_uriObject

Returns the value of attribute ecm_configuration_uri.



4
5
6
# File 'lib/cradlepoint/router.rb', line 4

def ecm_configuration_uri
  @ecm_configuration_uri
end

#ecm_firmware_uriObject

Returns the value of attribute ecm_firmware_uri.



4
5
6
# File 'lib/cradlepoint/router.rb', line 4

def ecm_firmware_uri
  @ecm_firmware_uri
end

#full_product_nameObject

Returns the value of attribute full_product_name.



4
5
6
# File 'lib/cradlepoint/router.rb', line 4

def full_product_name
  @full_product_name
end

#group_nameObject

Returns the value of attribute group_name.



4
5
6
# File 'lib/cradlepoint/router.rb', line 4

def group_name
  @group_name
end

#idObject

Returns the value of attribute id.



4
5
6
# File 'lib/cradlepoint/router.rb', line 4

def id
  @id
end

#ip_addressObject

Returns the value of attribute ip_address.



4
5
6
# File 'lib/cradlepoint/router.rb', line 4

def ip_address
  @ip_address
end

#macObject

Returns the value of attribute mac.



4
5
6
# File 'lib/cradlepoint/router.rb', line 4

def mac
  @mac
end

#nameObject

Returns the value of attribute name.



4
5
6
# File 'lib/cradlepoint/router.rb', line 4

def name
  @name
end

#stream_usage_inObject

Returns the value of attribute stream_usage_in.



4
5
6
# File 'lib/cradlepoint/router.rb', line 4

def stream_usage_in
  @stream_usage_in
end

#stream_usage_outObject

Returns the value of attribute stream_usage_out.



4
5
6
# File 'lib/cradlepoint/router.rb', line 4

def stream_usage_out
  @stream_usage_out
end

#stream_usage_periodObject

Returns the value of attribute stream_usage_period.



4
5
6
# File 'lib/cradlepoint/router.rb', line 4

def stream_usage_period
  @stream_usage_period
end

Class Method Details

.indexObject



39
40
41
# File 'lib/cradlepoint/router.rb', line 39

def self.index
  build_array_of_routers_from_response(Cradlepoint.make_request(:get, build_url(rel_url)))
end

.rel_urlObject



15
16
17
# File 'lib/cradlepoint/router.rb', line 15

def self.rel_url
  '/routers'
end

.rel_url_for_configuration_managers(id) ⇒ Object



31
32
33
# File 'lib/cradlepoint/router.rb', line 31

def self.rel_url_for_configuration_managers(id)
  "#{ Cradlepoint::Router.rel_url_with_id(id) }/confguration_managers/"
end

.rel_url_with_id(id) ⇒ Object



23
24
25
# File 'lib/cradlepoint/router.rb', line 23

def self.rel_url_with_id(id)
  "#{ rel_url }/#{ id }/"
end

Instance Method Details

#apply_new_config(config_settings = {}) ⇒ Object



50
51
52
53
54
55
# File 'lib/cradlepoint/router.rb', line 50

def apply_new_config(config_settings = {})
  config = Cradlepoint::Config.new(self, config_settings)
  config.create_editor
  config.apply_config_to_editor
  config.remove_editor
end

#assign_attributes_from_dataObject



115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/cradlepoint/router.rb', line 115

def assign_attributes_from_data
  return unless self.data and self.data.any?

  self.mac                 = self.data[:mac]
  self.name                = self.data[:name]
  self.ip_address          = self.data[:ip_address]
  self.config_status       = self.data[:config_status]
  self.description         = self.data[:description]
  self.full_product_name   = self.data[:full_product_name]
  self.stream_usage_in     = self.data[:stream_usage_in]
  self.stream_usage_out    = self.data[:stream_usage_out]
  self.stream_usage_period = self.data[:stream_usage_period]
end

#configuration_manager_dataObject



57
58
59
60
61
# File 'lib/cradlepoint/router.rb', line 57

def configuration_manager_data
  check_for_id_or_raise_error
  lazy_load_configuration_manager_data unless self.ecm_configuration_manager_data
  self.ecm_configuration_manager_data
end

#configuration_uriObject



73
74
75
76
77
# File 'lib/cradlepoint/router.rb', line 73

def configuration_uri
  lazy_load_router_data unless self.ecm_configuration_manager_uri
  lazy_load_configuration_manager_data unless self.ecm_configuration_uri
  self.ecm_configuration_uri
end

#firmware_dataObject



63
64
65
66
# File 'lib/cradlepoint/router.rb', line 63

def firmware_data
  check_for_id_or_raise_error
  Cradlepoint.make_request(:get, build_url(firmware_uri.split('/api/v1').last)) if firmware_uri
end

#firmware_uriObject



68
69
70
71
# File 'lib/cradlepoint/router.rb', line 68

def firmware_uri
  lazy_load_router_data unless self.ecm_firmware_uri
  self.ecm_firmware_uri
end

#getObject



43
44
45
46
47
48
# File 'lib/cradlepoint/router.rb', line 43

def get
  check_for_id_or_raise_error
  self.data = Cradlepoint.make_request(:get, build_url(rel_url_with_id))
  assign_attributes_from_data
  self.data
end

#get_configuration_editor_dataObject



107
108
109
110
111
112
113
# File 'lib/cradlepoint/router.rb', line 107

def get_configuration_editor_data
  {
    account: '/api/v1' + Cradlepoint..rel_url_with_id,
    firmware: firmware_uri,
    router: '/api/v1' + rel_url_with_id
  }
end

#groupObject



79
80
81
82
83
84
85
86
87
# File 'lib/cradlepoint/router.rb', line 79

def group
  get unless self.data and self.data.any?
  return nil unless self.data[:group]

  group_data = Cradlepoint.make_request(:get, build_url(self.data[:group].split('/api/v1').last))
  return unless group_data
  self.group_name = group_data[:name]
  group_data
end

#group_listObject



89
90
91
92
93
94
# File 'lib/cradlepoint/router.rb', line 89

def group_list
  get unless self.data and self.data.any?
  return nil unless self.data[:group]
  
  Cradlepoint.make_request(:get, build_url(self.data[:group].split('/api/v1').last + '/routers'))
end

#lazy_load_configuration_manager_dataObject



102
103
104
105
# File 'lib/cradlepoint/router.rb', line 102

def lazy_load_configuration_manager_data
  self.ecm_configuration_manager_data = Cradlepoint.make_request(:get, build_url(rel_url_for_configuration_managers))
  self.ecm_configuration_uri = self.ecm_configuration_manager_data[:configuration_manager]
end

#lazy_load_router_dataObject



96
97
98
99
100
# File 'lib/cradlepoint/router.rb', line 96

def lazy_load_router_data
  get  # Grab the data from the api.
  self.ecm_firmware_uri = self.data[:actual_firmware]
  self.ecm_configuration_manager_uri = self.data[:configuration_manager]
end

#rel_urlObject



19
20
21
# File 'lib/cradlepoint/router.rb', line 19

def rel_url
  Cradlepoint::Router.rel_url
end

#rel_url_for_configuration_managersObject



35
36
37
# File 'lib/cradlepoint/router.rb', line 35

def rel_url_for_configuration_managers
  Cradlepoint::Router.rel_url_with_id(id)
end

#rel_url_with_idObject



27
28
29
# File 'lib/cradlepoint/router.rb', line 27

def rel_url_with_id
  Cradlepoint::Router.rel_url_with_id(id)
end