Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
B
beego
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
go
beego
Commits
a06022f7
Commit
a06022f7
authored
Dec 12, 2015
by
fuxiaohei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
clean compliated codes, refactor if sections in app.go
parent
80bc372f
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
80 additions
and
85 deletions
+80
-85
admin.go
admin.go
+54
-56
app.go
app.go
+26
-29
No files found.
admin.go
View file @
a06022f7
...
...
@@ -81,7 +81,11 @@ func qpsIndex(rw http.ResponseWriter, r *http.Request) {
func
listConf
(
rw
http
.
ResponseWriter
,
r
*
http
.
Request
)
{
r
.
ParseForm
()
command
:=
r
.
Form
.
Get
(
"command"
)
if
command
!=
""
{
if
command
==
""
{
rw
.
Write
([]
byte
(
"command not support"
))
return
}
data
:=
make
(
map
[
interface
{}]
interface
{})
switch
command
{
case
"conf"
:
...
...
@@ -94,17 +98,17 @@ func listConf(rw http.ResponseWriter, r *http.Request) {
tmpl
.
Execute
(
rw
,
data
)
case
"router"
:
content
:=
make
(
map
[
string
]
interface
{})
var
fields
=
[]
string
{
fmt
.
Sprintf
(
"Router Pattern"
)
,
fmt
.
Sprintf
(
"Methods"
)
,
fmt
.
Sprintf
(
"Controller"
)
,
}
content
[
"Fields"
]
=
fields
methods
:=
[]
string
{}
methodsData
:=
make
(
map
[
string
]
interface
{}
)
var
(
content
=
map
[
string
]
interface
{}{
"Fields"
:
[]
string
{
"Router Pattern"
,
"Methods"
,
"Controller"
,
},
}
methods
=
[]
string
{}
methods
Data
=
make
(
map
[
string
]
interface
{})
)
for
method
,
t
:=
range
BeeApp
.
Handlers
.
routers
{
resultList
:=
new
([][]
string
)
...
...
@@ -121,16 +125,16 @@ func listConf(rw http.ResponseWriter, r *http.Request) {
data
[
"Title"
]
=
"Routers"
execTpl
(
rw
,
data
,
routerAndFilterTpl
,
defaultScriptsTpl
)
case
"filter"
:
content
:=
make
(
map
[
string
]
interface
{})
var
fields
=
[]
string
{
fmt
.
Sprintf
(
"Router Pattern"
),
fmt
.
Sprintf
(
"Filter Function"
),
var
(
content
=
map
[
string
]
interface
{}{
"Fields"
:
[]
string
{
"Router Pattern"
,
"Filter Function"
,
},
}
content
[
"Fields"
]
=
fields
filterTypes
:=
[]
string
{}
filterTypeData
:=
make
(
map
[
string
]
interface
{})
filterTypes
=
[]
string
{}
filterTypeData
=
make
(
map
[
string
]
interface
{})
)
if
BeeApp
.
Handlers
.
enableFilter
{
var
filterType
string
...
...
@@ -165,8 +169,6 @@ func listConf(rw http.ResponseWriter, r *http.Request) {
default
:
rw
.
Write
([]
byte
(
"command not support"
))
}
}
else
{
}
}
func
printTree
(
resultList
*
[][]
string
,
t
*
Tree
)
{
...
...
@@ -180,23 +182,23 @@ func printTree(resultList *[][]string, t *Tree) {
if
v
,
ok
:=
l
.
runObject
.
(
*
controllerInfo
);
ok
{
if
v
.
routerType
==
routerTypeBeego
{
var
result
=
[]
string
{
fmt
.
Sprintf
(
"%s"
,
v
.
pattern
)
,
v
.
pattern
,
fmt
.
Sprintf
(
"%s"
,
v
.
methods
),
fmt
.
Sprintf
(
"%s"
,
v
.
controllerType
),
}
*
resultList
=
append
(
*
resultList
,
result
)
}
else
if
v
.
routerType
==
routerTypeRESTFul
{
var
result
=
[]
string
{
fmt
.
Sprintf
(
"%s"
,
v
.
pattern
)
,
v
.
pattern
,
fmt
.
Sprintf
(
"%s"
,
v
.
methods
),
fmt
.
Sprintf
(
""
)
,
""
,
}
*
resultList
=
append
(
*
resultList
,
result
)
}
else
if
v
.
routerType
==
routerTypeHandler
{
var
result
=
[]
string
{
fmt
.
Sprintf
(
"%s"
,
v
.
pattern
)
,
fmt
.
Sprintf
(
""
)
,
fmt
.
Sprintf
(
""
)
,
v
.
pattern
,
""
,
""
,
}
*
resultList
=
append
(
*
resultList
,
result
)
}
...
...
@@ -209,11 +211,15 @@ func printTree(resultList *[][]string, t *Tree) {
func
profIndex
(
rw
http
.
ResponseWriter
,
r
*
http
.
Request
)
{
r
.
ParseForm
()
command
:=
r
.
Form
.
Get
(
"command"
)
format
:=
r
.
Form
.
Get
(
"format"
)
data
:=
make
(
map
[
interface
{}]
interface
{})
if
command
==
""
{
return
}
var
result
bytes
.
Buffer
if
command
!=
""
{
var
(
format
=
r
.
Form
.
Get
(
"format"
)
data
=
make
(
map
[
interface
{}]
interface
{})
result
bytes
.
Buffer
)
toolbox
.
ProcessInput
(
command
,
&
result
)
data
[
"Content"
]
=
result
.
String
()
...
...
@@ -235,23 +241,19 @@ func profIndex(rw http.ResponseWriter, r *http.Request) {
defaultTpl
=
gcAjaxTpl
}
execTpl
(
rw
,
data
,
profillingTpl
,
defaultTpl
)
}
}
// Healthcheck is a http.Handler calling health checking and showing the result.
// it's in "/healthcheck" pattern in admin module.
func
healthcheck
(
rw
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
data
:=
make
(
map
[
interface
{}]
interface
{})
var
result
=
[]
string
{}
fields
:=
[]
string
{
fmt
.
Sprintf
(
"Name"
),
fmt
.
Sprintf
(
"Message"
),
fmt
.
Sprintf
(
"Status"
),
var
(
data
=
make
(
map
[
interface
{}]
interface
{})
result
=
[]
string
{}
resultList
=
new
([][]
string
)
content
=
map
[
string
]
interface
{}{
"Fields"
:
[]
string
{
"Name"
,
"Message"
,
"Status"
},
}
resultList
:=
new
([][]
string
)
content
:=
make
(
map
[
string
]
interface
{})
)
for
name
,
h
:=
range
toolbox
.
AdminCheckList
{
if
err
:=
h
.
Check
();
err
!=
nil
{
...
...
@@ -271,8 +273,6 @@ func healthcheck(rw http.ResponseWriter, req *http.Request) {
}
*
resultList
=
append
(
*
resultList
,
result
)
}
content
[
"Fields"
]
=
fields
content
[
"Data"
]
=
resultList
data
[
"Content"
]
=
content
data
[
"Title"
]
=
"Health Check"
...
...
@@ -288,10 +288,8 @@ func taskStatus(rw http.ResponseWriter, req *http.Request) {
req
.
ParseForm
()
taskname
:=
req
.
Form
.
Get
(
"taskname"
)
if
taskname
!=
""
{
if
t
,
ok
:=
toolbox
.
AdminTaskList
[
taskname
];
ok
{
err
:=
t
.
Run
()
if
err
!=
nil
{
if
err
:=
t
.
Run
();
err
!=
nil
{
data
[
"Message"
]
=
[]
string
{
"error"
,
fmt
.
Sprintf
(
"%s"
,
err
)}
}
data
[
"Message"
]
=
[]
string
{
"success"
,
fmt
.
Sprintf
(
"%s run success,Now the Status is <br>%s"
,
taskname
,
t
.
GetStatus
())}
...
...
@@ -305,18 +303,18 @@ func taskStatus(rw http.ResponseWriter, req *http.Request) {
resultList
:=
new
([][]
string
)
var
result
=
[]
string
{}
var
fields
=
[]
string
{
fmt
.
Sprintf
(
"Task Name"
)
,
fmt
.
Sprintf
(
"Task Spec"
)
,
fmt
.
Sprintf
(
"Task Status"
)
,
fmt
.
Sprintf
(
"Last Time"
)
,
fmt
.
Sprintf
(
""
)
,
"Task Name"
,
"Task Spec"
,
"Task Status"
,
"Last Time"
,
""
,
}
for
tname
,
tk
:=
range
toolbox
.
AdminTaskList
{
result
=
[]
string
{
fmt
.
Sprintf
(
"%s"
,
tname
)
,
tname
,
fmt
.
Sprintf
(
"%s"
,
tk
.
GetSpec
()),
fmt
.
Sprintf
(
"%s"
,
tk
.
GetStatus
()),
fmt
.
Sprintf
(
"%s"
,
tk
.
GetPrev
()
.
String
()
),
tk
.
GetPrev
()
.
String
(
),
}
*
resultList
=
append
(
*
resultList
,
result
)
}
...
...
app.go
View file @
a06022f7
...
...
@@ -61,18 +61,19 @@ func (app *App) Run() {
var
(
err
error
l
net
.
Listener
endRunning
=
make
(
chan
bool
,
1
)
)
endRunning
:=
make
(
chan
bool
,
1
)
// run cgi server
if
BConfig
.
Listen
.
EnableFcgi
{
if
BConfig
.
Listen
.
EnableStdIo
{
err
=
fcgi
.
Serve
(
nil
,
app
.
Handlers
)
// standard I/O
if
err
==
nil
{
if
err
=
fcgi
.
Serve
(
nil
,
app
.
Handlers
);
err
==
nil
{
// standard I/O
BeeLogger
.
Info
(
"Use FCGI via standard I/O"
)
}
else
{
BeeLogger
.
Info
(
"Cannot use FCGI via standard I/O"
,
err
)
BeeLogger
.
Critical
(
"Cannot use FCGI via standard I/O"
,
err
)
}
return
}
}
else
{
if
BConfig
.
Listen
.
HTTPPort
==
0
{
// remove the Socket file before start
if
utils
.
FileExists
(
addr
)
{
...
...
@@ -85,15 +86,20 @@ func (app *App) Run() {
if
err
!=
nil
{
BeeLogger
.
Critical
(
"Listen: "
,
err
)
}
err
=
fcgi
.
Serve
(
l
,
app
.
Handlers
)
if
err
=
fcgi
.
Serve
(
l
,
app
.
Handlers
);
err
!=
nil
{
BeeLogger
.
Critical
(
"fcgi.Serve: "
,
err
)
}
}
else
{
if
BConfig
.
Listen
.
Graceful
{
httpsAddr
:=
BConfig
.
Listen
.
HTTPSAddr
app
.
Server
.
Addr
=
httpsAddr
return
}
app
.
Server
.
Handler
=
app
.
Handlers
app
.
Server
.
ReadTimeout
=
time
.
Duration
(
BConfig
.
Listen
.
ServerTimeOut
)
*
time
.
Second
app
.
Server
.
WriteTimeout
=
time
.
Duration
(
BConfig
.
Listen
.
ServerTimeOut
)
*
time
.
Second
// run graceful mode
if
BConfig
.
Listen
.
Graceful
{
httpsAddr
:=
BConfig
.
Listen
.
HTTPSAddr
app
.
Server
.
Addr
=
httpsAddr
if
BConfig
.
Listen
.
HTTPSEnable
{
go
func
()
{
time
.
Sleep
(
20
*
time
.
Microsecond
)
...
...
@@ -104,8 +110,7 @@ func (app *App) Run() {
server
:=
grace
.
NewServer
(
httpsAddr
,
app
.
Handlers
)
server
.
Server
.
ReadTimeout
=
app
.
Server
.
ReadTimeout
server
.
Server
.
WriteTimeout
=
app
.
Server
.
WriteTimeout
err
:=
server
.
ListenAndServeTLS
(
BConfig
.
Listen
.
HTTPSCertFile
,
BConfig
.
Listen
.
HTTPSKeyFile
)
if
err
!=
nil
{
if
err
:=
server
.
ListenAndServeTLS
(
BConfig
.
Listen
.
HTTPSCertFile
,
BConfig
.
Listen
.
HTTPSKeyFile
);
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServeTLS: "
,
err
,
fmt
.
Sprintf
(
"%d"
,
os
.
Getpid
()))
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
...
...
@@ -120,20 +125,19 @@ func (app *App) Run() {
if
BConfig
.
Listen
.
ListenTCP4
{
server
.
Network
=
"tcp4"
}
err
:=
server
.
ListenAndServe
()
if
err
!=
nil
{
if
err
:=
server
.
ListenAndServe
();
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServe: "
,
err
,
fmt
.
Sprintf
(
"%d"
,
os
.
Getpid
()))
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
}
}()
}
}
else
{
app
.
Server
.
Addr
=
addr
app
.
Server
.
Handler
=
app
.
Handlers
app
.
Server
.
ReadTimeout
=
time
.
Duration
(
BConfig
.
Listen
.
ServerTimeOut
)
*
time
.
Second
app
.
Server
.
WriteTimeout
=
time
.
Duration
(
BConfig
.
Listen
.
ServerTimeOut
)
*
time
.
Second
<-
endRunning
return
}
// run normal mode
app
.
Server
.
Addr
=
addr
if
BConfig
.
Listen
.
HTTPSEnable
{
go
func
()
{
time
.
Sleep
(
20
*
time
.
Microsecond
)
...
...
@@ -141,15 +145,13 @@ func (app *App) Run() {
app
.
Server
.
Addr
=
fmt
.
Sprintf
(
"%s:%d"
,
BConfig
.
Listen
.
HTTPSAddr
,
BConfig
.
Listen
.
HTTPSPort
)
}
BeeLogger
.
Info
(
"https server Running on %s"
,
app
.
Server
.
Addr
)
err
:=
app
.
Server
.
ListenAndServeTLS
(
BConfig
.
Listen
.
HTTPSCertFile
,
BConfig
.
Listen
.
HTTPSKeyFile
)
if
err
!=
nil
{
if
err
:=
app
.
Server
.
ListenAndServeTLS
(
BConfig
.
Listen
.
HTTPSCertFile
,
BConfig
.
Listen
.
HTTPSKeyFile
);
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServeTLS: "
,
err
)
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
}
}()
}
if
BConfig
.
Listen
.
HTTPEnable
{
go
func
()
{
app
.
Server
.
Addr
=
addr
...
...
@@ -162,16 +164,14 @@ func (app *App) Run() {
endRunning
<-
true
return
}
err
=
app
.
Server
.
Serve
(
ln
)
if
err
!=
nil
{
if
err
=
app
.
Server
.
Serve
(
ln
);
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServe: "
,
err
)
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
return
}
}
else
{
err
:=
app
.
Server
.
ListenAndServe
()
if
err
!=
nil
{
if
err
:=
app
.
Server
.
ListenAndServe
();
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServe: "
,
err
)
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
...
...
@@ -179,9 +179,6 @@ func (app *App) Run() {
}
}()
}
}
}
<-
endRunning
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment