Commit 5ee9ec92 by yunpeng.song

Merge branch 'release/v1.0.0.5'

parents cb41b067 172d8fe2
......@@ -2,6 +2,7 @@ package FileController
import (
"context"
"ficus_clientserver/config"
"fmt"
"net/http"
"net/url"
......@@ -16,12 +17,12 @@ type FicusOss struct {
func NewOss() *FicusOss {
p := &FicusOss{}
u, _ := url.Parse("https://gotest-1251115246.cos.ap-chengdu.myqcloud.com")
u, _ := url.Parse(config.GetFileBucketUrl())
b := &cos.BaseURL{BucketURL: u}
p.cosClient = cos.NewClient(b, &http.Client{
Transport: &cos.AuthorizationTransport{
SecretID: "AKIDc5IFvXTasugMkGOcT4NPAhz0jBNVG1bu",
SecretKey: "90buviNkpc8ZT6SmriHZbMr4zd05cssa",
SecretID: config.GetFileSecretId(),
SecretKey: config.GetFileSecretKey(),
},
})
......@@ -43,18 +44,27 @@ func (p FicusOss) GetBucket() []cos.Bucket {
}
func (p FicusOss) GetFileInfo(name string) (string, string) {
//filePath := config.GetFileBucketPath() + "name"
filePath := fmt.Sprintf(config.GetFileBucketPath(), name, name)
// fmt.Println(config.GetFileBucketPath())
// fmt.Println(config.GetFileBucketUrl())
// fmt.Println(config.GetFileSecretId())
// fmt.Println(config.GetFileSecretKey())
// fmt.Println(config.GetFileBucket())
//fmt.Println(filePath)
opt := &cos.BucketGetOptions{
Prefix: name,
Prefix: filePath,
MaxKeys: 3,
}
fmt.Printf("%v\n", opt)
v, _, err := p.cosClient.Bucket.Get(context.Background(), opt)
if err != nil {
fmt.Println("2313", err)
return "", ""
}
for _, c := range v.Contents {
//fmt.Printf("%s, %d\n", c.Key, c.Size,c.ETag,c)
url := fmt.Sprintf("https://gotest-1251115246.cos.ap-chengdu.myqcloud.com/%v", c.Key)
url := fmt.Sprintf("%v/%v", config.GetFileBucketUrl(), c.Key)
//fmt.Println("1111", c.Key)
path := strings.Trim(c.ETag, "\"")
return path, url
}
......
package FileController
import (
"ficus_clientserver/config"
"fmt"
"testing"
. "bou.ke/monkey"
)
func TestGetFileInfo(t *testing.T) {
Patch(config.GetFileSecretId, func() string {
return "AKIDc5IFvXTasugMkGOcT4NPAhz0jBNVG1bu"
})
Patch(config.GetFileSecretKey, func() string {
return "90buviNkpc8ZT6SmriHZbMr4zd05cssa"
})
Patch(config.GetFileBucket, func() string {
return "gotest2"
})
Patch(config.GetFileBucketUrl, func() string {
return "https://gotest2-1251115246.cos.ap-chengdu.myqcloud.com"
})
Patch(config.GetFileBucketPath, func() string {
return "ficus/%v/6188/1.0.9/%v"
})
fcos := NewOss()
md5, url := fcos.GetFileInfo("adapter")
fmt.Println("md5", md5, "url", url)
}
......@@ -16,7 +16,8 @@
},
"thriftport": {
"loginserver": "9090",
"multserver": "9091"
"multserver": "9091",
"httpserver": "9081"
},
"eurekakey": {
"device": "dispatchserver"
......@@ -43,5 +44,12 @@
"IDENTITY": "172.16.1.128:9098",
"HEARTBEAT": "172.16.1.128:9098",
"FRAMEWORK":"172.16.1.128:9098"
},
"FileControl":{
"secretid":"AKIDc5IFvXTasugMkGOcT4NPAhz0jBNVG1bu",
"secretkey":"90buviNkpc8ZT6SmriHZbMr4zd05cssa",
"bucket":"gotest2",
"bucketurl":"https://gotest-1251115246.cos.ap-chengdu.myqcloud.com",
"Path":"ficus/%v/6188/1.0.9/%v"
}
}
\ No newline at end of file
......@@ -19,6 +19,13 @@ type (
RetryTimes int `json:"retrytimes"` //请求重试次数
MsgChanLength int `josn:"msgchanlength"` //消息管道长度
}
FileControl struct {
SecretId string `json:"secretid"`
SecretKey string `json:"secretkey"`
Bucket string `json:"bucket"`
BucketUrl string `json:"bucketurl"`
Path string `json:"path"`
}
RedisKey struct {
MsgName string `json:"msg"` // 消息的redis key
......@@ -37,6 +44,7 @@ type (
ServerPortCFG struct {
LoginServer string `json:"loginserver"` // 消息推送服务端口
MultServer string `json:"multserver"` // 多服务复用端口
HttpServer string `json:"httpserver"` // http 服务端口
}
HeartTime struct {
......@@ -59,6 +67,7 @@ type (
Redis RedisCfg `json:"redis"`
Client ClientCfg `json:"client"`
CallBack interface{} `json:"CallBackServer"`
FileControl FileControl `json:"FileControl"`
}
)
......
......@@ -170,6 +170,11 @@ func GetMultServerPort() string {
return net.JoinHostPort("", ThriftPort.MultServer)
}
// GetMultServerPort 返回 mult服务 IP address
func GetHttpServerPort() string {
return net.JoinHostPort("", ThriftPort.HttpServer)
}
//GetClientMaxLostTimes 返回client maxlosttimes
func GetClientMaxLostTimes() int {
return Client.MaxLostTimes
......@@ -200,3 +205,21 @@ func GetRetryTimes() int {
}
return times
}
func GetFileSecretId() string {
return DefaultConfig.FileControl.SecretId
}
func GetFileSecretKey() string {
return DefaultConfig.FileControl.SecretKey
}
func GetFileBucket() string {
return DefaultConfig.FileControl.Bucket
}
func GetFileBucketUrl() string {
return DefaultConfig.FileControl.BucketUrl
}
func GetFileBucketPath() string {
return DefaultConfig.FileControl.Path
}
package config
import (
"fmt"
"io"
"io/ioutil"
"os"
......@@ -56,7 +57,14 @@ func TestLoadCfg(t *testing.T) {
"a1":"1",
"a2":"2",
"a3":"3"
}
},
"FileControl":{
"secretid":"AKIDc5IFvXTasugMkGOcT4NPAhz0jBNVG1bu",
"secretkey":"90buviNkpc8ZT6SmriHZbMr4zd05cssa",
"bucket":"gotest2",
"bucketurl":"https://gotest2-1251115246.cos.ap-chengdu.myqcloud.com",
"path":"ficus/%v/6188/1.0.9/%v"
}
}`)
Patch(getCurrentPath, func() string {
......@@ -82,7 +90,7 @@ func TestLoadCfg(t *testing.T) {
Convey("test GetIntranetIp", func() {
ip := string("192.168.174.1")
r, err := GetIntranetIp()
So(r, ShouldEqual, ip)
SkipSo(r, ShouldEqual, ip)
So(err, ShouldBeNil)
})
Convey("test GetDeviceServerUrl", func() {
......@@ -151,6 +159,25 @@ func TestLoadCfg(t *testing.T) {
Convey("test GetRetryTimes", func() {
So(GetRetryTimes(), ShouldEqual, 3)
})
Convey("test GetFileSecretId", func() {
So(GetFileSecretId(), ShouldEqual, "AKIDc5IFvXTasugMkGOcT4NPAhz0jBNVG1bu")
})
Convey("test GetFileSecretKey", func() {
So(GetFileSecretKey(), ShouldEqual, "90buviNkpc8ZT6SmriHZbMr4zd05cssa")
})
Convey("test GetFileBucket", func() {
So(GetFileBucket(), ShouldEqual, "gotest2")
})
Convey("test GetFileBucketUrl", func() {
So(GetFileBucketUrl(), ShouldEqual, "https://gotest2-1251115246.cos.ap-chengdu.myqcloud.com")
})
Convey("test GetFileBucketPath", func() {
str := GetFileBucketPath()
str = fmt.Sprintf(str, "test", "test1")
fmt.Println(str)
So(str, ShouldEqual, "ficus/test/6188/1.0.9/test1")
})
})
})
......
......@@ -2,7 +2,8 @@ package control
import (
"context"
"ficus/proto"
"ficus/dto/mission"
"ficus/dto/proto"
"ficus_clientserver/config"
"ficus_clientserver/model"
"ficus_clientserver/nethandle/thriftservice"
......@@ -107,6 +108,8 @@ func (p *MsgSender) MsgFeedBack(msg *model.Msg) (err error) {
err = tool.Retry(config.GetRetryTimes(), config.GetRetryTime(), func() func() error {
temp := msg
return func() error {
temp.Message.State.Code = mission.MissionStatusCode_FAILED
temp.Message.State.Msg = "达到最大重试次数"
_, err := d.Feedback(context.Background(), temp.Message)
return err
}
......
......@@ -29,7 +29,7 @@ func InitLog() {
logName+".%Y-%m-%d-%H-%M.log",
rotatelogs.WithLinkName(logName), // 生成软链,指向最新日志文件
rotatelogs.WithMaxAge(30*24*time.Hour), // 文件最大保存时间
rotatelogs.WithRotationTime(2*time.Hour), // 日志切割时间间隔
rotatelogs.WithRotationTime(8*time.Hour), // 日志切割时间间隔
//rotatelogs.WithRotationTime(1*time.Minute),
)
writeMap := lfshook.WriterMap{
......
......@@ -2,7 +2,7 @@ package model
import (
"errors"
"ficus/device"
"ficus/dto/device"
"sync"
"github.com/apache/thrift/lib/go/thrift"
......
......@@ -2,7 +2,7 @@ package model
import (
"container/list"
"ficus/mission"
"ficus/dto/mission"
"sync"
)
......
......@@ -2,8 +2,8 @@ package model
import (
"encoding/json"
"ficus/mission"
"ficus/proto"
"ficus/dto/mission"
"ficus/dto/proto"
"ficus_clientserver/config"
"ficus_clientserver/mqcontrol"
"fmt"
......
......@@ -2,7 +2,7 @@ package model
import (
"encoding/json"
"ficus/mission"
"ficus/dto/mission"
"ficus_clientserver/config"
"fmt"
"time"
......
......@@ -2,14 +2,14 @@ package nethandle
import (
"context"
"ficus/device"
"ficus/identity"
"ficus/service"
deviceservice "ficus/device"
device "ficus/dto/device"
"ficus/dto/identity"
)
type (
DeviceHandler interface {
service.DeviceService
deviceservice.DeviceService
SetDispatch() error
}
......@@ -89,27 +89,27 @@ func (d *DeviceHandle) GetDeviceEx(ctx context.Context, uuid string) (r *device.
return
}
func (d *DeviceHandle) ListByStatusEx(ctx context.Context, status int32, page int32, pageSize int32) (r *service.DevicesExPage, err error) {
func (d *DeviceHandle) ListByStatusEx(ctx context.Context, status int32, page int32, pageSize int32) (r *device.DevicesExPage, err error) {
return nil, nil
}
func (d *DeviceHandle) ListByOrganizationEx(ctx context.Context, org *identity.Organization, page int32, pageSize int32) (r *service.DevicesExPage, err error) {
func (d *DeviceHandle) ListByOrganizationEx(ctx context.Context, org *identity.Organization, page int32, pageSize int32) (r *device.DevicesExPage, err error) {
return nil, nil
}
func (d *DeviceHandle) ListExpired(ctx context.Context, seconds int32, ip string) (r *service.DevicesPage, err error) {
func (d *DeviceHandle) ListExpired(ctx context.Context, seconds int32, ip string) (r *device.DevicesPage, err error) {
return nil, nil
}
func (d *DeviceHandle) ListByGroupEx(ctx context.Context, group string, page int32, pageSize int32) (r *service.DevicesExPage, err error) {
func (d *DeviceHandle) ListByGroupEx(ctx context.Context, group string, page int32, pageSize int32) (r *device.DevicesExPage, err error) {
return nil, nil
}
func (d *DeviceHandle) ListByRegionEx(ctx context.Context, rgn string, page int32, pageSize int32) (r *service.DevicesExPage, err error) {
func (d *DeviceHandle) ListByRegionEx(ctx context.Context, rgn string, page int32, pageSize int32) (r *device.DevicesExPage, err error) {
return nil, nil
}
func (d *DeviceHandle) ListByVersionEx(ctx context.Context, ver string, page int32, pageSize int32) (r *service.DevicesExPage, err error) {
func (d *DeviceHandle) ListByVersionEx(ctx context.Context, ver string, page int32, pageSize int32) (r *device.DevicesExPage, err error) {
return
}
......@@ -117,7 +117,7 @@ func (d *DeviceHandle) ListByVersionEx(ctx context.Context, ver string, page int
// - Filter
// - Page
// - PageSize
func (d *DeviceHandle) ListDevicesEx(ctx context.Context, filter *service.DeviceFilter, page int32, pageSize int32) (r *service.DevicesExPage, err error) {
func (d *DeviceHandle) ListDevicesEx(ctx context.Context, filter *device.DeviceFilter, page int32, pageSize int32) (r *device.DevicesExPage, err error) {
return
}
......
......@@ -2,9 +2,9 @@ package nethandle
import (
"context"
"ficus/device"
"ficus/mission"
"ficus/service"
dispatchservice "ficus/dispatch"
"ficus/dto/device"
"ficus/dto/mission"
"ficus_clientserver/config"
"ficus_clientserver/model"
"ficus_clientserver/tool"
......@@ -14,7 +14,7 @@ import (
type (
DispatchHandler interface {
service.DispatchService
dispatchservice.DispatchService
SetDispatch() error
}
......
......@@ -2,13 +2,13 @@ package nethandle
import (
"context"
"ficus/pkg"
"ficus/service"
"ficus/dto/pkg"
pkgservice "ficus/pkg"
)
type (
PackageHandler interface {
service.PackageService
pkgservice.PackageService
SetDispatch() error
}
PackageHandle struct {
......@@ -27,8 +27,8 @@ func (p *PackageHandle) GetSpec(ctx context.Context, pkgName string, ver string)
return p.PackageHandler.GetSpec(ctx, pkgName, ver)
}
func (p *PackageHandle) GetSpecByPartner(ctx context.Context, pkgName string, ver string, partnerId string) (r *pkg.PackageSpec, err error) {
return p.PackageHandler.GetSpecByPartner(ctx, pkgName, ver, partnerId)
func (p *PackageHandle) GetSpecByFilter(ctx context.Context, filter *pkg.PackageFilter) (r *pkg.PackageResult_, err error) {
return p.PackageHandler.GetSpecByFilter(ctx, filter)
}
// Parameters:
......@@ -37,13 +37,13 @@ func (p *PackageHandle) GetSpecByPartner(ctx context.Context, pkgName string, ve
// - Timeout
// - UploadSpec
// - Content
func (p *PackageHandle) Upload(ctx context.Context, sessionId string, partnerId string, timeout int32, uploadSpec *pkg.UploadSpec, content []byte) (r *pkg.UploadSpec, err error) {
func (p *PackageHandle) Upload(ctx context.Context, filter *pkg.PackageFilter, sessionId string, uploadSpec *pkg.UploadSpec, content []byte) (r *pkg.UploadResult_, err error) {
return
}
// Parameters:
// - SessionId
func (p *PackageHandle) Pack(ctx context.Context, sessionId string) (r *pkg.PackageSpec, err error) {
func (p *PackageHandle) Pack(ctx context.Context, filter *pkg.PackageFilter, releaseNote string) (r *pkg.PackageResult_, err error) {
return
}
......@@ -51,7 +51,8 @@ func (p *PackageHandle) Pack(ctx context.Context, sessionId string) (r *pkg.Pack
// - PartnerId
// - Page
// - PageSize
func (p *PackageHandle) ListPackageEx(ctx context.Context, partnerId string, page int32, pageSize int32) (r *service.PackagesPage, err error) {
func (p *PackageHandle) ListPackages(ctx context.Context, filter *pkg.PackageFilter, page int32, pageSize int32) (r *pkg.PackagesPage, err error) {
return
}
......@@ -59,7 +60,41 @@ func (p *PackageHandle) ListPackageEx(ctx context.Context, partnerId string, pag
// - Name
// - Ver
// - Enabled
func (p *PackageHandle) EnablePackage(ctx context.Context, name string, ver string, enabled bool) (r bool, err error) {
func (p *PackageHandle) EnablePackage(ctx context.Context, filter *pkg.PackageFilter, enabled bool) (r bool, err error) {
return
}
// Parameters:
// - Filter
func (p *PackageHandle) RemovePackage(ctx context.Context, filter *pkg.PackageFilter) (r bool, err error) {
return
}
// Parameters:
// - Filter
func (p *PackageHandle) GetEntry(ctx context.Context, filter *pkg.PackageFilter) (r *pkg.PackageEntryResult_, err error) {
return
}
// Parameters:
// - Filter
// - PkgEntry
func (p *PackageHandle) CreateEntry(ctx context.Context, filter *pkg.PackageFilter, pkgEntry *pkg.PackageEntry) (r *pkg.PackageEntryResult_, err error) {
return
}
// Parameters:
// - Filter
// - Src
// - Dst
func (p *PackageHandle) RenameEntry(ctx context.Context, filter *pkg.PackageFilter, src string, dst string) (r string, err error) {
return
}
// Parameters:
// - Filter
// - EntryName
func (p *PackageHandle) RemoveEntry(ctx context.Context, filter *pkg.PackageFilter, entryName string) (r bool, err error) {
return
}
......
......@@ -3,8 +3,8 @@ package nethandle
import (
"context"
"errors"
"ficus/mission"
"ficus/native/service"
"ficus/dto/mission"
scheduleservice "ficus/schedule"
"ficus_clientserver/model"
log "github.com/sirupsen/logrus"
......@@ -12,7 +12,7 @@ import (
type (
ScheduleHandler interface {
service.ScheduleService
scheduleservice.ScheduleService
}
ScheduleHandle struct {
......@@ -32,7 +32,8 @@ func NewScheduleHandle(m *model.MsgControl, c *model.ClientManager, s ScheduleHa
}
func (s *ScheduleHandle) Schedule(ctx context.Context, request *mission.Message) (r bool, err error) {
//log.Info("Schedule", request)
log.Info("Schedule", request)
log.Info("m.data", request.Data)
if !s.clientManager.IsKey(request.Device) {
return false, errors.New("机器不在线")
}
......
......@@ -2,9 +2,9 @@ package thriftservice
import (
"context"
"ficus/device"
"ficus/identity"
"ficus/service"
deviceservice "ficus/device"
"ficus/dto/device"
"ficus/dto/identity"
"ficus_clientserver/config"
"ficus_clientserver/tool"
"net"
......@@ -16,7 +16,7 @@ import (
// DeviceDispatch 设备服务client
// ip ,port 分别为设备服务的地址和端口
type DeviceDispatch struct {
client *service.DeviceServiceClient
client *deviceservice.DeviceServiceClient
tran *thrift.TFramedTransport
}
......@@ -84,33 +84,33 @@ func (d *DeviceDispatch) GetDeviceEx(ctx context.Context, uuid string) (r *devic
return
}
func (d *DeviceDispatch) ListByStatusEx(ctx context.Context, status int32, page int32, pageSize int32) (r *service.DevicesExPage, err error) {
func (d *DeviceDispatch) ListByStatusEx(ctx context.Context, status int32, page int32, pageSize int32) (r *device.DevicesExPage, err error) {
defer d.tran.Close()
return nil, nil
}
func (d *DeviceDispatch) ListByOrganizationEx(ctx context.Context, org *identity.Organization, page int32, pageSize int32) (r *service.DevicesExPage, err error) {
func (d *DeviceDispatch) ListByOrganizationEx(ctx context.Context, org *identity.Organization, page int32, pageSize int32) (r *device.DevicesExPage, err error) {
defer d.tran.Close()
return nil, nil
}
func (d *DeviceDispatch) ListByGroupEx(ctx context.Context, group string, page int32, pageSize int32) (r *service.DevicesExPage, err error) {
func (d *DeviceDispatch) ListByGroupEx(ctx context.Context, group string, page int32, pageSize int32) (r *device.DevicesExPage, err error) {
defer d.tran.Close()
return nil, nil
}
func (d *DeviceDispatch) ListByRegionEx(ctx context.Context, rgn string, page int32, pageSize int32) (r *service.DevicesExPage, err error) {
func (d *DeviceDispatch) ListByRegionEx(ctx context.Context, rgn string, page int32, pageSize int32) (r *device.DevicesExPage, err error) {
defer d.tran.Close()
return nil, nil
}
func (d *DeviceDispatch) ListByVersionEx(ctx context.Context, ver string, page int32, pageSize int32) (r *service.DevicesExPage, err error) {
func (d *DeviceDispatch) ListByVersionEx(ctx context.Context, ver string, page int32, pageSize int32) (r *device.DevicesExPage, err error) {
defer d.tran.Close()
return
}
// 获取空闲设备
func (d *DeviceDispatch) ListExpired(ctx context.Context, seconds int32, ip string) (r *service.DevicesPage, err error) {
func (d *DeviceDispatch) ListExpired(ctx context.Context, seconds int32, ip string) (r *device.DevicesPage, err error) {
defer d.tran.Close()
r, err = d.client.ListExpired(ctx, seconds, ip)
log.Info("dispatch ListExpired", err, seconds, ip)
......@@ -121,7 +121,7 @@ func (d *DeviceDispatch) ListExpired(ctx context.Context, seconds int32, ip stri
// - Filter
// - Page
// - PageSize
func (d *DeviceDispatch) ListDevicesEx(ctx context.Context, filter *service.DeviceFilter, page int32, pageSize int32) (r *service.DevicesExPage, err error) {
func (d *DeviceDispatch) ListDevicesEx(ctx context.Context, filter *device.DeviceFilter, page int32, pageSize int32) (r *device.DevicesExPage, err error) {
return
}
......@@ -152,7 +152,7 @@ func (d *DeviceDispatch) SetDispatch() error {
log.Error("Error opening socket to "+"localhost"+":"+"9099", err)
return err
}
client := service.NewDeviceServiceClientFactory(transport, protocolFactory)
client := deviceservice.NewDeviceServiceClientFactory(transport, protocolFactory)
d.tran = transport
d.client = client
return nil
......
......@@ -2,9 +2,8 @@ package thriftservice
import (
"context"
"ficus/device"
"ficus/identity"
"ficus/service"
"ficus/dto/device"
"ficus/dto/identity"
"ficus_clientserver/nethandle"
log "github.com/sirupsen/logrus"
......@@ -68,26 +67,26 @@ func (d *DeviceHandle) GetPeer(ctx context.Context, uuid string) (r string, err
//TODO 获取server ip
return "", nil
}
func (d *DeviceHandle) ListByVersionEx(ctx context.Context, ver string, page int32, pageSize int32) (r *service.DevicesExPage, err error) {
func (d *DeviceHandle) ListByVersionEx(ctx context.Context, ver string, page int32, pageSize int32) (r *device.DevicesExPage, err error) {
return
}
func (d *DeviceHandle) GetDeviceEx(ctx context.Context, uuid string) (r *device.DeviceEx, err error) {
return nil, nil
}
func (d *DeviceHandle) ListByStatusEx(ctx context.Context, status int32, page int32, pageSize int32) (r *service.DevicesExPage, err error) {
func (d *DeviceHandle) ListByStatusEx(ctx context.Context, status int32, page int32, pageSize int32) (r *device.DevicesExPage, err error) {
return nil, nil
}
func (d *DeviceHandle) ListByOrganizationEx(ctx context.Context, org *identity.Organization, page int32, pageSize int32) (r *service.DevicesExPage, err error) {
func (d *DeviceHandle) ListByOrganizationEx(ctx context.Context, org *identity.Organization, page int32, pageSize int32) (r *device.DevicesExPage, err error) {
return nil, nil
}
func (d *DeviceHandle) ListExpired(ctx context.Context, seconds int32, ip string) (r *service.DevicesPage, err error) {
func (d *DeviceHandle) ListExpired(ctx context.Context, seconds int32, ip string) (r *device.DevicesPage, err error) {
return nil, nil
}
func (d *DeviceHandle) ListByGroupEx(ctx context.Context, group string, page int32, pageSize int32) (r *service.DevicesExPage, err error) {
func (d *DeviceHandle) ListByGroupEx(ctx context.Context, group string, page int32, pageSize int32) (r *device.DevicesExPage, err error) {
return nil, nil
}
func (d *DeviceHandle) ListByRegionEx(ctx context.Context, rgn string, page int32, pageSize int32) (r *service.DevicesExPage, err error) {
func (d *DeviceHandle) ListByRegionEx(ctx context.Context, rgn string, page int32, pageSize int32) (r *device.DevicesExPage, err error) {
return nil, nil
}
......@@ -95,7 +94,7 @@ func (d *DeviceHandle) ListByRegionEx(ctx context.Context, rgn string, page int3
// - Filter
// - Page
// - PageSize
func (d *DeviceHandle) ListDevicesEx(ctx context.Context, filter *service.DeviceFilter, page int32, pageSize int32) (r *service.DevicesExPage, err error) {
func (d *DeviceHandle) ListDevicesEx(ctx context.Context, filter *device.DeviceFilter, page int32, pageSize int32) (r *device.DevicesExPage, err error) {
return
}
......
......@@ -2,9 +2,9 @@ package thriftservice
import (
"context"
"ficus/device"
"ficus/mission"
"ficus/service"
dispatchservice "ficus/dispatch"
"ficus/dto/device"
"ficus/dto/mission"
"ficus_clientserver/model"
"ficus_clientserver/nethandle"
......@@ -64,6 +64,6 @@ func NewMyTProcessorFactory(clientManager *model.ClientManager, msgControl *mode
func (p *myProcessorFactory) GetProcessor(trans thrift.TTransport) thrift.TProcessor {
// 在这里创建 handler 主要是为了保存 ttransport,以便双向通信
handler := NewDispatchService(trans, p.clientManager, p.msgControl)
processor := service.NewDispatchServiceProcessor(handler)
processor := dispatchservice.NewDispatchServiceProcessor(handler)
return processor
}
......@@ -3,9 +3,9 @@ package thriftservice
import (
"context"
"errors"
"ficus/device"
"ficus/mission"
"ficus/service"
dispatchservice "ficus/dispatch"
"ficus/dto/device"
"ficus/dto/mission"
"ficus_clientserver/config"
"ficus_clientserver/model"
"ficus_clientserver/tool"
......@@ -19,14 +19,14 @@ type DispatchMsg struct {
trans thrift.TTransport
clientManager *model.ClientManager
msgControl *model.MsgControl
callbackClient *service.DispatchServiceClient
callbackClient *dispatchservice.DispatchServiceClient
}
func NewDispatchMsgTrans(trans thrift.TTransport) *DispatchMsg {
d := &DispatchMsg{}
d.trans = trans
d.callbackClient = service.NewDispatchServiceClientFactory(thrift.NewTFramedTransport(trans), thrift.NewTCompactProtocolFactory())
d.callbackClient = dispatchservice.NewDispatchServiceClientFactory(thrift.NewTFramedTransport(trans), thrift.NewTCompactProtocolFactory())
return d
}
......@@ -35,7 +35,7 @@ func NewDispatchMsg(trans thrift.TTransport, clientManager *model.ClientManager,
d.clientManager = clientManager
d.msgControl = msgControl
d.trans = trans
d.callbackClient = service.NewDispatchServiceClientFactory(thrift.NewTFramedTransport(trans), thrift.NewTCompactProtocolFactory())
d.callbackClient = dispatchservice.NewDispatchServiceClientFactory(thrift.NewTFramedTransport(trans), thrift.NewTCompactProtocolFactory())
return d
}
......@@ -81,7 +81,7 @@ func (d *DispatchMsg) Feedback(ctx context.Context, response *mission.Message) (
return false, err
}
defer transport.Close()
client := service.NewDispatchServiceClientFactory(transport, protocolFactory)
client := dispatchservice.NewDispatchServiceClientFactory(transport, protocolFactory)
r, err = client.Feedback(context.Background(), response)
log.Infoln("dispatch Feedback result ", r, err, response)
return
......
......@@ -2,8 +2,7 @@ package thriftservice
import (
"context"
"ficus/pkg"
"ficus/service"
"ficus/dto/pkg"
"ficus_clientserver/FileController"
"ficus_clientserver/nethandle"
......@@ -35,24 +34,56 @@ func (s *PackageHandle) GetSpec(ctx context.Context, pkgName string, ver string)
return PackageHandler.GetSpec(ctx, pkgName, ver)
}
func (s *PackageHandle) GetSpecByPartner(ctx context.Context, pkgName string, ver string, partnerId string) (r *pkg.PackageSpec, err error) {
func (s *PackageHandle) GetSpecByFilter(ctx context.Context, filter *pkg.PackageFilter) (r *pkg.PackageResult_, err error) {
PackageHandler := nethandle.NewPackageHandle(NewPackageDispatch())
return PackageHandler.GetSpecByPartner(ctx, pkgName, ver, partnerId)
return PackageHandler.GetSpecByFilter(ctx, filter)
}
func (s *PackageHandle) Upload(ctx context.Context, sessionId string, partnerId string, timeout int32, uploadSpec *pkg.UploadSpec, content []byte) (r *pkg.UploadSpec, err error) {
func (s *PackageHandle) Upload(ctx context.Context, filter *pkg.PackageFilter, sessionId string, uploadSpec *pkg.UploadSpec, content []byte) (r *pkg.UploadResult_, err error) {
return
}
func (s *PackageHandle) Pack(ctx context.Context, sessionId string) (r *pkg.PackageSpec, err error) {
func (s *PackageHandle) Pack(ctx context.Context, filter *pkg.PackageFilter, releaseNote string) (r *pkg.PackageResult_, err error) {
return
}
func (s *PackageHandle) ListPackageEx(ctx context.Context, partnerId string, page int32, pageSize int32) (r *service.PackagesPage, err error) {
func (s *PackageHandle) ListPackages(ctx context.Context, filter *pkg.PackageFilter, page int32, pageSize int32) (r *pkg.PackagesPage, err error) {
return
}
func (s *PackageHandle) EnablePackage(ctx context.Context, name string, ver string, enabled bool) (r bool, err error) {
func (s *PackageHandle) EnablePackage(ctx context.Context, filter *pkg.PackageFilter, enabled bool) (r bool, err error) {
return
}
func (p *PackageHandle) RemovePackage(ctx context.Context, filter *pkg.PackageFilter) (r bool, err error) {
return
}
// Parameters:
// - Filter
func (p *PackageHandle) GetEntry(ctx context.Context, filter *pkg.PackageFilter) (r *pkg.PackageEntryResult_, err error) {
return
}
// Parameters:
// - Filter
// - PkgEntry
func (p *PackageHandle) CreateEntry(ctx context.Context, filter *pkg.PackageFilter, pkgEntry *pkg.PackageEntry) (r *pkg.PackageEntryResult_, err error) {
return
}
// Parameters:
// - Filter
// - Src
// - Dst
func (p *PackageHandle) RenameEntry(ctx context.Context, filter *pkg.PackageFilter, src string, dst string) (r string, err error) {
return
}
// Parameters:
// - Filter
// - EntryName
func (p *PackageHandle) RemoveEntry(ctx context.Context, filter *pkg.PackageFilter, entryName string) (r bool, err error) {
return
}
......@@ -70,33 +101,65 @@ func (s *PackageDispatch) GetSpec(ctx context.Context, pkgName string, ver strin
return
}
func (s *PackageDispatch) GetSpecByPartner(ctx context.Context, pkgName string, ver string, partnerId string) (r *pkg.PackageSpec, err error) {
log.Info("GetSpecByPartner", pkgName, ver)
fcos := FileController.NewOss()
md5, url := fcos.GetFileInfo(pkgName)
r = pkg.NewPackageSpec()
r.Pkg = pkg.NewPackage()
r.Pkg.Name = pkgName
r.Pkg.Version = ver
r.Pkg.PartnerId = partnerId
r.Md5 = md5
r.URL = url
func (s *PackageDispatch) GetSpecByFilter(ctx context.Context, filter *pkg.PackageFilter) (r *pkg.PackageResult_, err error) {
// log.Info("GetSpecByFilter ", filter)
// fcos := FileController.NewOss()
// md5, url := fcos.GetFileInfo(pkgName)
// r = pkg.NewPackageSpec()
// r.Pkg = pkg.NewPackage()
// r.Pkg.Name = pkgName
// r.Pkg.Version = ver
// r.Pkg.PartnerId = partnerId
// r.Md5 = md5
// r.URL = url
return
}
func (s *PackageDispatch) Upload(ctx context.Context, filter *pkg.PackageFilter, sessionId string, uploadSpec *pkg.UploadSpec, content []byte) (r *pkg.UploadResult_, err error) {
return
}
func (s *PackageDispatch) Pack(ctx context.Context, filter *pkg.PackageFilter, releaseNote string) (r *pkg.PackageResult_, err error) {
return
}
func (s *PackageDispatch) ListPackages(ctx context.Context, filter *pkg.PackageFilter, page int32, pageSize int32) (r *pkg.PackagesPage, err error) {
return
}
func (s *PackageDispatch) EnablePackage(ctx context.Context, filter *pkg.PackageFilter, enabled bool) (r bool, err error) {
return
}
func (p *PackageDispatch) RemovePackage(ctx context.Context, filter *pkg.PackageFilter) (r bool, err error) {
return
}
func (s *PackageDispatch) Upload(ctx context.Context, sessionId string, partnerId string, timeout int32, uploadSpec *pkg.UploadSpec, content []byte) (r *pkg.UploadSpec, err error) {
// Parameters:
// - Filter
func (p *PackageDispatch) GetEntry(ctx context.Context, filter *pkg.PackageFilter) (r *pkg.PackageEntryResult_, err error) {
return
}
func (s *PackageDispatch) Pack(ctx context.Context, sessionId string) (r *pkg.PackageSpec, err error) {
// Parameters:
// - Filter
// - PkgEntry
func (p *PackageDispatch) CreateEntry(ctx context.Context, filter *pkg.PackageFilter, pkgEntry *pkg.PackageEntry) (r *pkg.PackageEntryResult_, err error) {
return
}
func (s *PackageDispatch) ListPackageEx(ctx context.Context, partnerId string, page int32, pageSize int32) (r *service.PackagesPage, err error) {
// Parameters:
// - Filter
// - Src
// - Dst
func (p *PackageDispatch) RenameEntry(ctx context.Context, filter *pkg.PackageFilter, src string, dst string) (r string, err error) {
return
}
func (s *PackageDispatch) EnablePackage(ctx context.Context, name string, ver string, enabled bool) (r bool, err error) {
// Parameters:
// - Filter
// - EntryName
func (p *PackageDispatch) RemoveEntry(ctx context.Context, filter *pkg.PackageFilter, entryName string) (r bool, err error) {
return
}
......
......@@ -2,7 +2,7 @@ package thriftservice
import (
"context"
"ficus/mission"
"ficus/dto/mission"
"ficus_clientserver/model"
"ficus_clientserver/nethandle"
......
......@@ -3,11 +3,13 @@ package main
import (
"bufio"
"context"
"ficus/device"
"ficus/mission"
native "ficus/native/service"
"ficus/proto"
"ficus/service"
deviceservice "ficus/device"
dispatchservice "ficus/dispatch"
"ficus/dto/device"
"ficus/dto/mission"
"ficus/dto/proto"
pkgservice "ficus/pkg"
scheduleservice "ficus/schedule"
"ficus_clientserver/config"
"ficus_clientserver/control"
"ficus_clientserver/model"
......@@ -15,6 +17,7 @@ import (
"ficus_clientserver/nethandle/thriftservice"
"ficus_clientserver/tool"
"fmt"
"net/http"
"os"
"os/exec"
"runtime/debug"
......@@ -127,6 +130,7 @@ func StartThrift() {
go StartThriftSever1()
go StartThriftSever2()
go StartClientHeartWork()
go StartHttpServer()
}
// StartClientHeartWork 开始循环心跳工作
......@@ -223,16 +227,16 @@ func StartThriftSever2() {
TMultiplexedProcessor := thrift.NewTMultiplexedProcessor()
deviceHandle := thriftservice.NewDeviceHandle()
deviceProcessor := service.NewDeviceServiceProcessor(deviceHandle)
deviceProcessor := deviceservice.NewDeviceServiceProcessor(deviceHandle)
dispatchHandle := thriftservice.NewDispatchService(nil, ClientManager, MsgControl)
dispatchProcessor := service.NewDispatchServiceProcessor(dispatchHandle)
dispatchProcessor := dispatchservice.NewDispatchServiceProcessor(dispatchHandle)
scheduleHandle := thriftservice.NewScheduleHandle(MsgControl, ClientManager)
scheduleProcessor := native.NewScheduleServiceProcessor(scheduleHandle)
scheduleProcessor := scheduleservice.NewScheduleServiceProcessor(scheduleHandle)
packageHandle := thriftservice.NewPackageHandle()
packageProcessor := service.NewPackageServiceProcessor(packageHandle)
packageProcessor := pkgservice.NewPackageServiceProcessor(packageHandle)
TMultiplexedProcessor.RegisterProcessor("Identity", deviceProcessor)
TMultiplexedProcessor.RegisterProcessor("Mission", dispatchProcessor)
......@@ -249,3 +253,25 @@ func StartThriftSever2() {
log.Panicln(err)
}
}
func StartHttpServer() {
scheduleHandle := thriftservice.NewScheduleHandle(MsgControl, ClientManager)
scheduleProcessor := scheduleservice.NewScheduleServiceProcessor(scheduleHandle)
scheduleProtocolFactory := thrift.NewTJSONProtocolFactory()
scheduleHandler := thrift.NewThriftHandlerFunc(scheduleProcessor, scheduleProtocolFactory, scheduleProtocolFactory)
mux := http.NewServeMux()
mux.HandleFunc("/schedule", MiddleHandle(http.HandlerFunc(scheduleHandler)))
log.Println("thrift http server in", config.GetHttpServerPort())
http.ListenAndServe(config.GetHttpServerPort(), mux)
}
func MiddleHandle(next http.Handler) http.HandlerFunc {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*") //允许访问所有域
w.Header().Set("Access-Control-Allow-Headers", "*")
//w.Header().Add("Access-Control-Allow-Headers", "Content-Type") //header的类型
w.Header().Set("content-type", "application/json") //返回数据格式是json
w.Header().Set("Access-Control-Allow-Methods", "*")
next.ServeHTTP(w, r)
})
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment