rhtyd closed pull request #2683: Add default L2 network offerings
URL: https://github.com/apache/cloudstack/pull/2683
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/api/src/com/cloud/offering/NetworkOffering.java 
b/api/src/com/cloud/offering/NetworkOffering.java
index 0c8378908e6..33b165bfa29 100644
--- a/api/src/com/cloud/offering/NetworkOffering.java
+++ b/api/src/com/cloud/offering/NetworkOffering.java
@@ -57,6 +57,10 @@
     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 8f436467812..b5aca5d9f10 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 void doInTransactionWithoutResult(final 
TransactionStatus status) {
                     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 19beddd1001..238a191bd77 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 @@
     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 b0cf0fe320b..5c40795a56b 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 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 @@
     private final GenericSearchBuilder<NetworkOfferingVO, Long> UpgradeSearch;
     @Inject
     NetworkOfferingDetailsDao _detailsDao;
+    @Inject
+    private NetworkOfferingServiceMapDao networkOfferingServiceMapDao;
 
     protected NetworkOfferingDaoImpl() {
         super();
@@ -221,4 +224,49 @@ public boolean isUsingServicePackage(String uuid) {
 
         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 197ebed3e69..eb0dc90a626 100644
--- a/server/src/com/cloud/server/ConfigurationServerImpl.java
+++ b/server/src/com/cloud/server/ConfigurationServerImpl.java
@@ -1175,6 +1175,8 @@ public void 
doInTransactionWithoutResult(TransactionStatus status) {
                     _ntwkOfferingServiceMapDao.persist(offService);
                     s_logger.trace("Added service for the network offering: " 
+ offService);
                 }
+
+                _networkOfferingDao.persistDefaultL2NetworkOfferings();
             }
         });
     }


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to