github.com/cloudbase/juju-core@v0.0.0-20140504232958-a7271ac7912f/state/api/rsyslog/rsyslog.go (about) 1 // Copyright 2014 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package rsyslog 5 6 import ( 7 "launchpad.net/juju-core/state/api/base" 8 "launchpad.net/juju-core/state/api/common" 9 "launchpad.net/juju-core/state/api/params" 10 ) 11 12 const rsyslogAPI = "Rsyslog" 13 14 // State provides access to the Rsyslog API facade. 15 type State struct { 16 *common.EnvironWatcher 17 caller base.Caller 18 } 19 20 // NewState creates a new client-side Rsyslog facade. 21 func NewState(caller base.Caller) *State { 22 return &State{ 23 EnvironWatcher: common.NewEnvironWatcher(rsyslogAPI, caller), 24 caller: caller, 25 } 26 } 27 28 // SetRsyslogCert sets the rsyslog CA certificate, 29 // which is used by clients to verify the server's 30 // identity and establish a TLS session. 31 func (st *State) SetRsyslogCert(caCert []byte) error { 32 var result params.ErrorResult 33 args := params.SetRsyslogCertParams{ 34 CACert: caCert, 35 } 36 err := st.caller.Call(rsyslogAPI, "", "SetRsyslogCert", args, &result) 37 if err != nil { 38 return err 39 } 40 if result.Error != nil { 41 return result.Error 42 } 43 return nil 44 }