1
0
mirror of https://github.com/rancher/os.git synced 2025-09-25 12:47:20 +00:00

Code updates for packethost/packngo v0.1.0

This commit is contained in:
niusmallnan
2017-12-19 16:43:12 +08:00
committed by niusmallnan
parent 543f106689
commit bd845cca31

View File

@@ -15,9 +15,7 @@
package packet package packet
import ( import (
"bytes"
"fmt" "fmt"
"net/http"
"strconv" "strconv"
"strings" "strings"
@@ -50,8 +48,7 @@ func NewDatasource(root string) *MetadataService {
} }
func (ms *MetadataService) FetchMetadata() (metadata datasource.Metadata, err error) { func (ms *MetadataService) FetchMetadata() (metadata datasource.Metadata, err error) {
c := packetMetadata.NewClient(http.DefaultClient) m, err := packetMetadata.GetMetadata()
m, err := c.Metadata.Get()
if err != nil { if err != nil {
log.Errorf("Failed to get Packet metadata: %v", err) log.Errorf("Failed to get Packet metadata: %v", err)
return return
@@ -72,24 +69,24 @@ func (ms *MetadataService) FetchMetadata() (metadata datasource.Metadata, err er
Interfaces: map[string]netconf.InterfaceConfig{}, Interfaces: map[string]netconf.InterfaceConfig{},
} }
for _, iface := range m.Network.Interfaces { for _, iface := range m.Network.Interfaces {
netCfg.Interfaces["mac="+iface.Mac] = netconf.InterfaceConfig{ netCfg.Interfaces["mac="+iface.MAC] = netconf.InterfaceConfig{
Bond: "bond0", Bond: "bond0",
} }
} }
for _, addr := range m.Network.Addresses { for _, addr := range m.Network.Addresses {
bondCfg.Addresses = append(bondCfg.Addresses, fmt.Sprintf("%s/%d", addr.Address, addr.Cidr)) bondCfg.Addresses = append(bondCfg.Addresses, fmt.Sprintf("%s/%d", addr.Address, addr.NetworkBits))
if addr.Gateway != "" { if addr.Gateway != nil && len(addr.Gateway) > 0 {
if addr.AddressFamily == 4 { if addr.Family == packetMetadata.IPv4 {
if addr.Public { if addr.Public {
bondCfg.Gateway = addr.Gateway bondCfg.Gateway = addr.Gateway.String()
} }
} else { } else {
bondCfg.GatewayIpv6 = addr.Gateway bondCfg.GatewayIpv6 = addr.Gateway.String()
} }
} }
if addr.AddressFamily == 4 && strings.HasPrefix(addr.Gateway, "10.") { if addr.Family == packetMetadata.IPv4 && strings.HasPrefix(addr.Gateway.String(), "10.") {
bondCfg.PostUp = append(bondCfg.PostUp, "ip route add 10.0.0.0/8 via "+addr.Gateway) bondCfg.PostUp = append(bondCfg.PostUp, "ip route add 10.0.0.0/8 via "+addr.Gateway.String())
} }
} }
@@ -124,7 +121,7 @@ func (ms *MetadataService) FetchMetadata() (metadata datasource.Metadata, err er
*/ */
metadata.Hostname = m.Hostname metadata.Hostname = m.Hostname
metadata.SSHPublicKeys = map[string]string{} metadata.SSHPublicKeys = map[string]string{}
for i, key := range m.SshKeys { for i, key := range m.SSHKeys {
metadata.SSHPublicKeys[strconv.Itoa(i)] = key metadata.SSHPublicKeys[strconv.Itoa(i)] = key
} }
@@ -132,9 +129,9 @@ func (ms *MetadataService) FetchMetadata() (metadata datasource.Metadata, err er
// This is not really the right place - perhaps we should add a call-home function in each datasource to be called after the network is applied // This is not really the right place - perhaps we should add a call-home function in each datasource to be called after the network is applied
//(see the original in cmd/cloudsave/packet) //(see the original in cmd/cloudsave/packet)
if _, err = http.Post(m.PhoneHomeURL, "application/json", bytes.NewReader([]byte{})); err != nil { //if _, err = http.Post(m.PhoneHomeURL, "application/json", bytes.NewReader([]byte{})); err != nil {
log.Errorf("Failed to post to Packet phone home URL: %v", err) //log.Errorf("Failed to post to Packet phone home URL: %v", err)
} //}
return return
} }