171 lines
5 KiB
Go
171 lines
5 KiB
Go
package egoscale
|
|
|
|
// SSHKeyPair represents an SSH key pair
|
|
type SSHKeyPair struct {
|
|
Account string `json:"account,omitempty"`
|
|
DomainID string `json:"domainid,omitempty"`
|
|
ProjectID string `json:"projectid,omitempty"`
|
|
Fingerprint string `json:"fingerprint,omitempty"`
|
|
Name string `json:"name,omitempty"`
|
|
PrivateKey string `json:"privatekey,omitempty"`
|
|
}
|
|
|
|
// CreateSSHKeyPair represents a new keypair to be created
|
|
//
|
|
// CloudStack API: http://cloudstack.apache.org/api/apidocs-4.10/apis/createSSHKeyPair.html
|
|
type CreateSSHKeyPair struct {
|
|
Name string `json:"name"`
|
|
Account string `json:"account,omitempty"`
|
|
DomainID string `json:"domainid,omitempty"`
|
|
ProjectID string `json:"projectid,omitempty"`
|
|
}
|
|
|
|
func (*CreateSSHKeyPair) name() string {
|
|
return "createSSHKeyPair"
|
|
}
|
|
|
|
func (*CreateSSHKeyPair) response() interface{} {
|
|
return new(CreateSSHKeyPairResponse)
|
|
}
|
|
|
|
// CreateSSHKeyPairResponse represents the creation of an SSH Key Pair
|
|
type CreateSSHKeyPairResponse struct {
|
|
KeyPair SSHKeyPair `json:"keypair"`
|
|
}
|
|
|
|
// DeleteSSHKeyPair represents a new keypair to be created
|
|
//
|
|
// CloudStack API: http://cloudstack.apache.org/api/apidocs-4.10/apis/deleteSSHKeyPair.html
|
|
type DeleteSSHKeyPair struct {
|
|
Name string `json:"name"`
|
|
Account string `json:"account,omitempty"`
|
|
DomainID string `json:"domainid,omitempty"`
|
|
ProjectID string `json:"projectid,omitempty"`
|
|
}
|
|
|
|
func (*DeleteSSHKeyPair) name() string {
|
|
return "deleteSSHKeyPair"
|
|
}
|
|
|
|
func (*DeleteSSHKeyPair) response() interface{} {
|
|
return new(booleanSyncResponse)
|
|
}
|
|
|
|
// RegisterSSHKeyPair represents a new registration of a public key in a keypair
|
|
//
|
|
// CloudStack API: http://cloudstack.apache.org/api/apidocs-4.10/apis/registerSSHKeyPair.html
|
|
type RegisterSSHKeyPair struct {
|
|
Name string `json:"name"`
|
|
PublicKey string `json:"publickey"`
|
|
Account string `json:"account,omitempty"`
|
|
DomainID string `json:"domainid,omitempty"`
|
|
ProjectID string `json:"projectid,omitempty"`
|
|
}
|
|
|
|
func (*RegisterSSHKeyPair) name() string {
|
|
return "registerSSHKeyPair"
|
|
}
|
|
|
|
func (*RegisterSSHKeyPair) response() interface{} {
|
|
return new(RegisterSSHKeyPairResponse)
|
|
}
|
|
|
|
// RegisterSSHKeyPairResponse represents the creation of an SSH Key Pair
|
|
type RegisterSSHKeyPairResponse struct {
|
|
KeyPair SSHKeyPair `json:"keypair"`
|
|
}
|
|
|
|
// ListSSHKeyPairs represents a query for a list of SSH KeyPairs
|
|
//
|
|
// CloudStack API: http://cloudstack.apache.org/api/apidocs-4.10/apis/listSSHKeyPairs.html
|
|
type ListSSHKeyPairs struct {
|
|
Account string `json:"account,omitempty"`
|
|
DomainID string `json:"domainid,omitempty"`
|
|
Fingerprint string `json:"fingerprint,omitempty"`
|
|
IsRecursive bool `json:"isrecursive,omitempty"`
|
|
Keyword string `json:"keyword,omitempty"`
|
|
ListAll bool `json:"listall,omitempty"`
|
|
Name string `json:"name,omitempty"`
|
|
Page int `json:"page,omitempty"`
|
|
PageSize int `json:"pagesize,omitempty"`
|
|
ProjectID string `json:"projectid,omitempty"`
|
|
}
|
|
|
|
func (*ListSSHKeyPairs) name() string {
|
|
return "listSSHKeyPairs"
|
|
}
|
|
|
|
func (*ListSSHKeyPairs) response() interface{} {
|
|
return new(ListSSHKeyPairsResponse)
|
|
}
|
|
|
|
// ListSSHKeyPairsResponse represents a list of SSH key pairs
|
|
type ListSSHKeyPairsResponse struct {
|
|
Count int `json:"count"`
|
|
SSHKeyPair []SSHKeyPair `json:"sshkeypair"`
|
|
}
|
|
|
|
// ResetSSHKeyForVirtualMachine (Async) represents a change for the key pairs
|
|
//
|
|
// CloudStack API: http://cloudstack.apache.org/api/apidocs-4.10/apis/resetSSHKeyForVirtualMachine.html
|
|
type ResetSSHKeyForVirtualMachine struct {
|
|
ID string `json:"id"`
|
|
KeyPair string `json:"keypair"`
|
|
Account string `json:"account,omitempty"`
|
|
DomainID string `json:"domainid,omitempty"`
|
|
ProjectID string `json:"projectid,omitempty"`
|
|
}
|
|
|
|
func (*ResetSSHKeyForVirtualMachine) name() string {
|
|
return "resetSSHKeyForVirtualMachine"
|
|
}
|
|
|
|
func (*ResetSSHKeyForVirtualMachine) asyncResponse() interface{} {
|
|
return new(ResetSSHKeyForVirtualMachineResponse)
|
|
}
|
|
|
|
// ResetSSHKeyForVirtualMachineResponse represents the modified VirtualMachine
|
|
type ResetSSHKeyForVirtualMachineResponse VirtualMachineResponse
|
|
|
|
// CreateKeypair create a new SSH Key Pair
|
|
//
|
|
// Deprecated: will go away, use the API directly
|
|
func (exo *Client) CreateKeypair(name string) (*SSHKeyPair, error) {
|
|
req := &CreateSSHKeyPair{
|
|
Name: name,
|
|
}
|
|
resp, err := exo.Request(req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
keypair := resp.(*CreateSSHKeyPairResponse).KeyPair
|
|
return &keypair, nil
|
|
}
|
|
|
|
// DeleteKeypair deletes an SSH key pair
|
|
//
|
|
// Deprecated: will go away, use the API directly
|
|
func (exo *Client) DeleteKeypair(name string) error {
|
|
req := &DeleteSSHKeyPair{
|
|
Name: name,
|
|
}
|
|
return exo.BooleanRequest(req)
|
|
}
|
|
|
|
// RegisterKeypair registers a public key in a keypair
|
|
//
|
|
// Deprecated: will go away, use the API directly
|
|
func (exo *Client) RegisterKeypair(name string, publicKey string) (*SSHKeyPair, error) {
|
|
req := &RegisterSSHKeyPair{
|
|
Name: name,
|
|
PublicKey: publicKey,
|
|
}
|
|
resp, err := exo.Request(req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
keypair := resp.(*RegisterSSHKeyPairResponse).KeyPair
|
|
return &keypair, nil
|
|
}
|