Class: OsCtl::Cli::Top::Container
- Inherits:
-
Object
- Object
- OsCtl::Cli::Top::Container
- Defined in:
- lib/osctl/cli/top/container.rb
Direct Known Subclasses
Defined Under Namespace
Classes: NetIf
Instance Attribute Summary collapse
-
#cpu_package_inuse ⇒ Object
Returns the value of attribute cpu_package_inuse.
-
#dataset ⇒ Object
readonly
Returns the value of attribute dataset.
-
#group_path ⇒ Object
readonly
Returns the value of attribute group_path.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#ident ⇒ Object
readonly
Returns the value of attribute ident.
-
#init_pid ⇒ Object
Returns the value of attribute init_pid.
-
#initial ⇒ Object
readonly
protected
Returns the value of attribute initial.
-
#measurements ⇒ Object
readonly
protected
Returns the value of attribute measurements.
-
#netifs ⇒ Object
Returns the value of attribute netifs.
-
#pool ⇒ Object
readonly
Returns the value of attribute pool.
-
#state ⇒ Object
Returns the value of attribute state.
Instance Method Summary collapse
- #[](k) ⇒ Object
- #container? ⇒ Boolean
- #find_netif(name) ⇒ Object protected
- #has_netif?(name) ⇒ Boolean
-
#initialize(ct) ⇒ Container
constructor
A new instance of Container.
- #measure(host, subsystems) ⇒ Object
- #netif_down(name) ⇒ Object
- #netif_rename(name, new_name) ⇒ Object
- #netif_rm(name) ⇒ Object
- #netif_up(name, veth) ⇒ Object
- #result(mode) ⇒ Object
- #running? ⇒ Boolean
- #setup? ⇒ Boolean
Constructor Details
#initialize(ct) ⇒ Container
Returns a new instance of Container.
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/osctl/cli/top/container.rb', line 14 def initialize(ct) @id = ct[:id] @pool = ct[:pool] @ident = "#{@pool}:#{@id}" @dataset = ct[:dataset] @group_path = ct[:group_path] @state = ct[:state].to_sym @cpu_package_inuse = ct[:cpu_package_inuse] @init_pid = ct[:init_pid] @netifs = [] @measurements = [] @initial = nil end |
Instance Attribute Details
#cpu_package_inuse ⇒ Object
Returns the value of attribute cpu_package_inuse.
11 12 13 |
# File 'lib/osctl/cli/top/container.rb', line 11 def cpu_package_inuse @cpu_package_inuse end |
#dataset ⇒ Object (readonly)
Returns the value of attribute dataset.
10 11 12 |
# File 'lib/osctl/cli/top/container.rb', line 10 def dataset @dataset end |
#group_path ⇒ Object (readonly)
Returns the value of attribute group_path.
10 11 12 |
# File 'lib/osctl/cli/top/container.rb', line 10 def group_path @group_path end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
10 11 12 |
# File 'lib/osctl/cli/top/container.rb', line 10 def id @id end |
#ident ⇒ Object (readonly)
Returns the value of attribute ident.
10 11 12 |
# File 'lib/osctl/cli/top/container.rb', line 10 def ident @ident end |
#init_pid ⇒ Object
Returns the value of attribute init_pid.
11 12 13 |
# File 'lib/osctl/cli/top/container.rb', line 11 def init_pid @init_pid end |
#initial ⇒ Object (readonly, protected)
Returns the value of attribute initial.
98 99 100 |
# File 'lib/osctl/cli/top/container.rb', line 98 def initial @initial end |
#measurements ⇒ Object (readonly, protected)
Returns the value of attribute measurements.
98 99 100 |
# File 'lib/osctl/cli/top/container.rb', line 98 def measurements @measurements end |
#netifs ⇒ Object
Returns the value of attribute netifs.
11 12 13 |
# File 'lib/osctl/cli/top/container.rb', line 11 def netifs @netifs end |
#pool ⇒ Object (readonly)
Returns the value of attribute pool.
10 11 12 |
# File 'lib/osctl/cli/top/container.rb', line 10 def pool @pool end |
#state ⇒ Object
Returns the value of attribute state.
11 12 13 |
# File 'lib/osctl/cli/top/container.rb', line 11 def state @state end |
Instance Method Details
#[](k) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/osctl/cli/top/container.rb', line 28 def [](k) # Used by OsCtl::Lib::LoadAvgReader case k when :id @id when :pool @pool when :init_pid @init_pid else raise ArgumentError, "key #{k.inspect} is not supported" end end |
#container? ⇒ Boolean
50 51 52 |
# File 'lib/osctl/cli/top/container.rb', line 50 def container? true end |
#find_netif(name) ⇒ Object (protected)
100 101 102 |
# File 'lib/osctl/cli/top/container.rb', line 100 def find_netif(name) netifs.detect { |netif| netif.name == name } end |
#has_netif?(name) ⇒ Boolean
92 93 94 |
# File 'lib/osctl/cli/top/container.rb', line 92 def has_netif?(name) !find_netif(name).nil? end |
#measure(host, subsystems) ⇒ Object
54 55 56 57 58 59 60 |
# File 'lib/osctl/cli/top/container.rb', line 54 def measure(host, subsystems) m = Top::Measurement.new(host, subsystems, group_path, dataset, netifs) m.measure @initial = m if measurements.empty? measurements << m measurements.shift if measurements.size > 2 end |
#netif_down(name) ⇒ Object
77 78 79 80 |
# File 'lib/osctl/cli/top/container.rb', line 77 def netif_down(name) netif = find_netif(name) netif.veth = nil end |
#netif_rename(name, new_name) ⇒ Object
87 88 89 90 |
# File 'lib/osctl/cli/top/container.rb', line 87 def netif_rename(name, new_name) netif = find_netif(name) netif.name = new_name end |
#netif_rm(name) ⇒ Object
82 83 84 85 |
# File 'lib/osctl/cli/top/container.rb', line 82 def netif_rm(name) netif = find_netif(name) netifs.delete(netif) end |
#netif_up(name, veth) ⇒ Object
72 73 74 75 |
# File 'lib/osctl/cli/top/container.rb', line 72 def netif_up(name, veth) netif = find_netif(name) netif.veth = veth end |
#result(mode) ⇒ Object
62 63 64 65 66 67 68 69 70 |
# File 'lib/osctl/cli/top/container.rb', line 62 def result(mode) case mode when :realtime measurements[1].diff_from(measurements[0], mode) when :cumulative measurements[1].diff_from(initial, mode) end end |
#running? ⇒ Boolean
46 47 48 |
# File 'lib/osctl/cli/top/container.rb', line 46 def running? @state == :running end |
#setup? ⇒ Boolean
42 43 44 |
# File 'lib/osctl/cli/top/container.rb', line 42 def setup? measurements.count >= 2 end |