Merge lp://qastaging/~kirkland/eucalyptus/powernap-fix into lp://qastaging/eucalyptus/1.5

Proposed by Dustin Kirkland 
Status: Rejected
Rejected by: Daniel Nurmi
Proposed branch: lp://qastaging/~kirkland/eucalyptus/powernap-fix
Merge into: lp://qastaging/eucalyptus/1.5
Diff against target: 146095 lines (+114810/-19216) (has conflicts)
854 files modified
.bzrignore (+28/-1)
CHANGELOG (+80/-0)
INSTALL (+207/-11)
Makedefs.in (+8/-4)
Makefile (+18/-36)
README (+29/-27)
VERSION (+1/-1)
clc/.classpath (+119/-0)
clc/.project (+33/-0)
clc/.settings/org.codehaus.groovy.eclipse.preferences.prefs (+4/-0)
clc/.settings/org.eclipse.jdt.core.prefs (+13/-0)
clc/.settings/org.eclipse.jdt.launching.prefs (+3/-0)
clc/Makefile (+47/-4)
clc/build.xml (+252/-182)
clc/modules/authentication/build.xml (+70/-0)
clc/modules/authentication/src/main/java/com/eucalyptus/auth/CredentialEntities.groovy (+231/-0)
clc/modules/authentication/src/main/java/com/eucalyptus/auth/CredentialProvider.java (+347/-0)
clc/modules/authentication/src/main/java/com/eucalyptus/auth/Credentials.java (+107/-0)
clc/modules/authentication/src/main/java/com/eucalyptus/auth/NoSuchUserException.java (+88/-0)
clc/modules/authentication/src/main/java/com/eucalyptus/auth/RemoteComponentCredentialBootstrapper.java (+120/-0)
clc/modules/authentication/src/main/java/com/eucalyptus/auth/SystemCredentialProvider.java (+195/-0)
clc/modules/authentication/src/main/java/com/eucalyptus/auth/UserExistsException.java (+84/-0)
clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/AbstractKeyStore.java (+208/-0)
clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/EucaKeyStore.java (+115/-0)
clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/Hashes.java (+267/-0)
clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/KeyTool.java (+156/-0)
clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/SslSetup.java (+212/-0)
clc/modules/authentication/src/main/resources/ehcache-auth.xml (+68/-0)
clc/modules/axis2-transport/resources/META-INF/spring.handlers (+0/-1)
clc/modules/axis2-transport/resources/META-INF/spring.schemas (+0/-1)
clc/modules/bootstrap/Makefile (+58/-0)
clc/modules/bootstrap/arguments.ggo (+49/-0)
clc/modules/bootstrap/eucalyptus-bootstrap.c (+643/-0)
clc/modules/bootstrap/eucalyptus-bootstrap.h (+152/-0)
clc/modules/bootstrap/eucalyptus-opts.c (+1649/-0)
clc/modules/bootstrap/eucalyptus-opts.h (+303/-0)
clc/modules/cloud/build.xml (+71/-0)
clc/modules/cloud/src/main/resources/com.eucalyptus.CloudServiceProvider (+7/-0)
clc/modules/cloud/src/main/resources/eucalyptus-cloud-model.xml (+71/-0)
clc/modules/cloud/src/main/resources/eucalyptus-cloud-services.xml (+76/-0)
clc/modules/cloud/src/main/resources/eucalyptus-interface.xml (+151/-0)
clc/modules/cloud/src/main/resources/eucalyptus-mule.xml (+107/-0)
clc/modules/cloud/src/main/resources/eucalyptus-runtime.xml (+184/-0)
clc/modules/cloud/src/main/resources/eucalyptus-services.xml (+102/-0)
clc/modules/cloud/src/main/resources/eucalyptus-storage.xml (+115/-0)
clc/modules/cloud/src/main/resources/eucalyptus-userdata.xml (+106/-0)
clc/modules/cloud/src/main/resources/eucalyptus-verification.xml (+153/-0)
clc/modules/cluster-manager/build.xml (+70/-16)
clc/modules/cluster-manager/cluster-manager.iml (+27/-0)
clc/modules/cluster-manager/conf/rules/describe/instances.drl (+0/-11)
clc/modules/cluster-manager/conf/rules/describe/state-update.drl (+0/-14)
clc/modules/cluster-manager/conf/scripts/LeastFullFirst.groovy (+34/-0)
clc/modules/cluster-manager/conf/scripts/vmstate.groovy (+12/-0)
clc/modules/cluster-manager/pom.xml (+67/-1)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/address/AbstractSystemAddressManager.java (+188/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/address/Address.java (+466/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/address/AddressCategory.java (+35/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/address/Addresses.java (+298/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/address/DynamicSystemAddressManager.java (+75/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/address/NullSystemAddressManager.java (+42/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/address/StaticSystemAddressManager.java (+95/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/Callback.java (+8/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/Cluster.java (+287/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/ClusterBootstrapper.java (+224/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/ClusterMessageQueue.java (+144/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/ClusterNodeState.java (+231/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/ClusterState.java (+262/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/ClusterThreadGroup.java (+107/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/Clusters.java (+159/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/FailureCallback.java (+8/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/Networks.java (+30/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/SuccessCallback.java (+9/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/UnconditionalCallback.java (+18/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/event/ClusterEvents.groovy (+10/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/handlers/AbstractClusterMessageDispatcher.java (+279/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/handlers/AddressStateHandler.java (+95/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/handlers/ClusterCertificateHandler.java (+100/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/handlers/LogStateHandler.java (+31/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/handlers/NetworkStateHandler.java (+98/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/handlers/ResourceStateHandler.java (+60/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/handlers/VmStateHandler.java (+82/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/cluster/util/ClusterUtil.java (+86/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/net/util/ClusterAddressInfo.groovy (+41/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/sla/AddressAllocator.groovy (+41/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/sla/ClusterAllocator.java (+309/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/sla/NodeResourceAllocator.java (+60/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/sla/PrivateNetworkAllocator.groovy (+44/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/sla/ResourceAllocator.java (+12/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/sla/SubnetIndexAllocator.groovy (+39/-0)
clc/modules/cluster-manager/src/main/java/com/eucalyptus/sla/VmAdmissionControl.java (+150/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/AssignAddressCallback.java (+166/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/ClusterEndpoint.java (+294/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/ClusterEnvelope.java (+105/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/ConfigureNetworkCallback.java (+102/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/ConsoleOutputCallback.java (+112/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/EucalyptusWSException.java (+90/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/MultiClusterCallback.java (+36/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/NetworkAlreadyExistsException.java (+68/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/NoSuchTokenException.java (+68/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/QueuedEvent.java (+128/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/QueuedEventCallback.java (+249/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/QueuedLogEvent.java (+74/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/RebootCallback.java (+93/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/Reservation.java (+181/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/Reservations.java (+106/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/StartNetworkCallback.java (+127/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/StopNetworkCallback.java (+124/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/TerminateCallback.java (+99/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/UnassignAddressCallback.groovy (+149/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/VmInstance.java (+439/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/VmInstances.java (+156/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/VmRunCallback.java (+170/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/VmTypeAvailability.java (+166/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/VmTypeVerify.java (+91/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/VmTypes.java (+152/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/VolumeAttachCallback.java (+117/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/cluster/VolumeDetachCallback.java (+103/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/ws/AddressManager.java (+252/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/ws/CreateVmInstances.java (+118/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/ws/SystemState.java (+489/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/ws/VmControl.java (+131/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/ws/VmMetadata.java (+89/-0)
clc/modules/cluster-manager/src/main/java/edu/ucsb/eucalyptus/cloud/ws/VmReplyTransform.java (+97/-0)
clc/modules/configuration/build.xml (+70/-0)
clc/modules/configuration/conf/scripts/describe_nodes.groovy (+24/-0)
clc/modules/configuration/src/main/java/com/eucalyptus/config/Configuration.java (+331/-0)
clc/modules/configuration/src/main/java/com/eucalyptus/config/ConfigurationEntities.groovy (+295/-0)
clc/modules/configuration/src/main/java/com/eucalyptus/config/ConfigurationUtil.java (+181/-0)
clc/modules/configuration/src/main/java/com/eucalyptus/config/NoSuchComponentException.java (+23/-0)
clc/modules/configuration/src/main/java/com/eucalyptus/event/ComponentEvent.java (+38/-0)
clc/modules/configuration/src/main/java/com/eucalyptus/event/StartComponentEvent.java (+41/-0)
clc/modules/configuration/src/main/java/com/eucalyptus/event/StopComponentEvent.java (+31/-0)
clc/modules/configuration/src/main/resources/com.eucalyptus.CloudServiceProvider (+2/-0)
clc/modules/configuration/src/main/resources/ehcache-config.xml (+68/-0)
clc/modules/configuration/src/main/resources/eucalyptus-configuration.xml (+88/-0)
clc/modules/core/build.xml (+71/-0)
clc/modules/core/conf/scripts/Import_150.groovy (+561/-0)
clc/modules/core/conf/scripts/Import_152.groovy (+584/-0)
clc/modules/core/conf/scripts/Import_161.groovy (+126/-0)
clc/modules/core/core.iml (+19/-0)
clc/modules/core/pom.xml (+66/-0)
clc/modules/core/src/main/java/com/eucalyptus/bootstrap/RemoteDatabaseBootstrapper.java (+102/-0)
clc/modules/core/src/main/java/com/eucalyptus/event/SystemConfigurationEvent.java (+11/-0)
clc/modules/core/src/main/java/com/eucalyptus/util/DNSProperties.java (+97/-0)
clc/modules/core/src/main/java/com/eucalyptus/util/NotEnoughResourcesAvailable.java (+81/-0)
clc/modules/core/src/main/java/com/eucalyptus/util/StorageProperties.java (+170/-0)
clc/modules/core/src/main/java/com/eucalyptus/util/WalrusProperties.java (+235/-0)
clc/modules/core/src/main/java/com/eucalyptus/util/WalrusUtil.java (+122/-0)
clc/modules/core/src/main/java/com/eucalyptus/ws/util/Messaging.java (+114/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/StartupChecks.java (+250/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/AccessDeniedException.java (+100/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/BucketAlreadyExistsException.java (+91/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/BucketAlreadyOwnedByYouException.java (+91/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/BucketNotEmptyException.java (+97/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/DecryptionFailedException.java (+92/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/EntityAlreadyExistsException.java (+94/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/EntityTooLargeException.java (+101/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/EucalyptusInvalidRequestException.java (+90/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/ImageAlreadyExistsException.java (+91/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/InlineDataTooLargeException.java (+91/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/InvalidArgumentException.java (+91/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/InvalidRangeException.java (+91/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/InvalidTargetBucketForLoggingException.java (+93/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/NoSuchBucketException.java (+93/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/NoSuchEntityException.java (+93/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/NoSuchSnapshotException.java (+95/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/NoSuchVolumeException.java (+94/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/NotAuthorizedException.java (+91/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/NotImplementedException.java (+91/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/NotModifiedException.java (+91/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/NotReadyException.java (+90/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/PreconditionFailedException.java (+98/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/SnapshotInUseException.java (+95/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/TooManyBucketsException.java (+92/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/VolumeAlreadyExistsException.java (+94/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/VolumeInUseException.java (+94/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/VolumeNotReadyException.java (+94/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/WalrusException.java (+143/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/AOEMetaInfo.java (+104/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/AOEVolumeInfo.java (+111/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/ARecordInfo.java (+163/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/AttachedVolumeInfo.java (+132/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/BucketInfo.java (+514/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/CNAMERecordInfo.java (+165/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/CertificateInfo.java (+125/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/ClusterInfo.java (+226/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/Counters.java (+169/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/GrantInfo.java (+236/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/ISCSIMetaInfo.java (+124/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/ISCSIVolumeInfo.java (+129/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/ImageCacheInfo.java (+200/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/ImageInfo.java (+357/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/ImagePermissionInfo.java (+117/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/LVMMetaInfo.java (+128/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/LVMVolumeInfo.java (+229/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/MetaDataInfo.java (+162/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/NSRecordInfo.java (+166/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/ObjectInfo.java (+517/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/ProductCode.java (+120/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/SOARecordInfo.java (+226/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/SnapshotInfo.java (+208/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/StorageInfo.java (+206/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/StorageStatsInfo.java (+155/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/SystemConfiguration.java (+240/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/TorrentInfo.java (+157/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/UserGroupInfo.java (+158/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/UserInfo.java (+334/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/VmType.java (+214/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/VolumeInfo.java (+204/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/WalrusInfo.java (+185/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/WalrusSnapshotInfo.java (+142/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/WalrusStatsInfo.java (+149/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/entities/ZoneInfo.java (+121/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/exceptions/ExceptionList.java (+114/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/state/AbstractIsomorph.java (+136/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/state/AlreadyExistsException.java (+72/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/state/DoesNotExistException.java (+72/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/state/State.java (+68/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/cloud/state/WeakInteraction.java (+107/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/util/Admin.java (+125/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/util/CaseInsensitiveMap.java (+146/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/util/ErrorFactory.java (+96/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/util/EucaSemaphore.java (+88/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/util/EucaSemaphoreDirectory.java (+103/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/util/EucalyptusProperties.java (+261/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/util/ReplyCoordinator.java (+157/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/util/StreamConsumer.java (+119/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/util/SystemUtil.java (+103/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/util/UserManagement.java (+150/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/util/WalrusDataMessage.java (+162/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/util/WalrusDataMessenger.java (+131/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/util/WalrusDataQueue.java (+88/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/util/WalrusMonitor.java (+91/-0)
clc/modules/core/src/main/java/edu/ucsb/eucalyptus/util/XMLParser.java (+230/-0)
clc/modules/core/src/main/java/org/hsqldb/HsqlSocketFactorySecure.java (+94/-0)
clc/modules/core/src/main/resources/ehcache.xml (+68/-0)
clc/modules/core/src/main/resources/log4j.xml (+214/-0)
clc/modules/crypto/src/javax/crypto/BadPaddingException.java (+0/-60)
clc/modules/crypto/src/javax/crypto/Cipher.java (+0/-2258)
clc/modules/crypto/src/javax/crypto/CipherInputStream.java (+0/-322)
clc/modules/crypto/src/javax/crypto/CipherOutputStream.java (+0/-213)
clc/modules/crypto/src/javax/crypto/CipherSpi.java (+0/-895)
clc/modules/crypto/src/javax/crypto/CryptoAllPermission.java (+0/-179)
clc/modules/crypto/src/javax/crypto/CryptoPermission.java (+0/-545)
clc/modules/crypto/src/javax/crypto/CryptoPermissions.java (+0/-479)
clc/modules/crypto/src/javax/crypto/CryptoPolicyParser.java (+0/-707)
clc/modules/crypto/src/javax/crypto/EncryptedPrivateKeyInfo.java (+0/-448)
clc/modules/crypto/src/javax/crypto/ExemptionMechanism.java (+0/-486)
clc/modules/crypto/src/javax/crypto/ExemptionMechanismException.java (+0/-59)
clc/modules/crypto/src/javax/crypto/ExemptionMechanismSpi.java (+0/-170)
clc/modules/crypto/src/javax/crypto/IllegalBlockSizeException.java (+0/-60)
clc/modules/crypto/src/javax/crypto/JceSecurity.java (+0/-92)
clc/modules/crypto/src/javax/crypto/KeyAgreement.java (+0/-625)
clc/modules/crypto/src/javax/crypto/KeyAgreementSpi.java (+0/-204)
clc/modules/crypto/src/javax/crypto/KeyGenerator.java (+0/-526)
clc/modules/crypto/src/javax/crypto/KeyGeneratorSpi.java (+0/-86)
clc/modules/crypto/src/javax/crypto/Mac.java (+0/-643)
clc/modules/crypto/src/javax/crypto/MacSpi.java (+0/-153)
clc/modules/crypto/src/javax/crypto/NoSuchPaddingException.java (+0/-61)
clc/modules/crypto/src/javax/crypto/NullCipher.java (+0/-44)
clc/modules/crypto/src/javax/crypto/NullCipherSpi.java (+0/-113)
clc/modules/crypto/src/javax/crypto/SealedObject.java (+0/-497)
clc/modules/crypto/src/javax/crypto/SecretKey.java (+0/-58)
clc/modules/crypto/src/javax/crypto/SecretKeyFactory.java (+0/-415)
clc/modules/crypto/src/javax/crypto/SecretKeyFactorySpi.java (+0/-108)
clc/modules/crypto/src/javax/crypto/ShortBufferException.java (+0/-61)
clc/modules/database/build.xml (+71/-0)
clc/modules/database/conf/scripts/after_database.groovy (+37/-0)
clc/modules/database/conf/scripts/after_persistence.groovy (+3/-0)
clc/modules/database/conf/scripts/before_database.groovy (+19/-0)
clc/modules/database/conf/scripts/caches.groovy (+8/-0)
clc/modules/database/conf/scripts/entities.groovy (+33/-0)
clc/modules/database/conf/scripts/pools.groovy (+30/-0)
clc/modules/database/src/main/java/com/eucalyptus/bootstrap/DatabaseConfig.java (+109/-0)
clc/modules/database/src/main/java/com/eucalyptus/bootstrap/LocalDatabaseBootstrapper.java (+247/-0)
clc/modules/database/src/main/java/com/eucalyptus/util/DatabaseUtil.java (+109/-0)
clc/modules/database/src/main/java/com/eucalyptus/util/EntityWrapper.java (+233/-0)
clc/modules/database/src/main/java/com/eucalyptus/util/TxHandle.java (+198/-0)
clc/modules/distribution/bin-assembly.xml (+65/-0)
clc/modules/distribution/distribution.iml (+49/-0)
clc/modules/distribution/lib-assembly.xml (+65/-0)
clc/modules/distribution/modules-assembly.xml (+65/-0)
clc/modules/distribution/pom.xml (+205/-0)
clc/modules/dns/build.xml (+68/-0)
clc/modules/dns/dns.iml (+18/-0)
clc/modules/dns/src/main/java/com/eucalyptus/bootstrap/DNSBootstrapper.java (+117/-0)
clc/modules/dns/src/main/java/com/eucalyptus/cloud/ws/ConnectionHandler.java (+474/-0)
clc/modules/dns/src/main/java/com/eucalyptus/cloud/ws/ConnectionHandlerFactory.java (+81/-0)
clc/modules/dns/src/main/java/com/eucalyptus/cloud/ws/DNSControl.java (+327/-0)
clc/modules/dns/src/main/java/com/eucalyptus/cloud/ws/TCPHandler.java (+115/-0)
clc/modules/dns/src/main/java/com/eucalyptus/cloud/ws/TCPListener.java (+110/-0)
clc/modules/dns/src/main/java/com/eucalyptus/cloud/ws/UDPHandler.java (+136/-0)
clc/modules/dns/src/main/java/com/eucalyptus/cloud/ws/UDPListener.java (+97/-0)
clc/modules/dns/src/main/java/com/eucalyptus/cloud/ws/ZoneManager.java (+306/-0)
clc/modules/dns/src/main/java/com/eucalyptus/cloud/ws/tests/DNSControlTest.java (+92/-0)
clc/modules/dns/src/main/java/com/eucalyptus/cloud/ws/tests/RemoveARecordTest.java (+89/-0)
clc/modules/dns/src/main/java/com/eucalyptus/dns/Cache.java (+928/-0)
clc/modules/dns/src/main/java/com/eucalyptus/dns/SetResponse.java (+276/-0)
clc/modules/dns/src/main/java/com/eucalyptus/dns/TransientZone.java (+178/-0)
clc/modules/dns/src/main/java/com/eucalyptus/dns/Zone.java (+630/-0)
clc/modules/dns/src/main/java/com/eucalyptus/ic/DNS.java (+101/-0)
clc/modules/dns/src/main/resources/com.eucalyptus.CloudServiceProvider (+3/-0)
clc/modules/dns/src/main/resources/dns-model.xml (+130/-0)
clc/modules/dns/src/main/resources/dns-services.xml (+88/-0)
clc/modules/group-manager/build.xml (+65/-15)
clc/modules/group-manager/group-manager.iml (+26/-0)
clc/modules/group-manager/pom.xml (+66/-0)
clc/modules/group-manager/security-groups-manager.iml (+104/-0)
clc/modules/group-manager/src/main/java/com/eucalyptus/network/NetworkGroupManager.java (+186/-0)
clc/modules/group-manager/src/main/java/com/eucalyptus/network/NetworkGroupUtil.java (+210/-0)
clc/modules/image-manager/build.xml (+65/-15)
clc/modules/image-manager/image-manager.iml (+35/-0)
clc/modules/image-manager/pom.xml (+66/-0)
clc/modules/image-manager/src/main/java/com/eucalyptus/images/util/ImageUtil.java (+481/-0)
clc/modules/image-manager/src/main/java/com/eucalyptus/images/util/StorageUtil.java (+124/-0)
clc/modules/image-manager/src/main/java/com/eucalyptus/images/util/WalrusUtil.java (+204/-0)
clc/modules/image-manager/src/main/java/edu/ucsb/eucalyptus/cloud/state/Snapshot.java (+155/-0)
clc/modules/image-manager/src/main/java/edu/ucsb/eucalyptus/cloud/state/Volume.java (+188/-0)
clc/modules/image-manager/src/main/java/edu/ucsb/eucalyptus/cloud/ws/ImageManager.java (+522/-0)
clc/modules/image-manager/src/main/java/edu/ucsb/eucalyptus/cloud/ws/SnapshotManager.java (+206/-0)
clc/modules/image-manager/src/main/java/edu/ucsb/eucalyptus/cloud/ws/VolumeManager.java (+363/-0)
clc/modules/image-manager/src/main/java/edu/ucsb/eucalyptus/cloud/ws/tests/XMLParserTest.java (+92/-0)
clc/modules/image-manager/src/main/resources/ehcache-volumes.xml (+68/-0)
clc/modules/interface/build.xml (+65/-15)
clc/modules/interface/interface.iml (+21/-0)
clc/modules/interface/pom.xml (+67/-1)
clc/modules/interface/src/main/java/edu/ucsb/eucalyptus/ic/DNSReplyQueue.java (+118/-0)
clc/modules/interface/src/main/java/edu/ucsb/eucalyptus/ic/DNSRequestQueue.java (+78/-0)
clc/modules/interface/src/main/java/edu/ucsb/eucalyptus/ic/Eucalyptus.java (+106/-0)
clc/modules/interface/src/main/java/edu/ucsb/eucalyptus/ic/StorageReplyQueue.java (+151/-0)
clc/modules/interface/src/main/java/edu/ucsb/eucalyptus/ic/StorageRequestQueue.java (+78/-0)
clc/modules/interface/src/main/java/edu/ucsb/eucalyptus/ic/WalrusMessaging.java (+120/-0)
clc/modules/interface/src/main/java/edu/ucsb/eucalyptus/ic/WalrusReplyQueue.java (+124/-0)
clc/modules/interface/src/main/java/edu/ucsb/eucalyptus/ic/WalrusRequestQueue.java (+78/-0)
clc/modules/key-manager/build.xml (+65/-15)
clc/modules/key-manager/key-manager.iml (+20/-0)
clc/modules/key-manager/pom.xml (+66/-0)
clc/modules/key-manager/src/main/java/com/eucalyptus/keys/KeyPairManager.java (+101/-0)
clc/modules/key-manager/src/main/java/com/eucalyptus/keys/KeyPairUtil.java (+127/-0)
clc/modules/module-inc.xml (+171/-74)
clc/modules/msgs/build.xml (+99/-0)
clc/modules/msgs/conf/scripts/startup.groovy (+77/-0)
clc/modules/msgs/msgs.iml (+23/-0)
clc/modules/msgs/pom.xml (+66/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/bootstrap/BootstrapFactory.java (+183/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/bootstrap/Bootstrapper.java (+115/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/bootstrap/Component.java (+246/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/bootstrap/DatabaseBootstrapper.java (+7/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/bootstrap/DeferredInitializer.java (+116/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/bootstrap/Depends.java (+77/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/bootstrap/NeedsDeferredInitialization.java (+75/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/bootstrap/Provides.java (+76/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/bootstrap/Resource.java (+166/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/bootstrap/ResourceProvider.java (+151/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/bootstrap/ServiceBootstrapper.java (+152/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/bootstrap/SystemBootstrapper.java (+238/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/entities/BaseEntities.groovy (+400/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/event/AbstractNamedRegistry.java (+288/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/event/ClockTick.java (+41/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/event/Event.java (+40/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/event/EventListener.java (+7/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/event/EventVetoedException.java (+21/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/event/GenericEvent.java (+29/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/event/ListenerRegistry.java (+79/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/event/ReentrantListenerRegistry.java (+89/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/event/StateEvent.java (+20/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/event/StatefulNamedRegistry.java (+207/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/event/SystemClock.java (+55/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/util/BaseDirectory.java (+102/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/util/DebugUtil.java (+180/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/util/EucaLayout.java (+136/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/util/EucalyptusCloudException.java (+83/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/util/EucalyptusClusterException.java (+21/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/util/EucalyptusProperties.java (+99/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/util/ExceptionNotRelatedException.java (+21/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/util/ExecutionException.java (+86/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/util/FailScriptFailException.java (+87/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/util/GenerateJiBXBinding.java (+238/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/util/GroovyUtil.java (+101/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/util/HasName.java (+70/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/util/HoldMe.java (+199/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/util/LogUtil.groovy (+38/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/util/NetworkUtil.java (+159/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/util/ServiceJarFile.java (+190/-0)
clc/modules/msgs/src/main/java/com/eucalyptus/util/SubDirectory.java (+96/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/annotation/HttpBinding.java (+77/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/annotation/HttpEmbedded.java (+77/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/annotation/HttpParameterMapping.java (+78/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/cloud/BucketLogData.java (+219/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/cloud/Extra.groovy (+651/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/constants/EventType.java (+90/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/constants/IsData.java (+68/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/constants/VmState.java (+109/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/Configuration.groovy (+158/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/DNS.groovy (+167/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/EventRecord.java (+102/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/Messages.groovy (+573/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/StorageController.groovy (+319/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/Unimplemented.groovy (+85/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/VPN.groovy (+223/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/VmAddresses.groovy (+137/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/VmBlockDevice.groovy (+215/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/VmControl.groovy (+263/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/VmImages.groovy (+258/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/VmKeys.groovy (+105/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/VmLocation.groovy (+104/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/VmNetwork.groovy (+216/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/VmSecurity.groovy (+157/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/msgs/Walrus.groovy (+778/-0)
clc/modules/msgs/src/main/java/edu/ucsb/eucalyptus/util/BindingUtil.java (+79/-0)
clc/modules/msgs/src/main/java/org/apache/tools/ant/util/DateUtils.java (+340/-0)
clc/modules/msgs/src/main/resources/2006-06-26-binding.xml (+73/-0)
clc/modules/msgs/src/main/resources/2006-10-01-binding.xml (+73/-0)
clc/modules/msgs/src/main/resources/2007-01-03-binding.xml (+73/-0)
clc/modules/msgs/src/main/resources/2007-01-19-binding.xml (+73/-0)
clc/modules/msgs/src/main/resources/2007-03-01-binding.xml (+74/-0)
clc/modules/msgs/src/main/resources/2007-08-29-binding.xml (+77/-0)
clc/modules/msgs/src/main/resources/2008-02-01-binding.xml (+77/-0)
clc/modules/msgs/src/main/resources/2008-05-05-binding.xml (+79/-0)
clc/modules/msgs/src/main/resources/2008-08-08-binding.xml (+79/-0)
clc/modules/msgs/src/main/resources/2008-12-01-binding.xml (+79/-0)
clc/modules/msgs/src/main/resources/2009-03-01-binding.xml (+78/-0)
clc/modules/msgs/src/main/resources/2009-04-04-binding.xml (+78/-0)
clc/modules/msgs/src/main/resources/2009-07-15-binding.xml (+79/-0)
clc/modules/msgs/src/main/resources/2009-08-15-binding.xml (+79/-0)
clc/modules/msgs/src/main/resources/2009-10-31-binding.xml (+79/-0)
clc/modules/msgs/src/main/resources/2009-11-30-binding.xml (+79/-0)
clc/modules/msgs/src/main/resources/CC-binding.xml (+96/-0)
clc/modules/msgs/src/main/resources/META-INF/services/javax.script.ScriptEngineFactory (+1/-0)
clc/modules/msgs/src/main/resources/aws-base.xml (+70/-0)
clc/modules/msgs/src/main/resources/aws-ebs-snapshots-09-08-15.xml (+128/-0)
clc/modules/msgs/src/main/resources/aws-ebs-snapshots.xml (+114/-0)
clc/modules/msgs/src/main/resources/aws-ebs-volumes.xml (+144/-0)
clc/modules/msgs/src/main/resources/aws-image-attr.xml (+173/-0)
clc/modules/msgs/src/main/resources/aws-images-09-10-31.xml (+174/-0)
clc/modules/msgs/src/main/resources/aws-images.xml (+158/-0)
clc/modules/msgs/src/main/resources/aws-instances-09-10-31.xml (+242/-0)
clc/modules/msgs/src/main/resources/aws-instances.xml (+240/-0)
clc/modules/msgs/src/main/resources/aws-ips.xml (+133/-0)
clc/modules/msgs/src/main/resources/aws-keypairs.xml (+116/-0)
clc/modules/msgs/src/main/resources/aws-null-base.xml (+68/-0)
clc/modules/msgs/src/main/resources/aws-regions.xml (+86/-0)
clc/modules/msgs/src/main/resources/aws-security.xml (+174/-0)
clc/modules/msgs/src/main/resources/aws-unimplemented.xml (+113/-0)
clc/modules/msgs/src/main/resources/aws-vpc.xml (+66/-0)
clc/modules/msgs/src/main/resources/aws-zones-09-07-15.xml (+94/-0)
clc/modules/msgs/src/main/resources/aws-zones.xml (+86/-0)
clc/modules/msgs/src/main/resources/cc-getlogs.xml (+103/-0)
clc/modules/msgs/src/main/resources/cc-network.xml (+149/-0)
clc/modules/msgs/src/main/resources/cc-resources.xml (+85/-0)
clc/modules/msgs/src/main/resources/cc-types.xml (+193/-0)
clc/modules/msgs/src/main/resources/cc-vms.xml (+160/-0)
clc/modules/msgs/src/main/resources/com.eucalyptus.CloudServiceProvider (+2/-0)
clc/modules/msgs/src/main/resources/eucalyptus-bootstrap.xml (+115/-0)
clc/modules/msgs/src/main/resources/s3-2006-03-01-binding.xml (+628/-0)
clc/modules/msgs/src/main/resources/storage-controller-binding.xml (+171/-0)
clc/modules/storage-common/build.xml (+68/-0)
clc/modules/storage-common/src/main/java/edu/ucsb/eucalyptus/cloud/ws/ChunkedDataFile.java (+77/-0)
clc/modules/storage-common/src/main/java/edu/ucsb/eucalyptus/cloud/ws/CompressedChunkedFile.java (+120/-0)
clc/modules/storage-common/src/main/java/edu/ucsb/eucalyptus/storage/StorageManager.java (+127/-0)
clc/modules/storage-common/src/main/java/edu/ucsb/eucalyptus/storage/fs/FileIO.java (+83/-0)
clc/modules/storage-common/src/main/java/edu/ucsb/eucalyptus/storage/fs/FileReader.java (+110/-0)
clc/modules/storage-common/src/main/java/edu/ucsb/eucalyptus/storage/fs/FileSystemStorageManager.java (+448/-0)
clc/modules/storage-common/src/main/java/edu/ucsb/eucalyptus/storage/fs/FileWriter.java (+108/-0)
clc/modules/storage-controller/build.xml (+69/-17)
clc/modules/storage-controller/native/Makefile (+11/-4)
clc/modules/storage-controller/native/edu_ucsb_eucalyptus_storage_AOEManager.c (+7/-0)
clc/modules/storage-controller/native/edu_ucsb_eucalyptus_storage_LVM2Manager.c (+60/-433)
clc/modules/storage-controller/native/liblvm2control.iml (+124/-0)
clc/modules/storage-controller/native/pom.xml (+66/-0)
clc/modules/storage-controller/pom.xml (+68/-6)
clc/modules/storage-controller/src/main/java/com/eucalyptus/bootstrap/BlockStorageBootstrapper.java (+113/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/cloud/ws/BlockStorage.java (+870/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/cloud/ws/BlockStorageStatistics.java (+140/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/cloud/ws/CallBack.java (+9/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/cloud/ws/HttpReader.java (+138/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/cloud/ws/HttpTransfer.java (+72/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/cloud/ws/HttpWriter.java (+64/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/cloud/ws/PutMethodWithProgress.java (+69/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/cloud/ws/SnapshotProgressCallback.java (+74/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/cloud/ws/SnapshotService.java (+83/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/cloud/ws/StorageEventListener.java (+119/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/cloud/ws/VolumeService.java (+83/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/cloud/ws/tests/CreateSnapshotTest.java (+140/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/cloud/ws/tests/CreateVolumeFromSnapshotTest.java (+110/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/cloud/ws/tests/DeleteSnapshotTest.java (+101/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/cloud/ws/tests/StorageTests.java (+81/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/cloud/ws/tests/VolumeTest.java (+110/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/ic/StorageController.java (+105/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/storage/AOEManager.java (+185/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/storage/BlockStorageChecker.java (+315/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/storage/BlockStorageManagerFactory.java (+72/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/storage/ISCSIManager.java (+213/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/storage/LVM2Manager.java (+1082/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/storage/LogicalStorageManager.java (+114/-0)
clc/modules/storage-controller/src/main/java/edu/ucsb/eucalyptus/storage/StorageExportManager.java (+83/-0)
clc/modules/storage-controller/src/main/resources/com.eucalyptus.CloudServiceProvider (+3/-0)
clc/modules/storage-controller/src/main/resources/storage-model.xml (+130/-0)
clc/modules/storage-controller/src/main/resources/storage-services.xml (+89/-0)
clc/modules/storage-controller/storage-controller.iml (+23/-0)
clc/modules/storage-manager/native/Makefile (+0/-21)
clc/modules/walrus/build.xml (+68/-0)
clc/modules/walrus/pom.xml (+146/-0)
clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/ObjectReader.java (+180/-0)
clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/TorrentClient.java (+107/-0)
clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/TorrentCreator.java (+148/-0)
clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/Torrents.java (+92/-0)
clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/Tracker.java (+133/-0)
clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/WalrusBlockStorageManager.java (+321/-0)
clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/WalrusControl.java (+399/-0)
clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/WalrusEventListener.java (+110/-0)
clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/WalrusImageManager.java (+1094/-0)
clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/WalrusManager.java (+2108/-0)
clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/WalrusStatistics.java (+157/-0)
clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/tests/BukkitImageTest.java (+97/-0)
clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/tests/BukkitTest.java (+114/-0)
clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/tests/ImageCacheTest.java (+120/-0)
clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/tests/ObjectTest.java (+150/-0)
clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/cloud/ws/tests/WalrusBucketTests.java (+83/-0)
clc/modules/walrus/src/main/java/edu/ucsb/eucalyptus/ic/Walrus.java (+100/-0)
clc/modules/walrus/src/main/resources/com.eucalyptus.CloudServiceProvider (+3/-0)
clc/modules/walrus/src/main/resources/walrus-model.xml (+131/-0)
clc/modules/walrus/src/main/resources/walrus-services.xml (+87/-0)
clc/modules/walrus/storage-manager.iml (+19/-0)
clc/modules/workarounds/src/java/util/concurrent/LinkedBlockingQueue.java (+0/-810)
clc/modules/wsstack/build.xml (+68/-0)
clc/modules/wsstack/conf/scripts/channels.groovy (+55/-0)
clc/modules/wsstack/pom.xml (+222/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/AuthenticationException.java (+87/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/BindingException.java (+84/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/EucalyptusNamespaceHandler.java (+80/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/EucalyptusRemoteFault.java (+80/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/HttpException.java (+88/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/InvalidOperationException.java (+87/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/MappingHttpMessage.java (+147/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/MappingHttpRequest.java (+195/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/MappingHttpResponse.java (+98/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/RemoteConfigurationException.java (+84/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/ServiceDispatchBootstrapper.java (+194/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/ServiceVerifyBootstrapper.java (+47/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/TestBasicHttpNioClient.java (+85/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/WebServicesException.java (+117/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/binding/Binding.java (+403/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/binding/BindingManager.java (+89/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/client/Client.java (+82/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/client/HeartbeatClient.java (+115/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/client/LocalDispatcher.java (+55/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/client/NioBootstrap.java (+194/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/client/NioClient.java (+141/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/client/NioMessageAdapter.java (+103/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/client/NioMessageDispatcher.java (+127/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/client/NioMessageDispatcherFactory.java (+101/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/client/NioMessageReceiver.java (+107/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/client/RemoteBootstrapperClient.java (+279/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/client/RemoteDispatcher.java (+119/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/client/ServiceDispatcher.java (+108/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/client/ServiceEventListener.java (+68/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/client/pipeline/ClusterClientPipeline.java (+101/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/client/pipeline/InternalClientPipeline.java (+86/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/client/pipeline/LogClientPipeline.java (+98/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/client/pipeline/NioClientPipeline.java (+135/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/BindingHandler.java (+145/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/ChannelStateMonitor.java (+81/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/EucalyptusQueryBinding.java (+262/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/HeartbeatHandler.java (+355/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/HmacV2Handler.java (+187/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/MessageStackHandler.java (+135/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/NioHttpResponseDecoder.java (+80/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/NioResponseHandler.java (+206/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/POSTRequestContext.java (+97/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/QueryTimestampHandler.java (+129/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/RestfulMarshallingHandler.java (+153/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/ServiceSinkHandler.java (+237/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/SoapMarshallingHandler.java (+139/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/TestHandler.java (+160/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/WalrusAuthenticationHandler.java (+373/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/WalrusOutboundHandler.java (+139/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/WalrusPOSTAuthenticationHandler.java (+540/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/WalrusPOSTIncomingHandler.java (+163/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/WalrusRESTBinding.java (+1175/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/WalrusRESTLoggerInbound.java (+123/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/WalrusRESTLoggerOutbound.java (+123/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/WalrusSoapHandler.java (+222/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/WalrusSoapUserAuthenticationHandler.java (+188/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/http/NioHttpDecoder.java (+536/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/http/NioHttpRequestEncoder.java (+89/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/http/NioSslHandler.java (+37/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/soap/AddressingHandler.java (+132/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/soap/SoapHandler.java (+151/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/wssecurity/ClusterWsSecHandler.java (+97/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/wssecurity/InternalWsSecHandler.java (+122/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/wssecurity/UserWsSecHandler.java (+108/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/handlers/wssecurity/WsSecHandler.java (+188/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/server/DuplicatePipelineException.java (+72/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/server/ElasticFoxPipeline.java (+103/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/server/EucalyptusQueryPipeline.java (+171/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/server/EucalyptusSoapPipeline.java (+94/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/server/FilteredPipeline.java (+148/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/server/HeartbeatPipeline.java (+99/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/server/InternalQueryPipeline.java (+111/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/server/InternalSoapPipeline.java (+102/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/server/MetadataPipeline.java (+84/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/server/NioHttpConnector.java (+116/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/server/NioServer.java (+92/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/server/NioServerHandler.java (+174/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/server/NioServerPipelineFactory.java (+90/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/server/NoAcceptingPipelineException.java (+87/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/server/RemoteBootstrapperServer.java (+150/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/server/WalrusRESTPipeline.java (+110/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/server/WalrusRESTPostPipeline.java (+110/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/server/WalrusSoapPipeline.java (+96/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/stages/BindingStage.java (+85/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/stages/ElasticFoxMangleHandler.java (+154/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/stages/ElasticFoxMangleStage.java (+83/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/stages/HmacV2UserAuthenticationStage.java (+99/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/stages/QueryBindingStage.java (+83/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/stages/SoapInternalAuthenticationStage.java (+98/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/stages/SoapUserAuthenticationStage.java (+87/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/stages/UnrollableStage.java (+138/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/stages/WalrusOutboundStage.java (+87/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/stages/WalrusPOSTUserAuthenticationStage.java (+89/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/stages/WalrusRESTBindingStage.java (+89/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/stages/WalrusSoapUserAuthenticationStage.java (+89/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/stages/WalrusUserAuthenticationStage.java (+82/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/util/ChannelUtil.java (+300/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/util/CredentialProxy.java (+112/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/util/HmacUtils.java (+173/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/util/HttpUtils.java (+126/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/util/PipelineRegistry.java (+119/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/util/ReplyCoordinator.java (+140/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/util/ReplyQueue.java (+171/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/util/RequestQueue.java (+127/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/util/WSSecurity.java (+214/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/util/WalrusBucketLogger.java (+221/-0)
clc/modules/wsstack/src/main/java/com/eucalyptus/ws/util/XMLParser.java (+214/-0)
clc/modules/wsstack/src/main/java/org/jboss/netty/channel/DefaultChannelConfig.java (+108/-0)
clc/modules/wsstack/src/main/java/org/jboss/netty/channel/socket/nio/NioClientSocketChannel.java (+69/-0)
clc/modules/wsstack/src/main/java/org/jboss/netty/channel/socket/nio/NioClientSocketPipelineSink.java (+391/-0)
clc/modules/wsstack/src/main/resources/META-INF/euca.xsd (+79/-0)
clc/modules/wsstack/src/main/resources/META-INF/services/org/mule/providers/euca.properties (+10/-0)
clc/modules/wsstack/src/main/resources/META-INF/spring.handlers (+1/-0)
clc/modules/wsstack/src/main/resources/META-INF/spring.schemas (+1/-0)
clc/modules/www/build.xml (+146/-71)
clc/modules/www/conf/eucalyptus-web-default.properties (+16/-10)
clc/modules/www/conf/gwt-web.xml (+75/-0)
clc/modules/www/conf/www/admin.xml (+63/-0)
clc/modules/www/pom.xml (+176/-0)
clc/modules/www/src/edu/ucsb/eucalyptus/admin/public/EucalyptusWebInterface.css (+0/-156)
clc/modules/www/src/main/java/com/eucalyptus/bootstrap/HttpServerBootstrapper.java (+105/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/EucalyptusWebInterface.gwt.xml (+90/-2)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/AppMessages.java (+60/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/CloudInfoWeb.java (+60/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/ClusterInfoTable.java (+314/-118)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/ClusterInfoWeb.java (+82/-39)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/DownloadsTable.java (+69/-3)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/DownloadsWeb.java (+61/-1)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/EucalyptusKeyboardListener.java (+60/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/EucalyptusWebBackend.java (+146/-70)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/EucalyptusWebBackendAsync.java (+136/-60)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/EucalyptusWebInterface.java (+557/-67)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/GWTUtils.java (+64/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/ImageInfoWeb.java (+64/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/StorageInfoWeb.java (+206/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/SystemConfigTable.java (+196/-54)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/SystemConfigWeb.java (+131/-124)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/Theme.java (+70/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/UserInfoWeb.java (+64/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/VmTypeTable.java (+69/-3)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/VmTypeWeb.java (+60/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/WalrusInfoTable.java (+384/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/WalrusInfoWeb.java (+200/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/CancelEvent.java (+91/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/CancelHandler.java (+68/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/ClearErrorEvent.java (+91/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/ClearErrorHandler.java (+68/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/FrameWidget.java (+94/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/GraphicsUtil.java (+68/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/HowToRunDialog.java (+117/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/ImageErrorDialog.java (+128/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/ImageInfo.java (+79/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/ImageSection.java (+72/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/ImageSectionWidget.java (+108/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/ImageState.java (+150/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/ImageStoreClient.java (+137/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/ImageStoreResponse.java (+74/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/ImageStoreService.java (+108/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/ImageStoreServiceAsync.java (+70/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/ImageStoreTest.java (+78/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/ImageStoreWidget.java (+336/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/ImageWidget.java (+563/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/InstallEvent.java (+91/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/InstallHandler.java (+68/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/JSONImageInfo.java (+162/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/JSONImageSection.java (+122/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/JSONImageState.java (+137/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/JSONImageStoreResponse.java (+142/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/JSONUtil.java (+155/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/ProgressBarWidget.java (+110/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/SearchEvent.java (+96/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/SearchHandler.java (+68/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/SearchWidget.java (+136/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/extensions/store/StatusWidget.java (+306/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/public/EucalyptusWebInterface.html (+2/-2)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/public/extensions/store/stylesheet.css (+264/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/public/index.html.OTHER (+0/-74)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/public/themes/eucalyptus/code.js (+7/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/public/themes/eucalyptus/stylesheet.css (+211/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/public/themes/ubuntu/code.js (+7/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/public/themes/ubuntu/stylesheet.css (+242/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/BCrypt.java (+64/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/EucalyptusException.java (+64/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/EucalyptusManagement.java (+596/-13)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/EucalyptusWebBackendImpl.java (+803/-504)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/Registration.java (+102/-18)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/RemoteInfoHandler.java (+336/-50)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/ServletUtils.java (+113/-49)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/SessionInfo.java (+64/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/X509Download.java (+144/-97)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/extensions/store/ImageStoreServiceImpl.java (+213/-0)
clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/extensions/store/SignatureGenerator.java (+180/-0)
clc/modules/www/src/main/resources/com.eucalyptus.CloudServiceProvider (+2/-0)
clc/modules/www/src/main/resources/eucalyptus-jetty.xml (+69/-0)
clc/modules/www/src/main/resources/eucalyptus-www.xml (+86/-0)
clc/modules/www/www.iml (+22/-0)
clc/pom.xml (+80/-6)
cluster/CCclient.c (+33/-3)
cluster/Makefile (+21/-14)
cluster/cc-client-marshal-adb.c (+104/-35)
cluster/cc-client-marshal.h (+2/-1)
cluster/handlers.c (+2075/-876)
cluster/handlers.h (+81/-24)
cluster/server-marshal.c (+174/-125)
cluster/server-marshal.h (+1/-0)
configure (+83/-160)
configure.ac (+24/-6)
debian/axis2.xml (+128/-0)
debian/build-jars (+54/-0)
debian/changelog (+331/-0)
debian/compat (+1/-0)
debian/control (+220/-0)
debian/copyright (+82/-0)
debian/eucalyptus-cc.dirs (+3/-0)
debian/eucalyptus-cc.install (+4/-0)
debian/eucalyptus-cc.postinst (+46/-0)
debian/eucalyptus-cc.prerm (+13/-0)
debian/eucalyptus-cloud.dirs (+3/-0)
debian/eucalyptus-cloud.install (+2/-0)
debian/eucalyptus-cloud.postinst (+18/-0)
debian/eucalyptus-cloud.preinst (+3/-0)
debian/eucalyptus-cloud.prerm (+14/-0)
debian/eucalyptus-common.dirs (+1/-0)
debian/eucalyptus-common.install (+13/-0)
debian/eucalyptus-common.links (+3/-0)
debian/eucalyptus-common.postinst (+32/-0)
debian/eucalyptus-common.postrm (+10/-0)
debian/eucalyptus-common.preinst (+11/-0)
debian/eucalyptus-gl.install (+1/-0)
debian/eucalyptus-java-common.install (+20/-0)
debian/eucalyptus-java-common.links (+90/-0)
debian/eucalyptus-java-common.postinst (+23/-0)
debian/eucalyptus-java-common.prerm (+13/-0)
debian/eucalyptus-nc.dirs (+1/-0)
debian/eucalyptus-nc.install (+11/-0)
debian/eucalyptus-nc.postinst (+36/-0)
debian/eucalyptus-nc.prerm (+14/-0)
debian/eucalyptus-sc.install (+1/-0)
debian/eucalyptus-sc.postinst (+12/-0)
debian/eucalyptus-sc.prerm (+14/-0)
debian/eucalyptus-walrus.install (+1/-0)
debian/eucalyptus-walrus.postinst (+12/-0)
debian/eucalyptus-walrus.prerm (+14/-0)
debian/patches/03-DESTDIR.patch (+282/-0)
debian/rules (+39/-0)
eucalyptus.spec (+356/-166)
extras/README.monitoring (+98/-0)
extras/ganglia.sh (+137/-0)
extras/nagios.sh (+417/-0)
gatherlog/Makefile (+8/-5)
gatherlog/gl-client-marshal-adb.c (+2/-2)
gatherlog/handlers.c (+32/-5)
gatherlog/server-marshal.c (+6/-6)
net/Makefile (+3/-0)
net/vnetwork.c (+1246/-306)
net/vnetwork.h (+57/-9)
node/Makefile (+14/-8)
node/NCclient.c (+2/-0)
node/client-marshal-adb.c (+50/-2)
node/client-marshal-local.c (+3/-1)
node/client-marshal.h (+1/-0)
node/handlers.c (+1006/-88)
node/handlers.h (+151/-19)
node/handlers_default.c (+376/-0)
node/handlers_kvm.c (+223/-887)
node/handlers_xen.c (+197/-903)
node/server-marshal.c (+50/-2)
node/server-marshal.h (+1/-0)
roll/eucalyptus/Makefile (+0/-9)
roll/eucalyptus/graphs/default/eucalyptus.xml (+0/-54)
roll/eucalyptus/nodes/eucalyptus-compute.xml (+0/-137)
roll/eucalyptus/nodes/eucalyptus-frontend.xml (+0/-163)
roll/eucalyptus/nodes/eucalyptus.xml (+0/-57)
roll/eucalyptus/src/Makefile (+0/-12)
roll/eucalyptus/version.mk (+0/-4)
storage/Makefile (+2/-0)
storage/storage.c (+104/-37)
storage/walrus.c (+34/-20)
tools/Makefile (+51/-24)
tools/add_key.pl (+58/-0)
tools/add_marshalling.pl (+122/-59)
tools/add_service_policy.pl (+59/-0)
tools/add_wsdllocation.pl (+59/-0)
tools/connect_iscsitarget.pl (+145/-0)
tools/detach.pl (+59/-0)
tools/disconnect_iscsitarget.pl (+62/-0)
tools/end-to-end.sh (+59/-0)
tools/euca-axis2c.spec-not (+7/-4)
tools/euca-rampartc.spec-not (+10/-8)
tools/euca_conf.1 (+194/-0)
tools/euca_conf.complete (+6/-0)
tools/euca_conf.in (+1037/-204)
tools/euca_ipt (+165/-98)
tools/euca_sync_key (+120/-58)
tools/euca_upgrade (+279/-0)
tools/euca_watchdog.pl (+123/-60)
tools/eucalyptus-cc.in (+294/-68)
tools/eucalyptus-cloud.in (+417/-0)
tools/eucalyptus-nc.in (+145/-43)
tools/eucalyptus.conf (+64/-22)
tools/eucalyptus.conf.rpmbased (+0/-199)
tools/gen_kvm_libvirt_xml (+125/-60)
tools/gen_libvirt_xml (+124/-60)
tools/get_iscsitarget.pl (+71/-0)
tools/get_sys_info (+59/-0)
tools/get_xen_info (+59/-0)
tools/httpd.conf (+11/-1)
tools/partition2disk (+99/-44)
tools/populate_arp.pl (+59/-0)
tools/run_axis.sh (+122/-59)
tools/set_env.sh (+121/-59)
tools/vtunall.conf.template (+686/-0)
util/Makefile (+6/-2)
util/data.c (+6/-6)
util/data.h (+2/-1)
util/euca_auth.c (+17/-2)
util/euca_auth.h (+2/-0)
util/eucalyptus-config.h.in (+6/-1)
util/eucalyptus.h (+11/-11)
util/ipc.c (+35/-3)
util/ipc.h (+4/-0)
util/misc.c (+382/-18)
util/misc.h (+31/-1)
util/test.c (+1/-1)
wsdl/eucalyptus_cc.wsdl (+67/-0)
wsdl/eucalyptus_nc.wsdl (+48/-0)
Text conflict in CHANGELOG
Text conflict in INSTALL
Text conflict in clc/build.xml
Contents conflict in clc/cloud.xml
Conflict: can't delete clc/modules/axis2-transport because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/axis2-transport/build.xml
Conflict: can't delete clc/modules/axis2-transport/conf because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/conf is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/axis2-transport/conf/axis2.xml
Contents conflict in clc/modules/axis2-transport/conf/cluster-axis2.xml
Contents conflict in clc/modules/axis2-transport/conf/cluster-policy.xml
Contents conflict in clc/modules/axis2-transport/conf/off-policy.xml
Contents conflict in clc/modules/axis2-transport/conf/policy.xml
Contents conflict in clc/modules/axis2-transport/pom.xml
Conflict: can't delete clc/modules/axis2-transport/resources because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/resources is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/axis2-transport/resources/META-INF because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/resources/META-INF is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/axis2-transport/resources/META-INF/euca.xsd
Conflict: can't delete clc/modules/axis2-transport/resources/META-INF/services because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/resources/META-INF/services is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/axis2-transport/resources/META-INF/services/org because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/resources/META-INF/services/org is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/axis2-transport/resources/META-INF/services/org/mule because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/resources/META-INF/services/org/mule is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/axis2-transport/resources/META-INF/services/org/mule/providers because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/resources/META-INF/services/org/mule/providers is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/axis2-transport/resources/META-INF/services/org/mule/providers/axis2.properties
Conflict: can't delete clc/modules/axis2-transport/src because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/src is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/axis2-transport/src/edu because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/src/edu is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/axis2-transport/src/edu/ucsb because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/src/edu/ucsb is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/axis2-transport/src/edu/ucsb/eucalyptus because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/src/edu/ucsb/eucalyptus is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/Axis2Connector.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/Axis2InOnlyMessageReceiver.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/Axis2InOutMessageReceiver.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/Axis2MessageAdapter.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/Axis2MessageDispatcher.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/Axis2MessageReceiver.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/OverloadedWebserviceMethod.java
Conflict: can't delete clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/auth because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/auth is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/auth/Authenticator.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/auth/CertAuthentication.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/auth/RampartCallbackHandler.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/auth/RampartUsernameTokenCallbackHandler.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/auth/UserAuthentication.java
Conflict: can't delete clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/binding because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/binding is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/binding/Binding.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/binding/BindingManager.java
Conflict: can't delete clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/client because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/client is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/client/Axis2MessageDispatcherFactory.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/client/BasicClient.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/client/Client.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/client/ClientFactory.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/client/ClientPool.java
Conflict: can't delete clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Axis2InProperties.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Axis2NamespaceHandler.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Axis2OperationBuilder.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Axis2OutProperties.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Axis2Properties.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Axis2ServiceBuilder.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Key.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Mep.java
Conflict: can't delete clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/http because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/http is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/http/Axis2HttpListener.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/http/Axis2HttpWorker.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/http/Axis2HttpWorkerFactory.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/http/WalrusDataFormatter.java
Conflict: can't delete clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/i18n because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/i18n is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/i18n/Axis2Messages.java
Conflict: can't delete clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/Axis2QueryDispatcher.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/DefaultQueryBinding.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/EucalyptusQuerySecurityHandler.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/GenericHttpDispatcher.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/HMACQuerySecurityHandler.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/HttpRequest.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/POSTRequestContext.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/QueryBinding.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/QueryBindingException.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/QuerySecurityException.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/QuerySecurityHandler.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/RESTfulDispatcher.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/StorageQueryBinding.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/StorageQueryDispatcher.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/StorageQuerySecurityHandler.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/WalrusFileItem.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/WalrusFileItemFactory.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/WalrusQueryBinding.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/WalrusQueryDispatcher.java
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/WalrusQuerySecurityHandler.java
Conflict: can't delete clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/util because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/util is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/util/Defaults.java
Conflict: can't delete clc/modules/axis2-transport/src/org because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/src/org is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/axis2-transport/src/org/apache because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/src/org/apache is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/axis2-transport/src/org/apache/axis2 because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/src/org/apache/axis2 is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/axis2-transport/src/org/apache/axis2/transport because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/src/org/apache/axis2/transport is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/axis2-transport/src/org/apache/axis2/transport/http because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/src/org/apache/axis2/transport/http is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/axis2-transport/src/org/apache/axis2/transport/http/server because it is not empty.  Not deleting.
Conflict because clc/modules/axis2-transport/src/org/apache/axis2/transport/http/server is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/axis2-transport/src/org/apache/axis2/transport/http/server/AxisHttpResponseImpl.java
Text conflict in clc/modules/cluster-manager/build.xml
Conflict: can't delete clc/modules/cluster-manager/conf/rules because it is not empty.  Not deleting.
Conflict because clc/modules/cluster-manager/conf/rules is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/cluster-manager/conf/rules/allocation because it is not empty.  Not deleting.
Conflict because clc/modules/cluster-manager/conf/rules/allocation is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/cluster-manager/conf/rules/allocation/default.groovy
Text conflict in clc/modules/cluster-manager/pom.xml
Conflict: can't delete clc/modules/cluster-manager/src/edu because it is not empty.  Not deleting.
Conflict because clc/modules/cluster-manager/src/edu is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/cluster-manager/src/edu/ucsb because it is not empty.  Not deleting.
Conflict because clc/modules/cluster-manager/src/edu/ucsb is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/cluster-manager/src/edu/ucsb/eucalyptus because it is not empty.  Not deleting.
Conflict because clc/modules/cluster-manager/src/edu/ucsb/eucalyptus is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud because it is not empty.  Not deleting.
Conflict because clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/FailScriptFailException.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/FilenamePrefixFilter.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/SLAs.java
Conflict: can't delete clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster because it is not empty.  Not deleting.
Conflict because clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/Allocator.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/AssignAddressCallback.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/Cluster.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/ClusterAllocator.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/ClusterEndpoint.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/ClusterEnvelope.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/ClusterMessageQueue.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/ClusterNetworkState.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/ClusterNodeState.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/ClusterState.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/Clusters.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/ConfigureNetworkCallback.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/ConsoleOutputCallback.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/EucalyptusWSException.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/NetworkAlreadyExistsException.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/Networks.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/NoSuchTokenException.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/NodeCertCallback.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/NodeLogCallback.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/NotEnoughResourcesAvailable.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/QueuedEvent.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/QueuedEventCallback.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/QueuedLogEvent.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/RebootCallback.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/Reservation.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/Reservations.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/ResourceUpdateCallback.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/StartNetworkCallback.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/StopNetworkCallback.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/TerminateCallback.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/UnassignAddressCallback.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/VmAllocationTransaction.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/VmInstance.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/VmInstances.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/VmRunCallback.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/VmTypeAvailability.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/VmTypeVerify.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/VmTypes.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/VmUpdateCallback.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/VolumeAttachCallback.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/cluster/VolumeDetachCallback.java
Conflict: can't delete clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/net because it is not empty.  Not deleting.
Conflict because clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/net is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/net/AddressUpdateCallback.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/net/Addresses.java
Conflict: can't delete clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/ws because it is not empty.  Not deleting.
Conflict because clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/ws is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/ws/AddressManager.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/ws/CreateVmInstances.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/ws/StateSnapshot.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/ws/SystemState.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/ws/VmAdmissionControl.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/ws/VmConsoleOutput.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/ws/VmControl.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/ws/VmDescribe.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/ws/VmMetadata.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/ws/VmReboot.java
Contents conflict in clc/modules/cluster-manager/src/edu/ucsb/eucalyptus/cloud/ws/VmReplyTransform.java
Text conflict in clc/modules/core/build.xml
Contents conflict in clc/modules/core/conf/eucalyptus-interface.xml
Contents conflict in clc/modules/core/conf/eucalyptus-mule.xml
Contents conflict in clc/modules/core/conf/eucalyptus-runtime.xml
Contents conflict in clc/modules/core/conf/eucalyptus-services.xml
Contents conflict in clc/modules/core/conf/eucalyptus-storage.xml
Contents conflict in clc/modules/core/conf/eucalyptus-userdata.xml
Contents conflict in clc/modules/core/conf/eucalyptus-verification.xml
Contents conflict in clc/modules/core/conf/eucalyptus.xml
Contents conflict in clc/modules/core/conf/storage-model.xml
Contents conflict in clc/modules/core/conf/storage-mule.xml
Contents conflict in clc/modules/core/conf/storage-services.xml
Contents conflict in clc/modules/core/conf/walrus-model.xml
Contents conflict in clc/modules/core/conf/walrus-mule.xml
Contents conflict in clc/modules/core/conf/walrus-services.xml
Text conflict in clc/modules/core/pom.xml
Conflict: can't delete clc/modules/core/resources because it is not empty.  Not deleting.
Conflict because clc/modules/core/resources is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/core/resources/META-INF because it is not empty.  Not deleting.
Conflict because clc/modules/core/resources/META-INF is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/core/resources/META-INF/persistence.xml
Contents conflict in clc/modules/core/resources/c3p0-config.xml
Contents conflict in clc/modules/core/resources/ehcache.xml
Contents conflict in clc/modules/core/resources/eucalyptus.properties
Contents conflict in clc/modules/core/resources/log4j.xml
Conflict: can't delete clc/modules/core/src/edu because it is not empty.  Not deleting.
Conflict because clc/modules/core/src/edu is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/core/src/edu/ucsb because it is not empty.  Not deleting.
Conflict because clc/modules/core/src/edu/ucsb is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/core/src/edu/ucsb/eucalyptus because it is not empty.  Not deleting.
Conflict because clc/modules/core/src/edu/ucsb/eucalyptus is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/Main.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/StartupChecks.java
Conflict: can't delete clc/modules/core/src/edu/ucsb/eucalyptus/cloud because it is not empty.  Not deleting.
Conflict because clc/modules/core/src/edu/ucsb/eucalyptus/cloud is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/AbstractNamedRegistry.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/AccessDeniedException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/BucketAlreadyExistsException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/BucketAlreadyOwnedByYouException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/BucketNotEmptyException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/Configuration.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/DecryptionFailedException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/EntityAlreadyExistsException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/EntityTooLargeException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/EucalyptusCloudException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/EucalyptusInvalidRequestException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/ImageAlreadyExistsException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/NoSuchBucketException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/NoSuchEntityException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/NoSuchSnapshotException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/NoSuchVolumeException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/NotAuthorizedException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/NotImplementedException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/NotModifiedException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/PreconditionFailedException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/SnapshotInUseException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/TooManyBucketsException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/VolumeAlreadyExistsException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/VolumeInUseException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/VolumeNotReadyException.java
Conflict: can't delete clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities because it is not empty.  Not deleting.
Conflict because clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/Address.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/AttachedVolumeInfo.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/BucketInfo.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/CertificateInfo.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/ClusterInfo.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/Counters.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/EntityWrapper.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/GrantInfo.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/ImageCacheInfo.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/ImageInfo.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/ImagePermissionInfo.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/IpRange.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/LVMMetaInfo.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/LVMVolumeInfo.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/MetaDataInfo.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/NetworkPeer.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/NetworkRule.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/NetworkRulesGroup.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/ObjectInfo.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/ProductCode.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/SSHKeyPair.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/SnapshotInfo.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/SystemConfiguration.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/UserGroupInfo.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/UserInfo.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/VmType.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/VolumeInfo.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/WalrusSnapshotInfo.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/entities/WalrusSnapshotSet.java
Conflict: can't delete clc/modules/core/src/edu/ucsb/eucalyptus/cloud/exceptions because it is not empty.  Not deleting.
Conflict because clc/modules/core/src/edu/ucsb/eucalyptus/cloud/exceptions is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/exceptions/ExceptionList.java
Conflict: can't delete clc/modules/core/src/edu/ucsb/eucalyptus/cloud/state because it is not empty.  Not deleting.
Conflict because clc/modules/core/src/edu/ucsb/eucalyptus/cloud/state is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/state/AbstractIsomorph.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/state/AlreadyExistsException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/state/DoesNotExistException.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/state/State.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/state/User.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/state/WeakInteraction.java
Conflict: can't delete clc/modules/core/src/edu/ucsb/eucalyptus/cloud/ws because it is not empty.  Not deleting.
Conflict because clc/modules/core/src/edu/ucsb/eucalyptus/cloud/ws is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/cloud/ws/AbstractOperation.java
Conflict: can't delete clc/modules/core/src/edu/ucsb/eucalyptus/ic because it is not empty.  Not deleting.
Conflict because clc/modules/core/src/edu/ucsb/eucalyptus/ic is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/ic/HttpServer.java
Conflict: can't delete clc/modules/core/src/edu/ucsb/eucalyptus/keys because it is not empty.  Not deleting.
Conflict because clc/modules/core/src/edu/ucsb/eucalyptus/keys is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/keys/AbstractKeyStore.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/keys/EucaKeyStore.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/keys/Hashes.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/keys/KeyTool.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/keys/ServiceKeyStore.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/keys/UserKeyStore.java
Conflict: can't delete clc/modules/core/src/edu/ucsb/eucalyptus/util because it is not empty.  Not deleting.
Conflict because clc/modules/core/src/edu/ucsb/eucalyptus/util is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/util/Admin.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/util/BaseDirectory.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/util/CaseInsensitiveMap.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/util/ErrorFactory.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/util/EucalyptusProperties.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/util/Messaging.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/util/ReplyCoordinator.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/util/StorageProperties.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/util/SubDirectory.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/util/UserManagement.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/util/WalrusDataMessage.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/util/WalrusDataMessenger.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/util/WalrusMonitor.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/util/WalrusProperties.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/util/WalrusSemaphore.java
Contents conflict in clc/modules/core/src/edu/ucsb/eucalyptus/util/XMLParser.java
Conflict: can't delete clc/modules/crypto because it is not empty.  Not deleting.
Conflict because clc/modules/crypto is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/crypto/build.xml
Text conflict in clc/modules/distribution/bin-assembly.xml
Text conflict in clc/modules/distribution/lib-assembly.xml
Text conflict in clc/modules/distribution/modules-assembly.xml
Text conflict in clc/modules/distribution/pom.xml
Text conflict in clc/modules/group-manager/build.xml
Text conflict in clc/modules/group-manager/pom.xml
Conflict: can't delete clc/modules/group-manager/src/edu because it is not empty.  Not deleting.
Conflict because clc/modules/group-manager/src/edu is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/group-manager/src/edu/ucsb because it is not empty.  Not deleting.
Conflict because clc/modules/group-manager/src/edu/ucsb is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/group-manager/src/edu/ucsb/eucalyptus because it is not empty.  Not deleting.
Conflict because clc/modules/group-manager/src/edu/ucsb/eucalyptus is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/group-manager/src/edu/ucsb/eucalyptus/cloud because it is not empty.  Not deleting.
Conflict because clc/modules/group-manager/src/edu/ucsb/eucalyptus/cloud is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/group-manager/src/edu/ucsb/eucalyptus/cloud/ws because it is not empty.  Not deleting.
Conflict because clc/modules/group-manager/src/edu/ucsb/eucalyptus/cloud/ws is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/group-manager/src/edu/ucsb/eucalyptus/cloud/ws/GroupManager.java
Text conflict in clc/modules/image-manager/build.xml
Text conflict in clc/modules/image-manager/pom.xml
Conflict: can't delete clc/modules/image-manager/resources because it is not empty.  Not deleting.
Conflict because clc/modules/image-manager/resources is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/image-manager/resources/META-INF because it is not empty.  Not deleting.
Conflict because clc/modules/image-manager/resources/META-INF is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/image-manager/resources/META-INF/persistence.xml
Conflict: can't delete clc/modules/image-manager/src/edu because it is not empty.  Not deleting.
Conflict because clc/modules/image-manager/src/edu is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/image-manager/src/edu/ucsb because it is not empty.  Not deleting.
Conflict because clc/modules/image-manager/src/edu/ucsb is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/image-manager/src/edu/ucsb/eucalyptus because it is not empty.  Not deleting.
Conflict because clc/modules/image-manager/src/edu/ucsb/eucalyptus is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/image-manager/src/edu/ucsb/eucalyptus/cloud because it is not empty.  Not deleting.
Conflict because clc/modules/image-manager/src/edu/ucsb/eucalyptus/cloud is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/image-manager/src/edu/ucsb/eucalyptus/cloud/state because it is not empty.  Not deleting.
Conflict because clc/modules/image-manager/src/edu/ucsb/eucalyptus/cloud/state is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/image-manager/src/edu/ucsb/eucalyptus/cloud/state/Snapshot.java
Contents conflict in clc/modules/image-manager/src/edu/ucsb/eucalyptus/cloud/state/Volume.java
Conflict: can't delete clc/modules/image-manager/src/edu/ucsb/eucalyptus/cloud/ws because it is not empty.  Not deleting.
Conflict because clc/modules/image-manager/src/edu/ucsb/eucalyptus/cloud/ws is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/image-manager/src/edu/ucsb/eucalyptus/cloud/ws/ImageManager.java
Contents conflict in clc/modules/image-manager/src/edu/ucsb/eucalyptus/cloud/ws/SnapshotManager.java
Contents conflict in clc/modules/image-manager/src/edu/ucsb/eucalyptus/cloud/ws/VolumeManager.java
Conflict: can't delete clc/modules/image-manager/src/edu/ucsb/eucalyptus/cloud/ws/tests because it is not empty.  Not deleting.
Conflict because clc/modules/image-manager/src/edu/ucsb/eucalyptus/cloud/ws/tests is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/image-manager/src/edu/ucsb/eucalyptus/cloud/ws/tests/XMLParserTest.java
Text conflict in clc/modules/interface/build.xml
Text conflict in clc/modules/interface/pom.xml
Conflict: can't delete clc/modules/interface/src/edu because it is not empty.  Not deleting.
Conflict because clc/modules/interface/src/edu is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/interface/src/edu/ucsb because it is not empty.  Not deleting.
Conflict because clc/modules/interface/src/edu/ucsb is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/interface/src/edu/ucsb/eucalyptus because it is not empty.  Not deleting.
Conflict because clc/modules/interface/src/edu/ucsb/eucalyptus is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/interface/src/edu/ucsb/eucalyptus/ic because it is not empty.  Not deleting.
Conflict because clc/modules/interface/src/edu/ucsb/eucalyptus/ic is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/interface/src/edu/ucsb/eucalyptus/ic/Eucalyptus.java
Contents conflict in clc/modules/interface/src/edu/ucsb/eucalyptus/ic/ReplyQueue.java
Contents conflict in clc/modules/interface/src/edu/ucsb/eucalyptus/ic/RequestQueue.java
Contents conflict in clc/modules/interface/src/edu/ucsb/eucalyptus/ic/StorageReplyQueue.java
Contents conflict in clc/modules/interface/src/edu/ucsb/eucalyptus/ic/StorageRequestQueue.java
Contents conflict in clc/modules/interface/src/edu/ucsb/eucalyptus/ic/WalrusMessaging.java
Contents conflict in clc/modules/interface/src/edu/ucsb/eucalyptus/ic/WalrusReplyQueue.java
Contents conflict in clc/modules/interface/src/edu/ucsb/eucalyptus/ic/WalrusRequestQueue.java
Text conflict in clc/modules/key-manager/build.xml
Text conflict in clc/modules/key-manager/pom.xml
Conflict: can't delete clc/modules/key-manager/src/edu because it is not empty.  Not deleting.
Conflict because clc/modules/key-manager/src/edu is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/key-manager/src/edu/ucsb because it is not empty.  Not deleting.
Conflict because clc/modules/key-manager/src/edu/ucsb is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/key-manager/src/edu/ucsb/eucalyptus because it is not empty.  Not deleting.
Conflict because clc/modules/key-manager/src/edu/ucsb/eucalyptus is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/key-manager/src/edu/ucsb/eucalyptus/cloud because it is not empty.  Not deleting.
Conflict because clc/modules/key-manager/src/edu/ucsb/eucalyptus/cloud is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/key-manager/src/edu/ucsb/eucalyptus/cloud/ws because it is not empty.  Not deleting.
Conflict because clc/modules/key-manager/src/edu/ucsb/eucalyptus/cloud/ws is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/key-manager/src/edu/ucsb/eucalyptus/cloud/ws/KeyPairBroker.java
Text conflict in clc/modules/module-inc.xml
Text conflict in clc/modules/msgs/build.xml
Text conflict in clc/modules/msgs/pom.xml
Conflict: can't delete clc/modules/msgs/resources because it is not empty.  Not deleting.
Conflict because clc/modules/msgs/resources is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/msgs/resources/2006-06-26-binding.xml
Contents conflict in clc/modules/msgs/resources/2006-10-01-binding.xml
Contents conflict in clc/modules/msgs/resources/2007-01-03-binding.xml
Contents conflict in clc/modules/msgs/resources/2007-01-19-binding.xml
Contents conflict in clc/modules/msgs/resources/2007-03-01-binding.xml
Contents conflict in clc/modules/msgs/resources/2007-08-29-binding.xml
Contents conflict in clc/modules/msgs/resources/2008-02-01-binding.xml
Contents conflict in clc/modules/msgs/resources/2008-05-05-binding.xml
Contents conflict in clc/modules/msgs/resources/2008-08-08-binding.xml
Contents conflict in clc/modules/msgs/resources/2008-12-01-binding.xml
Contents conflict in clc/modules/msgs/resources/2009-03-01-binding.xml
Contents conflict in clc/modules/msgs/resources/2009-04-04-binding.xml
Contents conflict in clc/modules/msgs/resources/CC-binding.xml
Contents conflict in clc/modules/msgs/resources/aws-base.xml
Contents conflict in clc/modules/msgs/resources/aws-ebs.xml
Contents conflict in clc/modules/msgs/resources/aws-image-attr.xml
Contents conflict in clc/modules/msgs/resources/aws-images.xml
Contents conflict in clc/modules/msgs/resources/aws-instances.xml
Contents conflict in clc/modules/msgs/resources/aws-ips.xml
Contents conflict in clc/modules/msgs/resources/aws-keypairs.xml
Contents conflict in clc/modules/msgs/resources/aws-null-base.xml
Contents conflict in clc/modules/msgs/resources/aws-security.xml
Contents conflict in clc/modules/msgs/resources/aws-unimplemented.xml
Contents conflict in clc/modules/msgs/resources/aws-zones.xml
Contents conflict in clc/modules/msgs/resources/cc-getlogs.xml
Contents conflict in clc/modules/msgs/resources/cc-network.xml
Contents conflict in clc/modules/msgs/resources/cc-resources.xml
Contents conflict in clc/modules/msgs/resources/cc-types.xml
Contents conflict in clc/modules/msgs/resources/cc-vms.xml
Contents conflict in clc/modules/msgs/resources/s3-2006-03-01-binding.xml
Contents conflict in clc/modules/msgs/resources/storage-controller-binding.xml
Contents conflict in clc/modules/msgs/src/GenerateJibxBinding.groovy
Conflict: can't delete clc/modules/msgs/src/edu because it is not empty.  Not deleting.
Conflict because clc/modules/msgs/src/edu is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/msgs/src/edu/ucsb because it is not empty.  Not deleting.
Conflict because clc/modules/msgs/src/edu/ucsb is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/msgs/src/edu/ucsb/eucalyptus because it is not empty.  Not deleting.
Conflict because clc/modules/msgs/src/edu/ucsb/eucalyptus is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/msgs/src/edu/ucsb/eucalyptus/annotation because it is not empty.  Not deleting.
Conflict because clc/modules/msgs/src/edu/ucsb/eucalyptus/annotation is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/annotation/HttpBinding.java
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/annotation/HttpEmbedded.java
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/annotation/HttpParameterMapping.java
Conflict: can't delete clc/modules/msgs/src/edu/ucsb/eucalyptus/cloud because it is not empty.  Not deleting.
Conflict because clc/modules/msgs/src/edu/ucsb/eucalyptus/cloud is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/cloud/Extra.groovy
Conflict: can't delete clc/modules/msgs/src/edu/ucsb/eucalyptus/constants because it is not empty.  Not deleting.
Conflict because clc/modules/msgs/src/edu/ucsb/eucalyptus/constants is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/constants/EventType.java
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/constants/HasName.java
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/constants/VmState.java
Conflict: can't delete clc/modules/msgs/src/edu/ucsb/eucalyptus/msgs because it is not empty.  Not deleting.
Conflict because clc/modules/msgs/src/edu/ucsb/eucalyptus/msgs is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/msgs/Messages.groovy
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/msgs/StorageController.groovy
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/msgs/Unimplemented.groovy
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/msgs/VmAddresses.groovy
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/msgs/VmBlockDevice.groovy
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/msgs/VmControl.groovy
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/msgs/VmImages.groovy
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/msgs/VmKeys.groovy
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/msgs/VmLocation.groovy
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/msgs/VmNetwork.groovy
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/msgs/VmSecurity.groovy
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/msgs/Walrus.groovy
Conflict: can't delete clc/modules/msgs/src/edu/ucsb/eucalyptus/util because it is not empty.  Not deleting.
Conflict because clc/modules/msgs/src/edu/ucsb/eucalyptus/util is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/util/BindingUtil.java
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/util/InstanceDefaults.java
Contents conflict in clc/modules/msgs/src/edu/ucsb/eucalyptus/util/MessageAdapter.java
Text conflict in clc/modules/storage-controller/build.xml
Text conflict in clc/modules/storage-controller/native/edu_ucsb_eucalyptus_storage_AOEManager.c
Text conflict in clc/modules/storage-controller/native/pom.xml
Text conflict in clc/modules/storage-controller/pom.xml
Conflict: can't delete clc/modules/storage-controller/src/edu because it is not empty.  Not deleting.
Conflict because clc/modules/storage-controller/src/edu is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/storage-controller/src/edu/ucsb because it is not empty.  Not deleting.
Conflict because clc/modules/storage-controller/src/edu/ucsb is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/storage-controller/src/edu/ucsb/eucalyptus because it is not empty.  Not deleting.
Conflict because clc/modules/storage-controller/src/edu/ucsb/eucalyptus is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/storage-controller/src/edu/ucsb/eucalyptus/cloud because it is not empty.  Not deleting.
Conflict because clc/modules/storage-controller/src/edu/ucsb/eucalyptus/cloud is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/storage-controller/src/edu/ucsb/eucalyptus/cloud/ws because it is not empty.  Not deleting.
Conflict because clc/modules/storage-controller/src/edu/ucsb/eucalyptus/cloud/ws is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/storage-controller/src/edu/ucsb/eucalyptus/cloud/ws/Storage.java
Conflict: can't delete clc/modules/storage-controller/src/edu/ucsb/eucalyptus/cloud/ws/tests because it is not empty.  Not deleting.
Conflict because clc/modules/storage-controller/src/edu/ucsb/eucalyptus/cloud/ws/tests is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/storage-controller/src/edu/ucsb/eucalyptus/cloud/ws/tests/CreateSnapshotTest.java
Contents conflict in clc/modules/storage-controller/src/edu/ucsb/eucalyptus/cloud/ws/tests/CreateVolumeFromSnapshotTest.java
Contents conflict in clc/modules/storage-controller/src/edu/ucsb/eucalyptus/cloud/ws/tests/DeleteSnapshotTest.java
Contents conflict in clc/modules/storage-controller/src/edu/ucsb/eucalyptus/cloud/ws/tests/GetSnapshotTest.java
Contents conflict in clc/modules/storage-controller/src/edu/ucsb/eucalyptus/cloud/ws/tests/StorageTests.java
Contents conflict in clc/modules/storage-controller/src/edu/ucsb/eucalyptus/cloud/ws/tests/VolumeTest.java
Conflict: can't delete clc/modules/storage-controller/src/edu/ucsb/eucalyptus/ic because it is not empty.  Not deleting.
Conflict because clc/modules/storage-controller/src/edu/ucsb/eucalyptus/ic is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/storage-controller/src/edu/ucsb/eucalyptus/ic/StorageController.java
Conflict: can't delete clc/modules/storage-controller/src/edu/ucsb/eucalyptus/storage because it is not empty.  Not deleting.
Conflict because clc/modules/storage-controller/src/edu/ucsb/eucalyptus/storage is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/storage-controller/src/edu/ucsb/eucalyptus/storage/AOEManager.java
Contents conflict in clc/modules/storage-controller/src/edu/ucsb/eucalyptus/storage/BlockStorageManager.java
Contents conflict in clc/modules/storage-controller/src/edu/ucsb/eucalyptus/storage/LVM2Manager.java
Contents conflict in clc/modules/storage-controller/src/edu/ucsb/eucalyptus/storage/StorageExportManager.java
Conflict: can't delete clc/modules/storage-manager because it is not empty.  Not deleting.
Conflict because clc/modules/storage-manager is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/storage-manager/build.xml
Conflict: can't delete clc/modules/storage-manager/native because it is not empty.  Not deleting.
Conflict because clc/modules/storage-manager/native is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/storage-manager/native/edu_ucsb_eucalyptus_storage_fs_FileSystemStorageManager.c
Contents conflict in clc/modules/storage-manager/native/pom.xml
Contents conflict in clc/modules/storage-manager/pom.xml
Conflict: can't delete clc/modules/storage-manager/src because it is not empty.  Not deleting.
Conflict because clc/modules/storage-manager/src is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/storage-manager/src/edu because it is not empty.  Not deleting.
Conflict because clc/modules/storage-manager/src/edu is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/storage-manager/src/edu/ucsb because it is not empty.  Not deleting.
Conflict because clc/modules/storage-manager/src/edu/ucsb is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/storage-manager/src/edu/ucsb/eucalyptus because it is not empty.  Not deleting.
Conflict because clc/modules/storage-manager/src/edu/ucsb/eucalyptus is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/storage-manager/src/edu/ucsb/eucalyptus/cloud because it is not empty.  Not deleting.
Conflict because clc/modules/storage-manager/src/edu/ucsb/eucalyptus/cloud is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete clc/modules/storage-manager/src/edu/ucsb/eucalyptus/cloud/ws because it is not empty.  Not deleting.
Conflict because clc/modules/storage-manager/src/edu/ucsb/eucalyptus/cloud/ws is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/storage-manager/src/edu/ucsb/eucalyptus/cloud/ws/Bukkit.java
Conflict: can't delete clc/modules/storage-manager/src/edu/ucsb/eucalyptus/cloud/ws/tests because it is not empty.  Not deleting.
Conflict because clc/modules/storage-manager/src/edu/ucsb/eucalyptus/cloud/ws/tests is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/storage-manager/src/edu/ucsb/eucalyptus/cloud/ws/tests/BukkitImageTest.java
Contents conflict in clc/modules/storage-manager/src/edu/ucsb/eucalyptus/cloud/ws/tests/BukkitTest.java
Contents conflict in clc/modules/storage-manager/src/edu/ucsb/eucalyptus/cloud/ws/tests/ImageCacheTest.java
Contents conflict in clc/modules/storage-manager/src/edu/ucsb/eucalyptus/cloud/ws/tests/ObjectTest.java
Contents conflict in clc/modules/storage-manager/src/edu/ucsb/eucalyptus/cloud/ws/tests/WalrusBucketTests.java
Conflict: can't delete clc/modules/storage-manager/src/edu/ucsb/eucalyptus/ic because it is not empty.  Not deleting.
Conflict because clc/modules/storage-manager/src/edu/ucsb/eucalyptus/ic is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/storage-manager/src/edu/ucsb/eucalyptus/ic/Walrus.java
Conflict: can't delete clc/modules/storage-manager/src/edu/ucsb/eucalyptus/storage because it is not empty.  Not deleting.
Conflict because clc/modules/storage-manager/src/edu/ucsb/eucalyptus/storage is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/storage-manager/src/edu/ucsb/eucalyptus/storage/StorageManager.java
Conflict: can't delete clc/modules/storage-manager/src/edu/ucsb/eucalyptus/storage/fs because it is not empty.  Not deleting.
Conflict because clc/modules/storage-manager/src/edu/ucsb/eucalyptus/storage/fs is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/storage-manager/src/edu/ucsb/eucalyptus/storage/fs/FileSystemStorageManager.java
Conflict: can't delete clc/modules/workarounds because it is not empty.  Not deleting.
Conflict because clc/modules/workarounds is not versioned, but has versioned children.  Versioned directory.
Contents conflict in clc/modules/workarounds/build.xml
Text conflict in clc/modules/www/build.xml
Text conflict in clc/modules/www/conf/eucalyptus-web-default.properties
Text conflict in clc/modules/www/conf/gwt-web.xml
Text conflict in clc/modules/www/conf/www/admin.xml
Text conflict in clc/modules/www/pom.xml
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/EucalyptusWebInterface.gwt.xml
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/ClusterInfoTable.java
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/DownloadsTable.java
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/EucalyptusWebBackend.java
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/EucalyptusWebBackendAsync.java
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/EucalyptusWebInterface.java
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/GWTUtils.java
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/ImageInfoWeb.java
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/SystemConfigTable.java
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/SystemConfigWeb.java
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/UserInfoWeb.java
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/client/VmTypeTable.java
Contents conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/public/index.html
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/BCrypt.java
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/EucalyptusException.java
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/EucalyptusManagement.java
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/EucalyptusWebBackendImpl.java
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/Registration.java
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/RemoteInfoHandler.java
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/ServletUtils.java
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/SessionInfo.java
Text conflict in clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/server/X509Download.java
Text conflict in clc/modules/www/src/main/resources/eucalyptus-jetty.xml
Text conflict in clc/pom.xml
Contents conflict in node/handlers-dummy.c
Text conflict in node/handlers_kvm.c
Conflict: can't delete roll because it is not empty.  Not deleting.
Conflict because roll is not versioned, but has versioned children.  Versioned directory.
Contents conflict in roll/Makefile
Contents conflict in tools/add_key.sh
Text conflict in tools/add_marshalling.pl
Text conflict in tools/euca_conf.in
Text conflict in tools/euca_ipt
Text conflict in tools/euca_sync_key
Text conflict in tools/euca_watchdog.pl
Text conflict in tools/eucalyptus-cc.in
Contents conflict in tools/eucalyptus-cloud.in
Text conflict in tools/eucalyptus-nc.in
Contents conflict in tools/eucalyptus.conf.debian
Text conflict in tools/gen_kvm_libvirt_xml
Text conflict in tools/gen_libvirt_xml
Contents conflict in tools/rocks-doom-device.sh
Text conflict in tools/run_axis.sh
Text conflict in tools/set_env.sh
Text conflict in util/eucalyptus-config.h.in
To merge this branch: bzr merge lp://qastaging/~kirkland/eucalyptus/powernap-fix
Reviewer Review Type Date Requested Status
Eucalyptus Maintainers Pending
Review via email: mp+18867@code.qastaging.launchpad.net
To post a comment you must log in.
Revision history for this message
Dustin Kirkland  (kirkland) wrote :

See commit message. Minor fix for Eucalyptus/Powernap support.

Unmerged revisions

1181. By Dustin Kirkland <kirkland@x200>

powernap 1.8 uses upstart, and therefore had to deprecate the:
 /etc/init.d/powernap now
interface to sending the "powernap now" signal, since upstart does not support
 passing of arbitrary commands to init.

powernap 1.8 now installs a /usr/sbin/powernap-now binary which does the same
thing as the previous init based invocation.

Update Eucalyptus to use this instead.

Signed-off-by: Dustin Kirkland <email address hidden>

1180. By Neil <neil@pall>

tweaked default config file.

1179. By Neil <neil@pall>

tweaked init script so that options disabled by default will be disabled when not specified.

1178. By root <root@gibson>

Add ability to disable tunneling in eucalyptus.conf (DISABLE_TUNNELING) for debugging purposes, some network features of Eucalyptus will not work properly in MANAGED/MANAGED-NOVLAN mode(s) when this option is set to "Y". LP: #518601

1177. By Neil <neil@pall>

fixes LP: #517769

1176. By decker <decker@hawaii>

fixes for common operations to restore client compatibility for ec2 41510, 41620, 42584, 45772, 46266.

1175. By decker <decker@hawaii>

handle bad parameters in query requests.

1174. By decker <decker@hawaii>

make comments in parameter configs possible, start to document configs for channels & vm state, set sane default for cert and client factory.

1173. By decker <decker@hawaii>

fix detection of orphan address mappings.

1172. By decker <decker@hawaii>

fix updating of vm state w/ dns info

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '.bzrignore'
2--- .bzrignore 2009-01-25 03:55:28 +0000
3+++ .bzrignore 2010-02-08 18:57:19 +0000
4@@ -1,1 +1,28 @@
5-lib
6+clc/target
7+clc/bin
8+clc/deps
9+clc/lib
10+clc/.classpath
11+*.class
12+clc/modules/authentication/build
13+clc/modules/bootstrap/eucalyptus-cloud
14+clc/modules/cloud/build
15+clc/modules/cluster-manager/build
16+clc/modules/configuration/build
17+clc/modules/core/build
18+clc/modules/database/build
19+clc/modules/dns/build
20+clc/modules/group-manager/build
21+clc/modules/image-manager/build
22+clc/modules/interface/build
23+clc/modules/key-manager/build
24+clc/modules/msgs/build
25+clc/modules/msgs/src/main/resources/msgs-binding.xml
26+clc/modules/storage-common/build
27+clc/modules/storage-controller/build
28+clc/modules/storage-controller/include
29+clc/modules/walrus/build
30+clc/modules/wsstack/build
31+clc/modules/www/build
32+clc/modules/www/build-war
33+
34
35=== modified file 'CHANGELOG'
36--- CHANGELOG 2009-06-30 19:03:08 +0000
37+++ CHANGELOG 2010-02-08 18:57:19 +0000
38@@ -1,3 +1,4 @@
39+<<<<<<< TREE
40 *Sat Jun 27 2009 Eucalyptus Systems (support@open.eucalyptus.com)
41 * New version 1.5.2
42 * A lot of bug fixes and improvements
43@@ -12,6 +13,82 @@
44 and many more...
45
46 *Thu Apr 30 2009 mayhem group (support@open.eucalyptus.com)
47+=======
48+*Thu Nov 5 2009 Eucalyptus Systems (support@eucalyptus.com)
49+ * Version 1.6.1
50+ * Added support for multiple clusters (availability zones)
51+ * Allow components (cloud, walrus, sc, cc, nc) to be hosted on
52+ different machines
53+ * Support for dynamic instance and bucket DNS
54+ * Better startup (no need for ant anymore, much faster)
55+ * Reworked part of the network provisioning code for
56+ multi-cluster and better handling public IP addressing
57+ * Hypervisor improvements
58+ o switched default kvm ethernet interface to e1000
59+ o serialized calls to the xen hypervisor
60+ * Added helpers to integrate with nagios and/or ganglia
61+ * The Web UI is now theme-able (at compile time)
62+ * A lot of work toward long term stability: run the code thru
63+ different code/memory checker, re-engineer the java stack to be
64+ faster and more robust.
65+ * V Closes bugs:
66+
67+ #426469 #426576 #428546 #428654 #428710 #430260 #430356 #430888
68+ #430922 #431939 #430830 #431933 #431935 #426469 #431934 #431937
69+ #431931 #426467 #430830 #426389 #426389 #430944 #432604 #432823
70+ #436274 #436276 #436290 #436313 #436407 #436885 #436917 #437014
71+ #437026 #436407 #430957 #430226 #388934 #440744 #440817 #440950
72+ #441033 #441035 #441020 #441019 #443325 #443325 #443314 #444838
73+ #445206 #444908 #445206 #444908 #445997 #447585 #447555 #444838
74+ #449135 #438565 #449948 #430266 #398867 #449948 #401996 #449944
75+ #450915 #451795 #454405 #456877 #456878 #461394 #461444 #460085
76+ #404842 #462940 #456878 #406049
77+
78+*Fri Jul 17 2009 Eucalyptus Systems (support@eucalyptus.com)
79+ * Version 1.5.2
80+ * A lot of bug fixes and improvements
81+ * Eucalytpus now runs as user 'eucalyptus' by default
82+ * added new UI tab 'Extras' that includes links to pre-packaged images
83+ and client tools
84+ * Fixed support for client tools (including fixes to the REST interface).
85+ * Closes bugs:
86+
87+ #368975 #375809 #375805 #376575 #354787 #382522 #357350 #375105
88+ #359855 #384069 #359855 #357499 #384117 #384119 #375093 #384119
89+ #356580 #384123 #359855 #356389 #384069 #384119 #357849 #359855
90+ #384124 #384126 #384126 #384652 #385660 #386430 #357440
91+
92+*Fri May 1 2009 Eucalyptus Systems (support@eucalyptus.com)
93+ * Version 1.5.1
94+ * Elastic Block Store (EBS) support (volumes & snapshots)
95+ * Walrus improvements:
96+ o Support for groups in ACLS
97+ o Fixed issues with meta data support
98+ o Web browser form-based uploads via HTTP POST
99+ o Object copying
100+ o Query string authentication
101+ o Support for arbitrary key names
102+ o Compressed image downloads and fixes to image caching
103+ o Reduced memory requirement
104+ * Network improvement: new MANAGED-NOVLAN mode
105+ * Node-side improvements:
106+ o Support for the KVM hypervisor
107+ o Compression & retries on Walrus downloads
108+ o Reworked caching (now with configurable limit)
109+ * Web UI improvements:
110+ o Cloud registration with Rightscale (from admin's 'Credentials'
111+tab)
112+ o New configuration options for Walrus
113+ o Better screening of usernames
114+ o Fixed account confirmation glitches
115+ * Building and installation improvements
116+ o Better Java installation checking
117+ o New command-line administration: euca_conf -addcluster ... -addnode ...
118+ o Non-root user deployment of Eucalyptus
119+ o Binary packages for more distributions (Ubuntu et al)
120+
121+*Thu Apr 30 2009 mayhem group (support@eucalyptus.com)
122+>>>>>>> MERGE-SOURCE
123 * Elastic Block Store (EBS) support (volumes & snapshots)
124 * Walrus improvements:
125 o Support for groups in ACLS
126@@ -128,3 +205,6 @@
127 *Sat May 21 2008 mayhem group (support@open.eucalyptus.com)
128 - first release of eucalyptus
129
130+
131+
132+
133
134=== modified file 'INSTALL'
135--- INSTALL 2009-07-06 23:45:46 +0000
136+++ INSTALL 2010-02-08 18:57:19 +0000
137@@ -22,17 +22,29 @@
138
139 Download either
140
141+<<<<<<< TREE
142 * eucalyptus-1.5.2-src.tar.gz (Eucalyptus source with included java
143+=======
144+ * eucalyptus-1.6.2-src.tar.gz (Eucalyptus source with included java
145+>>>>>>> MERGE-SOURCE
146 libraries)
147
148 or
149
150+<<<<<<< TREE
151 * eucalyptus-1.5.2-src-online.tar.gz (Eucalyptus source that will
152+=======
153+ * eucalyptus-1.6.2-src-online.tar.gz (Eucalyptus source that will
154+>>>>>>> MERGE-SOURCE
155 download java libraries at build-time)
156
157 and for both
158
159+<<<<<<< TREE
160 * eucalyptus-1.5.2-src-deps.tar.gz (Eucalyptus C library dependency
161+=======
162+ * eucalyptus-1.6.2-src-deps.tar.gz (Eucalyptus C library dependency
163+>>>>>>> MERGE-SOURCE
164 packages)
165
166 All packages can be found on the Eucalyptus Web site:
167@@ -42,17 +54,29 @@
168 Unpack the Eucalyptus source:
169
170 {{{
171+<<<<<<< TREE
172 tar zvxf eucalyptus-1.5.2-src.tar.gz
173+=======
174+tar zvxf eucalyptus-1.6.2-src.tar.gz
175+>>>>>>> MERGE-SOURCE
176 }}}
177
178+<<<<<<< TREE
179 Now you should have a directory eucalyptus-1.5.2. To simplify the
180+=======
181+Now you should have a directory eucalyptus-1.6.2. To simplify the
182+>>>>>>> MERGE-SOURCE
183 remainder of the installation, define EUCALYPTUS_SRC environment
184 variable to be the top of the source tree of eucalyptus and the
185 variable EUCALYPTUS to be the directory where eucalyptus will be
186 installed (we recommend using `/opt/eucalyptus/`):
187
188 {{{
189+<<<<<<< TREE
190 cd eucalyptus-1.5.2
191+=======
192+cd eucalyptus-1.6.2
193+>>>>>>> MERGE-SOURCE
194 export EUCALYPTUS_SRC=`pwd`
195 export EUCALYPTUS=/opt/eucalyptus
196 }}}
197@@ -62,7 +86,11 @@
198
199 To install Eucalyptus, you need to build packages that Eucalyptus
200 depends on, which we provide in the above-mentioned package
201+<<<<<<< TREE
202 eucalyptus-1.5.2-src-deps.tar.gz. For the sake of this discussion, we
203+=======
204+eucalyptus-1.6.2-src-deps.tar.gz. For the sake of this discussion, we
205+>>>>>>> MERGE-SOURCE
206 are going to assume that all packages have been untarred inside
207 "$EUCALYPTUS_SRC/eucalyptus-src-deps/" as above and will be installed
208 in "$EUCALYPTUS/packages".
209@@ -72,7 +100,11 @@
210
211 {{{
212 cd $EUCALYPTUS_SRC
213+<<<<<<< TREE
214 tar zvxf ../eucalyptus-1.5.2-src-deps.tar.gz
215+=======
216+tar zvxf ../eucalyptus-1.6.2-src-deps.tar.gz
217+>>>>>>> MERGE-SOURCE
218 mkdir -p $EUCALYPTUS/packages/
219 }}}
220
221@@ -118,23 +150,29 @@
222 Axis2/C as follows:
223
224 {{{
225-export AXIS2C_HOME=$EUCALYPTUS/packages/axis2c-1.5.0
226+export AXIS2C_HOME=$EUCALYPTUS/packages/axis2c-1.6.0
227 cd $EUCALYPTUS_SRC/eucalyptus-src-deps/
228+<<<<<<< TREE
229 tar zvxf axis2c-src-1.5.0.tar.gz
230 cd axis2c-src-1.5.0
231 CFLAGS="-w" ./configure --prefix=${AXIS2C_HOME} --with-apache2=$APACHE_INCLUDES --with-apr=$APR_INCLUDES
232+=======
233+tar zvxf axis2c-src-1.6.0.tar.gz
234+cd axis2c-src-1.6.0
235+CFLAGS="-w" ./configure --prefix=${AXIS2C_HOME} --with-apache2=/usr/include/apache2 --with-apr=/usr/include/apr-1.0 --enable-multi-thread=no
236+>>>>>>> MERGE-SOURCE
237 make ; make install
238 }}}
239
240 === c. Rampart/C ===
241
242 {{{
243-export AXIS2C_HOME=$EUCALYPTUS/packages/axis2c-1.5.0
244+export AXIS2C_HOME=$EUCALYPTUS/packages/axis2c-1.6.0
245 export LD_LIBRARY_PATH=${AXIS2C_HOME}/lib:$LD_LIBRARY_PATH
246 cd $EUCALYPTUS_SRC/eucalyptus-src-deps/
247-tar zvxf rampartc-src-1.2.0.tar.gz
248-cd rampartc-src-1.2.0
249-./configure --prefix=${AXIS2C_HOME} --enable-static=no --with-axis2=${AXIS2C_HOME}/include/axis2-1.5.0
250+tar zvxf rampartc-src-1.3.0.tar.gz
251+cd rampartc-src-1.3.0
252+./configure --prefix=${AXIS2C_HOME} --enable-static=no --with-axis2=${AXIS2C_HOME}/include/axis2-1.6.0
253 make ; make install
254 }}}
255
256@@ -164,6 +202,7 @@
257 documentation of the dependent package for help (e.g., see apache.org
258 Web site for help with compiling the httpd server).
259
260+<<<<<<< TREE
261 To run Eucalyptus, you'll also need to install several run-time
262 dependencies:
263
264@@ -241,13 +280,17 @@
265 Eucalyptus Team. Many other third-party tools can also be used for
266 some of the tasks, as described on the ecosystem page
267 (http://open.eucalyptus.com/wiki/ToolsEcosystem).
268+=======
269+Furthermore, you are required to have functioning Euca2ool command-line
270+tools downloaded and installed from the Eucalyptus website.
271+>>>>>>> MERGE-SOURCE
272
273 3. Building Eucalyptus
274 ----------------------------------------------------------------------
275
276 {{{
277 cd $EUCALYPTUS_SRC
278-./configure --with-axis2=$EUCALYPTUS/packages/axis2-1.4 --with-axis2c=$EUCALYPTUS/packages/axis2c-1.5.0 --enable-debug --prefix=$EUCALYPTUS
279+./configure --with-axis2=$EUCALYPTUS/packages/axis2-1.4 --with-axis2c=$EUCALYPTUS/packages/axis2c-1.6.0 --enable-debug --prefix=$EUCALYPTUS
280 cd clc/; make deps; cd ..
281 make ; make install
282 }}}
283@@ -381,6 +424,7 @@
284
285 === a. Front-end Configuration ===
286
287+<<<<<<< TREE
288 To connect the Eucalyptus components together, you will need to register the Cluster with the Cloud, and register each Node with the Cluster. On the front-end, do:
289
290 {{{
291@@ -405,6 +449,31 @@
292 }}}
293
294 OPTIONAL: Eucalyptus provides some options when it comes to configuring your VM virtual network. By default, we enable the simplest but least feature-ful networking mode, called SYSTEM in the eucalyptus.conf file: Eucalyptus will assume that you already have a DHCP server configured to serve IP addresses to VMs that start on cluster nodes. Please consult the the brief explanation in the comments of the configuration file and the [http://open.eucalyptus.com/wiki/EucalyptusNetworking_v1.5.2 Eucalyptus Networking] document if you wish to try other modes that will enable more features (security groups, elastic IPs, etc.).
295+=======
296+There are four front-end components (Cloud-controller, Walrus,
297+Storage-controller and Cluster-controller). The CLC, Walrus and the
298+SC are services that must be enabled independently and are all
299+controlled using the 'eucalyptus-cloud' initialization script. To enable the services, on the front-end, run:
300+
301+{{{
302+$EUCALYPTUS/usr/sbin/euca_conf --enable cloud
303+$EUCALYPTUS/usr/sbin/euca_conf --enable walrus
304+$EUCALYPTUS/usr/sbin/euca_conf --enable sc
305+}}}
306+
307+There are correponding '--disable' options for disabling a service. Note that enabling/disabling services requires a (re)start of the 'eucalyptus-cloud' service in order for the change to take effect.
308+
309+OPTIONAL: Eucalyptus provides some options when it comes to
310+configuring your VM virtual network. By default, we enable the
311+simplest but least feature-ful networking mode, called SYSTEM in the
312+eucalyptus.conf file: Eucalyptus will assume that you already have a
313+DHCP server configured to serve IP addresses to VMs that start on
314+cluster nodes. Please consult the the brief explanation in the
315+comments of the configuration file and the
316+[http://eucalyptus.cs.ucsb.edu/wiki/EucalyptusNetworking_v1.6
317+Eucalyptus Networking] document if you wish to try other modes that
318+will enable more features (security groups, elastic IPs, etc.).
319+>>>>>>> MERGE-SOURCE
320
321 === b. Compute-node Configuration ===
322
323@@ -437,13 +506,99 @@
324 each of your nodes is configured properly. For instance, correct
325 values for VNET_INTERFACE and VNET_BRIDGE may differ from your
326 front-end. See
327+<<<<<<< TREE
328 [http://open.eucalyptus.com/wiki/EucalyptusNetworking_v1.5.2
329+=======
330+[http://eucalyptus.cs.ucsb.edu/wiki/EucalyptusNetworking_v1.6
331+>>>>>>> MERGE-SOURCE
332 Eucalyptus Networking] for more details.
333
334+<<<<<<< TREE
335 === c. Web-interface configuration ===
336
337 To configure eucalyptus, after you started all components, point your
338 browser to
339+=======
340+6. Running Eucalyptus
341+----------------------------------------------------------------------
342+
343+First, make sure that you have all of the runtime dependencies of
344+Eucalyptus installed, based on your chosen set of configuration
345+parameters. If there is a problem with runtime dependencies (for
346+instance, if Eucalyptus cannot find/interact with them), all errors
347+will be reported in log files located in
348+$EUCALYPTUS/var/log/eucalyptus.
349+
350+Use the init-scripts to start each component on the appropriate host. Most likely, on the front-end you would run:
351+
352+{{{
353+$EUCALYPTUS/etc/init.d/eucalyptus-cloud start
354+$EUCALYPTUS/etc/init.d/eucalyptus-cc start
355+}}}
356+
357+And on each of the compute nodes you would run:
358+
359+{{{
360+$EUCALYPTUS/etc/init.d/eucalyptus-nc start
361+}}}
362+
363+To stop them you call the script with ''stop'' instead of start.
364+
365+If you installed from binary packages you can now skip to step 3. If
366+you installed from source and you want to have eucalyptus started
367+automatically when your machines are (re)booted, you can add the
368+following symlinks on the appropriate hosts
369+
370+{{{
371+ln -sf $EUCALYPTUS/etc/init.d/eucalyptus-cloud /etc/init.d/eucalyptus-cloud
372+ln -sf $EUCALYPTUS/etc/init.d/eucalyptus-cc /etc/init.d/eucalyptus-cc
373+ln -sf $EUCALYPTUS/etc/init.d/eucalyptus-nc /etc/init.d/eucalyptus-nc
374+}}}
375+
376+and then add the symlinks to the distribution's booting process. This
377+process differs from distribution to distribution. For example if you
378+have `update-rc.d` available you can run:
379+
380+{{{
381+update-rc.d eucalyptus-cloud defaults
382+}}}
383+
384+or if you have `chkconfig` available you can run:
385+
386+{{{
387+chkconfig eucalyptus-cloud on
388+}}}
389+
390+7. Component Registration
391+----------------------------------------------------------------------
392+
393+To connect the Eucalyptus components together, you will need to
394+register the Walrus, Storage-controller, and Cluster-controller with
395+the Cloud-controller, then register each Node-controller with the
396+Cluster-controller. On the front-end, run:
397+
398+{{{
399+$EUCALYPTUS/usr/sbin/euca_conf --register-walrus <front-end-ip> $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf
400+$EUCALYPTUS/usr/sbin/euca_conf --register-cluster <clustername> <front-end-ip> $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf
401+$EUCALYPTUS/usr/sbin/euca_conf --register-sc <clustername> <front-end-ip> $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf
402+}}}
403+
404+where <clustername> is the name your would like to attach to your
405+Cluster, and <front-end-ip> is the hostname of the machine or the IP
406+where the Walrus, Storage-controller, and Cluster-controller are
407+running. Finally, on the front-end, register Node-controllers
408+one-by-one (this involves connecting to the node via SSH to propagate
409+the cryptographic keys, so you may be prompted for a password):
410+
411+{{{
412+$EUCALYPTUS/usr/sbin/euca_conf --register-nodes "<nodehost1> <nodehost2> ... <nodehostn> $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf
413+}}}
414+
415+8. First-time Run-time Setup
416+----------------------------------------------------------------------
417+
418+To configure eucalyptus, after you started all components, login to
419+>>>>>>> MERGE-SOURCE
420
421 https://localhost:8443
422
423@@ -464,11 +619,11 @@
424 ClC.
425
426 After completing the first-time tasks, you will see the
427-'Configuration' tab. To use the system with the EC2 client tools, you
428-must generate user credentials. Click the 'Credentials' tab and
429-download your certificates via the 'Download certificates' button.
430-You will be able to use these x509 certificates with Amazon EC2 tools
431-and third-party tools like rightscale.com.
432+'Configuration' tab. To use the system with the Euca2ools client
433+tools, you must generate user credentials. Click the 'Credentials'
434+tab and download your certificates via the 'Download certificates'
435+button. You will be able to use these credentials with Euca2ools,
436+Amazon EC2 tools and other third-party tools such as rightscale.com.
437
438 Create a directory, for example $HOME/.euca,
439
440@@ -483,12 +638,17 @@
441 }}}
442
443 Note that you will have to source this file every time you intend to
444+<<<<<<< TREE
445 use EC2 compatible command-line tools, or you may add it to your local
446+=======
447+use the Euca2ools command-line tools, or you may add it to your local
448+>>>>>>> MERGE-SOURCE
449 default environment.
450
451 9. Adding images to Eucalyptus
452 ----------------------------------------------------------------------
453
454+<<<<<<< TREE
455 First, be sure to source your 'eucarc' file before running the commands below. Note that all users may upload and register images (depending on access granted to them by the Eucalyptus administrator), but only the admin user may ever upload/register kernels or ramdisks.
456
457 Second, the instructions below rely on the euca2ools
458@@ -606,6 +766,42 @@
459 Now, the newly uploaded image(s) should be ready to start using (see
460 http://open.eucalyptus.com/wiki/EucalyptusUserGuide_v1.5.2 for more
461 information on using Eucalyptus).
462+=======
463+First off, be sure to source the 'eucarc' file before running the
464+commands below.
465+
466+To run VMs, one must add a root disk image, a kernel, and, optionally,
467+a ramdisk for the kernel. Each is added to Walrus separately, using
468+three Euca2ool commands. The following example uses the test image that we
469+provide. Note that this image may or may not work within your local
470+hypervisor environment. It is highly recommended that you try to
471+manually run the image on your hypervisor before trying to use it
472+within Eucalyptus. Unpack it to any directory:
473+
474+; tar zxvf euca-ttylinux.tgz
475+
476+Add the root filesystem image to Walrus:
477+
478+; euca-bundle-image -i ttylinux.img
479+; euca-upload-bundle -b image-bukkit -m /tmp/ttylinux.img.manifest.xml
480+; euca-register image-bukkit/ttylinux.img.manifest.xml
481+
482+then the kernel
483+
484+; euca-bundle-image -i vmlinuz-2.6.16.33-xen --kernel true
485+; euca-upload-bundle -b kernel-bukkit -m /tmp/vmlinuz-2.6.16.33-xen.manifest.xml
486+; euca-register kernel-bukkit/vmlinuz-2.6.16.33-xen.manifest.xml
487+
488+Although our test image does not require a ramdisk, one can be added
489+in the manner similar to the kernel by using "--ramdisk true" flag.
490+
491+Once you have registered at least one kernel and one ramdisk, you can go
492+back to the administrative interface (https://<cloudmanager>:8443), on the
493+'Configuration' tab and add the eki-xxxxxxxx and eri-xxxxxxxx as the
494+defaults kernel/ramdisk to be used when no kernel is specified.
495+
496+Now you should be able to run all the Euca2ool commands.
497+>>>>>>> MERGE-SOURCE
498
499 ---
500 Please see http://open.eucalyptus.com for more info, downloads,
501
502=== modified file 'Makedefs.in'
503--- Makedefs.in 2009-05-28 21:08:18 +0000
504+++ Makedefs.in 2010-02-08 18:57:19 +0000
505@@ -4,7 +4,7 @@
506 #
507
508 # which version
509-export VERSION = @VERSION@
510+export VERSION = @EUCA_VERSION@
511
512 # packages we depend upon
513 export AXIS2C_HOME = @AXIS2C_HOME@
514@@ -30,11 +30,9 @@
515 sbindir = ${prefix}/usr/sbin
516 datarootdir = ${usrdir}/share
517
518-# where we are going to install eucalyptus, and Co.
519+# where we are going to install eucalyptus and where are the sources
520 export EUCALYPTUS = ${prefix}
521 TOP = @TOP@
522-DIST_DIR = eucalyptus-$(VERSION)
523-DIST_ROOT = $(TOP)/$(DIST_DIR)
524
525 # system dependents
526 CC = @CC@
527@@ -45,3 +43,9 @@
528 INSTALL = @INSTALL@
529 ANT = @ANT@ -e
530 WSDL2C = @WSDL2C@
531+JAVA_HOME = @JAVA_HOME@
532+RM = @RM@
533+
534+# compile time configurations
535+euca_theme = @INTERFACE_THEME@
536+extensions = @EXTENSIONS@
537
538=== modified file 'Makefile'
539--- Makefile 2009-07-16 18:19:46 +0000
540+++ Makefile 2010-02-08 18:57:19 +0000
541@@ -69,22 +69,9 @@
542 gatherlog \
543 node \
544 cluster \
545- clc
546-
547-# files we are going to package
548-DIST_FILES = CHANGELOG \
549- configure \
550- eucalyptus.spec.in \
551- INSTALL \
552- install-sh \
553- LICENSE \
554- Makedefs.in \
555- Makefile \
556- README \
557- VERSION
558-DIST_NAME = $(DIST_DIR).tgz
559-
560-.PHONY: all clean distclean build dist
561+ clc
562+
563+.PHONY: all clean distclean build
564
565 all: build
566
567@@ -111,23 +98,23 @@
568 (cd $$subdir && $(MAKE) $@) || exit $$? ; done
569
570 install: deploy
571- @$(INSTALL) -d $(prefix)
572- @$(INSTALL) -d $(etcdir)/eucalyptus/cloud.d
573- @$(INSTALL) -m 0644 VERSION $(etcdir)/eucalyptus/eucalyptus-version
574- @$(INSTALL) -d $(etcdir)/init.d
575- @$(INSTALL) -d $(vardir)/run/eucalyptus/net
576- @$(INSTALL) -d $(vardir)/lib/eucalyptus/keys
577- @$(INSTALL) -d $(vardir)/log/eucalyptus
578- @$(INSTALL) -d $(datarootdir)/eucalyptus
579- @$(INSTALL) -d $(usrdir)/sbin
580- @$(INSTALL) -d $(usrdir)/lib/eucalyptus
581+ @$(INSTALL) -d $(DESTDIR)$(prefix)
582+ @$(INSTALL) -d $(DESTDIR)$(etcdir)/eucalyptus/cloud.d
583+ @$(INSTALL) -m 0644 VERSION $(DESTDIR)$(etcdir)/eucalyptus/eucalyptus-version
584+ @$(INSTALL) -d $(DESTDIR)$(etcdir)/init.d
585+ @$(INSTALL) -d $(DESTDIR)$(vardir)/run/eucalyptus/net
586+ @$(INSTALL) -d $(DESTDIR)$(vardir)/lib/eucalyptus/keys
587+ @$(INSTALL) -d $(DESTDIR)$(vardir)/lib/eucalyptus/CC
588+ @$(INSTALL) -d $(DESTDIR)$(vardir)/log/eucalyptus
589+ @$(INSTALL) -d $(DESTDIR)$(datarootdir)/eucalyptus
590+ @$(INSTALL) -d $(DESTDIR)$(usrdir)/sbin
591+ @$(INSTALL) -d $(DESTDIR)$(usrdir)/lib/eucalyptus
592+ @$(INSTALL) -d $(DESTDIR)/etc/bash_completion.d
593 @for subdir in $(SUBDIRS); do \
594 (cd $$subdir && $(MAKE) $@) || exit $$? ; done
595
596-dist:
597- @rm -rf $(DIST_ROOT) $(DIST_NAME)
598- @$(INSTALL) -d $(DIST_ROOT)
599- @$(INSTALL) $(DIST_FILES) $(DIST_ROOT)
600+uninstall:
601+ @$(RM) -f $(etcdir)/eucalyptus/eucalyptus-version
602 @for subdir in $(SUBDIRS); do \
603 (cd $$subdir && $(MAKE) $@) || exit $$? ; done
604
605@@ -138,15 +125,10 @@
606 distclean: clean
607 @for subdir in $(SUBDIRS); do \
608 (cd $$subdir && $(MAKE) $@) || exit $$? ; done
609- @rm -f config.cache config.log config.status Makedefs tags TAGS eucalyptus*spec
610+ @rm -f config.cache config.log config.status Makedefs tags TAGS
611 @# they where part of CLEAN
612 @rm -rf lib
613
614-# the following target is used to remove eucalyptuys from your system
615-uninstall:
616- @echo something to do here
617-
618-
619 Makedefs: Makedefs.in config.status
620 ./config.status
621
622
623=== modified file 'README'
624--- README 2009-04-30 23:51:57 +0000
625+++ README 2010-02-08 18:57:19 +0000
626@@ -1,37 +1,39 @@
627 EUCALYPTUS: Elastic Utility Computing Architecture
628- for Linking Your Programs to Transiently Useful Systems
629+ for Linking Your Programs To Useful Systems
630
631 EUCALYPTUS is an open source service overlay that implements elastic
632 computing using existing resources. The goal of EUCALYPTUS is to allow
633 sites with existing clusters and server infrastructure to co-host an
634-elastic computing service that is interface-compatible with Amazon's EC2.
635-
636-Because EUCALYPTUS is designed to function as an overlay, it must be able to
637-incorporate resources from different clusters or pools. For example,
638-EUCALYPTUS allows its administrator to set up a "cloud" that permit users to
639-virtualized OS instances on a number of clusters transparently. Enabling the
640-necessary network interconnectivity in a way that is secure and portable is
641-one novel feature of EUCALYPTUS. Another stems from its ability to provide
642-interface compatibility with the existing Amazon EC2 service. EUCALYPTUS
643-users can develop using their own local resources and then transition
644-directly some or all of their functionality to EC2.
645-
646-Finally, a key requirement of EUCALYPTUS is that it be able to serve as a
647-research platform for elastic computing. To this end, its design makes two
648-significant contributions. The first concerns the use of scarce network
649-resources in a structured way. A EUCALYPTUS allocation can function
650-equally well in an environment in which all processors have externally
651-routable IP addresses (e.g. Amazon's current environment) as well as one in
652-which only a certain "head instance" is externally routable (as is the case
653-with most academic research clusters today). Secondly, EUCALYPTUS
654-leverages the extensive Linux packaging and deployment support that is
655-currently available while requiring minimal modification to the existing
656+elastic computing service that is interface-compatible with Amazon's
657+EC2.
658+
659+Because EUCALYPTUS is designed to function as an overlay, it must be
660+able to incorporate resources from different clusters or pools. For
661+example, EUCALYPTUS allows its administrator to set up a "cloud" that
662+permit users to virtualized OS instances on a number of clusters
663+transparently. Enabling the necessary network interconnectivity in a
664+way that is secure and portable is one novel feature of EUCALYPTUS.
665+Another stems from its ability to provide interface compatibility with
666+the existing Amazon EC2 service. EUCALYPTUS users can develop using
667+their own local resources and then transition directly some or all of
668+their functionality to EC2.
669+
670+Finally, a key requirement of EUCALYPTUS is that it be able to serve
671+as a research platform for elastic computing. To this end, its design
672+makes two significant contributions. The first concerns the use of
673+scarce network resources in a structured way. A EUCALYPTUS allocation
674+can function equally well in an environment in which all processors
675+have externally routable IP addresses (e.g. Amazon's current
676+environment) as well as one in which only a certain "front-end
677+machine" is externally routable (as is the case with many production
678+and research clusters today). Secondly, EUCALYPTUS leverages the
679+extensive Linux packaging and deployment support that is currently
680+available while requiring minimal modification to the existing
681 installed OS base. Specifically, the target resources need only run a
682-standard Xen-enabled kernel with Xen 3.1 or later hypervisor support. All
683-other functionality installs directly without need for kernel patching or
684-module additions to the host OS domain.
685+standard hypervisor (Xen, KVM), along with common open-source Linux
686+utilities. All other functionality installs directly without need for
687+kernel patching or module additions to the host OS domain.
688
689 For more information and complete documentation, please visit our
690 website (http://open.eucalyptus.com).
691
692-
693
694=== modified file 'VERSION'
695--- VERSION 2009-06-13 02:30:56 +0000
696+++ VERSION 2010-02-08 18:57:19 +0000
697@@ -1,1 +1,1 @@
698-1.5.2
699+1.6.2
700
701=== added file 'clc/.classpath'
702--- clc/.classpath 1970-01-01 00:00:00 +0000
703+++ clc/.classpath 2010-02-08 18:57:20 +0000
704@@ -0,0 +1,119 @@
705+<?xml version="1.0" encoding="UTF-8"?>
706+<classpath>
707+ <classpathentry kind="src" output="modules/msgs/build" path="modules/msgs/src/main/java"/>
708+ <classpathentry kind="src" path="modules/database/conf/scripts"/>
709+ <classpathentry kind="src" output="modules/database/build" path="modules/database/src/main/java"/>
710+ <classpathentry kind="src" output="modules/core/build" path="modules/core/src/main/java"/>
711+ <classpathentry kind="src" output="modules/wsstack/build" path="modules/wsstack/src/main/java"/>
712+ <classpathentry kind="src" output="modules/interface/build" path="modules/interface/src/main/java"/>
713+ <classpathentry kind="src" output="modules/cluster-manager/build" path="modules/cluster-manager/src/main/java"/>
714+ <classpathentry kind="src" output="modules/group-manager/build" path="modules/group-manager/src/main/java"/>
715+ <classpathentry kind="src" output="modules/image-manager/build" path="modules/image-manager/src/main/java"/>
716+ <classpathentry kind="src" output="modules/key-manager/build" path="modules/key-manager/src/main/java"/>
717+ <classpathentry kind="src" output="modules/storage-controller/build" path="modules/storage-controller/src/main/java"/>
718+ <classpathentry kind="src" output="modules/dns/build" path="modules/dns/src/main/java"/>
719+ <classpathentry kind="src" output="modules/authentication/build" path="modules/authentication/src/main/java"/>
720+ <classpathentry kind="src" output="modules/www/build" path="modules/www/src/main/java"/>
721+ <classpathentry kind="src" output="modules/cloud/build" path="modules/cloud/src/main/java"/>
722+ <classpathentry kind="src" output="modules/configuration/build" path="modules/configuration/src/main/java"/>
723+ <classpathentry kind="src" output="modules/walrus/build" path="modules/walrus/src/main/java"/>
724+ <classpathentry kind="src" output="modules/storage-common/build" path="modules/storage-common/src/main/java"/>
725+ <classpathentry kind="src" path="modules/configuration/conf/scripts"/>
726+ <classpathentry kind="con" path="GROOVY_SUPPORT"/>
727+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
728+ <classpathentry kind="lib" path="lib/activation-1.1.1.jar"/>
729+ <classpathentry kind="lib" path="lib/ant-1.7.jar"/>
730+ <classpathentry kind="lib" path="lib/antlr3-3.0.1+dfsg.jar"/>
731+ <classpathentry kind="lib" path="lib/antlrall.jar"/>
732+ <classpathentry kind="lib" path="lib/asm2-2.2.3.jar"/>
733+ <classpathentry kind="lib" path="lib/avalon-framework-4.2.0.jar"/>
734+ <classpathentry kind="lib" path="lib/axiom-api-1.2.8.jar"/>
735+ <classpathentry kind="lib" path="lib/axiom-dom-1.2.8.jar"/>
736+ <classpathentry kind="lib" path="lib/axiom-impl-1.2.8.jar"/>
737+ <classpathentry kind="lib" path="lib/backport-util-concurrent-2.2.jar"/>
738+ <classpathentry kind="lib" path="lib/bcel-5.2.jar"/>
739+ <classpathentry kind="lib" path="lib/bcprov.jar"/>
740+ <classpathentry kind="lib" path="lib/bsf-2.4.0.jar"/>
741+ <classpathentry kind="lib" path="lib/commons-beanutils-1.8.0-BETA.jar"/>
742+ <classpathentry kind="lib" path="lib/commons-cli-1.1.jar"/>
743+ <classpathentry kind="lib" path="lib/commons-codec-1.3.jar"/>
744+ <classpathentry kind="lib" path="lib/commons-collections3-3.2.1.jar"/>
745+ <classpathentry kind="lib" path="lib/commons-discovery-0.4.jar"/>
746+ <classpathentry kind="lib" path="lib/commons-fileupload-1.2.1.jar"/>
747+ <classpathentry kind="lib" path="lib/commons-httpclient-3.1.jar"/>
748+ <classpathentry kind="lib" path="lib/commons-io-1.4.jar"/>
749+ <classpathentry kind="lib" path="lib/commons-jxpath-1.2.jar"/>
750+ <classpathentry kind="lib" path="lib/commons-lang-2.4.jar"/>
751+ <classpathentry kind="lib" path="lib/commons-logging-1.1.1.jar"/>
752+ <classpathentry kind="lib" path="lib/commons-logging-adapters-1.1.1.jar"/>
753+ <classpathentry kind="lib" path="lib/commons-logging-api-1.1.1.jar"/>
754+ <classpathentry kind="lib" path="lib/commons-pool-1.4.jar"/>
755+ <classpathentry kind="lib" path="lib/dnsjava-2.0.6.jar"/>
756+ <classpathentry kind="lib" path="lib/dom4j-1.6.1.jar"/>
757+ <classpathentry kind="lib" path="lib/ecj.jar"/>
758+ <classpathentry kind="lib" path="lib/el-api-2.1.jar"/>
759+ <classpathentry kind="lib" path="lib/eucalyptus-commons-ext-0.4.jar"/>
760+ <classpathentry kind="lib" path="lib/excalibur-logkit.jar"/>
761+ <classpathentry kind="lib" path="lib/ezmorph-1.0.5.jar"/>
762+ <classpathentry kind="lib" path="lib/geronimo-activation-1.1-spec-1.0.1.jar"/>
763+ <classpathentry kind="lib" path="lib/geronimo-ejb-3.0-spec-1.0.1.jar"/>
764+ <classpathentry kind="lib" path="lib/geronimo-j2ee-connector-1.5-spec-1.1.jar"/>
765+ <classpathentry kind="lib" path="lib/geronimo-jms-1.1-spec-1.1.jar"/>
766+ <classpathentry kind="lib" path="lib/geronimo-jpa-3.0-spec-1.1.1.jar"/>
767+ <classpathentry kind="lib" path="lib/geronimo-jta-1.0.1b-spec-1.1.jar"/>
768+ <classpathentry kind="lib" path="lib/geronimo-stax-1.0-spec-1.0.1.jar"/>
769+ <classpathentry kind="lib" path="lib/gnumail-providers.jar"/>
770+ <classpathentry kind="lib" path="lib/gnumail.jar"/>
771+ <classpathentry kind="lib" path="lib/google-collect-20080808.jar"/>
772+ <classpathentry kind="lib" path="lib/groovy-1.6.3.jar"/>
773+ <classpathentry kind="lib" path="lib/gwt-dev-linux-1.6.4.jar"/>
774+ <classpathentry kind="lib" path="lib/gwt-servlet-1.6.4.jar"/>
775+ <classpathentry kind="lib" path="lib/gwt-user-1.6.4.jar"/>
776+ <classpathentry kind="lib" path="lib/hibernate-proxool-3.3.2.GA.jar"/>
777+ <classpathentry kind="lib" path="lib/hsqldb-1.8.0.10.jar"/>
778+ <classpathentry kind="lib" path="lib/hsqldbutil-1.8.0.10.jar"/>
779+ <classpathentry kind="lib" path="lib/inetlib-1.1.1.jar"/>
780+ <classpathentry kind="lib" path="lib/janino-2.5.15-1.jar"/>
781+ <classpathentry kind="lib" path="lib/javassist-3.8.1.jar"/>
782+ <classpathentry kind="lib" path="lib/jaxen-1.1.1.jar"/>
783+ <classpathentry kind="lib" path="lib/jaxp-1.3.jar"/>
784+ <classpathentry kind="lib" path="lib/jcl-over-slf4j-1.5.2.jar"/>
785+ <classpathentry kind="lib" path="lib/jettison-1.0.jar"/>
786+ <classpathentry kind="lib" path="lib/jetty6-6.1.19.jar"/>
787+ <classpathentry kind="lib" path="lib/jetty6-ajp-6.1.19.jar"/>
788+ <classpathentry kind="lib" path="lib/jetty6-client-6.1.19.jar"/>
789+ <classpathentry kind="lib" path="lib/jetty6-html-6.1.19.jar"/>
790+ <classpathentry kind="lib" path="lib/jetty6-management-6.1.19.jar"/>
791+ <classpathentry kind="lib" path="lib/jetty6-naming-6.1.19.jar"/>
792+ <classpathentry kind="lib" path="lib/jetty6-rewrite-handler-6.1.19.jar"/>
793+ <classpathentry kind="lib" path="lib/jetty6-servlet-tester-6.1.19.jar"/>
794+ <classpathentry kind="lib" path="lib/jetty6-sslengine-6.1.19.jar"/>
795+ <classpathentry kind="lib" path="lib/jetty6-util-6.1.19.jar"/>
796+ <classpathentry kind="lib" path="lib/jibx-bind-1.1.6a.jar"/>
797+ <classpathentry kind="lib" path="lib/jibx-extras-1.1.6a.jar"/>
798+ <classpathentry kind="lib" path="lib/jibx-run-1.1.6a.jar"/>
799+ <classpathentry kind="lib" path="lib/json-lib-2.2.2.jar"/>
800+ <classpathentry kind="lib" path="lib/jug-asl-2.0.0.jar"/>
801+ <classpathentry kind="lib" path="lib/jul-to-slf4j-1.5.2.jar"/>
802+ <classpathentry kind="lib" path="lib/junit-3.8.2.jar"/>
803+ <classpathentry kind="lib" path="lib/log4j-1.2.15.jar"/>
804+ <classpathentry kind="lib" path="lib/netty-3.1.0.CR1.jar"/>
805+ <classpathentry kind="lib" path="lib/openjdk-crypto.jar"/>
806+ <classpathentry kind="lib" path="lib/regexp-1.4.jar"/>
807+ <classpathentry kind="lib" path="lib/serializer.jar"/>
808+ <classpathentry kind="lib" path="lib/servlet-api-2.5.jar"/>
809+ <classpathentry kind="lib" path="lib/slf4j-api-1.5.2.jar"/>
810+ <classpathentry kind="lib" path="lib/slf4j-log4j12-1.5.2.jar"/>
811+ <classpathentry kind="lib" path="lib/stax2-api-3.0.1.jar"/>
812+ <classpathentry kind="lib" path="lib/woodstox-core-asl-4.0.6.jar"/>
813+ <classpathentry kind="lib" path="lib/wsdl4j-1.6.2.jar"/>
814+ <classpathentry kind="lib" path="lib/wss4j-1.5.7.jar"/>
815+ <classpathentry kind="lib" path="lib/xalan2.jar"/>
816+ <classpathentry kind="lib" path="lib/xercesImpl.jar"/>
817+ <classpathentry kind="lib" path="lib/xml-security-1.4.2.jar"/>
818+ <classpathentry kind="lib" path="lib/xom-1.1.jar"/>
819+ <classpathentry kind="lib" path="lib/xpp3-1.1.3.4.O.jar"/>
820+ <classpathentry kind="lib" path="lib/cglib-2.1.3.jar"/>
821+ <classpathentry kind="lib" path="lib/proxool-0.9.1.jar"/>
822+ <classpathentry kind="output" path="bin"/>
823+</classpath>
824
825=== added file 'clc/.project'
826--- clc/.project 1970-01-01 00:00:00 +0000
827+++ clc/.project 2010-02-08 18:57:20 +0000
828@@ -0,0 +1,33 @@
829+<?xml version="1.0" encoding="UTF-8"?>
830+<projectDescription>
831+ <name>1.6.2</name>
832+ <comment></comment>
833+ <projects>
834+ </projects>
835+ <buildSpec>
836+ <buildCommand>
837+ <name>org.eclipse.wst.common.project.facet.core.builder</name>
838+ <arguments>
839+ </arguments>
840+ </buildCommand>
841+ <buildCommand>
842+ <name>org.eclipse.jdt.core.javabuilder</name>
843+ <arguments>
844+ </arguments>
845+ </buildCommand>
846+ </buildSpec>
847+ <natures>
848+ <nature>org.eclipse.jdt.groovy.core.groovyNature</nature>
849+ <nature>org.eclipse.jdt.core.javanature</nature>
850+ <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
851+ <nature>com.tssap.selena.model.modeling_nature</nature>
852+ <nature>com.borland.selena.uml20.uml20_nature</nature>
853+ </natures>
854+ <linkedResources>
855+ <link>
856+ <name>Suspended Root</name>
857+ <type>2</type>
858+ <locationURI>SuspendedRootVariable</locationURI>
859+ </link>
860+ </linkedResources>
861+</projectDescription>
862
863=== added directory 'clc/.settings'
864=== added file 'clc/.settings/org.codehaus.groovy.eclipse.preferences.prefs'
865--- clc/.settings/org.codehaus.groovy.eclipse.preferences.prefs 1970-01-01 00:00:00 +0000
866+++ clc/.settings/org.codehaus.groovy.eclipse.preferences.prefs 2010-02-08 18:57:20 +0000
867@@ -0,0 +1,4 @@
868+#Mon Aug 17 15:22:22 PDT 2009
869+eclipse.preferences.version=1
870+groovy.compiler.output.path=bin-groovy
871+support.groovy=true
872
873=== added file 'clc/.settings/org.eclipse.jdt.core.prefs'
874--- clc/.settings/org.eclipse.jdt.core.prefs 1970-01-01 00:00:00 +0000
875+++ clc/.settings/org.eclipse.jdt.core.prefs 2010-02-08 18:57:20 +0000
876@@ -0,0 +1,13 @@
877+#Tue Aug 18 23:41:14 PDT 2009
878+eclipse.preferences.version=1
879+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
880+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
881+org.eclipse.jdt.core.builder.invalidClasspath=abort
882+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
883+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
884+org.eclipse.jdt.core.circularClasspath=error
885+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
886+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
887+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
888+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
889+org.eclipse.jdt.core.incompleteClasspath=error
890
891=== added file 'clc/.settings/org.eclipse.jdt.launching.prefs'
892--- clc/.settings/org.eclipse.jdt.launching.prefs 1970-01-01 00:00:00 +0000
893+++ clc/.settings/org.eclipse.jdt.launching.prefs 2010-02-08 18:57:20 +0000
894@@ -0,0 +1,3 @@
895+#Wed Aug 05 02:22:34 PDT 2009
896+eclipse.preferences.version=1
897+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
898
899=== modified file 'clc/Makefile'
900--- clc/Makefile 2009-05-28 21:08:18 +0000
901+++ clc/Makefile 2010-02-08 18:57:20 +0000
902@@ -3,12 +3,45 @@
903 #
904 include ../Makedefs
905
906+theme_dir = ${TOP}/clc/modules/www/src/main/java/edu/ucsb/eucalyptus/admin/public/themes
907+web_prop_dir = ${TOP}/clc/modules/www/conf
908+
909+.PHONY: all build update_properties update_theme deps extras install
910+
911 all: build
912
913 deps:
914 $(ANT) deps
915
916-build:
917+update_properties: ${web_prop_dir}/eucalyptus-web.properties
918+
919+${web_prop_dir}/eucalyptus-web.properties: ${web_prop_dir}/eucalyptus-web-default.properties ${TOP}/Makedefs
920+ @sed "s/\(^extensions =\).*/\1 ${extensions}/" < ${web_prop_dir}/eucalyptus-web-default.properties > ${web_prop_dir}/eucalyptus-web.properties
921+ @echo "Copied defaults to ${web_prop_dir}/eucalyptus-web.properties"
922+
923+update_theme:
924+ @if test -d ${theme_dir}/${euca_theme} ; then \
925+ if [ "`readlink ${theme_dir}/active`" != "${euca_theme}" ] ; then \
926+ echo "Making '${euca_theme}' the active theme" ; \
927+ rm -f ${theme_dir}/active ; \
928+ ln -sf ${euca_theme} ${theme_dir}/active ; \
929+ fi \
930+ else \
931+ echo "Theme ${theme_dir}/${euca_theme} is not found!"; exit 1; \
932+ fi \
933+
934+extras: update_properties
935+ @if test -n "${euca_theme}" ; then \
936+ $(MAKE) update_theme; \
937+ else \
938+ if [ "`readlink ${theme_dir}/active`" != "eucalyptus" ] ; then \
939+ echo "Making 'eucalyptus' the active theme" ; \
940+ rm -f ${theme_dir}/active ; \
941+ ln -sf eucalyptus ${theme_dir}/active ; \
942+ fi \
943+ fi
944+
945+build: extras
946 @# we need JAVA_HOME
947 @if test -z "${JAVA_HOME}" ; then \
948 echo "You need to define JAVA_HOME!"; exit 1; fi
949@@ -17,22 +50,32 @@
950 # echo "Cannot find java deps, please run 'make deps' in the 'clc/' subdirectory."; exit 1; fi
951 ANT_OPTS="-Xmx512m" $(ANT) build
952 make -C modules/storage-controller/native
953- make -C modules/storage-manager/native
954+ make -C modules/bootstrap
955
956 run: install
957 $(ANT) run
958
959 clean:
960 $(ANT) clean
961+ make -C modules/bootstrap clean
962+ make -C modules/storage-controller/native clean
963
964 distclean: clean
965 $(ANT) distclean
966+ make -C modules/bootstrap distclean
967+ make -C modules/storage-controller/native distclean
968
969 install: build
970 $(ANT) install
971- @$(INSTALL) -m 644 cloud.xml $(etcdir)/eucalyptus
972+# @$(INSTALL) -m 644 cloud.xml $(etcdir)/eucalyptus
973 make -C modules/storage-controller/native install
974- make -C modules/storage-manager/native install
975+ make -C modules/bootstrap install
976
977 deploy: install
978
979+uninstall:
980+ make -C modules/storage-controller/native uninstall
981+ make -C modules/bootstrap uninstall
982+ $(RM) -rf $(etcdir)/eucalyptus/cloud.d
983+ $(RM) -rf $(datarootdir)/eucalyptus/*jar
984+ $(RM) -rf $(vardir)/eucalyptus/webapps
985
986=== modified file 'clc/build.xml'
987--- clc/build.xml 2009-07-16 19:47:18 +0000
988+++ clc/build.xml 2010-02-08 18:57:20 +0000
989@@ -1,3 +1,4 @@
990+<<<<<<< TREE
991 <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
992 ~ Copyright (c) 2009 Eucalyptus Systems, Inc.
993 ~
994@@ -61,190 +62,259 @@
995
996 <!--
997 ~ Author: Chris Grzegorczyk grze@cs.ucsb.edu
998+=======
999+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1000+ ~ Copyright (c) 2009 Eucalyptus Systems, Inc.
1001+ ~
1002+ ~ This program is free software: you can redistribute it and/or modify
1003+ ~ it under the terms of the GNU General Public License as published by
1004+ ~ the Free Software Foundation, only version 3 of the License.
1005+ ~
1006+ ~
1007+ ~ This file is distributed in the hope that it will be useful, but WITHOUT
1008+ ~ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1009+ ~ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
1010+ ~ for more details.
1011+ ~
1012+ ~ You should have received a copy of the GNU General Public License along
1013+ ~ with this program. If not, see http://www.gnu.org/licenses/.
1014+ ~
1015+ ~ Please contact Eucalyptus Systems, Inc., 130 Castilian
1016+ ~ Dr., Goleta, CA 93101 USA or visit http://www.eucalyptus.com/licenses/
1017+ ~ if you need additional information or have any questions.
1018+ ~
1019+ ~ This file may incorporate work covered under the following copyright and
1020+ ~ permission notice:
1021+ ~
1022+ ~ Software License Agreement (BSD License)
1023+ ~
1024+ ~ Copyright (c) 2008, Regents of the University of California
1025+ ~ All rights reserved.
1026+ ~
1027+ ~ Redistribution and use of this software in source and binary forms, with
1028+ ~ or without modification, are permitted provided that the following
1029+ ~ conditions are met:
1030+ ~
1031+ ~ Redistributions of source code must retain the above copyright notice,
1032+ ~ this list of conditions and the following disclaimer.
1033+ ~
1034+ ~ Redistributions in binary form must reproduce the above copyright
1035+ ~ notice, this list of conditions and the following disclaimer in the
1036+ ~ documentation and/or other materials provided with the distribution.
1037+ ~
1038+ ~ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
1039+ ~ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
1040+ ~ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
1041+ ~ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
1042+ ~ OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
1043+ ~ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
1044+ ~ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
1045+ ~ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
1046+ ~ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
1047+ ~ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
1048+ ~ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
1049+ ~ THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
1050+ ~ LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
1051+ ~ SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
1052+ ~ IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
1053+ ~ BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
1054+ ~ THE REGENTS’ DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
1055+ ~ OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
1056+ ~ WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
1057+ ~ ANY SUCH LICENSES OR RIGHTS.
1058+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1059+ ~ Author: chris grzegorczyk grze@eucalyptus.com
1060+>>>>>>> MERGE-SOURCE
1061 -->
1062
1063 <project name="eucalyptus" basedir=".">
1064- <import file="modules/module-inc.xml"/>
1065- <import file="cloud.xml"/>
1066- <!--================================== other vars ==================================-->
1067- <loadfile srcfile="../VERSION" property="euca.version">
1068- <filterchain>
1069- <filterreader classname="org.apache.tools.ant.filters.StripLineBreaks"/>
1070- </filterchain>
1071- </loadfile>
1072- <property name="jvm.heap" value="256m"/>
1073- <property name="deps.url" value="http://open.eucalyptus.com/dependencies/${euca.version}"/>
1074- <property name="deps.dir" value="deps"/>
1075- <property name="deps.lib.dir" value="lib"/>
1076- <property name="deps.axis2modules.dir" value="axis2-modules"/>
1077- <property name="deps.lib" value="cloud-lib"/>
1078- <property name="deps.deploy" value="cloud-deploy"/>
1079- <!--================================== build targets ==================================-->
1080- <target name="build-crypto">
1081- <ant dir="modules/crypto" inheritall="false"/>
1082- </target>
1083- <target name="build-workarounds" depends="build-crypto">
1084- <ant dir="modules/workarounds" inheritall="false"/>
1085- </target>
1086- <target name="build-msgs" depends="build-workarounds">
1087- <ant dir="modules/msgs" inheritall="false"/>
1088- </target>
1089- <target name="build-core" depends="build-msgs">
1090- <ant dir="modules/core" inheritall="false"/>
1091- </target>
1092- <target name="build-www" depends="build-eucalyptus-ws">
1093- <ant dir="modules/www" inheritall="false"/>
1094- </target>
1095- <target name="build-transport" depends="build-core">
1096- <ant dir="modules/axis2-transport" inheritall="false"/>
1097- </target>
1098- <target name="build-eucalyptus-ws" depends="build-transport">
1099- <ant dir="modules/interface" inheritall="false"/>
1100- <ant dir="modules/cluster-manager" inheritall="false"/>
1101- <ant dir="modules/image-manager" inheritall="false"/>
1102- <ant dir="modules/group-manager" inheritall="false"/>
1103- <ant dir="modules/key-manager" inheritall="false"/>
1104- </target>
1105- <target name="build-walrus-ws" depends="build-transport">
1106- <ant dir="modules/storage-manager" inheritall="false"/>
1107- </target>
1108- <target name="build-ebs-ws" depends="build-walrus-ws">
1109- <ant dir="modules/storage-controller" inheritall="false"/>
1110- </target>
1111- <target name="build-eucalyptus" depends="build-core,build-www,build-eucalyptus-ws"/>
1112- <target name="build-walrus" depends="build-walrus-ws"/>
1113- <target name="build-ebs" depends="build-ebs-ws"/>
1114- <target name="build" depends="deps,build-eucalyptus,build-walrus,build-ebs"/>
1115- <!--================================== clean targets ==================================-->
1116- <target name="clean-workarounds">
1117- <ant dir="modules/workarounds" inheritall="false" target="clean"/>
1118- </target>
1119- <target name="clean-crypto" depends="clean-workarounds">
1120- <ant dir="modules/crypto" inheritall="false" target="clean"/>
1121- </target>
1122- <target name="clean-msgs" depends="clean-crypto">
1123- <ant dir="modules/msgs" inheritall="false" target="clean"/>
1124- </target>
1125- <target name="clean-core" depends="clean-msgs">
1126- <ant dir="modules/core" inheritall="false" target="clean"/>
1127- </target>
1128- <target name="clean-www" depends="clean-eucalyptus-ws">
1129- <ant dir="modules/www" inheritall="false" target="clean"/>
1130- </target>
1131- <target name="clean-transport" depends="clean-core">
1132- <ant dir="modules/axis2-transport" inheritall="false" target="clean"/>
1133- </target>
1134- <target name="clean-eucalyptus-ws" depends="clean-transport">
1135- <ant dir="modules/interface" inheritall="false" target="clean"/>
1136- <ant dir="modules/cluster-manager" inheritall="false" target="clean"/>
1137- <ant dir="modules/image-manager" inheritall="false" target="clean"/>
1138- <ant dir="modules/group-manager" inheritall="false" target="clean"/>
1139- <ant dir="modules/key-manager" inheritall="false" target="clean"/>
1140- </target>
1141- <target name="clean-walrus-ws" depends="clean-transport">
1142- <ant dir="modules/storage-manager" inheritall="false" target="clean"/>
1143- </target>
1144- <target name="clean-ebs-ws" depends="clean-transport">
1145- <ant dir="modules/storage-controller" inheritall="false" target="clean"/>
1146- </target>
1147- <target name="clean-eucalyptus" depends="clean-core,clean-www,clean-eucalyptus-ws"/>
1148- <target name="clean-walrus" depends="clean-walrus-ws"/>
1149- <target name="clean-ebs" depends="clean-ebs-ws"/>
1150- <target name="clean" depends="clean-eucalyptus,clean-walrus,clean-ebs">
1151- <delete dir="${target.dir}"/>
1152- </target>
1153- <target name="distclean" depends="clean">
1154- <delete dir="${deps.dir}"/>
1155- <delete dir="${deps.lib.dir}"/>
1156- </target>
1157- <!--================================== install target ==================================-->
1158- <target name="install" depends="build">
1159- <!-- copy libraries over -->
1160- <mkdir dir="${euca.lib.dir}"/>
1161- <copy todir="${euca.lib.dir}">
1162- <fileset dir="${basedir}/target">
1163- <include name="**/*.jar"/>
1164- </fileset>
1165- </copy>
1166- <copy todir="${euca.lib.dir}">
1167- <fileset dir="${deps.lib.dir}">
1168- <include name="**/*"/>
1169- </fileset>
1170- </copy>
1171- <copy todir="${euca.var.dir}/modules">
1172- <fileset dir="${deps.axis2modules.dir}/modules">
1173- <include name="**/*"/>
1174- </fileset>
1175- </copy>
1176- <mkdir dir="${euca.conf.dir}"/>
1177- <chmod dir="${euca.conf.dir}" perm="0755"/>
1178- <mkdir dir="${euca.var.dir}/"/>
1179- <mkdir dir="${euca.var.dir}/db"/>
1180- <mkdir dir="${euca.var.dir}/keys"/>
1181-<!-- <chmod dir="${euca.var.dir}/db" perm="0700"/>
1182+ <property environment="localenv"/>
1183+ <property name="euca.home.0" value="${localenv.EUCALYPTUS}"/>
1184+ <condition property="euca.home" value="/opt/eucalyptus" else="${localenv.EUCALYPTUS}">
1185+ <contains string="${euca.home.0}" substring="localenv"/>
1186+ </condition>
1187+ <property name="DESTDIR.0" value="${localenv.DESTDIR}"/>
1188+ <condition property="DESTDIR" value="/" else="${localenv.DESTDIR}">
1189+ <contains string="${DESTDIR.0}" substring="localenv"/>
1190+ </condition>
1191+ <property name="project.basedir" value="${user.dir}"/>
1192+ <loadfile srcfile="${project.basedir}/../VERSION" property="euca.version">
1193+ <filterchain>
1194+ <filterreader classname="org.apache.tools.ant.filters.StripLineBreaks"/>
1195+ </filterchain>
1196+ </loadfile>
1197+ <!--================================== other vars ==================================-->
1198+ <property name="jvm.heap" value="256m"/>
1199+ <property name="deps.url" value="http://eucalyptussoftware.com/downloads/dependencies/${euca.version}"/>
1200+ <property name="deps.dir" value="deps"/>
1201+ <property name="deps.lib.dir" value="lib"/>
1202+ <property name="deps.lib" value="cloud-lib"/>
1203+ <!--================================== build targets ==================================-->
1204+ <target name="build-msgs">
1205+ <ant dir="modules/msgs" inheritall="false" target="builder"/>
1206+ <ant dir="modules/database" inheritall="false" target="builder"/>
1207+ <ant dir="modules/authentication" inheritall="false" target="builder"/>
1208+ <ant dir="modules/cloud" inheritall="false" target="builder"/>
1209+ <ant dir="modules/configuration" inheritall="false" target="builder"/>
1210+ </target>
1211+ <target name="build-core" depends="build-msgs">
1212+ <ant dir="modules/core" inheritall="false" target="builder"/>
1213+ <ant dir="modules/wsstack" inheritall="false" target="builder"/>
1214+ </target>
1215+ <target name="build-storage-common" depends="build-core">
1216+ <ant dir="modules/storage-common" inheritall="false" target="builder"/>
1217+ </target>
1218+ <target name="build-eucalyptus" depends="build-core">
1219+ <ant dir="modules/interface" inheritall="false" target="builder"/>
1220+ <ant dir="modules/group-manager" inheritall="false" target="builder"/>
1221+ <ant dir="modules/cluster-manager" inheritall="false" target="builder"/>
1222+ <ant dir="modules/image-manager" inheritall="false" target="builder"/>
1223+ <ant dir="modules/key-manager" inheritall="false" target="builder"/>
1224+ </target>
1225+ <target name="build-walrus" depends="build-storage-common">
1226+ <ant dir="modules/walrus" inheritall="false" target="builder"/>
1227+ </target>
1228+ <target name="build-ebs" depends="build-storage-common">
1229+ <ant dir="modules/storage-controller" inheritall="false" target="builder"/>
1230+ </target>
1231+ <target name="build-dns" depends="build-core">
1232+ <ant dir="modules/dns" inheritall="false" target="builder"/>
1233+ </target>
1234+ <target name="build-www">
1235+ <ant dir="modules/www" inheritall="false" target="builder"/>
1236+ </target>
1237+ <target name="build-nogwt" depends="build-eucalyptus,build-walrus,build-ebs,build-dns"/>
1238+ <target name="build" depends="deps,build-nogwt,build-www"/>
1239+ <!--================================== clean targets ==================================-->
1240+ <target name="clean-msgs">
1241+ <ant dir="modules/msgs" inheritall="false" target="clean"/>
1242+ <ant dir="modules/database" inheritall="false" target="clean"/>
1243+ <ant dir="modules/cloud" inheritall="false" target="clean"/>
1244+ <ant dir="modules/authentication" inheritall="false" target="clean"/>
1245+ <ant dir="modules/configuration" inheritall="false" target="clean"/>
1246+ </target>
1247+ <target name="clean-core" depends="clean-msgs">
1248+ <ant dir="modules/core" inheritall="false" target="clean"/>
1249+ <ant dir="modules/wsstack" inheritall="false" target="clean"/>
1250+ </target>
1251+ <target name="clean-storage-common" depends="clean-core">
1252+ <ant dir="modules/storage-common" inheritall="false" target="clean"/>
1253+ </target>
1254+ <target name="clean-eucalyptus" depends="clean-core">
1255+ <ant dir="modules/interface" inheritall="false" target="clean"/>
1256+ <ant dir="modules/cluster-manager" inheritall="false" target="clean"/>
1257+ <ant dir="modules/image-manager" inheritall="false" target="clean"/>
1258+ <ant dir="modules/group-manager" inheritall="false" target="clean"/>
1259+ <ant dir="modules/key-manager" inheritall="false" target="clean"/>
1260+ </target>
1261+ <target name="clean-walrus" depends="clean-storage-common">
1262+ <ant dir="modules/walrus" inheritall="false" target="clean"/>
1263+ </target>
1264+ <target name="clean-ebs" depends="clean-storage-common">
1265+ <ant dir="modules/storage-controller" inheritall="false" target="clean"/>
1266+ </target>
1267+ <target name="clean-dns" depends="clean-core">
1268+ <ant dir="modules/dns" inheritall="false" target="clean"/>
1269+ </target>
1270+ <target name="clean-www">
1271+ <ant dir="modules/www" inheritall="false" target="clean" />
1272+ </target>
1273+ <target name="clean-nogwt" depends="clean-eucalyptus,clean-walrus,clean-ebs,clean-dns"/>
1274+ <target name="clean" depends="clean-nogwt,clean-www">
1275+ <delete dir="${target.dir}"/>
1276+ </target>
1277+ <target name="distclean" depends="clean">
1278+ <delete dir="${deps.dir}"/>
1279+ <delete dir="${deps.lib.dir}"/>
1280+ <delete dir="target"/>
1281+ </target>
1282+ <!--================================== install target ==================================-->
1283+ <property name="euca.conf.dir" value="${euca.home}/etc/eucalyptus/cloud.d"/>
1284+ <property name="euca.lib.dir" value="${euca.home}/usr/share/eucalyptus"/>
1285+ <property name="euca.var.dir" value="${euca.home}/var/lib/eucalyptus"/>
1286+ <property name="euca.log.dir" value="${euca.home}/var/log/eucalyptus"/>
1287+ <target name="install">
1288+ <!-- copy libraries over -->
1289+ <mkdir dir="${DESTDIR}${euca.lib.dir}"/>
1290+ <copy todir="${DESTDIR}${euca.lib.dir}">
1291+ <fileset dir="${basedir}/target">
1292+ <include name="**/*.jar"/>
1293+ </fileset>
1294+ </copy>
1295+ <copy todir="${DESTDIR}${euca.lib.dir}">
1296+ <fileset dir="${deps.lib.dir}">
1297+ <include name="**/*"/>
1298+ </fileset>
1299+ </copy>
1300+ <mkdir dir="${DESTDIR}${euca.conf.dir}"/>
1301+ <chmod dir="${DESTDIR}${euca.conf.dir}" perm="0755"/>
1302+ <mkdir dir="${DESTDIR}${euca.var.dir}/"/>
1303+ <mkdir dir="${DESTDIR}${euca.var.dir}/db"/>
1304+ <mkdir dir="${DESTDIR}${euca.var.dir}/keys"/>
1305+ <!-- <chmod dir="${euca.var.dir}/db" perm="0700"/>
1306 <chmod dir="${euca.var.dir}/keys" perm="0700"/> -->
1307- <mkdir dir="${euca.log.dir}"/>
1308- <mkdir dir="${euca.var.dir}/webapps"/>
1309- <mkdir dir="${euca.var.dir}/modules"/>
1310- <ant dir="modules/workarounds" inheritall="false" target="install"/>
1311- <ant dir="modules/crypto" inheritall="false" target="install"/>
1312- <ant dir="modules/msgs" inheritall="false" target="install"/>
1313- <ant dir="modules/core" inheritall="false" target="install"/>
1314- <ant dir="modules/www" inheritall="false" target="install"/>
1315- <ant dir="modules/axis2-transport" inheritall="false" target="install"/>
1316- <ant dir="modules/interface" inheritall="false" target="install"/>
1317- <ant dir="modules/cluster-manager" inheritall="false" target="install"/>
1318- <ant dir="modules/image-manager" inheritall="false" target="install"/>
1319- <ant dir="modules/group-manager" inheritall="false" target="install"/>
1320- <ant dir="modules/key-manager" inheritall="false" target="install"/>
1321- <ant dir="modules/storage-manager" inheritall="false" target="install"/>
1322- <ant dir="modules/storage-controller" inheritall="false" target="install"/>
1323- </target>
1324- <!--================================== unzipping target ==================================-->
1325- <target name="deps">
1326- <condition property="needDownload">
1327- <and>
1328- <not>
1329- <available file="${deps.lib.dir}/jibx-run.jar"/>
1330- </not>
1331- <and>
1332- <or>
1333- <not>
1334- <available file="${deps.dir}/${deps.lib}.tar.gz"/>
1335- </not>
1336- <not>
1337- <available file="${deps.dir}/${deps.deploy}.tar.gz"/>
1338- </not>
1339- </or>
1340- </and>
1341- </and>
1342- </condition>
1343- <ant target="download-deps"/>
1344- <condition property="needUnzipping">
1345- <and>
1346- <not>
1347- <available file="${deps.lib.dir}/jibx-run.jar"/>
1348- </not>
1349- <and>
1350- <available file="${deps.dir}/${deps.lib}.tar.gz"/>
1351- <available file="${deps.dir}/${deps.deploy}.tar.gz"/>
1352- </and>
1353- </and>
1354- </condition>
1355- <ant target="untar"/>
1356- </target>
1357- <target name="dist-deps" depends="deps">
1358- <delete dir="${deps.dir}"/>
1359- </target>
1360- <target name="untar" if="needUnzipping">
1361- <untar compression="gzip" src="${deps.dir}/${deps.lib}.tar.gz" dest="${deps.lib.dir}"/>
1362- <untar compression="gzip" src="${deps.dir}/${deps.deploy}.tar.gz" dest="${deps.axis2modules.dir}"/>
1363- </target>
1364- <target name="download-deps" if="needDownload">
1365- <mkdir dir="${deps.dir}"/>
1366- <mkdir dir="${deps.lib.dir}"/>
1367- <!--=========== download the dependency libraries ===========-->
1368- <get src="${deps.url}/${deps.lib}.tar.gz" dest="${deps.dir}/${deps.lib}.tar.gz"/>
1369- <get src="${deps.url}/${deps.deploy}.tar.gz" dest="${deps.dir}/${deps.deploy}.tar.gz"/>
1370- </target>
1371+ <mkdir dir="${DESTDIR}${euca.log.dir}"/>
1372+ <mkdir dir="${DESTDIR}${euca.var.dir}/webapps"/>
1373+ <mkdir dir="${DESTDIR}${euca.var.dir}/modules"/>
1374+ <ant dir="modules/msgs" inheritall="false" target="install"/>
1375+ <ant dir="modules/database" inheritall="false" target="install"/>
1376+ <ant dir="modules/cloud" inheritall="false" target="install"/>
1377+ <ant dir="modules/authentication" inheritall="false" target="install"/>
1378+ <ant dir="modules/configuration" inheritall="false" target="install"/>
1379+ <ant dir="modules/core" inheritall="false" target="install"/>
1380+ <ant dir="modules/wsstack" inheritall="false" target="install"/>
1381+ <ant dir="modules/storage-common" inheritall="false" target="install"/>
1382+ <ant dir="modules/interface" inheritall="false" target="install"/>
1383+ <ant dir="modules/cluster-manager" inheritall="false" target="install"/>
1384+ <ant dir="modules/image-manager" inheritall="false" target="install"/>
1385+ <ant dir="modules/group-manager" inheritall="false" target="install"/>
1386+ <ant dir="modules/key-manager" inheritall="false" target="install"/>
1387+ <ant dir="modules/walrus" inheritall="false" target="install"/>
1388+ <ant dir="modules/storage-controller" inheritall="false" target="install"/>
1389+ <ant dir="modules/dns" inheritall="false" target="install"/>
1390+ <ant dir="modules/www" inheritall="false" target="install"/>
1391+ </target>
1392+ <!--================================== unzipping target ==================================-->
1393+ <target name="deps">
1394+ <condition property="needDownload">
1395+ <and>
1396+ <not>
1397+ <available file="${deps.lib.dir}/bcprov.jar"/>
1398+ </not>
1399+ <and>
1400+ <not>
1401+ <available file="${deps.dir}/${deps.lib}.tar.gz"/>
1402+ </not>
1403+ </and>
1404+ </and>
1405+ </condition>
1406+ <ant target="download-deps"/>
1407+ <condition property="needUnzipping">
1408+ <and>
1409+ <not>
1410+ <available file="${deps.lib.dir}/bcprov.jar"/>
1411+ </not>
1412+ <and>
1413+ <available file="${deps.dir}/${deps.lib}.tar.gz"/>
1414+ </and>
1415+ </and>
1416+ </condition>
1417+ <ant target="untar"/>
1418+ </target>
1419+ <target name="dist-deps" depends="deps">
1420+ <delete dir="${deps.dir}"/>
1421+ </target>
1422+ <target name="untar" if="needUnzipping">
1423+ <untar compression="gzip" src="${deps.dir}/${deps.lib}.tar.gz" dest="${deps.lib.dir}"/>
1424+ <delete file="${deps.lib.dir}/openjdk-crypto.jar"/>
1425+ <jar destfile="${deps.lib.dir}/openjdk-crypto.jar">
1426+ <zipfileset src="${deps.lib.dir}/eucalyptus-commons-ext-0.4.jar" includes="javax/crypto/**"/>
1427+ </jar>
1428+ </target>
1429+ <target name="download-deps" if="needDownload">
1430+ <mkdir dir="${deps.dir}"/>
1431+ <mkdir dir="${deps.lib.dir}"/>
1432+ <!--=========== download the dependency libraries ===========-->
1433+ <get src="${deps.url}/${deps.lib}.tar.gz" dest="${deps.dir}/${deps.lib}.tar.gz"/>
1434+ </target>
1435 </project>
1436
1437=== renamed file 'clc/cloud.xml' => 'clc/cloud.xml.THIS'
1438=== added directory 'clc/modules/authentication'
1439=== added file 'clc/modules/authentication/build.xml'
1440--- clc/modules/authentication/build.xml 1970-01-01 00:00:00 +0000
1441+++ clc/modules/authentication/build.xml 2010-02-08 18:57:20 +0000
1442@@ -0,0 +1,70 @@
1443+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1444+ ~ Copyright (c) 2009 Eucalyptus Systems, Inc.
1445+ ~
1446+ ~ This program is free software: you can redistribute it and/or modify
1447+ ~ it under the terms of the GNU General Public License as published by
1448+ ~ the Free Software Foundation, only version 3 of the License.
1449+ ~
1450+ ~
1451+ ~ This file is distributed in the hope that it will be useful, but WITHOUT
1452+ ~ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1453+ ~ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
1454+ ~ for more details.
1455+ ~
1456+ ~ You should have received a copy of the GNU General Public License along
1457+ ~ with this program. If not, see http://www.gnu.org/licenses/.
1458+ ~
1459+ ~ Please contact Eucalyptus Systems, Inc., 130 Castilian
1460+ ~ Dr., Goleta, CA 93101 USA or visit http://www.eucalyptus.com/licenses/
1461+ ~ if you need additional information or have any questions.
1462+ ~
1463+ ~ This file may incorporate work covered under the following copyright and
1464+ ~ permission notice:
1465+ ~
1466+ ~ Software License Agreement (BSD License)
1467+ ~
1468+ ~ Copyright (c) 2008, Regents of the University of California
1469+ ~ All rights reserved.
1470+ ~
1471+ ~ Redistribution and use of this software in source and binary forms, with
1472+ ~ or without modification, are permitted provided that the following
1473+ ~ conditions are met:
1474+ ~
1475+ ~ Redistributions of source code must retain the above copyright notice,
1476+ ~ this list of conditions and the following disclaimer.
1477+ ~
1478+ ~ Redistributions in binary form must reproduce the above copyright
1479+ ~ notice, this list of conditions and the following disclaimer in the
1480+ ~ documentation and/or other materials provided with the distribution.
1481+ ~
1482+ ~ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
1483+ ~ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
1484+ ~ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
1485+ ~ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
1486+ ~ OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
1487+ ~ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
1488+ ~ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
1489+ ~ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
1490+ ~ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
1491+ ~ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
1492+ ~ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
1493+ ~ THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
1494+ ~ LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
1495+ ~ SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
1496+ ~ IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
1497+ ~ BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
1498+ ~ THE REGENTS’ DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
1499+ ~ OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
1500+ ~ WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
1501+ ~ ANY SUCH LICENSES OR RIGHTS.
1502+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1503+ ~ Author: chris grzegorczyk <grze@eucalyptus.com>
1504+ -->
1505+<project name="eucalyptus-auth" basedir=".">
1506+ <property name="builder.suffix" value="groovy" />
1507+ <uptodate property="groovyc.notRequired" targetfile="${jar.file}">
1508+ <srcfiles dir="${src.dir}" includes="**/*" />
1509+ </uptodate>
1510+ <import file="../module-inc.xml"/>
1511+</project>
1512+
1513
1514=== added directory 'clc/modules/authentication/conf'
1515=== added directory 'clc/modules/authentication/src'
1516=== added directory 'clc/modules/authentication/src/main'
1517=== added directory 'clc/modules/authentication/src/main/java'
1518=== added directory 'clc/modules/authentication/src/main/java/com'
1519=== added directory 'clc/modules/authentication/src/main/java/com/eucalyptus'
1520=== added directory 'clc/modules/authentication/src/main/java/com/eucalyptus/auth'
1521=== added file 'clc/modules/authentication/src/main/java/com/eucalyptus/auth/CredentialEntities.groovy'
1522--- clc/modules/authentication/src/main/java/com/eucalyptus/auth/CredentialEntities.groovy 1970-01-01 00:00:00 +0000
1523+++ clc/modules/authentication/src/main/java/com/eucalyptus/auth/CredentialEntities.groovy 2010-02-08 18:57:20 +0000
1524@@ -0,0 +1,231 @@
1525+/*******************************************************************************
1526+ *Copyright (c) 2009 Eucalyptus Systems, Inc.
1527+ *
1528+ * This program is free software: you can redistribute it and/or modify
1529+ * it under the terms of the GNU General Public License as published by
1530+ * the Free Software Foundation, only version 3 of the License.
1531+ *
1532+ *
1533+ * This file is distributed in the hope that it will be useful, but WITHOUT
1534+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1535+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
1536+ * for more details.
1537+ *
1538+ * You should have received a copy of the GNU General Public License along
1539+ * with this program. If not, see <http://www.gnu.org/licenses/>.
1540+ *
1541+ * Please contact Eucalyptus Systems, Inc., 130 Castilian
1542+ * Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/>
1543+ * if you need additional information or have any questions.
1544+ *
1545+ * This file may incorporate work covered under the following copyright and
1546+ * permission notice:
1547+ *
1548+ * Software License Agreement (BSD License)
1549+ *
1550+ * Copyright (c) 2008, Regents of the University of California
1551+ * All rights reserved.
1552+ *
1553+ * Redistribution and use of this software in source and binary forms, with
1554+ * or without modification, are permitted provided that the following
1555+ * conditions are met:
1556+ *
1557+ * Redistributions of source code must retain the above copyright notice,
1558+ * this list of conditions and the following disclaimer.
1559+ *
1560+ * Redistributions in binary form must reproduce the above copyright
1561+ * notice, this list of conditions and the following disclaimer in the
1562+ * documentation and/or other materials provided with the distribution.
1563+ *
1564+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
1565+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
1566+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
1567+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
1568+ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
1569+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
1570+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
1571+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
1572+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
1573+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
1574+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
1575+ * THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
1576+ * LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
1577+ * SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
1578+ * IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
1579+ * BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
1580+ * THE REGENTS’ DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
1581+ * OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
1582+ * WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
1583+ * ANY SUCH LICENSES OR RIGHTS.
1584+ *******************************************************************************/
1585+/*
1586+ * Author: chris grzegorczyk <grze@eucalyptus.com>
1587+ */
1588+package com.eucalyptus.auth
1589+
1590+import java.io.Serializable;
1591+import java.security.cert.X509Certificate;
1592+import java.util.Date;
1593+
1594+import org.bouncycastle.util.encoders.UrlBase64;
1595+import javax.persistence.Entity;
1596+import javax.persistence.Id;
1597+import org.hibernate.annotations.Cache
1598+import org.hibernate.annotations.CacheConcurrencyStrategy
1599+import org.hibernate.annotations.GenericGenerator
1600+
1601+import javax.persistence.MappedSuperclass;
1602+import javax.persistence.Table
1603+import javax.persistence.GeneratedValue
1604+import javax.persistence.Column
1605+import javax.persistence.Lob
1606+import javax.persistence.OneToMany
1607+import javax.persistence.OneToOne
1608+import javax.persistence.FetchType
1609+import javax.persistence.CascadeType
1610+import javax.persistence.JoinTable
1611+import javax.persistence.JoinColumn
1612+import javax.persistence.Version;
1613+import javax.persistence.Temporal;
1614+import javax.persistence.TemporalType;
1615+import javax.persistence.Version;
1616+import javax.persistence.PersistenceContext;
1617+
1618+import org.hibernate.sql.Alias
1619+
1620+import com.eucalyptus.auth.util.Hashes;
1621+import com.eucalyptus.entities.AbstractPersistent;
1622+
1623+@Entity
1624+@PersistenceContext(name="eucalyptus_auth")
1625+@Table( name = "auth_users" )
1626+@Cache( usage = CacheConcurrencyStrategy.READ_WRITE )
1627+public class User extends AbstractPersistent implements Serializable {
1628+ @Column( name = "auth_user_name", unique=true )
1629+ String userName
1630+ @Column( name = "auth_user_query_id" )
1631+ String queryId
1632+ @Column( name = "auth_user_secretkey" )
1633+ String secretKey
1634+ @Column( name = "auth_user_is_admin" )
1635+ Boolean isAdministrator
1636+ @Column( name = "auth_user_is_enabled" )
1637+ Boolean isEnabled;
1638+ @OneToMany( cascade=[CascadeType.ALL], fetch=FetchType.EAGER )
1639+ @JoinTable(name = "auth_user_has_x509", joinColumns = [ @JoinColumn( name = "auth_user_id" ) ],inverseJoinColumns = [ @JoinColumn( name = "auth_x509_id" ) ])
1640+ @Cache( usage = CacheConcurrencyStrategy.READ_WRITE )
1641+ List<X509Cert> certificates = []
1642+ public User(){
1643+ }
1644+ public User( String userName ){
1645+ this.userName = userName
1646+ }
1647+ public User( String userName, Boolean isEnabled ){
1648+ this(userName);
1649+ this.isEnabled = isEnabled
1650+ }
1651+ @Override
1652+ public int hashCode( ) {
1653+ final int prime = 31;
1654+ int result = super.hashCode( );
1655+ result = prime * result + ( ( userName == null ) ? 0 : userName.hashCode( ) );
1656+ return result;
1657+ }
1658+ @Override
1659+ public boolean equals( Object obj ) {
1660+ if ( this.is( obj ) ) return true;
1661+ if ( !super.equals( obj ) ) return false;
1662+ if ( getClass( ).is( obj.getClass( ) ) ) return false;
1663+ User other = ( User ) obj;
1664+ if ( userName == null ) {
1665+ if ( other.userName != null ) return false;
1666+ } else if ( !userName.equals( other.userName ) ) return false;
1667+ return true;
1668+ }
1669+}
1670+
1671+@Entity
1672+@PersistenceContext(name="eucalyptus_auth")
1673+@Table(name="auth_x509")
1674+@Cache( usage = CacheConcurrencyStrategy.READ_WRITE )
1675+public class X509Cert extends AbstractPersistent implements Serializable {
1676+ @Column( name = "auth_x509_alias", unique=true )
1677+ String alias
1678+ @Lob
1679+ @Column( name = "auth_x509_pem_certificate" )
1680+ String pemCertificate
1681+ public X509Cert(){
1682+ }
1683+ public X509Cert( String alias ) {
1684+ this.alias = alias
1685+ }
1686+ public static X509Cert fromCertificate(String alias, X509Certificate x509) {
1687+ X509Cert x = new X509Cert( );
1688+ x.setAlias(alias);
1689+ x.setPemCertificate( new String( UrlBase64.encode( Hashes.getPemBytes( x509 ) ) ) );
1690+ return x;
1691+ }
1692+ public static X509Certificate toCertificate(X509Cert x509) {
1693+ return Hashes.getPemCert( UrlBase64.decode( x509.getPemCertificate( ).getBytes( ) ) );
1694+ }
1695+
1696+ @Override
1697+ public int hashCode( ) {
1698+ final int prime = 31;
1699+ int result = super.hashCode( );
1700+ result = prime * result + ( ( alias == null ) ? 0 : alias.hashCode( ) );
1701+ return result;
1702+ }
1703+ @Override
1704+ public boolean equals( Object obj ) {
1705+ if ( this.is( obj ) ) return true;
1706+ if ( !super.equals( obj ) ) return false;
1707+ if ( !getClass( ).equals( obj.getClass( ) ) ) return false;
1708+ X509Cert other = ( X509Cert ) obj;
1709+ if ( alias == null ) {
1710+ if ( other.alias != null ) return false;
1711+ } else if ( !alias.equals( other.alias ) ) return false;
1712+ return true;
1713+ }
1714+}
1715+
1716+@Entity
1717+@PersistenceContext(name="eucalyptus_auth")
1718+@Table( name = "auth_clusters" )
1719+@Cache( usage = CacheConcurrencyStrategy.READ_WRITE )
1720+public class ClusterCredentials extends AbstractPersistent implements Serializable {
1721+ @Column( name = "auth_cluster_name", unique=true )
1722+ String clusterName
1723+ @OneToOne(cascade = CascadeType.ALL)
1724+ @JoinColumn(name="auth_cluster_x509_certificate")
1725+ @Cache( usage = CacheConcurrencyStrategy.READ_WRITE )
1726+ X509Cert clusterCertificate
1727+ @OneToOne(cascade = CascadeType.ALL)
1728+ @JoinColumn(name="auth_cluster_node_x509_certificate")
1729+ @Cache( usage = CacheConcurrencyStrategy.READ_WRITE )
1730+ X509Cert nodeCertificate
1731+ public ClusterCredentials( ) {
1732+ }
1733+ public ClusterCredentials( String clusterName ) {
1734+ this.clusterName = clusterName;
1735+ }
1736+
1737+ @Override
1738+ public int hashCode( ) {
1739+ final int prime = 31;
1740+ int result = super.hashCode( );
1741+ result = prime * result + ( ( clusterName == null ) ? 0 : clusterName.hashCode( ) );
1742+ return result;
1743+ }
1744+ @Override
1745+ public boolean equals( Object obj ) {
1746+ if ( this.is( obj ) ) return true;
1747+ if ( !super.equals( obj ) ) return false;
1748+ if ( !getClass( ).equals( obj.getClass( ) ) ) return false;
1749+ ClusterCredentials other = ( ClusterCredentials ) obj;
1750+ if ( clusterName == null ) {
1751+ if ( other.clusterName != null ) return false;
1752+ } else if ( !clusterName.equals( other.clusterName ) ) return false;
1753+ return true;
1754+ }
1755+}
1756
1757=== added file 'clc/modules/authentication/src/main/java/com/eucalyptus/auth/CredentialProvider.java'
1758--- clc/modules/authentication/src/main/java/com/eucalyptus/auth/CredentialProvider.java 1970-01-01 00:00:00 +0000
1759+++ clc/modules/authentication/src/main/java/com/eucalyptus/auth/CredentialProvider.java 2010-02-08 18:57:20 +0000
1760@@ -0,0 +1,347 @@
1761+/*******************************************************************************
1762+ *Copyright (c) 2009 Eucalyptus Systems, Inc.
1763+ *
1764+ * This program is free software: you can redistribute it and/or modify
1765+ * it under the terms of the GNU General Public License as published by
1766+ * the Free Software Foundation, only version 3 of the License.
1767+ *
1768+ *
1769+ * This file is distributed in the hope that it will be useful, but WITHOUT
1770+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1771+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
1772+ * for more details.
1773+ *
1774+ * You should have received a copy of the GNU General Public License along
1775+ * with this program. If not, see <http://www.gnu.org/licenses/>.
1776+ *
1777+ * Please contact Eucalyptus Systems, Inc., 130 Castilian
1778+ * Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/>
1779+ * if you need additional information or have any questions.
1780+ *
1781+ * This file may incorporate work covered under the following copyright and
1782+ * permission notice:
1783+ *
1784+ * Software License Agreement (BSD License)
1785+ *
1786+ * Copyright (c) 2008, Regents of the University of California
1787+ * All rights reserved.
1788+ *
1789+ * Redistribution and use of this software in source and binary forms, with
1790+ * or without modification, are permitted provided that the following
1791+ * conditions are met:
1792+ *
1793+ * Redistributions of source code must retain the above copyright notice,
1794+ * this list of conditions and the following disclaimer.
1795+ *
1796+ * Redistributions in binary form must reproduce the above copyright
1797+ * notice, this list of conditions and the following disclaimer in the
1798+ * documentation and/or other materials provided with the distribution.
1799+ *
1800+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
1801+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
1802+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
1803+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
1804+ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
1805+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
1806+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
1807+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
1808+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
1809+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
1810+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
1811+ * THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
1812+ * LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
1813+ * SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
1814+ * IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
1815+ * BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
1816+ * THE REGENTS’ DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
1817+ * OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
1818+ * WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
1819+ * ANY SUCH LICENSES OR RIGHTS.
1820+ *******************************************************************************/
1821+/**
1822+ *
1823+ */
1824+/*
1825+ * Author: chris grzegorczyk <grze@eucalyptus.com>
1826+ */
1827+package com.eucalyptus.auth;
1828+
1829+import java.security.GeneralSecurityException;
1830+import java.security.cert.X509Certificate;
1831+import java.util.List;
1832+import java.util.zip.Adler32;
1833+import org.bouncycastle.util.encoders.UrlBase64;
1834+import org.hibernate.Session;
1835+import org.hibernate.criterion.Example;
1836+import org.hibernate.criterion.MatchMode;
1837+import com.eucalyptus.auth.util.Hashes;
1838+import com.eucalyptus.bootstrap.Bootstrapper;
1839+import com.eucalyptus.bootstrap.Depends;
1840+import com.eucalyptus.bootstrap.Provides;
1841+import com.eucalyptus.bootstrap.Resource;
1842+import com.eucalyptus.util.DatabaseUtil;
1843+import com.eucalyptus.util.EntityWrapper;
1844+import com.eucalyptus.util.EucalyptusCloudException;
1845+import com.google.common.collect.Lists;
1846+
1847+@Provides( resource = Resource.UserCredentials )
1848+@Depends( resources = { Resource.Database } )
1849+public class CredentialProvider extends Bootstrapper {
1850+ public static boolean hasCertificate( final String alias ) {
1851+ X509Cert certInfo = null;
1852+ EntityWrapper<X509Cert> db = Credentials.getEntityWrapper( );
1853+ try {
1854+ certInfo = db.getUnique( new X509Cert( alias ) );
1855+ db.commit( );
1856+ } catch ( EucalyptusCloudException e ) {
1857+ db.rollback( );
1858+ }
1859+ return certInfo != null;
1860+ }
1861+
1862+ public static X509Certificate getCertificate( final String alias ) throws GeneralSecurityException {
1863+ EntityWrapper<X509Cert> db = Credentials.getEntityWrapper( );
1864+ try {
1865+ X509Cert certInfo = db.getUnique( new X509Cert( alias ) );
1866+ String certString = certInfo.getPemCertificate();
1867+ if(certString != null) {
1868+ byte[] certBytes = UrlBase64.decode(certString.getBytes( ) );
1869+ X509Certificate x509 = Hashes.getPemCert( certBytes );
1870+ db.commit( );
1871+ return x509;
1872+ }
1873+ return null;
1874+ } catch ( EucalyptusCloudException e ) {
1875+ db.rollback( );
1876+ throw new GeneralSecurityException( e );
1877+ }
1878+ }
1879+
1880+ public static String getCertificateAlias( final String certPem ) throws GeneralSecurityException {
1881+ String certAlias = null;
1882+ EntityWrapper<X509Cert> db = Credentials.getEntityWrapper( );
1883+ X509Cert certInfo = new X509Cert( );
1884+ certInfo.setPemCertificate( new String( UrlBase64.encode( certPem.getBytes( ) ) ) );
1885+ try {
1886+ certAlias = db.getUnique( certInfo ).getAlias( );
1887+ db.commit( );
1888+ } catch ( Throwable e ) {
1889+ db.rollback( );
1890+ throw new GeneralSecurityException( e );
1891+ }
1892+ return certAlias;
1893+ }
1894+
1895+ public static String getQueryId( String userName ) throws GeneralSecurityException {
1896+ String queryId = null;
1897+ EntityWrapper<User> db = Credentials.getEntityWrapper( );
1898+ User searchUser = new User( userName, true );
1899+ try {
1900+ User user = db.getUnique( searchUser );
1901+ queryId = user.getQueryId( );
1902+ db.commit( );
1903+ } catch ( Throwable e ) {
1904+ db.rollback( );
1905+ throw new GeneralSecurityException( e );
1906+ }
1907+ return queryId;
1908+ }
1909+
1910+ public static String getSecretKey( String queryId ) throws GeneralSecurityException {
1911+ String secretKey = null;
1912+ EntityWrapper<User> db = Credentials.getEntityWrapper( );
1913+ User searchUser = new User( );
1914+ searchUser.setQueryId( queryId );
1915+ searchUser.setIsEnabled( true );
1916+ try {
1917+ User user = db.getUnique( searchUser );
1918+ secretKey = user.getSecretKey( );
1919+ db.commit( );
1920+ } catch ( Throwable e ) {
1921+ db.rollback( );
1922+ throw new GeneralSecurityException( e );
1923+ }
1924+ return secretKey;
1925+ }
1926+
1927+ public static String getUserName( String queryId ) throws GeneralSecurityException {
1928+ String userName = null;
1929+ EntityWrapper<User> db = Credentials.getEntityWrapper( );
1930+ User searchUser = new User( );
1931+ searchUser.setQueryId( queryId );
1932+ try {
1933+ User user = db.getUnique( searchUser );
1934+ userName = user.getUserName( );
1935+ db.commit( );
1936+ } catch ( Throwable e ) {
1937+ db.rollback( );
1938+ throw new GeneralSecurityException( e );
1939+ }
1940+ return userName;
1941+ }
1942+
1943+ public static String getUserName( X509Certificate cert ) throws GeneralSecurityException {
1944+ return getUser( cert ).getUserName( );
1945+ }
1946+
1947+ @SuppressWarnings( "unchecked" )
1948+ public static User getUser( X509Certificate cert ) throws GeneralSecurityException {
1949+ String certPem = new String( UrlBase64.encode( Hashes.getPemBytes( cert ) ) );
1950+ User searchUser = new User( );
1951+ X509Cert searchCert = new X509Cert( );
1952+ searchCert.setPemCertificate( certPem );
1953+ searchUser.setIsEnabled( true );
1954+ Session session = DatabaseUtil.getEntityManagerFactory( Credentials.DB_NAME ).getSessionFactory( ).openSession( );
1955+ try {
1956+ Example qbeUser = Example.create( searchUser ).enableLike( MatchMode.EXACT );
1957+ Example qbeCert = Example.create( searchCert ).enableLike( MatchMode.EXACT );
1958+ List<User> users = ( List<User> ) session.createCriteria( User.class ).setCacheable( true ).add( qbeUser )
1959+ .createCriteria( "certificates" ).setCacheable( true ).add( qbeCert )
1960+ .list( );
1961+ User ret = users.size()==1?users.get(0):null;
1962+ int size = users.size();
1963+ if( ret != null ) {
1964+ return ret;
1965+ } else {
1966+ throw new GeneralSecurityException( (size == 0)?"No user with the specified certificate.":"Multiple users with the same certificate." );
1967+ }
1968+ } catch ( Throwable t ) {
1969+ throw new GeneralSecurityException( t );
1970+ } finally {
1971+ try {
1972+ session.close( );
1973+ } catch ( Throwable t ) {
1974+ }
1975+ }
1976+ }
1977+
1978+ public static String getCertificateAlias( final X509Certificate cert ) throws GeneralSecurityException {
1979+ return getCertificateAlias( new String( Hashes.getPemBytes( cert ) ) );
1980+ }
1981+
1982+ public static void addCertificate( final String userName, final String alias, final X509Certificate cert ) throws GeneralSecurityException {
1983+ String certPem = new String( UrlBase64.encode( Hashes.getPemBytes( cert ) ) );
1984+ EntityWrapper<User> db = Credentials.getEntityWrapper( );
1985+ User u = null;
1986+ try {
1987+ u = db.getUnique( new User( userName ) );
1988+ X509Cert x509cert = new X509Cert( alias );
1989+ x509cert.setPemCertificate( certPem );
1990+ u.getCertificates( ).add( x509cert );
1991+ db.commit( );
1992+ } catch ( EucalyptusCloudException e ) {
1993+ Credentials.LOG.error( e, e );
1994+ Credentials.LOG.error( "username=" + userName + " \nalias=" + alias + " \ncert=" + cert );
1995+ db.rollback( );
1996+ throw new GeneralSecurityException( e );
1997+ }
1998+ }
1999+
2000+ public static List<String> getAliases( ) {
2001+ EntityWrapper<X509Cert> db = Credentials.getEntityWrapper( );
2002+ List<String> certAliases = Lists.newArrayList( );
2003+ try {
2004+ List<X509Cert> certList = db.query( new X509Cert( ) );
2005+ for ( X509Cert cert : certList ) {
2006+ certAliases.add( cert.getAlias( ) );
2007+ }
2008+ db.commit( );
2009+ } catch ( Throwable e ) {
2010+ db.rollback( );
2011+ }
2012+ return certAliases;
2013+ }
2014+
2015+ @Override
2016+ public boolean load( Resource current ) throws Exception {
2017+ return true;
2018+ }
2019+
2020+ @Override
2021+ public boolean start( ) throws Exception {
2022+ return Credentials.checkAdmin( );
2023+ }
2024+
2025+ public static String getUserNumber( final String userName ) {
2026+ Adler32 hash = new Adler32( );
2027+ hash.reset( );
2028+ hash.update( userName.getBytes( ) );
2029+ String userNumber = String.format( "%012d", hash.getValue( ) );
2030+ return userNumber;
2031+ }
2032+
2033+ public static User getUser( String userName ) throws NoSuchUserException {
2034+ User user = null;
2035+ EntityWrapper<User> db = Credentials.getEntityWrapper( );
2036+ User searchUser = new User( userName, true );
2037+ try {
2038+ user = db.getUnique( searchUser );
2039+ db.commit( );
2040+ } catch ( EucalyptusCloudException e ) {
2041+ db.rollback( );
2042+ throw new NoSuchUserException( e );
2043+ }
2044+ return user;
2045+ }
2046+
2047+ public static List<User> getAllUsers( ) {
2048+ EntityWrapper<User> db = Credentials.getEntityWrapper( );
2049+ try {
2050+ return db.query( new User( null, true ) );
2051+ } finally {
2052+ db.commit( );
2053+ }
2054+ }
2055+
2056+ public static User addUser( String userName, Boolean isAdmin, String queryId, String secretKey ) throws UserExistsException {
2057+ User newUser = new User( userName, true );
2058+ newUser.setQueryId( queryId );
2059+ newUser.setSecretKey( secretKey );
2060+ newUser.setIsAdministrator( isAdmin );
2061+ EntityWrapper<User> db = Credentials.getEntityWrapper( );
2062+ try {
2063+ db.add( newUser );
2064+ db.commit( );
2065+ } catch ( Exception e ) {
2066+ db.rollback( );
2067+ throw new UserExistsException( e );
2068+ }
2069+ return newUser;
2070+ }
2071+
2072+ public static User addUser( String userName, Boolean isAdmin ) throws UserExistsException {
2073+ String queryId = Hashes.getDigestBase64( userName, Hashes.Digest.SHA224, false ).replaceAll( "\\p{Punct}", "" );
2074+ String secretKey = Hashes.getDigestBase64( userName, Hashes.Digest.SHA224, true ).replaceAll( "\\p{Punct}", "" );
2075+ return CredentialProvider.addUser( userName, isAdmin, queryId, secretKey );
2076+ }
2077+
2078+ public static User addUser( String userName ) throws UserExistsException {
2079+ return CredentialProvider.addUser( userName, false );
2080+ }
2081+
2082+ public static void deleteUser( String userName ) throws NoSuchUserException {
2083+ User user = new User( userName );
2084+ EntityWrapper<User> db = Credentials.getEntityWrapper( );
2085+ try {
2086+ User foundUser = db.getUnique( user );
2087+ db.delete( foundUser );
2088+ db.commit( );
2089+ } catch ( Exception e ) {
2090+ db.rollback( );
2091+ throw new NoSuchUserException( e );
2092+ }
2093+ }
2094+
2095+ public static void updateUser( String userName, Boolean isEnabled ) throws NoSuchUserException {
2096+ User user = new User( userName );
2097+ EntityWrapper<User> db = Credentials.getEntityWrapper( );
2098+ try {
2099+ User foundUser = db.getUnique( user );
2100+ foundUser.setIsEnabled( isEnabled );
2101+ db.commit( );
2102+ } catch ( Exception e ) {
2103+ db.rollback( );
2104+ throw new NoSuchUserException( e );
2105+ }
2106+ }
2107+}
2108
2109=== added file 'clc/modules/authentication/src/main/java/com/eucalyptus/auth/Credentials.java'
2110--- clc/modules/authentication/src/main/java/com/eucalyptus/auth/Credentials.java 1970-01-01 00:00:00 +0000
2111+++ clc/modules/authentication/src/main/java/com/eucalyptus/auth/Credentials.java 2010-02-08 18:57:20 +0000
2112@@ -0,0 +1,107 @@
2113+/*******************************************************************************
2114+*Copyright (c) 2009 Eucalyptus Systems, Inc.
2115+*
2116+* This program is free software: you can redistribute it and/or modify
2117+* it under the terms of the GNU General Public License as published by
2118+* the Free Software Foundation, only version 3 of the License.
2119+*
2120+*
2121+* This file is distributed in the hope that it will be useful, but WITHOUT
2122+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
2123+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
2124+* for more details.
2125+*
2126+* You should have received a copy of the GNU General Public License along
2127+* with this program. If not, see <http://www.gnu.org/licenses/>.
2128+*
2129+* Please contact Eucalyptus Systems, Inc., 130 Castilian
2130+* Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/>
2131+* if you need additional information or have any questions.
2132+*
2133+* This file may incorporate work covered under the following copyright and
2134+* permission notice:
2135+*
2136+* Software License Agreement (BSD License)
2137+*
2138+* Copyright (c) 2008, Regents of the University of California
2139+* All rights reserved.
2140+*
2141+* Redistribution and use of this software in source and binary forms, with
2142+* or without modification, are permitted provided that the following
2143+* conditions are met:
2144+*
2145+* Redistributions of source code must retain the above copyright notice,
2146+* this list of conditions and the following disclaimer.
2147+*
2148+* Redistributions in binary form must reproduce the above copyright
2149+* notice, this list of conditions and the following disclaimer in the
2150+* documentation and/or other materials provided with the distribution.
2151+*
2152+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
2153+* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
2154+* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
2155+* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
2156+* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
2157+* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
2158+* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
2159+* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
2160+* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
2161+* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
2162+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
2163+* THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
2164+* LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
2165+* SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
2166+* IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
2167+* BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
2168+* THE REGENTS’ DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
2169+* OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
2170+* WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
2171+* ANY SUCH LICENSES OR RIGHTS.
2172+*******************************************************************************/
2173+/*
2174+ * Author: chris grzegorczyk <grze@eucalyptus.com>
2175+ */
2176+package com.eucalyptus.auth;
2177+
2178+import java.security.Security;
2179+
2180+import org.apache.log4j.Logger;
2181+import org.apache.ws.security.WSSConfig;
2182+import org.bouncycastle.jce.provider.BouncyCastleProvider;
2183+
2184+import com.eucalyptus.util.EntityWrapper;
2185+
2186+public class Credentials {
2187+ static Logger LOG = Logger.getLogger( Credentials.class );
2188+ private static String FORMAT = "pkcs12";
2189+ private static String KEY_STORE_PASS = "eucalyptus";
2190+ private static String FILENAME = "euca.p12";
2191+ static String DB_NAME = "eucalyptus_auth";
2192+
2193+ public static void init( ) {
2194+ Security.addProvider( new BouncyCastleProvider( ) );
2195+ org.apache.xml.security.Init.init( );
2196+ WSSConfig.getDefaultWSConfig( ).addJceProvider( "BC", BouncyCastleProvider.class.getCanonicalName( ) );
2197+ WSSConfig.getDefaultWSConfig( ).setTimeStampStrict( true );
2198+ WSSConfig.getDefaultWSConfig( ).setEnableSignatureConfirmation( true );
2199+ }
2200+
2201+ public static boolean checkAdmin( ) {
2202+ try {
2203+ CredentialProvider.getUser( "admin" );
2204+ } catch ( NoSuchUserException e ) {
2205+ try {
2206+ CredentialProvider.addUser( "admin", Boolean.TRUE );
2207+ } catch ( UserExistsException e1 ) {
2208+ LOG.fatal( e1, e1 );
2209+ return false;
2210+ }
2211+ }
2212+ return true;
2213+ }
2214+
2215+ public static <T> EntityWrapper<T> getEntityWrapper( ) {
2216+ return new EntityWrapper<T>( Credentials.DB_NAME );
2217+ }
2218+
2219+}
2220
2221=== added file 'clc/modules/authentication/src/main/java/com/eucalyptus/auth/NoSuchUserException.java'
2222--- clc/modules/authentication/src/main/java/com/eucalyptus/auth/NoSuchUserException.java 1970-01-01 00:00:00 +0000
2223+++ clc/modules/authentication/src/main/java/com/eucalyptus/auth/NoSuchUserException.java 2010-02-08 18:57:20 +0000
2224@@ -0,0 +1,88 @@
2225+/*******************************************************************************
2226+*Copyright (c) 2009 Eucalyptus Systems, Inc.
2227+*
2228+* This program is free software: you can redistribute it and/or modify
2229+* it under the terms of the GNU General Public License as published by
2230+* the Free Software Foundation, only version 3 of the License.
2231+*
2232+*
2233+* This file is distributed in the hope that it will be useful, but WITHOUT
2234+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
2235+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
2236+* for more details.
2237+*
2238+* You should have received a copy of the GNU General Public License along
2239+* with this program. If not, see <http://www.gnu.org/licenses/>.
2240+*
2241+* Please contact Eucalyptus Systems, Inc., 130 Castilian
2242+* Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/>
2243+* if you need additional information or have any questions.
2244+*
2245+* This file may incorporate work covered under the following copyright and
2246+* permission notice:
2247+*
2248+* Software License Agreement (BSD License)
2249+*
2250+* Copyright (c) 2008, Regents of the University of California
2251+* All rights reserved.
2252+*
2253+* Redistribution and use of this software in source and binary forms, with
2254+* or without modification, are permitted provided that the following
2255+* conditions are met:
2256+*
2257+* Redistributions of source code must retain the above copyright notice,
2258+* this list of conditions and the following disclaimer.
2259+*
2260+* Redistributions in binary form must reproduce the above copyright
2261+* notice, this list of conditions and the following disclaimer in the
2262+* documentation and/or other materials provided with the distribution.
2263+*
2264+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
2265+* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
2266+* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
2267+* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
2268+* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
2269+* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
2270+* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
2271+* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
2272+* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
2273+* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
2274+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
2275+* THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
2276+* LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
2277+* SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
2278+* IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
2279+* BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
2280+* THE REGENTS’ DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
2281+* OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
2282+* WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
2283+* ANY SUCH LICENSES OR RIGHTS.
2284+*******************************************************************************/
2285+/*
2286+ * Author: chris grzegorczyk <grze@eucalyptus.com>
2287+ */
2288+package com.eucalyptus.auth;
2289+
2290+public class NoSuchUserException extends Exception {
2291+
2292+ public NoSuchUserException( ) {
2293+ super( );
2294+ // TODO Auto-generated constructor stub
2295+ }
2296+
2297+ public NoSuchUserException( String message, Throwable cause ) {
2298+ super( message, cause );
2299+ // TODO Auto-generated constructor stub
2300+ }
2301+
2302+ public NoSuchUserException( String message ) {
2303+ super( message );
2304+ // TODO Auto-generated constructor stub
2305+ }
2306+
2307+ public NoSuchUserException( Throwable cause ) {
2308+ super( cause );
2309+ // TODO Auto-generated constructor stub
2310+ }
2311+
2312+}
2313
2314=== added file 'clc/modules/authentication/src/main/java/com/eucalyptus/auth/RemoteComponentCredentialBootstrapper.java'
2315--- clc/modules/authentication/src/main/java/com/eucalyptus/auth/RemoteComponentCredentialBootstrapper.java 1970-01-01 00:00:00 +0000
2316+++ clc/modules/authentication/src/main/java/com/eucalyptus/auth/RemoteComponentCredentialBootstrapper.java 2010-02-08 18:57:20 +0000
2317@@ -0,0 +1,120 @@
2318+/*******************************************************************************
2319+*Copyright (c) 2009 Eucalyptus Systems, Inc.
2320+*
2321+* This program is free software: you can redistribute it and/or modify
2322+* it under the terms of the GNU General Public License as published by
2323+* the Free Software Foundation, only version 3 of the License.
2324+*
2325+*
2326+* This file is distributed in the hope that it will be useful, but WITHOUT
2327+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
2328+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
2329+* for more details.
2330+*
2331+* You should have received a copy of the GNU General Public License along
2332+* with this program. If not, see <http://www.gnu.org/licenses/>.
2333+*
2334+* Please contact Eucalyptus Systems, Inc., 130 Castilian
2335+* Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/>
2336+* if you need additional information or have any questions.
2337+*
2338+* This file may incorporate work covered under the following copyright and
2339+* permission notice:
2340+*
2341+* Software License Agreement (BSD License)
2342+*
2343+* Copyright (c) 2008, Regents of the University of California
2344+* All rights reserved.
2345+*
2346+* Redistribution and use of this software in source and binary forms, with
2347+* or without modification, are permitted provided that the following
2348+* conditions are met:
2349+*
2350+* Redistributions of source code must retain the above copyright notice,
2351+* this list of conditions and the following disclaimer.
2352+*
2353+* Redistributions in binary form must reproduce the above copyright
2354+* notice, this list of conditions and the following disclaimer in the
2355+* documentation and/or other materials provided with the distribution.
2356+*
2357+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
2358+* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
2359+* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
2360+* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
2361+* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
2362+* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
2363+* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
2364+* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
2365+* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
2366+* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
2367+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
2368+* THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
2369+* LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
2370+* SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
2371+* IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
2372+* BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
2373+* THE REGENTS’ DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
2374+* OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
2375+* WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
2376+* ANY SUCH LICENSES OR RIGHTS.
2377+*******************************************************************************/
2378+/*
2379+ * Author: chris grzegorczyk <grze@eucalyptus.com>
2380+ */
2381+package com.eucalyptus.auth;
2382+
2383+import org.apache.log4j.Logger;
2384+
2385+import com.eucalyptus.auth.util.EucaKeyStore;
2386+import com.eucalyptus.auth.util.Hashes;
2387+import com.eucalyptus.bootstrap.Bootstrapper;
2388+import com.eucalyptus.bootstrap.Component;
2389+import com.eucalyptus.bootstrap.Depends;
2390+import com.eucalyptus.bootstrap.Provides;
2391+import com.eucalyptus.bootstrap.Resource;
2392+
2393+@Provides( resource = Resource.SystemCredentials )
2394+@Depends( remote = Component.eucalyptus )
2395+public class RemoteComponentCredentialBootstrapper extends Bootstrapper {
2396+ private static Logger LOG = Logger.getLogger( RemoteComponentCredentialBootstrapper.class );
2397+
2398+ @Override
2399+ public boolean load( Resource current ) throws Exception {
2400+ Credentials.init( );
2401+ while ( !this.checkAllKeys( ) ) {
2402+ LOG.fatal( "Waiting for system credentials before proceeding with startup..." );
2403+ try {
2404+ Thread.sleep( 2000 );
2405+ } catch ( Exception e ) {
2406+ }
2407+ }
2408+ for ( Component c : Component.values( ) ) {
2409+ LOG.info( "Initializing system credentials for " + c.name( ) );
2410+ SystemCredentialProvider.init( c );
2411+ c.markHasKeys( );
2412+ }
2413+ System.setProperty( "euca.db.password", Hashes.getHexSignature( ) );
2414+ return true;
2415+ }
2416+
2417+ private boolean checkAllKeys( ) {
2418+ for ( Component c : Component.values( ) ) {
2419+ if ( c.isEnabled( ) ) {
2420+ try {
2421+ if( !EucaKeyStore.getCleanInstance( ).containsEntry( c.name( ) ) ) {
2422+ return false;
2423+ }
2424+ } catch ( Exception e ) {
2425+ return false;
2426+ }
2427+ }
2428+ }
2429+ return true;
2430+ }
2431+
2432+ @Override
2433+ public boolean start( ) throws Exception {
2434+ return true;
2435+ }
2436+
2437+}
2438
2439=== added file 'clc/modules/authentication/src/main/java/com/eucalyptus/auth/SystemCredentialProvider.java'
2440--- clc/modules/authentication/src/main/java/com/eucalyptus/auth/SystemCredentialProvider.java 1970-01-01 00:00:00 +0000
2441+++ clc/modules/authentication/src/main/java/com/eucalyptus/auth/SystemCredentialProvider.java 2010-02-08 18:57:20 +0000
2442@@ -0,0 +1,195 @@
2443+/*******************************************************************************
2444+*Copyright (c) 2009 Eucalyptus Systems, Inc.
2445+*
2446+* This program is free software: you can redistribute it and/or modify
2447+* it under the terms of the GNU General Public License as published by
2448+* the Free Software Foundation, only version 3 of the License.
2449+*
2450+*
2451+* This file is distributed in the hope that it will be useful, but WITHOUT
2452+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
2453+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
2454+* for more details.
2455+*
2456+* You should have received a copy of the GNU General Public License along
2457+* with this program. If not, see <http://www.gnu.org/licenses/>.
2458+*
2459+* Please contact Eucalyptus Systems, Inc., 130 Castilian
2460+* Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/>
2461+* if you need additional information or have any questions.
2462+*
2463+* This file may incorporate work covered under the following copyright and
2464+* permission notice:
2465+*
2466+* Software License Agreement (BSD License)
2467+*
2468+* Copyright (c) 2008, Regents of the University of California
2469+* All rights reserved.
2470+*
2471+* Redistribution and use of this software in source and binary forms, with
2472+* or without modification, are permitted provided that the following
2473+* conditions are met:
2474+*
2475+* Redistributions of source code must retain the above copyright notice,
2476+* this list of conditions and the following disclaimer.
2477+*
2478+* Redistributions in binary form must reproduce the above copyright
2479+* notice, this list of conditions and the following disclaimer in the
2480+* documentation and/or other materials provided with the distribution.
2481+*
2482+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
2483+* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
2484+* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
2485+* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
2486+* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
2487+* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
2488+* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
2489+* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
2490+* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
2491+* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
2492+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
2493+* THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
2494+* LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
2495+* SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
2496+* IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
2497+* BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
2498+* THE REGENTS’ DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
2499+* OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
2500+* WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
2501+* ANY SUCH LICENSES OR RIGHTS.
2502+*******************************************************************************/
2503+/*
2504+ * Author: chris grzegorczyk <grze@eucalyptus.com>
2505+ */
2506+package com.eucalyptus.auth;
2507+
2508+import java.security.KeyPair;
2509+import java.security.PrivateKey;
2510+import java.security.cert.X509Certificate;
2511+import java.util.concurrent.ConcurrentHashMap;
2512+import java.util.concurrent.ConcurrentMap;
2513+
2514+import org.apache.log4j.Logger;
2515+
2516+import com.eucalyptus.auth.util.EucaKeyStore;
2517+import com.eucalyptus.auth.util.KeyTool;
2518+import com.eucalyptus.bootstrap.Bootstrapper;
2519+import com.eucalyptus.bootstrap.Component;
2520+import com.eucalyptus.bootstrap.Depends;
2521+import com.eucalyptus.bootstrap.Provides;
2522+import com.eucalyptus.bootstrap.Resource;
2523+import com.eucalyptus.util.EucalyptusProperties;
2524+
2525+@Provides( resource = Resource.SystemCredentials )
2526+@Depends( local = Component.eucalyptus )
2527+public class SystemCredentialProvider extends Bootstrapper {
2528+ private static Logger LOG = Logger.getLogger( SystemCredentialProvider.class );
2529+ private static ConcurrentMap<Component, X509Certificate> certs = new ConcurrentHashMap<Component, X509Certificate>( );
2530+ private static ConcurrentMap<Component, KeyPair> keypairs = new ConcurrentHashMap<Component, KeyPair>( );
2531+ private Component name;
2532+
2533+ public SystemCredentialProvider( ) {
2534+ }
2535+
2536+ private SystemCredentialProvider( Component name ) {
2537+ this.name = name;
2538+ }
2539+
2540+ public static SystemCredentialProvider getCredentialProvider( Component name ) {
2541+ return new SystemCredentialProvider( name );
2542+ }
2543+
2544+ public X509Certificate getCertificate( ) {
2545+ return SystemCredentialProvider.certs.get( this.name );
2546+ }
2547+
2548+ public PrivateKey getPrivateKey( ) {
2549+ return SystemCredentialProvider.keypairs.get( this.name ).getPrivate( );
2550+ }
2551+
2552+ public KeyPair getKeyPair( ) {
2553+ return SystemCredentialProvider.keypairs.get( this.name );
2554+ }
2555+
2556+ static void init( Component name ) throws Exception {
2557+ new SystemCredentialProvider( name ).init( );
2558+ }
2559+
2560+ private void init( ) throws Exception {
2561+ if ( EucaKeyStore.getInstance( ).containsEntry( this.name.name( ) ) ) {
2562+ try {
2563+ SystemCredentialProvider.certs.put( this.name, EucaKeyStore.getInstance( ).getCertificate( this.name.name( ) ) );
2564+ SystemCredentialProvider.keypairs.put( this.name, EucaKeyStore.getInstance( ).getKeyPair( this.name.name( ), this.name.name( ) ) );
2565+ return;
2566+ } catch ( Exception e ) {
2567+ SystemCredentialProvider.certs.remove( this );
2568+ SystemCredentialProvider.keypairs.remove( this );
2569+ LOG.fatal( "Failed to read keys from the keystore. Please repair the keystore by hand." );
2570+ LOG.fatal( e, e );
2571+ throw e;
2572+ }
2573+ } else if ( Component.eucalyptus.isLocal( ) ) {
2574+ this.createSystemCredentialProviderKey( this.name );
2575+ return;
2576+ }
2577+ throw new RuntimeException( "Failed to load credentials because of an unknown error." );
2578+ }
2579+
2580+ static boolean checkKeystore( Component name ) throws Exception {
2581+ return EucaKeyStore.getCleanInstance( ).containsEntry( name.name( ) );
2582+ }
2583+
2584+ static boolean check( Component name ) {
2585+ return ( SystemCredentialProvider.keypairs.containsKey( name.name( ) ) && SystemCredentialProvider.certs.containsKey( name.name( ) ) ) && EucaKeyStore.getInstance( ).containsEntry( name.name( ) );
2586+ }
2587+
2588+ private void loadSystemCredentialProviderKey( String name ) throws Exception {
2589+ Component alias = Component.valueOf( name );
2590+ if ( this.certs.containsKey( alias ) ) {
2591+ return;
2592+ } else {
2593+ createSystemCredentialProviderKey( alias );
2594+ }
2595+ }
2596+
2597+ private void createSystemCredentialProviderKey( Component name ) throws Exception {
2598+ KeyTool keyTool = new KeyTool( );
2599+ try {
2600+ KeyPair sysKp = keyTool.getKeyPair( );
2601+ X509Certificate sysX509 = keyTool.getCertificate( sysKp, EucalyptusProperties.getDName( name.name( ) ) );
2602+ SystemCredentialProvider.certs.put( name, sysX509 );
2603+ SystemCredentialProvider.keypairs.put( name, sysKp );
2604+ // TODO: might need separate keystore for euca/hsqldb/ssl/jetty/etc.
2605+ EucaKeyStore.getInstance( ).addKeyPair( name.name( ), sysX509, sysKp.getPrivate( ), name.name( ) );
2606+ EucaKeyStore.getInstance( ).store( );
2607+ } catch ( Exception e ) {
2608+ SystemCredentialProvider.certs.remove( name );
2609+ SystemCredentialProvider.keypairs.remove( name );
2610+ EucaKeyStore.getInstance( ).remove( );
2611+ throw e;
2612+ }
2613+ }
2614+
2615+ @Override
2616+ public boolean load( Resource current ) throws Exception {
2617+ try {
2618+ Credentials.init( );
2619+ for ( Component c : Component.values( ) ) {
2620+ try {
2621+ if ( !SystemCredentialProvider.check( c ) ) SystemCredentialProvider.init( c );
2622+ } catch ( Exception e ) {
2623+ LOG.error( e );
2624+ return false;
2625+ }
2626+ }
2627+ } catch ( Exception e ) {
2628+ LOG.error( e, e );
2629+ }
2630+ return true;
2631+ }
2632+
2633+ @Override
2634+ public boolean start( ) throws Exception {
2635+ return true;
2636+ }
2637+}
2638
2639=== added file 'clc/modules/authentication/src/main/java/com/eucalyptus/auth/UserExistsException.java'
2640--- clc/modules/authentication/src/main/java/com/eucalyptus/auth/UserExistsException.java 1970-01-01 00:00:00 +0000
2641+++ clc/modules/authentication/src/main/java/com/eucalyptus/auth/UserExistsException.java 2010-02-08 18:57:20 +0000
2642@@ -0,0 +1,84 @@
2643+/*******************************************************************************
2644+*Copyright (c) 2009 Eucalyptus Systems, Inc.
2645+*
2646+* This program is free software: you can redistribute it and/or modify
2647+* it under the terms of the GNU General Public License as published by
2648+* the Free Software Foundation, only version 3 of the License.
2649+*
2650+*
2651+* This file is distributed in the hope that it will be useful, but WITHOUT
2652+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
2653+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
2654+* for more details.
2655+*
2656+* You should have received a copy of the GNU General Public License along
2657+* with this program. If not, see <http://www.gnu.org/licenses/>.
2658+*
2659+* Please contact Eucalyptus Systems, Inc., 130 Castilian
2660+* Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/>
2661+* if you need additional information or have any questions.
2662+*
2663+* This file may incorporate work covered under the following copyright and
2664+* permission notice:
2665+*
2666+* Software License Agreement (BSD License)
2667+*
2668+* Copyright (c) 2008, Regents of the University of California
2669+* All rights reserved.
2670+*
2671+* Redistribution and use of this software in source and binary forms, with
2672+* or without modification, are permitted provided that the following
2673+* conditions are met:
2674+*
2675+* Redistributions of source code must retain the above copyright notice,
2676+* this list of conditions and the following disclaimer.
2677+*
2678+* Redistributions in binary form must reproduce the above copyright
2679+* notice, this list of conditions and the following disclaimer in the
2680+* documentation and/or other materials provided with the distribution.
2681+*
2682+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
2683+* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
2684+* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
2685+* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
2686+* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
2687+* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
2688+* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
2689+* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
2690+* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
2691+* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
2692+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
2693+* THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
2694+* LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
2695+* SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
2696+* IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
2697+* BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
2698+* THE REGENTS’ DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
2699+* OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
2700+* WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
2701+* ANY SUCH LICENSES OR RIGHTS.
2702+*******************************************************************************/
2703+/*
2704+ * Author: chris grzegorczyk <grze@eucalyptus.com>
2705+ */
2706+package com.eucalyptus.auth;
2707+
2708+public class UserExistsException extends Exception {
2709+
2710+ public UserExistsException( ) {
2711+ super( );
2712+ }
2713+
2714+ public UserExistsException( String arg0, Throwable arg1 ) {
2715+ super( arg0, arg1 );
2716+ }
2717+
2718+ public UserExistsException( String arg0 ) {
2719+ super( arg0 );
2720+ }
2721+
2722+ public UserExistsException( Throwable arg0 ) {
2723+ super( arg0 );
2724+ }
2725+
2726+}
2727
2728=== added directory 'clc/modules/authentication/src/main/java/com/eucalyptus/auth/util'
2729=== added file 'clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/AbstractKeyStore.java'
2730--- clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/AbstractKeyStore.java 1970-01-01 00:00:00 +0000
2731+++ clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/AbstractKeyStore.java 2010-02-08 18:57:20 +0000
2732@@ -0,0 +1,208 @@
2733+/*******************************************************************************
2734+*Copyright (c) 2009 Eucalyptus Systems, Inc.
2735+*
2736+* This program is free software: you can redistribute it and/or modify
2737+* it under the terms of the GNU General Public License as published by
2738+* the Free Software Foundation, only version 3 of the License.
2739+*
2740+*
2741+* This file is distributed in the hope that it will be useful, but WITHOUT
2742+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
2743+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
2744+* for more details.
2745+*
2746+* You should have received a copy of the GNU General Public License along
2747+* with this program. If not, see <http://www.gnu.org/licenses/>.
2748+*
2749+* Please contact Eucalyptus Systems, Inc., 130 Castilian
2750+* Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/>
2751+* if you need additional information or have any questions.
2752+*
2753+* This file may incorporate work covered under the following copyright and
2754+* permission notice:
2755+*
2756+* Software License Agreement (BSD License)
2757+*
2758+* Copyright (c) 2008, Regents of the University of California
2759+* All rights reserved.
2760+*
2761+* Redistribution and use of this software in source and binary forms, with
2762+* or without modification, are permitted provided that the following
2763+* conditions are met:
2764+*
2765+* Redistributions of source code must retain the above copyright notice,
2766+* this list of conditions and the following disclaimer.
2767+*
2768+* Redistributions in binary form must reproduce the above copyright
2769+* notice, this list of conditions and the following disclaimer in the
2770+* documentation and/or other materials provided with the distribution.
2771+*
2772+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
2773+* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
2774+* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
2775+* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
2776+* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
2777+* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
2778+* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
2779+* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
2780+* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
2781+* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
2782+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
2783+* THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
2784+* LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
2785+* SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
2786+* IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
2787+* BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
2788+* THE REGENTS’ DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
2789+* OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
2790+* WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
2791+* ANY SUCH LICENSES OR RIGHTS.
2792+*******************************************************************************/
2793+/*
2794+ * Author: chris grzegorczyk <grze@eucalyptus.com>
2795+ */
2796+package com.eucalyptus.auth.util;
2797+
2798+import org.apache.log4j.Logger;
2799+import org.bouncycastle.jce.provider.BouncyCastleProvider;
2800+
2801+import java.io.*;
2802+import java.security.*;
2803+import java.security.cert.Certificate;
2804+import java.security.cert.CertificateException;
2805+import java.security.cert.CertificateFactory;
2806+import java.security.cert.X509Certificate;
2807+import java.util.ArrayList;
2808+import java.util.Enumeration;
2809+import java.util.List;
2810+
2811+public abstract class AbstractKeyStore {
2812+
2813+ public static AbstractKeyStore getGenericKeystore( final String fileName, final String password, final String format ) throws IOException, GeneralSecurityException {
2814+ return new GenericKeyStore( fileName, password, format );
2815+ }
2816+
2817+ private static Logger LOG = Logger.getLogger( AbstractKeyStore.class );
2818+
2819+
2820+ private KeyStore keyStore;
2821+ private final String fileName;
2822+ private final String password;
2823+ private final String format;
2824+
2825+ public AbstractKeyStore( final String fileName, final String password, final String format ) throws GeneralSecurityException, IOException {
2826+ this.password = password;
2827+ this.fileName = fileName;
2828+ this.format = format;
2829+ this.init( );
2830+ }
2831+
2832+ public KeyPair getKeyPair( final String alias, final String password ) throws GeneralSecurityException {
2833+ final Certificate cert = this.keyStore.getCertificate( alias );
2834+ final PrivateKey privateKey = ( PrivateKey ) this.keyStore.getKey( alias, password.toCharArray( ) );
2835+ final KeyPair kp = new KeyPair( cert.getPublicKey( ), privateKey );
2836+ return kp;
2837+ }
2838+
2839+ public abstract boolean check( ) throws GeneralSecurityException;
2840+
2841+ public boolean containsEntry( final String alias ) {
2842+ try {
2843+ if ( ( X509Certificate ) this.keyStore.getCertificate( alias ) != null ) { return true; }
2844+ } catch ( final KeyStoreException e ) {
2845+ }
2846+ return false;
2847+ }
2848+
2849+ public X509Certificate getCertificate( final String alias ) throws GeneralSecurityException {
2850+ return ( X509Certificate ) this.keyStore.getCertificate( alias );
2851+ }
2852+
2853+ public Key getKey( final String alias, final String password ) throws GeneralSecurityException {
2854+ return this.keyStore.getKey( alias, password.toCharArray( ) );
2855+ }
2856+
2857+ public String getCertificateAlias( final String certPem ) throws GeneralSecurityException {
2858+ final X509Certificate cert = AbstractKeyStore.pemToX509( certPem );
2859+ return this.keyStore.getCertificateAlias( cert );
2860+ }
2861+
2862+ public static X509Certificate pemToX509( final String certPem ) throws CertificateException, NoSuchProviderException {
2863+ final CertificateFactory certificatefactory = CertificateFactory.getInstance( "X.509", "BC" );
2864+ final X509Certificate cert = ( X509Certificate ) certificatefactory.generateCertificate( new ByteArrayInputStream( certPem.getBytes( ) ) );
2865+ return cert;
2866+ }
2867+
2868+ public String getCertificateAlias( final X509Certificate cert ) throws GeneralSecurityException {
2869+ final String alias = this.keyStore.getCertificateAlias( cert );
2870+ if ( alias == null ) { throw new GeneralSecurityException( "No Such Certificate!" ); }
2871+ return alias;
2872+ }
2873+
2874+ public void addCertificate( final String alias, final X509Certificate cert ) throws IOException, GeneralSecurityException {
2875+ AbstractKeyStore.LOG.info( String.format( "Adding certificate %10s %s to %s", alias, cert, this.fileName ) );
2876+ this.keyStore.setCertificateEntry( alias, cert );
2877+ this.store( );
2878+ }
2879+
2880+ public void addKeyPair( final String alias, final X509Certificate cert, final PrivateKey privateKey, final String keyPassword ) throws IOException, GeneralSecurityException {
2881+ this.keyStore.setKeyEntry( alias, privateKey, keyPassword.toCharArray( ), new Certificate[] { cert } );
2882+ this.store( );
2883+ }
2884+
2885+ public void store( ) throws IOException, GeneralSecurityException {
2886+ AbstractKeyStore.LOG.info( "Writing back keystore: " + this.fileName );
2887+ FileOutputStream fileOutputStream = new FileOutputStream( this.fileName );
2888+ this.keyStore.store( fileOutputStream, this.password.toCharArray( ) );
2889+ fileOutputStream.close();
2890+ }
2891+
2892+ private void init( ) throws IOException, GeneralSecurityException {
2893+ this.keyStore = KeyStore.getInstance( this.format, "BC" );
2894+ if ( ( new File( this.fileName ) ).exists( ) ) {
2895+ final FileInputStream fin = new FileInputStream( this.fileName );
2896+ this.keyStore.load( fin, this.password.toCharArray( ) );
2897+ fin.close( );
2898+ } else {
2899+ this.keyStore.load( null, this.password.toCharArray( ) );
2900+ }
2901+ }
2902+
2903+ public List<String> getAliases( ) throws KeyStoreException {
2904+ final List<String> aliasList = new ArrayList<String>( );
2905+ final Enumeration<String> aliases = this.keyStore.aliases( );
2906+ while ( aliases.hasMoreElements( ) ) {
2907+ aliasList.add( aliases.nextElement( ) );
2908+ }
2909+ return aliasList;
2910+ }
2911+
2912+ public String getFileName( ) {
2913+ return this.fileName;
2914+ }
2915+
2916+ public void remove( ) {
2917+ ( new File( this.fileName ) ).delete( );
2918+ }
2919+
2920+ static class GenericKeyStore extends AbstractKeyStore {
2921+
2922+ private GenericKeyStore( final String fileName, final String password, final String format ) throws IOException, GeneralSecurityException {
2923+ super( fileName, password, format );
2924+ }
2925+
2926+ @Override
2927+ public boolean check( ) throws KeyStoreException {
2928+ throw new RuntimeException( "A GenericKeyStore does not have the notion of being checked for correctness." );
2929+ }
2930+ }
2931+
2932+ public InputStream getAsInputStream() throws FileNotFoundException {
2933+ return new FileInputStream( this.fileName );
2934+ }
2935+
2936+ public KeyStore getKeyStore( ) {
2937+ return keyStore;
2938+ }
2939+
2940+}
2941
2942=== added file 'clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/EucaKeyStore.java'
2943--- clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/EucaKeyStore.java 1970-01-01 00:00:00 +0000
2944+++ clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/EucaKeyStore.java 2010-02-08 18:57:20 +0000
2945@@ -0,0 +1,115 @@
2946+/*******************************************************************************
2947+*Copyright (c) 2009 Eucalyptus Systems, Inc.
2948+*
2949+* This program is free software: you can redistribute it and/or modify
2950+* it under the terms of the GNU General Public License as published by
2951+* the Free Software Foundation, only version 3 of the License.
2952+*
2953+*
2954+* This file is distributed in the hope that it will be useful, but WITHOUT
2955+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
2956+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
2957+* for more details.
2958+*
2959+* You should have received a copy of the GNU General Public License along
2960+* with this program. If not, see <http://www.gnu.org/licenses/>.
2961+*
2962+* Please contact Eucalyptus Systems, Inc., 130 Castilian
2963+* Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/>
2964+* if you need additional information or have any questions.
2965+*
2966+* This file may incorporate work covered under the following copyright and
2967+* permission notice:
2968+*
2969+* Software License Agreement (BSD License)
2970+*
2971+* Copyright (c) 2008, Regents of the University of California
2972+* All rights reserved.
2973+*
2974+* Redistribution and use of this software in source and binary forms, with
2975+* or without modification, are permitted provided that the following
2976+* conditions are met:
2977+*
2978+* Redistributions of source code must retain the above copyright notice,
2979+* this list of conditions and the following disclaimer.
2980+*
2981+* Redistributions in binary form must reproduce the above copyright
2982+* notice, this list of conditions and the following disclaimer in the
2983+* documentation and/or other materials provided with the distribution.
2984+*
2985+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
2986+* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
2987+* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
2988+* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
2989+* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
2990+* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
2991+* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
2992+* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
2993+* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
2994+* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
2995+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
2996+* THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
2997+* LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
2998+* SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
2999+* IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
3000+* BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
3001+* THE REGENTS’ DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
3002+* OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
3003+* WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
3004+* ANY SUCH LICENSES OR RIGHTS.
3005+*******************************************************************************/
3006+/*
3007+ * Author: chris grzegorczyk <grze@eucalyptus.com>
3008+ */
3009+package com.eucalyptus.auth.util;
3010+
3011+import java.io.File;
3012+import java.io.IOException;
3013+import java.security.GeneralSecurityException;
3014+import java.security.KeyPair;
3015+import java.security.cert.X509Certificate;
3016+
3017+import org.apache.log4j.Logger;
3018+
3019+import com.eucalyptus.bootstrap.Component;
3020+import com.eucalyptus.util.EucalyptusProperties;
3021+import com.eucalyptus.util.SubDirectory;
3022+
3023+public class EucaKeyStore extends AbstractKeyStore {
3024+ public static String FORMAT = "pkcs12";
3025+ private static String KEY_STORE_PASS = Component.eucalyptus.name();
3026+ private static String FILENAME = "euca.p12";
3027+ private static Logger LOG = Logger.getLogger( EucaKeyStore.class );
3028+
3029+ private static AbstractKeyStore singleton = EucaKeyStore.getInstance( );
3030+
3031+ public static AbstractKeyStore getInstance( ) {
3032+ synchronized ( EucaKeyStore.class ) {
3033+ if ( EucaKeyStore.singleton == null ) {
3034+ try {
3035+ singleton = new EucaKeyStore( );
3036+ } catch ( final Exception e ) {
3037+ LOG.error( e, e );
3038+ }
3039+ }
3040+ }
3041+ return EucaKeyStore.singleton;
3042+ }
3043+
3044+ public static AbstractKeyStore getCleanInstance( ) throws Exception {
3045+ synchronized ( EucaKeyStore.class ) {
3046+ singleton = new EucaKeyStore( );
3047+ }
3048+ return singleton;
3049+ }
3050+
3051+
3052+ private EucaKeyStore( ) throws GeneralSecurityException, IOException {
3053+ super( SubDirectory.KEYS.toString( ) + File.separator + EucaKeyStore.FILENAME, EucaKeyStore.KEY_STORE_PASS, EucaKeyStore.FORMAT );
3054+ }
3055+
3056+ @Override
3057+ public boolean check( ) throws GeneralSecurityException {
3058+ return (this.getCertificate( Component.jetty.name() )!= null)&&(this.getCertificate( Component.eucalyptus.name() )!=null);
3059+ }
3060+}
3061
3062=== added file 'clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/Hashes.java'
3063--- clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/Hashes.java 1970-01-01 00:00:00 +0000
3064+++ clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/Hashes.java 2010-02-08 18:57:20 +0000
3065@@ -0,0 +1,267 @@
3066+/*******************************************************************************
3067+*Copyright (c) 2009 Eucalyptus Systems, Inc.
3068+*
3069+* This program is free software: you can redistribute it and/or modify
3070+* it under the terms of the GNU General Public License as published by
3071+* the Free Software Foundation, only version 3 of the License.
3072+*
3073+*
3074+* This file is distributed in the hope that it will be useful, but WITHOUT
3075+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3076+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3077+* for more details.
3078+*
3079+* You should have received a copy of the GNU General Public License along
3080+* with this program. If not, see <http://www.gnu.org/licenses/>.
3081+*
3082+* Please contact Eucalyptus Systems, Inc., 130 Castilian
3083+* Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/>
3084+* if you need additional information or have any questions.
3085+*
3086+* This file may incorporate work covered under the following copyright and
3087+* permission notice:
3088+*
3089+* Software License Agreement (BSD License)
3090+*
3091+* Copyright (c) 2008, Regents of the University of California
3092+* All rights reserved.
3093+*
3094+* Redistribution and use of this software in source and binary forms, with
3095+* or without modification, are permitted provided that the following
3096+* conditions are met:
3097+*
3098+* Redistributions of source code must retain the above copyright notice,
3099+* this list of conditions and the following disclaimer.
3100+*
3101+* Redistributions in binary form must reproduce the above copyright
3102+* notice, this list of conditions and the following disclaimer in the
3103+* documentation and/or other materials provided with the distribution.
3104+*
3105+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
3106+* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
3107+* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
3108+* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
3109+* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
3110+* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
3111+* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
3112+* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
3113+* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
3114+* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
3115+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
3116+* THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
3117+* LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
3118+* SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
3119+* IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
3120+* BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
3121+* THE REGENTS’ DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
3122+* OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
3123+* WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
3124+* ANY SUCH LICENSES OR RIGHTS.
3125+*******************************************************************************/
3126+/*
3127+ * Author: chris grzegorczyk <grze@eucalyptus.com>
3128+ */
3129+package com.eucalyptus.auth.util;
3130+
3131+import org.apache.log4j.Logger;
3132+import org.bouncycastle.jce.provider.BouncyCastleProvider;
3133+import org.bouncycastle.openssl.PEMWriter;
3134+import org.bouncycastle.openssl.PEMReader;
3135+import org.bouncycastle.util.encoders.UrlBase64;
3136+
3137+import com.eucalyptus.auth.SystemCredentialProvider;
3138+import com.eucalyptus.bootstrap.Component;
3139+
3140+import java.io.ByteArrayOutputStream;
3141+import java.io.IOException;
3142+import java.io.OutputStreamWriter;
3143+import java.io.ByteArrayInputStream;
3144+import java.io.InputStreamReader;
3145+import java.security.*;
3146+import java.security.cert.X509Certificate;
3147+import java.util.zip.Adler32;
3148+
3149+public class Hashes {
3150+ private static Logger LOG = Logger.getLogger( Hashes.class );
3151+
3152+ public static byte[] getPemBytes( final Object o ) {
3153+ PEMWriter pemOut;
3154+ ByteArrayOutputStream pemByteOut = new ByteArrayOutputStream( );
3155+ try {
3156+ pemOut = new PEMWriter( new OutputStreamWriter( pemByteOut ) );
3157+ pemOut.writeObject( o );
3158+ pemOut.close( );
3159+ } catch ( IOException e ) {
3160+ LOG.error( e, e );//this can never happen
3161+ }
3162+ return pemByteOut.toByteArray( );
3163+ }
3164+
3165+ public static X509Certificate getPemCert( final byte[] o ) {
3166+ X509Certificate x509 = null;
3167+ PEMReader in = null;
3168+ ByteArrayInputStream pemByteIn = new ByteArrayInputStream( o );
3169+ in = new PEMReader( new InputStreamReader( pemByteIn ) );
3170+ try {
3171+ x509 = ( X509Certificate ) in.readObject( );
3172+ } catch ( IOException e ) {
3173+ LOG.error( e, e );//this can never happen
3174+ }
3175+ return x509;
3176+ }
3177+
3178+ static {
3179+ Security.addProvider( new BouncyCastleProvider( ) );
3180+ }
3181+
3182+ public enum Digest {
3183+ GOST3411,
3184+ Tiger,
3185+ Whirlpool,
3186+ MD2,
3187+ MD4,
3188+ MD5,
3189+ RipeMD128,
3190+ RipeMD160,
3191+ RipeMD256,
3192+ RipeMD320,
3193+ SHA1,
3194+ SHA224,
3195+ SHA256,
3196+ SHA384,
3197+ SHA512;
3198+
3199+ public MessageDigest get( ) {
3200+ try {
3201+ return MessageDigest.getInstance( this.name( ) );
3202+ } catch ( Exception e ) {
3203+ LOG.error( e, e );
3204+ System.exit( -4 );
3205+ return null;
3206+ }
3207+ }
3208+ }
3209+
3210+ public enum Mac {
3211+ HmacSHA1,
3212+ HmacSHA256
3213+ }
3214+
3215+ public static String hashPassword( String password ) throws NoSuchAlgorithmException {
3216+ byte[] fp = Digest.MD5.get( ).digest( password.getBytes( ) );
3217+ return getHexString( fp );
3218+ }
3219+
3220+ public static String getDigestBase64( String input, Digest hash, boolean randomize ) {
3221+ byte[] inputBytes = input.getBytes( );
3222+ byte[] digestBytes = null;
3223+ MessageDigest digest = hash.get( );
3224+ digest.update( inputBytes );
3225+ if ( randomize ) {
3226+ SecureRandom random = new SecureRandom( );
3227+ random.setSeed( System.currentTimeMillis( ) );
3228+ byte[] randomBytes = random.generateSeed( inputBytes.length );
3229+ digest.update( randomBytes );
3230+ }
3231+ digestBytes = digest.digest( );
3232+ return new String( UrlBase64.encode( digestBytes ) );
3233+ }
3234+
3235+ public static String base64encode( String input ) {
3236+ return new String( UrlBase64.encode( input.getBytes( ) ) );
3237+ }
3238+
3239+ public static String base64decode( String input ) {
3240+ return new String( UrlBase64.decode( input.getBytes( ) ) );
3241+ }
3242+
3243+ public static String getFingerPrint( Key privKey ) {
3244+ try {
3245+ byte[] fp = Digest.SHA1.get( ).digest( privKey.getEncoded( ) );
3246+ StringBuffer sb = new StringBuffer( );
3247+ for ( byte b : fp )
3248+ sb.append( String.format( "%02X:", b ) );
3249+ return sb.substring( 0, sb.length( ) - 1 ).toLowerCase( );
3250+ } catch ( Exception e ) {
3251+ LOG.error( e, e );
3252+ return null;
3253+ }
3254+ }
3255+
3256+ public static String getHexString( byte[] data ) {
3257+ StringBuffer buf = new StringBuffer( );
3258+ for ( int i = 0; i < data.length; i++ ) {
3259+ int halfbyte = ( data[i] >>> 4 ) & 0x0F;
3260+ int two_halfs = 0;
3261+ do {
3262+ if ( ( 0 <= halfbyte ) && ( halfbyte <= 9 ) ) buf.append( ( char ) ( '0' + halfbyte ) );
3263+ else buf.append( ( char ) ( 'a' + ( halfbyte - 10 ) ) );
3264+ halfbyte = data[i] & 0x0F;
3265+ } while ( two_halfs++ < 1 );
3266+ }
3267+ return buf.toString( ).toLowerCase( );
3268+ }
3269+
3270+ public static String getRandom( int size ) {
3271+ SecureRandom random = new SecureRandom( );
3272+ random.setSeed( System.nanoTime( ) );
3273+ byte[] randomBytes = new byte[size];
3274+ random.nextBytes( randomBytes );
3275+ return new String( UrlBase64.encode( randomBytes ) );
3276+ }
3277+
3278+ public static String generateId( final String userId, final String prefix ) {
3279+ Adler32 hash = new Adler32( );
3280+ String key = userId + (System.currentTimeMillis( ) * Math.random( ));
3281+ hash.update( key.getBytes( ) );
3282+ String imageId = String.format( "%s-%08X", prefix, hash.getValue( ) );
3283+ return imageId;
3284+ }
3285+
3286+ public static byte[] hexToBytes( String data ) {
3287+ int k = 0;
3288+ byte[] results = new byte[data.length( ) / 2];
3289+ for ( int i = 0; i < data.length( ); ) {
3290+ results[k] = ( byte ) ( Character.digit( data.charAt( i++ ), 16 ) << 4 );
3291+ results[k] += ( byte ) ( Character.digit( data.charAt( i++ ), 16 ) );
3292+ k++;
3293+ }
3294+
3295+ return results;
3296+ }
3297+
3298+ public static String bytesToHex( byte[] data ) {
3299+ StringBuffer buffer = new StringBuffer( );
3300+ for ( int i = 0; i < data.length; i++ ) {
3301+ buffer.append( byteToHex( data[i] ) );
3302+ }
3303+ return ( buffer.toString( ) );
3304+ }
3305+
3306+ public static String byteToHex( byte data ) {
3307+ StringBuffer hexString = new StringBuffer( );
3308+ hexString.append( toHex( ( data >>> 4 ) & 0x0F ) );
3309+ hexString.append( toHex( data & 0x0F ) );
3310+ return hexString.toString( );
3311+ }
3312+
3313+ public static char toHex( int value ) {
3314+ if ( ( 0 <= value ) && ( value <= 9 ) ) return ( char ) ( '0' + value );
3315+ else return ( char ) ( 'a' + ( value - 10 ) );
3316+ }
3317+
3318+ public static String getHexSignature( ) {
3319+ try {
3320+ Signature signer = Signature.getInstance( "SHA256withRSA" );
3321+ signer.initSign( SystemCredentialProvider.getCredentialProvider( Component.eucalyptus ).getPrivateKey( ) );
3322+ signer.update( "eucalyptus".getBytes( ) );
3323+ byte[] sig = signer.sign( );
3324+ String hexSig = bytesToHex( sig );
3325+ return hexSig;
3326+ } catch ( Exception e ) {
3327+ LOG.fatal( e, e );
3328+ System.exit( -5 );
3329+ return null;
3330+ }
3331+ }
3332+}
3333
3334=== added file 'clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/KeyTool.java'
3335--- clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/KeyTool.java 1970-01-01 00:00:00 +0000
3336+++ clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/KeyTool.java 2010-02-08 18:57:20 +0000
3337@@ -0,0 +1,156 @@
3338+/*******************************************************************************
3339+*Copyright (c) 2009 Eucalyptus Systems, Inc.
3340+*
3341+* This program is free software: you can redistribute it and/or modify
3342+* it under the terms of the GNU General Public License as published by
3343+* the Free Software Foundation, only version 3 of the License.
3344+*
3345+*
3346+* This file is distributed in the hope that it will be useful, but WITHOUT
3347+* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3348+* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3349+* for more details.
3350+*
3351+* You should have received a copy of the GNU General Public License along
3352+* with this program. If not, see <http://www.gnu.org/licenses/>.
3353+*
3354+* Please contact Eucalyptus Systems, Inc., 130 Castilian
3355+* Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/>
3356+* if you need additional information or have any questions.
3357+*
3358+* This file may incorporate work covered under the following copyright and
3359+* permission notice:
3360+*
3361+* Software License Agreement (BSD License)
3362+*
3363+* Copyright (c) 2008, Regents of the University of California
3364+* All rights reserved.
3365+*
3366+* Redistribution and use of this software in source and binary forms, with
3367+* or without modification, are permitted provided that the following
3368+* conditions are met:
3369+*
3370+* Redistributions of source code must retain the above copyright notice,
3371+* this list of conditions and the following disclaimer.
3372+*
3373+* Redistributions in binary form must reproduce the above copyright
3374+* notice, this list of conditions and the following disclaimer in the
3375+* documentation and/or other materials provided with the distribution.
3376+*
3377+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
3378+* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
3379+* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
3380+* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
3381+* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
3382+* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
3383+* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
3384+* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
3385+* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
3386+* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
3387+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
3388+* THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
3389+* LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
3390+* SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
3391+* IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
3392+* BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
3393+* THE REGENTS’ DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
3394+* OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
3395+* WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
3396+* ANY SUCH LICENSES OR RIGHTS.
3397+*******************************************************************************/
3398+/*
3399+ */
3400+
3401+/*
3402+ * Author: chris grzegorczyk <grze@eucalyptus.com>
3403+ */
3404+package com.eucalyptus.auth.util;
3405+
3406+import org.apache.log4j.Logger;
3407+import org.bouncycastle.asn1.x509.BasicConstraints;
3408+import org.bouncycastle.asn1.x509.X509Extensions;
3409+import org.bouncycastle.openssl.PEMWriter;
3410+import org.bouncycastle.x509.X509V3CertificateGenerator;
3411+
3412+import javax.security.auth.x500.X500Principal;
3413+import java.io.FileWriter;
3414+import java.io.IOException;
3415+import java.math.BigInteger;
3416+import java.security.KeyPair;
3417+import java.security.KeyPairGenerator;
3418+import java.security.SecureRandom;
3419+import java.security.cert.X509Certificate;
3420+import java.util.Calendar;
3421+
3422+public class KeyTool {
3423+ private static Logger LOG = Logger.getLogger( KeyTool.class );
3424+
3425+ private String keyAlgorithm;
3426+ private String keySigningAlgorithm;
3427+ private int keySize;
3428+ public static String PROVIDER = "BC";
3429+
3430+ public KeyTool( ) {
3431+ this.keyAlgorithm = "RSA";
3432+ this.keySigningAlgorithm = "SHA512WithRSA";
3433+ this.keySize = 2048;
3434+ }
3435+
3436+ public KeyTool( final String keyAlgorithm, final String keySigningAlgorithm, final int keySize ) {
3437+ this.keyAlgorithm = keyAlgorithm;
3438+ this.keySigningAlgorithm = keySigningAlgorithm;
3439+ this.keySize = keySize;
3440+ }
3441+
3442+ public KeyPair getKeyPair( ) throws Exception {
3443+ KeyPairGenerator keyGen = null;
3444+ try {
3445+ LOG.debug( "Generating new keypair for thread=" + Thread.currentThread( ).getThreadGroup( ) + "." + Thread.currentThread( ).getName( ) );
3446+ keyGen = KeyPairGenerator.getInstance( this.keyAlgorithm, "BC" );
3447+ SecureRandom random = new SecureRandom( );
3448+ random.setSeed( System.currentTimeMillis( ) );
3449+ keyGen.initialize( this.keySize, random );
3450+ KeyPair keyPair = keyGen.generateKeyPair( );
3451+ return keyPair;
3452+ } catch ( Exception e ) {
3453+ LOG.debug( e, e );
3454+ throw e;
3455+ }
3456+ }
3457+
3458+ public X509Certificate getCertificate( KeyPair keyPair, String certDn ) {
3459+ X509V3CertificateGenerator certGen = new X509V3CertificateGenerator( );
3460+ X500Principal dnName = new X500Principal( certDn );
3461+
3462+ certGen.setSerialNumber( BigInteger.valueOf( System.currentTimeMillis( ) ) );
3463+ certGen.setIssuerDN( dnName );
3464+ certGen.addExtension( X509Extensions.BasicConstraints, true, new BasicConstraints( true ) );
3465+
3466+ Calendar cal = Calendar.getInstance( );
3467+ certGen.setNotBefore( cal.getTime( ) );
3468+ cal.add( Calendar.YEAR, 5 );
3469+ certGen.setNotAfter( cal.getTime( ) );
3470+ certGen.setSubjectDN( dnName );
3471+ certGen.setPublicKey( keyPair.getPublic( ) );
3472+ certGen.setSignatureAlgorithm( this.keySigningAlgorithm );
3473+ try {
3474+ X509Certificate cert = certGen.generate( keyPair.getPrivate( ), PROVIDER );
3475+ return cert;
3476+ } catch ( Exception e ) {
3477+ LOG.fatal( e, e );
3478+ System.exit( -3 );
3479+ return null;
3480+ }
3481+ }
3482+
3483+ public void writePem( String fileName, Object securityToken ) {
3484+ PEMWriter privOut = null;
3485+ try {
3486+ privOut = new PEMWriter( new FileWriter( fileName ) );
3487+ privOut.writeObject( securityToken );
3488+ privOut.close( );
3489+ } catch ( IOException e ) {
3490+ LOG.error( e, e );
3491+ }
3492+ }
3493+}
3494
3495=== added file 'clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/SslSetup.java'
3496--- clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/SslSetup.java 1970-01-01 00:00:00 +0000
3497+++ clc/modules/authentication/src/main/java/com/eucalyptus/auth/util/SslSetup.java 2010-02-08 18:57:20 +0000
3498@@ -0,0 +1,212 @@
3499+package com.eucalyptus.auth.util;
3500+
3501+import java.io.File;
3502+import java.net.Socket;
3503+import java.security.InvalidAlgorithmParameterException;
3504+import java.security.KeyStore;
3505+import java.security.KeyStoreException;
3506+import java.security.NoSuchAlgorithmException;
3507+import java.security.Principal;
3508+import java.security.PrivateKey;
3509+import java.security.UnrecoverableKeyException;
3510+import java.security.cert.CertificateException;
3511+import java.security.cert.X509Certificate;
3512+
3513+import javax.net.ssl.KeyManager;
3514+import javax.net.ssl.KeyManagerFactorySpi;
3515+import javax.net.ssl.ManagerFactoryParameters;
3516+import javax.net.ssl.SSLContext;
3517+import javax.net.ssl.SSLEngine;
3518+import javax.net.ssl.TrustManager;
3519+import javax.net.ssl.TrustManagerFactorySpi;
3520+import javax.net.ssl.X509ExtendedKeyManager;
3521+
3522+import org.apache.log4j.Logger;
3523+
3524+import com.eucalyptus.bootstrap.Component;
3525+import com.eucalyptus.util.SubDirectory;
3526+import com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager;
3527+
3528+public class SslSetup {
3529+ private static Logger LOG = Logger.getLogger( SslSetup.class );
3530+ private static final String PROTOCOL = "TLS";
3531+ private static SSLContext SERVER_CONTEXT = null;
3532+ private static SSLContext CLIENT_CONTEXT = null;
3533+
3534+ static {
3535+ SSLContext serverContext = null;
3536+ SSLContext clientContext = null;
3537+ System.setProperty( "javax.net.ssl.trustStore", SubDirectory.KEYS.toString( ) + File.separator + "euca.p12" );
3538+ System.setProperty( "javax.net.ssl.keyStore", SubDirectory.KEYS.toString( ) + File.separator + "euca.p12" );
3539+ System.setProperty( "javax.net.ssl.trustStoreType", "PKCS12" );
3540+ System.setProperty( "javax.net.ssl.keyStoreType", "PKCS12" );
3541+ System.setProperty( "javax.net.ssl.trustStorePassword", Component.eucalyptus.name( ) );
3542+ System.setProperty( "javax.net.ssl.keyStorePassword", Component.eucalyptus.name( ) );
3543+ System.setProperty( "javax.net.debug", "none" );//set this to "ssl" for debugging.
3544+ try {
3545+ serverContext = SSLContext.getInstance( "TLS" );
3546+ serverContext.init( SslSetup.SimpleKeyManager.getKeyManagers( ), SslSetup.SimpleTrustManager.getTrustManagers( ), null );
3547+ } catch ( Exception e ) {
3548+ LOG.debug( e, e );
3549+ throw new Error( "Failed to initialize the server-side SSLContext", e );
3550+ }
3551+
3552+ try {
3553+ clientContext = SSLContext.getInstance( "TLS" );
3554+ clientContext.init( SslSetup.SimpleKeyManager.getKeyManagers( ), SslSetup.SimpleTrustManager.getTrustManagers( ), null );
3555+ } catch ( Exception e ) {
3556+ LOG.debug( e, e );
3557+ throw new Error( "Failed to initialize the client-side SSLContext", e );
3558+ }
3559+
3560+ SERVER_CONTEXT = serverContext;
3561+ CLIENT_CONTEXT = clientContext;
3562+ }
3563+
3564+ public static SSLContext getServerContext( ) {
3565+ return SERVER_CONTEXT;
3566+ }
3567+
3568+ public static SSLEngine getServerEngine() {
3569+ SSLEngine engine = SslSetup.getServerContext( ).createSSLEngine( );
3570+ engine.setUseClientMode( false );
3571+ return engine;
3572+ }
3573+ public static SSLContext getClientContext( ) {
3574+ return CLIENT_CONTEXT;
3575+ }
3576+
3577+ public static class SimpleKeyManager extends KeyManagerFactorySpi {
3578+ private static KeyManager singleton = new SimplePKCS12KeyManager( );
3579+
3580+ public static KeyManager[] getKeyManagers( ) {
3581+ return new KeyManager[] { singleton };
3582+ }
3583+
3584+ @Override
3585+ protected KeyManager[] engineGetKeyManagers( ) {
3586+ return new KeyManager[] { singleton };
3587+ }
3588+
3589+ @Override
3590+ protected void engineInit( ManagerFactoryParameters spec ) throws InvalidAlgorithmParameterException {}
3591+
3592+ @Override
3593+ protected void engineInit( KeyStore ks, char[] password ) throws KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException {}
3594+
3595+ public static class SimplePKCS12KeyManager extends X509ExtendedKeyManager {
3596+
3597+ @Override
3598+ public String chooseClientAlias( String[] arg0, Principal[] arg1, Socket arg2 ) {
3599+ return Component.eucalyptus.name( );
3600+ }
3601+
3602+ @Override
3603+ public String chooseServerAlias( String arg0, Principal[] arg1, Socket arg2 ) {
3604+ return Component.eucalyptus.name( );
3605+ }
3606+
3607+ @Override
3608+ public X509Certificate[] getCertificateChain( String arg0 ) {
3609+ if ( Component.eucalyptus.name( ).equals( arg0 ) ) {
3610+ return trustedCerts;
3611+ } else {
3612+ return null;
3613+ }
3614+ }
3615+
3616+ @Override
3617+ public String[] getClientAliases( String arg0, Principal[] arg1 ) {
3618+ return new String[] { Component.eucalyptus.name( ) };
3619+ }
3620+
3621+ @Override
3622+ public PrivateKey getPrivateKey( String arg0 ) {
3623+ if ( Component.eucalyptus.name( ).equals( arg0 ) ) {
3624+ return trustedKey;
3625+ } else {
3626+ return null;
3627+ }
3628+ }
3629+
3630+ @Override
3631+ public String[] getServerAliases( String arg0, Principal[] arg1 ) {
3632+ return new String[] { Component.eucalyptus.name( ) };
3633+ }
3634+
3635+ @Override
3636+ public String chooseEngineClientAlias( String[] keyType, Principal[] issuers, SSLEngine engine ) {
3637+ return Component.eucalyptus.name( );
3638+ }
3639+
3640+ @Override
3641+ public String chooseEngineServerAlias( String keyType, Principal[] issuers, SSLEngine engine ) {
3642+ return Component.eucalyptus.name( );
3643+ }
3644+
3645+ }
3646+
3647+ }
3648+
3649+ private static PrivateKey trustedKey = null;
3650+ private static X509Certificate trusted = getTrustedCertificate( );
3651+ private static X509Certificate[] trustedCerts = new X509Certificate[] { trusted };
3652+
3653+ private static X509Certificate getTrustedCertificate( ) {
3654+ try {
3655+ synchronized ( SslSetup.class ) {
3656+ if ( trusted == null ) {
3657+ trusted = ( X509Certificate ) EucaKeyStore.getInstance( ).getCertificate( Component.eucalyptus.name( ) );
3658+ trustedKey = EucaKeyStore.getInstance( ).getKeyPair( Component.eucalyptus.name( ), Component.eucalyptus.name( ) ).getPrivate( );
3659+ }
3660+ return trusted;
3661+ }
3662+ } catch ( Exception e ) {
3663+ LOG.error( e, e );
3664+ throw new RuntimeException( e );
3665+ }
3666+ }
3667+
3668+ public static class SimpleTrustManager extends TrustManagerFactorySpi {
3669+ private static Logger LOG = Logger.getLogger( SslSetup.SimpleTrustManager.class );
3670+
3671+ private static final TrustManager singleton = new SimpleX509TrustManager( );
3672+
3673+ public static TrustManager[] getTrustManagers( ) {
3674+ return new TrustManager[] { singleton };
3675+ }
3676+
3677+ @Override
3678+ protected TrustManager[] engineGetTrustManagers( ) {
3679+ return getTrustManagers( );
3680+ }
3681+
3682+ @Override
3683+ protected void engineInit( KeyStore keystore ) throws KeyStoreException {}
3684+
3685+ @Override
3686+ protected void engineInit( ManagerFactoryParameters managerFactoryParameters ) throws InvalidAlgorithmParameterException {}
3687+
3688+ public static class SimpleX509TrustManager extends X509ExtendedTrustManager {
3689+
3690+ @Override
3691+ public void checkClientTrusted( X509Certificate[] arg0, String arg1 ) throws CertificateException {}
3692+
3693+ @Override
3694+ public void checkServerTrusted( X509Certificate[] chain, String authType ) throws CertificateException {}
3695+
3696+ @Override
3697+ public X509Certificate[] getAcceptedIssuers( ) {
3698+ return trustedCerts;
3699+ }
3700+
3701+ @Override
3702+ public void checkClientTrusted( X509Certificate[] arg0, String arg1, String arg2, String arg3 ) throws CertificateException {}
3703+
3704+ @Override
3705+ public void checkServerTrusted( X509Certificate[] arg0, String arg1, String arg2, String arg3 ) throws CertificateException {}
3706+ }
3707+
3708+ }
3709+
3710+}
3711
3712=== added directory 'clc/modules/authentication/src/main/java/com/eucalyptus/util'
3713=== added directory 'clc/modules/authentication/src/main/resources'
3714=== added directory 'clc/modules/authentication/src/main/resources/META-INF'
3715=== added file 'clc/modules/authentication/src/main/resources/ehcache-auth.xml'
3716--- clc/modules/authentication/src/main/resources/ehcache-auth.xml 1970-01-01 00:00:00 +0000
3717+++ clc/modules/authentication/src/main/resources/ehcache-auth.xml 2010-02-08 18:57:20 +0000
3718@@ -0,0 +1,68 @@
3719+<!--
3720+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3721+ ~ Copyright (c) 2009 Eucalyptus Systems, Inc.
3722+ ~
3723+ ~ This program is free software: you can redistribute it and/or modify
3724+ ~ it under the terms of the GNU General Public License as published by
3725+ ~ the Free Software Foundation, only version 3 of the License.
3726+ ~
3727+ ~
3728+ ~ This file is distributed in the hope that it will be useful, but WITHOUT
3729+ ~ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3730+ ~ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3731+ ~ for more details.
3732+ ~
3733+ ~ You should have received a copy of the GNU General Public License along
3734+ ~ with this program. If not, see http://www.gnu.org/licenses/.
3735+ ~
3736+ ~ Please contact Eucalyptus Systems, Inc., 130 Castilian
3737+ ~ Dr., Goleta, CA 93101 USA or visit http://www.eucalyptus.com/licenses/
3738+ ~ if you need additional information or have any questions.
3739+ ~
3740+ ~ This file may incorporate work covered under the following copyright and
3741+ ~ permission notice:
3742+ ~
3743+ ~ Software License Agreement (BSD License)
3744+ ~
3745+ ~ Copyright (c) 2008, Regents of the University of California
3746+ ~ All rights reserved.
3747+ ~
3748+ ~ Redistribution and use of this software in source and binary forms, with
3749+ ~ or without modification, are permitted provided that the following
3750+ ~ conditions are met:
3751+ ~
3752+ ~ Redistributions of source code must retain the above copyright notice,
3753+ ~ this list of conditions and the following disclaimer.
3754+ ~
3755+ ~ Redistributions in binary form must reproduce the above copyright
3756+ ~ notice, this list of conditions and the following disclaimer in the
3757+ ~ documentation and/or other materials provided with the distribution.
3758+ ~
3759+ ~ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
3760+ ~ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
3761+ ~ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
3762+ ~ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
3763+ ~ OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
3764+ ~ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
3765+ ~ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
3766+ ~ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
3767+ ~ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
3768+ ~ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
3769+ ~ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. USERS OF
3770+ ~ THIS SOFTWARE ACKNOWLEDGE THE POSSIBLE PRESENCE OF OTHER OPEN SOURCE
3771+ ~ LICENSED MATERIAL, COPYRIGHTED MATERIAL OR PATENTED MATERIAL IN THIS
3772+ ~ SOFTWARE, AND IF ANY SUCH MATERIAL IS DISCOVERED THE PARTY DISCOVERING
3773+ ~ IT MAY INFORM DR. RICH WOLSKI AT THE UNIVERSITY OF CALIFORNIA, SANTA
3774+ ~ BARBARA WHO WILL THEN ASCERTAIN THE MOST APPROPRIATE REMEDY, WHICH IN
3775+ ~ THE REGENTS’ DISCRETION MAY INCLUDE, WITHOUT LIMITATION, REPLACEMENT
3776+ ~ OF THE CODE SO IDENTIFIED, LICENSING OF THE CODE SO IDENTIFIED, OR
3777+ ~ WITHDRAWAL OF THE CODE CAPABILITY TO THE EXTENT NEEDED TO COMPLY WITH
3778+ ~ ANY SUCH LICENSES OR RIGHTS.
3779+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3780+ ~ Author: chris grzegorczyk grze@eucalyptus.com
3781+ -->
3782+
3783+<ehcache>
3784+ <defaultCache maxElementsInMemory="20000" eternal="false" timeToIdleSeconds="600" timeToLiveSeconds="1200" overflowToDisk="false"/>
3785+</ehcache>
3786+
3787
3788=== renamed file 'clc/modules/axis2-transport/build.xml' => 'clc/modules/axis2-transport/build.xml.THIS'
3789=== renamed file 'clc/modules/axis2-transport/conf/axis2.xml' => 'clc/modules/axis2-transport/conf/axis2.xml.THIS'
3790=== renamed file 'clc/modules/axis2-transport/conf/cluster-axis2.xml' => 'clc/modules/axis2-transport/conf/cluster-axis2.xml.THIS'
3791=== renamed file 'clc/modules/axis2-transport/conf/cluster-policy.xml' => 'clc/modules/axis2-transport/conf/cluster-policy.xml.THIS'
3792=== renamed file 'clc/modules/axis2-transport/conf/off-policy.xml' => 'clc/modules/axis2-transport/conf/off-policy.xml.THIS'
3793=== renamed file 'clc/modules/axis2-transport/conf/policy.xml' => 'clc/modules/axis2-transport/conf/policy.xml.THIS'
3794=== renamed file 'clc/modules/axis2-transport/pom.xml' => 'clc/modules/axis2-transport/pom.xml.THIS'
3795=== renamed file 'clc/modules/axis2-transport/resources/META-INF/euca.xsd' => 'clc/modules/axis2-transport/resources/META-INF/euca.xsd.THIS'
3796=== renamed file 'clc/modules/axis2-transport/resources/META-INF/services/org/mule/providers/axis2.properties' => 'clc/modules/axis2-transport/resources/META-INF/services/org/mule/providers/axis2.properties.THIS'
3797=== removed file 'clc/modules/axis2-transport/resources/META-INF/spring.handlers'
3798--- clc/modules/axis2-transport/resources/META-INF/spring.handlers 2009-01-07 03:32:35 +0000
3799+++ clc/modules/axis2-transport/resources/META-INF/spring.handlers 1970-01-01 00:00:00 +0000
3800@@ -1,1 +0,0 @@
3801-http\://eucalyptus.cs.ucsb.edu/schema/cloud/1.0=edu.ucsb.eucalyptus.transport.config.Axis2NamespaceHandler
3802
3803=== removed file 'clc/modules/axis2-transport/resources/META-INF/spring.schemas'
3804--- clc/modules/axis2-transport/resources/META-INF/spring.schemas 2009-01-07 03:32:35 +0000
3805+++ clc/modules/axis2-transport/resources/META-INF/spring.schemas 1970-01-01 00:00:00 +0000
3806@@ -1,1 +0,0 @@
3807-http\://eucalyptus.cs.ucsb.edu/schema/cloud/1.0/euca.xsd=META-INF/euca.xsd
3808
3809=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/Axis2Connector.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/Axis2Connector.java.THIS'
3810=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/Axis2InOnlyMessageReceiver.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/Axis2InOnlyMessageReceiver.java.THIS'
3811=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/Axis2InOutMessageReceiver.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/Axis2InOutMessageReceiver.java.THIS'
3812=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/Axis2MessageAdapter.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/Axis2MessageAdapter.java.THIS'
3813=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/Axis2MessageDispatcher.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/Axis2MessageDispatcher.java.THIS'
3814=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/Axis2MessageReceiver.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/Axis2MessageReceiver.java.THIS'
3815=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/OverloadedWebserviceMethod.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/OverloadedWebserviceMethod.java.THIS'
3816=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/auth/Authenticator.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/auth/Authenticator.java.THIS'
3817=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/auth/CertAuthentication.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/auth/CertAuthentication.java.THIS'
3818=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/auth/RampartCallbackHandler.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/auth/RampartCallbackHandler.java.THIS'
3819=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/auth/RampartUsernameTokenCallbackHandler.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/auth/RampartUsernameTokenCallbackHandler.java.THIS'
3820=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/auth/UserAuthentication.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/auth/UserAuthentication.java.THIS'
3821=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/binding/Binding.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/binding/Binding.java.THIS'
3822=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/binding/BindingManager.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/binding/BindingManager.java.THIS'
3823=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/client/Axis2MessageDispatcherFactory.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/client/Axis2MessageDispatcherFactory.java.THIS'
3824=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/client/BasicClient.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/client/BasicClient.java.THIS'
3825=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/client/Client.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/client/Client.java.THIS'
3826=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/client/ClientFactory.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/client/ClientFactory.java.THIS'
3827=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/client/ClientPool.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/client/ClientPool.java.THIS'
3828=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Axis2InProperties.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Axis2InProperties.java.THIS'
3829=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Axis2NamespaceHandler.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Axis2NamespaceHandler.java.THIS'
3830=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Axis2OperationBuilder.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Axis2OperationBuilder.java.THIS'
3831=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Axis2OutProperties.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Axis2OutProperties.java.THIS'
3832=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Axis2Properties.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Axis2Properties.java.THIS'
3833=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Axis2ServiceBuilder.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Axis2ServiceBuilder.java.THIS'
3834=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Key.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Key.java.THIS'
3835=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Mep.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/config/Mep.java.THIS'
3836=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/http/Axis2HttpListener.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/http/Axis2HttpListener.java.THIS'
3837=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/http/Axis2HttpWorker.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/http/Axis2HttpWorker.java.THIS'
3838=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/http/Axis2HttpWorkerFactory.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/http/Axis2HttpWorkerFactory.java.THIS'
3839=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/http/WalrusDataFormatter.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/http/WalrusDataFormatter.java.THIS'
3840=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/i18n/Axis2Messages.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/i18n/Axis2Messages.java.THIS'
3841=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/Axis2QueryDispatcher.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/Axis2QueryDispatcher.java.THIS'
3842=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/DefaultQueryBinding.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/DefaultQueryBinding.java.THIS'
3843=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/EucalyptusQuerySecurityHandler.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/EucalyptusQuerySecurityHandler.java.THIS'
3844=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/GenericHttpDispatcher.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/GenericHttpDispatcher.java.THIS'
3845=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/HMACQuerySecurityHandler.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/HMACQuerySecurityHandler.java.THIS'
3846=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/HttpRequest.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/HttpRequest.java.THIS'
3847=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/POSTRequestContext.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/POSTRequestContext.java.THIS'
3848=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/QueryBinding.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/QueryBinding.java.THIS'
3849=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/QueryBindingException.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/QueryBindingException.java.THIS'
3850=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/QuerySecurityException.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/QuerySecurityException.java.THIS'
3851=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/QuerySecurityHandler.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/QuerySecurityHandler.java.THIS'
3852=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/RESTfulDispatcher.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/RESTfulDispatcher.java.THIS'
3853=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/StorageQueryBinding.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/StorageQueryBinding.java.THIS'
3854=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/StorageQueryDispatcher.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/StorageQueryDispatcher.java.THIS'
3855=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/StorageQuerySecurityHandler.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/StorageQuerySecurityHandler.java.THIS'
3856=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/WalrusFileItem.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/WalrusFileItem.java.THIS'
3857=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/WalrusFileItemFactory.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/WalrusFileItemFactory.java.THIS'
3858=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/WalrusQueryBinding.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/WalrusQueryBinding.java.THIS'
3859=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/WalrusQueryDispatcher.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/WalrusQueryDispatcher.java.THIS'
3860=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/WalrusQuerySecurityHandler.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/query/WalrusQuerySecurityHandler.java.THIS'
3861=== renamed file 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/util/Defaults.java' => 'clc/modules/axis2-transport/src/edu/ucsb/eucalyptus/transport/util/Defaults.java.THIS'
3862=== renamed file 'clc/modules/axis2-transport/src/org/apache/axis2/transport/http/server/AxisHttpResponseImpl.java' => 'clc/modules/axis2-transport/src/org/apache/axis2/transport/http/server/AxisHttpResponseImpl.java.THIS'
3863=== added directory 'clc/modules/bootstrap'
3864=== added file 'clc/modules/bootstrap/Makefile'
3865--- clc/modules/bootstrap/Makefile 1970-01-01 00:00:00 +0000
3866+++ clc/modules/bootstrap/Makefile 2010-02-08 18:57:20 +0000
3867@@ -0,0 +1,58 @@
3868+###############################################################################
3869+# Copyright (c) 2009 Eucalyptus Systems, Inc.
3870+#
3871+# This program is free software: you can redistribute it and/or modify
3872+# it under the terms of the GNU General Public License as published by
3873+# the Free Software Foundation, only version 3 of the License.
3874+#
3875+#
3876+# This file is distributed in the hope that it will be useful, but WITHOUT
3877+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3878+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3879+# for more details.
3880+#
3881+# You should have received a copy of the GNU General Public License along
3882+# with this program. If not, see <http://www.gnu.org/licenses/>.
3883+#
3884+# Please contact Eucalyptus Systems, Inc., 130 Castilian
3885+# Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/>
3886+# if you need additional information or have any questions.
3887+#
3888+###############################################################################
3889+# Author: Chris Grzegorczyk grze@eucalyptus.com
3890+###############################################################################
3891+include ../../../Makedefs
3892+CC = gcc
3893+CFLAGS = -g -O2 -DOS_LINUX -DDSO_DLFCN \
3894+ -I$(JAVA_HOME)/include \
3895+ -I$(JAVA_HOME)/include/linux \
3896+ -I../../../util \
3897+ -Wall -Wstrict-prototypes
3898+LDFLAGS = -ldl -lpthread
3899+JAVACFLAGS =
3900+RANLIB = ranlib
3901+LDCMD = gcc
3902+
3903+OBJS = eucalyptus-bootstrap.o eucalyptus-opts.o
3904+all: eucalyptus-cloud
3905+build: eucalyptus-cloud
3906+.c.o:
3907+ $(CC) $(CFLAGS) -c $< -o $@
3908+
3909+eucalyptus-cloud: $(OBJS)
3910+ $(LDCMD) $(LDFLAGS) $(OBJS) -o eucalyptus-cloud
3911+
3912+ggo:
3913+ gengetopt --input=arguments.ggo --file-name=eucalyptus-opts --func-name=arguments --arg-struct-name=eucalyptus_opts
3914+
3915+install: eucalyptus-cloud
3916+ $(INSTALL) -d $(DESTDIR)$(sbindir)
3917+ $(INSTALL) -m 0755 eucalyptus-cloud $(DESTDIR)$(sbindir)/eucalyptus-cloud
3918+
3919+clean:
3920+ @$(RM) -f $(OBJS) eucalyptus-cloud
3921+
3922+distclean: clean
3923+
3924+uninstall:
3925+ @$(RM) -f $(sbindir)/eucalyptus-cloud
3926
3927=== added file 'clc/modules/bootstrap/arguments.ggo'
3928--- clc/modules/bootstrap/arguments.ggo 1970-01-01 00:00:00 +0000
3929+++ clc/modules/bootstrap/arguments.ggo 2010-02-08 18:57:20 +0000
3930@@ -0,0 +1,49 @@
3931+package "Eucalyptus"
3932+version "v1.6"
3933+
3934+section "Eucalyptus Configuration & Environment"
3935+option "user" u "User to drop privs to after starting." string typestr="username" default="eucalyptus" no
3936+option "home" h "Eucalyptus home directory." string typestr="directory" default="/" no
3937+option "cloud-host" c "Hostname/Address for the Cloud Controller." string typestr="address" default="127.0.0.1" no
3938+option "walrus-host" w "Hostname/Address for Walrus." string typestr="address or 'localhost'" default="localhost" no
3939+option "define" D "Set system properties." string optional multiple
3940+option "verbose" v "Verbose bootstrapper output. Note: This only controls the level of output from the native bootstrapper." flag off
3941+option "log-level" l "Control the log level for console output." string typestr="filename" default="INFO" no
3942+option "exhaustive" x "Exhaustive connection information for internal, client, and database connections." flag off
3943+option "exhaustive-db" - "Individually enable exhaustive connection information for database connections." flag off
3944+option "exhaustive-user" - "Individually enable exhaustive connection information for client connections." flag off
3945+option "exhaustive-cc" - "Individually enable exhaustive connection information for client connections." flag off
3946+option "log-appender" L "Control the destination for console output." string typestr="log4j-appender-name" default="console-log" no
3947+option "out" o "Redirect standard out to file." string typestr="filename" default="&1" no
3948+option "err" e "Redirect standard error to file." string typestr="filename" default="&2" no
3949+
3950+section "Remote Services"
3951+option "remote-cloud" - "Do not try to bootstrap cloud services locally." flag off
3952+option "remote-walrus" - "Do not try to bootstrap walrus services locally." flag off
3953+option "remote-dns" - "Do not try to bootstrap DNS locally." flag off
3954+option "remote-storage" - "Do not try to bootstrap storage locally." flag off
3955+
3956+section "Disable Services"
3957+option "disable-cloud" - "Disable loading cloud services altogether." flag off
3958+option "disable-walrus" - "Disable loading walrus services altogether." flag off
3959+option "disable-dns" - "Disable loading DNS services altogether." flag off
3960+option "disable-storage" - "Disable loading storage services altogether." flag off
3961+option "disable-iscsi" - "Disable ISCSI support for dynamic block storage." flag off
3962+
3963+section "Eucalyptus Runtime Options"
3964+option "check" C "Check on Eucalyptus." flag off
3965+option "stop" S "Stop Eucalyptus." flag off
3966+option "fork" f "Fork and daemonize Eucalyptus." flag off
3967+option "pidfile" - "Location for the pidfile." string typestr="filename" default="/var/run/eucalyptus-cloud.pid" no
3968+
3969+
3970+section "Java VM Options"
3971+option "java-home" j "Alternative way to specify JAVA_HOME." string typestr="directory" default="/usr/lib/jvm/java-6-openjdk" no
3972+option "jvm-name" J "Which JVM type to run (see jvm.cfg)." string typestr="jvm-name" default="-server" no
3973+option "jvm-args" X "Arguments to pass to the JVM." string optional multiple
3974+option "debug" d "Launch with debugger enabled." flag off
3975+option "debug-port" - "Set the port to use for the debugger." int dependon="debug" default="5005" no
3976+option "debug-suspend" - "Set the port to use for the debugger." flag dependon="debug" off
3977+option "profile" p "Launch with jprofiler enabled." flag off hidden
3978+option "profiler-home" P "Set the home for jprofiler." string typestr="jprofiler directory" dependon="profile" default="/opt/jprofiler5" no hidden
3979+
3980
3981=== added file 'clc/modules/bootstrap/eucalyptus-bootstrap.c'
3982--- clc/modules/bootstrap/eucalyptus-bootstrap.c 1970-01-01 00:00:00 +0000
3983+++ clc/modules/bootstrap/eucalyptus-bootstrap.c 2010-02-08 18:57:20 +0000
3984@@ -0,0 +1,643 @@
3985+/*******************************************************************************
3986+ * Copyright (c) 2009 Eucalyptus Systems, Inc.
3987+ *
3988+ * This program is free software: you can redistribute it and/or modify
3989+ * it under the terms of the GNU General Public License as published by
3990+ * the Free Software Foundation, only version 3 of the License.
3991+ *
3992+ *
3993+ * This file is distributed in the hope that it will be useful, but WITHOUT
3994+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3995+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3996+ * for more details.
3997+ *
3998+ * You should have received a copy of the GNU General Public License along
3999+ * with this program. If not, see <http://www.gnu.org/licenses/>.
4000+ *
4001+ * Please contact Eucalyptus Systems, Inc., 130 Castilian
4002+ * Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/>
4003+ * if you need additional information or have any questions.
4004+ *
4005+ *
4006+ * Support for dropping privileges is derived from
4007+ * commons-daemon's jsvc. (http://commons.apache.org/daemon/)
4008+ *
4009+ * Copyright 2001-2004 The Apache Software Foundation.
4010+ *
4011+ * Licensed under the Apache License, Version 2.0 (the "License");
4012+ * you may not use this file except in compliance with the License.
4013+ * You may obtain a copy of the License at
4014+ *
4015+ * http://www.apache.org/licenses/LICENSE-2.0
4016+ *
4017+ * Unless required by applicable law or agreed to in writing, software
4018+ * distributed under the License is distributed on an "AS IS" BASIS,
4019+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4020+ * See the License for the specific language governing permissions and
4021+ * limitations under the License.
4022+ *
4023+ ******************************************************************************
4024+ * Author: chris grzegorczyk grze@eucalyptus.com
4025+ ******************************************************************************/
4026+#include "eucalyptus-bootstrap.h"
4027+
4028+#include <time.h>
4029+#include <string.h>
4030+#include <dlfcn.h>
4031+#include <signal.h>
4032+#include <libgen.h>
4033+#include <unistd.h>
4034+#include <sys/types.h>
4035+#include <sys/stat.h>
4036+#include <sys/dir.h>
4037+#include <sys/wait.h>
4038+#include <fcntl.h>
4039+#include <stdio.h>
4040+#include <pwd.h>
4041+#include <grp.h>
4042+#include <sys/prctl.h>
4043+#include <sys/syscall.h>
4044+#define _LINUX_FS_H
4045+
4046+extern char **environ;
4047+pid_t child_pid = 0;
4048+char *java_library(euca_opts*, java_home_t*);
4049+int java_init(euca_opts*, java_home_t*);
4050+int JVM_destroy(int);
4051+
4052+static void java_fail(void) { exit(123); }
4053+
4054+static java_home_t *get_java_home( char *path ) {
4055+ java_home_t *data = NULL;
4056+ char buf[ 1024 ];
4057+ int x = -1, k = 0, i = 0;
4058+
4059+ if( path == NULL ) return NULL;
4060+ __debug( "Looking for libjvm in %s", path );
4061+ __abort(NULL, (CHECK_ISDIR( path ) == 0 ),"Path %s is not a directory", path );
4062+ data = (java_home_t *) malloc( sizeof(java_home_t) );
4063+ data->path = strdup( path );
4064+ data->jvms = NULL;
4065+ data->jnum = 0;
4066+ while( libjvm_paths[ ++x ] != NULL ) {
4067+ __abort(NULL, ((k = snprintf( buf, 1024, libjvm_paths[ x ], path ) ) <= 0 ),"Error mangling jvm path" );
4068+ __debug( "Attempting to locate VM library %s", buf );
4069+ if( CHECK_ISREG( buf ) == 1 ) {
4070+ data->jvms = (jvm_info_t **) malloc( 2 * sizeof(jvm_info_t *) );
4071+ data->jvms[ i ] = (jvm_info_t *) malloc( sizeof(jvm_info_t) );
4072+ data->jvms[ i ]->libjvm_path = strdup( buf );
4073+ char *dir, *base;
4074+ dir = dirname(buf);
4075+ base = basename(dir);
4076+ data->jvms[ i ]->name = base;
4077+ data->jvms[ ++i ] = NULL;
4078+ data->jnum = i;
4079+ return data;
4080+ }
4081+ }
4082+ return data;
4083+}
4084+
4085+static void handler( int sig ) {
4086+ switch( sig ) {
4087+ case SIGTERM:
4088+ __debug( "Caught SIGTERM: Scheduling a shutdown" );
4089+ if( stopping == 1 ) __error( "Shutdown or reload already scheduled" );
4090+ else stopping = 1;
4091+ break;
4092+ case SIGINT:
4093+ __debug( "Caught SIGINT: Scheduling a shutdown" );
4094+ if( stopping == 1 ) __error( "Shutdown or reload already scheduled" );
4095+ else stopping = 1;
4096+ break;
4097+ case SIGHUP:
4098+ __debug( "Caught SIGHUP: Scheduling a reload" );
4099+ if( stopping == 1 ) __error( "Shutdown or reload already scheduled" );
4100+ else stopping = 1,doreload = 1;
4101+ break;
4102+ default:
4103+ __debug( "Caught unknown signal %d", sig );
4104+ break;
4105+ }
4106+}
4107+
4108+static int set_user_group( char *user, int uid, int gid ) {
4109+ __abort(0,user==NULL,"No user to setuid to.");
4110+ __abort(-1, setgid( gid ) != 0,"Cannot set group id for user '%s'", user );
4111+ if( initgroups( user, gid ) != 0 ) __abort(-1, getuid( ) != uid, "Cannot set supplement group list for user '%s'", user );
4112+ __abort(-1, setuid( uid ) != 0, "Cannot set user id for user '%s'", user );
4113+ return 0;
4114+}
4115+static int set_caps(int caps)
4116+{
4117+ struct __user_cap_header_struct caphead;
4118+ struct __user_cap_data_struct cap;
4119+
4120+ memset(&caphead, 0, sizeof caphead);
4121+ caphead.version = _LINUX_CAPABILITY_VERSION;
4122+ caphead.pid = 0;
4123+ memset(&cap, 0, sizeof cap);
4124+ cap.effective = caps;
4125+ cap.permitted = caps;
4126+ cap.inheritable = caps;
4127+ if (syscall(__NR_capset, &caphead, &cap) < 0) {
4128+ __error("syscall failed in set_caps");
4129+ return -1;
4130+ }
4131+ return 0;
4132+}
4133+
4134+static int set_keys_ownership(char *home, int uid, int gid){
4135+ char filename[2048];
4136+ int rc;
4137+
4138+ snprintf(filename, 2047, "%s/var/lib/eucalyptus/keys/euca.p12", home);
4139+ rc = chown(filename, uid, gid);
4140+
4141+ return(0);
4142+}
4143+
4144+static int linuxset_user_group(char *user, int uid, int gid){
4145+ if (set_caps(CAPS)!=0) __abort(-1,getuid()!= uid,"set_caps(CAPS) failed");
4146+ __abort(-1,(prctl(PR_SET_KEEPCAPS,1,0,0,0) < 0),"prctl failed in linuxset_user_group");
4147+ __abort(-1,(set_user_group(user,uid,gid)!=0),"set_user_group failed in linuxset_user_group");
4148+ if (set_caps(CAPSMIN)!=0) __abort(-1,(getuid()!= uid),"set_caps(CAPSMIN) failed");
4149+ return 0;
4150+}
4151+static int checkuser( char *user, uid_t *uid, gid_t *gid ) {
4152+ struct passwd *pwds = NULL;
4153+ int status = 0;
4154+ pid_t pid = 0;
4155+ __abort(1, user == NULL,"" );
4156+ pwds = getpwnam( user );
4157+ __abort(0, (pwds == NULL ),"Invalid user name '%s' specified", user );
4158+ *uid = pwds->pw_uid;
4159+ *gid = pwds->pw_gid;
4160+ pid = fork( );
4161+ __abort(0,( pid == -1 ), "Cannot validate user name" );
4162+ if( pid == 0 ) {
4163+ __die( set_user_group( user, *uid, *gid ) != 0,"set_user_group failed." );
4164+ exit( 0 );
4165+ }
4166+ while( waitpid( pid, &status, 0 ) != pid );
4167+ if( WIFEXITED( status ) ) {
4168+ status = WEXITSTATUS( status );
4169+ __abort(1, (status == 0),"User '%s' validated", user );
4170+ }
4171+ __abort(0,1,"Error validating user '%s'", user );
4172+}
4173+
4174+static void controller( int sig ) {
4175+ switch( sig ) {
4176+ case SIGTERM:
4177+ case SIGINT:
4178+ case SIGHUP:
4179+ __debug( "Forwarding signal %d to process %d", sig, child_pid );
4180+ kill( child_pid, sig );
4181+ signal( sig, controller );
4182+ break;
4183+ default:
4184+ __debug( "Caught unknown signal %d", sig );
4185+ break;
4186+ }
4187+}
4188+
4189+static void * signal_set( int sig, void * newHandler ) {
4190+ void *hand = signal( sig, newHandler );
4191+ if (hand==SIG_ERR) hand=NULL;
4192+ if( hand == handler || hand == controller )
4193+ hand = NULL;
4194+ return hand;
4195+}
4196+
4197+static int __get_pid( char *pidpath ) {
4198+ FILE* pidfile; int pid;
4199+ __abort(-1,(pidfile = fopen( pidpath, "r"))==NULL,"");
4200+ __abort(-1,(fscanf(pidfile,"%d",&pid)<0),"Failed to read pid file.");
4201+ fclose( pidfile );
4202+ __abort(pid,(kill( pid, 0 )==0),"");
4203+ return -1;
4204+}
4205+static int __write_pid( char *pidpath ) {
4206+ FILE *pidfile;
4207+ __abort(0,__get_pid(pidpath)>0,"");
4208+ __abort(-1,(pidfile = fopen( pidpath, "w"))==NULL,"");
4209+ fprintf( pidfile, "%d\n", (int) getpid( ) ),fflush(pidfile),fclose(pidfile);
4210+ return 0;
4211+}
4212+
4213+
4214+static int wait_child( euca_opts *args, int pid ) {
4215+ time_t timer=0;
4216+ int rc=0,status;
4217+ while(rc <= 0 && timer < (15000000)) {
4218+ usleep(50000),timer += 50000;
4219+ __die((rc = waitpid(pid, &status, WNOHANG))<0,"Waiting for child failed?!?");
4220+ if( WIFEXITED( status ) ) return WEXITSTATUS( status );
4221+ }
4222+ return 1;
4223+}
4224+
4225+static int stop_child( euca_opts *args ) {
4226+ int pid = __get_pid( GETARG(args,pidfile) );
4227+ if( pid <= 0 ) return -1;
4228+ kill( pid, SIGTERM );
4229+ return wait_child(args,pid);
4230+}
4231+
4232+static int child( euca_opts *args, java_home_t *data, uid_t uid, gid_t gid ) {
4233+ int ret = 0;
4234+ jboolean r=0;
4235+ __write_pid( GETARG(args,pidfile) );
4236+ setpgrp( );
4237+ __die(java_init( args, data ) != 1, "Failed to initialize Eucalyptus.");
4238+ __die((r=(*env)->CallBooleanMethod(env,bootstrap.instance,bootstrap.init))==0,"Failed to init Eucalyptus.");
4239+ __die((r=(*env)->CallBooleanMethod(env,bootstrap.instance,bootstrap.load))==0,"Failed to load Eucalyptus.");
4240+ __abort(4, set_keys_ownership( GETARG( args, home ), uid, gid ) != 0,"Setting ownership of keyfile failed." );
4241+ __abort(4, linuxset_user_group( GETARG( args, user ), uid, gid ) != 0,"Setting the user failed." );
4242+ __abort(4, (set_caps(0)!=0), "set_caps (0) failed");
4243+ __die((r=(*env)->CallBooleanMethod(env,bootstrap.instance,bootstrap.start))==0,"Failed to start Eucalyptus.");
4244+ handle._hup = signal_set( SIGHUP, handler );
4245+ handle._term = signal_set( SIGTERM, handler );
4246+ handle._int = signal_set( SIGINT, handler );
4247+ child_pid = getpid( );
4248+ __debug( "Waiting for a signal to be delivered" );
4249+ while( !stopping ) sleep( 60 );
4250+ __debug( "Shutdown or reload requested: exiting" );
4251+ __die((r=(*env)->CallBooleanMethod(env,bootstrap.instance,bootstrap.stop))==0,"Failed to stop Eucalyptus.");
4252+ if( doreload == 1 ) ret = EUCA_RET_RELOAD;
4253+ else ret = 0;
4254+ __die((r=(*env)->CallBooleanMethod(env,bootstrap.instance,bootstrap.destroy))==0,"Failed to destroy Eucalyptus.");
4255+ __die((JVM_destroy( ret ) != 1), "Failed trying to destroy JVM... bailing out seems like the right thing to do" );
4256+ return ret;
4257+}
4258+
4259+static FILE *loc_freopen( char *outfile, char *mode, FILE *stream ) {
4260+ FILE *ftest;
4261+ __abort(stream,(ftest = fopen( outfile, mode ))==NULL,"Unable to redirect to %s\n", outfile );
4262+ fclose( ftest );
4263+ return freopen( outfile, mode, stream );
4264+}
4265+
4266+static void set_output( char *outfile, char *errfile ) {
4267+ if( freopen( "/dev/null", "r", stdin ) );//hack
4268+ __debug( "redirecting stdout to %s and stderr to %s", outfile, errfile );
4269+ if( debug == 1 && strcmp( errfile, "/dev/null" ) == 0 ) return;
4270+ if( strcmp( outfile, "&2" ) == 0 && strcmp( errfile, "&1" ) == 0 ) outfile = "/dev/null";
4271+ if( strcmp( outfile, "&1" ) != 0 ) loc_freopen( outfile, "a", stdout );
4272+ if( strcmp( errfile, "&2" ) != 0 ) loc_freopen( errfile, "a", stderr );
4273+ else {
4274+ close( 2 );
4275+ if( dup( 1 ) );//hack
4276+ }
4277+ if( strcmp( outfile, "&2" ) == 0 ) {
4278+ close( 1 );
4279+ if( dup( 2 ) );//hack
4280+ }
4281+}
4282+
4283+int main( int argc, char *argv[ ] ) {
4284+ euca_opts euca_args;
4285+ euca_opts *args = &euca_args;
4286+ java_home_t *data = NULL;
4287+ int status = 0;
4288+ pid_t pid = 0;
4289+ uid_t uid = 0;
4290+ gid_t gid = 0;
4291+ if( arguments( argc, argv, args ) != 0 ) exit( 1 );
4292+ debug = args->verbose_flag || args->debug_flag;
4293+ if( args->stop_flag == 1 ) return stop_child( args );
4294+ if( checkuser( GETARG( args, user ), &uid, &gid ) == 0 ) return 1;
4295+ char* java_home_user = GETARG(args,java_home);
4296+ char* java_home_env = getenv( "JAVA_HOME" );
4297+ if( java_home_user != NULL ) {
4298+ __debug("Trying user supplied java home: %s", java_home_user);
4299+ data = get_java_home(java_home_user);
4300+ }
4301+ if( data == NULL && java_home_env != NULL ) {
4302+ __debug("Trying environment JAVA_HOME: %s", java_home_env);
4303+ data = get_java_home(java_home_env);
4304+ }
4305+ __debug("TODO: loop through common locations for JVMs here.");
4306+ if( data == NULL ) {
4307+ __error( "Cannot locate Java Home" );
4308+ return 1;
4309+ }
4310+ int x;
4311+ if( debug == 1 ) {
4312+ __debug( "+-- DUMPING JAVA HOME STRUCTURE ------------------------" );
4313+ __debug( "| Java Home: \"%s\"", PRINT_NULL( data->path ) );
4314+ __debug( "| Found JVMs: %d", data->jnum );
4315+ for( x = 0; x < data->jnum; x++ ) {
4316+ jvm_info_t *jvm = data->jvms[ x ];
4317+ __debug( "| JVM Name: \"%s\"", PRINT_NULL( jvm->name ) );
4318+ __debug( "| \"%s\"", PRINT_NULL( jvm->libjvm_path ) );
4319+ }
4320+ __debug( "+-------------------------------------------------------" );
4321+ }
4322+ if( strcmp( argv[ 0 ], "eucalyptus-cloud" ) != 0 ) {
4323+ char *oldpath = getenv( "LD_LIBRARY_PATH" ),*libf = java_library( args, data );
4324+ char *old = argv[ 0 ],buf[ 4096 ],*tmp = NULL,*p1 = NULL,*p2 = NULL;
4325+ p1 = strdup( libf );
4326+ tmp = strrchr( p1, '/' );
4327+ if( tmp != NULL ) tmp[ 0 ] = '\0';
4328+ p2 = strdup( p1 );
4329+ tmp = strrchr( p2, '/' );
4330+ if( tmp != NULL ) tmp[ 0 ] = '\0';
4331+ if( oldpath == NULL ) snprintf( buf, 4096, "%s:%s:%s/bin/linux-x64", p1, p2, GETARG(args,profiler_home) );
4332+ else snprintf( buf, 4096, "%s:%s:%s:%s/bin/linux-x64", oldpath, p1, p2, GETARG(args,profiler_home) );
4333+ tmp = strdup( buf );
4334+
4335+ setenv( "LD_LIBRARY_PATH", tmp, 1 );
4336+ __debug( "Invoking w/ LD_LIBRARY_PATH=%s", getenv( "LD_LIBRARY_PATH" ) );
4337+ argv[ 0 ] = "eucalyptus-cloud";
4338+ execve( old, argv, environ );
4339+ __error( "Cannot execute process" );
4340+ return 1;
4341+ }
4342+ __debug( "Running w/ LD_LIBRARY_PATH=%s", getenv( "LD_LIBRARY_PATH" ) );
4343+ if(args->fork_flag) {
4344+//TODO: commented out for the time being to make dan happi.
4345+// if(args->debug_flag) {
4346+// __debug("Ignoring --fork because of --debug.");
4347+// } else {
4348+ pid = fork( );
4349+ __die(( pid == -1 ),"Cannot detach from parent process" );
4350+ if( pid != 0 ) return wait_child( args, pid );
4351+ setsid( );
4352+// }
4353+ }
4354+ set_output(GETARG(args,out), GETARG(args,err));
4355+ while( ( pid = fork( ) ) != -1 ) {
4356+ if( pid == 0 ) exit( child( args, data, uid, gid ) );
4357+ child_pid = pid;
4358+ signal( SIGHUP, controller );
4359+ signal( SIGTERM, controller );
4360+ signal( SIGINT, controller );
4361+ while( waitpid( pid, &status, 0 ) != pid );
4362+ if( WIFEXITED( status ) ) {
4363+ __debug( "Eucalyptus exited with status: %d", status );
4364+ status = WEXITSTATUS( status );
4365+ if( status != 122 ) unlink( GETARG( args, pidfile ) );
4366+ if( status == 123 ) {
4367+ __debug( "Reloading service" );
4368+ continue;
4369+ }
4370+ if( status == 0 ) {
4371+ __debug( "Service shut down" );
4372+ return 0;
4373+ }
4374+ __error( "Service exit with a return value of %d", status );
4375+ return 1;
4376+ } else {
4377+ __error( "Service did not exit cleanly exit value %d", status );
4378+ return 1;
4379+ }
4380+ }
4381+ __error( "Cannot decouple controller/child processes" );
4382+ return 1;
4383+}
4384+
4385+
4386+int ld_library_path_set=0;
4387+typedef void *dso_handle;
4388+
4389+int dso_unlink(dso_handle libr) {
4390+ if (dlclose(libr)==0) return 1;
4391+ else return 0;
4392+}
4393+char *dso_error(void) {
4394+ return(dlerror());
4395+}
4396+
4397+static void hello(JNIEnv *env, jobject source) {
4398+ __error("uid=%d,euid=%d,gid=%d,egid=%d",getuid(),geteuid(),getgid(),getegid());
4399+}
4400+
4401+static void shutdown(JNIEnv *env, jobject source, jboolean reload) {
4402+ __debug("Shutdown requested (reload is %d)",reload);
4403+ if (reload==1) __debug( "Killing self with HUP signal: %d", kill( child_pid, SIGHUP ) );
4404+ else __debug( "Killing self with TERM signal: %d", kill( child_pid, SIGTERM ) );
4405+}
4406+
4407+
4408+char *java_library(euca_opts *args, java_home_t *data) {
4409+ char *libjvm_path=NULL;
4410+ int x;
4411+ if (data->jnum==0) {
4412+ __error("Cannot find any VM in Java Home %s",data->path);
4413+ exit(1);
4414+ }
4415+ if (args->jvm_name_given==0) {
4416+ libjvm_path=data->jvms[0]->libjvm_path;
4417+ } else {
4418+ for (x=0; x<data->jnum; x++) {
4419+ if (data->jvms[x]->name==NULL) continue;
4420+ if (strcmp(GETARG(args,jvm_name),data->jvms[x]->name)==0) {
4421+ libjvm_path=data->jvms[x]->libjvm_path;
4422+ break;
4423+ }
4424+ }
4425+ }
4426+ if (libjvm_path==NULL) {
4427+ __error("Failed to locate usable JVM %s %s",GETARG(args,jvm_name),libjvm_path);
4428+ exit(1);
4429+ }
4430+ __debug("Using libjvm.so in %s",libjvm_path);
4431+ return libjvm_path;
4432+}
4433+
4434+void java_load_bootstrapper(void) {
4435+ __die((bootstrap.class_name=((*env)->NewStringUTF(env,EUCA_MAIN)))==NULL,"Cannot create string for class name.");
4436+ __die((bootstrap.clazz=((*env)->FindClass(env,EUCA_MAIN)))==NULL,"Cannot find Eucalyptus bootstrapper: %s.",EUCA_MAIN);
4437+ __debug("Found Eucalyptus bootstrapper: %s",EUCA_MAIN);
4438+ __die((bootstrap.class_ref = (*env)->NewGlobalRef(env, bootstrap.clazz))==NULL,"Cannot create global ref for %s.",EUCA_MAIN);
4439+
4440+ JNINativeMethod shutdown_method = { "shutdown","(Z)V",shutdown };
4441+ __die((*env)->RegisterNatives(env,bootstrap.clazz,&shutdown_method,1)!=0,"Cannot register native method: shutdown.");
4442+ JNINativeMethod hello_method = { "hello","()V",hello };
4443+ __die((*env)->RegisterNatives(env,bootstrap.clazz,&hello_method,1)!=0,"Cannot register native method: hello.");
4444+ __debug("Native methods registered.");
4445+
4446+ __die((bootstrap.constructor=(*env)->GetStaticMethodID(env, bootstrap.clazz,euca_get_instance.method_name, euca_get_instance.method_signature))==NULL,"Failed to get reference to default constructor.");
4447+ __die((bootstrap.instance=(*env)->CallStaticObjectMethod(env,bootstrap.clazz,bootstrap.constructor))==NULL,"Failed to create instance of bootstrapper.");
4448+ __debug("Created bootstrapper instance.");//TODO: fix all these error messages..
4449+ __die((bootstrap.init=(*env)->GetMethodID(env,bootstrap.clazz,euca_init.method_name,euca_init.method_signature))==NULL,"Failed to get method reference for load.");
4450+ __debug("-> bound method: init");
4451+ __die((bootstrap.load=(*env)->GetMethodID(env,bootstrap.clazz,euca_load.method_name,euca_load.method_signature))==NULL,"Failed to get method reference for load.");
4452+ __debug("-> bound method: load");
4453+ __die((bootstrap.start=(*env)->GetMethodID(env,bootstrap.clazz,euca_start.method_name,euca_start.method_signature))==NULL,"Failed to get method reference for start.");
4454+ __debug("-> bound method: start");
4455+ __die((bootstrap.stop=(*env)->GetMethodID(env,bootstrap.clazz,euca_stop.method_name,euca_stop.method_signature))==NULL,"Failed to get method reference for stop.");
4456+ __debug("-> bound method: stop");
4457+ __die((bootstrap.destroy=(*env)->GetMethodID(env,bootstrap.clazz,euca_destroy.method_name,euca_destroy.method_signature))==NULL,"Failed to get method reference for destroy.");
4458+ __debug("-> bound method: destroy");
4459+ __die((bootstrap.check=(*env)->GetMethodID(env,bootstrap.clazz,euca_check.method_name,euca_check.method_signature))==NULL,"Failed to get method reference for check.");
4460+ __debug("-> bound method: check");
4461+ __die((bootstrap.version=(*env)->GetMethodID(env,bootstrap.clazz,euca_version.method_name,euca_version.method_signature))==NULL,"Failed to get method reference for version.");
4462+ __debug("-> bound method: version");
4463+}
4464+
4465+char* java_library_path(euca_opts *args) {
4466+#define JAVA_PATH_LEN 16384
4467+ char lib_dir[256],etc_dir[256],script_dir[256],*jar_list=(char*)malloc(JAVA_PATH_LEN*sizeof(char));
4468+ __die(( strlen(GETARG(args,home))+strlen(EUCA_LIB_DIR)>=254),"Directory path too long: %s/%s", GETARG(args,home), EUCA_LIB_DIR);
4469+ snprintf(lib_dir,255,"%s%s",GETARG(args,home),EUCA_LIB_DIR);
4470+ snprintf(etc_dir,255,"%s%s",GETARG(args,home),EUCA_ETC_DIR);
4471+ snprintf(script_dir,255,"%s%s",GETARG(args,home),EUCA_SCRIPT_DIR);
4472+ if(!CHECK_ISDIR(lib_dir) ) __die(1,"Can't find library directory %s", lib_dir );
4473+ int wb = 0;
4474+ wb += snprintf(jar_list+wb,JAVA_PATH_LEN-wb,"-Djava.class.path=%s:",etc_dir);
4475+ wb += snprintf(jar_list+wb,JAVA_PATH_LEN-wb,"%s",script_dir);
4476+ DIR* lib_dir_p = opendir(lib_dir);
4477+ struct direct *dir_ent;
4478+ while ((dir_ent = readdir(lib_dir_p))!=0) {
4479+ if (strcmp(dir_ent->d_name,".") != 0 && strcmp(dir_ent->d_name,"..") != 0 && strcmp(dir_ent->d_name,"openjdk-crypto.jar") != 0 && strstr(dir_ent->d_name,"disabled") == NULL && strstr(dir_ent->d_name,"eucalyptus-") != NULL ) {
4480+ char jar[256];
4481+ snprintf(jar,255,"%s/%s",lib_dir,dir_ent->d_name);
4482+ if( (CHECK_ISREG(jar) || CHECK_ISLNK(jar)) ) wb += snprintf(jar_list+wb,JAVA_PATH_LEN-wb,":%s",jar);
4483+ }
4484+ }
4485+ closedir(lib_dir_p);
4486+ lib_dir_p = opendir(lib_dir);
4487+ while ((dir_ent = readdir(lib_dir_p))!=0) {
4488+ if (strcmp(dir_ent->d_name,".") != 0 && strcmp(dir_ent->d_name,"..") != 0 && strcmp(dir_ent->d_name,"openjdk-crypto.jar") != 0 && strstr(dir_ent->d_name,"disabled") == NULL && strstr(dir_ent->d_name,"eucalyptus-") == NULL) {
4489+ char jar[256];
4490+ snprintf(jar,255,"%s/%s",lib_dir,dir_ent->d_name);
4491+ if( (CHECK_ISREG(jar) || CHECK_ISLNK(jar)) ) wb += snprintf(jar_list+wb,JAVA_PATH_LEN-wb,":%s",jar);
4492+ }
4493+ }
4494+ closedir(lib_dir_p);
4495+ return jar_list;
4496+}
4497+
4498+int java_init(euca_opts *args, java_home_t *data) {
4499+ jint (*hotspot_main)(JavaVM **, JNIEnv **, JavaVMInitArgs *);
4500+ char *libjvm_path=NULL;
4501+ if ((libjvm_path=java_library(args,data))==NULL) __fail("Cannot locate JVM library file");
4502+ dso_handle libjvm_handle=NULL;
4503+ __die((libjvm_handle=dlopen(libjvm_path,RTLD_GLOBAL|RTLD_NOW))==NULL,"Cannot dynamically link to %s\n%s",libjvm_path,dso_error());
4504+ __debug("JVM library %s loaded",libjvm_path);
4505+ if ((hotspot_main=dlsym(libjvm_handle,"JNI_CreateJavaVM"))==NULL) __fail("Cannot find JVM library entry point");
4506+ JavaVMInitArgs arg;
4507+ arg.ignoreUnrecognized=0;
4508+#if defined(JNI_VERSION_1_4)
4509+ arg.version=JNI_VERSION_1_4;
4510+#else
4511+ arg.version=JNI_VERSION_1_2;
4512+#endif
4513+ JavaVMOption *opt=NULL;
4514+ char* java_class_path = java_library_path(args);
4515+ __debug("Using classpath:\n%s",java_class_path);
4516+#define JVM_MAX_OPTS 128
4517+ int x = -1, i = 0;
4518+ opt=(JavaVMOption *)malloc(JVM_MAX_OPTS*sizeof(JavaVMOption));
4519+ for(i=0;i<JVM_MAX_OPTS;i++) opt[i].extraInfo=NULL;
4520+ i = -1;
4521+ while(jvm_default_opts[++i]!= NULL) JVM_ARG(opt[++x],jvm_default_opts[i],GETARG(args,home));
4522+ if(args->exhaustive_flag) {
4523+ JVM_ARG(opt[++x],"-Deuca.log.exhaustive.db=TRACE");
4524+ JVM_ARG(opt[++x],"-Deuca.log.exhaustive.user=TRACE");
4525+ JVM_ARG(opt[++x],"-Deuca.log.exhaustive.cc=TRACE");
4526+ } else {
4527+ if(args->exhaustive_db_flag) {
4528+ JVM_ARG(opt[++x],"-Deuca.log.exhaustive.db=TRACE");
4529+ } else {
4530+ JVM_ARG(opt[++x],"-Deuca.log.exhaustive.db=FATAL");
4531+ }
4532+ if(args->exhaustive_cc_flag) {
4533+ JVM_ARG(opt[++x],"-Deuca.log.exhaustive.cc=TRACE");
4534+ } else {
4535+ JVM_ARG(opt[++x],"-Deuca.log.exhaustive.cc=FATAL");
4536+ }
4537+ if(args->exhaustive_user_flag) {
4538+ JVM_ARG(opt[++x],"-Deuca.log.exhaustive.user=TRACE");
4539+ } else {
4540+ JVM_ARG(opt[++x],"-Deuca.log.exhaustive.user=FATAL");
4541+ }
4542+ }
4543+ JVM_ARG(opt[++x],"-Deuca.log.level=%1$s",GETARG(args,log_level));
4544+ JVM_ARG(opt[++x],"-Deuca.log.appender=%1$s",GETARG(args,log_appender));
4545+ JVM_ARG(opt[++x],"-Deuca.db.port=%1$d",9001);//TODO: add cli parameter
4546+ JVM_ARG(opt[++x],"-Deuca.db.host=%1$s",GETARG(args,cloud_host));
4547+ JVM_ARG(opt[++x],"-Deuca.walrus.host=%1$s",GETARG(args,walrus_host));
4548+ if(args->disable_dns_flag) {
4549+ JVM_ARG(opt[++x],"-Deuca.disable.dns=true");
4550+ }
4551+ if(args->disable_storage_flag) {
4552+ JVM_ARG(opt[++x],"-Deuca.disable.storage=true");
4553+ }
4554+ if(args->disable_cloud_flag) {
4555+ JVM_ARG(opt[++x],"-Deuca.disable.eucalyptus=true");
4556+ }
4557+ if(args->disable_walrus_flag) {
4558+ JVM_ARG(opt[++x],"-Deuca.disable.walrus=true");
4559+ }
4560+ if(args->remote_dns_flag) {
4561+ JVM_ARG(opt[++x],"-Deuca.remote.dns=true");
4562+ }
4563+ if(args->remote_storage_flag) {
4564+ JVM_ARG(opt[++x],"-Deuca.remote.storage=true");
4565+ }
4566+ if(args->remote_cloud_flag) {
4567+ JVM_ARG(opt[++x],"-Deuca.remote.cloud=true");
4568+ }
4569+ if(args->remote_walrus_flag) {
4570+ JVM_ARG(opt[++x],"-Deuca.remote.walrus=true");
4571+ }
4572+ if(args->disable_iscsi_flag) {
4573+ JVM_ARG(opt[++x],"-Deuca.disable.iscsi=true");
4574+ }
4575+ if(args->debug_flag) {
4576+ JVM_ARG(opt[++x],"-Xdebug");
4577+ JVM_ARG(opt[++x],"-Xrunjdwp:transport=dt_socket,server=y,suspend=%2$s,address=%1$d",GETARG(args,debug_port),(args->debug_suspend_flag?"y":"n"));
4578+ }
4579+ if(args->profile_flag) {
4580+ JVM_ARG(opt[++x],"-agentlib:jprofilerti=port=8849");
4581+ JVM_ARG(opt[++x],"-Xbootclasspath/a:%1$s/bin/agent.jar",GETARG(args,profiler_home));
4582+ }
4583+ for (i=0; i<args->jvm_args_given; i++) JVM_ARG(opt[++x],"-X%s",args->jvm_args_arg[i]);
4584+ for (i=0; i<args->define_given; i++) JVM_ARG(opt[++x],"-D%s",args->define_arg[i]);
4585+
4586+ opt[++x].optionString=java_class_path;
4587+ opt[x].extraInfo=NULL;
4588+ opt[++x].optionString="abort";
4589+ opt[x].extraInfo=java_fail;
4590+
4591+ arg.nOptions = x+1;
4592+ arg.options=opt;
4593+ if (debug) {
4594+ __debug("+-------------------------------------------------------");
4595+ __debug("| Version: %x", arg.version);
4596+ __debug("| Ignore Unrecognized Arguments: %d", arg.ignoreUnrecognized);
4597+ __debug("| Extra options: %d", arg.nOptions);
4598+ for (x=0; x<arg.nOptions; x++) __debug("| \"%-80.80s\" (0x%p)",opt[x].optionString, opt[x].extraInfo);
4599+ __debug("+-------------------------------------------------------");
4600+ }
4601+ __debug("Starting JVM.");
4602+ jint ret = 0;
4603+ while((ret=(*hotspot_main)(&jvm, &env, &arg)==123));
4604+ __die(ret<0,"Failed to create JVM");
4605+ java_load_bootstrapper();
4606+ return 1;
4607+}
4608+
4609+int JVM_destroy(int code) {
4610+ jclass system;
4611+ jmethodID method;
4612+ __die((system=(*env)->FindClass(env,"java/lang/System"))==NULL,"Cannot find class java/lang/System.");
4613+ __die((method=(*env)->GetStaticMethodID(env,system,"exit","(I)V"))==NULL,"Cannot find \"System.exit(int)\" entry point.");
4614+ __debug("Calling System.exit(%d)",code);
4615+ (*env)->CallStaticVoidMethod(env,system,method,(jint)code);
4616+ if ((*jvm)->DestroyJavaVM(jvm)!=0) return 0;
4617+ __debug("JVM destroyed.");
4618+ return 1;
4619+}
4620+
4621+void java_sleep(int wait) {
4622+ jclass clsThread;
4623+ jmethodID method;
4624+ __die( ((clsThread = (*env)->FindClass(env,"java/lang/Thread"))==NULL),"Cannot find java/lang/Thread class");
4625+ __die( ((method=(*env)->GetStaticMethodID(env,clsThread,"sleep","(J)V"))==NULL), "Cannot found the sleep entry point");
4626+ (*env)->CallStaticVoidMethod(env,clsThread,method,(jlong)wait*1000);
4627+}
4628
4629=== added file 'clc/modules/bootstrap/eucalyptus-bootstrap.h'
4630--- clc/modules/bootstrap/eucalyptus-bootstrap.h 1970-01-01 00:00:00 +0000
4631+++ clc/modules/bootstrap/eucalyptus-bootstrap.h 2010-02-08 18:57:20 +0000
4632@@ -0,0 +1,152 @@
4633+/*******************************************************************************
4634+ * Copyright (c) 2009 Eucalyptus Systems, Inc.
4635+ *
4636+ * This program is free software: you can redistribute it and/or modify
4637+ * it under the terms of the GNU General Public License as published by
4638+ * the Free Software Foundation, only version 3 of the License.
4639+ *
4640+ *
4641+ * This file is distributed in the hope that it will be useful, but WITHOUT
4642+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4643+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
4644+ * for more details.
4645+ *
4646+ * You should have received a copy of the GNU General Public License along
4647+ * with this program. If not, see <http://www.gnu.org/licenses/>.
4648+ *
4649+ * Please contact Eucalyptus Systems, Inc., 130 Castilian
4650+ * Dr., Goleta, CA 93101 USA or visit <http://www.eucalyptus.com/licenses/>
4651+ * if you need additional information or have any questions.
4652+ *
4653+ *
4654+ ******************************************************************************
4655+ * Author: chris grzegorczyk grze@eucalyptus.com
4656+ ******************************************************************************/
4657+#ifndef __EUCALYPTUS_BOOTSTRAP_H__
4658+#define __EUCALYPTUS_BOOTSTRAP_H__
4659+#define __USE_GNU
4660+#include <jni.h>
4661+#include <stdio.h>
4662+#include <stdlib.h>
4663+#include <stdarg.h>
4664+#include <string.h>
4665+#include <signal.h>
4666+#include <sys/types.h>
4667+#include <sys/stat.h>
4668+#include <linux/capability.h>
4669+#include "eucalyptus-opts.h"
4670+#define PRINT_NULL(x) ((x) == NULL ? "null" : (x))
4671+#define CAPSALL (1 << CAP_NET_BIND_SERVICE)+ \
4672+ (1 << CAP_SETUID)+ \
4673+ (1 << CAP_SETGID)+ \
4674+ (1 << CAP_DAC_READ_SEARCH)+ \
4675+ (1 << CAP_DAC_OVERRIDE)
4676+#define CAPSMAX (1 << CAP_NET_BIND_SERVICE)+ \
4677+ (1 << CAP_DAC_READ_SEARCH)+ \
4678+ (1 << CAP_DAC_OVERRIDE)
4679+#define CAPS (1 << CAP_NET_BIND_SERVICE)+ \
4680+ (1 << CAP_SETUID)+ \
4681+ (1 << CAP_SETGID)
4682+#define CAPSMIN (1 << CAP_NET_BIND_SERVICE)
4683+typedef struct eucalyptus_opts euca_opts;
4684+typedef struct {
4685+ char *name;
4686+ char *libjvm_path;
4687+} jvm_info_t;
4688+typedef struct {
4689+ char *path;
4690+ jvm_info_t **jvms;
4691+ int jnum;
4692+} java_home_t;
4693+#define GETARG(a,x) (a->x##_arg)
4694+static int debug = 0;
4695+#define __die(condition,format,...) do { if(condition) {fprintf(stderr,"[error:%04d] ", __LINE__);fprintf(stderr, format "\n", ##__VA_ARGS__ ); exit(1);} } while(0)
4696+#define __fail(format,...) __die(1,format,##__VA_ARGS__)
4697+#define __abort(r,condition,format,...) do { if(condition) {fprintf(stderr,"[error:%04d] ", __LINE__);fprintf(stderr, format "\n", ##__VA_ARGS__ ); return r;} } while(0)
4698+#define __debug(format,...) do { if(debug){fprintf(stdout,"[debug:%04d] ", __LINE__);fprintf(stdout, format "\n", ##__VA_ARGS__ ); } } while(0)
4699+#define __error(format,...) do { fprintf(stderr,"[error:%04d] ", __LINE__);fprintf(stderr, format "\n", ##__VA_ARGS__ ); } while(0)
4700+#define EUCA_LIB_DIR "/usr/share/eucalyptus"
4701+#define EUCA_ETC_DIR "/etc/eucalyptus/cloud.d"
4702+#define EUCA_SCRIPT_DIR "/etc/eucalyptus/cloud.d/scripts"
4703+
4704+#define EUCA_MAIN "com/eucalyptus/bootstrap/SystemBootstrapper"
4705+#define EUCA_RET_RELOAD 123
4706+
4707+typedef struct {
4708+ char* method_name;
4709+ char* method_signature;
4710+} java_method_t;
4711+static java_method_t euca_get_instance = { "getInstance", "()Lcom/eucalyptus/bootstrap/SystemBootstrapper;"};
4712+static java_method_t euca_load = { "load", "()Z" };
4713+static java_method_t euca_init = { "init", "()Z" };
4714+static java_method_t euca_start = { "start", "()Z" };
4715+static java_method_t euca_stop = { "stop", "()Z" };
4716+static java_method_t euca_check = { "check", "()Z" };
4717+static java_method_t euca_destroy = { "destroy", "()Z" };
4718+static java_method_t euca_version = { "getVersion", "()Ljava/lang/String;" };
4719+
4720+typedef struct {
4721+ jclass clazz;
4722+ jstring class_name;
4723+ jobject class_ref;
4724+ jobject instance;
4725+ jmethodID constructor;
4726+ jmethodID get_instance;
4727+ jmethodID init;
4728+ jmethodID load;
4729+ jmethodID start;
4730+ jmethodID stop;
4731+ jmethodID check;
4732+ jmethodID destroy;
4733+ jmethodID version;
4734+} bootstrapper_t;
4735+
4736+#define JVM_ARG(jvm_opt,arg,...) do { \
4737+ char temp[1024]; \
4738+ snprintf(temp,1024,arg,##__VA_ARGS__); \
4739+ jvm_opt.optionString=strdup(temp); \
4740+} while(0)
4741+static char *jvm_default_opts[] = {
4742+ "-Xbootclasspath/p:%1$s/usr/share/eucalyptus/openjdk-crypto.jar",
4743+ "-Xmx512m",
4744+ "-XX:MaxPermSize=128m",
4745+ "-XX:+UseConcMarkSweepGC",
4746+ "-Djava.net.preferIPv4Stack=true",
4747+ "-Djava.security.policy=%1$s/etc/eucalyptus/cloud.d/security.policy",
4748+ "-Djava.library.path=%1$s/usr/lib/eucalyptus",
4749+ "-Deuca.home=%1$s/",
4750+ "-Deuca.var.dir=%1$s/var/lib/eucalyptus",
4751+ "-Deuca.lib.dir=%1$s/usr/share/eucalyptus",
4752+ "-Deuca.conf.dir=%1$s/etc/eucalyptus/cloud.d",
4753+ "-Deuca.log.dir=%1$s/var/log/eucalyptus",
4754+ "-Deuca.version=1.6.2",
4755+ NULL,
4756+};
4757+static char *libjvm_paths[ ] = {
4758+ "%1$s/jre/lib/amd64/server/libjvm.so",
4759+ "%1$s/lib/amd64/server/libjvm.so",
4760+ "%1$s/jre/lib/i386/server/libjvm.so",
4761+ "%1$s/lib/i386/server/libjvm.so",
4762+ NULL,
4763+};
4764+static struct stat home;
4765+static int stopping = 0;
4766+static int doreload = 0;
4767+typedef void (*sig_handler_t) (int);
4768+typedef struct {
4769+ sig_handler_t *_int;
4770+ sig_handler_t *_hup;
4771+ sig_handler_t *_term;
4772+} signal_handlers_t;
4773+static signal_handlers_t handle;
4774+static JavaVM *jvm=NULL;
4775+static JNIEnv *env=NULL;
4776+static bootstrapper_t bootstrap;
4777+#define CHECK_ISDIR(path) (( path == NULL || ( stat( path, &home ) != 0 ) ) ? 0 : S_ISDIR(home.st_mode) )
4778+#define CHECK_ISREG(path) (( path == NULL || ( stat( path, &home ) != 0 ) ) ? 0 : S_ISREG(home.st_mode) )
4779+#define CHECK_ISLNK(path) (( path == NULL || ( stat( path, &home ) != 0 ) ) ? 0 : S_ISLNK(home.st_mode) )
4780+int main( int argc, char *argv[ ] );
4781+void main_reload( void );
4782+void main_shutdown( void );
4783+
4784+#endif /* ifndef __EUCALYPTUS_BOOTSTRAP_H__ */
4785
4786=== added file 'clc/modules/bootstrap/eucalyptus-opts.c'
4787--- clc/modules/bootstrap/eucalyptus-opts.c 1970-01-01 00:00:00 +0000
4788+++ clc/modules/bootstrap/eucalyptus-opts.c 2010-02-08 18:57:20 +0000
4789@@ -0,0 +1,1649 @@
4790+/*
4791+ File autogenerated by gengetopt version 2.22.2
4792+ generated with the following command:
4793+ gengetopt --input=arguments.ggo --file-name=eucalyptus-opts --func-name=arguments --arg-struct-name=eucalyptus_opts
4794+
4795+ The developers of gengetopt consider the fixed text that goes in all
4796+ gengetopt output files to be in the public domain:
4797+ we make no copyright claims on it.
4798+*/
4799+
4800+/* If we use autoconf. */
4801+#ifdef HAVE_CONFIG_H
4802+#include "config.h"
4803+#endif
4804+
4805+#include <stdio.h>
4806+#include <stdlib.h>
4807+#include <string.h>
4808+
4809+#ifndef FIX_UNUSED
4810+#define FIX_UNUSED(X) (void) (X) /* avoid warnings for unused params */
4811+#endif
4812+
4813+#include "getopt.h"
4814+
4815+#include "eucalyptus-opts.h"
4816+
4817+const char *eucalyptus_opts_purpose = "";
4818+
4819+const char *eucalyptus_opts_usage = "Usage: Eucalyptus [OPTIONS]...";
4820+
4821+const char *eucalyptus_opts_description = "";
4822+
4823+const char *eucalyptus_opts_full_help[] = {
4824+ " --help Print help and exit",
4825+ " --full-help Print help, including hidden options, and exit",
4826+ " -V, --version Print version and exit",
4827+ "\nEucalyptus Configuration & Environment:",
4828+ " -u, --user=username User to drop privs to after starting. \n (default=`eucalyptus')",
4829+ " -h, --home=directory Eucalyptus home directory. (default=`/')",
4830+ " -c, --cloud-host=address Hostname/Address for the Cloud Controller. \n (default=`127.0.0.1')",
4831+ " -w, --walrus-host=address or 'localhost'\n Hostname/Address for Walrus. \n (default=`localhost')",
4832+ " -D, --define=STRING Set system properties.",
4833+ " -v, --verbose Verbose bootstrapper output. Note: This only \n controls the level of output from the native \n bootstrapper. (default=off)",
4834+ " -l, --log-level=filename Control the log level for console output. \n (default=`INFO')",
4835+ " -x, --exhaustive Exhaustive connection information for internal, \n client, and database connections. \n (default=off)",
4836+ " --exhaustive-db Individually enable exhaustive connection \n information for database connections. \n (default=off)",
4837+ " --exhaustive-user Individually enable exhaustive connection \n information for client connections. \n (default=off)",
4838+ " --exhaustive-cc Individually enable exhaustive connection \n information for client connections. \n (default=off)",
4839+ " -L, --log-appender=log4j-appender-name\n Control the destination for console output. \n (default=`console-log')",
4840+ " -o, --out=filename Redirect standard out to file. (default=`&1')",
4841+ " -e, --err=filename Redirect standard error to file. \n (default=`&2')",
4842+ "\nRemote Services:",
4843+ " --remote-cloud Do not try to bootstrap cloud services locally. \n (default=off)",
4844+ " --remote-walrus Do not try to bootstrap walrus services \n locally. (default=off)",
4845+ " --remote-dns Do not try to bootstrap DNS locally. \n (default=off)",
4846+ " --remote-storage Do not try to bootstrap storage locally. \n (default=off)",
4847+ "\nDisable Services:",
4848+ " --disable-cloud Disable loading cloud services altogether. \n (default=off)",
4849+ " --disable-walrus Disable loading walrus services altogether. \n (default=off)",
4850+ " --disable-dns Disable loading DNS services altogether. \n (default=off)",
4851+ " --disable-storage Disable loading storage services altogether. \n (default=off)",
4852+ " --disable-iscsi Disable ISCSI support for dynamic block \n storage. (default=off)",
4853+ "\nEucalyptus Runtime Options:",
4854+ " -C, --check Check on Eucalyptus. (default=off)",
4855+ " -S, --stop Stop Eucalyptus. (default=off)",
4856+ " -f, --fork Fork and daemonize Eucalyptus. (default=off)",
4857+ " --pidfile=filename Location for the pidfile. \n (default=`/var/run/eucalyptus-cloud.pid')",
4858+ "\nJava VM Options:",
4859+ " -j, --java-home=directory Alternative way to specify JAVA_HOME. \n (default=`/usr/lib/jvm/java-6-openjdk')",
4860+ " -J, --jvm-name=jvm-name Which JVM type to run (see jvm.cfg). \n (default=`-server')",
4861+ " -X, --jvm-args=STRING Arguments to pass to the JVM.",
4862+ " -d, --debug Launch with debugger enabled. (default=off)",
4863+ " --debug-port=INT Set the port to use for the debugger. \n (default=`5005')",
4864+ " --debug-suspend Set the port to use for the debugger. \n (default=off)",
4865+ " -p, --profile Launch with jprofiler enabled. (default=off)",
4866+ " -P, --profiler-home=jprofiler directory\n Set the home for jprofiler. \n (default=`/opt/jprofiler5')",
4867+ 0
4868+};
4869+
4870+static void
4871+init_help_array(void)
4872+{
4873+ eucalyptus_opts_help[0] = eucalyptus_opts_full_help[0];
4874+ eucalyptus_opts_help[1] = eucalyptus_opts_full_help[1];
4875+ eucalyptus_opts_help[2] = eucalyptus_opts_full_help[2];
4876+ eucalyptus_opts_help[3] = eucalyptus_opts_full_help[3];
4877+ eucalyptus_opts_help[4] = eucalyptus_opts_full_help[4];
4878+ eucalyptus_opts_help[5] = eucalyptus_opts_full_help[5];
4879+ eucalyptus_opts_help[6] = eucalyptus_opts_full_help[6];
4880+ eucalyptus_opts_help[7] = eucalyptus_opts_full_help[7];
4881+ eucalyptus_opts_help[8] = eucalyptus_opts_full_help[8];
4882+ eucalyptus_opts_help[9] = eucalyptus_opts_full_help[9];
4883+ eucalyptus_opts_help[10] = eucalyptus_opts_full_help[10];
4884+ eucalyptus_opts_help[11] = eucalyptus_opts_full_help[11];
4885+ eucalyptus_opts_help[12] = eucalyptus_opts_full_help[12];
4886+ eucalyptus_opts_help[13] = eucalyptus_opts_full_help[13];
4887+ eucalyptus_opts_help[14] = eucalyptus_opts_full_help[14];
4888+ eucalyptus_opts_help[15] = eucalyptus_opts_full_help[15];
4889+ eucalyptus_opts_help[16] = eucalyptus_opts_full_help[16];
4890+ eucalyptus_opts_help[17] = eucalyptus_opts_full_help[17];
4891+ eucalyptus_opts_help[18] = eucalyptus_opts_full_help[18];
4892+ eucalyptus_opts_help[19] = eucalyptus_opts_full_help[19];
4893+ eucalyptus_opts_help[20] = eucalyptus_opts_full_help[20];
4894+ eucalyptus_opts_help[21] = eucalyptus_opts_full_help[21];
4895+ eucalyptus_opts_help[22] = eucalyptus_opts_full_help[22];
4896+ eucalyptus_opts_help[23] = eucalyptus_opts_full_help[23];
4897+ eucalyptus_opts_help[24] = eucalyptus_opts_full_help[24];
4898+ eucalyptus_opts_help[25] = eucalyptus_opts_full_help[25];
4899+ eucalyptus_opts_help[26] = eucalyptus_opts_full_help[26];
4900+ eucalyptus_opts_help[27] = eucalyptus_opts_full_help[27];
4901+ eucalyptus_opts_help[28] = eucalyptus_opts_full_help[28];
4902+ eucalyptus_opts_help[29] = eucalyptus_opts_full_help[29];
4903+ eucalyptus_opts_help[30] = eucalyptus_opts_full_help[30];
4904+ eucalyptus_opts_help[31] = eucalyptus_opts_full_help[31];
4905+ eucalyptus_opts_help[32] = eucalyptus_opts_full_help[32];
4906+ eucalyptus_opts_help[33] = eucalyptus_opts_full_help[33];
4907+ eucalyptus_opts_help[34] = eucalyptus_opts_full_help[34];
4908+ eucalyptus_opts_help[35] = eucalyptus_opts_full_help[35];
4909+ eucalyptus_opts_help[36] = eucalyptus_opts_full_help[36];
4910+ eucalyptus_opts_help[37] = eucalyptus_opts_full_help[37];
4911+ eucalyptus_opts_help[38] = eucalyptus_opts_full_help[38];
4912+ eucalyptus_opts_help[39] = eucalyptus_opts_full_help[39];
4913+ eucalyptus_opts_help[40] = eucalyptus_opts_full_help[40];
4914+ eucalyptus_opts_help[41] = 0;
4915+
4916+}
4917+
4918+const char *eucalyptus_opts_help[42];
4919+
4920+typedef enum {ARG_NO
4921+ , ARG_FLAG
4922+ , ARG_STRING
4923+ , ARG_INT
4924+} arguments_arg_type;
4925+
4926+static
4927+void clear_given (struct eucalyptus_opts *args_info);
4928+static
4929+void clear_args (struct eucalyptus_opts *args_info);
4930+
4931+static int
4932+arguments_internal (int argc, char * const *argv, struct eucalyptus_opts *args_info,
4933+ struct arguments_params *params, const char *additional_error);
4934+
4935+static int
4936+arguments_required2 (struct eucalyptus_opts *args_info, const char *prog_name, const char *additional_error);
4937+
4938+static char *
4939+gengetopt_strdup (const char *s);
4940+
4941+static
4942+void clear_given (struct eucalyptus_opts *args_info)
4943+{
4944+ args_info->help_given = 0 ;
4945+ args_info->full_help_given = 0 ;
4946+ args_info->version_given = 0 ;
4947+ args_info->user_given = 0 ;
4948+ args_info->home_given = 0 ;
4949+ args_info->cloud_host_given = 0 ;
4950+ args_info->walrus_host_given = 0 ;
4951+ args_info->define_given = 0 ;
4952+ args_info->verbose_given = 0 ;
4953+ args_info->log_level_given = 0 ;
4954+ args_info->exhaustive_given = 0 ;
4955+ args_info->exhaustive_db_given = 0 ;
4956+ args_info->exhaustive_user_given = 0 ;
4957+ args_info->exhaustive_cc_given = 0 ;
4958+ args_info->log_appender_given = 0 ;
4959+ args_info->out_given = 0 ;
4960+ args_info->err_given = 0 ;
4961+ args_info->remote_cloud_given = 0 ;
4962+ args_info->remote_walrus_given = 0 ;
4963+ args_info->remote_dns_given = 0 ;
4964+ args_info->remote_storage_given = 0 ;
4965+ args_info->disable_cloud_given = 0 ;
4966+ args_info->disable_walrus_given = 0 ;
4967+ args_info->disable_dns_given = 0 ;
4968+ args_info->disable_storage_given = 0 ;
4969+ args_info->disable_iscsi_given = 0 ;
4970+ args_info->check_given = 0 ;
4971+ args_info->stop_given = 0 ;
4972+ args_info->fork_given = 0 ;
4973+ args_info->pidfile_given = 0 ;
4974+ args_info->java_home_given = 0 ;
4975+ args_info->jvm_name_given = 0 ;
4976+ args_info->jvm_args_given = 0 ;
4977+ args_info->debug_given = 0 ;
4978+ args_info->debug_port_given = 0 ;
4979+ args_info->debug_suspend_given = 0 ;
4980+ args_info->profile_given = 0 ;
4981+ args_info->profiler_home_given = 0 ;
4982+}
4983+
4984+static
4985+void clear_args (struct eucalyptus_opts *args_info)
4986+{
4987+ FIX_UNUSED (args_info);
4988+ args_info->user_arg = gengetopt_strdup ("eucalyptus");
4989+ args_info->user_orig = NULL;
4990+ args_info->home_arg = gengetopt_strdup ("/");
4991+ args_info->home_orig = NULL;
4992+ args_info->cloud_host_arg = gengetopt_strdup ("127.0.0.1");
4993+ args_info->cloud_host_orig = NULL;
4994+ args_info->walrus_host_arg = gengetopt_strdup ("localhost");
4995+ args_info->walrus_host_orig = NULL;
4996+ args_info->define_arg = NULL;
4997+ args_info->define_orig = NULL;
4998+ args_info->verbose_flag = 0;
4999+ args_info->log_level_arg = gengetopt_strdup ("INFO");
5000+ args_info->log_level_orig = NULL;
The diff has been truncated for viewing.