Skip to content

Commit 76367db

Browse files
nvazquezrohityadavcloud
authored andcommitted
L2: add default L2 network offerings (apache#2683)
Adds default L2 network offerings. Adds check for existing default L2 networks.
1 parent 99ca81a commit 76367db

File tree

5 files changed

+61
-0
lines changed

5 files changed

+61
-0
lines changed

api/src/com/cloud/offering/NetworkOffering.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ public enum Detail {
5757
public final static String DefaultIsolatedNetworkOfferingForVpcNetworks = "DefaultIsolatedNetworkOfferingForVpcNetworks";
5858
public final static String DefaultIsolatedNetworkOfferingForVpcNetworksNoLB = "DefaultIsolatedNetworkOfferingForVpcNetworksNoLB";
5959
public final static String DefaultIsolatedNetworkOfferingForVpcNetworksWithInternalLB = "DefaultIsolatedNetworkOfferingForVpcNetworksWithInternalLB";
60+
public final static String DefaultL2NetworkOffering = "DefaultL2NetworkOffering";
61+
public final static String DefaultL2NetworkOfferingVlan = "DefaultL2NetworkOfferingVlan";
62+
public final static String DefaultL2NetworkOfferingConfigDrive = "DefaultL2NetworkOfferingConfigDrive";
63+
public final static String DefaultL2NetworkOfferingConfigDriveVlan = "DefaultL2NetworkOfferingConfigDriveVlan";
6064

6165
/**
6266
* @return name for the network offering.

engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -561,6 +561,8 @@ public void doInTransactionWithoutResult(final TransactionStatus status) {
561561
offering.setDedicatedLB(false);
562562
_networkOfferingDao.update(offering.getId(), offering);
563563
}
564+
565+
_networkOfferingDao.persistDefaultL2NetworkOfferings();
564566
}
565567
});
566568

engine/schema/src/com/cloud/offerings/dao/NetworkOfferingDao.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,9 @@ public interface NetworkOfferingDao extends GenericDao<NetworkOfferingVO, Long>
6464
List<Long> listNetworkOfferingID();
6565

6666
boolean isUsingServicePackage(String uuid);
67+
68+
/**
69+
* Create default L2 network offerings
70+
*/
71+
void persistDefaultL2NetworkOfferings();
6772
}

engine/schema/src/com/cloud/offerings/dao/NetworkOfferingDaoImpl.java

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import javax.inject.Inject;
2424
import javax.persistence.EntityExistsException;
2525

26+
import com.cloud.offerings.NetworkOfferingServiceMapVO;
2627
import org.apache.commons.collections.CollectionUtils;
2728
import org.springframework.stereotype.Component;
2829

@@ -52,6 +53,8 @@ public class NetworkOfferingDaoImpl extends GenericDaoBase<NetworkOfferingVO, Lo
5253
private final GenericSearchBuilder<NetworkOfferingVO, Long> UpgradeSearch;
5354
@Inject
5455
NetworkOfferingDetailsDao _detailsDao;
56+
@Inject
57+
private NetworkOfferingServiceMapDao networkOfferingServiceMapDao;
5558

5659
protected NetworkOfferingDaoImpl() {
5760
super();
@@ -221,4 +224,49 @@ public boolean isUsingServicePackage(String uuid) {
221224

222225
return false;
223226
}
227+
228+
/**
229+
* Persist L2 deafult Network offering
230+
*/
231+
private void persistL2DefaultNetworkOffering(String name, String displayText, boolean specifyVlan, boolean configDriveEnabled) {
232+
NetworkOfferingVO offering = new NetworkOfferingVO(name, displayText, TrafficType.Guest, false, specifyVlan,
233+
null, null, true, Availability.Optional, null, Network.GuestType.L2,
234+
true,false, false, false, false, false);
235+
offering.setState(NetworkOffering.State.Enabled);
236+
persistDefaultNetworkOffering(offering);
237+
238+
if (configDriveEnabled) {
239+
NetworkOfferingServiceMapVO offService = new NetworkOfferingServiceMapVO(offering.getId(),
240+
Network.Service.UserData, Network.Provider.ConfigDrive);
241+
networkOfferingServiceMapDao.persist(offService);
242+
}
243+
}
244+
245+
/**
246+
* Check for default L2 Network Offerings, create them if they are not already created
247+
*/
248+
private void checkPersistL2NetworkOffering(String name, String displayText, boolean specifyVlan, boolean configDriveEnabled) {
249+
if (findByUniqueName(name) == null) {
250+
persistL2DefaultNetworkOffering(name, displayText, specifyVlan, configDriveEnabled);
251+
}
252+
}
253+
254+
@Override
255+
public void persistDefaultL2NetworkOfferings() {
256+
checkPersistL2NetworkOffering(NetworkOffering.DefaultL2NetworkOffering,
257+
"Offering for L2 networks",
258+
false, false);
259+
260+
checkPersistL2NetworkOffering(NetworkOffering.DefaultL2NetworkOfferingVlan,
261+
"Offering for L2 networks VLAN",
262+
true, false);
263+
264+
checkPersistL2NetworkOffering(NetworkOffering.DefaultL2NetworkOfferingConfigDrive,
265+
"Offering for L2 networks with config drive user data",
266+
false, true);
267+
268+
checkPersistL2NetworkOffering(NetworkOffering.DefaultL2NetworkOfferingConfigDriveVlan,
269+
"Offering for L2 networks with config drive user data VLAN",
270+
true, true);
271+
}
224272
}

server/src/com/cloud/server/ConfigurationServerImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1175,6 +1175,8 @@ public void doInTransactionWithoutResult(TransactionStatus status) {
11751175
_ntwkOfferingServiceMapDao.persist(offService);
11761176
s_logger.trace("Added service for the network offering: " + offService);
11771177
}
1178+
1179+
_networkOfferingDao.persistDefaultL2NetworkOfferings();
11781180
}
11791181
});
11801182
}

0 commit comments

Comments
 (0)