NaaS: Add service provider to server-setup.xml

This commit is contained in:
Sheng Yang 2011-11-15 16:32:54 -08:00
parent cc907adcbb
commit 3aef381b37
2 changed files with 534 additions and 407 deletions

View File

@ -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");

View File

@ -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>