mirror of
https://github.com/cuigh/swirl
synced 2025-06-26 18:16:50 +00:00
Finish image management
This commit is contained in:
@@ -1,12 +1,10 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
|
||||
"github.com/cuigh/auxo/net/web"
|
||||
"github.com/cuigh/auxo/util/cast"
|
||||
"github.com/cuigh/swirl/biz/docker"
|
||||
"github.com/cuigh/swirl/misc"
|
||||
"github.com/cuigh/swirl/model"
|
||||
)
|
||||
|
||||
@@ -51,13 +49,12 @@ func Container() (c *ContainerController) {
|
||||
return err
|
||||
}
|
||||
|
||||
buf := &bytes.Buffer{}
|
||||
err = json.Indent(buf, raw, "", " ")
|
||||
j, err := misc.JSONIndent(raw)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
m := newModel(ctx).Add("Container", container).Add("Raw", string(buf.Bytes()))
|
||||
m := newModel(ctx).Add("Container", container).Add("Raw", j)
|
||||
return ctx.Render("container/raw", m)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,34 +1,83 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/cuigh/auxo/net/web"
|
||||
"github.com/cuigh/auxo/util/cast"
|
||||
"github.com/cuigh/swirl/biz/docker"
|
||||
"github.com/cuigh/swirl/misc"
|
||||
"github.com/cuigh/swirl/model"
|
||||
)
|
||||
|
||||
type ImageController struct {
|
||||
List web.HandlerFunc `path:"/" name:"image.list" authorize:"!" desc:"image list page"`
|
||||
//Detail web.HandlerFunc `path:"/:id/detail" name:"image.detail" authorize:"!" desc:"image detail page"`
|
||||
//Raw web.HandlerFunc `path:"/:id/raw" name:"image.raw" authorize:"!" desc:"image raw page"`
|
||||
List web.HandlerFunc `path:"/" name:"image.list" authorize:"!" desc:"image list page"`
|
||||
Detail web.HandlerFunc `path:"/:id/detail" name:"image.detail" authorize:"!" desc:"image detail page"`
|
||||
Raw web.HandlerFunc `path:"/:id/raw" name:"image.raw" authorize:"!" desc:"image raw page"`
|
||||
Delete web.HandlerFunc `path:"/delete" method:"post" name:"image.delete" authorize:"!" desc:"delete image"`
|
||||
}
|
||||
|
||||
func Image() (c *ImageController) {
|
||||
c = &ImageController{}
|
||||
return &ImageController{
|
||||
List: imageList,
|
||||
Detail: imageDetail,
|
||||
Raw: imageRaw,
|
||||
Delete: imageDelete,
|
||||
}
|
||||
}
|
||||
|
||||
c.List = func(ctx web.Context) error {
|
||||
name := ctx.Q("name")
|
||||
page := cast.ToIntD(ctx.Q("page"), 1)
|
||||
images, totalCount, err := docker.ImageList(name, page, model.PageSize)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
m := newPagerModel(ctx, totalCount, model.PageSize, page).
|
||||
Add("Name", name).
|
||||
Add("Images", images)
|
||||
return ctx.Render("image/list", m)
|
||||
func imageList(ctx web.Context) error {
|
||||
name := ctx.Q("name")
|
||||
page := cast.ToIntD(ctx.Q("page"), 1)
|
||||
images, totalCount, err := docker.ImageList(name, page, model.PageSize)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return
|
||||
m := newPagerModel(ctx, totalCount, model.PageSize, page).
|
||||
Add("Name", name).
|
||||
Add("Images", images)
|
||||
return ctx.Render("image/list", m)
|
||||
}
|
||||
|
||||
func imageDetail(ctx web.Context) error {
|
||||
id := ctx.P("id")
|
||||
image, _, err := docker.ImageInspect(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
histories, err := docker.ImageHistory(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
m := newModel(ctx).Add("Image", image).Add("Histories", histories)
|
||||
return ctx.Render("image/detail", m)
|
||||
}
|
||||
|
||||
func imageRaw(ctx web.Context) error {
|
||||
id := ctx.P("id")
|
||||
image, raw, err := docker.ImageInspect(id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
j, err := misc.JSONIndent(raw)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
m := newModel(ctx).Add("Image", image).Add("Raw", j)
|
||||
return ctx.Render("image/raw", m)
|
||||
}
|
||||
|
||||
func imageDelete(ctx web.Context) error {
|
||||
ids := strings.Split(ctx.F("ids"), ",")
|
||||
for _, id := range ids {
|
||||
if err := docker.ImageRemove(id); err != nil {
|
||||
return ajaxResult(ctx, err)
|
||||
}
|
||||
}
|
||||
return ajaxSuccess(ctx, nil)
|
||||
}
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
|
||||
"github.com/cuigh/auxo/net/web"
|
||||
"github.com/cuigh/swirl/biz"
|
||||
"github.com/cuigh/swirl/biz/docker"
|
||||
"github.com/cuigh/swirl/misc"
|
||||
"github.com/cuigh/swirl/model"
|
||||
)
|
||||
|
||||
@@ -88,13 +86,12 @@ func Network() (c *NetworkController) {
|
||||
return err
|
||||
}
|
||||
|
||||
buf := &bytes.Buffer{}
|
||||
err = json.Indent(buf, raw, "", " ")
|
||||
j, err := misc.JSONIndent(raw)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
m := newModel(ctx).Add("Network", name).Add("Raw", string(buf.Bytes()))
|
||||
m := newModel(ctx).Add("Network", name).Add("Raw", j)
|
||||
return ctx.Render("network/raw", m)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
|
||||
"github.com/cuigh/auxo/net/web"
|
||||
"github.com/cuigh/swirl/biz/docker"
|
||||
"github.com/cuigh/swirl/misc"
|
||||
"github.com/cuigh/swirl/model"
|
||||
)
|
||||
|
||||
@@ -60,13 +58,12 @@ func Node() (c *NodeController) {
|
||||
return err
|
||||
}
|
||||
|
||||
buf := &bytes.Buffer{}
|
||||
err = json.Indent(buf, raw, "", " ")
|
||||
j, err := misc.JSONIndent(raw)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
m := newModel(ctx).Add("ID", id).Add("Node", node).Add("Raw", string(buf.Bytes()))
|
||||
m := newModel(ctx).Add("ID", id).Add("Node", node).Add("Raw", j)
|
||||
return ctx.Render("node/raw", m)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"strconv"
|
||||
"strings"
|
||||
@@ -12,6 +11,7 @@ import (
|
||||
"github.com/cuigh/auxo/util/cast"
|
||||
"github.com/cuigh/swirl/biz"
|
||||
"github.com/cuigh/swirl/biz/docker"
|
||||
"github.com/cuigh/swirl/misc"
|
||||
"github.com/cuigh/swirl/model"
|
||||
)
|
||||
|
||||
@@ -77,13 +77,12 @@ func Service() (c *ServiceController) {
|
||||
return err
|
||||
}
|
||||
|
||||
buf := &bytes.Buffer{}
|
||||
err = json.Indent(buf, raw, "", " ")
|
||||
j, err := misc.JSONIndent(raw)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
m := newModel(ctx).Add("Service", name).Add("Raw", string(buf.Bytes()))
|
||||
m := newModel(ctx).Add("Service", name).Add("Raw", j)
|
||||
return ctx.Render("service/raw", m)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
|
||||
"github.com/cuigh/auxo/net/web"
|
||||
"github.com/cuigh/swirl/biz/docker"
|
||||
"github.com/cuigh/swirl/misc"
|
||||
)
|
||||
|
||||
type TaskController struct {
|
||||
@@ -34,13 +32,12 @@ func Task() (c *TaskController) {
|
||||
return err
|
||||
}
|
||||
|
||||
buf := &bytes.Buffer{}
|
||||
err = json.Indent(buf, raw, "", " ")
|
||||
j, err := misc.JSONIndent(raw)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
m := newModel(ctx).Add("Task", task).Add("Raw", string(buf.Bytes()))
|
||||
m := newModel(ctx).Add("Task", task).Add("Raw", j)
|
||||
return ctx.Render("task/raw", m)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"strings"
|
||||
|
||||
"github.com/cuigh/auxo/net/web"
|
||||
"github.com/cuigh/auxo/util/cast"
|
||||
"github.com/cuigh/swirl/biz"
|
||||
"github.com/cuigh/swirl/biz/docker"
|
||||
"github.com/cuigh/swirl/misc"
|
||||
"github.com/cuigh/swirl/model"
|
||||
)
|
||||
|
||||
@@ -94,13 +93,12 @@ func Volume() (c *VolumeController) {
|
||||
return err
|
||||
}
|
||||
|
||||
buf := &bytes.Buffer{}
|
||||
err = json.Indent(buf, raw, "", " ")
|
||||
j, err := misc.JSONIndent(raw)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
m := newModel(ctx).Add("Volume", name).Add("Raw", string(buf.Bytes()))
|
||||
m := newModel(ctx).Add("Volume", name).Add("Raw", j)
|
||||
return ctx.Render("volume/raw", m)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user