mirror of
https://github.com/rancher/os.git
synced 2025-09-10 11:11:31 +00:00
ok, lets not remove the un-speced ip's in 0.9.0
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
This commit is contained in:
@@ -47,6 +47,11 @@ func NewDatasource(root string) *MetadataService {
|
|||||||
return &MetadataService{metadata.NewDatasource(root, apiVersion, userdataPath, metadataPath, nil)}
|
return &MetadataService{metadata.NewDatasource(root, apiVersion, userdataPath, metadataPath, nil)}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (ms MetadataService) AvailabilityChanges() bool {
|
||||||
|
// TODO: if it can't find the network, maybe we can start it?
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func (ms MetadataService) FetchMetadata() (datasource.Metadata, error) {
|
func (ms MetadataService) FetchMetadata() (datasource.Metadata, error) {
|
||||||
// see http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
|
// see http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
|
||||||
metadata := datasource.Metadata{}
|
metadata := datasource.Metadata{}
|
||||||
|
@@ -282,8 +282,9 @@ func removeAddress(addr netlink.Addr, link netlink.Link) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// setGateway will set _one_ gateway on an interface (ie, replace an existing one)
|
// setGateway(add=false) will set _one_ gateway on an interface (ie, replace an existing one)
|
||||||
func setGateway(gateway string) error {
|
// setGateway(add=true) will add another gateway to an interface
|
||||||
|
func setGateway(gateway string, add bool) error {
|
||||||
if gateway == "" {
|
if gateway == "" {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -298,12 +299,21 @@ func setGateway(gateway string) error {
|
|||||||
Gw: gatewayIP,
|
Gw: gatewayIP,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if add {
|
||||||
|
if err := netlink.RouteAdd(&route); err == syscall.EEXIST {
|
||||||
|
//Ignore this error
|
||||||
|
} else if err != nil {
|
||||||
|
log.Errorf("gateway add failed: %v", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
if err := netlink.RouteReplace(&route); err == syscall.EEXIST {
|
if err := netlink.RouteReplace(&route); err == syscall.EEXIST {
|
||||||
//Ignore this error
|
//Ignore this error
|
||||||
} else if err != nil {
|
} else if err != nil {
|
||||||
log.Errorf("gateway set failed: %v", err)
|
log.Errorf("gateway replace failed: %v", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
log.Infof("Set default gateway %s", gateway)
|
log.Infof("Set default gateway %s", gateway)
|
||||||
return nil
|
return nil
|
||||||
@@ -376,8 +386,8 @@ func applyInterfaceConfig(link netlink.Link, netConf InterfaceConfig) error {
|
|||||||
}
|
}
|
||||||
for _, addr := range existingAddrs {
|
for _, addr := range existingAddrs {
|
||||||
if _, ok := addrMap[addr.IPNet.String()]; !ok {
|
if _, ok := addrMap[addr.IPNet.String()]; !ok {
|
||||||
log.Infof("removing %s from %s", addr.String(), link.Attrs().Name)
|
log.Infof("leaving %s from %s", addr.String(), link.Attrs().Name)
|
||||||
removeAddress(addr, link)
|
//removeAddress(addr, link)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -395,12 +405,12 @@ func applyInterfaceConfig(link netlink.Link, netConf InterfaceConfig) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: how to remove a GW?
|
// replace the existing gw with the main ipv4 one
|
||||||
if err := setGateway(netConf.Gateway); err != nil {
|
if err := setGateway(netConf.Gateway, false); err != nil {
|
||||||
log.Errorf("Fail to set gateway %s", netConf.Gateway)
|
log.Errorf("Fail to set gateway %s", netConf.Gateway)
|
||||||
}
|
}
|
||||||
|
//and then add the ipv6 one if it exists
|
||||||
if err := setGateway(netConf.GatewayIpv6); err != nil {
|
if err := setGateway(netConf.GatewayIpv6, true); err != nil {
|
||||||
log.Errorf("Fail to set gateway %s", netConf.GatewayIpv6)
|
log.Errorf("Fail to set gateway %s", netConf.GatewayIpv6)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user