Refresh fetches the latest cluster meta.
()
| 130 | |
| 131 | // Refresh fetches the latest cluster meta. |
| 132 | func (c *ClusterInfo) Refresh() { |
| 133 | data := NewClusterMeta() |
| 134 | if c.factory.Client().ConnectionOK() { |
| 135 | data.Context = c.cluster.ContextName() |
| 136 | data.Cluster = c.cluster.ClusterName() |
| 137 | data.User = c.cluster.UserName() |
| 138 | data.K8sVer = c.cluster.Version() |
| 139 | ctx, cancel := context.WithTimeout(context.Background(), c.cluster.factory.Client().Config().CallTimeout()) |
| 140 | defer cancel() |
| 141 | var mx client.ClusterMetrics |
| 142 | if err := c.cluster.Metrics(ctx, &mx); err == nil { |
| 143 | data.Cpu, data.Mem, data.Ephemeral = mx.PercCPU, mx.PercMEM, mx.PercEphemeral |
| 144 | } |
| 145 | } |
| 146 | data.K9sVer = c.version |
| 147 | v1 := NewSemVer(data.K9sVer) |
| 148 | |
| 149 | var latestRev string |
| 150 | if !c.cfg.SkipLatestRevCheck { |
| 151 | latestRev = c.fetchK9sLatestRev() |
| 152 | } |
| 153 | v2 := NewSemVer(latestRev) |
| 154 | |
| 155 | data.K9sVer, data.K9sLatest = v1.String(), v2.String() |
| 156 | if v1.IsCurrent(v2) { |
| 157 | data.K9sLatest = "" |
| 158 | } |
| 159 | |
| 160 | if c.data.Deltas(data) { |
| 161 | c.fireMetaChanged(c.data, data) |
| 162 | } else { |
| 163 | c.fireNoMetaChanged(data) |
| 164 | } |
| 165 | c.mx.Lock() |
| 166 | c.data = data |
| 167 | c.mx.Unlock() |
| 168 | } |
| 169 | |
| 170 | // AddListener adds a new model listener. |
| 171 | func (c *ClusterInfo) AddListener(l ClusterInfoListener) { |
no test coverage detected