Skip to content

Commit e517f6c

Browse files
committed
Run network-event-broker in user network-broker
1 parent 6a6d225 commit e517f6c

File tree

2 files changed

+47
-10
lines changed

2 files changed

+47
-10
lines changed

cmd/network-broker/main.go

Lines changed: 47 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,30 @@
11
// SPDX-License-Identifier: Apache-2.0
22
// Copyright 2021 VMware, Inc.
33

4-
54
package main
65

76
import (
87
"os"
98
"os/signal"
9+
"runtime"
1010
"strings"
1111
"syscall"
1212

13-
"github.com/network-event-broker/pkg/conf"
1413
"github.com/network-event-broker/listeners"
14+
"github.com/network-event-broker/pkg/conf"
1515
"github.com/network-event-broker/pkg/network"
16+
"github.com/network-event-broker/pkg/system"
1617
log "github.com/sirupsen/logrus"
1718
)
1819

19-
func main() {
20-
c, err := conf.Parse()
21-
if err != nil {
22-
log.Warnf("Failed to parse configuration: %v", err)
23-
}
24-
20+
func run(c *conf.Config) {
2521
n := network.New()
2622
if n == nil {
2723
log.Fatalln("Failed to create network. Aborting ...")
2824
os.Exit(1)
2925
}
3026

31-
err = network.AcquireLinks(n)
27+
err := network.AcquireLinks(n)
3228
if err != nil {
3329
log.Fatalf("Failed to acquire link information. Unable to continue: %v", err)
3430
os.Exit(1)
@@ -57,3 +53,45 @@ func main() {
5753

5854
<-finished
5955
}
56+
57+
func main() {
58+
c, err := conf.Parse()
59+
if err != nil {
60+
log.Warnf("Failed to parse configuration: %v", err)
61+
}
62+
63+
log.Infof("network-broker: v%s (built %s)", conf.Version, runtime.Version())
64+
65+
cred, err := system.GetUserCredentials("")
66+
if err != nil {
67+
log.Warningf("Failed to get current user credentials: %+v", err)
68+
os.Exit(1)
69+
} else {
70+
if cred.Uid == 0 {
71+
u, err := system.GetUserCredentials("network-broker")
72+
if err != nil {
73+
log.Errorf("Failed to get user 'network-broker' credentials: %+v", err)
74+
os.Exit(1)
75+
} else {
76+
if err := system.EnableKeepCapability(); err != nil {
77+
log.Warningf("Failed to enable keep capabilities: %+v", err)
78+
}
79+
80+
if err := system.SwitchUser(u); err != nil {
81+
log.Warningf("Failed to switch user: %+v", err)
82+
}
83+
84+
if err := system.DisableKeepCapability(); err != nil {
85+
log.Warningf("Failed to disable keep capabilities: %+v", err)
86+
}
87+
88+
err := system.ApplyCapability(u)
89+
if err != nil {
90+
log.Warningf("Failed to apply capabilities: +%v", err)
91+
}
92+
}
93+
}
94+
}
95+
96+
run(c)
97+
}

listeners/networkd.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,6 @@ func acquireLink(link string) (*LinkDescribe, error) {
133133
if l.Name == link {
134134
return &l, nil
135135
}
136-
137136
}
138137

139138
return nil, errors.New("not found")

0 commit comments

Comments
 (0)