go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers-sdk/v1/upstream/mvd/mvd.ranger.go (about) 1 // Code generated by protoc-gen-rangerrpc version DO NOT EDIT. 2 // source: mvd.proto 3 4 package mvd 5 6 import ( 7 "context" 8 "errors" 9 "net/http" 10 "net/url" 11 "strings" 12 13 ranger "go.mondoo.com/ranger-rpc" 14 "go.mondoo.com/ranger-rpc/metadata" 15 jsonpb "google.golang.org/protobuf/encoding/protojson" 16 pb "google.golang.org/protobuf/proto" 17 ) 18 19 // service interface definition 20 21 type AdvisoryScanner interface { 22 AnalyseAsset(context.Context, *AnalyseAssetRequest) (*VulnReport, error) 23 IsEol(context.Context, *Platform) (*PlatformEolInfo, error) 24 } 25 26 // client implementation 27 28 type AdvisoryScannerClient struct { 29 ranger.Client 30 httpclient ranger.HTTPClient 31 prefix string 32 } 33 34 func NewAdvisoryScannerClient(addr string, client ranger.HTTPClient, plugins ...ranger.ClientPlugin) (*AdvisoryScannerClient, error) { 35 base, err := url.Parse(ranger.SanitizeUrl(addr)) 36 if err != nil { 37 return nil, err 38 } 39 40 u, err := url.Parse("./AdvisoryScanner") 41 if err != nil { 42 return nil, err 43 } 44 45 serviceClient := &AdvisoryScannerClient{ 46 httpclient: client, 47 prefix: base.ResolveReference(u).String(), 48 } 49 serviceClient.AddPlugins(plugins...) 50 return serviceClient, nil 51 } 52 func (c *AdvisoryScannerClient) AnalyseAsset(ctx context.Context, in *AnalyseAssetRequest) (*VulnReport, error) { 53 out := new(VulnReport) 54 err := c.DoClientRequest(ctx, c.httpclient, strings.Join([]string{c.prefix, "/AnalyseAsset"}, ""), in, out) 55 return out, err 56 } 57 func (c *AdvisoryScannerClient) IsEol(ctx context.Context, in *Platform) (*PlatformEolInfo, error) { 58 out := new(PlatformEolInfo) 59 err := c.DoClientRequest(ctx, c.httpclient, strings.Join([]string{c.prefix, "/IsEol"}, ""), in, out) 60 return out, err 61 } 62 63 // server implementation 64 65 type AdvisoryScannerServerOption func(s *AdvisoryScannerServer) 66 67 func WithUnknownFieldsForAdvisoryScannerServer() AdvisoryScannerServerOption { 68 return func(s *AdvisoryScannerServer) { 69 s.allowUnknownFields = true 70 } 71 } 72 73 func NewAdvisoryScannerServer(handler AdvisoryScanner, opts ...AdvisoryScannerServerOption) http.Handler { 74 srv := &AdvisoryScannerServer{ 75 handler: handler, 76 } 77 78 for i := range opts { 79 opts[i](srv) 80 } 81 82 service := ranger.Service{ 83 Name: "AdvisoryScanner", 84 Methods: map[string]ranger.Method{ 85 "AnalyseAsset": srv.AnalyseAsset, 86 "IsEol": srv.IsEol, 87 }, 88 } 89 return ranger.NewRPCServer(&service) 90 } 91 92 type AdvisoryScannerServer struct { 93 handler AdvisoryScanner 94 allowUnknownFields bool 95 } 96 97 func (p *AdvisoryScannerServer) AnalyseAsset(ctx context.Context, reqBytes *[]byte) (pb.Message, error) { 98 var req AnalyseAssetRequest 99 var err error 100 101 md, ok := metadata.FromIncomingContext(ctx) 102 if !ok { 103 return nil, errors.New("could not access header") 104 } 105 106 switch md.First("Content-Type") { 107 case "application/protobuf", "application/octet-stream", "application/grpc+proto": 108 err = pb.Unmarshal(*reqBytes, &req) 109 default: 110 // handle case of empty object 111 if len(*reqBytes) > 0 { 112 err = jsonpb.UnmarshalOptions{DiscardUnknown: true}.Unmarshal(*reqBytes, &req) 113 } 114 } 115 116 if err != nil { 117 return nil, err 118 } 119 return p.handler.AnalyseAsset(ctx, &req) 120 } 121 func (p *AdvisoryScannerServer) IsEol(ctx context.Context, reqBytes *[]byte) (pb.Message, error) { 122 var req Platform 123 var err error 124 125 md, ok := metadata.FromIncomingContext(ctx) 126 if !ok { 127 return nil, errors.New("could not access header") 128 } 129 130 switch md.First("Content-Type") { 131 case "application/protobuf", "application/octet-stream", "application/grpc+proto": 132 err = pb.Unmarshal(*reqBytes, &req) 133 default: 134 // handle case of empty object 135 if len(*reqBytes) > 0 { 136 err = jsonpb.UnmarshalOptions{DiscardUnknown: true}.Unmarshal(*reqBytes, &req) 137 } 138 } 139 140 if err != nil { 141 return nil, err 142 } 143 return p.handler.IsEol(ctx, &req) 144 }