forked from TrueCloudLab/lego
6004e599ed
* feat: add dep configuration files. * chore: add vendor folder. * refactor: update Dockerfile. * review: remove git from Dockerfile. * review: remove RUN apk. * review: dep status. * feat: added .dockerignore
110 lines
2.5 KiB
Go
110 lines
2.5 KiB
Go
package egoscale
|
|
|
|
import (
|
|
"fmt"
|
|
"net/url"
|
|
)
|
|
|
|
// ListRequest builds the ListNetworks request
|
|
func (network *Network) ListRequest() (ListCommand, error) {
|
|
//TODO add tags support
|
|
req := &ListNetworks{
|
|
Account: network.Account,
|
|
ACLType: network.ACLType,
|
|
CanUseForDeploy: &network.CanUseForDeploy,
|
|
DomainID: network.DomainID,
|
|
ID: network.ID,
|
|
PhysicalNetworkID: network.PhysicalNetworkID,
|
|
RestartRequired: &network.RestartRequired,
|
|
TrafficType: network.TrafficType,
|
|
Type: network.Type,
|
|
ZoneID: network.ZoneID,
|
|
}
|
|
|
|
return req, nil
|
|
}
|
|
|
|
// ResourceType returns the type of the resource
|
|
func (*Network) ResourceType() string {
|
|
return "Network"
|
|
}
|
|
|
|
// name returns the CloudStack API command name
|
|
func (*CreateNetwork) name() string {
|
|
return "createNetwork"
|
|
}
|
|
|
|
func (*CreateNetwork) response() interface{} {
|
|
return new(CreateNetworkResponse)
|
|
}
|
|
|
|
func (req *CreateNetwork) onBeforeSend(params *url.Values) error {
|
|
// Those fields are required but might be empty
|
|
if req.Name == "" {
|
|
params.Set("name", "")
|
|
}
|
|
if req.DisplayText == "" {
|
|
params.Set("displaytext", "")
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// name returns the CloudStack API command name
|
|
func (*UpdateNetwork) name() string {
|
|
return "updateNetwork"
|
|
}
|
|
|
|
func (*UpdateNetwork) asyncResponse() interface{} {
|
|
return new(UpdateNetworkResponse)
|
|
}
|
|
|
|
// name returns the CloudStack API command name
|
|
func (*RestartNetwork) name() string {
|
|
return "restartNetwork"
|
|
}
|
|
|
|
func (*RestartNetwork) asyncResponse() interface{} {
|
|
return new(RestartNetworkResponse)
|
|
}
|
|
|
|
// name returns the CloudStack API command name
|
|
func (*DeleteNetwork) name() string {
|
|
return "deleteNetwork"
|
|
}
|
|
|
|
func (*DeleteNetwork) asyncResponse() interface{} {
|
|
return new(booleanResponse)
|
|
}
|
|
|
|
// name returns the CloudStack API command name
|
|
func (*ListNetworks) name() string {
|
|
return "listNetworks"
|
|
}
|
|
|
|
func (*ListNetworks) response() interface{} {
|
|
return new(ListNetworksResponse)
|
|
}
|
|
|
|
// SetPage sets the current page
|
|
func (listNetwork *ListNetworks) SetPage(page int) {
|
|
listNetwork.Page = page
|
|
}
|
|
|
|
// SetPageSize sets the page size
|
|
func (listNetwork *ListNetworks) SetPageSize(pageSize int) {
|
|
listNetwork.PageSize = pageSize
|
|
}
|
|
|
|
func (*ListNetworks) each(resp interface{}, callback IterateItemFunc) {
|
|
networks, ok := resp.(*ListNetworksResponse)
|
|
if !ok {
|
|
callback(nil, fmt.Errorf("ListNetworksResponse expected, got %t", resp))
|
|
return
|
|
}
|
|
|
|
for i := range networks.Network {
|
|
if !callback(&networks.Network[i], nil) {
|
|
break
|
|
}
|
|
}
|
|
}
|