add UsesNetworkManager method
This commit is contained in:
parent
f84ace7700
commit
023f454c31
|
@ -68,11 +68,8 @@ func (mgr *AlmaLinuxTemplateManager) DownloadTemplate(version, codename string)
|
|||
return mgr.DownloadTemplateGeneric(filename, url)
|
||||
}
|
||||
|
||||
func (mgr *AlmaLinuxTemplateManager) GetIpv6ScriptsTemplateData() map[string]string {
|
||||
return map[string]string{
|
||||
"networkService": "NetworkManager.service",
|
||||
"networkTarget": "network-online.target",
|
||||
}
|
||||
func (mgr *AlmaLinuxTemplateManager) UsesNetworkManager() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func (mgr *AlmaLinuxTemplateManager) addCloudInitSnippet(handle *guestfs.Guestfs) error {
|
||||
|
|
|
@ -75,11 +75,9 @@ func (mgr *DebianTemplateManager) HasSELinuxEnabled() bool {
|
|||
return false
|
||||
}
|
||||
|
||||
func (mgr *DebianTemplateManager) GetIpv6ScriptsTemplateData() map[string]string {
|
||||
return map[string]string{
|
||||
"networkService": "networking.service",
|
||||
"networkTarget": "network.target",
|
||||
}
|
||||
func (mgr *DebianTemplateManager) UsesNetworkManager() bool {
|
||||
// Debian uses /etc/network/interfaces instead
|
||||
return false
|
||||
}
|
||||
|
||||
func (mgr *DebianTemplateManager) PerformDistroSpecificModifications(handle *guestfs.Guestfs) (err error) {
|
||||
|
|
|
@ -113,11 +113,8 @@ func (mgr *FedoraTemplateManager) DownloadTemplate(version, codename string) (pa
|
|||
return mgr.DownloadTemplateGeneric(filename, url)
|
||||
}
|
||||
|
||||
func (mgr *FedoraTemplateManager) GetIpv6ScriptsTemplateData() map[string]string {
|
||||
return map[string]string{
|
||||
"networkService": "NetworkManager.service",
|
||||
"networkTarget": "network-online.target",
|
||||
}
|
||||
func (mgr *FedoraTemplateManager) UsesNetworkManager() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func (mgr *FedoraTemplateManager) addCloudInitSnippet(handle *guestfs.Guestfs) error {
|
||||
|
|
|
@ -58,11 +58,8 @@ type ITemplateManager interface {
|
|||
// An IDistroSpecificTemplateManager performs the distro-specific tasks
|
||||
// when modifying a VM template. It is used by the generic TemplateManager.
|
||||
type IDistroSpecificTemplateManager interface {
|
||||
// GetIpv6ScriptsTemplateData returns template data used by the
|
||||
// IPv6 scripts. The required keys are "networkService" and
|
||||
// "networkTarget"; the values should be a systemd service and target,
|
||||
// respectively.
|
||||
GetIpv6ScriptsTemplateData() map[string]string
|
||||
// UsesNetworkManager returns whether the distro uses NetworkManager
|
||||
UsesNetworkManager() bool
|
||||
// PerformDistroSpecificModifications is called after
|
||||
// performDistroAgnosticModifications to modify a template in a
|
||||
// distro-specific way.
|
||||
|
@ -90,8 +87,7 @@ func (mgr *TemplateManager) DownloadTemplateGeneric(filename, url string) (path
|
|||
}
|
||||
|
||||
func (mgr *TemplateManager) performDistroAgnosticModifications(handle *guestfs.Guestfs) (err error) {
|
||||
templateData := mgr.impl.GetIpv6ScriptsTemplateData()
|
||||
if err = mgr.setupIpv6Scripts(handle, templateData); err != nil {
|
||||
if err = mgr.setupIpv6Scripts(handle); err != nil {
|
||||
return
|
||||
}
|
||||
if err = mgr.setResolvConf(handle); err != nil {
|
||||
|
@ -250,10 +246,10 @@ func (mgr *TemplateManager) setNetworkManagerOptions(handle *guestfs.Guestfs) (e
|
|||
return handle.Write(path, getResource("network-manager-snippet"))
|
||||
}
|
||||
|
||||
func (mgr *TemplateManager) setupIpv6Scripts(handle *guestfs.Guestfs, templateData map[string]string) (err error) {
|
||||
func (mgr *TemplateManager) setupIpv6Scripts(handle *guestfs.Guestfs) (err error) {
|
||||
log := mgr.logger
|
||||
scripts := []string{"99_csclub_ipv6_addr.sh"}
|
||||
if templateData["networkService"] == "NetworkManager.service" {
|
||||
if mgr.impl.UsesNetworkManager() {
|
||||
scripts = append(scripts, "98_csclub_disable_nm_ipv6.sh")
|
||||
} else {
|
||||
scripts = append(scripts, "98_csclub_disable_ipv6_ra.sh")
|
||||
|
|
|
@ -108,11 +108,9 @@ func (mgr *UbuntuTemplateManager) HasSELinuxEnabled() bool {
|
|||
return false
|
||||
}
|
||||
|
||||
func (mgr *UbuntuTemplateManager) GetIpv6ScriptsTemplateData() map[string]string {
|
||||
return map[string]string{
|
||||
"networkService": "systemd-networkd.service",
|
||||
"networkTarget": "network.target",
|
||||
}
|
||||
func (mgr *UbuntuTemplateManager) UsesNetworkManager() bool {
|
||||
// Ubuntu uses systemd-networkd instead
|
||||
return false
|
||||
}
|
||||
|
||||
func (mgr *UbuntuTemplateManager) PerformDistroSpecificModifications(handle *guestfs.Guestfs) (err error) {
|
||||
|
|
Loading…
Reference in New Issue