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  }