Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge with team/evac

  • Loading branch information...
commit 676bcefa7577110b4fc345eb6f03ab826b327ad1 2 parents f0310dd + 3492653
@vasiliykochergin vasiliykochergin authored
Showing with 17,297 additions and 2,267 deletions.
  1. +10 −10 INSTALL
  2. +1 −1  clc/eucadmin/bin/euca-evacuate-node
  3. +22 −2 clc/modules/authentication/src/main/java/com/eucalyptus/auth/DatabaseAuthProvider.java
  4. +28 −0 clc/modules/autoscaling-common/build.xml
  5. +40 −0 clc/modules/autoscaling-common/src/main/java/com/eucalyptus/autoscaling/common/AutoScaling.java
  6. +892 −0 clc/modules/autoscaling-common/src/main/java/com/eucalyptus/autoscaling/common/AutoScalingMessages.groovy
  7. +51 −0 clc/modules/autoscaling-common/src/main/java/com/eucalyptus/autoscaling/common/AutoScalingMetadata.java
  8. +98 −0 clc/modules/autoscaling-common/src/main/java/com/eucalyptus/autoscaling/common/AutoScalingMetadatas.java
  9. +210 −0 clc/modules/autoscaling-common/src/main/java/com/eucalyptus/autoscaling/common/AutoScalingResourceName.java
  10. +791 −0 clc/modules/autoscaling-common/src/main/resources/autoscaling-binding.xml
  11. +61 −0 ...dules/autoscaling-common/src/test/java/com/eucalyptus/autoscaling/common/AutoScalingResourceNameTest.groovy
  12. +29 −0 clc/modules/autoscaling/build.xml
  13. +35 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/AlreadyExistsException.java
  14. +36 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/AutoScalingException.java
  15. +740 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/AutoScalingService.java
  16. +35 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/InternalFailureException.java
  17. +35 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/InvalidParameterValueException.java
  18. +35 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/LimitExceededException.java
  19. +102 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/configurations/BlockDeviceMapping.java
  20. +65 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/configurations/EbsParameters.java
  21. +306 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/configurations/LaunchConfiguration.java
  22. +146 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/configurations/LaunchConfigurations.java
  23. +82 −0 ...es/autoscaling/src/main/java/com/eucalyptus/autoscaling/configurations/PersistenceLaunchConfigurations.java
  24. +357 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/groups/AutoScalingGroup.java
  25. +142 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/groups/AutoScalingGroups.java
  26. +29 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/groups/HealthCheckType.java
  27. +90 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/groups/PersistenceAutoScalingGroups.java
  28. +42 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/groups/TerminationPolicyType.java
  29. +199 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/metadata/AbstractOwnedPersistent.java
  30. +179 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/metadata/AbstractOwnedPersistents.java
  31. +35 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/metadata/AutoScalingMetadataException.java
  32. +35 −0 ...les/autoscaling/src/main/java/com/eucalyptus/autoscaling/metadata/AutoScalingMetadataNotFoundException.java
  33. +99 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/policies/AdjustmentType.java
  34. +101 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/policies/PersistenceScalingPolicies.java
  35. +151 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/policies/ScalingPolicies.java
  36. +254 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/policies/ScalingPolicy.java
  37. +39 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/policy/AutoScalingGroupNumberQuotaKey.java
  38. +78 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/policy/AutoScalingNumberQuotaKeySupport.java
  39. +39 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/policy/LaunchConfigurationNumberQuotaKey.java
  40. +39 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/policy/ScalingPolicyNumberQuotaKey.java
  41. +55 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/ws/AutoScalingErrorHandler.java
  42. +38 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/ws/AutoScalingQueryBinding.java
  43. +45 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/ws/AutoScalingQueryPipeline.java
  44. +61 −0 clc/modules/autoscaling/src/main/java/com/eucalyptus/autoscaling/ws/AutoScalingSoapPipeline.java
  45. +91 −0 clc/modules/autoscaling/src/main/resources/autoscaling-model.xml
  46. +45 −0 clc/modules/autoscaling/src/test/java/com/eucalyptus/autoscaling/AutoScalingBindingTest.groovy
  47. +520 −0 clc/modules/autoscaling/src/test/java/com/eucalyptus/autoscaling/AutoScalingServiceTest.groovy
  48. +56 −0 clc/modules/autoscaling/src/test/java/com/eucalyptus/autoscaling/policies/AdjustmentTypeTest.groovy
  49. +1,656 −1,414 clc/modules/bootstrap/src/main/native/eucalyptus-opts.c
  50. +218 −386 clc/modules/bootstrap/src/main/native/eucalyptus-opts.h
  51. +3 −0  clc/modules/cloud/src/main/java/com/eucalyptus/cloud/CloudMetadata.java
  52. +2 −4 clc/modules/cloud/src/main/java/com/eucalyptus/cloud/CloudMetadatas.java
  53. +28 −0 clc/modules/cloudwatch-common/build.xml
  54. +39 −0 clc/modules/cloudwatch-common/src/main/java/com/eucalyptus/cloudwatch/CloudWatch.java
  55. +321 −0 clc/modules/cloudwatch-common/src/main/java/com/eucalyptus/cloudwatch/CloudWatchMessages.groovy
  56. +297 −0 clc/modules/cloudwatch-common/src/main/resources/cloudwatch-binding.xml
  57. +29 −0 clc/modules/cloudwatch/build.xml
  58. +34 −0 clc/modules/cloudwatch/src/main/java/com/eucalyptus/cloudwatch/CloudWatchException.java
  59. +141 −0 clc/modules/cloudwatch/src/main/java/com/eucalyptus/cloudwatch/CloudWatchService.java
  60. +361 −0 clc/modules/cloudwatch/src/main/java/com/eucalyptus/cloudwatch/domain/listmetrics/ListMetric.java
  61. +80 −0 clc/modules/cloudwatch/src/main/java/com/eucalyptus/cloudwatch/domain/listmetrics/ListMetricDimension.java
  62. +175 −0 clc/modules/cloudwatch/src/main/java/com/eucalyptus/cloudwatch/domain/listmetrics/ListMetricManager.java
  63. +453 −0 clc/modules/cloudwatch/src/main/java/com/eucalyptus/cloudwatch/domain/listmetrics/ListMetricsTest.java
  64. +37 −0 clc/modules/cloudwatch/src/main/java/com/eucalyptus/cloudwatch/hashing/HashUtils.java
  65. +52 −0 clc/modules/cloudwatch/src/main/java/com/eucalyptus/cloudwatch/ws/CloudWatchErrorHandler.java
  66. +36 −0 clc/modules/cloudwatch/src/main/java/com/eucalyptus/cloudwatch/ws/CloudWatchQueryBinding.java
  67. +43 −0 clc/modules/cloudwatch/src/main/java/com/eucalyptus/cloudwatch/ws/CloudWatchQueryPipeline.java
  68. +58 −0 clc/modules/cloudwatch/src/main/java/com/eucalyptus/cloudwatch/ws/CloudWatchSoapPipeline.java
  69. +91 −0 clc/modules/cloudwatch/src/main/resources/cloudwatch-model.xml
  70. +14 −2 clc/modules/cluster-manager/src/main/java/com/eucalyptus/blockstorage/SnapshotManager.java
  71. +6 −1 clc/modules/cluster-manager/src/main/java/com/eucalyptus/blockstorage/SnapshotTag.java
  72. +23 −11 clc/modules/cluster-manager/src/main/java/com/eucalyptus/blockstorage/Snapshots.java
  73. +13 −3 clc/modules/cluster-manager/src/main/java/com/eucalyptus/blockstorage/VolumeManager.java
  74. +6 −1 clc/modules/cluster-manager/src/main/java/com/eucalyptus/blockstorage/VolumeTag.java
  75. +1 −1  clc/modules/cluster-manager/src/main/java/com/eucalyptus/blockstorage/Volumes.java
  76. +16 −9 clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/ClusterEndpoint.java
  77. +10 −1 clc/modules/cluster-manager/src/main/java/com/eucalyptus/images/BlockStorageImageInfo.java
  78. +12 −8 clc/modules/cluster-manager/src/main/java/com/eucalyptus/images/BootableImageInfo.java
  79. +6 −2 clc/modules/cluster-manager/src/main/java/com/eucalyptus/images/ImageInfoTag.java
  80. +23 −2 clc/modules/cluster-manager/src/main/java/com/eucalyptus/images/ImageManager.java
  81. +270 −13 clc/modules/cluster-manager/src/main/java/com/eucalyptus/images/Images.java
  82. +10 −0 clc/modules/cluster-manager/src/main/java/com/eucalyptus/images/MachineImageInfo.java
  83. +10 −0 clc/modules/cluster-manager/src/main/java/com/eucalyptus/images/UnavailableImageInfo.java
  84. +5 −1 clc/modules/cluster-manager/src/main/java/com/eucalyptus/network/NetworkGroup.java
  85. +58 −45 clc/modules/cluster-manager/src/main/java/com/eucalyptus/network/NetworkGroupManager.java
  86. +6 −1 clc/modules/cluster-manager/src/main/java/com/eucalyptus/network/NetworkGroupTag.java
  87. +14 −7 clc/modules/cluster-manager/src/main/java/com/eucalyptus/network/NetworkGroups.java
  88. +113 −20 clc/modules/cluster-manager/src/main/java/com/eucalyptus/tags/FilterSupport.java
  89. +88 −8 clc/modules/cluster-manager/src/main/java/com/eucalyptus/tags/TagSupport.java
  90. +52 −2 clc/modules/cluster-manager/src/main/java/com/eucalyptus/tags/Tags.java
  91. +15 −1 clc/modules/cluster-manager/src/main/java/com/eucalyptus/vm/VmControl.java
  92. +56 −56 clc/modules/cluster-manager/src/main/java/com/eucalyptus/vm/VmInstance.java
  93. +6 −1 clc/modules/cluster-manager/src/main/java/com/eucalyptus/vm/VmInstanceTag.java
  94. +357 −3 clc/modules/cluster-manager/src/main/java/com/eucalyptus/vm/VmInstances.java
  95. +15 −0 clc/modules/cluster-manager/src/test/java/com/eucalyptus/blockstorage/SnapshotTagSupportTest.groovy
  96. +15 −0 clc/modules/cluster-manager/src/test/java/com/eucalyptus/blockstorage/VolumeTagSupportTest.groovy
  97. +111 −3 clc/modules/cluster-manager/src/test/java/com/eucalyptus/images/ImageInfoFilterSupportTest.groovy
  98. +15 −0 clc/modules/cluster-manager/src/test/java/com/eucalyptus/images/ImageInfoTagSupportTest.groovy
  99. +2 −3 clc/modules/cluster-manager/src/test/java/com/eucalyptus/network/NetworkGroupFilterSupportTest.groovy
  100. +15 −0 clc/modules/cluster-manager/src/test/java/com/eucalyptus/network/NetworkGroupTagSupportTest.groovy
  101. +68 −10 clc/modules/cluster-manager/src/test/java/com/eucalyptus/tags/FilterSupportTest.groovy
  102. +26 −0 clc/modules/cluster-manager/src/test/java/com/eucalyptus/tags/TagSupportTest.groovy
  103. +25 −1 clc/modules/cluster-manager/src/test/java/com/eucalyptus/vm/VmInstanceFilterSupportTest.groovy
  104. +15 −0 clc/modules/cluster-manager/src/test/java/com/eucalyptus/vm/VmInstanceTagSupportTest.groovy
  105. +28 −0 clc/modules/loadbalancing-common/build.xml
  106. +39 −0 clc/modules/loadbalancing-common/src/main/java/com/eucalyptus/loadbalancing/LoadBalancing.java
  107. +650 −0 clc/modules/loadbalancing-common/src/main/java/com/eucalyptus/loadbalancing/LoadBalancingMessages.groovy
  108. +506 −0 clc/modules/loadbalancing-common/src/main/resources/loadbalancing-binding.xml
  109. +29 −0 clc/modules/loadbalancing/build.xml
  110. +29 −0 clc/modules/loadbalancing/src/main/java/com/eucalyptus/loadbalancing/AccessPointNotFoundException.java
  111. +11 −0 clc/modules/loadbalancing/src/main/java/com/eucalyptus/loadbalancing/DuplicateListenerException.java
  112. +29 −0 clc/modules/loadbalancing/src/main/java/com/eucalyptus/loadbalancing/InvalidConfigurationRequestException.java
  113. +266 −0 clc/modules/loadbalancing/src/main/java/com/eucalyptus/loadbalancing/LoadBalancer.java
  114. +150 −0 clc/modules/loadbalancing/src/main/java/com/eucalyptus/loadbalancing/LoadBalancerBackendInstance.java
  115. +184 −0 clc/modules/loadbalancing/src/main/java/com/eucalyptus/loadbalancing/LoadBalancerListener.java
  116. +110 −0 clc/modules/loadbalancing/src/main/java/com/eucalyptus/loadbalancing/LoadBalancerZone.java
  117. +215 −0 clc/modules/loadbalancing/src/main/java/com/eucalyptus/loadbalancing/LoadBalancers.java
  118. +50 −0 clc/modules/loadbalancing/src/main/java/com/eucalyptus/loadbalancing/LoadBalancingException.java
  119. +498 −0 clc/modules/loadbalancing/src/main/java/com/eucalyptus/loadbalancing/LoadBalancingService.java
  120. +54 −0 clc/modules/loadbalancing/src/main/java/com/eucalyptus/loadbalancing/ws/LoadBalancingErrorHandler.java
  121. +38 −0 clc/modules/loadbalancing/src/main/java/com/eucalyptus/loadbalancing/ws/LoadBalancingQueryBinding.java
  122. +47 −0 clc/modules/loadbalancing/src/main/java/com/eucalyptus/loadbalancing/ws/LoadBalancingQueryPipeline.java
  123. +61 −0 clc/modules/loadbalancing/src/main/java/com/eucalyptus/loadbalancing/ws/LoadBalancingSoapPipeline.java
  124. +91 −0 clc/modules/loadbalancing/src/main/resources/loadbalancing-model.xml
  125. +3 −0  clc/modules/module-inc.order
  126. +5 −0 clc/modules/msgs/src/main/java/com/eucalyptus/auth/Accounts.java
  127. +60 −0 clc/modules/msgs/src/main/java/com/eucalyptus/auth/AuthQuotaException.java
  128. +17 −15 clc/modules/msgs/src/main/java/com/eucalyptus/auth/api/AccountProvider.java
  129. +1 −1  clc/modules/msgs/src/main/java/com/eucalyptus/auth/login/Hmacv4LoginModule.java
  130. +1 −1  clc/modules/msgs/src/main/java/com/eucalyptus/auth/login/SecurityContext.java
  131. +81 −3 clc/modules/msgs/src/main/java/com/eucalyptus/auth/policy/PolicySpec.java
  132. +35 −4 clc/modules/msgs/src/main/java/com/eucalyptus/binding/BindingCache.java
  133. +15 −0 clc/modules/msgs/src/main/java/com/eucalyptus/component/ComponentId.java
  134. +20 −2 clc/modules/msgs/src/main/java/com/eucalyptus/context/Contexts.java
  135. +132 −27 clc/modules/msgs/src/main/java/com/eucalyptus/crypto/util/Timestamps.java
  136. +27 −8 clc/modules/msgs/src/main/java/com/eucalyptus/entities/Transactions.java
  137. +10 −0 clc/modules/msgs/src/main/java/com/eucalyptus/util/Numbers.java
  138. +4 −3 clc/modules/msgs/src/main/java/com/eucalyptus/util/RestrictedTypes.java
  139. +44 −0 clc/modules/msgs/src/main/java/com/eucalyptus/util/Strings.java
  140. +66 −0 clc/modules/msgs/src/main/java/com/eucalyptus/ws/EucalyptusWebServiceException.java
  141. +36 −0 clc/modules/msgs/src/main/java/com/eucalyptus/ws/Role.java
  142. +1 −0  clc/modules/msgs/src/main/java/com/eucalyptus/ws/handlers/RestfulMarshallingHandler.java
  143. +40 −0 clc/modules/msgs/src/main/java/com/eucalyptus/ws/protocol/QueryBindingInfo.java
  144. +20 −9 clc/modules/msgs/src/main/java/com/eucalyptus/ws/server/ServiceContextHandler.java
  145. +3 −0  clc/modules/msgs/src/main/java/com/eucalyptus/ws/server/ServiceHackeryHandler.java
  146. +129 −0 clc/modules/msgs/src/main/java/com/eucalyptus/ws/util/ErrorHandlerSupport.java
  147. +6 −2 clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/cloud/Extra.groovy
  148. +5 −1 clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/BaseMessage.java
  149. +51 −0 clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/BaseMessageSupplier.java
  150. +4 −4 clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/Messages.groovy
  151. +8 −0 clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/Tags.groovy
  152. +2 −0  clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/VmBlockDevice.groovy
  153. +2 −0  clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/VmControl.groovy
  154. +1 −0  clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/VmImages.groovy
  155. +5 −1 clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/VmLocation.groovy
  156. +2 −0  clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/VmSecurity.groovy
  157. +5 −5 clc/modules/msgs/src/main/resources/2010-08-31-binding.xml
  158. +1 −1  clc/modules/msgs/src/main/resources/CC-binding.xml
  159. +5 −0 clc/modules/msgs/src/main/resources/aws-ebs-snapshots-10-08-31.xml
  160. +5 −0 clc/modules/msgs/src/main/resources/aws-ebs-volumes-10-08-31.xml
  161. +5 −0 clc/modules/msgs/src/main/resources/aws-images-10-08-31.xml
  162. +5 −0 clc/modules/msgs/src/main/resources/aws-instances-10-08-31.xml
  163. +5 −0 clc/modules/msgs/src/main/resources/aws-security-10-08-31.xml
  164. +5 −0 clc/modules/msgs/src/main/resources/aws-security-11-01-01.xml
  165. +75 −0 clc/modules/msgs/src/main/resources/cc-evacuate.xml
  166. +4 −1 clc/modules/msgs/src/main/resources/cc-vms.xml
  167. +157 −0 clc/modules/msgs/src/test/java/com/eucalyptus/crypto/util/TimestampsTest.groovy
  168. +6 −0 clc/modules/www/src/main/java/com/eucalyptus/www/X509Download.java
  169. +6 −0 cluster/CCclient.c
  170. +39 −0 cluster/cc-client-marshal-adb.c
  171. +1 −0  cluster/cc-client-marshal.h
  172. +129 −0 cluster/handlers.c
  173. +1 −1  cluster/handlers.h
  174. +54 −0 cluster/server-marshal.c
  175. +1 −0  cluster/server-marshal.h
  176. +9 −9 configure
  177. +1 −1  console/VERSION
  178. +1 −1  console/eucaconsole/__init__.py
  179. +5 −2 node/NCclient.c
  180. +7 −6 node/client-marshal-adb.c
  181. +1 −1  node/client-marshal-fake.c
  182. +1 −1  node/client-marshal-local.c
  183. +1 −1  node/client-marshal.h
  184. +89 −6 node/handlers.c
  185. +5 −2 node/handlers.h
  186. +9 −9 node/handlers_default.c
  187. +188 −55 node/handlers_kvm.c
  188. +25 −10 node/server-marshal.c
  189. +11 −1 storage/backing.c
  190. +22 −26 storage/vbr.c
  191. +2 −1  tools/connect_iscsitarget_main.pl
  192. +2 −0  tools/disconnect_iscsitarget_main.pl
  193. +2 −1  tools/get_iscsitarget.pl
  194. +47 −0 tools/iscsitarget_common.pl
  195. +2 −1  tools/libvirt.xsl
  196. +9 −3 util/adb-helpers.h
  197. +27 −1 util/data.c
  198. +7 −1 util/data.h
  199. +14 −0 util/eucalyptus.h
  200. +4 −1 util/sensor.c
  201. +54 −2 wsdl/eucalyptus_cc.wsdl
  202. +2 −3 wsdl/eucalyptus_nc.wsdl
View
20 INSTALL
@@ -40,7 +40,7 @@ java-devel java-devel openssl-devel curl-devel axis2c dhcp dhcp-common postgresq
python-boto rampartc iscsi-initiator-utils perl-Crypt-OpenSSL-RSA perl-Crypt-OpenSSL-Random \
sudo which jpackage-utils java lvm2 velocity drbd83 drbd83-kmod drbd-utils drbd euca2ools bitstream-vera-fonts \
dejavu-serif-fonts bridge-utils iptables vtun device-mapper coreutils e2fsprogs file parted util-linux rsync \
-PyGreSQL libcurl4 curl apache2 httpd libvirt tgt scsi-target-utils vconfig wget kvm dhcp-server
+PyGreSQL libcurl4 curl apache2 httpd libvirt tgt scsi-target-utils vconfig wget kvm dhcp-server iputils
Package-name & availability notes for CentOS 6.2 (and possibly earlier?):
@@ -51,9 +51,9 @@ Package-name & availability notes for CentOS 6.2 (and possibly earlier?):
- tgt was replaced by scsi-target-utils.
- bitstream-vera-fonts is no longer available.
-Download and save the following file https://github.com/eucalyptus/eucalyptus-rpmspec/blob/master/euca-WSDL2C.sh
+Download and save the following file https://raw.github.com/eucalyptus/eucalyptus-rpmspec/master/euca-WSDL2C.sh
-to /opt/euca-WSDL2C.sh
+to /opt/euca-WSDL2C.sh and make it executable
CentOS/RHEL 5
-------------
@@ -83,11 +83,11 @@ perl-Crypt-OpenSSL-Random sudo which jpackage-utils java lvm2 velocity drbd83
drbd83-kmod drbd-utils drbd euca2ools bitstream-vera-fonts dejavu-serif-fonts
bridge-utils iptables vtun device-mapper coreutils e2fsprogs file parted
util-linux rsync PyGreSQL libcurl4 curl apache2 httpd libvirt tgt scsi-target-utils
-vconfig wget xen dhcp-server
+vconfig wget xen dhcp-server iputils
-Download and save the following file https://github.com/eucalyptus/eucalyptus-rpmspec/blob/master/euca-WSDL2C.sh
+Download and save the following file https://raw.github.com/eucalyptus/eucalyptus-rpmspec/master/euca-WSDL2C.sh
-to /opt/euca-WSDL2C.sh
+to /opt/euca-WSDL2C.sh and make it executable
Ubuntu 12.04 LTS
@@ -99,7 +99,7 @@ cdbs debhelper libaxis2c-dev librampart-dev \
default-jdk libvirt-dev libfuse-dev libfuse2 libcurl4-openssl-dev \
libssl-dev ant-optional zlib1g-dev pkg-config swig python \
python-setuptools rsync wget open-iscsi libxslt1-dev gengetopt ant \
-groovy postgresql-server-dev-9.1
+groovy postgresql-server-dev-9.1 iputils-arping
Download axis2-1.4 from http://archive.apache.org/dist/ws/axis2/1_4/axis2-1.4-bin.zip and unzip it in /opt, so /opt/axis2-1.4 exists
@@ -111,7 +111,7 @@ Walrus: libc6, adduser, openssh-server, openssh-client, sudo, rsync, postgresql-
SC: libc6, adduser, openssh-server, openssh-client, sudo, rsync, postgresql-client-9.1, python, python2.7, python-boto (>= 2.1), python-psutil, tgt, open-iscsi, libcrypt-openssl-random-perl, libcrypt-openssl-rsa-perl, libcrypt-x509-perl, lvm2, vblade
-CC: libaxis2c0, libc6 (>= 2.14), libcurl3 (>= 7.16.2-1), librampart0 (>= 1.3.0-1euca2), libssl1.0.0 (>= 1.0.0), adduser, openssh-server, openssh-client, sudo, rsync, python (>= 2.5), python2.7, python-boto (>= 2.1), python-psutil (>= 0.1.2), apache2, libapache2-mod-axis2c, libssl1.0.0 (>= 1.0.0), bridge-utils, vlan, dhcp3-server, iptables, vtun, libpam-modules (>= 1.0.1-9ubuntu3)
+CC: libaxis2c0, libc6 (>= 2.14), libcurl3 (>= 7.16.2-1), librampart0 (>= 1.3.0-1euca2), libssl1.0.0 (>= 1.0.0), adduser, openssh-server, openssh-client, sudo, rsync, python (>= 2.5), python2.7, python-boto (>= 2.1), python-psutil (>= 0.1.2), apache2, libapache2-mod-axis2c, libssl1.0.0 (>= 1.0.0), bridge-utils, vlan, dhcp3-server, iptables, vtun, libpam-modules (>= 1.0.1-9ubuntu3), iputils-arping
NC: libaxis2c0, libc6 (>= 2.14), libcurl3 (>= 7.16.2-1), librampart0 (>= 1.3.0-1euca2), libssl1.0.0 (>= 1.0.0), libvirt0 (>= 0.3.0), libxml2 (>= 2.7.4), libxslt1.1 (>= 1.1.25), apache2-mpm-worker | apache2-mpm-prefork, libapache2-mod-axis2c, apache2, libc6 (>= 2.2.5), adduser, openssh-server, openssh-client, sudo, adduser, parted, libvirt-bin, open-iscsi, libcrypt-openssl-random-perl, libcrypt-openssl-rsa-perl, libcrypt-x509-perl, euca2ools (>= 1.4~), libdevmapper, python (>= 2.5), python2.7, python-boto (>= 2.1), python-psutil (>= 0.1.2), file, rsync
@@ -130,7 +130,7 @@ cdbs debhelper libaxis2c-dev librampart-dev \
default-jdk libvirt-dev libfuse-dev libfuse2 libcurl4-openssl-dev \
libssl-dev ant-optional zlib1g-dev pkg-config swig python \
python-setuptools rsync wget open-iscsi libxslt1-dev gengetopt ant \
-groovy postgresql-server-dev-9.1
+groovy postgresql-server-dev-9.1 iputils-arping
Install the following runtime dependencies. Dependencies are broken down by Eucalyptus component.
@@ -140,7 +140,7 @@ Walrus: libc6, adduser, openssh-server, openssh-client, sudo, rsync, postgresql-
SC: libc6, adduser, openssh-server, openssh-client, sudo, rsync, postgresql-client-9.1, python, python2.7, python-boto (>= 2.1), python-psutil, tgt, open-iscsi, libcrypt-openssl-random-perl, libcrypt-openssl-rsa-perl, libcrypt-x509-perl, lvm2, vblade
-CC: libaxis2c0, libc6 (>= 2.14), libcurl3 (>= 7.16.2-1), librampart0 (>= 1.3.0-1euca2), libssl1.0.0 (>= 1.0.0), adduser, openssh-server, openssh-client, sudo, rsync, python (>= 2.5), python2.7, python-boto (>= 2.1), python-psutil (>= 0.1.2), apache2, libapache2-mod-axis2c, libssl1.0.0 (>= 1.0.0), bridge-utils, vlan, dhcp3-server, iptables, vtun, libpam-modules (>= 1.0.1-9ubuntu3)
+CC: libaxis2c0, libc6 (>= 2.14), libcurl3 (>= 7.16.2-1), librampart0 (>= 1.3.0-1euca2), libssl1.0.0 (>= 1.0.0), adduser, openssh-server, openssh-client, sudo, rsync, python (>= 2.5), python2.7, python-boto (>= 2.1), python-psutil (>= 0.1.2), apache2, libapache2-mod-axis2c, libssl1.0.0 (>= 1.0.0), bridge-utils, vlan, dhcp3-server, iptables, vtun, libpam-modules (>= 1.0.1-9ubuntu3), iputils-arping
NC: libaxis2c0, libc6 (>= 2.14), libcurl3 (>= 7.16.2-1), librampart0 (>= 1.3.0-1euca2), libssl1.0.0 (>= 1.0.0), libvirt0 (>= 0.3.0), libxml2 (>= 2.7.4), libxslt1.1 (>= 1.1.25), apache2-mpm-worker | apache2-mpm-prefork, libapache2-mod-axis2c, apache2, libc6 (>= 2.2.5), adduser, openssh-server, openssh-client, sudo, adduser, parted, libvirt-bin, open-iscsi, libcrypt-openssl-random-perl, libcrypt-openssl-rsa-perl, libcrypt-x509-perl, euca2ools (>= 1.4~), libdevmapper, python (>= 2.5), python2.7, python-boto (>= 2.1), python-psutil (>= 0.1.2), file, rsync
View
2  clc/eucadmin/bin/euca-evacuate-node
@@ -25,7 +25,7 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import eucadmin.describenodes
+import eucadmin.evacuatenode
if __name__ == "__main__":
r = eucadmin.evacuatenode.EvacuateNode()
View
24 clc/modules/authentication/src/main/java/com/eucalyptus/auth/DatabaseAuthProvider.java
@@ -65,6 +65,7 @@
import java.security.cert.X509Certificate;
import java.util.List;
import java.util.NoSuchElementException;
+import java.util.Set;
import org.apache.log4j.Logger;
import org.hibernate.criterion.Restrictions;
@@ -84,7 +85,9 @@
import com.eucalyptus.auth.principal.User;
import com.eucalyptus.auth.util.X509CertHelper;
import com.eucalyptus.entities.EntityWrapper;
+import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
/**
* The authorization provider based on database storage. This class includes all the APIs to
@@ -294,8 +297,25 @@ public void deleteAccount( String accountName, boolean forceDeleteSystem, boolea
Debugging.logError( LOG, e, "Failed to delete account " + accountName );
throw new AuthException( AuthException.NO_SUCH_ACCOUNT, e );
}
- }
-
+ }
+
+ @Override
+ public Set<String> resolveAccountNumbersForName( final String accountNameLike ) throws AuthException {
+ final Set<String> results = Sets.newHashSet( );
+ final EntityWrapper<AccountEntity> db = EntityWrapper.get( AccountEntity.class );
+ try {
+ for ( final AccountEntity account : db.query( new AccountEntity( accountNameLike ) ) ) {
+ results.add( account.getAccountNumber() );
+ }
+ } catch ( Exception e ) {
+ Debugging.logError( LOG, e, "Failed to resolve account numbers" );
+ throw new AuthException( "Failed to resolve account numbers", e );
+ } finally {
+ db.rollback();
+ }
+ return results;
+ }
+
@Override
public List<User> listAllUsers( ) throws AuthException {
List<User> results = Lists.newArrayList( );
View
28 clc/modules/autoscaling-common/build.xml
@@ -0,0 +1,28 @@
+<!--
+ Copyright 2009-2013 Eucalyptus Systems, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 3 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see http://www.gnu.org/licenses/.
+
+ Please contact Eucalyptus Systems, Inc., 6755 Hollister Ave., Goleta
+ CA 93117, USA or visit http://www.eucalyptus.com/licenses/ if you need
+ additional information or have any questions.
+ -->
+
+<project name="eucalyptus-autoscaling-common" basedir=".">
+ <property name="builder.suffix" value="groovy" />
+ <uptodate property="groovyc.notRequired" targetfile="${jar.file}">
+ <srcfiles dir="${src.dir}" includes="**/*" />
+ </uptodate>
+ <import file="../module-inc.xml"/>
+</project>
+
View
40 clc/modules/autoscaling-common/src/main/java/com/eucalyptus/autoscaling/common/AutoScaling.java
@@ -0,0 +1,40 @@
+/*************************************************************************
+ * Copyright 2009-2013 Eucalyptus Systems, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see http://www.gnu.org/licenses/.
+ *
+ * Please contact Eucalyptus Systems, Inc., 6755 Hollister Ave., Goleta
+ * CA 93117, USA or visit http://www.eucalyptus.com/licenses/ if you need
+ * additional information or have any questions.
+ ************************************************************************/
+package com.eucalyptus.autoscaling.common;
+
+import com.eucalyptus.auth.policy.PolicySpec;
+import com.eucalyptus.component.ComponentId;
+import com.eucalyptus.component.id.Eucalyptus;
+
+/**
+ * @author Chris Grzegorczyk <grze@eucalyptus.com>
+ */
+@ComponentId.Partition( Eucalyptus.class )
+@ComponentId.PublicService
+@ComponentId.PolicyVendor( PolicySpec.VENDOR_AUTOSCALING )
+@ComponentId.FaultLogPrefix( "cloud" )
+public class AutoScaling extends ComponentId {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public String getInternalNamespaceSuffix() {
+ return "/autoscaling";
+ }
+}
View
892 clc/modules/autoscaling-common/src/main/java/com/eucalyptus/autoscaling/common/AutoScalingMessages.groovy
@@ -0,0 +1,892 @@
+/*************************************************************************
+ * Copyright 2009-2013 Eucalyptus Systems, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 3 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see http://www.gnu.org/licenses/.
+ *
+ * Please contact Eucalyptus Systems, Inc., 6755 Hollister Ave., Goleta
+ * CA 93117, USA or visit http://www.eucalyptus.com/licenses/ if you need
+ * additional information or have any questions.
+ ************************************************************************/
+package com.eucalyptus.autoscaling.common
+
+import edu.ucsb.eucalyptus.msgs.BaseMessage
+import edu.ucsb.eucalyptus.msgs.EucalyptusData
+import com.eucalyptus.component.ComponentId
+import com.google.common.collect.Lists
+import com.eucalyptus.binding.HttpEmbedded
+import com.eucalyptus.binding.HttpParameterMapping
+import java.lang.reflect.Field
+
+public class DescribeMetricCollectionTypesType extends AutoScalingMessage {
+ public DescribeMetricCollectionTypesType() { }
+}
+public class Alarm extends EucalyptusData {
+ String alarmName
+ String alarmARN
+ public Alarm() { }
+}
+public class MetricGranularityTypes extends EucalyptusData {
+ public MetricGranularityTypes() { }
+ ArrayList<MetricGranularityType> member = new ArrayList<MetricGranularityType>()
+}
+public class DescribeAutoScalingNotificationTypesResponseType extends AutoScalingMessage {
+ public DescribeAutoScalingNotificationTypesResponseType() { }
+ DescribeAutoScalingNotificationTypesResult describeAutoScalingNotificationTypesResult = new DescribeAutoScalingNotificationTypesResult()
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class LaunchConfigurationNames extends EucalyptusData {
+ public LaunchConfigurationNames() { }
+ @HttpParameterMapping(parameter="member")
+ ArrayList<String> member = new ArrayList<String>()
+}
+@ComponentId.ComponentMessage(AutoScaling.class)
+public class AutoScalingMessage extends BaseMessage {
+ @Override
+ def <TYPE extends BaseMessage> TYPE getReply() {
+ TYPE type = super.getReply()
+ try {
+ Field responseMetadataField = type.class.getDeclaredField("responseMetadata")
+ responseMetadataField.setAccessible( true )
+ ((ResponseMetadata) responseMetadataField.get( type )).requestId = getCorrelationId()
+ } catch ( Exception e ) {
+ }
+ return type
+ }
+}
+public class SuspendProcessesResponseType extends AutoScalingMessage {
+ public SuspendProcessesResponseType() { }
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class AutoScalingNotificationTypes extends AutoScalingMessage {
+ public AutoScalingNotificationTypes() { }
+ ArrayList<String> member = new ArrayList<String>()
+}
+public class TerminateInstanceInAutoScalingGroupType extends AutoScalingMessage {
+ String instanceId
+ Boolean shouldDecrementDesiredCapacity
+ public TerminateInstanceInAutoScalingGroupType() { }
+}
+public class ErrorResponse extends AutoScalingMessage {
+ String requestId
+ public ErrorResponse() { }
+ ArrayList<Error> error = new ArrayList<Error>()
+}
+public class BlockDeviceMappings extends EucalyptusData {
+ public BlockDeviceMappings() { }
+ public BlockDeviceMappings( Collection<BlockDeviceMappingType> mappings ) {
+ member.addAll( mappings )
+ }
+ @HttpEmbedded(multiple=true)
+ @HttpParameterMapping(parameter="member")
+ ArrayList<BlockDeviceMappingType> member = new ArrayList<BlockDeviceMappingType>()
+}
+public class LoadBalancerNames extends EucalyptusData {
+ public LoadBalancerNames() { }
+ public LoadBalancerNames( Collection<String> names ) {
+ if ( names != null ) member.addAll( names )
+ }
+ @HttpParameterMapping(parameter="member")
+ @HttpEmbedded(multiple=true)
+ ArrayList<String> member = new ArrayList<String>()
+}
+public class PolicyNames extends EucalyptusData {
+ public PolicyNames() { }
+ @HttpParameterMapping(parameter="member")
+ @HttpEmbedded(multiple=true)
+ ArrayList<String> member = new ArrayList<String>()
+}
+public class DescribeTerminationPolicyTypesType extends AutoScalingMessage {
+ public DescribeTerminationPolicyTypesType() { }
+}
+public class DeleteTagsResponseType extends AutoScalingMessage {
+ public DeleteTagsResponseType() { }
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class SetInstanceHealthResponseType extends AutoScalingMessage {
+ public SetInstanceHealthResponseType() { }
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class DeleteAutoScalingGroupType extends AutoScalingMessage {
+ String autoScalingGroupName
+ Boolean forceDelete
+ public DeleteAutoScalingGroupType() { }
+}
+public class DescribeNotificationConfigurationsType extends AutoScalingMessage {
+ AutoScalingGroupNames autoScalingGroupNames
+ String nextToken
+ Integer maxRecords
+ public DescribeNotificationConfigurationsType() { }
+}
+public class ScheduledUpdateGroupAction extends AutoScalingMessage {
+ String autoScalingGroupName
+ String scheduledActionName
+ String scheduledActionARN
+ Date time
+ Date startTime
+ Date endTime
+ String recurrence
+ Integer minSize
+ Integer maxSize
+ Integer desiredCapacity
+ public ScheduledUpdateGroupAction() { }
+}
+public class PutScheduledUpdateGroupActionResponseType extends AutoScalingMessage {
+ public PutScheduledUpdateGroupActionResponseType() { }
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class ProcessType extends EucalyptusData {
+ String processName
+ public ProcessType() { }
+}
+public class TagDescription extends EucalyptusData {
+ String resourceId
+ String resourceType
+ String key
+ String value
+ Boolean propagateAtLaunch
+ public TagDescription() { }
+}
+public class DeleteNotificationConfigurationType extends AutoScalingMessage {
+ String autoScalingGroupName
+ String topicARN
+ public DeleteNotificationConfigurationType() { }
+}
+public class ExecutePolicyType extends AutoScalingMessage {
+ String autoScalingGroupName
+ String policyName
+ Boolean honorCooldown
+ public ExecutePolicyType() { }
+}
+public class AutoScalingInstanceDetails extends EucalyptusData {
+ String instanceId
+ String autoScalingGroupName
+ String availabilityZone
+ String lifecycleState
+ String healthStatus
+ String launchConfigurationName
+ public AutoScalingInstanceDetails() { }
+}
+public class DeletePolicyType extends AutoScalingMessage {
+ String autoScalingGroupName
+ String policyName
+ public DeletePolicyType() { }
+}
+public class DescribeAutoScalingGroupsResult extends EucalyptusData {
+ AutoScalingGroupsType autoScalingGroups = new AutoScalingGroupsType()
+ String nextToken
+ public DescribeAutoScalingGroupsResult() { }
+}
+public class CreateLaunchConfigurationResponseType extends AutoScalingMessage {
+ public CreateLaunchConfigurationResponseType() { }
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class TerminateInstanceInAutoScalingGroupResponseType extends AutoScalingMessage {
+ public TerminateInstanceInAutoScalingGroupResponseType() { }
+ TerminateInstanceInAutoScalingGroupResult terminateInstanceInAutoScalingGroupResult = new TerminateInstanceInAutoScalingGroupResult()
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class DescribeAutoScalingInstancesResponseType extends AutoScalingMessage {
+ public DescribeAutoScalingInstancesResponseType() { }
+ DescribeAutoScalingInstancesResult describeAutoScalingInstancesResult = new DescribeAutoScalingInstancesResult()
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class PutNotificationConfigurationType extends AutoScalingMessage {
+ String autoScalingGroupName
+ String topicARN
+ AutoScalingNotificationTypes notificationTypes
+ public PutNotificationConfigurationType() { }
+}
+public class MetricCollectionTypes extends AutoScalingMessage {
+ public MetricCollectionTypes() { }
+ ArrayList<MetricCollectionType> member = new ArrayList<MetricCollectionType>()
+}
+public class CreateAutoScalingGroupResponseType extends AutoScalingMessage {
+ public CreateAutoScalingGroupResponseType() { }
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class DeleteNotificationConfigurationResponseType extends AutoScalingMessage {
+ public DeleteNotificationConfigurationResponseType() { }
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class TagDescriptionList extends EucalyptusData {
+ public TagDescriptionList() { }
+ ArrayList<TagDescription> member = new ArrayList<TagDescription>()
+}
+public class DescribeTerminationPolicyTypesResult extends EucalyptusData {
+ TerminationPolicies terminationPolicyTypes = new TerminationPolicies()
+ public DescribeTerminationPolicyTypesResult() { }
+}
+public class DescribeScalingProcessTypesResponseType extends AutoScalingMessage {
+ public DescribeScalingProcessTypesResponseType() { }
+ DescribeScalingProcessTypesResult describeScalingProcessTypesResult = new DescribeScalingProcessTypesResult()
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class PutNotificationConfigurationResponseType extends AutoScalingMessage {
+ public PutNotificationConfigurationResponseType() { }
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class Activity extends EucalyptusData {
+ String activityId
+ String autoScalingGroupName
+ String description
+ String cause
+ Date startTime
+ Date endTime
+ String statusCode
+ String statusMessage
+ Integer progress
+ String details
+ public Activity() { }
+}
+public class SuspendedProcesses extends EucalyptusData {
+ public SuspendedProcesses() { }
+ ArrayList<SuspendedProcess> member = new ArrayList<SuspendedProcess>()
+}
+public class InstanceMonitoring extends EucalyptusData {
+ Boolean enabled
+ public InstanceMonitoring() { }
+ public InstanceMonitoring( Boolean enabled ) {
+ this.enabled = enabled
+ }
+}
+public class DescribeScheduledActionsType extends AutoScalingMessage {
+ String autoScalingGroupName
+ ScheduledActionNames scheduledActionNames
+ Date startTime
+ Date endTime
+ String nextToken
+ Integer maxRecords
+ public DescribeScheduledActionsType() { }
+}
+public class Filter extends EucalyptusData {
+ String name
+ Values values
+ public Filter() { }
+}
+public class ErrorDetail extends EucalyptusData {
+ public ErrorDetail() { }
+}
+public class Alarms extends EucalyptusData {
+ public Alarms() { }
+ ArrayList<Alarm> member = new ArrayList<Alarm>()
+}
+public class DescribeAutoScalingInstancesResult extends EucalyptusData {
+ AutoScalingInstances autoScalingInstances
+ String nextToken
+ public DescribeAutoScalingInstancesResult() { }
+}
+public class DescribeLaunchConfigurationsType extends AutoScalingMessage {
+ @HttpEmbedded
+ LaunchConfigurationNames launchConfigurationNames = new LaunchConfigurationNames()
+ String nextToken
+ Integer maxRecords
+ public DescribeLaunchConfigurationsType() { }
+ public List<String> launchConfigurationNames() {
+ List<String> names = Lists.newArrayList()
+ if ( launchConfigurationNames != null ) {
+ names = launchConfigurationNames.getMember()
+ }
+ return names
+ }
+}
+public class DescribeMetricCollectionTypesResponseType extends AutoScalingMessage {
+ public DescribeMetricCollectionTypesResponseType() { }
+ DescribeMetricCollectionTypesResult describeMetricCollectionTypesResult = new DescribeMetricCollectionTypesResult()
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class AutoScalingInstances extends AutoScalingMessage {
+ public AutoScalingInstances() { }
+ ArrayList<AutoScalingInstanceDetails> member = new ArrayList<AutoScalingInstanceDetails>()
+}
+public class DescribeTagsType extends AutoScalingMessage {
+ Filters filters
+ String nextToken
+ Integer maxRecords
+ public DescribeTagsType() { }
+}
+public class AdjustmentType extends EucalyptusData {
+ String adjustmentType
+ public AdjustmentType() { }
+}
+public class DeleteScheduledActionType extends AutoScalingMessage {
+ String autoScalingGroupName
+ String scheduledActionName
+ public DeleteScheduledActionType() { }
+}
+public class DisableMetricsCollectionResponseType extends AutoScalingMessage {
+ public DisableMetricsCollectionResponseType() { }
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class CreateAutoScalingGroupType extends AutoScalingMessage {
+ String autoScalingGroupName
+ String launchConfigurationName
+ Integer minSize
+ Integer maxSize
+ Integer desiredCapacity
+ Integer defaultCooldown
+ @HttpEmbedded
+ AvailabilityZones availabilityZones
+ @HttpEmbedded
+ LoadBalancerNames loadBalancerNames
+ String healthCheckType
+ Integer healthCheckGracePeriod
+ String placementGroup
+ @HttpParameterMapping(parameter="VPCZoneIdentifier")
+ String vpcZoneIdentifier
+ @HttpEmbedded
+ TerminationPolicies terminationPolicies
+ Tags tags
+ public CreateAutoScalingGroupType() { }
+ public Collection<String> availabilityZones() {
+ return availabilityZones?.member
+ }
+ public Collection<String> loadBalancerNames() {
+ return loadBalancerNames?.member
+ }
+ public Collection<String> terminationPolicies() {
+ return terminationPolicies?.member
+ }
+}
+public class DisableMetricsCollectionType extends AutoScalingMessage {
+ String autoScalingGroupName
+ Metrics metrics
+ public DisableMetricsCollectionType() { }
+}
+public class DescribeAdjustmentTypesType extends AutoScalingMessage {
+ public DescribeAdjustmentTypesType() { }
+}
+public class TerminationPolicies extends EucalyptusData {
+ public TerminationPolicies() { }
+ public TerminationPolicies( Collection<String> terminationPolicies ) {
+ if ( terminationPolicies != null ) member.addAll( terminationPolicies )
+ }
+ @HttpParameterMapping(parameter="member")
+ @HttpEmbedded(multiple=true)
+ ArrayList<String> member = new ArrayList<String>()
+}
+public class NotificationConfiguration extends AutoScalingMessage {
+ String autoScalingGroupName
+ String topicARN
+ String notificationType
+ public NotificationConfiguration() { }
+}
+public class DescribeTagsResult extends EucalyptusData {
+ TagDescriptionList tags
+ String nextToken
+ public DescribeTagsResult() { }
+}
+public class DescribeNotificationConfigurationsResponseType extends AutoScalingMessage {
+ public DescribeNotificationConfigurationsResponseType() { }
+ DescribeNotificationConfigurationsResult describeNotificationConfigurationsResult = new DescribeNotificationConfigurationsResult()
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class ScheduledActionNames extends EucalyptusData {
+ public ScheduledActionNames() { }
+ ArrayList<String> member = new ArrayList<String>()
+}
+public class AvailabilityZones extends EucalyptusData {
+ public AvailabilityZones() { }
+ public AvailabilityZones( Collection<String> zones ) {
+ if ( zones != null ) member.addAll( zones )
+ }
+ @HttpParameterMapping(parameter="member")
+ @HttpEmbedded(multiple=true)
+ ArrayList<String> member = new ArrayList<String>()
+}
+public class DescribeScalingActivitiesResult extends EucalyptusData {
+ Activities activities = new Activities()
+ String nextToken
+ public DescribeScalingActivitiesResult() { }
+}
+public class DescribeAutoScalingNotificationTypesType extends AutoScalingMessage {
+ public DescribeAutoScalingNotificationTypesType() { }
+}
+public class Metrics extends EucalyptusData {
+ public Metrics() { }
+ ArrayList<String> member = new ArrayList<String>()
+}
+public class DeleteScheduledActionResponseType extends AutoScalingMessage {
+ public DeleteScheduledActionResponseType() { }
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class DescribeNotificationConfigurationsResult extends EucalyptusData {
+ NotificationConfigurations notificationConfigurations = new NotificationConfigurations()
+ String nextToken
+ public DescribeNotificationConfigurationsResult() { }
+}
+public class EnableMetricsCollectionType extends AutoScalingMessage {
+ String autoScalingGroupName
+ Metrics metrics
+ String granularity
+ public EnableMetricsCollectionType() { }
+}
+public class EnableMetricsCollectionResponseType extends AutoScalingMessage {
+ public EnableMetricsCollectionResponseType() { }
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class PutScheduledUpdateGroupActionType extends AutoScalingMessage {
+ String autoScalingGroupName
+ String scheduledActionName
+ Date time
+ Date startTime
+ Date endTime
+ String recurrence
+ Integer minSize
+ Integer maxSize
+ Integer desiredCapacity
+ public PutScheduledUpdateGroupActionType() { }
+}
+public class SuspendedProcess extends EucalyptusData {
+ String processName
+ String suspensionReason
+ public SuspendedProcess() { }
+}
+public class SecurityGroups extends EucalyptusData {
+ public SecurityGroups() { }
+ public SecurityGroups( Collection<String> groups ) {
+ member.addAll( groups )
+ }
+ @HttpParameterMapping(parameter="member")
+ ArrayList<String> member = new ArrayList<String>()
+}
+public class NotificationConfigurations extends AutoScalingMessage {
+ public NotificationConfigurations() { }
+ ArrayList<NotificationConfiguration> member = new ArrayList<NotificationConfiguration>()
+}
+public class DeleteLaunchConfigurationResponseType extends AutoScalingMessage {
+ public DeleteLaunchConfigurationResponseType() { }
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class DescribeScheduledActionsResponseType extends AutoScalingMessage {
+ public DescribeScheduledActionsResponseType() { }
+ DescribeScheduledActionsResult describeScheduledActionsResult = new DescribeScheduledActionsResult()
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class Filters extends EucalyptusData {
+ public Filters() { }
+ ArrayList<Filter> member = new ArrayList<Filter>()
+}
+public class ResumeProcessesType extends AutoScalingMessage {
+ String autoScalingGroupName
+ ProcessNames scalingProcesses
+ public ResumeProcessesType() { }
+}
+public class DescribeAdjustmentTypesResponseType extends AutoScalingMessage {
+ public DescribeAdjustmentTypesResponseType() { }
+ DescribeAdjustmentTypesResult describeAdjustmentTypesResult = new DescribeAdjustmentTypesResult()
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class InstanceIds extends EucalyptusData {
+ public InstanceIds() { }
+ ArrayList<String> member = new ArrayList<String>()
+}
+public class SuspendProcessesType extends AutoScalingMessage {
+ String autoScalingGroupName
+ ProcessNames scalingProcesses
+ public SuspendProcessesType() { }
+}
+public class LaunchConfigurationsType extends AutoScalingMessage {
+ public LaunchConfigurationsType() { }
+ ArrayList<LaunchConfigurationType> member = new ArrayList<LaunchConfigurationType>()
+}
+public class Instances extends AutoScalingMessage {
+ public Instances() { }
+ ArrayList<Instance> member = new ArrayList<Instance>()
+}
+public class TerminateInstanceInAutoScalingGroupResult extends EucalyptusData {
+ Activity activity
+ public TerminateInstanceInAutoScalingGroupResult() { }
+}
+public class DescribeScheduledActionsResult extends EucalyptusData {
+ ScheduledUpdateGroupActions scheduledUpdateGroupActions
+ String nextToken
+ public DescribeScheduledActionsResult() { }
+}
+public class DescribeAutoScalingInstancesType extends AutoScalingMessage {
+ InstanceIds instanceIds
+ Integer maxRecords
+ String nextToken
+ public DescribeAutoScalingInstancesType() { }
+}
+public class DeleteTagsType extends AutoScalingMessage {
+ Tags tags
+ public DeleteTagsType() { }
+}
+public class UpdateAutoScalingGroupResponseType extends AutoScalingMessage {
+ public UpdateAutoScalingGroupResponseType() { }
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class EnabledMetric extends EucalyptusData {
+ String metric
+ String granularity
+ public EnabledMetric() { }
+}
+public class DescribePoliciesResponseType extends AutoScalingMessage {
+ public DescribePoliciesResponseType() { }
+ DescribePoliciesResult describePoliciesResult = new DescribePoliciesResult()
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class Tag extends EucalyptusData {
+ String resourceId
+ String resourceType
+ String key
+ String value
+ Boolean propagateAtLaunch
+ public Tag() { }
+}
+public class DescribeTagsResponseType extends AutoScalingMessage {
+ public DescribeTagsResponseType() { }
+ DescribeTagsResult describeTagsResult = new DescribeTagsResult()
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class ScheduledUpdateGroupActions extends EucalyptusData {
+ public ScheduledUpdateGroupActions() { }
+ ArrayList<ScheduledUpdateGroupAction> member = new ArrayList<ScheduledUpdateGroupAction>()
+}
+public class DeletePolicyResponseType extends AutoScalingMessage {
+ public DeletePolicyResponseType() { }
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class Instance extends EucalyptusData {
+ String instanceId
+ String availabilityZone
+ String lifecycleState
+ String healthStatus
+ String launchConfigurationName
+ public Instance() { }
+}
+public class ExecutePolicyResponseType extends AutoScalingMessage {
+ public ExecutePolicyResponseType() { }
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class ActivityIds extends EucalyptusData {
+ public ActivityIds() { }
+ ArrayList<String> member = new ArrayList<String>()
+}
+public class MetricGranularityType extends EucalyptusData {
+ String granularity
+ public MetricGranularityType() { }
+}
+public class AdjustmentTypes extends AutoScalingMessage {
+ public AdjustmentTypes() { }
+ ArrayList<AdjustmentType> member = new ArrayList<AdjustmentType>()
+}
+public class PutScalingPolicyResponseType extends AutoScalingMessage {
+ public PutScalingPolicyResponseType() { }
+ PutScalingPolicyResult putScalingPolicyResult = new PutScalingPolicyResult()
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class Tags extends AutoScalingMessage {
+ public Tags() { }
+ @HttpParameterMapping(parameter="member")
+ @HttpEmbedded(multiple=true)
+ ArrayList<Tag> member = new ArrayList<Tag>()
+}
+public class SetDesiredCapacityResponseType extends AutoScalingMessage {
+ public SetDesiredCapacityResponseType() { }
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class DescribeScalingActivitiesType extends AutoScalingMessage {
+ ActivityIds activityIds
+ String autoScalingGroupName
+ Integer maxRecords
+ String nextToken
+ public DescribeScalingActivitiesType() { }
+}
+public class LaunchConfigurationType extends AutoScalingMessage {
+ String launchConfigurationName
+ String launchConfigurationARN
+ String imageId
+ String keyName
+ SecurityGroups securityGroups
+ String userData
+ String instanceType
+ String kernelId
+ String ramdiskId
+ BlockDeviceMappings blockDeviceMappings
+ InstanceMonitoring instanceMonitoring
+ String spotPrice
+ String iamInstanceProfile
+ Date createdTime
+ Boolean ebsOptimized
+ public LaunchConfigurationType() { }
+}
+public class Processes extends AutoScalingMessage {
+ public Processes() { }
+ ArrayList<ProcessType> member = new ArrayList<ProcessType>()
+}
+public class Ebs extends EucalyptusData {
+ String snapshotId
+ Integer volumeSize
+ public Ebs() { }
+}
+public class SetInstanceHealthType extends AutoScalingMessage {
+ String instanceId
+ String healthStatus
+ Boolean shouldRespectGracePeriod
+ public SetInstanceHealthType() { }
+}
+public class UpdateAutoScalingGroupType extends AutoScalingMessage {
+ String autoScalingGroupName
+ String launchConfigurationName
+ Integer minSize
+ Integer maxSize
+ Integer desiredCapacity
+ Integer defaultCooldown
+ @HttpEmbedded
+ AvailabilityZones availabilityZones
+ String healthCheckType
+ Integer healthCheckGracePeriod
+ String placementGroup
+ @HttpParameterMapping(parameter="VPCZoneIdentifier")
+ String vpcZoneIdentifier
+ @HttpEmbedded
+ TerminationPolicies terminationPolicies
+ public UpdateAutoScalingGroupType() { }
+ public Collection<String> availabilityZones() {
+ return availabilityZones?.member
+ }
+ public Collection<String> terminationPolicies() {
+ return terminationPolicies?.member
+ }
+}
+public class DescribeMetricCollectionTypesResult extends EucalyptusData {
+ MetricCollectionTypes metrics
+ MetricGranularityTypes granularities
+ public DescribeMetricCollectionTypesResult() { }
+}
+public class BlockDeviceMappingType extends EucalyptusData {
+ String virtualName
+ String deviceName
+ Ebs ebs
+ public BlockDeviceMappingType() { }
+ public BlockDeviceMappingType( String deviceName, String virtualName, String snapshotId, Integer volumeSize ) {
+ this.deviceName = deviceName
+ this.virtualName = virtualName
+ if ( snapshotId != null || volumeSize != null ) {
+ this.ebs = new Ebs( snapshotId: snapshotId, volumeSize: volumeSize )
+ }
+ }
+}
+public class ScalingPolicies extends EucalyptusData {
+ public ScalingPolicies() { }
+ ArrayList<ScalingPolicyType> member = new ArrayList<ScalingPolicyType>()
+}
+public class ResponseMetadata extends EucalyptusData {
+ String requestId
+ public ResponseMetadata() { }
+}
+public class DescribeTerminationPolicyTypesResponseType extends AutoScalingMessage {
+ public DescribeTerminationPolicyTypesResponseType() { }
+ DescribeTerminationPolicyTypesResult describeTerminationPolicyTypesResult = new DescribeTerminationPolicyTypesResult()
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class DescribeLaunchConfigurationsResult extends EucalyptusData {
+ LaunchConfigurationsType launchConfigurations = new LaunchConfigurationsType()
+ String nextToken
+ public DescribeLaunchConfigurationsResult() { }
+}
+public class DescribePoliciesResult extends EucalyptusData {
+ ScalingPolicies scalingPolicies = new ScalingPolicies()
+ String nextToken
+ public DescribePoliciesResult() { }
+}
+public class AutoScalingGroupsType extends AutoScalingMessage {
+ public AutoScalingGroupsType() { }
+ ArrayList<AutoScalingGroupType> member = new ArrayList<AutoScalingGroupType>()
+}
+public class EnabledMetrics extends EucalyptusData {
+ public EnabledMetrics() { }
+ ArrayList<EnabledMetric> member = new ArrayList<EnabledMetric>()
+}
+public class SetDesiredCapacityType extends AutoScalingMessage {
+ String autoScalingGroupName
+ Integer desiredCapacity
+ Boolean honorCooldown
+ public SetDesiredCapacityType() { }
+}
+public class PutScalingPolicyType extends AutoScalingMessage {
+ String autoScalingGroupName
+ String policyName
+ Integer scalingAdjustment
+ String adjustmentType
+ Integer cooldown
+ Integer minAdjustmentStep
+ public PutScalingPolicyType() { }
+}
+public class DescribeAutoScalingGroupsResponseType extends AutoScalingMessage {
+ public DescribeAutoScalingGroupsResponseType() { }
+ DescribeAutoScalingGroupsResult describeAutoScalingGroupsResult = new DescribeAutoScalingGroupsResult()
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class AutoScalingGroupType extends AutoScalingMessage {
+ String autoScalingGroupName
+ String autoScalingGroupARN
+ String launchConfigurationName
+ Integer minSize
+ Integer maxSize
+ Integer desiredCapacity
+ Integer defaultCooldown
+ AvailabilityZones availabilityZones
+ LoadBalancerNames loadBalancerNames
+ String healthCheckType
+ Integer healthCheckGracePeriod
+ Instances instances
+ Date createdTime
+ SuspendedProcesses suspendedProcesses
+ String placementGroup
+ String vpcZoneIdentifier
+ EnabledMetrics enabledMetrics
+ String status
+ TagDescriptionList tags
+ TerminationPolicies terminationPolicies
+ public AutoScalingGroupType() { }
+}
+public class DeleteLaunchConfigurationType extends AutoScalingMessage {
+ String launchConfigurationName
+ public DeleteLaunchConfigurationType() { }
+}
+public class DeleteAutoScalingGroupResponseType extends AutoScalingMessage {
+ public DeleteAutoScalingGroupResponseType() { }
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class DescribeScalingActivitiesResponseType extends AutoScalingMessage {
+ public DescribeScalingActivitiesResponseType() { }
+ DescribeScalingActivitiesResult describeScalingActivitiesResult = new DescribeScalingActivitiesResult()
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class ScalingPolicyType extends AutoScalingMessage {
+ String autoScalingGroupName
+ String policyName
+ Integer scalingAdjustment
+ String adjustmentType
+ Integer cooldown
+ String policyARN
+ Alarms alarms
+ Integer minAdjustmentStep
+ public ScalingPolicyType() { }
+}
+public class AutoScalingGroupNames extends EucalyptusData {
+ public AutoScalingGroupNames() { }
+ ArrayList<String> member = new ArrayList<String>()
+}
+public class Values extends EucalyptusData {
+ public Values() { }
+ ArrayList<String> member = new ArrayList<String>()
+}
+public class Error extends EucalyptusData {
+ String type
+ String code
+ String message
+ public Error() { }
+ ErrorDetail detail = new ErrorDetail()
+}
+public class CreateOrUpdateTagsResponseType extends AutoScalingMessage {
+ public CreateOrUpdateTagsResponseType() { }
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class Activities extends AutoScalingMessage {
+ public Activities() { }
+ ArrayList<Activity> member = new ArrayList<Activity>()
+}
+public class DescribePoliciesType extends AutoScalingMessage {
+ String autoScalingGroupName
+ @HttpEmbedded
+ PolicyNames policyNames
+ String nextToken
+ Integer maxRecords
+ public DescribePoliciesType() { }
+ public List<String> policyNames() {
+ List<String> names = Lists.newArrayList()
+ if ( policyNames != null ) {
+ names = policyNames.getMember()
+ }
+ return names
+ }
+}
+public class PutScalingPolicyResult extends EucalyptusData {
+ String policyARN
+ public PutScalingPolicyResult() { }
+}
+public class ResumeProcessesResponseType extends AutoScalingMessage {
+ public ResumeProcessesResponseType() { }
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class DescribeAutoScalingGroupsType extends AutoScalingMessage {
+ AutoScalingGroupNames autoScalingGroupNames
+ String nextToken
+ Integer maxRecords
+ public DescribeAutoScalingGroupsType() { }
+ public List<String> autoScalingGroupNames() {
+ List<String> names = Lists.newArrayList()
+ if ( autoScalingGroupNames != null ) {
+ names = autoScalingGroupNames.getMember()
+ }
+ return names
+ }
+}
+public class CreateLaunchConfigurationType extends AutoScalingMessage {
+ String launchConfigurationName
+ String imageId
+ String keyName
+ @HttpEmbedded
+ SecurityGroups securityGroups
+ String userData
+ String instanceType
+ String kernelId
+ String ramdiskId
+ @HttpEmbedded
+ BlockDeviceMappings blockDeviceMappings
+ @HttpEmbedded
+ InstanceMonitoring instanceMonitoring
+ String spotPrice
+ String iamInstanceProfile
+ Boolean ebsOptimized
+ public CreateLaunchConfigurationType() { }
+}
+public class MetricCollectionType extends EucalyptusData {
+ String metric
+ public MetricCollectionType() { }
+}
+public class DescribeLaunchConfigurationsResponseType extends AutoScalingMessage {
+ public DescribeLaunchConfigurationsResponseType() { }
+ DescribeLaunchConfigurationsResult describeLaunchConfigurationsResult = new DescribeLaunchConfigurationsResult()
+ ResponseMetadata responseMetadata = new ResponseMetadata()
+}
+public class DescribeScalingProcessTypesType extends AutoScalingMessage {
+ public DescribeScalingProcessTypesType() { }
+}
+public class CreateOrUpdateTagsType extends AutoScalingMessage {
+ Tags tags
+ public CreateOrUpdateTagsType() { }
+}
+public class ProcessNames extends EucalyptusData {
+ public ProcessNames() { }
+ ArrayList<String> member = new ArrayList<String>()
+}
+public class DescribeAdjustmentTypesResult extends EucalyptusData {
+ AdjustmentTypes adjustmentTypes
+ public DescribeAdjustmentTypesResult() { }
+ public void setAdjustmentTypes( Collection<String> values ) {
+ adjustmentTypes = new AdjustmentTypes( member: values.collect {
+ value -> new AdjustmentType( adjustmentType: value ) } )
+ }
+}
+public class DescribeScalingProcessTypesResult extends EucalyptusData {
+ Processes processes
+ public DescribeScalingProcessTypesResult() { }
+}
+public class DescribeAutoScalingNotificationTypesResult extends EucalyptusData {
+ AutoScalingNotificationTypes autoScalingNotificationTypes
+ public DescribeAutoScalingNotificationTypesResult() { }
+}
View
51 clc/modules/autoscaling-common/src/main/java/com/eucalyptus/autoscaling/common/AutoScalingMetadata.java
@@ -0,0 +1,51 @@
+/*************************************************************************
+ * Copyright 2009-2012 Eucalyptus Systems, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see http://www.gnu.org/licenses/.
+ *
+ * Please contact Eucalyptus Systems, Inc., 6755 Hollister Ave., Goleta
+ * CA 93117, USA or visit http://www.eucalyptus.com/licenses/ if you need
+ * additional information or have any questions.
+ ************************************************************************/
+package com.eucalyptus.autoscaling.common;
+
+import com.eucalyptus.auth.policy.PolicyResourceType;
+import com.eucalyptus.auth.policy.PolicySpec;
+import com.eucalyptus.component.ComponentId;
+import com.eucalyptus.util.RestrictedType;
+
+/**
+ *
+ */
+@ComponentId.PolicyVendor( PolicySpec.VENDOR_AUTOSCALING )
+public interface AutoScalingMetadata extends RestrictedType {
+
+ public interface AutoScalingMetadataWithResourceName extends AutoScalingMetadata {
+ String getArn();
+ }
+
+ @PolicyResourceType( "launchconfiguration" )
+ public interface LaunchConfigurationMetadata extends AutoScalingMetadataWithResourceName {}
+
+ @PolicyResourceType( "autoscalingroup" )
+ public interface AutoScalingGroupMetadata extends AutoScalingMetadataWithResourceName {}
+
+ @PolicyResourceType( "terminationpolicytype" )
+ public interface TerminationPolicyTypeMetadata extends AutoScalingMetadata {}
+
+ @PolicyResourceType( "adjustmenttype" )
+ public interface AdjustmentTypeMetadata extends AutoScalingMetadata {}
+
+ @PolicyResourceType( "scalingpolicy" )
+ public interface ScalingPolicyMetadata extends AutoScalingMetadataWithResourceName {}
+}
View
98 clc/modules/autoscaling-common/src/main/java/com/eucalyptus/autoscaling/common/AutoScalingMetadatas.java
@@ -0,0 +1,98 @@
+/*************************************************************************
+ * Copyright 2009-2012 Eucalyptus Systems, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see http://www.gnu.org/licenses/.
+ *
+ * Please contact Eucalyptus Systems, Inc., 6755 Hollister Ave., Goleta
+ * CA 93117, USA or visit http://www.eucalyptus.com/licenses/ if you need
+ * additional information or have any questions.
+ ************************************************************************/
+package com.eucalyptus.autoscaling.common;
+
+import static com.eucalyptus.autoscaling.common.AutoScalingMetadata.AutoScalingMetadataWithResourceName;
+import java.util.Collection;
+import com.eucalyptus.util.CollectionUtils;
+import com.eucalyptus.util.RestrictedTypes;
+import com.google.common.base.Function;
+import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
+
+/**
+ *
+ */
+public class AutoScalingMetadatas {
+
+ public static <T extends AutoScalingMetadata> Function<T, String> toDisplayName( ) {
+ return new Function<T, String>( ) {
+ @Override
+ public String apply( T metadata ) {
+ return metadata == null ? null : metadata.getDisplayName( );
+ }
+ };
+ }
+
+ public static <T extends AutoScalingMetadataWithResourceName> Function<T, String> toArn( ) {
+ return new Function<T, String>( ) {
+ @Override
+ public String apply( T metadata ) {
+ return metadata == null ? null : metadata.getArn();
+ }
+ };
+ }
+
+ public static <T extends AutoScalingMetadata> Predicate<T> filterById( final Collection<String> requestedIdentifiers ) {
+ return filterByProperty( requestedIdentifiers, toDisplayName() );
+ }
+
+ public static <T extends AutoScalingMetadataWithResourceName> Predicate<T> filterByArn( final Collection<String> requestedArns ) {
+ return filterByProperty( requestedArns, toArn() );
+ }
+
+ public static <T extends AutoScalingMetadata> Predicate<T> filterByProperty( final String requestedValue,
+ final Function<? super T,String> extractor ) {
+ return filterByProperty( CollectionUtils.<String>listUnit().apply( requestedValue ), extractor );
+ }
+
+ public static <T extends AutoScalingMetadata> Predicate<T> filterByProperty( final Collection<String> requestedValues,
+ final Function<? super T,String> extractor ) {
+ return new Predicate<T>( ) {
+ @Override
+ public boolean apply( T input ) {
+ return requestedValues == null || requestedValues.isEmpty( ) || requestedValues.contains( extractor.apply( input ) );
+ }
+ };
+ }
+
+ public static <T extends AutoScalingMetadata> Predicate<T> filterPrivilegesById( final Collection<String> requestedIdentifiers ) {
+ return Predicates.and( filterById( requestedIdentifiers ), filterPrivileged() );
+ }
+
+ public static <T extends AutoScalingMetadataWithResourceName> Predicate<T> filterPrivilegesByIdOrArn( final Collection<String> requestedItems ) {
+ final Collection<String> names = AutoScalingResourceName.simpleNames( requestedItems );
+ final Collection<String> arns = AutoScalingResourceName.arns( requestedItems );
+ return Predicates.and(
+ !arns.isEmpty() && !names.isEmpty() ?
+ Predicates.<T>or(
+ AutoScalingMetadatas.<T>filterById( names ),
+ AutoScalingMetadatas.<T>filterByArn( arns ) ) :
+ !arns.isEmpty() ?
+ AutoScalingMetadatas.<T>filterByArn( arns ) :
+ AutoScalingMetadatas.<T>filterById( names ),
+ filterPrivileged() );
+ }
+
+ public static <T extends AutoScalingMetadata> Predicate<T> filterPrivileged() {
+ return RestrictedTypes.filterPrivileged();
+ }
+
+}
View
210 clc/modules/autoscaling-common/src/main/java/com/eucalyptus/autoscaling/common/AutoScalingResourceName.java
@@ -0,0 +1,210 @@
+/*************************************************************************
+ * Copyright 2009-2013 Eucalyptus Systems, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see http://www.gnu.org/licenses/.
+ *
+ * Please contact Eucalyptus Systems, Inc., 6755 Hollister Ave., Goleta
+ * CA 93117, USA or visit http://www.eucalyptus.com/licenses/ if you need
+ * additional information or have any questions.
+ ************************************************************************/
+package com.eucalyptus.autoscaling.common;
+
+import java.util.Set;
+import javax.annotation.Nullable;
+import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
+import com.google.common.base.Splitter;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Sets;
+
+/**
+ * Represents an Auto Scaling specific Amazon Resource Name (ARN)
+ *
+ * arn:aws:<service>:<region>:<namespace>:<relative-id>
+ */
+public class AutoScalingResourceName {
+
+ private static final String prefix = "arn:aws:";
+ private static final Splitter nameSpliter = Splitter.on(':');
+
+ private static final int PART_SERVICE = 2;
+ private static final int PART_NAMESPACE = 4;
+ private static final int PART_RELATIVE_ID_TYPE = 5;
+ private static final int PART_RELATIVE_ID_UUID = 6;
+ private static final int PART_RELATIVE_NAME_1 = 7;
+ private static final int PART_RELATIVE_NAME_2 = 8;
+
+ private final String resourceName;
+ private final String service;
+ private final String namespace; // account number if you don't speak ARN
+ private final String type;
+ private final String uuid;
+ private final String name1;
+ @Nullable
+ private final String name2;
+
+ public enum Type {
+ launchConfiguration( "launch configuration", false ),
+ autoScalingGroup( "auto scaling group", false ),
+ scalingPolicy( "scaling policy", true );
+
+ private final String description;
+ private final boolean scoped;
+
+ private Type( final String description,
+ final boolean scoped ) {
+ this.description = description;
+ this.scoped = scoped;
+ }
+
+ public String describe() {
+ return description;
+ }
+
+ public boolean isScoped() {
+ return scoped;
+ }
+ }
+
+ public AutoScalingResourceName( final String resourceName,
+ final String service,
+ final String namespace,
+ final String type,
+ final String uuid,
+ final String name1,
+ @Nullable final String name2 ) {
+ this.resourceName = resourceName;
+ this.service = service;
+ this.namespace = namespace;
+ this.type = type;
+ this.uuid = uuid;
+ this.name1 = toValue( name1 );
+ this.name2 = toValue( name2 );
+ }
+
+ public static AutoScalingResourceName parse( final String resourceName ) throws InvalidResourceNameException {
+ return parse( resourceName, null );
+ }
+
+ public static AutoScalingResourceName parse( final String resourceName,
+ @Nullable final Type type ) throws InvalidResourceNameException {
+ if( !resourceName.startsWith( prefix ) ) {
+ throw new InvalidResourceNameException( resourceName );
+ }
+
+ final Iterable<String> nameParts = nameSpliter.split( resourceName );
+ final int namePartCount = Iterables.size( nameParts );
+ if ( namePartCount < 8 || namePartCount > 9 ) {
+ throw new InvalidResourceNameException( resourceName );
+ }
+
+ if ( !"autoscaling".equals( Iterables.get( nameParts, PART_SERVICE ) ) ) {
+ throw new InvalidResourceNameException( resourceName );
+ }
+
+ if ( type != null && !type.name().equals( Iterables.get( nameParts, PART_RELATIVE_ID_TYPE ) ) ) {
+ throw new InvalidResourceNameException( resourceName );
+ }
+
+ return new AutoScalingResourceName(
+ resourceName,
+ Iterables.get( nameParts, PART_SERVICE ),
+ Iterables.get( nameParts, PART_NAMESPACE ),
+ Iterables.get( nameParts, PART_RELATIVE_ID_TYPE ),
+ Iterables.get( nameParts, PART_RELATIVE_ID_UUID ),
+ Iterables.get( nameParts, PART_RELATIVE_NAME_1 ),
+ namePartCount > PART_RELATIVE_NAME_2 ?
+ Iterables.get( nameParts, PART_RELATIVE_NAME_2 ) :
+ null
+ );
+ }
+
+ public String getResourceName() {
+ return resourceName;
+ }
+
+ public String getService() {
+ return service;
+ }
+
+ public String getNamespace() {
+ return namespace;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public String getUuid() {
+ return uuid;
+ }
+
+ public String getScope( final Type type ) {
+ if ( !type.isScoped() ) throw new IllegalStateException( "Type not scoped" );
+ return name1;
+ }
+
+ public String getName( final Type type ) {
+ if ( type.isScoped() ) {
+ if ( name2 == null ) throw new InvalidResourceNameException( resourceName );
+ return name2;
+ } else {
+ return name1;
+ }
+ }
+
+ public String toString() {
+ return resourceName;
+ }
+
+ public static Set<String> simpleNames( final Iterable<String> namesAndArns ) {
+ return Sets.newHashSet( Iterables.filter( namesAndArns, Predicates.not( isResourceName() ) ) );
+ }
+
+ public static Set<String> arns( final Iterable<String> namesAndArns ) {
+ return Sets.newHashSet( Iterables.filter( namesAndArns, isResourceName() ) );
+ }
+
+ public static Predicate<String> isResourceName() {
+ return ResourceNamePredicate.INSTANCE;
+ }
+
+ private String toValue( final String name ) {
+ String value = null;
+ if ( name != null ) {
+ int slashIndex = name.indexOf( '/' );
+ if ( slashIndex <= 0 || slashIndex == name.length() - 1 ) {
+ throw new InvalidResourceNameException( resourceName );
+ }
+ value = name.substring( slashIndex + 1 );
+ }
+ return value;
+ }
+
+ private enum ResourceNamePredicate implements Predicate<String> {
+ INSTANCE;
+
+ @Override
+ public boolean apply( final String value ) {
+ return value != null && value.startsWith( prefix );
+ }
+ }
+
+ public static final class InvalidResourceNameException extends RuntimeException {
+ private static final long serialVersionUID = 1L;
+
+ public InvalidResourceNameException( final String resourceName ) {
+ super( "Invalid resource name: " + resourceName );
+ }
+ }
+}
View
791 clc/modules/autoscaling-common/src/main/resources/autoscaling-binding.xml
@@ -0,0 +1,791 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2009-2013 Eucalyptus Systems, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 3 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see http://www.gnu.org/licenses/.
+
+ Please contact Eucalyptus Systems, Inc., 6755 Hollister Ave., Goleta
+ CA 93117, USA or visit http://www.eucalyptus.com/licenses/ if you need
+ additional information or have any questions.
+ -->
+<binding name="autoscaling_amazonaws_com_doc_2011_01_01" force-classes="true" add-constructors="true">
+ <namespace uri="http://autoscaling.amazonaws.com/doc/2011-01-01/" default="elements"/>
+ <mapping class="com.eucalyptus.autoscaling.common.ResponseMetadata" abstract="true">
+ <value name="RequestId" field="requestId" usage="required"/>
+ </mapping>
+ <mapping class="com.eucalyptus.autoscaling.common.Error" abstract="true">
+ <value name="Type" field="type" usage="required"/>
+ <value name="Code" field="code" usage="required"/>
+ <value name="Message" field="message" usage="required"/>
+ <structure name="Detail" field="detail" usage="required" type="com.eucalyptus.autoscaling.common.ErrorDetail"/>
+ </mapping>
+ <mapping class="com.eucalyptus.autoscaling.common.ErrorDetail" abstract="true"/>
+ <mapping name="ErrorResponse" class="com.eucalyptus.autoscaling.common.ErrorResponse">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <collection field="error">
+ <structure name="Error" type="com.eucalyptus.autoscaling.common.Error"/>
+ </collection>
+ <value name="RequestId" field="requestId" usage="required"/>
+ </mapping>
+ <mapping name="DescribeAutoScalingGroups" class="com.eucalyptus.autoscaling.common.DescribeAutoScalingGroupsType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="AutoScalingGroupNames" field="autoScalingGroupNames" usage="optional" type="com.eucalyptus.autoscaling.common.AutoScalingGroupNames"/>
+ <value name="NextToken" field="nextToken" usage="optional"/>
+ <value name="MaxRecords" field="maxRecords" usage="optional"/>
+ </mapping>
+ <mapping name="DescribeAutoScalingGroupsResponse" class="com.eucalyptus.autoscaling.common.DescribeAutoScalingGroupsResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="DescribeAutoScalingGroupsResult" field="describeAutoScalingGroupsResult" usage="required" type="com.eucalyptus.autoscaling.common.DescribeAutoScalingGroupsResult"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping class="com.eucalyptus.autoscaling.common.DescribeAutoScalingGroupsResult" abstract="true">
+ <structure name="AutoScalingGroups" field="autoScalingGroups" usage="required" type="com.eucalyptus.autoscaling.common.AutoScalingGroupsType"/>
+ <value name="NextToken" field="nextToken" usage="optional"/>
+ </mapping>
+ <mapping name="EnableMetricsCollection" class="com.eucalyptus.autoscaling.common.EnableMetricsCollectionType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <value name="AutoScalingGroupName" field="autoScalingGroupName" usage="required"/>
+ <structure name="Metrics" field="metrics" usage="optional" type="com.eucalyptus.autoscaling.common.Metrics"/>
+ <value name="Granularity" field="granularity" usage="required"/>
+ </mapping>
+ <mapping name="EnableMetricsCollectionResponse" class="com.eucalyptus.autoscaling.common.EnableMetricsCollectionResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping name="ResumeProcesses" class="com.eucalyptus.autoscaling.common.ResumeProcessesType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <value name="AutoScalingGroupName" field="autoScalingGroupName" usage="required"/>
+ <structure name="ScalingProcesses" field="scalingProcesses" usage="optional" type="com.eucalyptus.autoscaling.common.ProcessNames"/>
+ </mapping>
+ <mapping name="ResumeProcessesResponse" class="com.eucalyptus.autoscaling.common.ResumeProcessesResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping name="DeleteLaunchConfiguration" class="com.eucalyptus.autoscaling.common.DeleteLaunchConfigurationType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <value name="LaunchConfigurationName" field="launchConfigurationName" usage="required"/>
+ </mapping>
+ <mapping name="DeleteLaunchConfigurationResponse" class="com.eucalyptus.autoscaling.common.DeleteLaunchConfigurationResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping name="DescribePolicies" class="com.eucalyptus.autoscaling.common.DescribePoliciesType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <value name="AutoScalingGroupName" field="autoScalingGroupName" usage="optional"/>
+ <structure name="PolicyNames" field="policyNames" usage="optional" type="com.eucalyptus.autoscaling.common.PolicyNames"/>
+ <value name="NextToken" field="nextToken" usage="optional"/>
+ <value name="MaxRecords" field="maxRecords" usage="optional"/>
+ </mapping>
+ <mapping name="DescribePoliciesResponse" class="com.eucalyptus.autoscaling.common.DescribePoliciesResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="DescribePoliciesResult" field="describePoliciesResult" usage="required" type="com.eucalyptus.autoscaling.common.DescribePoliciesResult"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping class="com.eucalyptus.autoscaling.common.DescribePoliciesResult" abstract="true">
+ <structure name="ScalingPolicies" field="scalingPolicies" usage="optional" type="com.eucalyptus.autoscaling.common.ScalingPolicies"/>
+ <value name="NextToken" field="nextToken" usage="optional"/>
+ </mapping>
+ <mapping name="DescribeScalingProcessTypes" class="com.eucalyptus.autoscaling.common.DescribeScalingProcessTypesType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ </mapping>
+ <mapping name="DescribeScalingProcessTypesResponse" class="com.eucalyptus.autoscaling.common.DescribeScalingProcessTypesResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="DescribeScalingProcessTypesResult" field="describeScalingProcessTypesResult" usage="required" type="com.eucalyptus.autoscaling.common.DescribeScalingProcessTypesResult"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping class="com.eucalyptus.autoscaling.common.DescribeScalingProcessTypesResult" abstract="true">
+ <structure name="Processes" field="processes" usage="optional" type="com.eucalyptus.autoscaling.common.Processes"/>
+ </mapping>
+ <mapping name="CreateAutoScalingGroup" class="com.eucalyptus.autoscaling.common.CreateAutoScalingGroupType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <value name="AutoScalingGroupName" field="autoScalingGroupName" usage="required"/>
+ <value name="LaunchConfigurationName" field="launchConfigurationName" usage="required"/>
+ <value name="MinSize" field="minSize" usage="required"/>
+ <value name="MaxSize" field="maxSize" usage="required"/>
+ <value name="DesiredCapacity" field="desiredCapacity" usage="optional"/>
+ <value name="DefaultCooldown" field="defaultCooldown" usage="optional"/>
+ <structure name="AvailabilityZones" field="availabilityZones" usage="required" type="com.eucalyptus.autoscaling.common.AvailabilityZones"/>
+ <structure name="LoadBalancerNames" field="loadBalancerNames" usage="optional" type="com.eucalyptus.autoscaling.common.LoadBalancerNames"/>
+ <value name="HealthCheckType" field="healthCheckType" usage="optional"/>
+ <value name="HealthCheckGracePeriod" field="healthCheckGracePeriod" usage="optional"/>
+ <value name="PlacementGroup" field="placementGroup" usage="optional"/>
+ <value name="VPCZoneIdentifier" field="vpcZoneIdentifier" usage="optional"/>
+ <structure name="TerminationPolicies" field="terminationPolicies" usage="optional" type="com.eucalyptus.autoscaling.common.TerminationPolicies"/>
+ <structure name="Tags" field="tags" usage="optional" type="com.eucalyptus.autoscaling.common.Tags"/>
+ </mapping>
+ <mapping name="CreateAutoScalingGroupResponse" class="com.eucalyptus.autoscaling.common.CreateAutoScalingGroupResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping name="DescribeScalingActivities" class="com.eucalyptus.autoscaling.common.DescribeScalingActivitiesType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="ActivityIds" field="activityIds" usage="optional" type="com.eucalyptus.autoscaling.common.ActivityIds"/>
+ <value name="AutoScalingGroupName" field="autoScalingGroupName" usage="optional"/>
+ <value name="MaxRecords" field="maxRecords" usage="optional"/>
+ <value name="NextToken" field="nextToken" usage="optional"/>
+ </mapping>
+ <mapping name="DescribeScalingActivitiesResponse" class="com.eucalyptus.autoscaling.common.DescribeScalingActivitiesResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="DescribeScalingActivitiesResult" field="describeScalingActivitiesResult" usage="required" type="com.eucalyptus.autoscaling.common.DescribeScalingActivitiesResult"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping class="com.eucalyptus.autoscaling.common.DescribeScalingActivitiesResult" abstract="true">
+ <structure name="Activities" field="activities" usage="required" type="com.eucalyptus.autoscaling.common.Activities"/>
+ <value name="NextToken" field="nextToken" usage="optional"/>
+ </mapping>
+ <mapping name="DescribeNotificationConfigurations" class="com.eucalyptus.autoscaling.common.DescribeNotificationConfigurationsType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="AutoScalingGroupNames" field="autoScalingGroupNames" usage="optional" type="com.eucalyptus.autoscaling.common.AutoScalingGroupNames"/>
+ <value name="NextToken" field="nextToken" usage="optional"/>
+ <value name="MaxRecords" field="maxRecords" usage="optional"/>
+ </mapping>
+ <mapping name="DescribeNotificationConfigurationsResponse" class="com.eucalyptus.autoscaling.common.DescribeNotificationConfigurationsResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="DescribeNotificationConfigurationsResult" field="describeNotificationConfigurationsResult" usage="required" type="com.eucalyptus.autoscaling.common.DescribeNotificationConfigurationsResult"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping class="com.eucalyptus.autoscaling.common.DescribeNotificationConfigurationsResult" abstract="true">
+ <structure name="NotificationConfigurations" field="notificationConfigurations" usage="required" type="com.eucalyptus.autoscaling.common.NotificationConfigurations"/>
+ <value name="NextToken" field="nextToken" usage="optional"/>
+ </mapping>
+ <mapping name="DescribeTerminationPolicyTypes" class="com.eucalyptus.autoscaling.common.DescribeTerminationPolicyTypesType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ </mapping>
+ <mapping name="DescribeTerminationPolicyTypesResponse" class="com.eucalyptus.autoscaling.common.DescribeTerminationPolicyTypesResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="DescribeTerminationPolicyTypesResult" field="describeTerminationPolicyTypesResult" usage="required" type="com.eucalyptus.autoscaling.common.DescribeTerminationPolicyTypesResult"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping class="com.eucalyptus.autoscaling.common.DescribeTerminationPolicyTypesResult" abstract="true">
+ <structure name="TerminationPolicyTypes" field="terminationPolicyTypes" usage="optional" type="com.eucalyptus.autoscaling.common.TerminationPolicies"/>
+ </mapping>
+ <mapping name="DescribeTags" class="com.eucalyptus.autoscaling.common.DescribeTagsType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="Filters" field="filters" usage="optional" type="com.eucalyptus.autoscaling.common.Filters"/>
+ <value name="NextToken" field="nextToken" usage="optional"/>
+ <value name="MaxRecords" field="maxRecords" usage="optional"/>
+ </mapping>
+ <mapping name="DescribeTagsResponse" class="com.eucalyptus.autoscaling.common.DescribeTagsResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="DescribeTagsResult" field="describeTagsResult" usage="required" type="com.eucalyptus.autoscaling.common.DescribeTagsResult"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping class="com.eucalyptus.autoscaling.common.DescribeTagsResult" abstract="true">
+ <structure name="Tags" field="tags" usage="optional" type="com.eucalyptus.autoscaling.common.TagDescriptionList"/>
+ <value name="NextToken" field="nextToken" usage="optional"/>
+ </mapping>
+ <mapping name="ExecutePolicy" class="com.eucalyptus.autoscaling.common.ExecutePolicyType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <value name="AutoScalingGroupName" field="autoScalingGroupName" usage="optional"/>
+ <value name="PolicyName" field="policyName" usage="required"/>
+ <value name="HonorCooldown" field="honorCooldown" usage="optional"/>
+ </mapping>
+ <mapping name="ExecutePolicyResponse" class="com.eucalyptus.autoscaling.common.ExecutePolicyResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping name="DeleteTags" class="com.eucalyptus.autoscaling.common.DeleteTagsType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="Tags" field="tags" usage="required" type="com.eucalyptus.autoscaling.common.Tags"/>
+ </mapping>
+ <mapping name="DeleteTagsResponse" class="com.eucalyptus.autoscaling.common.DeleteTagsResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping name="PutScalingPolicy" class="com.eucalyptus.autoscaling.common.PutScalingPolicyType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <value name="AutoScalingGroupName" field="autoScalingGroupName" usage="required"/>
+ <value name="PolicyName" field="policyName" usage="required"/>
+ <value name="ScalingAdjustment" field="scalingAdjustment" usage="required"/>
+ <value name="AdjustmentType" field="adjustmentType" usage="required"/>
+ <value name="Cooldown" field="cooldown" usage="optional"/>
+ <value name="MinAdjustmentStep" field="minAdjustmentStep" usage="optional"/>
+ </mapping>
+ <mapping name="PutScalingPolicyResponse" class="com.eucalyptus.autoscaling.common.PutScalingPolicyResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="PutScalingPolicyResult" field="putScalingPolicyResult" usage="required" type="com.eucalyptus.autoscaling.common.PutScalingPolicyResult"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping class="com.eucalyptus.autoscaling.common.PutScalingPolicyResult" abstract="true">
+ <value name="PolicyARN" field="policyARN" usage="optional"/>
+ </mapping>
+ <mapping name="PutNotificationConfiguration" class="com.eucalyptus.autoscaling.common.PutNotificationConfigurationType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <value name="AutoScalingGroupName" field="autoScalingGroupName" usage="required"/>
+ <value name="TopicARN" field="topicARN" usage="required"/>
+ <structure name="NotificationTypes" field="notificationTypes" usage="required" type="com.eucalyptus.autoscaling.common.AutoScalingNotificationTypes"/>
+ </mapping>
+ <mapping name="PutNotificationConfigurationResponse" class="com.eucalyptus.autoscaling.common.PutNotificationConfigurationResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping name="DeletePolicy" class="com.eucalyptus.autoscaling.common.DeletePolicyType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <value name="AutoScalingGroupName" field="autoScalingGroupName" usage="optional"/>
+ <value name="PolicyName" field="policyName" usage="required"/>
+ </mapping>
+ <mapping name="DeletePolicyResponse" class="com.eucalyptus.autoscaling.common.DeletePolicyResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping name="DeleteNotificationConfiguration" class="com.eucalyptus.autoscaling.common.DeleteNotificationConfigurationType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <value name="AutoScalingGroupName" field="autoScalingGroupName" usage="required"/>
+ <value name="TopicARN" field="topicARN" usage="required"/>
+ </mapping>
+ <mapping name="DeleteNotificationConfigurationResponse" class="com.eucalyptus.autoscaling.common.DeleteNotificationConfigurationResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping name="DeleteScheduledAction" class="com.eucalyptus.autoscaling.common.DeleteScheduledActionType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <value name="AutoScalingGroupName" field="autoScalingGroupName" usage="optional"/>
+ <value name="ScheduledActionName" field="scheduledActionName" usage="required"/>
+ </mapping>
+ <mapping name="DeleteScheduledActionResponse" class="com.eucalyptus.autoscaling.common.DeleteScheduledActionResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping name="SetInstanceHealth" class="com.eucalyptus.autoscaling.common.SetInstanceHealthType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <value name="InstanceId" field="instanceId" usage="required"/>
+ <value name="HealthStatus" field="healthStatus" usage="required"/>
+ <value name="ShouldRespectGracePeriod" field="shouldRespectGracePeriod" usage="optional"/>
+ </mapping>
+ <mapping name="SetInstanceHealthResponse" class="com.eucalyptus.autoscaling.common.SetInstanceHealthResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping name="DescribeAutoScalingNotificationTypes" class="com.eucalyptus.autoscaling.common.DescribeAutoScalingNotificationTypesType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ </mapping>
+ <mapping name="DescribeAutoScalingNotificationTypesResponse" class="com.eucalyptus.autoscaling.common.DescribeAutoScalingNotificationTypesResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="DescribeAutoScalingNotificationTypesResult" field="describeAutoScalingNotificationTypesResult" usage="required" type="com.eucalyptus.autoscaling.common.DescribeAutoScalingNotificationTypesResult"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping class="com.eucalyptus.autoscaling.common.DescribeAutoScalingNotificationTypesResult" abstract="true">
+ <structure name="AutoScalingNotificationTypes" field="autoScalingNotificationTypes" usage="optional" type="com.eucalyptus.autoscaling.common.AutoScalingNotificationTypes"/>
+ </mapping>
+ <mapping name="CreateOrUpdateTags" class="com.eucalyptus.autoscaling.common.CreateOrUpdateTagsType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="Tags" field="tags" usage="required" type="com.eucalyptus.autoscaling.common.Tags"/>
+ </mapping>
+ <mapping name="CreateOrUpdateTagsResponse" class="com.eucalyptus.autoscaling.common.CreateOrUpdateTagsResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping name="SuspendProcesses" class="com.eucalyptus.autoscaling.common.SuspendProcessesType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <value name="AutoScalingGroupName" field="autoScalingGroupName" usage="required"/>
+ <structure name="ScalingProcesses" field="scalingProcesses" usage="optional" type="com.eucalyptus.autoscaling.common.ProcessNames"/>
+ </mapping>
+ <mapping name="SuspendProcessesResponse" class="com.eucalyptus.autoscaling.common.SuspendProcessesResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping name="DescribeAutoScalingInstances" class="com.eucalyptus.autoscaling.common.DescribeAutoScalingInstancesType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="InstanceIds" field="instanceIds" usage="optional" type="com.eucalyptus.autoscaling.common.InstanceIds"/>
+ <value name="MaxRecords" field="maxRecords" usage="optional"/>
+ <value name="NextToken" field="nextToken" usage="optional"/>
+ </mapping>
+ <mapping name="DescribeAutoScalingInstancesResponse" class="com.eucalyptus.autoscaling.common.DescribeAutoScalingInstancesResponseType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <structure name="DescribeAutoScalingInstancesResult" field="describeAutoScalingInstancesResult" usage="required" type="com.eucalyptus.autoscaling.common.DescribeAutoScalingInstancesResult"/>
+ <structure name="ResponseMetadata" field="responseMetadata" usage="required" type="com.eucalyptus.autoscaling.common.ResponseMetadata"/>
+ </mapping>
+ <mapping class="com.eucalyptus.autoscaling.common.DescribeAutoScalingInstancesResult" abstract="true">
+ <structure name="AutoScalingInstances" field="autoScalingInstances" usage="optional" type="com.eucalyptus.autoscaling.common.AutoScalingInstances"/>
+ <value name="NextToken" field="nextToken" usage="optional"/>
+ </mapping>
+ <mapping name="CreateLaunchConfiguration" class="com.eucalyptus.autoscaling.common.CreateLaunchConfigurationType">
+ <structure map-as="com.eucalyptus.autoscaling.common.AutoScalingMessage"/>
+ <value name="LaunchConfigurationName" field="launchConfigurationName" usage="required"/>
+ <value name="ImageId" field="imageId" usage="required"/>
+ <value name="KeyName" field="keyName" usage="optional"/>
+ <structure name="SecurityGroups" field="securityGroups" usage="optional