Break more of everything

This commit is contained in:
Dane Everitt 2018-02-20 15:20:57 -06:00
parent 4359d152b7
commit bbc6d26b35
No known key found for this signature in database
GPG Key ID: EEA66103B3D71F53
7 changed files with 96 additions and 75 deletions

6
Gopkg.lock generated
View File

@ -217,7 +217,6 @@
[[projects]]
name = "github.com/shirou/gopsutil"
packages = [
".",
"cpu",
"host",
"internal/common",
@ -225,8 +224,7 @@
"net",
"process"
]
revision = "c432be29ccce470088d07eea25b3ea7e68a8afbb"
version = "v2.18.01"
revision = "543a05cce094293c7747322720256bee15d88a12"
[[projects]]
branch = "master"
@ -343,6 +341,6 @@
[solve-meta]
analyzer-name = "dep"
analyzer-version = 1
inputs-digest = "8a295fa1730b9ed537e5fceeeee2a87c233eee4dea1bf0697d9f94b0c0d23e7d"
inputs-digest = "3f1bdf5882e27f292b13d4b95c9f51eb1a7609af61ccda0fae50a806b0a2ba4f"
solver-name = "gps-cdcl"
solver-version = 1

View File

@ -43,7 +43,7 @@
[[constraint]]
name = "github.com/shirou/gopsutil"
version = "2.18.1"
revision = "543a05cce094293c7747322720256bee15d88a12"
[[constraint]]
name = "github.com/sirupsen/logrus"

View File

@ -5,20 +5,15 @@ import (
"net/http"
"github.com/gin-gonic/gin"
log "github.com/sirupsen/logrus"
"github.com/spf13/viper"
"github.com/pterodactyl/wings/config"
"github.com/sirupsen/logrus"
"github.com/spf13/viper"
)
type InternalAPI struct {
router *gin.Engine
}
func NewAPI() InternalAPI {
return InternalAPI{}
}
// Configure the API and begin listening on the configured IP and Port.
func (api *InternalAPI) Listen() {
if !viper.GetBool(config.Debug) {
@ -28,21 +23,75 @@ func (api *InternalAPI) Listen() {
api.router = gin.Default()
api.router.RedirectTrailingSlash = false
// Setup Access-Control origin headers. Down the road once this is closer to
// release we should setup this header properly and lock it down to the domain
// used to run the Panel.
api.router.Use(func(c *gin.Context) {
c.Header("Access-Control-Allow-Origin", "*")
})
api.router.OPTIONS("/", func(c *gin.Context) {
c.Header("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE, OPTIONS")
c.Header("Access-Control-Allow-Headers", "X-Access-Token")
c.Header("Access-Control-Allow-Headers", "Authorization")
})
api.RegisterRoutes()
// Register all of the API route bindings.
api.register()
listenString := fmt.Sprintf("%s:%d", viper.GetString(config.APIHost), viper.GetInt(config.APIPort))
l := fmt.Sprintf("%s:%d", viper.GetString(config.APIHost), viper.GetInt(config.APIPort))
api.router.Run(l)
api.router.Run(listenString)
log.Info("Now listening on %s", listenString)
log.Fatal(http.ListenAndServe(listenString, nil))
logrus.Info("Now listening on %s", l)
logrus.Fatal(http.ListenAndServe(l, nil))
}
// Register routes for v1 of the API. This API should be fully backwards compatable with
// the existing Nodejs Daemon API.
//
// Routes that are not yet completed are commented out. Routes are grouped where possible
// to keep this function organized.
func (api *InternalAPI) register() {
v1 := api.router.Group("/api/v1")
{
v1.GET("/", AuthHandler(""), GetIndex)
//v1.PATCH("/config", AuthHandler("c:config"), PatchConfiguration)
v1.GET("/servers", AuthHandler("c:list"), handleGetServers)
v1.POST("/servers", AuthHandler("c:create"), handlePostServers)
v1ServerRoutes := v1.Group("/servers/:server")
{
v1ServerRoutes.GET("/", AuthHandler("s:get"), handleGetServer)
v1ServerRoutes.PATCH("/", AuthHandler("s:config"), handlePatchServer)
v1ServerRoutes.DELETE("/", AuthHandler("g:server:delete"), handleDeleteServer)
v1ServerRoutes.POST("/reinstall", AuthHandler("s:install-server"), handlePostServerReinstall)
v1ServerRoutes.POST("/rebuild", AuthHandler("g:server:rebuild"), handlePostServerRebuild)
v1ServerRoutes.POST("/password", AuthHandler(""), handlePostServerPassword)
v1ServerRoutes.POST("/power", AuthHandler("s:power"), handlePostServerPower)
v1ServerRoutes.POST("/command", AuthHandler("s:command"), handlePostServerCommand)
v1ServerRoutes.GET("/log", AuthHandler("s:console"), handleGetServerLog)
v1ServerRoutes.POST("/suspend", AuthHandler(""), handlePostServerSuspend)
v1ServerRoutes.POST("/unsuspend", AuthHandler(""), handlePostServerUnsuspend)
}
//v1ServerFileRoutes := v1.Group("/servers/:server/files")
//{
// v1ServerFileRoutes.GET("/file/:file", AuthHandler("s:files:read"), handleGetFile)
// v1ServerFileRoutes.GET("/stat/:file", AuthHandler("s:files:"), handleGetFileStat)
// v1ServerFileRoutes.GET("/dir/:directory", AuthHandler("s:files:get"), handleGetDirectory)
//
// v1ServerFileRoutes.POST("/dir/:directory", AuthHandler("s:files:create"), handlePostFilesFolder)
// v1ServerFileRoutes.POST("/file/:file", AuthHandler("s:files:post"), handlePostFile)
//
// v1ServerFileRoutes.POST("/copy/:file", AuthHandler("s:files:copy"), handlePostFileCopy)
// v1ServerFileRoutes.POST("/move/:file", AuthHandler("s:files:move"), handlePostFileMove)
// v1ServerFileRoutes.POST("/rename/:file", AuthHandler("s:files:move"), handlePostFileMove)
// v1ServerFileRoutes.POST("/compress/:file", AuthHandler("s:files:compress"), handlePostFileCompress)
// v1ServerFileRoutes.POST("/decompress/:file", AuthHandler("s:files:decompress"), handlePostFileDecompress)
//
// v1ServerFileRoutes.DELETE("/file/:file", AuthHandler("s:files:delete"), handleDeleteFile)
//
// v1ServerFileRoutes.GET("/download/:token", handleGetDownloadFile)
//}
}
}

View File

@ -10,7 +10,7 @@ import (
)
const (
accessTokenHeader = "X-Access-Token"
accessTokenHeader = "Authorization"
contextVarServer = "server"
contextVarAuth = "auth"

View File

@ -1,13 +1,15 @@
package api
import (
"fmt"
"net/http"
//"runtime"
"github.com/gin-gonic/gin"
"github.com/pterodactyl/wings/constants"
//"github.com/pterodactyl/wings/constants"
//"github.com/shirou/gopsutil/host"
//"github.com/shirou/gopsutil/cpu"
"github.com/shirou/gopsutil/cpu"
//"github.com/shirou/gopsutil/host"
//"github.com/shirou/gopsutil/mem"
log "github.com/sirupsen/logrus"
@ -15,6 +17,30 @@ import (
func GetIndex(c *gin.Context) {
//auth := GetContextAuthManager(c)
//if auth == nil {
// c.Header("Content-Type", "text/html")
// c.String(http.StatusOK, constants.IndexPage)
//}
s, err := cpu.Counts(true)
if err != nil {
log.WithError(err).Error("Failed to retrieve host information.")
}
fmt.Println(s)
i := struct {
Name string
Cpu struct {
Cores int
}
}{
Name: "Wings",
}
i.Cpu.Cores = s
c.JSON(http.StatusOK, i)
return
//if auth != nil && auth.HasPermission("c:info") {
// hostInfo, err := host.Info()
@ -55,9 +81,6 @@ func GetIndex(c *gin.Context) {
// c.JSON(http.StatusOK, info)
// return
//}
c.Header("Content-Type", "text/html")
c.String(http.StatusOK, constants.IndexPage)
}
type incomingConfiguration struct {

View File

@ -1,49 +0,0 @@
package api
func (api *InternalAPI) RegisterRoutes() {
// Register routes for v1 of the API. This API should be fully backwards compatable with
// the existing Nodejs Daemon API.
v1 := api.router.Group("/v1")
{
v1.GET("/", AuthHandler(""), GetIndex)
//v1.PATCH("/config", AuthHandler("c:config"), PatchConfiguration)
v1.GET("/servers", AuthHandler("c:list"), handleGetServers)
v1.POST("/servers", AuthHandler("c:create"), handlePostServers)
v1ServerRoutes := v1.Group("/servers/:server")
{
v1ServerRoutes.GET("/", AuthHandler("s:get"), handleGetServer)
v1ServerRoutes.PATCH("/", AuthHandler("s:config"), handlePatchServer)
v1ServerRoutes.DELETE("/", AuthHandler("g:server:delete"), handleDeleteServer)
v1ServerRoutes.POST("/reinstall", AuthHandler("s:install-server"), handlePostServerReinstall)
v1ServerRoutes.POST("/rebuild", AuthHandler("g:server:rebuild"), handlePostServerRebuild)
v1ServerRoutes.POST("/password", AuthHandler(""), handlePostServerPassword)
v1ServerRoutes.POST("/power", AuthHandler("s:power"), handlePostServerPower)
v1ServerRoutes.POST("/command", AuthHandler("s:command"), handlePostServerCommand)
v1ServerRoutes.GET("/log", AuthHandler("s:console"), handleGetServerLog)
v1ServerRoutes.POST("/suspend", AuthHandler(""), handlePostServerSuspend)
v1ServerRoutes.POST("/unsuspend", AuthHandler(""), handlePostServerUnsuspend)
}
//v1ServerFileRoutes := v1.Group("/servers/:server/files")
//{
// v1ServerFileRoutes.GET("/file/:file", AuthHandler("s:files:read"), handleGetFile)
// v1ServerFileRoutes.GET("/stat/:file", AuthHandler("s:files:"), handleGetFileStat)
// v1ServerFileRoutes.GET("/dir/:directory", AuthHandler("s:files:get"), handleGetDirectory)
//
// v1ServerFileRoutes.POST("/dir/:directory", AuthHandler("s:files:create"), handlePostFilesFolder)
// v1ServerFileRoutes.POST("/file/:file", AuthHandler("s:files:post"), handlePostFile)
//
// v1ServerFileRoutes.POST("/copy/:file", AuthHandler("s:files:copy"), handlePostFileCopy)
// v1ServerFileRoutes.POST("/move/:file", AuthHandler("s:files:move"), handlePostFileMove)
// v1ServerFileRoutes.POST("/rename/:file", AuthHandler("s:files:move"), handlePostFileMove)
// v1ServerFileRoutes.POST("/compress/:file", AuthHandler("s:files:compress"), handlePostFileCompress)
// v1ServerFileRoutes.POST("/decompress/:file", AuthHandler("s:files:decompress"), handlePostFileDecompress)
//
// v1ServerFileRoutes.DELETE("/file/:file", AuthHandler("s:files:delete"), handleDeleteFile)
//
// v1ServerFileRoutes.GET("/download/:token", handleGetDownloadFile)
//}
}
}

View File

@ -66,6 +66,6 @@ func run(cmd *cobra.Command, args []string) {
}
logrus.Info("Registering API server and booting.")
a := api.NewAPI()
a := api.InternalAPI{}
a.Listen()
}