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].

Reply via email to