fixed keys parsing from ENV/cli

This commit is contained in:
David Zhao
2021-01-30 13:20:39 -08:00
parent 65078f5ef8
commit 5ce52b6a30
4 changed files with 35 additions and 3 deletions

View File

@@ -50,6 +50,7 @@ func NewConfig(confString string) (*Config, error) {
Redis: RedisConfig{
Address: "localhost:6379",
},
Keys: map[string]string{},
}
if confString != "" {
yaml.Unmarshal([]byte(confString), conf)
@@ -65,8 +66,7 @@ func (conf *Config) UpdateFromCLI(c *cli.Context) error {
conf.KeyFile = c.String("key-file")
}
if c.IsSet("keys") {
keys := []byte(c.String("keys"))
if err := yaml.Unmarshal(keys, &conf.Keys); err != nil {
if err := conf.unmarshalKeys(c.String("keys")); err != nil {
return err
}
}
@@ -84,3 +84,19 @@ func (conf *Config) UpdateFromCLI(c *cli.Context) error {
conf.KeyFile = file
return nil
}
func (conf *Config) unmarshalKeys(keys string) error {
temp := make(map[string]interface{})
if err := yaml.Unmarshal([]byte(keys), temp); err != nil {
return err
}
conf.Keys = make(map[string]string, len(temp))
for key, val := range temp {
if secret, ok := val.(string); ok {
conf.Keys[key] = secret
}
}
return nil
}

15
pkg/config/config_test.go Normal file
View File

@@ -0,0 +1,15 @@
package config
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestConfig_UnmarshalKeys(t *testing.T) {
conf, err := NewConfig("")
assert.NoError(t, err)
assert.NoError(t, conf.unmarshalKeys("key1: secret1"))
assert.Equal(t, "secret1", conf.Keys["key1"])
}

View File

@@ -127,7 +127,7 @@ func (t *MediaTrack) AddSubscriber(participant types.Participant) error {
}
outTrack.SetTransceiver(transceiver)
// TODO: when outtrack is bound, start loop to send reports
// when outtrack is bound, start loop to send reports
outTrack.OnBind(func() {
if rr := bufferFactory.GetOrNew(packetio.RTCPBufferPacket, outTrack.SSRC()).(*buffer.RTCPReader); rr != nil {
rr.OnPacket(func(pkt []byte) {

View File

@@ -48,6 +48,7 @@ func TestIsReady(t *testing.T) {
func TestTrackPublishing(t *testing.T) {
t.Run("should send the correct events", func(t *testing.T) {
p := newParticipantForTest("test")
p.state.Store(livekit.ParticipantInfo_ACTIVE)
track := &typesfakes.FakePublishedTrack{}
track.IDReturns("id")
published := false