Init: Create & Init Project...
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
/vendor
 | 
			
		||||
							
								
								
									
										230
									
								
								Gopkg.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										230
									
								
								Gopkg.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,230 @@
 | 
			
		||||
# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  digest = "1:f9ae348e1f793dcf9ed930ed47136a67343dbd6809c5c91391322267f4476892"
 | 
			
		||||
  name = "github.com/Microsoft/go-winio"
 | 
			
		||||
  packages = ["."]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "97e4973ce50b2ff5f09635a57e2b88a037aae829"
 | 
			
		||||
  version = "v0.4.11"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  digest = "1:3cabbabc9e0e4aa7e12b882bdc213f41cf8bd2b2ce2a7b5e0aceaf8a6a78049b"
 | 
			
		||||
  name = "github.com/docker/distribution"
 | 
			
		||||
  packages = [
 | 
			
		||||
    "digest",
 | 
			
		||||
    "reference",
 | 
			
		||||
  ]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "48294d928ced5dd9b378f7fd7c6f5da3ff3f2c89"
 | 
			
		||||
  version = "v2.6.2"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  digest = "1:65e46d4ea06577617ac10d42a4c247200f06a8061ded76a18d5c313ef1b7e0d8"
 | 
			
		||||
  name = "github.com/docker/docker"
 | 
			
		||||
  packages = [
 | 
			
		||||
    "api/types",
 | 
			
		||||
    "api/types/blkiodev",
 | 
			
		||||
    "api/types/container",
 | 
			
		||||
    "api/types/events",
 | 
			
		||||
    "api/types/filters",
 | 
			
		||||
    "api/types/mount",
 | 
			
		||||
    "api/types/network",
 | 
			
		||||
    "api/types/reference",
 | 
			
		||||
    "api/types/registry",
 | 
			
		||||
    "api/types/strslice",
 | 
			
		||||
    "api/types/swarm",
 | 
			
		||||
    "api/types/time",
 | 
			
		||||
    "api/types/versions",
 | 
			
		||||
    "api/types/volume",
 | 
			
		||||
    "client",
 | 
			
		||||
    "pkg/tlsconfig",
 | 
			
		||||
  ]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "092cba3727bb9b4a2f0e922cd6c0f93ea270e363"
 | 
			
		||||
  version = "v1.13.1"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  digest = "1:811c86996b1ca46729bad2724d4499014c4b9effd05ef8c71b852aad90deb0ce"
 | 
			
		||||
  name = "github.com/docker/go-connections"
 | 
			
		||||
  packages = [
 | 
			
		||||
    "nat",
 | 
			
		||||
    "sockets",
 | 
			
		||||
    "tlsconfig",
 | 
			
		||||
  ]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "7395e3f8aa162843a74ed6d48e79627d9792ac55"
 | 
			
		||||
  version = "v0.4.0"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  digest = "1:6f82cacd0af5921e99bf3f46748705239b36489464f4529a1589bc895764fb18"
 | 
			
		||||
  name = "github.com/docker/go-units"
 | 
			
		||||
  packages = ["."]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "47565b4f722fb6ceae66b95f853feed578a4a51c"
 | 
			
		||||
  version = "v0.3.3"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  branch = "master"
 | 
			
		||||
  digest = "1:36fe9527deed01d2a317617e59304eb2c4ce9f8a24115bcc5c2e37b3aee5bae4"
 | 
			
		||||
  name = "github.com/gin-contrib/sse"
 | 
			
		||||
  packages = ["."]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "22d885f9ecc78bf4ee5d72b937e4bbcdc58e8cae"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  digest = "1:d5083934eb25e45d17f72ffa86cae3814f4a9d6c073c4f16b64147169b245606"
 | 
			
		||||
  name = "github.com/gin-gonic/gin"
 | 
			
		||||
  packages = [
 | 
			
		||||
    ".",
 | 
			
		||||
    "binding",
 | 
			
		||||
    "json",
 | 
			
		||||
    "render",
 | 
			
		||||
  ]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "b869fe1415e4b9eb52f247441830d502aece2d4d"
 | 
			
		||||
  version = "v1.3.0"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  digest = "1:adea5a94903eb4384abef30f3d878dc9ff6b6b5b0722da25b82e5169216dfb61"
 | 
			
		||||
  name = "github.com/go-sql-driver/mysql"
 | 
			
		||||
  packages = ["."]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "d523deb1b23d913de5bdada721a6071e71283618"
 | 
			
		||||
  version = "v1.4.0"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  digest = "1:97df918963298c287643883209a2c3f642e6593379f97ab400c2a2e219ab647d"
 | 
			
		||||
  name = "github.com/golang/protobuf"
 | 
			
		||||
  packages = ["proto"]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "aa810b61a9c79d51363740d207bb46cf8e620ed5"
 | 
			
		||||
  version = "v1.2.0"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  digest = "1:b6f4477f09f11785097a121811f3a90d8d26cab73c1aa71abda859bdf6ad2334"
 | 
			
		||||
  name = "github.com/jinzhu/gorm"
 | 
			
		||||
  packages = [
 | 
			
		||||
    ".",
 | 
			
		||||
    "dialects/mysql",
 | 
			
		||||
  ]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "6ed508ec6a4ecb3531899a69cbc746ccf65a4166"
 | 
			
		||||
  version = "v1.9.1"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  branch = "master"
 | 
			
		||||
  digest = "1:fd97437fbb6b7dce04132cf06775bd258cce305c44add58eb55ca86c6c325160"
 | 
			
		||||
  name = "github.com/jinzhu/inflection"
 | 
			
		||||
  packages = ["."]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "04140366298a54a039076d798123ffa108fff46c"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  digest = "1:3e551bbb3a7c0ab2a2bf4660e7fcad16db089fdcfbb44b0199e62838038623ea"
 | 
			
		||||
  name = "github.com/json-iterator/go"
 | 
			
		||||
  packages = ["."]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "1624edc4454b8682399def8740d46db5e4362ba4"
 | 
			
		||||
  version = "v1.1.5"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  digest = "1:d4d17353dbd05cb52a2a52b7fe1771883b682806f68db442b436294926bbfafb"
 | 
			
		||||
  name = "github.com/mattn/go-isatty"
 | 
			
		||||
  packages = ["."]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "0360b2af4f38e8d38c7fce2a9f4e702702d73a39"
 | 
			
		||||
  version = "v0.0.3"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  digest = "1:33422d238f147d247752996a26574ac48dcf472976eda7f5134015f06bf16563"
 | 
			
		||||
  name = "github.com/modern-go/concurrent"
 | 
			
		||||
  packages = ["."]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94"
 | 
			
		||||
  version = "1.0.3"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  digest = "1:e32bdbdb7c377a07a9a46378290059822efdce5c8d96fe71940d87cb4f918855"
 | 
			
		||||
  name = "github.com/modern-go/reflect2"
 | 
			
		||||
  packages = ["."]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "4b7aa43c6742a2c18fdef89dd197aaae7dac7ccd"
 | 
			
		||||
  version = "1.0.1"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  digest = "1:40e195917a951a8bf867cd05de2a46aaf1806c50cf92eebf4c16f78cd196f747"
 | 
			
		||||
  name = "github.com/pkg/errors"
 | 
			
		||||
  packages = ["."]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "645ef00459ed84a119197bfb8d8205042c6df63d"
 | 
			
		||||
  version = "v0.8.0"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  digest = "1:03aa6e485e528acb119fb32901cf99582c380225fc7d5a02758e08b180cb56c3"
 | 
			
		||||
  name = "github.com/ugorji/go"
 | 
			
		||||
  packages = ["codec"]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "b4c50a2b199d93b13dc15e78929cfb23bfdf21ab"
 | 
			
		||||
  version = "v1.1.1"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  branch = "master"
 | 
			
		||||
  digest = "1:58cb5fbdf85e1f468c749aa31773ff102866831106f52762b2823ae235ca11e7"
 | 
			
		||||
  name = "golang.org/x/net"
 | 
			
		||||
  packages = [
 | 
			
		||||
    "context",
 | 
			
		||||
    "context/ctxhttp",
 | 
			
		||||
    "internal/socks",
 | 
			
		||||
    "proxy",
 | 
			
		||||
  ]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "8a410e7b638dca158bf9e766925842f6651ff828"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  branch = "master"
 | 
			
		||||
  digest = "1:0dafafed83f125cdc945a014b2dec15e5b5d8cd2d77a2d1e3763120b08ab381b"
 | 
			
		||||
  name = "golang.org/x/sys"
 | 
			
		||||
  packages = [
 | 
			
		||||
    "unix",
 | 
			
		||||
    "windows",
 | 
			
		||||
  ]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "4910a1d54f876d7b22162a85f4d066d3ee649450"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  digest = "1:c25289f43ac4a68d88b02245742347c94f1e108c534dda442188015ff80669b3"
 | 
			
		||||
  name = "google.golang.org/appengine"
 | 
			
		||||
  packages = ["cloudsql"]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "b1f26356af11148e710935ed1ac8a7f5702c7612"
 | 
			
		||||
  version = "v1.1.0"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  digest = "1:cbc72c4c4886a918d6ab4b95e347ffe259846260f99ebdd8a198c2331cf2b2e9"
 | 
			
		||||
  name = "gopkg.in/go-playground/validator.v8"
 | 
			
		||||
  packages = ["."]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "5f1438d3fca68893a817e4a66806cea46a9e4ebf"
 | 
			
		||||
  version = "v8.18.2"
 | 
			
		||||
 | 
			
		||||
[[projects]]
 | 
			
		||||
  digest = "1:342378ac4dcb378a5448dd723f0784ae519383532f5e70ade24132c4c8693202"
 | 
			
		||||
  name = "gopkg.in/yaml.v2"
 | 
			
		||||
  packages = ["."]
 | 
			
		||||
  pruneopts = "UT"
 | 
			
		||||
  revision = "5420a8b6744d3b0345ab293f6fcba19c978f1183"
 | 
			
		||||
  version = "v2.2.1"
 | 
			
		||||
 | 
			
		||||
[solve-meta]
 | 
			
		||||
  analyzer-name = "dep"
 | 
			
		||||
  analyzer-version = 1
 | 
			
		||||
  input-imports = [
 | 
			
		||||
    "github.com/docker/docker/client",
 | 
			
		||||
    "github.com/gin-gonic/gin",
 | 
			
		||||
    "github.com/jinzhu/gorm",
 | 
			
		||||
    "github.com/jinzhu/gorm/dialects/mysql",
 | 
			
		||||
  ]
 | 
			
		||||
  solver-name = "gps-cdcl"
 | 
			
		||||
  solver-version = 1
 | 
			
		||||
							
								
								
									
										42
									
								
								Gopkg.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								Gopkg.toml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
# Gopkg.toml example
 | 
			
		||||
#
 | 
			
		||||
# Refer to https://golang.github.io/dep/docs/Gopkg.toml.html
 | 
			
		||||
# for detailed Gopkg.toml documentation.
 | 
			
		||||
#
 | 
			
		||||
# required = ["github.com/user/thing/cmd/thing"]
 | 
			
		||||
# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
 | 
			
		||||
#
 | 
			
		||||
# [[constraint]]
 | 
			
		||||
#   name = "github.com/user/project"
 | 
			
		||||
#   version = "1.0.0"
 | 
			
		||||
#
 | 
			
		||||
# [[constraint]]
 | 
			
		||||
#   name = "github.com/user/project2"
 | 
			
		||||
#   branch = "dev"
 | 
			
		||||
#   source = "github.com/myfork/project2"
 | 
			
		||||
#
 | 
			
		||||
# [[override]]
 | 
			
		||||
#   name = "github.com/x/y"
 | 
			
		||||
#   version = "2.4.0"
 | 
			
		||||
#
 | 
			
		||||
# [prune]
 | 
			
		||||
#   non-go = false
 | 
			
		||||
#   go-tests = true
 | 
			
		||||
#   unused-packages = true
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[[constraint]]
 | 
			
		||||
  name = "github.com/gin-gonic/gin"
 | 
			
		||||
  version = "1.3.0"
 | 
			
		||||
 | 
			
		||||
[[constraint]]
 | 
			
		||||
  name = "github.com/jinzhu/gorm"
 | 
			
		||||
  version = "1.9.1"
 | 
			
		||||
 | 
			
		||||
[[constraint]]
 | 
			
		||||
  name = "github.com/docker/docker"
 | 
			
		||||
  version = "1.13.1"
 | 
			
		||||
 | 
			
		||||
[prune]
 | 
			
		||||
  go-tests = true
 | 
			
		||||
  unused-packages = true
 | 
			
		||||
							
								
								
									
										4
									
								
								config.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								config.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
name: nvwa
 | 
			
		||||
version: 1.0
 | 
			
		||||
 | 
			
		||||
port: 8080
 | 
			
		||||
							
								
								
									
										5
									
								
								config/config.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								config/config.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
package config
 | 
			
		||||
 | 
			
		||||
func Init() {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										32
									
								
								controller/common.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								controller/common.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//Response 返回结构体
 | 
			
		||||
type Response struct {
 | 
			
		||||
	Code    int         `json:"code"`
 | 
			
		||||
	Message string      `json:"message"`
 | 
			
		||||
	Data    interface{} `json:"data"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func message(c *gin.Context, message string) {
 | 
			
		||||
	returnData(c, 0, message, nil)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func success(c *gin.Context, data interface{}) {
 | 
			
		||||
	returnData(c, 0, "OK", data)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func error(c *gin.Context, code int, message string) {
 | 
			
		||||
	returnData(c, code, message, nil)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func returnData(c *gin.Context, code int, message string, data interface{}) {
 | 
			
		||||
	c.JSON(0, Response{
 | 
			
		||||
		Code:    code,
 | 
			
		||||
		Message: message,
 | 
			
		||||
		Data:    data,
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										15
									
								
								controller/docker.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								controller/docker.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"yumc.pw/cloud/nvwa/service"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var DockerController = &dockerController{}
 | 
			
		||||
 | 
			
		||||
type dockerController struct {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (d *dockerController) Version(c *gin.Context) {
 | 
			
		||||
	success(c, service.Docker.Version())
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										10
									
								
								controller/docker_container.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								controller/docker_container.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"yumc.pw/cloud/nvwa/service"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (d *dockerController) ContainerList(c *gin.Context) {
 | 
			
		||||
	success(c, service.Docker.ContainerList())
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										10
									
								
								controller/docker_image.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								controller/docker_image.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"yumc.pw/cloud/nvwa/service"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (d *dockerController) ImageList(c *gin.Context) {
 | 
			
		||||
	success(c, service.Docker.ImageList())
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										10
									
								
								controller/docker_node.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								controller/docker_node.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"yumc.pw/cloud/nvwa/service"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (d *dockerController) NodeList(c *gin.Context) {
 | 
			
		||||
	success(c, service.Docker.NodeList())
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										26
									
								
								controller/gitlog.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								controller/gitlog.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"yumc.pw/cloud/nvwa/database"
 | 
			
		||||
	"yumc.pw/cloud/nvwa/model"
 | 
			
		||||
	"yumc.pw/cloud/nvwa/service"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//GitLogCongtoller 控制器
 | 
			
		||||
var GitLogCongtoller = &gitLogCongtoller{}
 | 
			
		||||
 | 
			
		||||
type gitLogCongtoller struct {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//List 列出记录
 | 
			
		||||
func (b *gitLogCongtoller) List(c *gin.Context) {
 | 
			
		||||
	success(c, service.Git.List())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//Add 新增记录
 | 
			
		||||
func (b *gitLogCongtoller) Add(c *gin.Context) {
 | 
			
		||||
	var log = model.GitLog{ProjectID: 1, Hash: "123456789"}
 | 
			
		||||
	database.Create(&log)
 | 
			
		||||
	success(c, nil)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								controller/index.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								controller/index.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
package controller
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//IndexController index
 | 
			
		||||
var IndexController = &indexController{}
 | 
			
		||||
 | 
			
		||||
type indexController struct {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//Ping Test Method
 | 
			
		||||
func (b *indexController) Ping(c *gin.Context) {
 | 
			
		||||
	message(c, "Pong!")
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										36
									
								
								database/database.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								database/database.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
package database
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	"github.com/jinzhu/gorm"
 | 
			
		||||
	_ "github.com/jinzhu/gorm/dialects/mysql" //MySQL
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Db gorm
 | 
			
		||||
var Db *gorm.DB
 | 
			
		||||
 | 
			
		||||
//Init database
 | 
			
		||||
func Init() error {
 | 
			
		||||
	config := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8&parseTime=%t&loc=%s",
 | 
			
		||||
		"nvwa",
 | 
			
		||||
		"nvwa",
 | 
			
		||||
		"server.yumc.pw",
 | 
			
		||||
		"nvwa",
 | 
			
		||||
		true,
 | 
			
		||||
		"Local")
 | 
			
		||||
	db, err := gorm.Open("mysql", config)
 | 
			
		||||
	db.Set("gorm:table_options", "ENGINE=InnoDB")
 | 
			
		||||
	Db = db
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Create insert the value into database
 | 
			
		||||
func Create(value interface{}) *gorm.DB {
 | 
			
		||||
	return Db.Create(value)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//Close database
 | 
			
		||||
func Close() {
 | 
			
		||||
	Db.Close()
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										20
									
								
								main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"yumc.pw/cloud/nvwa/config"
 | 
			
		||||
	"yumc.pw/cloud/nvwa/database"
 | 
			
		||||
	"yumc.pw/cloud/nvwa/model"
 | 
			
		||||
	"yumc.pw/cloud/nvwa/router"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	g := gin.Default()
 | 
			
		||||
 | 
			
		||||
	router.Init(g)
 | 
			
		||||
	config.Init()
 | 
			
		||||
	database.Init()
 | 
			
		||||
	model.Init()
 | 
			
		||||
 | 
			
		||||
	g.Run(":8080")
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										12
									
								
								model/gitlog.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								model/gitlog.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
package model
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/jinzhu/gorm"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// GitLog GIT日志
 | 
			
		||||
type GitLog struct {
 | 
			
		||||
	gorm.Model
 | 
			
		||||
	ProjectID uint
 | 
			
		||||
	Hash      string
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										10
									
								
								model/model.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								model/model.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
package model
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"yumc.pw/cloud/nvwa/database"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//Init 初始化模型
 | 
			
		||||
func Init() {
 | 
			
		||||
	database.Db.AutoMigrate(&GitLog{})
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										33
									
								
								router/router.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								router/router.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
package router
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	//nolint
 | 
			
		||||
	. "yumc.pw/cloud/nvwa/controller"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
//Init 初始化路由
 | 
			
		||||
func Init(g *gin.Engine, handle ...gin.HandlerFunc) *gin.Engine {
 | 
			
		||||
	// 初始化中间件
 | 
			
		||||
	g.Use(handle...)
 | 
			
		||||
 | 
			
		||||
	index := g.Group("/index")
 | 
			
		||||
	{
 | 
			
		||||
		index.GET("/ping", IndexController.Ping)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	git := g.Group("/git")
 | 
			
		||||
	{
 | 
			
		||||
		git.GET("/list", GitLogCongtoller.List)
 | 
			
		||||
		git.GET("/add", GitLogCongtoller.Add)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	docker := g.Group("/docker")
 | 
			
		||||
	{
 | 
			
		||||
		docker.GET("/version", DockerController.Version)
 | 
			
		||||
		docker.GET("/container/list", DockerController.ContainerList)
 | 
			
		||||
		docker.GET("/node/list", DockerController.NodeList)
 | 
			
		||||
		docker.GET("/image/list", DockerController.ImageList)
 | 
			
		||||
	}
 | 
			
		||||
	return g
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										28
									
								
								service/docker.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								service/docker.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
package service
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
 | 
			
		||||
	docker_client "github.com/docker/docker/client"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Docker client
 | 
			
		||||
var Docker = newClient("tcp://server.yumc.pw:2376", "1.38")
 | 
			
		||||
 | 
			
		||||
type docker struct {
 | 
			
		||||
	client  *docker_client.Client
 | 
			
		||||
	context context.Context
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//Init the Docker Client
 | 
			
		||||
func newClient(host string, version string) *docker {
 | 
			
		||||
	client, err := docker_client.NewClient(host, version, nil, nil)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
	return &docker{client: client, context: context.TODO()}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (d *docker) Version() string {
 | 
			
		||||
	return d.client.ClientVersion()
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										18
									
								
								service/docker_container.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								service/docker_container.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
package service
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/docker/docker/api/types"
 | 
			
		||||
	"github.com/docker/docker/api/types/filters"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (d *docker) ContainerList() []types.Container {
 | 
			
		||||
	var (
 | 
			
		||||
		ctx     = d.context
 | 
			
		||||
		options = types.ContainerListOptions{Filters: filters.NewArgs()}
 | 
			
		||||
	)
 | 
			
		||||
	containers, err := d.client.ContainerList(ctx, options)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
	return containers
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										15
									
								
								service/docker_images.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								service/docker_images.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
package service
 | 
			
		||||
 | 
			
		||||
import "github.com/docker/docker/api/types"
 | 
			
		||||
 | 
			
		||||
func (d *docker) ImageList() []types.ImageSummary {
 | 
			
		||||
	var (
 | 
			
		||||
		context = d.context
 | 
			
		||||
		options = types.ImageListOptions{}
 | 
			
		||||
	)
 | 
			
		||||
	images, err := d.client.ImageList(context, options)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
	return images
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										19
									
								
								service/docker_swarm.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								service/docker_swarm.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
package service
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/docker/docker/api/types"
 | 
			
		||||
	"github.com/docker/docker/api/types/filters"
 | 
			
		||||
	"github.com/docker/docker/api/types/swarm"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (d *docker) NodeList() []swarm.Node {
 | 
			
		||||
	var (
 | 
			
		||||
		ctx     = d.context
 | 
			
		||||
		options = types.NodeListOptions{Filters: filters.NewArgs()}
 | 
			
		||||
	)
 | 
			
		||||
	nodes, err := d.client.NodeList(ctx, options)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		panic(err)
 | 
			
		||||
	}
 | 
			
		||||
	return nodes
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								service/git.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								service/git.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
package service
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"yumc.pw/cloud/nvwa/database"
 | 
			
		||||
	"yumc.pw/cloud/nvwa/model"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Git is a git client
 | 
			
		||||
var Git = &git{}
 | 
			
		||||
 | 
			
		||||
type git struct {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (g *git) List() *[]model.GitLog {
 | 
			
		||||
	var users = &[]model.GitLog{}
 | 
			
		||||
	database.Db.Find(&users)
 | 
			
		||||
	return users
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (g *git) Add(model *model.GitLog) {
 | 
			
		||||
	database.Db.Create(model)
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user