forked from x/icebergs
add some
This commit is contained in:
parent
248258d71d
commit
30a7ce39b4
@ -67,6 +67,7 @@ func _runtime_init(m *ice.Message) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
m.Conf(m.PrefixKey(), mdb.META, "")
|
||||||
}
|
}
|
||||||
func _runtime_hostinfo(m *ice.Message) {
|
func _runtime_hostinfo(m *ice.Message) {
|
||||||
m.Push("time", ice.Info.Make.Time)
|
m.Push("time", ice.Info.Make.Time)
|
||||||
|
@ -77,7 +77,7 @@ func _dream_list_icon(m *ice.Message) {
|
|||||||
return value
|
return value
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
func _dream_more_list(m *ice.Message) *ice.Message {
|
func _dream_list_more(m *ice.Message) *ice.Message {
|
||||||
if m.IsCliUA() {
|
if m.IsCliUA() {
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
@ -93,6 +93,7 @@ func _dream_more_list(m *ice.Message) *ice.Message {
|
|||||||
msg := gdb.Event(m.Spawn(value), DREAM_TABLES)
|
msg := gdb.Event(m.Spawn(value), DREAM_TABLES)
|
||||||
defer m.PushButton(strings.Join(msg.Appendv(ctx.ACTION), ""))
|
defer m.PushButton(strings.Join(msg.Appendv(ctx.ACTION), ""))
|
||||||
case MASTER:
|
case MASTER:
|
||||||
|
value[mdb.ICON] = nfs.USR_ICONS_CONTEXTS
|
||||||
if spide, ok := list[value[mdb.NAME]]; ok {
|
if spide, ok := list[value[mdb.NAME]]; ok {
|
||||||
value[mdb.ICON] = kit.Select(value[mdb.ICON], spide[mdb.ICON])
|
value[mdb.ICON] = kit.Select(value[mdb.ICON], spide[mdb.ICON])
|
||||||
}
|
}
|
||||||
@ -424,21 +425,18 @@ func init() {
|
|||||||
if len(arg) == 0 {
|
if len(arg) == 0 {
|
||||||
_dream_list(m)
|
_dream_list(m)
|
||||||
_dream_list_icon(m)
|
_dream_list_icon(m)
|
||||||
_dream_more_list(m)
|
_dream_list_more(m)
|
||||||
stat := map[string]int{}
|
stat := map[string]int{}
|
||||||
m.Table(func(value ice.Maps) { stat[value[mdb.TYPE]]++; stat[value[mdb.STATUS]]++ })
|
m.Table(func(value ice.Maps) { stat[value[mdb.TYPE]]++; stat[value[mdb.STATUS]]++ })
|
||||||
kit.If(stat[cli.START] == stat[WORKER], func() { delete(stat, cli.START) })
|
kit.If(stat[cli.START] == stat[WORKER], func() { delete(stat, cli.START) })
|
||||||
m.Sort("type,status,name", []string{aaa.LOGIN, WORKER, SERVER, MASTER}, []string{cli.START, cli.STOP, cli.BEGIN}, ice.STR_R).StatusTimeCount(stat)
|
m.Sort("type,status,name", []string{aaa.LOGIN, WORKER, SERVER, MASTER}, []string{cli.START, cli.STOP, cli.BEGIN}, ice.STR_R).StatusTimeCount(stat)
|
||||||
ctx.DisplayTableCard(m)
|
if ctx.DisplayTableCard(m); ice.Info.NodeType == WORKER || !aaa.IsTechOrRoot(m) || m.IsCliUA() {
|
||||||
if ice.Info.NodeType == WORKER || !aaa.IsTechOrRoot(m) || m.IsCliUA() {
|
|
||||||
m.Action()
|
m.Action()
|
||||||
return
|
} else if cli.SystemFind(m, "go") == "" {
|
||||||
}
|
m.Action(html.FILTER, mdb.CREATE, STARTALL, STOPALL)
|
||||||
kit.If(cli.SystemFind(m, "go"), func() {
|
} else {
|
||||||
m.Action(html.FILTER, mdb.CREATE, STARTALL, STOPALL, cli.BUILD, PUBLISH)
|
m.Action(html.FILTER, mdb.CREATE, STARTALL, STOPALL, cli.BUILD, PUBLISH)
|
||||||
}, func() {
|
}
|
||||||
m.Action(mdb.CREATE, STARTALL, STOPALL)
|
|
||||||
})
|
|
||||||
} else if arg[0] == ctx.ACTION {
|
} else if arg[0] == ctx.ACTION {
|
||||||
gdb.Event(m, DREAM_ACTION, arg)
|
gdb.Event(m, DREAM_ACTION, arg)
|
||||||
} else {
|
} else {
|
||||||
|
@ -268,6 +268,7 @@ var agentIcons = map[string]string{
|
|||||||
html.Chrome: "usr/icons/Chrome.png",
|
html.Chrome: "usr/icons/Chrome.png",
|
||||||
html.Edg: "usr/icons/Edg.png",
|
html.Edg: "usr/icons/Edg.png",
|
||||||
html.MicroMessenger: "usr/icons/wechat.png",
|
html.MicroMessenger: "usr/icons/wechat.png",
|
||||||
|
"Go-http-client": "usr/icons/go.png",
|
||||||
}
|
}
|
||||||
|
|
||||||
const SPIDE = "spide"
|
const SPIDE = "spide"
|
||||||
@ -283,10 +284,10 @@ func init() {
|
|||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
conf := mdb.Confm(m, cli.RUNTIME, cli.CONF)
|
conf := mdb.Confm(m, cli.RUNTIME, cli.CONF)
|
||||||
dev := kit.Select("https://2021.shylinux.com", ice.Info.Make.Domain, conf[cli.CTX_DEV])
|
dev := kit.Select("https://2021.shylinux.com", ice.Info.Make.Domain, conf[cli.CTX_DEV])
|
||||||
m.Cmd("", mdb.CREATE, ice.SHY, kit.Select("https://shylinux.com", conf[cli.CTX_SHY]), nfs.REPOS, nfs.USR_ICONS_CONTEXTS)
|
m.Cmd("", mdb.CREATE, ice.SHY, kit.Select("https://shylinux.com", conf[cli.CTX_SHY]), nfs.REPOS)
|
||||||
m.Cmd("", mdb.CREATE, ice.DEV, dev, nfs.REPOS)
|
m.Cmd("", mdb.CREATE, ice.DEV, dev, nfs.REPOS)
|
||||||
m.Cmd("", mdb.CREATE, ice.DEV_IP, kit.Select(dev, os.Getenv("ctx_dev_ip")))
|
m.Cmd("", mdb.CREATE, ice.DEV_IP, kit.Select(dev, os.Getenv("ctx_dev_ip")))
|
||||||
m.Cmd("", mdb.CREATE, ice.OPS, kit.Select("http://localhost:9020", conf[cli.CTX_OPS]), nfs.REPOS, nfs.USR_ICONS_VOLCANOS)
|
m.Cmd("", mdb.CREATE, ice.OPS, kit.Select("http://localhost:9020", conf[cli.CTX_OPS]), nfs.REPOS)
|
||||||
m.Cmd("", mdb.CREATE, ice.DEMO, kit.Select("http://localhost:20000", conf[cli.CTX_DEMO]), "", nfs.USR_ICONS_VOLCANOS)
|
m.Cmd("", mdb.CREATE, ice.DEMO, kit.Select("http://localhost:20000", conf[cli.CTX_DEMO]), "", nfs.USR_ICONS_VOLCANOS)
|
||||||
m.Cmd("", mdb.CREATE, ice.MAIL, kit.Select("https://mail.shylinux.com", conf[cli.CTX_MAIL]), "", "usr/icons/Mail.png")
|
m.Cmd("", mdb.CREATE, ice.MAIL, kit.Select("https://mail.shylinux.com", conf[cli.CTX_MAIL]), "", "usr/icons/Mail.png")
|
||||||
if m.Cmd(tcp.HOST).Length() == 0 {
|
if m.Cmd(tcp.HOST).Length() == 0 {
|
||||||
@ -336,7 +337,7 @@ func init() {
|
|||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
mdb.CREATE: {Name: "create name* origin* type icons", Hand: func(m *ice.Message, arg ...string) {
|
mdb.CREATE: {Name: "create name* origin* type icons", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_spide_create(m, m.Option(mdb.NAME), m.Option(ORIGIN), m.Option(mdb.TYPE), m.OptionDefault(mdb.ICONS, nfs.USR_ICONS_ICEBERGS))
|
_spide_create(m, m.Option(mdb.NAME), m.Option(ORIGIN), m.Option(mdb.TYPE), m.OptionDefault(mdb.ICONS, nfs.USR_ICONS_CONTEXTS))
|
||||||
}},
|
}},
|
||||||
COOKIE: {Name: "cookie key* value", Help: "状态量", Hand: func(m *ice.Message, arg ...string) {
|
COOKIE: {Name: "cookie key* value", Help: "状态量", Hand: func(m *ice.Message, arg ...string) {
|
||||||
mdb.HashModify(m, m.OptionSimple(CLIENT_NAME), kit.Keys(COOKIE, m.Option(mdb.KEY)), m.Option(mdb.VALUE))
|
mdb.HashModify(m, m.OptionSimple(CLIENT_NAME), kit.Keys(COOKIE, m.Option(mdb.KEY)), m.Option(mdb.VALUE))
|
||||||
|
@ -19,7 +19,10 @@ func init() {
|
|||||||
Index.MergeCommands(ice.Commands{
|
Index.MergeCommands(ice.Commands{
|
||||||
POD: {Help: "空间", Actions: web.ApiWhiteAction(), Hand: func(m *ice.Message, arg ...string) {
|
POD: {Help: "空间", Actions: web.ApiWhiteAction(), Hand: func(m *ice.Message, arg ...string) {
|
||||||
if m.IsCliUA() {
|
if m.IsCliUA() {
|
||||||
if len(arg) == 0 || arg[0] == "" {
|
if len(arg) > 1 {
|
||||||
|
m.Option(ice.MSG_USERPOD, arg[0])
|
||||||
|
m.Cmdy(web.SPACE, arg[0], arg[2], arg[3:])
|
||||||
|
} else if len(arg) == 0 || arg[0] == "" {
|
||||||
m.Option(ice.MSG_USERROLE, aaa.TECH)
|
m.Option(ice.MSG_USERROLE, aaa.TECH)
|
||||||
m.Cmd(web.SPACE, func(value ice.Maps) {
|
m.Cmd(web.SPACE, func(value ice.Maps) {
|
||||||
msg := m.Cmd(nfs.DIR, path.Join(ice.USR_LOCAL_WORK, value[mdb.NAME], ice.USR_PUBLISH, kit.Keys(ice.ICE, m.OptionDefault(cli.GOOS, cli.LINUX), m.OptionDefault(cli.GOARCH, cli.AMD64))))
|
msg := m.Cmd(nfs.DIR, path.Join(ice.USR_LOCAL_WORK, value[mdb.NAME], ice.USR_PUBLISH, kit.Keys(ice.ICE, m.OptionDefault(cli.GOOS, cli.LINUX), m.OptionDefault(cli.GOARCH, cli.AMD64))))
|
||||||
@ -44,7 +47,7 @@ func init() {
|
|||||||
m.Cmdy(web.SPACE, arg[0], web.SPACE, ice.MAIN)
|
m.Cmdy(web.SPACE, arg[0], web.SPACE, ice.MAIN)
|
||||||
} else if kit.IsIn(arg[1], CMD, "c") {
|
} else if kit.IsIn(arg[1], CMD, "c") {
|
||||||
if kit.IsIn(arg[2], web.ADMIN) {
|
if kit.IsIn(arg[2], web.ADMIN) {
|
||||||
m.Cmdy(web.SPACE, arg[0], arg[2])
|
m.Cmdy(web.SPACE, arg[0], arg[2], arg[3:])
|
||||||
} else {
|
} else {
|
||||||
web.RenderPodCmd(m, arg[0], arg[2], arg[3:])
|
web.RenderPodCmd(m, arg[0], arg[2], arg[3:])
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,9 @@ import (
|
|||||||
"shylinux.com/x/icebergs/base/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
"shylinux.com/x/icebergs/base/nfs"
|
"shylinux.com/x/icebergs/base/nfs"
|
||||||
"shylinux.com/x/icebergs/base/web"
|
"shylinux.com/x/icebergs/base/web"
|
||||||
|
"shylinux.com/x/icebergs/base/web/html"
|
||||||
kit "shylinux.com/x/toolkits"
|
kit "shylinux.com/x/toolkits"
|
||||||
|
"shylinux.com/x/toolkits/task"
|
||||||
"shylinux.com/x/toolkits/util/bench"
|
"shylinux.com/x/toolkits/util/bench"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -26,7 +28,11 @@ func _bench_http(m *ice.Message, target string, arg ...string) {
|
|||||||
}
|
}
|
||||||
switch ls[0] {
|
switch ls[0] {
|
||||||
case http.MethodPost:
|
case http.MethodPost:
|
||||||
if f, e := nfs.OpenFile(m, ls[2]); m.Assert(e) {
|
if len(ls) == 2 {
|
||||||
|
if req, err := http.NewRequest(http.MethodPost, ls[1], nil); m.Assert(err) {
|
||||||
|
list = append(list, req)
|
||||||
|
}
|
||||||
|
} else if f, e := nfs.OpenFile(m, ls[2]); m.Assert(e) {
|
||||||
defer f.Close()
|
defer f.Close()
|
||||||
if req, err := http.NewRequest(http.MethodPost, ls[1], f); m.Assert(err) {
|
if req, err := http.NewRequest(http.MethodPost, ls[1], f); m.Assert(err) {
|
||||||
list = append(list, req)
|
list = append(list, req)
|
||||||
@ -42,12 +48,20 @@ func _bench_http(m *ice.Message, target string, arg ...string) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
var ndata int64
|
var ndata int64
|
||||||
if s, e := bench.HTTP(m.FormatTaskMeta(), nconn, nreqs, list, func(req *http.Request, res *http.Response) {
|
total, count := nreqs*nconn, 0
|
||||||
n, _ := io.Copy(ioutil.Discard, res.Body)
|
var lock task.Lock
|
||||||
atomic.AddInt64(&ndata, n)
|
web.GoToast(m, m.Option(mdb.NAME), func(toast func(name string, count, total int)) []string {
|
||||||
}); m.Assert(e) {
|
if s, e := bench.HTTP(m.FormatTaskMeta(), nconn, nreqs, list, func(req *http.Request, res *http.Response) {
|
||||||
m.Echo("nconn: %d total: %d ndata: %s\n", nconn, nreqs*nconn, kit.FmtSize(ndata)).Echo(s.Show()).ProcessInner()
|
n, _ := io.Copy(ioutil.Discard, res.Body)
|
||||||
}
|
atomic.AddInt64(&ndata, n)
|
||||||
|
defer lock.Lock()()
|
||||||
|
toast(m.Option(mdb.NAME), count, int(total))
|
||||||
|
count++
|
||||||
|
}); m.Assert(e) {
|
||||||
|
m.Echo("nconn: %d total: %d ndata: %s\n", nconn, total, kit.FmtSize(ndata)).Echo(s.Show()).ProcessInner()
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
}
|
}
|
||||||
func _bench_redis(m *ice.Message, target string, arg ...string) {
|
func _bench_redis(m *ice.Message, target string, arg ...string) {
|
||||||
}
|
}
|
||||||
@ -64,10 +78,18 @@ const BENCH = "bench"
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.MergeCommands(ice.Commands{
|
Index.MergeCommands(ice.Commands{
|
||||||
BENCH: {Help: "压测", Actions: ice.MergeActions(ice.Actions{
|
BENCH: {Help: "压测", Meta: kit.Dict(
|
||||||
|
ice.CTX_TRANS, kit.Dict(html.INPUT, kit.Dict(NCONN, "连接数", NREQS, "请求数")),
|
||||||
|
), Actions: ice.MergeActions(ice.Actions{
|
||||||
mdb.CREATE: {Name: "create zone*=demo"},
|
mdb.CREATE: {Name: "create zone*=demo"},
|
||||||
mdb.INSERT: {Name: "insert zone*=demo type*=http,redis name=demo text*='http://localhost:9020/chat/cmd/web.chat.favor' nconn=10 nreqs=100"},
|
mdb.INSERT: {Name: "insert zone*=demo type*=http,redis name=demo text*='http://localhost:9020/chat/cmd/web.chat.favor' nconn=10 nreqs=100"},
|
||||||
cli.START: {Hand: func(m *ice.Message, arg ...string) {
|
cli.START: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
if m.Option(mdb.ID) == "" {
|
||||||
|
m.Cmds("", m.Option(mdb.ZONE)).Table(func(value ice.Maps) {
|
||||||
|
m.Spawn(value).Cmd("", cli.START)
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
defer web.ToastProcess(m)()
|
defer web.ToastProcess(m)()
|
||||||
switch m.Option(mdb.TYPE) {
|
switch m.Option(mdb.TYPE) {
|
||||||
case HTTP:
|
case HTTP:
|
||||||
@ -76,8 +98,10 @@ func init() {
|
|||||||
_bench_redis(m, m.Option(mdb.TEXT))
|
_bench_redis(m, m.Option(mdb.TEXT))
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
}, mdb.ZoneAction(mdb.FIELDS, "time,id,type,name,text,nconn,nreqs")), Hand: func(m *ice.Message, arg ...string) {
|
}, mdb.ExportZoneAction(mdb.FIELDS, "time,id,type,name,text,nconn,nreqs")), Hand: func(m *ice.Message, arg ...string) {
|
||||||
mdb.ZoneSelect(m, arg...).PushAction(kit.Select(cli.START, mdb.REMOVE, len(arg) == 0))
|
mdb.ZoneSelect(m, arg...)
|
||||||
|
kit.If(len(arg) == 1, func() { m.Action(cli.START) })
|
||||||
|
m.PushAction(kit.Select(cli.START, mdb.REMOVE, len(arg) == 0))
|
||||||
}},
|
}},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user