Skip to content

Commit e341d21

Browse files
authored
Merge branch 'main' into bcrm
2 parents e7867d0 + 4ac23ec commit e341d21

File tree

78 files changed

+1403
-2241
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+1403
-2241
lines changed

api/api/api_interface.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,8 @@ type ServiceInterface interface {
118118
CreateService(w http.ResponseWriter, r *http.Request)
119119
UpdateService(w http.ResponseWriter, r *http.Request)
120120
Dependency(w http.ResponseWriter, r *http.Request)
121+
Dependencys(w http.ResponseWriter, r *http.Request)
122+
121123
Env(w http.ResponseWriter, r *http.Request)
122124
Ports(w http.ResponseWriter, r *http.Request)
123125
PutPorts(w http.ResponseWriter, r *http.Request)
@@ -295,3 +297,9 @@ type PodInterface interface {
295297
type RegistryAuthSecretInterface interface {
296298
RegistryAuthSecret(w http.ResponseWriter, r *http.Request)
297299
}
300+
301+
// RegistryInterface registry interface
302+
type RegistryInterface interface {
303+
GetAllRepo(w http.ResponseWriter, r *http.Request)
304+
GetTagsByRepoName(w http.ResponseWriter, r *http.Request)
305+
}

api/api_routers/version2/v2Routers.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,15 @@ func (v2 *V2) Routes() chi.Router {
6363
r.Mount("/enterprise/{enterprise_id}", v2.enterpriseRouter())
6464
r.Mount("/monitor", v2.monitorRouter())
6565
r.Mount("/helm", v2.helmRouter())
66+
r.Mount("/proxy-pass", v2.proxyRoute())
67+
68+
return r
69+
}
70+
71+
func (v2 *V2) proxyRoute() chi.Router {
72+
r := chi.NewRouter()
73+
r.Post("/registry/repos", controller.GetManager().GetAllRepo)
74+
r.Post("/registry/tags", controller.GetManager().GetTagsByRepoName)
6675
return r
6776
}
6877

@@ -310,6 +319,8 @@ func (v2 *V2) serviceRouter() chi.Router {
310319

311320
//应用依赖关系增加与删除(source)
312321
r.Post("/dependency", middleware.WrapEL(controller.GetManager().Dependency, dbmodel.TargetTypeService, "add-service-dependency", dbmodel.SYNEVENTTYPE))
322+
r.Post("/dependencys", middleware.WrapEL(controller.GetManager().Dependencys, dbmodel.TargetTypeService, "add-service-dependency", dbmodel.SYNEVENTTYPE))
323+
313324
r.Delete("/dependency", middleware.WrapEL(controller.GetManager().Dependency, dbmodel.TargetTypeService, "delete-service-dependency", dbmodel.SYNEVENTTYPE))
314325
//环境变量增删改(source)
315326
r.Post("/env", middleware.WrapEL(controller.GetManager().Env, dbmodel.TargetTypeService, "add-service-env", dbmodel.SYNEVENTTYPE))

api/controller/manager.go

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,9 @@ import (
2222
"net/http"
2323

2424
"github.com/goodrain/rainbond/api/api"
25-
"github.com/goodrain/rainbond/api/discover"
2625
"github.com/goodrain/rainbond/api/proxy"
2726
"github.com/goodrain/rainbond/cmd/api/option"
2827
mqclient "github.com/goodrain/rainbond/mq/client"
29-
etcdutil "github.com/goodrain/rainbond/util/etcd"
3028
"github.com/goodrain/rainbond/worker/client"
3129
)
3230

@@ -53,6 +51,7 @@ type V2Manager interface {
5351
api.ApplicationInterface
5452
api.RegistryAuthSecretInterface
5553
api.HelmInterface
54+
api.RegistryInterface
5655
}
5756

5857
var defaultV2Manager V2Manager
@@ -70,13 +69,7 @@ func GetManager() V2Manager {
7069

7170
// NewManager new manager
7271
func NewManager(conf option.Config, statusCli *client.AppRuntimeSyncClient) (*V2Routes, error) {
73-
etcdClientArgs := &etcdutil.ClientArgs{
74-
Endpoints: conf.EtcdEndpoint,
75-
CaFile: conf.EtcdCaFile,
76-
CertFile: conf.EtcdCertFile,
77-
KeyFile: conf.EtcdKeyFile,
78-
}
79-
mqClient, err := mqclient.NewMqClient(etcdClientArgs, conf.MQAPI)
72+
mqClient, err := mqclient.NewMqClient(conf.MQAPI)
8073
if err != nil {
8174
return nil, err
8275
}
@@ -87,7 +80,7 @@ func NewManager(conf option.Config, statusCli *client.AppRuntimeSyncClient) (*V2
8780
v2r.GatewayStruct.cfg = &conf
8881
v2r.LabelController.optconfig = &conf
8982
eventServerProxy := proxy.CreateProxy("eventlog", "http", []string{"local=>rbd-eventlog:6363"})
90-
discover.GetEndpointDiscover().AddProject("event_log_event_http", eventServerProxy)
83+
//discover.GetEndpointDiscover().AddProject("event_log_event_http", eventServerProxy)
9184
v2r.EventLogStruct.EventlogServerProxy = eventServerProxy
9285
return &v2r, nil
9386
}

api/controller/registry.go

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package controller
2+
3+
import (
4+
api_model "github.com/goodrain/rainbond/api/model"
5+
"github.com/goodrain/rainbond/api/util/bcode"
6+
"github.com/goodrain/rainbond/builder/sources/registry"
7+
httputil "github.com/goodrain/rainbond/util/http"
8+
"github.com/sirupsen/logrus"
9+
"net/http"
10+
)
11+
12+
// Registry -
13+
type Registry struct {
14+
}
15+
16+
// GetAllRepo 根据镜像仓库账号密码 获取所有的镜像仓库
17+
func (r2 *Registry) GetAllRepo(w http.ResponseWriter, r *http.Request) {
18+
var req api_model.SearchByDomainRequest
19+
ok := httputil.ValidatorRequestStructAndErrorResponse(r, w, &req, nil)
20+
if !ok {
21+
return
22+
}
23+
c, err := registry.NewInsecure(req.Domain, req.UserName, req.Password)
24+
if err != nil {
25+
httputil.ReturnBcodeError(r, w, bcode.NewBadRequest(err.Error()))
26+
logrus.Errorf("get repositories error %s", err.Error())
27+
return
28+
}
29+
repositories, err := c.Repositories()
30+
if err != nil {
31+
httputil.ReturnBcodeError(r, w, bcode.NewBadRequest(err.Error()))
32+
logrus.Errorf("get repositories error %s", err.Error())
33+
return
34+
}
35+
httputil.ReturnSuccess(r, w, repositories)
36+
}
37+
38+
// GetTagsByRepoName 根据镜像仓库账号密码 获取镜像tags
39+
func (r2 *Registry) GetTagsByRepoName(w http.ResponseWriter, r *http.Request) {
40+
var req api_model.SearchByDomainRequest
41+
ok := httputil.ValidatorRequestStructAndErrorResponse(r, w, &req, nil)
42+
if !ok {
43+
return
44+
}
45+
c, err := registry.NewInsecure(req.Domain, req.UserName, req.Password)
46+
if err != nil {
47+
httputil.ReturnBcodeError(r, w, bcode.NewBadRequest(err.Error()))
48+
logrus.Errorf("get tags error %s", err.Error())
49+
return
50+
}
51+
52+
tags, err := c.Tags(r.URL.Query().Get("repo"))
53+
if err != nil {
54+
httputil.ReturnBcodeError(r, w, bcode.NewBadRequest(err.Error()))
55+
logrus.Errorf("get tags error %s", err.Error())
56+
return
57+
}
58+
httputil.ReturnSuccess(r, w, tags)
59+
}

api/controller/resources.go

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ type V2Routes struct {
6565
RegistryAuthSecretStruct
6666
K8sAttributeController
6767
HelmStruct
68+
Registry
6869
}
6970

7071
// Show test
@@ -1049,6 +1050,14 @@ func (t *TenantStruct) Dependency(w http.ResponseWriter, r *http.Request) {
10491050
}
10501051
}
10511052

1053+
// Dependencys Dependencys batch add dependency
1054+
func (t *TenantStruct) Dependencys(w http.ResponseWriter, r *http.Request) {
1055+
switch r.Method {
1056+
case "POST":
1057+
t.AddDependencys(w, r)
1058+
}
1059+
}
1060+
10521061
// AddDependency AddDependency
10531062
// swagger:operation POST /v2/tenants/{tenant_name}/services/{service_alias}/dependency v2 addDependency
10541063
//
@@ -1094,6 +1103,59 @@ func (t *TenantStruct) AddDependency(w http.ResponseWriter, r *http.Request) {
10941103
httputil.ReturnSuccess(r, w, nil)
10951104
}
10961105

1106+
// AddDependencys AddDependencys
1107+
// swagger:operation POST /v2/tenants/{tenant_name}/services/{service_alias}/dependencys v2 addDependencys
1108+
//
1109+
// 批量增加应用依赖关系
1110+
//
1111+
// add dependency
1112+
//
1113+
// ---
1114+
// consumes:
1115+
// - application/json
1116+
// - application/x-protobuf
1117+
//
1118+
// produces:
1119+
// - application/json
1120+
// - application/xml
1121+
//
1122+
// responses:
1123+
//
1124+
// default:
1125+
// schema:
1126+
// "$ref": "#/responses/commandResponse"
1127+
// description: 统一返回格式
1128+
1129+
// AddDependencys -
1130+
func (t *TenantStruct) AddDependencys(w http.ResponseWriter, r *http.Request) {
1131+
rules := validator.MapData{
1132+
"be_dep_service_ids": []string{"required"}, //被依赖的id列表
1133+
"dep_service_type": []string{"required"},
1134+
"dep_order": []string{},
1135+
}
1136+
data, ok := httputil.ValidatorRequestMapAndErrorResponse(r, w, rules, nil)
1137+
if !ok {
1138+
httputil.ReturnError(r, w, 500, "add dependency error")
1139+
return
1140+
}
1141+
var relations []*dbmodel.TenantServiceRelation
1142+
for _, beDepServiceID := range strings.Split(data["be_dep_service_ids"].(string), ",") {
1143+
relations = append(relations, &dbmodel.TenantServiceRelation{
1144+
TenantID: r.Context().Value(ctxutil.ContextKey("tenant_id")).(string),
1145+
ServiceID: beDepServiceID,
1146+
DependServiceID: r.Context().Value(ctxutil.ContextKey("service_id")).(string),
1147+
DependServiceType: data["dep_service_type"].(string),
1148+
DependOrder: 1,
1149+
})
1150+
}
1151+
err := db.GetManager().TenantServiceRelationDao().CreateOrUpdateRelationsInBatch(relations)
1152+
if err != nil {
1153+
httputil.ReturnError(r, w, 500, fmt.Sprintf("add dependency error, %v", err))
1154+
return
1155+
}
1156+
httputil.ReturnSuccess(r, w, nil)
1157+
}
1158+
10971159
// DeleteDependency DeleteDependency
10981160
// swagger:operation DELETE /v2/tenants/{tenant_name}/services/{service_alias}/dependency v2 deleteDependency
10991161
//

0 commit comments

Comments
 (0)