diff --git a/api/src/com/cloud/api/commands/CreatePhysicalNetworkCmd.java b/api/src/com/cloud/api/commands/CreatePhysicalNetworkCmd.java index 2544ec0ad05..82567ff8993 100644 --- a/api/src/com/cloud/api/commands/CreatePhysicalNetworkCmd.java +++ b/api/src/com/cloud/api/commands/CreatePhysicalNetworkCmd.java @@ -68,6 +68,9 @@ public class CreatePhysicalNetworkCmd extends BaseAsyncCreateCmd { @Parameter(name=ApiConstants.ISOLATION_METHODS, type=CommandType.LIST, collectionType=CommandType.STRING, description="the isolation method for the physical network[VLAN/L3/GRE]") private List isolationMethods; + + @Parameter(name=ApiConstants.NAME, type=CommandType.STRING, required=true, description="the name of the physical network") + private String networkName; ///////////////////////////////////////////////////// /////////////////// Accessors /////////////////////// ///////////////////////////////////////////////////// @@ -105,11 +108,11 @@ public class CreatePhysicalNetworkCmd extends BaseAsyncCreateCmd { return speed; } - ///////////////////////////////////////////////////// - /////////////// API Implementation/////////////////// - ///////////////////////////////////////////////////// - - @Override + public String getNetworkName() { + return networkName; + } + + @Override public String getCommandName() { return s_name; } @@ -137,8 +140,12 @@ public class CreatePhysicalNetworkCmd extends BaseAsyncCreateCmd { @Override public String getEventDescription() { return "creating Physical Network. Id: "+getEntityId(); - } + } + ///////////////////////////////////////////////////// + /////////////// API Implementation/////////////////// + ///////////////////////////////////////////////////// + @Override public void execute(){ UserContext.current().setEventDetails("Physical Network Id: "+getEntityId()); @@ -154,7 +161,7 @@ public class CreatePhysicalNetworkCmd extends BaseAsyncCreateCmd { @Override public void create() throws ResourceAllocationException { - PhysicalNetwork result = _networkService.createPhysicalNetwork(getZoneId(),getVlan(),getNetworkSpeed(), getIsolationMethods(),getBroadcastDomainRange(),getDomainId(), getTags()); + PhysicalNetwork result = _networkService.createPhysicalNetwork(getZoneId(),getVlan(),getNetworkSpeed(), getIsolationMethods(),getBroadcastDomainRange(),getDomainId(), getTags(), getNetworkName()); if (result != null) { setEntityId(result.getId()); } else { diff --git a/api/src/com/cloud/api/commands/ListPhysicalNetworksCmd.java b/api/src/com/cloud/api/commands/ListPhysicalNetworksCmd.java index 6de85c109cf..f821466a3b3 100644 --- a/api/src/com/cloud/api/commands/ListPhysicalNetworksCmd.java +++ b/api/src/com/cloud/api/commands/ListPhysicalNetworksCmd.java @@ -52,8 +52,10 @@ public class ListPhysicalNetworksCmd extends BaseListCmd { @IdentityMapper(entityTableName="data_center") @Parameter(name=ApiConstants.ZONE_ID, type=CommandType.LONG, description="the Zone ID for the physical network") private Long zoneId; - + @Parameter(name=ApiConstants.NAME, type=CommandType.STRING, description="search by name") + private String networkName; + ///////////////////////////////////////////////////// /////////////////// Accessors /////////////////////// ///////////////////////////////////////////////////// @@ -66,6 +68,10 @@ public class ListPhysicalNetworksCmd extends BaseListCmd { return zoneId; } + public String getNetworkName() { + return networkName; + } + ///////////////////////////////////////////////////// /////////////// API Implementation/////////////////// ///////////////////////////////////////////////////// @@ -82,7 +88,7 @@ public class ListPhysicalNetworksCmd extends BaseListCmd { @Override public void execute(){ - List result = _networkService.searchPhysicalNetworks(getId(),getZoneId(), this.getKeyword(), this.getStartIndex(), this.getPageSizeVal()); + List result = _networkService.searchPhysicalNetworks(getId(),getZoneId(), this.getKeyword(), this.getStartIndex(), this.getPageSizeVal(), getNetworkName()); if (result != null) { ListResponse response = new ListResponse(); List networkResponses = new ArrayList(); diff --git a/api/src/com/cloud/api/response/PhysicalNetworkResponse.java b/api/src/com/cloud/api/response/PhysicalNetworkResponse.java index be37d960675..65ab22985e5 100644 --- a/api/src/com/cloud/api/response/PhysicalNetworkResponse.java +++ b/api/src/com/cloud/api/response/PhysicalNetworkResponse.java @@ -31,6 +31,9 @@ public class PhysicalNetworkResponse extends BaseResponse{ @SerializedName(ApiConstants.ID) @Param(description="the uuid of the physical network") private String id; + @SerializedName(ApiConstants.NAME) @Param(description="name of the physical network") + private String name; + @SerializedName(ApiConstants.BROADCAST_DOMAIN_RANGE) @Param(description="Broadcast domain range of the physical network") private String broadcastDomainRange; @@ -111,5 +114,7 @@ public class PhysicalNetworkResponse extends BaseResponse{ this.isolationMethods = buf.delete(buf.length()-1, buf.length()).toString(); } - + public void setName(String name) { + this.name = name; + } } diff --git a/api/src/com/cloud/network/NetworkService.java b/api/src/com/cloud/network/NetworkService.java index 4046602bef7..b570d2d8495 100755 --- a/api/src/com/cloud/network/NetworkService.java +++ b/api/src/com/cloud/network/NetworkService.java @@ -88,9 +88,9 @@ public interface NetworkService { Map> getNetworkOfferingServiceProvidersMap(long networkOfferingId); - PhysicalNetwork createPhysicalNetwork(Long zoneId, String vnetRange, String networkSpeed, List isolationMethods, String broadcastDomainRange, Long domainId, List tags); + PhysicalNetwork createPhysicalNetwork(Long zoneId, String vnetRange, String networkSpeed, List isolationMethods, String broadcastDomainRange, Long domainId, List tags, String name); - List searchPhysicalNetworks(Long id, Long zoneId, String keyword, Long startIndex, Long pageSize); + List searchPhysicalNetworks(Long id, Long zoneId, String keyword, Long startIndex, Long pageSize, String name); PhysicalNetwork updatePhysicalNetwork(Long id, String networkSpeed, List tags, String newVnetRangeString, String state); diff --git a/api/src/com/cloud/network/PhysicalNetwork.java b/api/src/com/cloud/network/PhysicalNetwork.java index f0f5cc5b40d..02f281137e9 100644 --- a/api/src/com/cloud/network/PhysicalNetwork.java +++ b/api/src/com/cloud/network/PhysicalNetwork.java @@ -67,4 +67,6 @@ public interface PhysicalNetwork { String getUuid(); + String getName(); + } diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java index 7ec896c1f05..0a8f5218a07 100755 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -3077,6 +3077,9 @@ public class ApiResponseHelper implements ResponseGenerator { if(result.getState() != null){ response.setState(result.getState().toString()); } + + response.setName(result.getName()); + response.setObjectName("physicalnetwork"); return response; } diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java index 7627604ecbe..0c19b9b89f1 100755 --- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java @@ -1522,7 +1522,9 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura }else{ broadcastDomainRange = PhysicalNetwork.BroadcastDomainRange.ZONE.toString(); } - PhysicalNetwork defaultNetwork = _networkMgr.createPhysicalNetwork(zone.getId(), null, null, null, broadcastDomainRange, domainId, null); + + String pNtwkName = zone.getName() + "-pNtwk"; + PhysicalNetwork defaultNetwork = _networkMgr.createPhysicalNetwork(zone.getId(), null, null, null, broadcastDomainRange, domainId, null, pNtwkName); //String defaultXenLabel = "cloud-private"; diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index 88b2858fc03..6701e6aaede 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -4172,7 +4172,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag @Override @DB @ActionEvent(eventType = EventTypes.EVENT_PHYSICAL_NETWORK_CREATE, eventDescription = "Creating Physical Network", create = true) - public PhysicalNetwork createPhysicalNetwork(Long zoneId, String vnetRange, String networkSpeed, List isolationMethods, String broadcastDomainRangeStr, Long domainId, List tags) { + public PhysicalNetwork createPhysicalNetwork(Long zoneId, String vnetRange, String networkSpeed, List isolationMethods, String broadcastDomainRangeStr, Long domainId, List tags, String name) { // Check if zone exists if (zoneId == null) { throw new InvalidParameterValueException("Please specify a valid zone."); @@ -4245,7 +4245,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag try { txn.start(); // Create the new physical network in the database - PhysicalNetworkVO pNetwork = new PhysicalNetworkVO(zoneId, vnetRange, networkSpeed, domainId, broadcastDomainRange); + PhysicalNetworkVO pNetwork = new PhysicalNetworkVO(zoneId, vnetRange, networkSpeed, domainId, broadcastDomainRange, name); pNetwork.setTags(tags); pNetwork.setIsolationMethods(isolationMethods); @@ -4265,7 +4265,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag } @Override - public List searchPhysicalNetworks(Long id, Long zoneId, String keyword, Long startIndex, Long pageSize){ + public List searchPhysicalNetworks(Long id, Long zoneId, String keyword, Long startIndex, Long pageSize, String name){ Filter searchFilter = new Filter(PhysicalNetworkVO.class, "id", Boolean.TRUE, startIndex, pageSize); SearchCriteria sc = _physicalNetworkDao.createSearchCriteria(); @@ -4276,6 +4276,11 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag if (zoneId != null) { sc.addAnd("dataCenterId", SearchCriteria.Op.EQ, zoneId); } + + if (name != null) { + sc.addAnd("name", SearchCriteria.Op.LIKE, "%" + name + "%"); + } + return _physicalNetworkDao.search(sc, searchFilter); } diff --git a/server/src/com/cloud/network/PhysicalNetworkVO.java b/server/src/com/cloud/network/PhysicalNetworkVO.java index 85cf5f70a80..82821d0eb4e 100644 --- a/server/src/com/cloud/network/PhysicalNetworkVO.java +++ b/server/src/com/cloud/network/PhysicalNetworkVO.java @@ -50,7 +50,10 @@ public class PhysicalNetworkVO implements PhysicalNetwork { long id; @Column(name="uuid") - private String uuid; + private String uuid; + + @Column(name="name") + private String name; @Column(name="data_center_id") long dataCenterId; @@ -92,7 +95,7 @@ public class PhysicalNetworkVO implements PhysicalNetwork { } - public PhysicalNetworkVO(long dataCenterId, String vnet, String speed, Long domainId, BroadcastDomainRange broadcastDomainRange) { + public PhysicalNetworkVO(long dataCenterId, String vnet, String speed, Long domainId, BroadcastDomainRange broadcastDomainRange, String name) { this.dataCenterId = dataCenterId; this.setVnet(vnet); this.setSpeed(speed); @@ -104,6 +107,7 @@ public class PhysicalNetworkVO implements PhysicalNetwork { } this.state = State.Disabled; this.uuid = UUID.randomUUID().toString(); + this.name = name; } @Override @@ -218,4 +222,9 @@ public class PhysicalNetworkVO implements PhysicalNetwork { public void setUuid(String uuid) { this.uuid = uuid; } + + @Override + public String getName() { + return name; + } } diff --git a/server/src/com/cloud/upgrade/dao/Upgrade2214to30.java b/server/src/com/cloud/upgrade/dao/Upgrade2214to30.java index 222b6d50976..0804781e6a6 100644 --- a/server/src/com/cloud/upgrade/dao/Upgrade2214to30.java +++ b/server/src/com/cloud/upgrade/dao/Upgrade2214to30.java @@ -135,13 +135,14 @@ public class Upgrade2214to30 implements DbUpgrade { rs.close(); pstmt.close(); - pstmt = conn.prepareStatement("SELECT id, domain_id, networktype, vnet FROM data_center"); + pstmt = conn.prepareStatement("SELECT id, domain_id, networktype, vnet, name FROM data_center"); rs = pstmt.executeQuery(); while (rs.next()) { long zoneId = rs.getLong(1); long domainId = rs.getLong(2); String networkType = rs.getString(3); String vnet = rs.getString(4); + String zoneName = rs.getString(5); //add p.network PreparedStatement pstmt2 = conn.prepareStatement(getNextNetworkSequenceSql); @@ -169,11 +170,12 @@ public class Upgrade2214to30 implements DbUpgrade { values += ",'" + domainId + "'"; values += ",'" + broadcastDomainRange + "'"; values += ",'Enabled'"; + values += ",'" + zoneName + "-pNtwk"; values += ")"; s_logger.debug("Adding PhysicalNetwork "+physicalNetworkId+" for Zone id "+ zoneId); - String sql = "INSERT INTO `cloud`.`physical_network` (id, uuid, data_center_id, vnet, domain_id, broadcast_domain_range, state) VALUES " + values; + String sql = "INSERT INTO `cloud`.`physical_network` (id, uuid, data_center_id, vnet, domain_id, broadcast_domain_range, state, name) VALUES " + values; pstmtUpdate = conn.prepareStatement(sql); pstmtUpdate.executeUpdate(); pstmtUpdate.close(); diff --git a/server/test/com/cloud/network/MockNetworkManagerImpl.java b/server/test/com/cloud/network/MockNetworkManagerImpl.java index 04d10c0947c..0d82b174cba 100755 --- a/server/test/com/cloud/network/MockNetworkManagerImpl.java +++ b/server/test/com/cloud/network/MockNetworkManagerImpl.java @@ -445,13 +445,13 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS } @Override - public PhysicalNetwork createPhysicalNetwork(Long zoneId, String vnetRange, String networkSpeed, List isolationMethods, String broadcastDomainRange, Long domainId, List tags) { + public PhysicalNetwork createPhysicalNetwork(Long zoneId, String vnetRange, String networkSpeed, List isolationMethods, String broadcastDomainRange, Long domainId, List tags, String name) { // TODO Auto-generated method stub return null; } @Override - public List searchPhysicalNetworks(Long id, Long zoneId, String keyword, Long startIndex, Long pageSize) { + public List searchPhysicalNetworks(Long id, Long zoneId, String keyword, Long startIndex, Long pageSize, String name) { // TODO Auto-generated method stub return null; } diff --git a/setup/db/create-schema.sql b/setup/db/create-schema.sql index 35a4101eef2..4e065916b79 100755 --- a/setup/db/create-schema.sql +++ b/setup/db/create-schema.sql @@ -1912,6 +1912,7 @@ CREATE TABLE `ntwk_service_map` ( CREATE TABLE `cloud`.`physical_network` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', `uuid` varchar(40), + `name` varchar(255) NOT NULL, `data_center_id` bigint unsigned NOT NULL COMMENT 'data center id that this physical network belongs to', `vnet` varchar(255), `speed` varchar(32), diff --git a/setup/db/db/schema-2214to30.sql b/setup/db/db/schema-2214to30.sql index 304698110dd..d9c1df66731 100755 --- a/setup/db/db/schema-2214to30.sql +++ b/setup/db/db/schema-2214to30.sql @@ -340,6 +340,7 @@ CREATE TABLE `ntwk_service_map` ( CREATE TABLE `cloud`.`physical_network` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', `uuid` varchar(40), + `name` varchar(255) NOT NULL, `data_center_id` bigint unsigned NOT NULL COMMENT 'data center id that this physical network belongs to', `vnet` varchar(255), `speed` varchar(32),