This is an automated email from the ASF dual-hosted git repository.
rohit pushed a commit to branch 4.11
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.11 by this push:
new 76367db L2: add default L2 network offerings (#2683)
76367db is described below
commit 76367db8fb1aef0f58a9359c193548985def3d92
Author: Nicolas Vazquez <[email protected]>
AuthorDate: Thu Jun 7 02:53:35 2018 -0300
L2: add default L2 network offerings (#2683)
Adds default L2 network offerings. Adds check for existing default L2
networks.
---
api/src/com/cloud/offering/NetworkOffering.java | 4 ++
.../engine/orchestration/NetworkOrchestrator.java | 2 +
.../cloud/offerings/dao/NetworkOfferingDao.java | 5 +++
.../offerings/dao/NetworkOfferingDaoImpl.java | 48 ++++++++++++++++++++++
.../com/cloud/server/ConfigurationServerImpl.java | 2 +
5 files changed, 61 insertions(+)
diff --git a/api/src/com/cloud/offering/NetworkOffering.java
b/api/src/com/cloud/offering/NetworkOffering.java
index 0c83789..33b165b 100644
--- a/api/src/com/cloud/offering/NetworkOffering.java
+++ b/api/src/com/cloud/offering/NetworkOffering.java
@@ -57,6 +57,10 @@ public interface NetworkOffering extends
InfrastructureEntity, InternalIdentity,
public final static String DefaultIsolatedNetworkOfferingForVpcNetworks =
"DefaultIsolatedNetworkOfferingForVpcNetworks";
public final static String
DefaultIsolatedNetworkOfferingForVpcNetworksNoLB =
"DefaultIsolatedNetworkOfferingForVpcNetworksNoLB";
public final static String
DefaultIsolatedNetworkOfferingForVpcNetworksWithInternalLB =
"DefaultIsolatedNetworkOfferingForVpcNetworksWithInternalLB";
+ public final static String DefaultL2NetworkOffering =
"DefaultL2NetworkOffering";
+ public final static String DefaultL2NetworkOfferingVlan =
"DefaultL2NetworkOfferingVlan";
+ public final static String DefaultL2NetworkOfferingConfigDrive =
"DefaultL2NetworkOfferingConfigDrive";
+ public final static String DefaultL2NetworkOfferingConfigDriveVlan =
"DefaultL2NetworkOfferingConfigDriveVlan";
/**
* @return name for the network offering.
diff --git
a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
index 8f43646..b5aca5d 100644
---
a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
+++
b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java
@@ -561,6 +561,8 @@ public class NetworkOrchestrator extends ManagerBase
implements NetworkOrchestra
offering.setDedicatedLB(false);
_networkOfferingDao.update(offering.getId(), offering);
}
+
+ _networkOfferingDao.persistDefaultL2NetworkOfferings();
}
});
diff --git a/engine/schema/src/com/cloud/offerings/dao/NetworkOfferingDao.java
b/engine/schema/src/com/cloud/offerings/dao/NetworkOfferingDao.java
index 19beddd..238a191 100644
--- a/engine/schema/src/com/cloud/offerings/dao/NetworkOfferingDao.java
+++ b/engine/schema/src/com/cloud/offerings/dao/NetworkOfferingDao.java
@@ -64,4 +64,9 @@ public interface NetworkOfferingDao extends
GenericDao<NetworkOfferingVO, Long>
List<Long> listNetworkOfferingID();
boolean isUsingServicePackage(String uuid);
+
+ /**
+ * Create default L2 network offerings
+ */
+ void persistDefaultL2NetworkOfferings();
}
diff --git
a/engine/schema/src/com/cloud/offerings/dao/NetworkOfferingDaoImpl.java
b/engine/schema/src/com/cloud/offerings/dao/NetworkOfferingDaoImpl.java
index b0cf0fe..5c40795 100644
--- a/engine/schema/src/com/cloud/offerings/dao/NetworkOfferingDaoImpl.java
+++ b/engine/schema/src/com/cloud/offerings/dao/NetworkOfferingDaoImpl.java
@@ -23,6 +23,7 @@ import java.util.Map;
import javax.inject.Inject;
import javax.persistence.EntityExistsException;
+import com.cloud.offerings.NetworkOfferingServiceMapVO;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Component;
@@ -52,6 +53,8 @@ public class NetworkOfferingDaoImpl extends
GenericDaoBase<NetworkOfferingVO, Lo
private final GenericSearchBuilder<NetworkOfferingVO, Long> UpgradeSearch;
@Inject
NetworkOfferingDetailsDao _detailsDao;
+ @Inject
+ private NetworkOfferingServiceMapDao networkOfferingServiceMapDao;
protected NetworkOfferingDaoImpl() {
super();
@@ -221,4 +224,49 @@ public class NetworkOfferingDaoImpl extends
GenericDaoBase<NetworkOfferingVO, Lo
return false;
}
+
+ /**
+ * Persist L2 deafult Network offering
+ */
+ private void persistL2DefaultNetworkOffering(String name, String
displayText, boolean specifyVlan, boolean configDriveEnabled) {
+ NetworkOfferingVO offering = new NetworkOfferingVO(name, displayText,
TrafficType.Guest, false, specifyVlan,
+ null, null, true, Availability.Optional, null,
Network.GuestType.L2,
+ true,false, false, false, false, false);
+ offering.setState(NetworkOffering.State.Enabled);
+ persistDefaultNetworkOffering(offering);
+
+ if (configDriveEnabled) {
+ NetworkOfferingServiceMapVO offService = new
NetworkOfferingServiceMapVO(offering.getId(),
+ Network.Service.UserData, Network.Provider.ConfigDrive);
+ networkOfferingServiceMapDao.persist(offService);
+ }
+ }
+
+ /**
+ * Check for default L2 Network Offerings, create them if they are not
already created
+ */
+ private void checkPersistL2NetworkOffering(String name, String
displayText, boolean specifyVlan, boolean configDriveEnabled) {
+ if (findByUniqueName(name) == null) {
+ persistL2DefaultNetworkOffering(name, displayText, specifyVlan,
configDriveEnabled);
+ }
+ }
+
+ @Override
+ public void persistDefaultL2NetworkOfferings() {
+ checkPersistL2NetworkOffering(NetworkOffering.DefaultL2NetworkOffering,
+ "Offering for L2 networks",
+ false, false);
+
+
checkPersistL2NetworkOffering(NetworkOffering.DefaultL2NetworkOfferingVlan,
+ "Offering for L2 networks VLAN",
+ true, false);
+
+
checkPersistL2NetworkOffering(NetworkOffering.DefaultL2NetworkOfferingConfigDrive,
+ "Offering for L2 networks with config drive user data",
+ false, true);
+
+
checkPersistL2NetworkOffering(NetworkOffering.DefaultL2NetworkOfferingConfigDriveVlan,
+ "Offering for L2 networks with config drive user data VLAN",
+ true, true);
+ }
}
diff --git a/server/src/com/cloud/server/ConfigurationServerImpl.java
b/server/src/com/cloud/server/ConfigurationServerImpl.java
index 197ebed..eb0dc90 100644
--- a/server/src/com/cloud/server/ConfigurationServerImpl.java
+++ b/server/src/com/cloud/server/ConfigurationServerImpl.java
@@ -1175,6 +1175,8 @@ public class ConfigurationServerImpl extends ManagerBase
implements Configuratio
_ntwkOfferingServiceMapDao.persist(offService);
s_logger.trace("Added service for the network offering: "
+ offService);
}
+
+ _networkOfferingDao.persistDefaultL2NetworkOfferings();
}
});
}
--
To stop receiving notification emails like this one, please contact
[email protected].