Skip to content
Snippets Groups Projects
Commit 4d0e01ed authored by Anton Sattarov's avatar Anton Sattarov
Browse files

revert

parent 9ca365e5
No related tags found
No related merge requests found
......@@ -3,7 +3,6 @@ package extension
import (
"context"
"git.perx.ru/perxis/perxis-go/pkg/operation"
"go.uber.org/zap"
"git.perx.ru/perxis/perxis-go"
......@@ -70,13 +69,6 @@ type Extension interface {
Action(ctx context.Context, in *ActionRequest) (*ActionResponse, error)
}
type ExtensionOpetation interface {
InstallOperation(ctx context.Context, in *InstallRequest) (*operation.Operation, error)
CheckOperation(ctx context.Context, in *CheckRequest) (*operation.Operation, error)
UninstallOperation(ctx context.Context, in *UninstallRequest) (*operation.Operation, error)
Action(ctx context.Context, in *ActionRequest) (*ActionResponse, error)
}
func CheckInstalled(ctx context.Context, content *content.Content, spaceID, envID, extension string) (bool, error) {
status, err := NewStorage(content, nil).GetExtension(ctx, spaceID, envID, extension)
if err != nil {
......
......@@ -10,7 +10,7 @@ import (
)
type Manager interface {
ExtensionOpetation
Extension
RegisterExtensions(ctx context.Context, ext ...*ExtensionConnector) error
UnregisterExtensions(ctx context.Context, ext ...*ExtensionConnector) error
ListRegisteredExtensions(ctx context.Context, extensions ...string) ([]*ExtensionConnector, error)
......
package extension
import (
"context"
"git.perx.ru/perxis/perxis-go/pkg/errors"
"git.perx.ru/perxis/perxis-go/pkg/operation"
pb "git.perx.ru/perxis/perxis-go/proto/extensions"
"google.golang.org/grpc"
)
type ManagerServer struct {
manager Manager
pb.UnimplementedExtensionServiceServer
}
func NewManagerServer(manager Manager) *ManagerServer {
return &ManagerServer{manager: manager}
}
func RegisterManagerServer(grpcSrv *grpc.Server, srv *ManagerServer) {
pb.RegisterExtensionServiceServer(grpcSrv, srv)
}
func (s *ManagerServer) Install(ctx context.Context, req *InstallRequest) (*operation.Proto, error) {
op, err := s.manager.InstallOperation(ctx, req)
if err != nil {
return nil, err
}
return op.Proto(), nil
}
func (s *ManagerServer) Uninstall(ctx context.Context, req *UninstallRequest) (*operation.Proto, error) {
op, err := s.manager.UninstallOperation(ctx, req)
if err != nil {
return nil, err
}
return op.Proto(), nil
}
func (s *ManagerServer) Check(ctx context.Context, req *CheckRequest) (*operation.Proto, error) {
op, err := s.manager.CheckOperation(ctx, req)
if err != nil {
return nil, err
}
return op.Proto(), nil
}
func (s *ManagerServer) Action(ctx context.Context, in *pb.ActionRequest) (*pb.ActionResponse, error) {
actionURL, err := NewActionURL(in.Action)
if err != nil {
return nil, ErrInvalidAction
}
ext := actionURL.Extension()
if ext == "" {
ext = in.Extension
}
if ext == "" {
return nil, ErrInvalidAction
}
out, err := s.manager.Action(ctx, ActionRequestFromPB(in))
if out == nil {
out = &ActionResponse{}
}
if err != nil {
out.State = ResponseError
out.Error = err.Error()
out.Msg += errors.GetDetail(err)
}
return ActionResponseToPB(out), nil
}
......@@ -12,7 +12,6 @@ import (
"git.perx.ru/perxis/perxis-go/pkg/auth"
"git.perx.ru/perxis/perxis-go/pkg/extension"
"git.perx.ru/perxis/perxis-go/pkg/operation"
"go.uber.org/zap"
)
......@@ -51,42 +50,55 @@ func (m *accessLoggingMiddleware) Action(ctx context.Context, in *extension.Acti
return ap1, err
}
func (m *accessLoggingMiddleware) CheckOperation(ctx context.Context, in *extension.CheckRequest) (op1 *operation.Operation, err error) {
func (m *accessLoggingMiddleware) Check(ctx context.Context, in *extension.CheckRequest) (err error) {
begin := time.Now()
m.logger.Debug("CheckOperation.Request",
m.logger.Debug("Check.Request",
zap.Reflect("principal", auth.GetPrincipal(ctx)),
zap.Reflect("in", in),
)
op1, err = m.next.CheckOperation(ctx, in)
err = m.next.Check(ctx, in)
m.logger.Debug("CheckOperation.Response",
m.logger.Debug("Check.Response",
zap.Duration("time", time.Since(begin)),
zap.Reflect("op1", op1),
zap.Error(err),
)
return op1, err
return err
}
func (m *accessLoggingMiddleware) GetDescriptor() (ep1 *extension.ExtensionDescriptor) {
begin := time.Now()
m.logger.Debug("GetDescriptor.Request")
ep1 = m.next.GetDescriptor()
m.logger.Debug("GetDescriptor.Response",
zap.Duration("time", time.Since(begin)),
zap.Reflect("ep1", ep1),
)
return ep1
}
func (m *accessLoggingMiddleware) InstallOperation(ctx context.Context, in *extension.InstallRequest) (op1 *operation.Operation, err error) {
func (m *accessLoggingMiddleware) Install(ctx context.Context, in *extension.InstallRequest) (err error) {
begin := time.Now()
m.logger.Debug("InstallOperation.Request",
m.logger.Debug("Install.Request",
zap.Reflect("principal", auth.GetPrincipal(ctx)),
zap.Reflect("in", in),
)
op1, err = m.next.InstallOperation(ctx, in)
err = m.next.Install(ctx, in)
m.logger.Debug("InstallOperation.Response",
m.logger.Debug("Install.Response",
zap.Duration("time", time.Since(begin)),
zap.Reflect("op1", op1),
zap.Error(err),
)
return op1, err
return err
}
func (m *accessLoggingMiddleware) ListExtensions(ctx context.Context, space string, env string, filter *extension.ListExtensionsFilter) (ipa1 []*extension.Info, err error) {
......@@ -147,23 +159,22 @@ func (m *accessLoggingMiddleware) RegisterExtensions(ctx context.Context, ext ..
return err
}
func (m *accessLoggingMiddleware) UninstallOperation(ctx context.Context, in *extension.UninstallRequest) (op1 *operation.Operation, err error) {
func (m *accessLoggingMiddleware) Uninstall(ctx context.Context, in *extension.UninstallRequest) (err error) {
begin := time.Now()
m.logger.Debug("UninstallOperation.Request",
m.logger.Debug("Uninstall.Request",
zap.Reflect("principal", auth.GetPrincipal(ctx)),
zap.Reflect("in", in),
)
op1, err = m.next.UninstallOperation(ctx, in)
err = m.next.Uninstall(ctx, in)
m.logger.Debug("UninstallOperation.Response",
m.logger.Debug("Uninstall.Response",
zap.Duration("time", time.Since(begin)),
zap.Reflect("op1", op1),
zap.Error(err),
)
return op1, err
return err
}
func (m *accessLoggingMiddleware) UnregisterExtensions(ctx context.Context, ext ...*extension.ExtensionConnector) (err error) {
......
......@@ -10,7 +10,6 @@ import (
"context"
"git.perx.ru/perxis/perxis-go/pkg/extension"
"git.perx.ru/perxis/perxis-go/pkg/operation"
"go.uber.org/zap"
)
......@@ -40,24 +39,28 @@ func (m *errorLoggingMiddleware) Action(ctx context.Context, in *extension.Actio
return m.next.Action(ctx, in)
}
func (m *errorLoggingMiddleware) CheckOperation(ctx context.Context, in *extension.CheckRequest) (op1 *operation.Operation, err error) {
func (m *errorLoggingMiddleware) Check(ctx context.Context, in *extension.CheckRequest) (err error) {
logger := m.logger
defer func() {
if err != nil {
logger.Warn("response error", zap.Error(err))
}
}()
return m.next.CheckOperation(ctx, in)
return m.next.Check(ctx, in)
}
func (m *errorLoggingMiddleware) InstallOperation(ctx context.Context, in *extension.InstallRequest) (op1 *operation.Operation, err error) {
func (m *errorLoggingMiddleware) GetDescriptor() (ep1 *extension.ExtensionDescriptor) {
return m.next.GetDescriptor()
}
func (m *errorLoggingMiddleware) Install(ctx context.Context, in *extension.InstallRequest) (err error) {
logger := m.logger
defer func() {
if err != nil {
logger.Warn("response error", zap.Error(err))
}
}()
return m.next.InstallOperation(ctx, in)
return m.next.Install(ctx, in)
}
func (m *errorLoggingMiddleware) ListExtensions(ctx context.Context, space string, env string, filter *extension.ListExtensionsFilter) (ipa1 []*extension.Info, err error) {
......@@ -90,14 +93,14 @@ func (m *errorLoggingMiddleware) RegisterExtensions(ctx context.Context, ext ...
return m.next.RegisterExtensions(ctx, ext...)
}
func (m *errorLoggingMiddleware) UninstallOperation(ctx context.Context, in *extension.UninstallRequest) (op1 *operation.Operation, err error) {
func (m *errorLoggingMiddleware) Uninstall(ctx context.Context, in *extension.UninstallRequest) (err error) {
logger := m.logger
defer func() {
if err != nil {
logger.Warn("response error", zap.Error(err))
}
}()
return m.next.UninstallOperation(ctx, in)
return m.next.Uninstall(ctx, in)
}
func (m *errorLoggingMiddleware) UnregisterExtensions(ctx context.Context, ext ...*extension.ExtensionConnector) (err error) {
......
......@@ -11,7 +11,6 @@ import (
"fmt"
"git.perx.ru/perxis/perxis-go/pkg/extension"
"git.perx.ru/perxis/perxis-go/pkg/operation"
"go.uber.org/zap"
)
......@@ -43,7 +42,7 @@ func (m *recoveringMiddleware) Action(ctx context.Context, in *extension.ActionR
return m.next.Action(ctx, in)
}
func (m *recoveringMiddleware) CheckOperation(ctx context.Context, in *extension.CheckRequest) (op1 *operation.Operation, err error) {
func (m *recoveringMiddleware) Check(ctx context.Context, in *extension.CheckRequest) (err error) {
logger := m.logger
defer func() {
if r := recover(); r != nil {
......@@ -52,10 +51,21 @@ func (m *recoveringMiddleware) CheckOperation(ctx context.Context, in *extension
}
}()
return m.next.CheckOperation(ctx, in)
return m.next.Check(ctx, in)
}
func (m *recoveringMiddleware) InstallOperation(ctx context.Context, in *extension.InstallRequest) (op1 *operation.Operation, err error) {
func (m *recoveringMiddleware) GetDescriptor() (ep1 *extension.ExtensionDescriptor) {
logger := m.logger
defer func() {
if r := recover(); r != nil {
logger.Error("panic", zap.Error(fmt.Errorf("%v", r)))
}
}()
return m.next.GetDescriptor()
}
func (m *recoveringMiddleware) Install(ctx context.Context, in *extension.InstallRequest) (err error) {
logger := m.logger
defer func() {
if r := recover(); r != nil {
......@@ -64,7 +74,7 @@ func (m *recoveringMiddleware) InstallOperation(ctx context.Context, in *extensi
}
}()
return m.next.InstallOperation(ctx, in)
return m.next.Install(ctx, in)
}
func (m *recoveringMiddleware) ListExtensions(ctx context.Context, space string, env string, filter *extension.ListExtensionsFilter) (ipa1 []*extension.Info, err error) {
......@@ -103,7 +113,7 @@ func (m *recoveringMiddleware) RegisterExtensions(ctx context.Context, ext ...*e
return m.next.RegisterExtensions(ctx, ext...)
}
func (m *recoveringMiddleware) UninstallOperation(ctx context.Context, in *extension.UninstallRequest) (op1 *operation.Operation, err error) {
func (m *recoveringMiddleware) Uninstall(ctx context.Context, in *extension.UninstallRequest) (err error) {
logger := m.logger
defer func() {
if r := recover(); r != nil {
......@@ -112,7 +122,7 @@ func (m *recoveringMiddleware) UninstallOperation(ctx context.Context, in *exten
}
}()
return m.next.UninstallOperation(ctx, in)
return m.next.Uninstall(ctx, in)
}
func (m *recoveringMiddleware) UnregisterExtensions(ctx context.Context, ext ...*extension.ExtensionConnector) (err error) {
......
......@@ -13,7 +13,6 @@ import (
oid "git.perx.ru/perxis/perxis-go/id"
"git.perx.ru/perxis/perxis-go/pkg/auth"
"git.perx.ru/perxis/perxis-go/pkg/extension"
"git.perx.ru/perxis/perxis-go/pkg/operation"
"git.perx.ru/perxis/perxis-go/pkg/telemetry/metrics"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/attribute"
......@@ -93,19 +92,19 @@ func (_d telemetryMiddleware) Action(ctx context.Context, in *extension.ActionRe
return ap1, err
}
// CheckOperation implements extension.Manager
func (_d telemetryMiddleware) CheckOperation(ctx context.Context, in *extension.CheckRequest) (op1 *operation.Operation, err error) {
// Check implements extension.Manager
func (_d telemetryMiddleware) Check(ctx context.Context, in *extension.CheckRequest) (err error) {
var att = []attribute.KeyValue{
attribute.String("service", "Manager"),
attribute.String("method", "CheckOperation"),
attribute.String("method", "Check"),
}
attributes := otelmetric.WithAttributeSet(attribute.NewSet(att...))
start := time.Now()
ctx, _span := otel.Tracer(_d._instance).Start(ctx, "Manager.CheckOperation")
ctx, _span := otel.Tracer(_d._instance).Start(ctx, "Manager.Check")
defer _span.End()
op1, err = _d.Manager.CheckOperation(ctx, in)
err = _d.Manager.Check(ctx, in)
_d.requestMetrics.DurationMilliseconds.Record(ctx, time.Since(start).Milliseconds(), attributes)
......@@ -120,7 +119,6 @@ func (_d telemetryMiddleware) CheckOperation(ctx context.Context, in *extension.
_d._spanDecorator(_span, map[string]interface{}{
"ctx": ctx,
"in": in}, map[string]interface{}{
"op1": op1,
"err": err})
} else if err != nil {
_d.requestMetrics.FailedTotal.Add(ctx, 1, attributes)
......@@ -130,22 +128,22 @@ func (_d telemetryMiddleware) CheckOperation(ctx context.Context, in *extension.
_span.SetAttributes(attribute.String("message", err.Error()))
}
return op1, err
return err
}
// InstallOperation implements extension.Manager
func (_d telemetryMiddleware) InstallOperation(ctx context.Context, in *extension.InstallRequest) (op1 *operation.Operation, err error) {
// Install implements extension.Manager
func (_d telemetryMiddleware) Install(ctx context.Context, in *extension.InstallRequest) (err error) {
var att = []attribute.KeyValue{
attribute.String("service", "Manager"),
attribute.String("method", "InstallOperation"),
attribute.String("method", "Install"),
}
attributes := otelmetric.WithAttributeSet(attribute.NewSet(att...))
start := time.Now()
ctx, _span := otel.Tracer(_d._instance).Start(ctx, "Manager.InstallOperation")
ctx, _span := otel.Tracer(_d._instance).Start(ctx, "Manager.Install")
defer _span.End()
op1, err = _d.Manager.InstallOperation(ctx, in)
err = _d.Manager.Install(ctx, in)
_d.requestMetrics.DurationMilliseconds.Record(ctx, time.Since(start).Milliseconds(), attributes)
......@@ -160,7 +158,6 @@ func (_d telemetryMiddleware) InstallOperation(ctx context.Context, in *extensio
_d._spanDecorator(_span, map[string]interface{}{
"ctx": ctx,
"in": in}, map[string]interface{}{
"op1": op1,
"err": err})
} else if err != nil {
_d.requestMetrics.FailedTotal.Add(ctx, 1, attributes)
......@@ -170,7 +167,7 @@ func (_d telemetryMiddleware) InstallOperation(ctx context.Context, in *extensio
_span.SetAttributes(attribute.String("message", err.Error()))
}
return op1, err
return err
}
// ListExtensions implements extension.Manager
......@@ -294,19 +291,19 @@ func (_d telemetryMiddleware) RegisterExtensions(ctx context.Context, ext ...*ex
return err
}
// UninstallOperation implements extension.Manager
func (_d telemetryMiddleware) UninstallOperation(ctx context.Context, in *extension.UninstallRequest) (op1 *operation.Operation, err error) {
// Uninstall implements extension.Manager
func (_d telemetryMiddleware) Uninstall(ctx context.Context, in *extension.UninstallRequest) (err error) {
var att = []attribute.KeyValue{
attribute.String("service", "Manager"),
attribute.String("method", "UninstallOperation"),
attribute.String("method", "Uninstall"),
}
attributes := otelmetric.WithAttributeSet(attribute.NewSet(att...))
start := time.Now()
ctx, _span := otel.Tracer(_d._instance).Start(ctx, "Manager.UninstallOperation")
ctx, _span := otel.Tracer(_d._instance).Start(ctx, "Manager.Uninstall")
defer _span.End()
op1, err = _d.Manager.UninstallOperation(ctx, in)
err = _d.Manager.Uninstall(ctx, in)
_d.requestMetrics.DurationMilliseconds.Record(ctx, time.Since(start).Milliseconds(), attributes)
......@@ -321,7 +318,6 @@ func (_d telemetryMiddleware) UninstallOperation(ctx context.Context, in *extens
_d._spanDecorator(_span, map[string]interface{}{
"ctx": ctx,
"in": in}, map[string]interface{}{
"op1": op1,
"err": err})
} else if err != nil {
_d.requestMetrics.FailedTotal.Add(ctx, 1, attributes)
......@@ -331,7 +327,7 @@ func (_d telemetryMiddleware) UninstallOperation(ctx context.Context, in *extens
_span.SetAttributes(attribute.String("message", err.Error()))
}
return op1, err
return err
}
// UnregisterExtensions implements extension.Manager
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment