go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/_motor/providers/network/provider.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package network 5 6 import ( 7 "strconv" 8 9 "go.mondoo.com/cnquery/motor/providers" 10 ) 11 12 type Provider struct { 13 FQDN string 14 Port int32 15 Scheme string 16 Family []string 17 Options map[string]string 18 } 19 20 func New(conf *providers.Config) (*Provider, error) { 21 family := []string{"network"} 22 s := providers.ProviderID_HOST 23 if _, ok := conf.Options["tls"]; ok { 24 family = append(family, "tls") 25 s = providers.ProviderID_TLS 26 } 27 28 return &Provider{ 29 FQDN: conf.Host, 30 Port: conf.Port, 31 Scheme: s, 32 Family: family, 33 Options: conf.Options, 34 }, nil 35 } 36 37 func (p *Provider) Identifier() (string, error) { 38 host := p.FQDN 39 if p.Port != 0 { 40 host = p.FQDN + ":" + strconv.Itoa(int(p.Port)) 41 } 42 43 if _, ok := p.Options["tls"]; ok { 44 return "//platformid.api.mondoo.app/runtime/network/tls/" + host, nil 45 } else { 46 return "//platformid.api.mondoo.app/runtime/network/host/" + host, nil 47 } 48 } 49 50 func (p *Provider) URI() string { 51 if p.Port == 0 { 52 return p.Scheme + "://" + p.FQDN 53 } 54 return p.Scheme + "://" + p.FQDN + ":" + strconv.Itoa(int(p.Port)) 55 } 56 57 func (p *Provider) Supports(mode string) bool { 58 for i := range p.Family { 59 if p.Family[i] == mode { 60 return true 61 } 62 } 63 return false 64 } 65 66 // ----------------- other requirements vv ------------------------- 67 68 func (p *Provider) Close() {} 69 70 func (p *Provider) Capabilities() providers.Capabilities { 71 return providers.Capabilities{} 72 } 73 74 func (p *Provider) Kind() providers.Kind { 75 return providers.Kind_KIND_NETWORK 76 } 77 78 func (p *Provider) PlatformIdDetectors() []providers.PlatformIdDetector { 79 return []providers.PlatformIdDetector{} 80 } 81 82 func (p *Provider) Runtime() string { 83 return "" 84 }