added container menu closes #28

This commit is contained in:
Peter Reisinger
2017-11-20 11:09:36 +00:00
parent e1ec264345
commit 436266b1a4
8 changed files with 163 additions and 3 deletions

View File

@@ -6,6 +6,7 @@ import (
"github.com/bcicen/ctop/cwidgets/compact"
"github.com/bcicen/ctop/logging"
"github.com/bcicen/ctop/models"
"github.com/bcicen/ctop/connector/manager"
)
var (
@@ -21,9 +22,10 @@ type Container struct {
Display bool // display this container in compact view
updater cwidgets.WidgetUpdater
collector collector.Collector
manager manager.Manager
}
func New(id string, collector collector.Collector) *Container {
func New(id string, collector collector.Collector, manager manager.Manager) *Container {
widgets := compact.NewCompact(id)
return &Container{
Metrics: models.NewMetrics(),
@@ -32,6 +34,7 @@ func New(id string, collector collector.Collector) *Container {
Widgets: widgets,
updater: widgets,
collector: collector,
manager: manager,
}
}
@@ -85,3 +88,31 @@ func (c *Container) Read(stream chan models.Metrics) {
}()
log.Infof("reader started for container: %s", c.Id)
}
func (c *Container) Start() {
if c.Meta["state"] != "running" {
if err := c.manager.Start(); err != nil {
log.Warningf("container %s: %v", c.Id, err)
return
}
c.SetState("running")
}
}
func (c *Container) Stop() {
if c.Meta["state"] == "running" {
if err := c.manager.Stop(); err != nil {
log.Warningf("container %s: %v", c.Id, err)
return
}
c.SetState("exited")
}
}
func (c *Container) Remove() {
if c.Meta["state"] == "exited" {
if err := c.manager.Remove(); err != nil {
log.Warningf("container %s: %v", c.Id, err)
}
}
}