Skip to content

Commit fa4fccd

Browse files
authored
Merge pull request Mellanox#3 from Mmduh-483/config
Add config structure
2 parents b5a37f6 + 32c60a9 commit fa4fccd

File tree

3 files changed

+39
-21
lines changed

3 files changed

+39
-21
lines changed

pkg/config/config.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,26 @@
11
package config
2+
3+
type DaemonConfig struct {
4+
Plugin string `json:"plugin"` // Subnet manager plugin name
5+
PeriodicUpdate int `json:"periodic_update"` // Interval between every check for the added and deleted pods
6+
GuidPool GuidPoolConfig
7+
SubnetManager SubnetManagerPluginConfig
8+
}
9+
10+
type GuidPoolConfig struct {
11+
GuidRangeStart string `json:"guid_range_start"` // First guid of the pool
12+
GuidRangeEnd string `json:"guid_range_end"` // Last of the guid pool
13+
}
14+
15+
type SubnetManagerPluginConfig struct {
16+
UFMConfig
17+
}
18+
19+
type UFMConfig struct {
20+
Username string `json:"ufm_username"` // Username of ufm
21+
Password string `json:"ufm_password"` // Password of ufm
22+
Address string `json:"ufm_address"` // IP address or hostname of ufm servere
23+
Port int `json:"ufm_port"` // REST API port of ufm
24+
HttpSchema string `json:"ufm_httpSchema"` // http or https
25+
Certificate string `json:"ufm_certificate"` // Certificate of ufm
26+
}

pkg/sm/plugins/ufm/ufm.go

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,18 @@ import (
77
"net/http"
88
"strings"
99

10+
"github.com/Mellanox/ib-kubernetes/pkg/config"
1011
httpDriver "github.com/Mellanox/ib-kubernetes/pkg/drivers/http"
1112
ibUtils "github.com/Mellanox/ib-kubernetes/pkg/ib-utils"
1213
"github.com/Mellanox/ib-kubernetes/pkg/sm/plugins"
1314

1415
"github.com/golang/glog"
1516
)
1617

17-
type config struct {
18-
Username string `json:"username"`
19-
Password string `json:"password"`
20-
Address string `json:"address"`
21-
Port int `json:"port"`
22-
HttpSchema string `json:"httpSchema"`
23-
Certificate string `json:"certificate"`
24-
}
25-
2618
type ufmPlugin struct {
2719
PluginName string
2820
SpecVersion string
29-
conf *config
21+
conf *config.UFMConfig
3022
client httpDriver.Client
3123
}
3224

@@ -37,7 +29,7 @@ const (
3729

3830
func newUfmPlugin(conf []byte) (*ufmPlugin, error) {
3931
glog.V(3).Info("newUfmPlugin():")
40-
ufmConf := &config{}
32+
ufmConf := &config.UFMConfig{}
4133
err := json.Unmarshal(conf, ufmConf)
4234
if err != nil {
4335
err = fmt.Errorf("failed to parse ufm conf")

pkg/sm/plugins/ufm/ufm_test.go

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"fmt"
66
"net"
77

8+
"github.com/Mellanox/ib-kubernetes/pkg/config"
89
"github.com/Mellanox/ib-kubernetes/pkg/drivers/http/mocks"
910

1011
. "github.com/onsi/ginkgo"
@@ -15,7 +16,7 @@ import (
1516
var _ = Describe("Ufm Subnet Manager Client plugin", func() {
1617
Context("Initialize", func() {
1718
It("Initialize ufm plugin", func() {
18-
conf := []byte(`{"username":"admin", "password":"admin", "address":"192.168.1.10"}`)
19+
conf := []byte(`{"ufm_username":"admin", "ufm_password":"admin", "ufm_address":"192.168.1.10"}`)
1920
plugin, err := Initialize(conf)
2021
Expect(err).ToNot(HaveOccurred())
2122
Expect(plugin).ToNot(BeNil())
@@ -25,7 +26,7 @@ var _ = Describe("Ufm Subnet Manager Client plugin", func() {
2526
})
2627
Context("newUfmPlugin", func() {
2728
It("newUfmPlugin ufm plugin", func() {
28-
conf := []byte(`{"username":"admin", "password":"admin", "address":"192.168.1.10", "httpSchema":"http"}`)
29+
conf := []byte(`{"ufm_username":"admin", "ufm_password":"admin", "ufm_address":"192.168.1.10", "ufm_httpSchema":"http"}`)
2930
plugin, err := newUfmPlugin(conf)
3031
Expect(err).ToNot(HaveOccurred())
3132
Expect(plugin).ToNot(BeNil())
@@ -52,15 +53,15 @@ var _ = Describe("Ufm Subnet Manager Client plugin", func() {
5253
client := &mocks.Client{}
5354
client.On("Get", mock.Anything, mock.Anything).Return(nil, nil)
5455

55-
plugin := &ufmPlugin{client: client, conf: &config{}}
56+
plugin := &ufmPlugin{client: client, conf: &config.UFMConfig{}}
5657
err := plugin.Validate()
5758
Expect(err).ToNot(HaveOccurred())
5859
})
5960
It("Validate connection to ufm failed to connect", func() {
6061
client := &mocks.Client{}
6162
client.On("Get", mock.Anything, mock.Anything).Return(nil, errors.New("failed"))
6263

63-
plugin := &ufmPlugin{client: client, conf: &config{}}
64+
plugin := &ufmPlugin{client: client, conf: &config.UFMConfig{}}
6465
err := plugin.Validate()
6566
Expect(err).To(HaveOccurred())
6667
Expect(err.Error()).To(Equal("validate(): failed to connect to fum subnet manger: failed"))
@@ -71,15 +72,15 @@ var _ = Describe("Ufm Subnet Manager Client plugin", func() {
7172
client := &mocks.Client{}
7273
client.On("Post", mock.Anything, mock.Anything, mock.Anything).Return(nil, nil)
7374

74-
plugin := &ufmPlugin{client: client, conf: &config{}}
75+
plugin := &ufmPlugin{client: client, conf: &config.UFMConfig{}}
7576
guid, err := net.ParseMAC("11:22:33:44:55:66:77:88")
7677
Expect(err).ToNot(HaveOccurred())
7778

7879
err = plugin.AddGuidsToPKey(0x1234, []net.HardwareAddr{guid})
7980
Expect(err).ToNot(HaveOccurred())
8081
})
8182
It("Add guid to invalid pkey", func() {
82-
plugin := &ufmPlugin{conf: &config{}}
83+
plugin := &ufmPlugin{conf: &config.UFMConfig{}}
8384
guid, err := net.ParseMAC("11:22:33:44:55:66:77:88")
8485
Expect(err).ToNot(HaveOccurred())
8586

@@ -91,7 +92,7 @@ var _ = Describe("Ufm Subnet Manager Client plugin", func() {
9192
client := &mocks.Client{}
9293
client.On("Post", mock.Anything, mock.Anything, mock.Anything).Return(nil, errors.New("failed"))
9394

94-
plugin := &ufmPlugin{client: client, conf: &config{}}
95+
plugin := &ufmPlugin{client: client, conf: &config.UFMConfig{}}
9596
guid, err := net.ParseMAC("11:22:33:44:55:66:77:88")
9697
Expect(err).ToNot(HaveOccurred())
9798

@@ -109,15 +110,15 @@ var _ = Describe("Ufm Subnet Manager Client plugin", func() {
109110
client := &mocks.Client{}
110111
client.On("Post", mock.Anything, mock.Anything, mock.Anything).Return(nil, nil)
111112

112-
plugin := &ufmPlugin{client: client, conf: &config{}}
113+
plugin := &ufmPlugin{client: client, conf: &config.UFMConfig{}}
113114
guid, err := net.ParseMAC("11:22:33:44:55:66:77:88")
114115
Expect(err).ToNot(HaveOccurred())
115116

116117
err = plugin.RemoveGuidsFromPKey(0x1234, []net.HardwareAddr{guid})
117118
Expect(err).ToNot(HaveOccurred())
118119
})
119120
It("Remove guid from invalid pkey", func() {
120-
plugin := &ufmPlugin{conf: &config{}}
121+
plugin := &ufmPlugin{conf: &config.UFMConfig{}}
121122
guid, err := net.ParseMAC("11:22:33:44:55:66:77:88")
122123
Expect(err).ToNot(HaveOccurred())
123124

@@ -129,7 +130,7 @@ var _ = Describe("Ufm Subnet Manager Client plugin", func() {
129130
client := &mocks.Client{}
130131
client.On("Post", mock.Anything, mock.Anything, mock.Anything).Return(nil, errors.New("failed"))
131132

132-
plugin := &ufmPlugin{client: client, conf: &config{}}
133+
plugin := &ufmPlugin{client: client, conf: &config.UFMConfig{}}
133134
guid, err := net.ParseMAC("11:22:33:44:55:66:77:88")
134135
Expect(err).ToNot(HaveOccurred())
135136

0 commit comments

Comments
 (0)