mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Make displayText in createNetwork optional (#7112)
Co-authored-by: Rahul Agarwal <rahul.agarwal@shapeblue.com> Co-authored-by: Stephan Krug <stekrug@icloud.com> Co-authored-by: dahn <daan.hoogland@gmail.com>
This commit is contained in:
parent
e32016d4a1
commit
0efa4f6e51
@ -46,6 +46,7 @@ import com.cloud.network.Network;
|
||||
import com.cloud.network.Network.GuestType;
|
||||
import com.cloud.offering.NetworkOffering;
|
||||
import com.cloud.utils.net.NetUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
@APICommand(name = "createNetwork", description = "Creates a network", responseObject = NetworkResponse.class, responseView = ResponseView.Restricted, entityType = {Network.class},
|
||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||
@ -61,7 +62,7 @@ public class CreateNetworkCmd extends BaseCmd implements UserCmd {
|
||||
@Parameter(name = ApiConstants.NAME, type = CommandType.STRING, required = true, description = "the name of the network")
|
||||
private String name;
|
||||
|
||||
@Parameter(name = ApiConstants.DISPLAY_TEXT, type = CommandType.STRING, required = true, description = "the display text of the network")
|
||||
@Parameter(name = ApiConstants.DISPLAY_TEXT, type = CommandType.STRING, description = "the display text of the network")
|
||||
private String displayText;
|
||||
|
||||
@Parameter(name = ApiConstants.NETWORK_OFFERING_ID,
|
||||
@ -221,7 +222,7 @@ public class CreateNetworkCmd extends BaseCmd implements UserCmd {
|
||||
}
|
||||
|
||||
public String getDisplayText() {
|
||||
return displayText;
|
||||
return StringUtils.isEmpty(displayText) ? name : displayText;
|
||||
}
|
||||
|
||||
public String getNetworkDomain() {
|
||||
|
||||
@ -100,12 +100,19 @@ public class CreateNetworkCmdTest extends TestCase {
|
||||
Assert.assertEquals(cmd.getNetworkName(), netName);
|
||||
}
|
||||
|
||||
public void testGetDisplayText() {
|
||||
public void testGetDisplayTextWhenNotEmpty() {
|
||||
String description = "Isolated Network";
|
||||
ReflectionTestUtils.setField(cmd, "displayText", description);
|
||||
Assert.assertEquals(cmd.getDisplayText(), description);
|
||||
}
|
||||
|
||||
public void testGetDisplayTextWhenEmpty() {
|
||||
String description = null;
|
||||
String netName = "net-isolated";
|
||||
ReflectionTestUtils.setField(cmd, "name", netName);
|
||||
Assert.assertEquals(cmd.getDisplayText(), netName);
|
||||
}
|
||||
|
||||
public void testGetNetworkDomain() {
|
||||
String netDomain = "cs1cloud.internal";
|
||||
ReflectionTestUtils.setField(cmd, "networkDomain", netDomain);
|
||||
|
||||
@ -289,3 +289,84 @@ class TestNetworkManagement(cloudstackTestCase):
|
||||
)
|
||||
|
||||
self.cleanup.append(self.network_offering)
|
||||
|
||||
@attr(tags=["adeancedsg", "Simulator"], required_hardware="false")
|
||||
def test_03_create_network_with_empty_displayText(self):
|
||||
"""Create Shared network with empty displayText
|
||||
and verify value of displayText after network
|
||||
is being created.
|
||||
"""
|
||||
# Update the global setting to true
|
||||
Configurations.update(self.apiclient,
|
||||
name="allow.duplicate.networkname",
|
||||
value="true"
|
||||
)
|
||||
|
||||
# Create network offering
|
||||
self.network_offering = NetworkOffering.create(
|
||||
self.apiclient,
|
||||
self.testdata["network_offering_shared"]
|
||||
)
|
||||
self.cleanup.append( self.network_offering)
|
||||
|
||||
NetworkOffering.update(
|
||||
self.network_offering,
|
||||
self.apiclient,
|
||||
id=self.network_offering.id,
|
||||
state="enabled"
|
||||
)
|
||||
|
||||
physical_network, vlan = get_free_vlan(self.apiclient, self.zone.id)
|
||||
self.testdata["shared_network_sg"]["physicalnetworkid"] = physical_network.id
|
||||
|
||||
random_subnet_number = random.randrange(100, 199)
|
||||
self.testdata["shared_network_sg"]["specifyVlan"] = 'True'
|
||||
self.testdata["shared_network_sg"]["specifyIpRanges"] = 'True'
|
||||
self.testdata["shared_network_sg"]["name"] = "Shared-Network-SG-Test-vlan-1"
|
||||
self.testdata["shared_network_sg"]["displayText"] = ''
|
||||
self.testdata["shared_network_sg"]["vlan"] = "vlan://" + str(random_subnet_number)
|
||||
self.testdata["shared_network_sg"]["startip"] = "192.168." + str(random_subnet_number) + ".1"
|
||||
self.testdata["shared_network_sg"]["endip"] = "192.168." + str(random_subnet_number) + ".10"
|
||||
self.testdata["shared_network_sg"]["gateway"] = "192.168." + str(random_subnet_number) + ".254"
|
||||
self.testdata["shared_network_sg"]["netmask"] = "255.255.255.0"
|
||||
self.testdata["shared_network_sg"]["acltype"] = "account"
|
||||
|
||||
# Create the first network with empty displayText
|
||||
network1 = Network.create(
|
||||
self.apiclient,
|
||||
self.testdata["shared_network_sg"],
|
||||
networkofferingid=self.network_offering.id,
|
||||
zoneid=self.zone.id,
|
||||
accountid=self.account.name,
|
||||
domainid=self.account.domainid
|
||||
)
|
||||
|
||||
self.cleanup.append(network1)
|
||||
|
||||
self.assertEqual(
|
||||
network1.displayText,
|
||||
self.testdata["shared_network_sg"]["name"],
|
||||
msg="displayText does not match name"
|
||||
)
|
||||
|
||||
self.testdata["shared_network_sg"]["displayText"] = 'test'
|
||||
|
||||
#Create the second network with non-empty displayText
|
||||
network2 = Network.create(
|
||||
self.apiclient,
|
||||
self.testdata["shared_network_sg"],
|
||||
networkofferingid=self.network_offering.id,
|
||||
zoneid=self.zone.id,
|
||||
accountid=self.account.name,
|
||||
domainid=self.account.domainid
|
||||
)
|
||||
|
||||
self.cleanup.append(network2)
|
||||
|
||||
self.assertNotEqual(
|
||||
network2.displayText,
|
||||
self.testdata["shared_network_sg"]["name"],
|
||||
msg="displayText and name are equal"
|
||||
)
|
||||
|
||||
return
|
||||
|
||||
@ -394,7 +394,6 @@ export default {
|
||||
this.form = reactive({})
|
||||
this.rules = reactive({
|
||||
name: [{ required: true, message: this.$t('message.error.name') }],
|
||||
displaytext: [{ required: true, message: this.$t('message.error.display.text') }],
|
||||
zoneid: [{ type: 'number', required: true, message: this.$t('message.error.select') }],
|
||||
networkofferingid: [{ type: 'number', required: true, message: this.$t('message.error.select') }],
|
||||
vpcid: [{ required: true, message: this.$t('message.error.select') }]
|
||||
|
||||
@ -266,7 +266,6 @@ export default {
|
||||
})
|
||||
this.rules = reactive({
|
||||
name: [{ required: true, message: this.$t('message.error.name') }],
|
||||
displaytext: [{ required: true, message: this.$t('message.error.display.text') }],
|
||||
zoneid: [{ required: true, message: this.$t('message.error.select') }],
|
||||
networkofferingid: [{ required: true, message: this.$t('message.error.select') }],
|
||||
vlanid: [{ required: true, message: this.$t('message.please.enter.value') }]
|
||||
|
||||
@ -590,7 +590,6 @@ export default {
|
||||
})
|
||||
this.rules = reactive({
|
||||
name: [{ required: true, message: this.$t('message.error.name') }],
|
||||
displaytext: [{ required: true, message: this.$t('message.error.display.text') }],
|
||||
zoneid: [{ type: 'number', required: true, message: this.$t('message.error.select') }],
|
||||
vlan: [{ required: true, message: this.$t('message.please.enter.value') }],
|
||||
networkofferingid: [{ type: 'number', required: true, message: this.$t('message.error.select') }],
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user