Class: Atatus::Metadata::SystemInfo::ContainerInfo Private
- Inherits:
-
Object
- Object
- Atatus::Metadata::SystemInfo::ContainerInfo
- Defined in:
- lib/atatus/metadata/system_info/container_info.rb
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Constant Summary collapse
- CGROUP_PATH =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
'/proc/self/cgroup'- MOUNTINFO_PATH =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
'/proc/self/mountinfo'
Instance Attribute Summary collapse
- #cgroup_path ⇒ Object readonly private
- #container_id ⇒ Object private
- #kubernetes_namespace ⇒ Object private
- #kubernetes_node_name ⇒ Object private
- #kubernetes_pod_name ⇒ Object private
- #kubernetes_pod_uid ⇒ Object private
Class Method Summary collapse
- .read!(hostname) ⇒ Object private
Instance Method Summary collapse
- #container ⇒ Object private
-
#initialize(cgroup_path: CGROUP_PATH) ⇒ ContainerInfo
constructor
private
A new instance of ContainerInfo.
- #kubernetes ⇒ Object private
- #read!(hostname) ⇒ Object private
Constructor Details
#initialize(cgroup_path: CGROUP_PATH) ⇒ ContainerInfo
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of ContainerInfo.
31 32 33 |
# File 'lib/atatus/metadata/system_info/container_info.rb', line 31 def initialize(cgroup_path: CGROUP_PATH) @cgroup_path = cgroup_path end |
Instance Attribute Details
#cgroup_path ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
35 36 37 |
# File 'lib/atatus/metadata/system_info/container_info.rb', line 35 def cgroup_path @cgroup_path end |
#container_id ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
28 29 30 |
# File 'lib/atatus/metadata/system_info/container_info.rb', line 28 def container_id @container_id end |
#kubernetes_namespace ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
28 29 30 |
# File 'lib/atatus/metadata/system_info/container_info.rb', line 28 def kubernetes_namespace @kubernetes_namespace end |
#kubernetes_node_name ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
28 29 30 |
# File 'lib/atatus/metadata/system_info/container_info.rb', line 28 def kubernetes_node_name @kubernetes_node_name end |
#kubernetes_pod_name ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
28 29 30 |
# File 'lib/atatus/metadata/system_info/container_info.rb', line 28 def kubernetes_pod_name @kubernetes_pod_name end |
#kubernetes_pod_uid ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
28 29 30 |
# File 'lib/atatus/metadata/system_info/container_info.rb', line 28 def kubernetes_pod_uid @kubernetes_pod_uid end |
Class Method Details
.read!(hostname) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
46 47 48 |
# File 'lib/atatus/metadata/system_info/container_info.rb', line 46 def self.read!(hostname) new.read!(hostname) end |
Instance Method Details
#container ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
50 51 52 53 54 55 56 |
# File 'lib/atatus/metadata/system_info/container_info.rb', line 50 def container @container ||= begin return unless container_id { id: container_id } end end |
#kubernetes ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/atatus/metadata/system_info/container_info.rb', line 58 def kubernetes @kubernetes = begin kubernetes = { namespace: kubernetes_namespace, node: { name: kubernetes_node_name }, pod: { name: kubernetes_pod_name, uid: kubernetes_pod_uid } } return nil if kubernetes.values.all?(&:nil?) kubernetes end end |
#read!(hostname) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
37 38 39 40 41 42 43 44 |
# File 'lib/atatus/metadata/system_info/container_info.rb', line 37 def read!(hostname) read_from_mountinfo! read_from_cgroup! unless container_id && kubernetes_pod_uid self.kubernetes_pod_name = hostname if kubernetes_pod_uid read_from_env! self end |