scaleway: update scaleway vendor

This commit is contained in:
Florian Florensa 2018-09-27 16:17:05 +02:00
parent 9181570bc3
commit 02878cc148
3 changed files with 42 additions and 32 deletions

View File

@ -458,6 +458,9 @@ type ScalewaySecurityGroups struct {
Servers []ScalewaySecurityGroup `json:"servers"` Servers []ScalewaySecurityGroup `json:"servers"`
EnableDefaultSecurity bool `json:"enable_default_security"` EnableDefaultSecurity bool `json:"enable_default_security"`
OrganizationDefault bool `json:"organization_default"` OrganizationDefault bool `json:"organization_default"`
Stateful bool `json:"stateful"`
InboundDefaultPolicy string `json:"inbound_default_policy"`
OutboundDefaultPolicy string `json:"outbound_default_policy"`
} }
// ScalewayGetSecurityGroups represents the response of a GET /security_groups/ // ScalewayGetSecurityGroups represents the response of a GET /security_groups/
@ -503,17 +506,23 @@ type ScalewaySecurityGroup struct {
// ScalewayNewSecurityGroup definition POST request /security_groups // ScalewayNewSecurityGroup definition POST request /security_groups
type ScalewayNewSecurityGroup struct { type ScalewayNewSecurityGroup struct {
Organization string `json:"organization"` Organization string `json:"organization"`
Name string `json:"name"` Name string `json:"name"`
Description string `json:"description"` Description string `json:"description"`
Stateful bool `json:"stateful"`
InboundDefaultPolicy string `json:"inbound_default_policy"`
OutboundDefaultPolicy string `json:"outbound_default_policy"`
} }
// ScalewayUpdateSecurityGroup definition PUT request /security_groups // ScalewayUpdateSecurityGroup definition PUT request /security_groups
type ScalewayUpdateSecurityGroup struct { type ScalewayUpdateSecurityGroup struct {
Organization string `json:"organization"` Organization string `json:"organization"`
Name string `json:"name"` Name string `json:"name"`
Description string `json:"description"` Description string `json:"description"`
OrganizationDefault bool `json:"organization_default"` OrganizationDefault bool `json:"organization_default"`
Stateful bool `json:"stateful"`
InboundDefaultPolicy string `json:"inbound_default_policy"`
OutboundDefaultPolicy string `json:"outbound_default_policy"`
} }
// ScalewayServer represents a Scaleway server // ScalewayServer represents a Scaleway server
@ -545,6 +554,9 @@ type ScalewayServer struct {
// State is the current status of the server // State is the current status of the server
State string `json:"state,omitempty"` State string `json:"state,omitempty"`
// BootType is the boot method used, can be local or bootscript
BootType string `json:"boot_type,omitempty"`
// StateDetail is the detailed status of the server // StateDetail is the detailed status of the server
StateDetail string `json:"state_detail,omitempty"` StateDetail string `json:"state_detail,omitempty"`
@ -569,7 +581,7 @@ type ScalewayServer struct {
// Organization is the owner of the server // Organization is the owner of the server
Organization string `json:"organization,omitempty"` Organization string `json:"organization,omitempty"`
// CommercialType is the commercial type of the server (i.e: C1, C2[SML], VC1S) // CommercialType is the commercial type of the server (i.e: C1, C2[SML], START1-S)
CommercialType string `json:"commercial_type,omitempty"` CommercialType string `json:"commercial_type,omitempty"`
// Location of the server // Location of the server
@ -619,6 +631,7 @@ type ScalewayServerPatchDefinition struct {
Tags *[]string `json:"tags,omitempty"` Tags *[]string `json:"tags,omitempty"`
IPV6 *ScalewayIPV6Definition `json:"ipv6,omitempty"` IPV6 *ScalewayIPV6Definition `json:"ipv6,omitempty"`
EnableIPV6 *bool `json:"enable_ipv6,omitempty"` EnableIPV6 *bool `json:"enable_ipv6,omitempty"`
BootType *string `json:"boot_type,omitempty"`
} }
// ScalewayServerDefinition represents a Scaleway server with image definition // ScalewayServerDefinition represents a Scaleway server with image definition
@ -644,7 +657,7 @@ type ScalewayServerDefinition struct {
// Organization is the owner of the server // Organization is the owner of the server
Organization string `json:"organization"` Organization string `json:"organization"`
// CommercialType is the commercial type of the server (i.e: C1, C2[SML], VC1S) // CommercialType is the commercial type of the server (i.e: C1, C2[SML], START1-S)
CommercialType string `json:"commercial_type"` CommercialType string `json:"commercial_type"`
PublicIP string `json:"public_ip,omitempty"` PublicIP string `json:"public_ip,omitempty"`
@ -652,6 +665,8 @@ type ScalewayServerDefinition struct {
EnableIPV6 bool `json:"enable_ipv6,omitempty"` EnableIPV6 bool `json:"enable_ipv6,omitempty"`
SecurityGroup string `json:"security_group,omitempty"` SecurityGroup string `json:"security_group,omitempty"`
BootType string `json:"boot_type,omitempty"`
} }
// ScalewayOneServer represents the response of a GET /servers/UUID API call // ScalewayOneServer represents the response of a GET /servers/UUID API call
@ -1208,7 +1223,7 @@ func (s *ScalewayAPI) GetServers(all bool, limit int) (*[]ScalewayServer, error)
} }
) )
serverChan := make(chan ScalewayServers, 2) serverChan := make(chan ScalewayServers, len(apis))
for _, api := range apis { for _, api := range apis {
g.Go(s.fetchServers(api, query, serverChan)) g.Go(s.fetchServers(api, query, serverChan))
} }
@ -1382,7 +1397,7 @@ func (s *ScalewayAPI) PostSnapshot(volumeID string, name string) (string, error)
return "", err return "", err
} }
// FIXME arch, owner, title // FIXME arch, owner, title
s.Cache.InsertSnapshot(snapshot.Snapshot.Identifier, "", "", snapshot.Snapshot.Organization, snapshot.Snapshot.Name) s.Cache.InsertSnapshot(snapshot.Snapshot.Identifier, s.Region, "", snapshot.Snapshot.Organization, snapshot.Snapshot.Name)
return snapshot.Snapshot.Identifier, nil return snapshot.Snapshot.Identifier, nil
} }
@ -1414,7 +1429,7 @@ func (s *ScalewayAPI) PostImage(volumeID string, name string, bootscript string,
return "", err return "", err
} }
// FIXME region, arch, owner, title // FIXME region, arch, owner, title
s.Cache.InsertImage(image.Image.Identifier, "", image.Image.Arch, image.Image.Organization, image.Image.Name, "") s.Cache.InsertImage(image.Image.Identifier, s.Region, image.Image.Arch, image.Image.Organization, image.Image.Name, "")
return image.Image.Identifier, nil return image.Image.Identifier, nil
} }
@ -1690,7 +1705,7 @@ func (s *ScalewayAPI) GetSnapshots() (*[]ScalewaySnapshot, error) {
} }
for _, snapshot := range snapshots.Snapshots { for _, snapshot := range snapshots.Snapshots {
// FIXME region, arch, owner, title // FIXME region, arch, owner, title
s.Cache.InsertSnapshot(snapshot.Identifier, "", "", snapshot.Organization, snapshot.Name) s.Cache.InsertSnapshot(snapshot.Identifier, s.Region, "", snapshot.Organization, snapshot.Name)
} }
return &snapshots.Snapshots, nil return &snapshots.Snapshots, nil
} }
@ -1713,7 +1728,7 @@ func (s *ScalewayAPI) GetSnapshot(snapshotID string) (*ScalewaySnapshot, error)
return nil, err return nil, err
} }
// FIXME region, arch, owner, title // FIXME region, arch, owner, title
s.Cache.InsertSnapshot(oneSnapshot.Snapshot.Identifier, "", "", oneSnapshot.Snapshot.Organization, oneSnapshot.Snapshot.Name) s.Cache.InsertSnapshot(oneSnapshot.Snapshot.Identifier, s.Region, "", oneSnapshot.Snapshot.Organization, oneSnapshot.Snapshot.Name)
return &oneSnapshot.Snapshot, nil return &oneSnapshot.Snapshot, nil
} }
@ -1740,7 +1755,7 @@ func (s *ScalewayAPI) GetVolumes() (*[]ScalewayVolume, error) {
} }
for _, volume := range volumes.Volumes { for _, volume := range volumes.Volumes {
// FIXME region, arch, owner, title // FIXME region, arch, owner, title
s.Cache.InsertVolume(volume.Identifier, "", "", volume.Organization, volume.Name) s.Cache.InsertVolume(volume.Identifier, s.Region, "", volume.Organization, volume.Name)
} }
return &volumes.Volumes, nil return &volumes.Volumes, nil
} }
@ -1763,7 +1778,7 @@ func (s *ScalewayAPI) GetVolume(volumeID string) (*ScalewayVolume, error) {
return nil, err return nil, err
} }
// FIXME region, arch, owner, title // FIXME region, arch, owner, title
s.Cache.InsertVolume(oneVolume.Volume.Identifier, "", "", oneVolume.Volume.Organization, oneVolume.Volume.Name) s.Cache.InsertVolume(oneVolume.Volume.Identifier, s.Region, "", oneVolume.Volume.Organization, oneVolume.Volume.Name)
return &oneVolume.Volume, nil return &oneVolume.Volume, nil
} }
@ -1789,7 +1804,7 @@ func (s *ScalewayAPI) GetBootscripts() (*[]ScalewayBootscript, error) {
} }
for _, bootscript := range bootscripts.Bootscripts { for _, bootscript := range bootscripts.Bootscripts {
// FIXME region, arch, owner, title // FIXME region, arch, owner, title
s.Cache.InsertBootscript(bootscript.Identifier, "", bootscript.Arch, bootscript.Organization, bootscript.Title) s.Cache.InsertBootscript(bootscript.Identifier, s.Region, bootscript.Arch, bootscript.Organization, bootscript.Title)
} }
return &bootscripts.Bootscripts, nil return &bootscripts.Bootscripts, nil
} }
@ -1812,7 +1827,7 @@ func (s *ScalewayAPI) GetBootscript(bootscriptID string) (*ScalewayBootscript, e
return nil, err return nil, err
} }
// FIXME region, arch, owner, title // FIXME region, arch, owner, title
s.Cache.InsertBootscript(oneBootscript.Bootscript.Identifier, "", oneBootscript.Bootscript.Arch, oneBootscript.Bootscript.Organization, oneBootscript.Bootscript.Title) s.Cache.InsertBootscript(oneBootscript.Bootscript.Identifier, s.Region, oneBootscript.Bootscript.Arch, oneBootscript.Bootscript.Organization, oneBootscript.Bootscript.Title)
return &oneBootscript.Bootscript, nil return &oneBootscript.Bootscript, nil
} }
@ -1973,21 +1988,10 @@ func (s *ScalewayAPI) CheckCredentials() error {
if err != nil { if err != nil {
return err return err
} }
found := false
var tokens ScalewayGetTokens var tokens ScalewayGetTokens
if err = json.Unmarshal(body, &tokens); err != nil { if err = json.Unmarshal(body, &tokens); err != nil {
return err return err
} }
for _, token := range tokens.Tokens {
if token.ID == s.Token {
found = true
break
}
}
if !found {
return fmt.Errorf("Invalid token %v", s.Token)
}
return nil return nil
} }

View File

@ -319,6 +319,7 @@ type ConfigCreateServer struct {
CommercialType string CommercialType string
DynamicIPRequired bool DynamicIPRequired bool
EnableIPV6 bool EnableIPV6 bool
BootType string
} }
// Return offer from any of the product name or alternate names // Return offer from any of the product name or alternate names
@ -350,6 +351,10 @@ func CreateServer(api *ScalewayAPI, c *ConfigCreateServer) (string, error) {
return "", errors.New("Invalid commercial type") return "", errors.New("Invalid commercial type")
} }
if c.BootType != "local" && c.BootType != "bootscript" {
return "", errors.New("Invalid boot type")
}
if c.Name == "" { if c.Name == "" {
c.Name = strings.Replace(namesgenerator.GetRandomName(0), "_", "-", -1) c.Name = strings.Replace(namesgenerator.GetRandomName(0), "_", "-", -1)
} }
@ -360,6 +365,7 @@ func CreateServer(api *ScalewayAPI, c *ConfigCreateServer) (string, error) {
server.Volumes = make(map[string]string) server.Volumes = make(map[string]string)
server.DynamicIPRequired = &c.DynamicIPRequired server.DynamicIPRequired = &c.DynamicIPRequired
server.EnableIPV6 = c.EnableIPV6 server.EnableIPV6 = c.EnableIPV6
server.BootType = c.BootType
if commercialType == "" { if commercialType == "" {
return "", errors.New("You need to specify a commercial-type") return "", errors.New("You need to specify a commercial-type")
} }

6
vendor/vendor.json vendored
View File

@ -1443,10 +1443,10 @@
"revisionTime": "2017-03-21T23:07:31Z" "revisionTime": "2017-03-21T23:07:31Z"
}, },
{ {
"checksumSHA1": "UvMjUbtTEF0wskLTpV8grtBUh7Q=", "checksumSHA1": "17M5pJv8Wr4lIxmINnba9vTozR8=",
"path": "github.com/scaleway/scaleway-cli/pkg/api", "path": "github.com/scaleway/scaleway-cli/pkg/api",
"revision": "51d0290d9434dc6139dd89001236cfd989521a79", "revision": "7b12c9699d70d4ca06140b7d829d09b6a1c8f6f5",
"revisionTime": "2018-03-05T22:44:21Z" "revisionTime": "2018-09-21T09:43:45Z"
}, },
{ {
"checksumSHA1": "kveaAmNlnvmIIuEkFcMlB+N7TqY=", "checksumSHA1": "kveaAmNlnvmIIuEkFcMlB+N7TqY=",