mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
NaaS: Add service provider to server-setup.xml
This commit is contained in:
parent
cc907adcbb
commit
3aef381b37
@ -105,6 +105,8 @@ public class DatabaseConfig {
|
|||||||
objectNames.add("configuration");
|
objectNames.add("configuration");
|
||||||
objectNames.add("privateIpAddresses");
|
objectNames.add("privateIpAddresses");
|
||||||
objectNames.add("publicIpAddresses");
|
objectNames.add("publicIpAddresses");
|
||||||
|
objectNames.add("physicalNetworkServiceProvider");
|
||||||
|
objectNames.add("virtualRouterProvider");
|
||||||
|
|
||||||
// initialize the fieldNames ArrayList
|
// initialize the fieldNames ArrayList
|
||||||
fieldNames.add("id");
|
fieldNames.add("id");
|
||||||
@ -157,6 +159,19 @@ public class DatabaseConfig {
|
|||||||
fieldNames.add("networktype");
|
fieldNames.add("networktype");
|
||||||
fieldNames.add("clusterId");
|
fieldNames.add("clusterId");
|
||||||
fieldNames.add("physicalNetworkId");
|
fieldNames.add("physicalNetworkId");
|
||||||
|
fieldNames.add("destPhysicalNetworkId");
|
||||||
|
fieldNames.add("providerName");
|
||||||
|
fieldNames.add("vpn");
|
||||||
|
fieldNames.add("dhcp");
|
||||||
|
fieldNames.add("dns");
|
||||||
|
fieldNames.add("firewall");
|
||||||
|
fieldNames.add("sourceNat");
|
||||||
|
fieldNames.add("loadBalance");
|
||||||
|
fieldNames.add("staticNat");
|
||||||
|
fieldNames.add("portForwarding");
|
||||||
|
fieldNames.add("userData");
|
||||||
|
fieldNames.add("securityGroup");
|
||||||
|
fieldNames.add("nspId");
|
||||||
|
|
||||||
s_configurationDescriptions.put("host.stats.interval", "the interval in milliseconds when host stats are retrieved from agents");
|
s_configurationDescriptions.put("host.stats.interval", "the interval in milliseconds when host stats are retrieved from agents");
|
||||||
s_configurationDescriptions.put("storage.stats.interval", "the interval in milliseconds when storage stats (per host) are retrieved from agents");
|
s_configurationDescriptions.put("storage.stats.interval", "the interval in milliseconds when storage stats (per host) are retrieved from agents");
|
||||||
@ -452,7 +467,11 @@ public class DatabaseConfig {
|
|||||||
saveSecondaryStorage();
|
saveSecondaryStorage();
|
||||||
} else if ("cluster".equals(_currentObjectName)) {
|
} else if ("cluster".equals(_currentObjectName)) {
|
||||||
saveCluster();
|
saveCluster();
|
||||||
}
|
} else if ("physicalNetworkServiceProvider".equals(_currentObjectName)) {
|
||||||
|
savePhysicalNetworkServiceProvider();
|
||||||
|
} else if ("virtualRouterProvider".equals(_currentObjectName)) {
|
||||||
|
saveVirtualRouterProvider();
|
||||||
|
}
|
||||||
_currentObjectParams = null;
|
_currentObjectParams = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -664,6 +683,85 @@ public class DatabaseConfig {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void savePhysicalNetworkServiceProvider() {
|
||||||
|
long id = Long.parseLong(_currentObjectParams.get("id"));
|
||||||
|
long physicalNetworkId = Long.parseLong(_currentObjectParams.get("physicalNetworkId"));
|
||||||
|
String providerName = _currentObjectParams.get("providerName");
|
||||||
|
long destPhysicalNetworkId = Long.parseLong(_currentObjectParams.get("destPhysicalNetworkId"));
|
||||||
|
String uuid = UUID.randomUUID().toString();
|
||||||
|
|
||||||
|
int vpn = Integer.parseInt(_currentObjectParams.get("vpn"));
|
||||||
|
int dhcp = Integer.parseInt(_currentObjectParams.get("dhcp"));
|
||||||
|
int dns = Integer.parseInt(_currentObjectParams.get("dns"));
|
||||||
|
int gateway = Integer.parseInt(_currentObjectParams.get("gateway"));
|
||||||
|
int firewall = Integer.parseInt(_currentObjectParams.get("firewall"));
|
||||||
|
int sourceNat = Integer.parseInt(_currentObjectParams.get("sourceNat"));
|
||||||
|
int lb = Integer.parseInt(_currentObjectParams.get("loadBalance"));
|
||||||
|
int staticNat = Integer.parseInt(_currentObjectParams.get("staticNat"));
|
||||||
|
int pf =Integer.parseInt(_currentObjectParams.get("portForwarding"));
|
||||||
|
int userData =Integer.parseInt(_currentObjectParams.get("userData"));
|
||||||
|
int securityGroup =Integer.parseInt(_currentObjectParams.get("securityGroup"));
|
||||||
|
|
||||||
|
String insertSql1 = "INSERT INTO `physical_network_service_providers` (`id`, `uuid`, `physical_network_id` , `provider_name`, `state` ," +
|
||||||
|
"`destination_physical_network_id`, `vpn_service_provided`, `dhcp_service_provided`, `dns_service_provided`, `gateway_service_provided`," +
|
||||||
|
"`firewall_service_provided`, `source_nat_service_provided`, `load_balance_service_provided`, `static_nat_service_provided`," +
|
||||||
|
"`port_forwarding_service_provided`, `user_data_service_provided`, `security_group_service_provided`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
|
||||||
|
|
||||||
|
Transaction txn = Transaction.currentTxn();
|
||||||
|
try {
|
||||||
|
PreparedStatement stmt = txn.prepareAutoCloseStatement(insertSql1);
|
||||||
|
stmt.setLong(1, id);
|
||||||
|
stmt.setString(2, uuid);
|
||||||
|
stmt.setLong(3, physicalNetworkId);
|
||||||
|
stmt.setString(4, providerName);
|
||||||
|
stmt.setString(5, "Enabled");
|
||||||
|
stmt.setLong(6, destPhysicalNetworkId);
|
||||||
|
stmt.setInt(7, vpn);
|
||||||
|
stmt.setInt(8, dhcp);
|
||||||
|
stmt.setInt(9, dns);
|
||||||
|
stmt.setInt(10, gateway);
|
||||||
|
stmt.setInt(11, firewall);
|
||||||
|
stmt.setInt(12, sourceNat);
|
||||||
|
stmt.setInt(13, lb);
|
||||||
|
stmt.setInt(14, staticNat);
|
||||||
|
stmt.setInt(15, pf);
|
||||||
|
stmt.setInt(16, userData);
|
||||||
|
stmt.setInt(17, securityGroup);
|
||||||
|
stmt.executeUpdate();
|
||||||
|
} catch (SQLException ex) {
|
||||||
|
System.out.println("Error creating physical network service provider: " + ex.getMessage());
|
||||||
|
s_logger.error("error creating physical network service provider", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveVirtualRouterProvider() {
|
||||||
|
long id = Long.parseLong(_currentObjectParams.get("id"));
|
||||||
|
long nspId = Long.parseLong(_currentObjectParams.get("nspId"));
|
||||||
|
String uuid = UUID.randomUUID().toString();
|
||||||
|
String type = _currentObjectParams.get("type");
|
||||||
|
|
||||||
|
String insertSql1 = "INSERT INTO `virtual_router_providers` (`id`, `nsp_id`, `uuid` , `type` , `enabled`) " +
|
||||||
|
"VALUES (?,?,?,?,?)";
|
||||||
|
|
||||||
|
Transaction txn = Transaction.currentTxn();
|
||||||
|
try {
|
||||||
|
PreparedStatement stmt = txn.prepareAutoCloseStatement(insertSql1);
|
||||||
|
stmt.setLong(1, id);
|
||||||
|
stmt.setLong(2, nspId);
|
||||||
|
stmt.setString(3, uuid);
|
||||||
|
stmt.setString(4, type);
|
||||||
|
stmt.setInt(5, 1);
|
||||||
|
stmt.executeUpdate();
|
||||||
|
} catch (SQLException ex) {
|
||||||
|
System.out.println("Error creating virtual router provider: " + ex.getMessage());
|
||||||
|
s_logger.error("error creating virtual router provider ", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
private void saveVlan() {
|
private void saveVlan() {
|
||||||
String zoneId = _currentObjectParams.get("zoneId");
|
String zoneId = _currentObjectParams.get("zoneId");
|
||||||
String physicalNetworkIdStr = _currentObjectParams.get("physicalNetworkId");
|
String physicalNetworkIdStr = _currentObjectParams.get("physicalNetworkId");
|
||||||
|
|||||||
@ -1,406 +1,435 @@
|
|||||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
|
|
||||||
<data>
|
<data>
|
||||||
|
|
||||||
<version>2.0</version>
|
<version>2.0</version>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
ipAddressRange: It is possible to specify a single IP address. For example, to add 192.168.1.1
|
ipAddressRange: It is possible to specify a single IP address. For example, to add 192.168.1.1
|
||||||
as the only address, specify as <ipAddressRange>192.168.1.1<ipAddressRange>. To specify 192.168.1.1
|
as the only address, specify as <ipAddressRange>192.168.1.1<ipAddressRange>. To specify 192.168.1.1
|
||||||
to 192.168.1.150 specify as <ipAddressRange>192.168.1.1-192.168.1.150</ipAddressRange>
|
to 192.168.1.150 specify as <ipAddressRange>192.168.1.1-192.168.1.150</ipAddressRange>
|
||||||
-->
|
-->
|
||||||
<!-- <zones>
|
<!-- <zones>
|
||||||
<zone>
|
<zone>
|
||||||
<id>1</id>
|
<id>1</id>
|
||||||
<name>NM</name>
|
<name>NM</name>
|
||||||
<dns1>4.2.2.2</dns1>
|
<dns1>4.2.2.2</dns1>
|
||||||
<dns2>10.10.10.14</dns2>
|
<dns2>10.10.10.14</dns2>
|
||||||
<internalDns1>4.2.2.2</internalDns1>
|
<internalDns1>4.2.2.2</internalDns1>
|
||||||
<internalDns2>4.2.2.2</internalDns2>
|
<internalDns2>4.2.2.2</internalDns2>
|
||||||
<gateway>10.91.28.1</gateway>
|
<gateway>10.91.28.1</gateway>
|
||||||
<netmask>255.255.255.0</netmask>
|
<netmask>255.255.255.0</netmask>
|
||||||
<vnet>560-579</vnet>
|
<vnet>560-579</vnet>
|
||||||
<guestNetworkCidr>10.1.1.0/24</guestNetworkCidr>
|
<guestNetworkCidr>10.1.1.0/24</guestNetworkCidr>
|
||||||
</zone>
|
</zone>
|
||||||
</zones>
|
</zones>
|
||||||
|
|
||||||
<physicalNetworks>
|
<physicalNetworks>
|
||||||
<physicalNetwork>
|
<physicalNetwork>
|
||||||
<id>200</id>
|
<id>200</id>
|
||||||
<zoneId>1</zoneId>
|
<zoneId>1</zoneId>
|
||||||
<vnet>1075-1089</vnet>
|
<vnet>1075-1089</vnet>
|
||||||
</physicalNetwork>
|
</physicalNetwork>
|
||||||
</physicalNetworks> -->
|
</physicalNetworks>
|
||||||
|
|
||||||
<!--
|
<physicalNetworkServiceProviders>
|
||||||
ipAddressRange: It is possible to specify a single IP address. For example, to add 192.168.1.1
|
<physicalNetworkServiceProvider>
|
||||||
as the only address, specify as <ipAddressRange>192.168.1.1<ipAddressRange>. To specify 192.168.1.1
|
<id>1</id>
|
||||||
to 192.168.1.150 specify as <ipAddressRange>192.168.1.1-192.168.1.150</ipAddressRange>
|
<physicalNetworkId>200</physicalNetworkId>
|
||||||
|
<providerName>VirtualRouter</providerName>
|
||||||
At the moment there is no way to specify a different netmask for each pod. The netmask
|
<destPhysicalNetworkId>0</destPhysicalNetworkId>
|
||||||
is controlled by the private.net.mask parameter further down this file.
|
<vpn>1</vpn>
|
||||||
-->
|
<dhcp>1</dhcp>
|
||||||
<!-- <pods>
|
<dns>1</dns>
|
||||||
<pod>
|
<gateway>1</gateway>
|
||||||
<id>1</id>
|
<firewall>1</firewall>
|
||||||
<name>NM</name>
|
<sourceNat>1</sourceNat>
|
||||||
<zoneId>1</zoneId>
|
<loadBalance>1</loadBalance>
|
||||||
<gateway>10.91.28.1</gateway>
|
<staticNat>1</staticNat>
|
||||||
<cidr>10.91.28.0/24</cidr>
|
<portForwarding>1</portForwarding>
|
||||||
<ipAddressRange>10.91.28.160-10.91.28.179</ipAddressRange>
|
<userData>1</userData>
|
||||||
</pod>
|
<securityGroup>0</securityGroup>
|
||||||
</pods> -->
|
</physicalNetworkServiceProvider>
|
||||||
<!--
|
</physicalNetworkServiceProviders>
|
||||||
<storagePools>
|
|
||||||
<storagePool>
|
<virtualRouterProviders>
|
||||||
<zoneId>1</zoneId>
|
<virtualRouterProvider>
|
||||||
<podId>1</podId>
|
<id>1</id>
|
||||||
<name>idc-ss</name>
|
<nspId>1</nspId>
|
||||||
<hostAddress>10.91.28.6</hostAddress>
|
<type>VirtualRouter</type>
|
||||||
<hostPath>/export/home/nitin/primary</hostPath>
|
</virtualRouterProvider>
|
||||||
</storagePool>
|
</virtualRouterProviders>
|
||||||
</storagePools>
|
|
||||||
-->
|
-->
|
||||||
|
<!--
|
||||||
<!--
|
ipAddressRange: It is possible to specify a single IP address. For example, to add 192.168.1.1
|
||||||
<secondaryStorages>
|
as the only address, specify as <ipAddressRange>192.168.1.1<ipAddressRange>. To specify 192.168.1.1
|
||||||
<secondaryStorage>
|
to 192.168.1.150 specify as <ipAddressRange>192.168.1.1-192.168.1.150</ipAddressRange>
|
||||||
<zoneId>1</zoneId>
|
|
||||||
<podId>1</podId>
|
At the moment there is no way to specify a different netmask for each pod. The netmask
|
||||||
<url>nfs://10.91.28.6/export/home/nitin/secondary</url>
|
is controlled by the private.net.mask parameter further down this file.
|
||||||
</secondaryStorage>
|
-->
|
||||||
</secondaryStorages>
|
<!-- <pods>
|
||||||
-->
|
<pod>
|
||||||
|
<id>1</id>
|
||||||
<!-- <vlans>
|
<name>NM</name>
|
||||||
<vlan>
|
<zoneId>1</zoneId>
|
||||||
<zoneId>1</zoneId>
|
<gateway>10.91.28.1</gateway>
|
||||||
<physicalNetworkId>200</physicalNetworkId>
|
<cidr>10.91.28.0/24</cidr>
|
||||||
<vlanId>30</vlanId>
|
<ipAddressRange>10.91.28.160-10.91.28.179</ipAddressRange>
|
||||||
<vlanType>VirtualNetwork</vlanType>
|
</pod>
|
||||||
<gateway>10.91.30.1</gateway>
|
</pods> -->
|
||||||
<netmask>255.255.255.0</netmask>
|
<!--
|
||||||
<ipAddressRange>10.91.30.160-10.91.30.179</ipAddressRange>
|
<storagePools>
|
||||||
</vlan>
|
<storagePool>
|
||||||
</vlans>-->
|
<zoneId>1</zoneId>
|
||||||
<!--
|
<podId>1</podId>
|
||||||
<vlan>
|
<name>idc-ss</name>
|
||||||
<zoneId>1</zoneId>
|
<hostAddress>10.91.28.6</hostAddress>
|
||||||
<vlanId>31</vlanId>
|
<hostPath>/export/home/nitin/primary</hostPath>
|
||||||
<vlanType>VirtualNetwork</vlanType>
|
</storagePool>
|
||||||
<gateway>192.168.31.1</gateway>
|
</storagePools>
|
||||||
<netmask>255.255.255.0</netmask>
|
-->
|
||||||
<ipAddressRange>192.168.31.10-192.168.31.19</ipAddressRange>
|
|
||||||
</vlan>
|
<!--
|
||||||
-->
|
<secondaryStorages>
|
||||||
<!--
|
<secondaryStorage>
|
||||||
* id is the unique id of the service offering
|
<zoneId>1</zoneId>
|
||||||
* name is the name of the service offering
|
<podId>1</podId>
|
||||||
* displayText is the text that will be shown in the UI (usually as a dropdown list)
|
<url>nfs://10.91.28.6/export/home/nitin/secondary</url>
|
||||||
* cpu is the number of CPUs for the offering
|
</secondaryStorage>
|
||||||
* ramSize is total memory in MB
|
</secondaryStorages>
|
||||||
* speed is the CPU speed for each core in MHZ
|
-->
|
||||||
* diskSpace is the storage space in MB
|
|
||||||
* enableHA is a true/false value to determine if HA should be turned on for vms with this service offering. Default is false.
|
<!-- <vlans>
|
||||||
-->
|
<vlan>
|
||||||
<serviceOfferings>
|
<zoneId>1</zoneId>
|
||||||
<serviceOffering>
|
<physicalNetworkId>200</physicalNetworkId>
|
||||||
<id>1</id>
|
<vlanId>30</vlanId>
|
||||||
<name>Small Instance</name>
|
<vlanType>VirtualNetwork</vlanType>
|
||||||
<displayText>Small Instance [500MHZ CPU, 512MB MEM, 16GB Disk] - $0.10 per hour</displayText>
|
<gateway>10.91.30.1</gateway>
|
||||||
<cpu>1</cpu>
|
<netmask>255.255.255.0</netmask>
|
||||||
<ramSize>512</ramSize>
|
<ipAddressRange>10.91.30.160-10.91.30.179</ipAddressRange>
|
||||||
<speed>500</speed>
|
</vlan>
|
||||||
</serviceOffering>
|
</vlans>-->
|
||||||
<serviceOffering>
|
<!--
|
||||||
<id>2</id>
|
<vlan>
|
||||||
<name>Medium Instance</name>
|
<zoneId>1</zoneId>
|
||||||
<displayText>Medium Instance [2GHZ CPU, 2GB MEM, 32GB Disk] - $0.20 per hour</displayText>
|
<vlanId>31</vlanId>
|
||||||
<cpu>1</cpu>
|
<vlanType>VirtualNetwork</vlanType>
|
||||||
<ramSize>2048</ramSize>
|
<gateway>192.168.31.1</gateway>
|
||||||
<speed>2000</speed>
|
<netmask>255.255.255.0</netmask>
|
||||||
</serviceOffering>
|
<ipAddressRange>192.168.31.10-192.168.31.19</ipAddressRange>
|
||||||
<serviceOffering>
|
</vlan>
|
||||||
<id>3</id>
|
-->
|
||||||
<name>Large Instance</name>
|
<!--
|
||||||
<displayText>Large Instance [2GHZ CPU, 4GB MEM, 64GB Disk] - $0.30 per hour</displayText>
|
* id is the unique id of the service offering
|
||||||
<cpu>2</cpu>
|
* name is the name of the service offering
|
||||||
<ramSize>4096</ramSize>
|
* displayText is the text that will be shown in the UI (usually as a dropdown list)
|
||||||
<speed>2000</speed>
|
* cpu is the number of CPUs for the offering
|
||||||
</serviceOffering>
|
* ramSize is total memory in MB
|
||||||
</serviceOfferings>
|
* speed is the CPU speed for each core in MHZ
|
||||||
|
* diskSpace is the storage space in MB
|
||||||
<diskOfferings>
|
* enableHA is a true/false value to determine if HA should be turned on for vms with this service offering. Default is false.
|
||||||
<diskOffering>
|
-->
|
||||||
<id>1</id>
|
<serviceOfferings>
|
||||||
<domainId>1</domainId>
|
<serviceOffering>
|
||||||
<name>Small Disk</name>
|
<id>1</id>
|
||||||
<displayText>Small Disk [16GB Disk]</displayText>
|
<name>Small Instance</name>
|
||||||
<diskSpace>16384</diskSpace>
|
<displayText>Small Instance [500MHZ CPU, 512MB MEM, 16GB Disk] - $0.10 per hour</displayText>
|
||||||
</diskOffering>
|
<cpu>1</cpu>
|
||||||
<diskOffering>
|
<ramSize>512</ramSize>
|
||||||
<id>2</id>
|
<speed>500</speed>
|
||||||
<domainId>1</domainId>
|
</serviceOffering>
|
||||||
<name>Medium Disk</name>
|
<serviceOffering>
|
||||||
<displayText>Medium Disk [32GB Disk]</displayText>
|
<id>2</id>
|
||||||
<diskSpace>32768</diskSpace>
|
<name>Medium Instance</name>
|
||||||
</diskOffering>
|
<displayText>Medium Instance [2GHZ CPU, 2GB MEM, 32GB Disk] - $0.20 per hour</displayText>
|
||||||
<diskOffering>
|
<cpu>1</cpu>
|
||||||
<id>3</id>
|
<ramSize>2048</ramSize>
|
||||||
<domainId>1</domainId>
|
<speed>2000</speed>
|
||||||
<name>Large Disk</name>
|
</serviceOffering>
|
||||||
<displayText>Large Disk [64GB Disk]</displayText>
|
<serviceOffering>
|
||||||
<diskSpace>65536</diskSpace>
|
<id>3</id>
|
||||||
</diskOffering>
|
<name>Large Instance</name>
|
||||||
</diskOfferings>
|
<displayText>Large Instance [2GHZ CPU, 4GB MEM, 64GB Disk] - $0.30 per hour</displayText>
|
||||||
|
<cpu>2</cpu>
|
||||||
<!--
|
<ramSize>4096</ramSize>
|
||||||
This is the user section. Use this to create users for your fresh setup.
|
<speed>2000</speed>
|
||||||
|
</serviceOffering>
|
||||||
* firstname/lastname are optional parameters
|
</serviceOfferings>
|
||||||
* id and email, however, are *required*
|
|
||||||
-->
|
<diskOfferings>
|
||||||
<users>
|
<diskOffering>
|
||||||
<user>
|
<id>1</id>
|
||||||
<id>2</id>
|
<domainId>1</domainId>
|
||||||
<username>admin</username>
|
<name>Small Disk</name>
|
||||||
<password>password</password>
|
<displayText>Small Disk [16GB Disk]</displayText>
|
||||||
<firstname>Admin</firstname>
|
<diskSpace>16384</diskSpace>
|
||||||
<lastname>User</lastname>
|
</diskOffering>
|
||||||
<email>admin@mailprovider.com</email>
|
<diskOffering>
|
||||||
</user>
|
<id>2</id>
|
||||||
</users>
|
<domainId>1</domainId>
|
||||||
|
<name>Medium Disk</name>
|
||||||
<!--
|
<displayText>Medium Disk [32GB Disk]</displayText>
|
||||||
This is the configuration section. It contains various configuration settings
|
<diskSpace>32768</diskSpace>
|
||||||
unrelated between each other, but influencing the operation of the cloud.
|
</diskOffering>
|
||||||
-->
|
<diskOffering>
|
||||||
|
<id>3</id>
|
||||||
<configurationEntries>
|
<domainId>1</domainId>
|
||||||
<!--
|
<name>Large Disk</name>
|
||||||
The default.zone parameter controls in which zone machines are created by default,
|
<displayText>Large Disk [64GB Disk]</displayText>
|
||||||
if you do not specify a zone.
|
<diskSpace>65536</diskSpace>
|
||||||
-->
|
</diskOffering>
|
||||||
<configuration>
|
</diskOfferings>
|
||||||
<name>default.zone</name>
|
|
||||||
<value>ZONE1</value>
|
<!--
|
||||||
</configuration>
|
This is the user section. Use this to create users for your fresh setup.
|
||||||
<!--
|
|
||||||
The guest.domain.suffix parameter...
|
* firstname/lastname are optional parameters
|
||||||
--> <configuration>
|
* id and email, however, are *required*
|
||||||
<name>guest.domain.suffix</name>
|
-->
|
||||||
<value>qatest-vmops.com</value>
|
<users>
|
||||||
</configuration>
|
<user>
|
||||||
<!--
|
<id>2</id>
|
||||||
The instance.name parameter is tacked to the end of the names of the VMs you create.
|
<username>admin</username>
|
||||||
So, for example, with the TEST value as it ships by default, your VMs would be named:
|
<password>password</password>
|
||||||
i-X-Y-TEST, where X is the account ID and Y is the serially incrementing VM ID.
|
<firstname>Admin</firstname>
|
||||||
-->
|
<lastname>User</lastname>
|
||||||
<configuration>
|
<email>admin@mailprovider.com</email>
|
||||||
<name>instance.name</name>
|
</user>
|
||||||
<value>TEST</value>
|
</users>
|
||||||
</configuration>
|
|
||||||
<!--
|
<!--
|
||||||
The integration.api.port parameter controls on which port the REST API listens.
|
This is the configuration section. It contains various configuration settings
|
||||||
-->
|
unrelated between each other, but influencing the operation of the cloud.
|
||||||
<configuration>
|
-->
|
||||||
<name>integration.api.port</name>
|
|
||||||
<value>8096</value>
|
<configurationEntries>
|
||||||
</configuration>
|
<!--
|
||||||
<!--
|
The default.zone parameter controls in which zone machines are created by default,
|
||||||
The memory.capacity.threshold is a percentage value (e.g. 0.85 is 85%). Whenever
|
if you do not specify a zone.
|
||||||
the Percent Used memory in a pod exceeds this threshold, our software will alert
|
-->
|
||||||
you.
|
<configuration>
|
||||||
-->
|
<name>default.zone</name>
|
||||||
<configuration>
|
<value>ZONE1</value>
|
||||||
<name>memory.capacity.threshold</name>
|
</configuration>
|
||||||
<value>0.85</value>
|
<!--
|
||||||
</configuration>
|
The guest.domain.suffix parameter...
|
||||||
<!--
|
--> <configuration>
|
||||||
This parameter is similar to memory.capacity.threshold, but for CPU capacity.
|
<name>guest.domain.suffix</name>
|
||||||
-->
|
<value>qatest-vmops.com</value>
|
||||||
<configuration>
|
</configuration>
|
||||||
<name>cpu.capacity.threshold</name>
|
<!--
|
||||||
<value>0.85</value>
|
The instance.name parameter is tacked to the end of the names of the VMs you create.
|
||||||
</configuration>
|
So, for example, with the TEST value as it ships by default, your VMs would be named:
|
||||||
<!--
|
i-X-Y-TEST, where X is the account ID and Y is the serially incrementing VM ID.
|
||||||
The following two parameters:
|
-->
|
||||||
1. storage.capacity.threshold
|
<configuration>
|
||||||
2. storage.allocated.capacity.threshold
|
<name>instance.name</name>
|
||||||
are similar to the last two parameters, but apply to storage. If at any point,
|
<value>TEST</value>
|
||||||
the Storage Used (actual data size used in the storage volume) or Storage
|
</configuration>
|
||||||
Allocated (total storage configured across a pod) exceeds these thresholds,
|
<!--
|
||||||
our software will alert you.
|
The integration.api.port parameter controls on which port the REST API listens.
|
||||||
-->
|
-->
|
||||||
<configuration>
|
<configuration>
|
||||||
<name>storage.capacity.threshold</name>
|
<name>integration.api.port</name>
|
||||||
<value>0.85</value>
|
<value>8096</value>
|
||||||
</configuration>
|
</configuration>
|
||||||
<configuration>
|
<!--
|
||||||
<name>storage.allocated.capacity.threshold</name>
|
The memory.capacity.threshold is a percentage value (e.g. 0.85 is 85%). Whenever
|
||||||
<value>0.85</value>
|
the Percent Used memory in a pod exceeds this threshold, our software will alert
|
||||||
</configuration>
|
you.
|
||||||
<!--
|
-->
|
||||||
The following two parameters operate in a similar fashion to the earlier
|
<configuration>
|
||||||
thresholds. If the percentage of allocated IPs vs. available IPs exceed
|
<name>memory.capacity.threshold</name>
|
||||||
these thresholds, you will be alerted.
|
<value>0.85</value>
|
||||||
-->
|
</configuration>
|
||||||
<configuration>
|
<!--
|
||||||
<name>public.ip.capacity.threshold</name>
|
This parameter is similar to memory.capacity.threshold, but for CPU capacity.
|
||||||
<value>0.85</value>
|
-->
|
||||||
</configuration>
|
<configuration>
|
||||||
<configuration>
|
<name>cpu.capacity.threshold</name>
|
||||||
<name>private.ip.capacity.threshold</name>
|
<value>0.85</value>
|
||||||
<value>0.85</value>
|
</configuration>
|
||||||
</configuration>
|
<!--
|
||||||
<!--
|
The following two parameters:
|
||||||
capacity.check.period tells the Management Server how often to check the
|
1. storage.capacity.threshold
|
||||||
available capacity. The value is expressed in milliseconds.
|
2. storage.allocated.capacity.threshold
|
||||||
-->
|
are similar to the last two parameters, but apply to storage. If at any point,
|
||||||
<configuration>
|
the Storage Used (actual data size used in the storage volume) or Storage
|
||||||
<name>capacity.check.period</name>
|
Allocated (total storage configured across a pod) exceeds these thresholds,
|
||||||
<value>300000</value>
|
our software will alert you.
|
||||||
</configuration>
|
-->
|
||||||
<!--
|
<configuration>
|
||||||
expunge.interval is the number of seconds after which destroyed VMs will be
|
<name>storage.capacity.threshold</name>
|
||||||
cleaned out of the storage server and no longer recoverable.
|
<value>0.85</value>
|
||||||
-->
|
</configuration>
|
||||||
<configuration>
|
<configuration>
|
||||||
<name>expunge.interval</name>
|
<name>storage.allocated.capacity.threshold</name>
|
||||||
<value>86400</value>
|
<value>0.85</value>
|
||||||
</configuration>
|
</configuration>
|
||||||
<!--
|
<!--
|
||||||
The wait parameter expresses how many seconds a command can be sitting in the queue.
|
The following two parameters operate in a similar fashion to the earlier
|
||||||
Commands to the different participants in the cloud are serialized through a single-
|
thresholds. If the percentage of allocated IPs vs. available IPs exceed
|
||||||
consumer queue, to coordinate several multi-step actions. If, theoretically, a
|
these thresholds, you will be alerted.
|
||||||
command in the queue is holding the subsequent commands up for too long (by default,
|
-->
|
||||||
as you can see, half an hour), then the queue itself is cleaned up and you
|
<configuration>
|
||||||
get a failure alert in your Management UI.
|
<name>public.ip.capacity.threshold</name>
|
||||||
-->
|
<value>0.85</value>
|
||||||
<configuration>
|
</configuration>
|
||||||
<name>wait</name>
|
<configuration>
|
||||||
<value>1800</value>
|
<name>private.ip.capacity.threshold</name>
|
||||||
</configuration>
|
<value>0.85</value>
|
||||||
|
</configuration>
|
||||||
<!--
|
<!--
|
||||||
The upgrade URL is the URL of the management server that agents will connect to
|
capacity.check.period tells the Management Server how often to check the
|
||||||
in order to automatically upgrade. This should be the configured host/port of
|
available capacity. The value is expressed in milliseconds.
|
||||||
either a load balancer if clustering is used, or the management server if a single
|
-->
|
||||||
server is installed. If the port to use is 80, the ":8080" portion of the
|
<configuration>
|
||||||
value below can be removed.
|
<name>capacity.check.period</name>
|
||||||
|
<value>300000</value>
|
||||||
In the vast majority of cases, all you need to change is the host, from example.com
|
</configuration>
|
||||||
to whatever IP address or host name of your management server / load balancer.
|
<!--
|
||||||
-->
|
expunge.interval is the number of seconds after which destroyed VMs will be
|
||||||
<configuration>
|
cleaned out of the storage server and no longer recoverable.
|
||||||
<name>upgrade.url</name>
|
-->
|
||||||
<value>http://example.com:8080/client/agent/update.zip</value>
|
<configuration>
|
||||||
</configuration>
|
<name>expunge.interval</name>
|
||||||
|
<value>86400</value>
|
||||||
<!--
|
</configuration>
|
||||||
The following two throttling parameters are expressed in Mb/s (mega*bits* per second).
|
<!--
|
||||||
|
The wait parameter expresses how many seconds a command can be sitting in the queue.
|
||||||
Each value is the default limit for each user (as a whole) in terms of served bandwidth
|
Commands to the different participants in the cloud are serialized through a single-
|
||||||
rate. To be more precise: users' downloads to their VMs are *not* limited; these
|
consumer queue, to coordinate several multi-step actions. If, theoretically, a
|
||||||
parameters govern the limits of outbound traffic.
|
command in the queue is holding the subsequent commands up for too long (by default,
|
||||||
|
as you can see, half an hour), then the queue itself is cleaned up and you
|
||||||
The first one is the overall limit. The second limit applies only to multicast traffic.
|
get a failure alert in your Management UI.
|
||||||
-->
|
-->
|
||||||
<configuration>
|
<configuration>
|
||||||
<name>network.throttling.rate</name>
|
<name>wait</name>
|
||||||
<value>200</value>
|
<value>1800</value>
|
||||||
</configuration>
|
</configuration>
|
||||||
<configuration>
|
|
||||||
<name>multicast.throttling.rate</name>
|
<!--
|
||||||
<value>10</value>
|
The upgrade URL is the URL of the management server that agents will connect to
|
||||||
</configuration>
|
in order to automatically upgrade. This should be the configured host/port of
|
||||||
<configuration>
|
either a load balancer if clustering is used, or the management server if a single
|
||||||
<name>secstorage.encrypt.copy</name>
|
server is installed. If the port to use is 80, the ":8080" portion of the
|
||||||
<value>false</value>
|
value below can be removed.
|
||||||
</configuration>
|
|
||||||
|
In the vast majority of cases, all you need to change is the host, from example.com
|
||||||
<!--
|
to whatever IP address or host name of your management server / load balancer.
|
||||||
usage.aggregation.timezone is the timezone to use for aggregating usage. This timezone
|
-->
|
||||||
will specify the boundaries for one day, i.e. when daily usage records are generated, it will
|
<configuration>
|
||||||
be one day's worth of usage in this timezone's day. The value of must be a valid Java 1.6
|
<name>upgrade.url</name>
|
||||||
timezone id, a list of timezone ids is here (but not guaranteed to be 100% accurate)
|
<value>http://example.com:8080/client/agent/update.zip</value>
|
||||||
http://www.java2s.com/Tutorial/Java/0120__Development/GettingallthetimezonesIDs.htm
|
</configuration>
|
||||||
|
|
||||||
usage.stats.job.exec.time is the time at which the usage statistics aggregation job will run.
|
<!--
|
||||||
The value is specified as an HH24:MM time, e.g. 00:30 to run at 12:30am (server time). The
|
The following two throttling parameters are expressed in Mb/s (mega*bits* per second).
|
||||||
default value is configured to run at 12:15am and will aggregate usage data from the previous
|
|
||||||
day.
|
Each value is the default limit for each user (as a whole) in terms of served bandwidth
|
||||||
-->
|
rate. To be more precise: users' downloads to their VMs are *not* limited; these
|
||||||
<configuration>
|
parameters govern the limits of outbound traffic.
|
||||||
<name>usage.aggregation.timezone</name>
|
|
||||||
<value>GMT</value>
|
The first one is the overall limit. The second limit applies only to multicast traffic.
|
||||||
</configuration>
|
-->
|
||||||
<configuration>
|
<configuration>
|
||||||
<name>usage.stats.job.exec.time</name>
|
<name>network.throttling.rate</name>
|
||||||
<value>00:15</value>
|
<value>200</value>
|
||||||
</configuration>
|
</configuration>
|
||||||
<configuration>
|
<configuration>
|
||||||
<name>system.vm.local.storage.required</name>
|
<name>multicast.throttling.rate</name>
|
||||||
<value>false</value>
|
<value>10</value>
|
||||||
</configuration>
|
</configuration>
|
||||||
<!--
|
<configuration>
|
||||||
<configuration>
|
<name>secstorage.encrypt.copy</name>
|
||||||
<name>hypervisor.type</name>
|
<value>false</value>
|
||||||
<value></value>
|
</configuration>
|
||||||
</configuration>
|
|
||||||
-->
|
<!--
|
||||||
<configuration>
|
usage.aggregation.timezone is the timezone to use for aggregating usage. This timezone
|
||||||
<name>secondary.storage.vm</name>
|
will specify the boundaries for one day, i.e. when daily usage records are generated, it will
|
||||||
<value>false</value>
|
be one day's worth of usage in this timezone's day. The value of must be a valid Java 1.6
|
||||||
</configuration>
|
timezone id, a list of timezone ids is here (but not guaranteed to be 100% accurate)
|
||||||
|
http://www.java2s.com/Tutorial/Java/0120__Development/GettingallthetimezonesIDs.htm
|
||||||
<!--
|
|
||||||
The following are for configuring alerts and a proper email (where system
|
usage.stats.job.exec.time is the time at which the usage statistics aggregation job will run.
|
||||||
alerts will be sent to) and smtp server needs to be
|
The value is specified as an HH24:MM time, e.g. 00:30 to run at 12:30am (server time). The
|
||||||
configured before enabling this feature.
|
default value is configured to run at 12:15am and will aggregate usage data from the previous
|
||||||
-->
|
day.
|
||||||
<!--
|
-->
|
||||||
<configuration>
|
<configuration>
|
||||||
<name>alert.smtp.host</name>
|
<name>usage.aggregation.timezone</name>
|
||||||
<value>smtp.host.com</value>
|
<value>GMT</value>
|
||||||
</configuration>
|
</configuration>
|
||||||
<configuration>
|
<configuration>
|
||||||
<name>alert.smtp.port</name>
|
<name>usage.stats.job.exec.time</name>
|
||||||
<value>25</value>
|
<value>00:15</value>
|
||||||
</configuration>
|
</configuration>
|
||||||
<configuration>
|
<configuration>
|
||||||
<name>alert.smtp.useAuth</name>
|
<name>system.vm.local.storage.required</name>
|
||||||
<value>false</value>
|
<value>false</value>
|
||||||
</configuration>
|
</configuration>
|
||||||
<configuration>
|
<!--
|
||||||
<name>alert.smtp.username</name>
|
<configuration>
|
||||||
<value>some.user@example.com</value>
|
<name>hypervisor.type</name>
|
||||||
</configuration>
|
<value></value>
|
||||||
<configuration>
|
</configuration>
|
||||||
<name>alert.smtp.password</name>
|
-->
|
||||||
<value>password</value>
|
<configuration>
|
||||||
</configuration>
|
<name>secondary.storage.vm</name>
|
||||||
<configuration>
|
<value>false</value>
|
||||||
<name>alert.email.sender</name>
|
</configuration>
|
||||||
<value>some.user@example.com</value>
|
|
||||||
</configuration>
|
<!--
|
||||||
<configuration>
|
The following are for configuring alerts and a proper email (where system
|
||||||
<name>alert.email.addresses</name>
|
alerts will be sent to) and smtp server needs to be
|
||||||
<value>some.admin@example.com</value>
|
configured before enabling this feature.
|
||||||
</configuration>
|
-->
|
||||||
<configuration>
|
<!--
|
||||||
<name>alert.smtp.debug</name>
|
<configuration>
|
||||||
<value>false</value>
|
<name>alert.smtp.host</name>
|
||||||
</configuration>
|
<value>smtp.host.com</value>
|
||||||
-->
|
</configuration>
|
||||||
<!--
|
<configuration>
|
||||||
mount.parent determines where secondary storage is mounted on the management server.
|
<name>alert.smtp.port</name>
|
||||||
-->
|
<value>25</value>
|
||||||
<!--
|
</configuration>
|
||||||
<configuration>
|
<configuration>
|
||||||
<name>mount.parent</name>
|
<name>alert.smtp.useAuth</name>
|
||||||
<value>/var/lib/cloud/mnt</value>
|
<value>false</value>
|
||||||
</configuration>
|
</configuration>
|
||||||
-->
|
<configuration>
|
||||||
</configurationEntries>
|
<name>alert.smtp.username</name>
|
||||||
</data>
|
<value>some.user@example.com</value>
|
||||||
|
</configuration>
|
||||||
|
<configuration>
|
||||||
|
<name>alert.smtp.password</name>
|
||||||
|
<value>password</value>
|
||||||
|
</configuration>
|
||||||
|
<configuration>
|
||||||
|
<name>alert.email.sender</name>
|
||||||
|
<value>some.user@example.com</value>
|
||||||
|
</configuration>
|
||||||
|
<configuration>
|
||||||
|
<name>alert.email.addresses</name>
|
||||||
|
<value>some.admin@example.com</value>
|
||||||
|
</configuration>
|
||||||
|
<configuration>
|
||||||
|
<name>alert.smtp.debug</name>
|
||||||
|
<value>false</value>
|
||||||
|
</configuration>
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
|
mount.parent determines where secondary storage is mounted on the management server.
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
|
<configuration>
|
||||||
|
<name>mount.parent</name>
|
||||||
|
<value>/var/lib/cloud/mnt</value>
|
||||||
|
</configuration>
|
||||||
|
-->
|
||||||
|
</configurationEntries>
|
||||||
|
</data>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user