This is an automated email from the ASF dual-hosted git repository.
dahn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/main by this push:
new 8ef35466de2 Tungsten: fix functional issues (#7173)
8ef35466de2 is described below
commit 8ef35466de236d3892aa5b8128594aebfc3874f2
Author: Wei Zhou <[email protected]>
AuthorDate: Mon Feb 13 09:15:28 2023 +0100
Tungsten: fix functional issues (#7173)
Co-authored-by: dahn <[email protected]>
---
.../service/NetworkOrchestrationService.java | 3 +++
.../java/com/cloud/agent/manager/AgentManagerImpl.java | 2 ++
.../engine/orchestration/NetworkOrchestrator.java | 3 ++-
.../kvm/resource/LibvirtComputingResource.java | 12 +++++++++---
.../cloud/hypervisor/kvm/resource/VRouterVifDriver.java | 3 ++-
.../network/tungsten/service/TungstenService.java | 8 --------
.../network/tungsten/service/TungstenServiceImpl.java | 16 +---------------
scripts/vm/network/tungsten/create_tap_device.sh | 0
scripts/vm/network/tungsten/delete_tap_device.sh | 0
scripts/vm/network/tungsten/setup_tungsten_vrouter.sh | 0
.../network/tungsten/update_tungsten_loadbalancer_ssl.sh | 0
.../tungsten/update_tungsten_loadbalancer_stats.sh | 0
12 files changed, 19 insertions(+), 28 deletions(-)
diff --git
a/engine/api/src/main/java/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
b/engine/api/src/main/java/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
index bf58c72c133..6d7c540613b 100644
---
a/engine/api/src/main/java/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
+++
b/engine/api/src/main/java/org/apache/cloudstack/engine/orchestration/service/NetworkOrchestrationService.java
@@ -100,6 +100,9 @@ public interface NetworkOrchestrationService {
ConfigKey<Boolean> RollingRestartEnabled = new
ConfigKey<Boolean>("Advanced", Boolean.class, "network.rolling.restart", "true",
"Whether to allow or deny rolling restart of network routers.",
true);
+ static final ConfigKey<Boolean> TUNGSTEN_ENABLED = new
ConfigKey<>(Boolean.class, "tungsten.plugin.enable", "Advanced", "false",
+ "Indicates whether to enable the Tungsten plugin", false,
ConfigKey.Scope.Zone, null);
+
List<? extends Network> setupNetwork(Account owner, NetworkOffering
offering, DeploymentPlan plan, String name, String displayText, boolean
isDefault)
throws ConcurrentOperationException;
diff --git
a/engine/orchestration/src/main/java/com/cloud/agent/manager/AgentManagerImpl.java
b/engine/orchestration/src/main/java/com/cloud/agent/manager/AgentManagerImpl.java
index 8e910c55cab..b74c11cf138 100644
---
a/engine/orchestration/src/main/java/com/cloud/agent/manager/AgentManagerImpl.java
+++
b/engine/orchestration/src/main/java/com/cloud/agent/manager/AgentManagerImpl.java
@@ -42,6 +42,7 @@ import com.cloud.configuration.Config;
import com.cloud.utils.NumbersUtil;
import org.apache.cloudstack.agent.lb.IndirectAgentLB;
import org.apache.cloudstack.ca.CAManager;
+import
org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
import org.apache.cloudstack.framework.config.ConfigKey;
import org.apache.cloudstack.framework.config.Configurable;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
@@ -1783,6 +1784,7 @@ public class AgentManagerImpl extends ManagerBase
implements AgentManager, Handl
Map<String, String> params = new HashMap<String, String>();
params.put(Config.RouterAggregationCommandEachTimeout.toString(),
_configDao.getValue(Config.RouterAggregationCommandEachTimeout.toString()));
params.put(Config.MigrateWait.toString(),
_configDao.getValue(Config.MigrateWait.toString()));
+
params.put(NetworkOrchestrationService.TUNGSTEN_ENABLED.key(),
String.valueOf(NetworkOrchestrationService.TUNGSTEN_ENABLED.valueIn(host.getDataCenterId())));
try {
SetHostParamsCommand cmds = new
SetHostParamsCommand(params);
diff --git
a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
index 1a3edb59a07..577b0915dde 100644
---
a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
+++
b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
@@ -4648,6 +4648,7 @@ public class NetworkOrchestrator extends ManagerBase
implements NetworkOrchestra
public ConfigKey<?>[] getConfigKeys() {
return new ConfigKey<?>[]{NetworkGcWait, NetworkGcInterval,
NetworkLockTimeout,
GuestDomainSuffix, NetworkThrottlingRate, MinVRVersion,
- PromiscuousMode, MacAddressChanges, ForgedTransmits,
MacLearning, RollingRestartEnabled};
+ PromiscuousMode, MacAddressChanges, ForgedTransmits,
MacLearning, RollingRestartEnabled,
+ TUNGSTEN_ENABLED };
}
}
diff --git
a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
index a24a0464b0e..b5260b37965 100644
---
a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
+++
b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
@@ -50,7 +50,7 @@ import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.cloudstack.api.ApiConstants.IoDriverPolicy;
-import org.apache.cloudstack.network.tungsten.service.TungstenService;
+import
org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
import org.apache.cloudstack.storage.configdrive.ConfigDrive;
import org.apache.cloudstack.storage.to.PrimaryDataStoreTO;
import org.apache.cloudstack.storage.to.TemplateObjectTO;
@@ -462,6 +462,8 @@ public class LibvirtComputingResource extends
ServerResourceBase implements Serv
protected LibvirtDomainXMLParser parser = new LibvirtDomainXMLParser();
+ private boolean isTungstenEnabled = false;
+
private static Gson gson = new Gson();
/**
@@ -1396,6 +1398,10 @@ public class LibvirtComputingResource extends
ServerResourceBase implements Serv
_migrateWait = intValue;
}
+ if (params.get(NetworkOrchestrationService.TUNGSTEN_ENABLED.key()) !=
null) {
+ isTungstenEnabled =
Boolean.parseBoolean(params.get(NetworkOrchestrationService.TUNGSTEN_ENABLED.key()));
+ }
+
return true;
}
@@ -1481,8 +1487,8 @@ public class LibvirtComputingResource extends
ServerResourceBase implements Serv
defaultVifDriverName = DEFAULT_BRIDGE_VIF_DRIVER_CLASS_NAME;
}
}
- tungstenVifDriver =
getVifDriverClass(DEFAULT_TUNGSTEN_VIF_DRIVER_CLASS_NAME, params);
_defaultVifDriver = getVifDriverClass(defaultVifDriverName, params);
+ tungstenVifDriver =
getVifDriverClass(DEFAULT_TUNGSTEN_VIF_DRIVER_CLASS_NAME, params);
// Load any per-traffic-type vif drivers
for (final Map.Entry<String, Object> entry : params.entrySet()) {
@@ -1556,7 +1562,7 @@ public class LibvirtComputingResource extends
ServerResourceBase implements Serv
final Set<VifDriver> vifDrivers = new HashSet<VifDriver>();
vifDrivers.add(_defaultVifDriver);
- if (TungstenService.isTungstenEnabled(Long.parseLong(_dcId))) {
+ if (isTungstenEnabled) {
vifDrivers.add(tungstenVifDriver);
}
vifDrivers.addAll(_trafficTypeVifDrivers.values());
diff --git
a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/VRouterVifDriver.java
b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/VRouterVifDriver.java
index 5876602bc64..e6d9801e22c 100644
---
a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/VRouterVifDriver.java
+++
b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/VRouterVifDriver.java
@@ -107,7 +107,8 @@ public class VRouterVifDriver extends VifDriverBase {
@Override
public boolean isExistingBridge(String bridgeName) {
File f = new File("/sys/devices/virtual/net/" + bridgeName);
- return f.exists();
+ File bridge = new File("/sys/devices/virtual/net/" + bridgeName +
"/bridge");
+ return f.exists() && ! bridge.exists();
}
@Override
diff --git
a/plugins/network-elements/tungsten/src/main/java/org/apache/cloudstack/network/tungsten/service/TungstenService.java
b/plugins/network-elements/tungsten/src/main/java/org/apache/cloudstack/network/tungsten/service/TungstenService.java
index 5f6b02b7214..25c405bf97c 100644
---
a/plugins/network-elements/tungsten/src/main/java/org/apache/cloudstack/network/tungsten/service/TungstenService.java
+++
b/plugins/network-elements/tungsten/src/main/java/org/apache/cloudstack/network/tungsten/service/TungstenService.java
@@ -25,7 +25,6 @@ import com.cloud.network.element.TungstenProviderVO;
import com.cloud.network.lb.LoadBalancingRule;
import com.cloud.vm.VMInstanceVO;
import org.apache.cloudstack.api.BaseResponse;
-import org.apache.cloudstack.framework.config.ConfigKey;
import
org.apache.cloudstack.network.tungsten.api.response.TungstenFabricAddressGroupResponse;
import
org.apache.cloudstack.network.tungsten.api.response.TungstenFabricApplicationPolicySetResponse;
import
org.apache.cloudstack.network.tungsten.api.response.TungstenFabricFirewallPolicyResponse;
@@ -42,13 +41,6 @@ import java.util.List;
public interface TungstenService {
- static final ConfigKey<Boolean> TUNGSTEN_ENABLED = new
ConfigKey<Boolean>(Boolean.class, "tungsten.plugin.enable", "Advanced", "false",
- "Indicates whether to enable the Tungsten plugin", false,
ConfigKey.Scope.Zone, null);
-
- static Boolean isTungstenEnabled(long zoneId) {
- return TUNGSTEN_ENABLED.valueIn(zoneId);
- }
-
String getTungstenProjectFqn(Network network);
List<TungstenProviderVO> getTungstenProviders();
diff --git
a/plugins/network-elements/tungsten/src/main/java/org/apache/cloudstack/network/tungsten/service/TungstenServiceImpl.java
b/plugins/network-elements/tungsten/src/main/java/org/apache/cloudstack/network/tungsten/service/TungstenServiceImpl.java
index f54aaba1d77..ad20a98984f 100644
---
a/plugins/network-elements/tungsten/src/main/java/org/apache/cloudstack/network/tungsten/service/TungstenServiceImpl.java
+++
b/plugins/network-elements/tungsten/src/main/java/org/apache/cloudstack/network/tungsten/service/TungstenServiceImpl.java
@@ -115,8 +115,6 @@ import
net.juniper.tungsten.api.types.VirtualMachineInterface;
import net.juniper.tungsten.api.types.VirtualNetwork;
import org.apache.cloudstack.api.BaseResponse;
import org.apache.cloudstack.context.CallContext;
-import org.apache.cloudstack.framework.config.ConfigKey;
-import org.apache.cloudstack.framework.config.Configurable;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.cloudstack.framework.messagebus.MessageBus;
import
org.apache.cloudstack.network.tungsten.agent.api.AddTungstenNetworkGatewayToLogicalRouterCommand;
@@ -230,7 +228,7 @@ import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
-public class TungstenServiceImpl extends ManagerBase implements
TungstenService, Configurable {
+public class TungstenServiceImpl extends ManagerBase implements
TungstenService {
private static final Logger s_logger =
Logger.getLogger(TungstenServiceImpl.class);
private static final String NETWORK = "network";
@@ -2540,16 +2538,4 @@ public class TungstenServiceImpl extends ManagerBase
implements TungstenService,
}
return resultList;
}
-
- @Override
- public String getConfigComponentName() {
- return TungstenServiceImpl.class.getSimpleName();
- }
-
- @Override
- public ConfigKey<?>[] getConfigKeys() {
- return new ConfigKey<?>[] {
- TUNGSTEN_ENABLED
- };
- }
}
diff --git a/scripts/vm/network/tungsten/create_tap_device.sh
b/scripts/vm/network/tungsten/create_tap_device.sh
old mode 100644
new mode 100755
diff --git a/scripts/vm/network/tungsten/delete_tap_device.sh
b/scripts/vm/network/tungsten/delete_tap_device.sh
old mode 100644
new mode 100755
diff --git a/scripts/vm/network/tungsten/setup_tungsten_vrouter.sh
b/scripts/vm/network/tungsten/setup_tungsten_vrouter.sh
old mode 100644
new mode 100755
diff --git a/scripts/vm/network/tungsten/update_tungsten_loadbalancer_ssl.sh
b/scripts/vm/network/tungsten/update_tungsten_loadbalancer_ssl.sh
old mode 100644
new mode 100755
diff --git a/scripts/vm/network/tungsten/update_tungsten_loadbalancer_stats.sh
b/scripts/vm/network/tungsten/update_tungsten_loadbalancer_stats.sh
old mode 100644
new mode 100755