Merge lp:~mfoord/juju-core/ha-rsyslog-2 into lp:~go-bot/juju-core/trunk

Proposed by Michael Foord
Status: Rejected
Rejected by: Michael Foord
Proposed branch: lp:~mfoord/juju-core/ha-rsyslog-2
Merge into: lp:~go-bot/juju-core/trunk
Prerequisite: lp:~wwitzel3/juju-core/009-ha-rsyslog-api
Diff against target: 169 lines (+47/-23)
7 files modified
state/api/params/params.go (+10/-1)
state/api/rsyslog/rsyslog.go (+13/-4)
state/api/rsyslog/rsyslog_test.go (+1/-1)
state/apiserver/common/interfaces.go (+1/-1)
state/apiserver/rsyslog/rsyslog.go (+19/-14)
state/apiserver/rsyslog/rsyslog_test.go (+1/-1)
worker/rsyslog/worker.go (+2/-1)
To merge this branch: bzr merge lp:~mfoord/juju-core/ha-rsyslog-2
Reviewer Review Type Date Requested Status
Juju Engineering Pending
Review via email: mp+220603@code.launchpad.net
To post a comment you must log in.
lp:~mfoord/juju-core/ha-rsyslog-2 updated
2732. By Michael Foord

Test fix

2733. By Michael Foord

Remove AuthAgent

2734. By Michael Foord

Bulkify GetRsyslogConfig

2735. By Michael Foord

Switch to correct Error type

2736. By Michael Foord

Merge

2737. By Michael Foord

Merge back to good revision

2738. By Michael Foord

Merge shortcut removal again

2739. By Michael Foord

Merge again

Revision history for this message
Michael Foord (mfoord) wrote :

Unmerged revisions

2739. By Michael Foord

Merge again

2738. By Michael Foord

Merge shortcut removal again

2737. By Michael Foord

Merge back to good revision

2736. By Michael Foord

Merge

2735. By Michael Foord

Switch to correct Error type

2734. By Michael Foord

Bulkify GetRsyslogConfig

2733. By Michael Foord

Remove AuthAgent

2732. By Michael Foord

Test fix

2731. By Michael Foord

Use AuthAgent

2730. By Michael Foord

Add AuthAgent to Authorizer

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'state/api/params/params.go'
2--- state/api/params/params.go 2014-05-22 14:34:54 +0000
3+++ state/api/params/params.go 2014-05-22 14:34:54 +0000
4@@ -683,11 +683,20 @@
5
6 // RsyslogConfigResult holds the result of a GetRsyslogConfig call.
7 type RsyslogConfigResult struct {
8- CACert string
9+ Error *Error
10+ CACert string
11+ // Port is only used by state servers as the port to listen on.
12+ // Clients should use HostPorts for the rsyslog addresses to forward
13+ // logs to.
14 Port int
15 HostPorts []instance.HostPort
16 }
17
18+// RsyslogConfigResults is the bulk form of RyslogConfigResult
19+type RsyslogConfigResults struct {
20+ Results []RsyslogConfigResult
21+}
22+
23 // DistributionGroupResult contains the result of
24 // the DistributionGroup provisioner API call.
25 type DistributionGroupResult struct {
26
27=== modified file 'state/api/rsyslog/rsyslog.go'
28--- state/api/rsyslog/rsyslog.go 2014-05-22 14:34:54 +0000
29+++ state/api/rsyslog/rsyslog.go 2014-05-22 14:34:54 +0000
30@@ -16,7 +16,8 @@
31
32 // RsyslogConfig holds the values needed for the rsyslog worker
33 type RsyslogConfig struct {
34- CACert string
35+ CACert string
36+ // Port is only used by state servers as the port to listen on.
37 Port int
38 HostPorts []instance.HostPort
39 }
40@@ -75,12 +76,20 @@
41 }
42
43 // GetRsyslogConfig returns a RsyslogConfig.
44-func (st *State) GetRsyslogConfig() (*RsyslogConfig, error) {
45- var result params.RsyslogConfigResult
46- err := st.caller.Call(rsyslogAPI, "", "GetRsyslogConfig", nil, &result)
47+func (st *State) GetRsyslogConfig(agentTag string) (*RsyslogConfig, error) {
48+ var results params.RsyslogConfigResults
49+ args := params.Entities{
50+ Entities: []params.Entity{{Tag: agentTag}},
51+ }
52+ err := st.caller.Call(rsyslogAPI, "", "GetRsyslogConfig", args, &results)
53 if err != nil {
54 return nil, err
55 }
56+ result := results.Results[0]
57+ if result.Error != nil {
58+ // TODO: Not directly tested
59+ return nil, result.Error
60+ }
61 return &RsyslogConfig{
62 CACert: result.CACert,
63 Port: result.Port,
64
65=== modified file 'state/api/rsyslog/rsyslog_test.go'
66--- state/api/rsyslog/rsyslog_test.go 2014-05-22 14:34:54 +0000
67+++ state/api/rsyslog/rsyslog_test.go 2014-05-22 14:34:54 +0000
68@@ -41,7 +41,7 @@
69 err := s.APIState.Client().EnvironmentSet(map[string]interface{}{"rsyslog-ca-cert": coretesting.CACert})
70 c.Assert(err, gc.IsNil)
71
72- cfg, err := s.rsyslog.GetRsyslogConfig()
73+ cfg, err := s.rsyslog.GetRsyslogConfig(s.machine.Tag())
74 c.Assert(err, gc.IsNil)
75 c.Assert(cfg, gc.NotNil)
76
77
78=== modified file 'state/apiserver/common/interfaces.go'
79--- state/apiserver/common/interfaces.go 2014-01-22 19:28:08 +0000
80+++ state/apiserver/common/interfaces.go 2014-05-22 14:34:54 +0000
81@@ -45,7 +45,7 @@
82 GetAuthEntity() state.Entity
83 }
84
85-// AuthEither returns an AuthFunc generator that returns and AuthFunc
86+// AuthEither returns an AuthFunc generator that returns an AuthFunc
87 // that accepts any tag authorized by either of its arguments.
88 func AuthEither(a, b GetAuthFunc) GetAuthFunc {
89 return func() (AuthFunc, error) {
90
91=== modified file 'state/apiserver/rsyslog/rsyslog.go'
92--- state/apiserver/rsyslog/rsyslog.go 2014-05-22 14:34:54 +0000
93+++ state/apiserver/rsyslog/rsyslog.go 2014-05-22 14:34:54 +0000
94@@ -60,22 +60,27 @@
95 }
96
97 // GetRsyslogConfig returns a RsyslogConfigResult.
98-func (api *RsyslogAPI) GetRsyslogConfig() (params.RsyslogConfigResult, error) {
99+func (api *RsyslogAPI) GetRsyslogConfig(args params.Entities) (params.RsyslogConfigResults, error) {
100+ result := params.RsyslogConfigResults{
101+ Results: make([]params.RsyslogConfigResult, len(args.Entities)),
102+ }
103 cfg, err := api.st.EnvironConfig()
104 if err != nil {
105- return params.RsyslogConfigResult{}, err
106- }
107-
108- rsyslogCfg, err := newRsyslogConfig(cfg, api)
109- if err != nil {
110- return params.RsyslogConfigResult{}, err
111- }
112-
113- return params.RsyslogConfigResult{
114- CACert: rsyslogCfg.CACert,
115- Port: rsyslogCfg.Port,
116- HostPorts: rsyslogCfg.HostPorts,
117- }, nil
118+ return result, err
119+ }
120+ for i := range args.Entities {
121+ rsyslogCfg, err := newRsyslogConfig(cfg, api)
122+ if err == nil {
123+ result.Results[i] = params.RsyslogConfigResult{
124+ CACert: rsyslogCfg.CACert,
125+ Port: rsyslogCfg.Port,
126+ HostPorts: rsyslogCfg.HostPorts,
127+ }
128+ } else {
129+ result.Results[i].Error = common.ServerError(err)
130+ }
131+ }
132+ return result, nil
133 }
134
135 // WatchForRsyslogChanges starts a watcher to track if there are changes
136
137=== modified file 'state/apiserver/rsyslog/rsyslog_test.go'
138--- state/apiserver/rsyslog/rsyslog_test.go 2014-05-22 14:34:54 +0000
139+++ state/apiserver/rsyslog/rsyslog_test.go 2014-05-22 14:34:54 +0000
140@@ -46,7 +46,7 @@
141 }
142
143 func verifyRsyslogCACert(c *gc.C, st *apirsyslog.State, expected string) {
144- cfg, err := st.GetRsyslogConfig()
145+ cfg, err := st.GetRsyslogConfig("foo")
146 c.Assert(err, gc.IsNil)
147 c.Assert(cfg.CACert, gc.DeepEquals, expected)
148 }
149
150=== modified file 'worker/rsyslog/worker.go'
151--- worker/rsyslog/worker.go 2014-05-22 14:34:54 +0000
152+++ worker/rsyslog/worker.go 2014-05-22 14:34:54 +0000
153@@ -139,7 +139,7 @@
154 }
155
156 func (h *RsyslogConfigHandler) Handle() error {
157- cfg, err := h.st.GetRsyslogConfig()
158+ cfg, err := h.st.GetRsyslogConfig(h.tag)
159 if err != nil {
160 return errors.Annotate(err, "cannot get environ config")
161 }
162@@ -147,6 +147,7 @@
163 if rsyslogCACert == "" {
164 return nil
165 }
166+
167 h.syslogConfig.Port = cfg.Port
168 if h.mode == RsyslogModeForwarding {
169 if err := writeFileAtomic(h.syslogConfig.CACertPath(), []byte(rsyslogCACert), 0644, 0, 0); err != nil {

Subscribers

People subscribed via source and target branches

to status/vote changes: