lxd/rbac/server.go
func NewServer(apiURL string, apiKey string, agentAuthURL string, agentUsername string, agentPrivateKey string, agentPublicKey string) (*Server, error) {
	r := Server{
		apiURL:          apiURL,
		apiKey:          apiKey,
		lastSyncID:      "",
		lastChange:      time.Time{},
		resources:       make(map[string]string),
		permissions:     make(map[string]map[string][]string),
		permissionsLock: &sync.Mutex{},
	}

	//
	var keyPair bakery.KeyPair
	keyPair.Private.UnmarshalText([]byte(agentPrivateKey))
	keyPair.Public.UnmarshalText([]byte(agentPublicKey))

	r.client = httpbakery.NewClient()
	authInfo := agent.AuthInfo{
		Key: &keyPair,
		Agents: []agent.Agent{
			{
				URL:      agentAuthURL,
				Username: agentUsername,
			},
		},
	}

	err := agent.SetUpAuth(r.client, &authInfo)
	if err != nil {
		return nil, err
	}

	r.client.Client.Jar, err = cookiejar.New(nil)
	if err != nil {
		return nil, err
	}

	return &r, nil
}
func NewServer(apiURL string, apiKey string, agentAuthURL string, agentUsername string, agentPrivateKey string, agentPublicKey string) (*Server, error) {
	r := Server{
		apiURL:          apiURL,
		apiKey:          apiKey,
		lastSyncID:      "",
		lastChange:      time.Time{},
		resources:       make(map[string]string),
		permissions:     make(map[string]map[string][]string),
		permissionsLock: &sync.Mutex{},
	}

	//
	var keyPair bakery.KeyPair
	keyPair.Private.UnmarshalText([]byte(agentPrivateKey))
	keyPair.Public.UnmarshalText([]byte(agentPublicKey))

	r.client = httpbakery.NewClient()
	authInfo := agent.AuthInfo{
		Key: &keyPair,
		Agents: []agent.Agent{
			{
				URL:      agentAuthURL,
				Username: agentUsername,
			},
		},
	}

	err := agent.SetUpAuth(r.client, &authInfo)
	if err != nil {
		return nil, err
	}

	r.client.Client.Jar, err = cookiejar.New(nil)
	if err != nil {
		return nil, err
	}

	return &r, nil
}
func NewServer ( apiURL string , apiKey string , agentAuthURL string , agentUsername string , agentPrivateKey string , agentPublicKey string ) ( * Server , error ) { r := Server { apiURL : apiURL , apiKey : apiKey , lastSyncID : " " , lastChange : time . Time { } , resources : make ( map [ string ] string ) , permissions : make ( map [ string ] map [ string ] [ ] string ) , permissionsLock : & sync . Mutex { } , } // var keyPair bakery . KeyPair keyPair . Private . UnmarshalText ( [ ] byte ( agentPrivateKey ) ) keyPair . Public . UnmarshalText ( [ ] byte ( agentPublicKey ) ) r . client = httpbakery . NewClient ( ) authInfo := agent . AuthInfo { Key : & keyPair , Agents : [ ] agent . Agent { { URL : agentAuthURL , Username : agentUsername , } , } , } err := agent . SetUpAuth ( r . client , & authInfo ) if err != nil { return nil , err } r . client . Client . Jar , err = cookiejar . New ( nil ) if err != nil { return nil , err } return & r , nil }
// NewServer returns a new RBAC server instance.
NewServer returns a new RBAC server instance .