Class: OpenC3::InterfaceStatusModel
- Defined in:
- lib/openc3/models/interface_status_model.rb
Overview
Stores the status about an interface. This class also implements logic to handle status for a router since the functionality is identical (only difference is the Redis key used).
Direct Known Subclasses
Constant Summary collapse
- INTERFACES_PRIMARY_KEY =
'openc3_interface_status'
- ROUTERS_PRIMARY_KEY =
'openc3_router_status'
Instance Attribute Summary collapse
-
#clients ⇒ Object
Returns the value of attribute clients.
-
#rxbytes ⇒ Object
Returns the value of attribute rxbytes.
-
#rxcnt ⇒ Object
Returns the value of attribute rxcnt.
-
#rxsize ⇒ Object
Returns the value of attribute rxsize.
-
#state ⇒ Object
Returns the value of attribute state.
-
#txbytes ⇒ Object
Returns the value of attribute txbytes.
-
#txcnt ⇒ Object
Returns the value of attribute txcnt.
-
#txsize ⇒ Object
Returns the value of attribute txsize.
Attributes inherited from Model
#name, #plugin, #scope, #updated_at
Class Method Summary collapse
-
._get_key ⇒ Object
Helper method to return the correct primary key based on class name.
-
._get_type ⇒ Object
Helper method to return the correct type based on class name.
- .all(scope:) ⇒ Object
-
.get(name:, scope:) ⇒ Object
NOTE: The following three class methods are used by the ModelController and are reimplemented to enable various Model class methods to work.
- .names(scope:) ⇒ Object
Instance Method Summary collapse
- #as_json(*a) ⇒ Object
-
#initialize(name:, state:, clients: 0, txsize: 0, rxsize: 0, txbytes: 0, rxbytes: 0, txcnt: 0, rxcnt: 0, updated_at: nil, plugin: nil, scope:) ⇒ InterfaceStatusModel
constructor
A new instance of InterfaceStatusModel.
Methods inherited from Model
#check_disable_erb, #create, #deploy, #destroy, #destroyed?, filter, find_all_by_plugin, from_json, get_all_models, get_model, handle_config, set, store, store_queued, #undeploy, #update
Constructor Details
#initialize(name:, state:, clients: 0, txsize: 0, rxsize: 0, txbytes: 0, rxbytes: 0, txcnt: 0, rxcnt: 0, updated_at: nil, plugin: nil, scope:) ⇒ InterfaceStatusModel
Returns a new instance of InterfaceStatusModel.
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/openc3/models/interface_status_model.rb', line 75 def initialize( name:, state:, clients: 0, txsize: 0, rxsize: 0, txbytes: 0, rxbytes: 0, txcnt: 0, rxcnt: 0, updated_at: nil, plugin: nil, scope: ) if self.class._get_type == 'INTERFACESTATUS' super("#{scope}__#{INTERFACES_PRIMARY_KEY}", name: name, updated_at: updated_at, plugin: plugin, scope: scope) else super("#{scope}__#{ROUTERS_PRIMARY_KEY}", name: name, updated_at: updated_at, plugin: plugin, scope: scope) end @state = state @clients = clients @txsize = txsize @rxsize = rxsize @txbytes = txbytes @rxbytes = rxbytes @txcnt = txcnt @rxcnt = rxcnt end |
Instance Attribute Details
#clients ⇒ Object
Returns the value of attribute clients.
34 35 36 |
# File 'lib/openc3/models/interface_status_model.rb', line 34 def clients @clients end |
#rxbytes ⇒ Object
Returns the value of attribute rxbytes.
38 39 40 |
# File 'lib/openc3/models/interface_status_model.rb', line 38 def rxbytes @rxbytes end |
#rxcnt ⇒ Object
Returns the value of attribute rxcnt.
40 41 42 |
# File 'lib/openc3/models/interface_status_model.rb', line 40 def rxcnt @rxcnt end |
#rxsize ⇒ Object
Returns the value of attribute rxsize.
36 37 38 |
# File 'lib/openc3/models/interface_status_model.rb', line 36 def rxsize @rxsize end |
#state ⇒ Object
Returns the value of attribute state.
33 34 35 |
# File 'lib/openc3/models/interface_status_model.rb', line 33 def state @state end |
#txbytes ⇒ Object
Returns the value of attribute txbytes.
37 38 39 |
# File 'lib/openc3/models/interface_status_model.rb', line 37 def txbytes @txbytes end |
#txcnt ⇒ Object
Returns the value of attribute txcnt.
39 40 41 |
# File 'lib/openc3/models/interface_status_model.rb', line 39 def txcnt @txcnt end |
#txsize ⇒ Object
Returns the value of attribute txsize.
35 36 37 |
# File 'lib/openc3/models/interface_status_model.rb', line 35 def txsize @txsize end |
Class Method Details
._get_key ⇒ Object
Helper method to return the correct primary key based on class name
63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/openc3/models/interface_status_model.rb', line 63 def self._get_key type = _get_type case type when 'INTERFACESTATUS' INTERFACES_PRIMARY_KEY when 'ROUTERSTATUS' ROUTERS_PRIMARY_KEY else raise "Unknown type #{type} from class #{self.name}" end end |
._get_type ⇒ Object
Helper method to return the correct type based on class name
58 59 60 |
# File 'lib/openc3/models/interface_status_model.rb', line 58 def self._get_type self.name.to_s.split("Model")[0].upcase.split("::")[-1] end |
.all(scope:) ⇒ Object
52 53 54 |
# File 'lib/openc3/models/interface_status_model.rb', line 52 def self.all(scope:) super("#{scope}__#{_get_key}") end |
.get(name:, scope:) ⇒ Object
NOTE: The following three class methods are used by the ModelController and are reimplemented to enable various Model class methods to work
44 45 46 |
# File 'lib/openc3/models/interface_status_model.rb', line 44 def self.get(name:, scope:) super("#{scope}__#{_get_key}", name: name) end |
.names(scope:) ⇒ Object
48 49 50 |
# File 'lib/openc3/models/interface_status_model.rb', line 48 def self.names(scope:) super("#{scope}__#{_get_key}") end |
Instance Method Details
#as_json(*a) ⇒ Object
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/openc3/models/interface_status_model.rb', line 104 def as_json(*a) { 'name' => @name, 'state' => @state, 'clients' => @clients, 'txsize' => @txsize, 'rxsize' => @rxsize, 'txbytes' => @txbytes, 'rxbytes' => @rxbytes, 'txcnt' => @txcnt, 'rxcnt' => @rxcnt, 'plugin' => @plugin, 'updated_at' => @updated_at } end |