Copy disabled (too large)
Download .txt
Showing preview only (30,704K chars total). Download the full file to get everything.
Repository: apache/jclouds
Branch: master
Commit: 554418e58ac8
Files: 7733
Total size: 27.2 MB
Directory structure:
gitextract_4xvek8ry/
├── .asf.yaml
├── .dir-locals.el
├── .gitattributes
├── .github/
│ └── workflows/
│ └── ci.yaml
├── .gitignore
├── .mailmap
├── CONTRIBUTING.md
├── README.md
├── all/
│ └── pom.xml
├── allblobstore/
│ └── pom.xml
├── allcompute/
│ └── pom.xml
├── allloadbalancer/
│ └── pom.xml
├── apis/
│ ├── atmos/
│ │ ├── README.txt
│ │ ├── bnd.bnd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── atmos/
│ │ │ ├── AtmosApiMetadata.java
│ │ │ ├── AtmosClient.java
│ │ │ ├── AtmosResponseException.java
│ │ │ ├── binders/
│ │ │ │ ├── BindMetadataToHeaders.java
│ │ │ │ └── BindUserMetadataToHeaders.java
│ │ │ ├── blobstore/
│ │ │ │ ├── AtmosBlobRequestSigner.java
│ │ │ │ ├── AtmosBlobStore.java
│ │ │ │ ├── config/
│ │ │ │ │ └── AtmosBlobStoreContextModule.java
│ │ │ │ └── functions/
│ │ │ │ ├── BlobMetadataToObject.java
│ │ │ │ ├── BlobStoreListOptionsToListOptions.java
│ │ │ │ ├── BlobToContentMetadata.java
│ │ │ │ ├── BlobToObject.java
│ │ │ │ ├── BlobToSystemMetadata.java
│ │ │ │ ├── DirectoryEntryListToResourceMetadataList.java
│ │ │ │ ├── ObjectToBlob.java
│ │ │ │ └── ObjectToBlobMetadata.java
│ │ │ ├── config/
│ │ │ │ ├── AtmosHttpApiModule.java
│ │ │ │ ├── AtmosObjectModule.java
│ │ │ │ └── AtmosParserModule.java
│ │ │ ├── domain/
│ │ │ │ ├── AtmosError.java
│ │ │ │ ├── AtmosObject.java
│ │ │ │ ├── BoundedSet.java
│ │ │ │ ├── DirectoryEntry.java
│ │ │ │ ├── FileType.java
│ │ │ │ ├── MutableContentMetadata.java
│ │ │ │ ├── SystemMetadata.java
│ │ │ │ ├── UploadInfo.java
│ │ │ │ ├── UserMetadata.java
│ │ │ │ └── internal/
│ │ │ │ ├── AtmosObjectImpl.java
│ │ │ │ ├── BoundedLinkedHashSet.java
│ │ │ │ └── DelegatingMutableContentMetadata.java
│ │ │ ├── fallbacks/
│ │ │ │ ├── EndpointIfAlreadyExists.java
│ │ │ │ └── TrueOn404FalseOnPathNotEmpty.java
│ │ │ ├── filters/
│ │ │ │ ├── ShareUrl.java
│ │ │ │ └── SignRequest.java
│ │ │ ├── functions/
│ │ │ │ ├── AtmosObjectName.java
│ │ │ │ ├── ParseDirectoryListFromContentAndHeaders.java
│ │ │ │ ├── ParseObjectFromHeadersAndHttpContent.java
│ │ │ │ ├── ParseSystemMetadataFromHeaders.java
│ │ │ │ ├── ParseUserMetadataFromHeaders.java
│ │ │ │ └── ReturnTrueIfGroupACLIsOtherRead.java
│ │ │ ├── handlers/
│ │ │ │ ├── AtmosClientErrorRetryHandler.java
│ │ │ │ ├── AtmosServerErrorRetryHandler.java
│ │ │ │ └── ParseAtmosErrorFromXmlContent.java
│ │ │ ├── options/
│ │ │ │ ├── ListOptions.java
│ │ │ │ └── PutOptions.java
│ │ │ ├── reference/
│ │ │ │ ├── AtmosErrorCode.java
│ │ │ │ └── AtmosHeaders.java
│ │ │ ├── util/
│ │ │ │ └── AtmosUtils.java
│ │ │ └── xml/
│ │ │ ├── ErrorHandler.java
│ │ │ └── ListDirectoryResponseHandler.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── atmos/
│ │ │ ├── AtmosApiMetadataTest.java
│ │ │ ├── AtmosClientLiveTest.java
│ │ │ ├── AtmosClientTest.java
│ │ │ ├── binders/
│ │ │ │ ├── BindMetadataToHeadersTest.java
│ │ │ │ └── BindUserMetadataToHeadersTest.java
│ │ │ ├── blobstore/
│ │ │ │ ├── AtmosBlobRequestSignerTest.java
│ │ │ │ ├── functions/
│ │ │ │ │ ├── ListOptionsToBlobStoreListOptions.java
│ │ │ │ │ └── ResourceMetadataListToDirectoryEntryList.java
│ │ │ │ └── integration/
│ │ │ │ ├── AtmosBlobSignerLiveTest.java
│ │ │ │ ├── AtmosContainerIntegrationLiveTest.java
│ │ │ │ ├── AtmosContainerLiveTest.java
│ │ │ │ ├── AtmosIntegrationLiveTest.java
│ │ │ │ ├── AtmosLiveTest.java
│ │ │ │ └── AtmosServiceIntegrationLiveTest.java
│ │ │ ├── fallbacks/
│ │ │ │ └── EndpointIfAlreadyExistsTest.java
│ │ │ ├── filters/
│ │ │ │ └── SignRequestTest.java
│ │ │ ├── functions/
│ │ │ │ ├── AtmosObjectNameTest.java
│ │ │ │ ├── ParseDirectoryListFromContentAndHeadersTest.java
│ │ │ │ ├── ParseObjectFromHeadersAndHttpContentTest.java
│ │ │ │ ├── ParseSystemMetadataFromHeadersTest.java
│ │ │ │ └── ParseUserMetadataFromHeadersTest.java
│ │ │ ├── handlers/
│ │ │ │ └── AtmosServerErrorRetryHandlerTest.java
│ │ │ ├── options/
│ │ │ │ └── ListOptionsTest.java
│ │ │ └── xml/
│ │ │ ├── ErrorHandlerTest.java
│ │ │ └── ListDirectoryResponseHandlerTest.java
│ │ └── resources/
│ │ ├── error.xml
│ │ ├── hashstring.txt
│ │ ├── list_basic.xml
│ │ ├── list_meta.xml
│ │ └── log4j.xml
│ ├── byon/
│ │ ├── README.txt
│ │ ├── bnd.bnd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── byon/
│ │ │ ├── BYONApiMetadata.java
│ │ │ ├── Node.java
│ │ │ ├── config/
│ │ │ │ ├── BYONComputeServiceContextModule.java
│ │ │ │ ├── CacheNodeStoreModule.java
│ │ │ │ ├── ConfiguresNodeStore.java
│ │ │ │ └── YamlNodeStoreModule.java
│ │ │ ├── domain/
│ │ │ │ └── YamlNode.java
│ │ │ ├── functions/
│ │ │ │ ├── NodeToNodeMetadata.java
│ │ │ │ └── NodesFromYamlStream.java
│ │ │ ├── internal/
│ │ │ │ └── BYONComputeServiceAdapter.java
│ │ │ └── suppliers/
│ │ │ ├── NodesParsedFromSupplier.java
│ │ │ └── SupplyFromProviderURIOrNodesProperty.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── byon/
│ │ │ ├── BYONApiMetadataTest.java
│ │ │ ├── BYONComputeServiceLiveTest.java
│ │ │ ├── BYONComputeServiceTest.java
│ │ │ ├── config/
│ │ │ │ ├── CacheNodeStoreModuleTest.java
│ │ │ │ └── YamlNodeStoreModuleTest.java
│ │ │ ├── functions/
│ │ │ │ ├── NodeToNodeMetadataTest.java
│ │ │ │ └── NodesFromYamlTest.java
│ │ │ └── suppliers/
│ │ │ ├── NodesParsedFromSupplierTest.java
│ │ │ └── SupplyFromProviderURIOrNodesPropertyTest.java
│ │ └── resources/
│ │ ├── log4j.xml
│ │ ├── test1.yaml
│ │ ├── test_location.yaml
│ │ ├── test_with_url.yaml
│ │ └── testkey.txt
│ ├── chef/
│ │ ├── bnd.bnd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ ├── chef/
│ │ │ │ ├── ChefApi.java
│ │ │ │ ├── ChefApiMetadata.java
│ │ │ │ ├── ChefService.java
│ │ │ │ ├── binders/
│ │ │ │ │ ├── BindChecksumsToJsonPayload.java
│ │ │ │ │ ├── BindCreateClientOptionsToJsonPayload.java
│ │ │ │ │ ├── BindGenerateKeyForClientToJsonPayload.java
│ │ │ │ │ ├── BindGroupToUpdateRequestJsonPayload.java
│ │ │ │ │ ├── DatabagItemId.java
│ │ │ │ │ ├── EnvironmentName.java
│ │ │ │ │ ├── GroupName.java
│ │ │ │ │ ├── NodeName.java
│ │ │ │ │ └── RoleName.java
│ │ │ │ ├── config/
│ │ │ │ │ ├── ChefBootstrapModule.java
│ │ │ │ │ ├── ChefHttpApiModule.java
│ │ │ │ │ ├── ChefParserModule.java
│ │ │ │ │ ├── ChefProperties.java
│ │ │ │ │ ├── InstallChef.java
│ │ │ │ │ └── Validator.java
│ │ │ │ ├── domain/
│ │ │ │ │ ├── Attribute.java
│ │ │ │ │ ├── BootstrapConfig.java
│ │ │ │ │ ├── ChecksumStatus.java
│ │ │ │ │ ├── Client.java
│ │ │ │ │ ├── CookbookDefinition.java
│ │ │ │ │ ├── CookbookVersion.java
│ │ │ │ │ ├── DatabagItem.java
│ │ │ │ │ ├── Environment.java
│ │ │ │ │ ├── Group.java
│ │ │ │ │ ├── Grouping.java
│ │ │ │ │ ├── Metadata.java
│ │ │ │ │ ├── Node.java
│ │ │ │ │ ├── Resource.java
│ │ │ │ │ ├── Role.java
│ │ │ │ │ ├── Sandbox.java
│ │ │ │ │ ├── SearchResult.java
│ │ │ │ │ ├── UploadSandbox.java
│ │ │ │ │ └── User.java
│ │ │ │ ├── features/
│ │ │ │ │ └── OrganizationApi.java
│ │ │ │ ├── filters/
│ │ │ │ │ └── SignedHeaderAuth.java
│ │ │ │ ├── functions/
│ │ │ │ │ ├── BootstrapConfigForGroup.java
│ │ │ │ │ ├── ClientForGroup.java
│ │ │ │ │ ├── GroupToBootScript.java
│ │ │ │ │ ├── ParseCookbookDefinitionFromJson.java
│ │ │ │ │ ├── ParseCookbookDefinitionListFromJson.java
│ │ │ │ │ ├── ParseCookbookNamesFromJson.java
│ │ │ │ │ ├── ParseCookbookVersionsFromJson.java
│ │ │ │ │ ├── ParseErrorFromJsonOrReturnBody.java
│ │ │ │ │ ├── ParseKeySetFromJson.java
│ │ │ │ │ ├── ParseSearchClientsFromJson.java
│ │ │ │ │ ├── ParseSearchDatabagFromJson.java
│ │ │ │ │ ├── ParseSearchEnvironmentsFromJson.java
│ │ │ │ │ ├── ParseSearchNodesFromJson.java
│ │ │ │ │ ├── ParseSearchResultFromJson.java
│ │ │ │ │ ├── ParseSearchRolesFromJson.java
│ │ │ │ │ └── UriForResource.java
│ │ │ │ ├── handlers/
│ │ │ │ │ ├── ChefApiErrorRetryHandler.java
│ │ │ │ │ └── ChefErrorHandler.java
│ │ │ │ ├── internal/
│ │ │ │ │ └── BaseChefService.java
│ │ │ │ ├── options/
│ │ │ │ │ ├── CreateClientOptions.java
│ │ │ │ │ └── SearchOptions.java
│ │ │ │ ├── predicates/
│ │ │ │ │ └── CookbookVersionPredicates.java
│ │ │ │ ├── strategy/
│ │ │ │ │ ├── CleanupStaleNodesAndClients.java
│ │ │ │ │ ├── CreateNodeAndPopulateAutomaticAttributes.java
│ │ │ │ │ ├── DeleteAllClientsInList.java
│ │ │ │ │ ├── DeleteAllNodesInList.java
│ │ │ │ │ ├── ListClients.java
│ │ │ │ │ ├── ListCookbookVersions.java
│ │ │ │ │ ├── ListCookbookVersionsInEnvironment.java
│ │ │ │ │ ├── ListEnvironments.java
│ │ │ │ │ ├── ListNodes.java
│ │ │ │ │ ├── ListNodesInEnvironment.java
│ │ │ │ │ ├── UpdateAutomaticAttributesOnNode.java
│ │ │ │ │ └── internal/
│ │ │ │ │ ├── BaseListCookbookVersionsImpl.java
│ │ │ │ │ ├── BaseListNodesImpl.java
│ │ │ │ │ ├── CleanupStaleNodesAndClientsImpl.java
│ │ │ │ │ ├── CreateNodeAndPopulateAutomaticAttributesImpl.java
│ │ │ │ │ ├── DeleteAllClientsInListImpl.java
│ │ │ │ │ ├── DeleteAllNodesInListImpl.java
│ │ │ │ │ ├── ListClientsImpl.java
│ │ │ │ │ ├── ListCookbookVersionsImpl.java
│ │ │ │ │ ├── ListCookbookVersionsInEnvironmentImpl.java
│ │ │ │ │ ├── ListEnvironmentsImpl.java
│ │ │ │ │ ├── ListNodesImpl.java
│ │ │ │ │ ├── ListNodesInEnvironmentImpl.java
│ │ │ │ │ └── UpdateAutomaticAttributesOnNodeImpl.java
│ │ │ │ ├── suppliers/
│ │ │ │ │ └── ChefVersionSupplier.java
│ │ │ │ └── util/
│ │ │ │ ├── ChefUtils.java
│ │ │ │ ├── CollectionUtils.java
│ │ │ │ └── RunListBuilder.java
│ │ │ └── ohai/
│ │ │ ├── Automatic.java
│ │ │ ├── AutomaticSupplier.java
│ │ │ ├── config/
│ │ │ │ ├── ConfiguresOhai.java
│ │ │ │ ├── JMXOhaiModule.java
│ │ │ │ └── OhaiModule.java
│ │ │ ├── functions/
│ │ │ │ ├── ByteArrayToMacAddress.java
│ │ │ │ ├── MapSetToMultimap.java
│ │ │ │ └── NestSlashKeys.java
│ │ │ └── suppliers/
│ │ │ └── UptimeSecondsSupplier.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ ├── chef/
│ │ │ │ ├── BaseChefApiExpectTest.java
│ │ │ │ ├── ChefApiDelegationTest.java
│ │ │ │ ├── ChefApiExpectTest.java
│ │ │ │ ├── ChefApiLiveTest.java
│ │ │ │ ├── ChefApiMetadataTest.java
│ │ │ │ ├── ChefApiTest.java
│ │ │ │ ├── binders/
│ │ │ │ │ ├── BindGroupToUpdateRequestJsonPayloadTest.java
│ │ │ │ │ ├── BindHexEncodedMD5sToJsonPayloadTest.java
│ │ │ │ │ └── GroupNameTest.java
│ │ │ │ ├── config/
│ │ │ │ │ └── ChefParserModuleTest.java
│ │ │ │ ├── domain/
│ │ │ │ │ └── RoleTest.java
│ │ │ │ ├── features/
│ │ │ │ │ ├── OrganizationApiExpectTest.java
│ │ │ │ │ └── OrganizationApiLiveTest.java
│ │ │ │ ├── filters/
│ │ │ │ │ └── SignedHeaderAuthTest.java
│ │ │ │ ├── functions/
│ │ │ │ │ ├── BootstrapConfigForGroupTest.java
│ │ │ │ │ ├── ClientForGroupTest.java
│ │ │ │ │ ├── GroupToBootScriptTest.java
│ │ │ │ │ ├── ParseClientFromJsonTest.java
│ │ │ │ │ ├── ParseCookbookDefinitionFromJsonTest.java
│ │ │ │ │ ├── ParseCookbookDefinitionListFromJsonTest.java
│ │ │ │ │ ├── ParseCookbookNamesFromJsonTest.java
│ │ │ │ │ ├── ParseCookbookVersionFromJsonTest.java
│ │ │ │ │ ├── ParseCookbookVersionsFromJsonTest.java
│ │ │ │ │ ├── ParseDataBagItemFromJsonTest.java
│ │ │ │ │ ├── ParseErrorFromJsonOrReturnBodyTest.java
│ │ │ │ │ ├── ParseKeySetFromJsonTest.java
│ │ │ │ │ ├── ParseNodeFromJsonTest.java
│ │ │ │ │ ├── ParseSandboxFromJsonTest.java
│ │ │ │ │ ├── ParseSearchDataBagItemFromJsonTest.java
│ │ │ │ │ ├── ParseUploadSandboxFromJsonTest.java
│ │ │ │ │ └── UriForResourceTest.java
│ │ │ │ ├── handlers/
│ │ │ │ │ └── ChefApiErrorRetryHandlerTest.java
│ │ │ │ ├── internal/
│ │ │ │ │ ├── BaseChefLiveTest.java
│ │ │ │ │ └── BaseChefServiceTest.java
│ │ │ │ ├── strategy/
│ │ │ │ │ └── internal/
│ │ │ │ │ ├── CleanupStaleNodesAndClientsImplLiveTest.java
│ │ │ │ │ ├── CreateNodeAndPopulateAutomaticAttributesImplLiveTest.java
│ │ │ │ │ ├── CreateNodeAndPopulateAutomaticAttributesImplTest.java
│ │ │ │ │ ├── DeleteAllApisAndNodesInListImplLiveTest.java
│ │ │ │ │ ├── ListCookbookVersionsInEnvironmentImplLiveTest.java
│ │ │ │ │ ├── ListNodesImplLiveTest.java
│ │ │ │ │ ├── ListNodesInEnvironmentImplLiveTest.java
│ │ │ │ │ ├── UpdateAutomaticAttributesOnNodeImplLiveTest.java
│ │ │ │ │ └── UpdateAutomaticAttributesOnNodeImplTest.java
│ │ │ │ ├── suppliers/
│ │ │ │ │ └── ChefVersionSupplierTest.java
│ │ │ │ └── util/
│ │ │ │ ├── ChefUtilsTest.java
│ │ │ │ └── RunListBuilderTest.java
│ │ │ └── ohai/
│ │ │ ├── config/
│ │ │ │ ├── JMXTest.java
│ │ │ │ └── OhaiModuleTest.java
│ │ │ └── functions/
│ │ │ ├── ByteArrayToMacAddressTest.java
│ │ │ └── NestSlashKeysTest.java
│ │ └── resources/
│ │ ├── apache-chef-demo-cookbook.json
│ │ ├── bootstrap-env-noattrs.sh
│ │ ├── bootstrap-env.sh
│ │ ├── bootstrap-node-env.sh
│ │ ├── bootstrap-ssl.sh
│ │ ├── bootstrap.sh
│ │ ├── brew-cookbook.json
│ │ ├── chef.crt
│ │ ├── client-no-pub-key.json
│ │ ├── client.json
│ │ ├── clients_list.json
│ │ ├── data_list.json
│ │ ├── env_cookbooks.json
│ │ ├── environment_recipes.json
│ │ ├── group-update.json
│ │ ├── group.json
│ │ ├── groups.json
│ │ ├── logback.xml
│ │ ├── mysql-cookbook.json
│ │ ├── node.json
│ │ ├── nodes_list.json
│ │ ├── privkey.txt
│ │ ├── pubkey.txt
│ │ ├── roles_list.json
│ │ ├── sandbox.json
│ │ ├── search_role.json
│ │ ├── search_role_empty.json
│ │ ├── tomcat-cookbook.json
│ │ ├── upload-site.json
│ │ └── user.json
│ ├── cloudstack/
│ │ ├── bnd.bnd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── cloudstack/
│ │ │ ├── AsyncJobException.java
│ │ │ ├── CloudStackApi.java
│ │ │ ├── CloudStackApiMetadata.java
│ │ │ ├── CloudStackContext.java
│ │ │ ├── CloudStackDomainApi.java
│ │ │ ├── CloudStackGlobalApi.java
│ │ │ ├── binders/
│ │ │ │ ├── BindAccountSecurityGroupPairsToIndexedQueryParams.java
│ │ │ │ ├── BindCIDRsToCommaDelimitedQueryParam.java
│ │ │ │ ├── BindIdListToCommaDelimitedQueryParam.java
│ │ │ │ ├── BindSnapshotPolicyScheduleToQueryParam.java
│ │ │ │ ├── BindTemplateMetadataToQueryParams.java
│ │ │ │ └── ResourceLimitToQueryParams.java
│ │ │ ├── compute/
│ │ │ │ ├── CloudStackComputeService.java
│ │ │ │ ├── config/
│ │ │ │ │ └── CloudStackComputeServiceContextModule.java
│ │ │ │ ├── extensions/
│ │ │ │ │ ├── CloudStackImageExtension.java
│ │ │ │ │ └── CloudStackSecurityGroupExtension.java
│ │ │ │ ├── functions/
│ │ │ │ │ ├── CloudStackSecurityGroupToSecurityGroup.java
│ │ │ │ │ ├── IngressRuleToIpPermission.java
│ │ │ │ │ ├── OrphanedGroupsByZoneId.java
│ │ │ │ │ ├── ServiceOfferingToHardware.java
│ │ │ │ │ ├── TemplateToImage.java
│ │ │ │ │ ├── TemplateToOperatingSystem.java
│ │ │ │ │ ├── VirtualMachineToNodeMetadata.java
│ │ │ │ │ └── ZoneToLocation.java
│ │ │ │ ├── loaders/
│ │ │ │ │ ├── CreateUniqueKeyPair.java
│ │ │ │ │ └── FindSecurityGroupOrCreate.java
│ │ │ │ ├── options/
│ │ │ │ │ └── CloudStackTemplateOptions.java
│ │ │ │ ├── predicates/
│ │ │ │ │ └── AllNodesInGroupTerminated.java
│ │ │ │ └── strategy/
│ │ │ │ ├── AdvancedNetworkOptionsConverter.java
│ │ │ │ ├── BasicNetworkOptionsConverter.java
│ │ │ │ ├── CloudStackComputeServiceAdapter.java
│ │ │ │ └── OptionsConverter.java
│ │ │ ├── config/
│ │ │ │ ├── CloudStackHttpApiModule.java
│ │ │ │ ├── CloudStackParserModule.java
│ │ │ │ ├── CloudStackProperties.java
│ │ │ │ └── CredentialType.java
│ │ │ ├── domain/
│ │ │ │ ├── Account.java
│ │ │ │ ├── Alert.java
│ │ │ │ ├── AllocationState.java
│ │ │ │ ├── ApiKeyPair.java
│ │ │ │ ├── AsyncCreateResponse.java
│ │ │ │ ├── AsyncJob.java
│ │ │ │ ├── AsyncJobError.java
│ │ │ │ ├── Capabilities.java
│ │ │ │ ├── Capacity.java
│ │ │ │ ├── Cluster.java
│ │ │ │ ├── ConfigurationEntry.java
│ │ │ │ ├── DiskOffering.java
│ │ │ │ ├── Domain.java
│ │ │ │ ├── EncryptedPasswordAndPrivateKey.java
│ │ │ │ ├── Event.java
│ │ │ │ ├── ExtractMode.java
│ │ │ │ ├── FirewallRule.java
│ │ │ │ ├── GuestIPType.java
│ │ │ │ ├── Host.java
│ │ │ │ ├── IPForwardingRule.java
│ │ │ │ ├── ISO.java
│ │ │ │ ├── ISOExtraction.java
│ │ │ │ ├── ISOPermissions.java
│ │ │ │ ├── IngressRule.java
│ │ │ │ ├── JobResult.java
│ │ │ │ ├── LoadBalancerRule.java
│ │ │ │ ├── LoginResponse.java
│ │ │ │ ├── NIC.java
│ │ │ │ ├── Network.java
│ │ │ │ ├── NetworkOffering.java
│ │ │ │ ├── NetworkOfferingAvailabilityType.java
│ │ │ │ ├── NetworkService.java
│ │ │ │ ├── NetworkType.java
│ │ │ │ ├── OSType.java
│ │ │ │ ├── PermissionOperation.java
│ │ │ │ ├── Pod.java
│ │ │ │ ├── PortForwardingRule.java
│ │ │ │ ├── Project.java
│ │ │ │ ├── PublicIPAddress.java
│ │ │ │ ├── ResourceLimit.java
│ │ │ │ ├── SecurityGroup.java
│ │ │ │ ├── ServiceOffering.java
│ │ │ │ ├── Snapshot.java
│ │ │ │ ├── SnapshotPolicy.java
│ │ │ │ ├── SnapshotPolicySchedule.java
│ │ │ │ ├── SshKeyPair.java
│ │ │ │ ├── StoragePool.java
│ │ │ │ ├── StorageType.java
│ │ │ │ ├── SystemVmType.java
│ │ │ │ ├── Tag.java
│ │ │ │ ├── Template.java
│ │ │ │ ├── TemplateExtraction.java
│ │ │ │ ├── TemplateFilter.java
│ │ │ │ ├── TemplateMetadata.java
│ │ │ │ ├── TemplatePermission.java
│ │ │ │ ├── TrafficType.java
│ │ │ │ ├── UsageRecord.java
│ │ │ │ ├── User.java
│ │ │ │ ├── VMGroup.java
│ │ │ │ ├── VirtualMachine.java
│ │ │ │ ├── VlanIPRange.java
│ │ │ │ ├── Volume.java
│ │ │ │ ├── Zone.java
│ │ │ │ ├── ZoneAndName.java
│ │ │ │ └── ZoneSecurityGroupNamePortsCidrs.java
│ │ │ ├── features/
│ │ │ │ ├── AccountApi.java
│ │ │ │ ├── AddressApi.java
│ │ │ │ ├── AsyncJobApi.java
│ │ │ │ ├── ConfigurationApi.java
│ │ │ │ ├── DomainAccountApi.java
│ │ │ │ ├── DomainDomainApi.java
│ │ │ │ ├── DomainLimitApi.java
│ │ │ │ ├── DomainUserApi.java
│ │ │ │ ├── EventApi.java
│ │ │ │ ├── FirewallApi.java
│ │ │ │ ├── GlobalAccountApi.java
│ │ │ │ ├── GlobalAlertApi.java
│ │ │ │ ├── GlobalCapacityApi.java
│ │ │ │ ├── GlobalConfigurationApi.java
│ │ │ │ ├── GlobalDomainApi.java
│ │ │ │ ├── GlobalHostApi.java
│ │ │ │ ├── GlobalOfferingApi.java
│ │ │ │ ├── GlobalPodApi.java
│ │ │ │ ├── GlobalStoragePoolApi.java
│ │ │ │ ├── GlobalUsageApi.java
│ │ │ │ ├── GlobalUserApi.java
│ │ │ │ ├── GlobalVlanApi.java
│ │ │ │ ├── GlobalZoneApi.java
│ │ │ │ ├── GuestOSApi.java
│ │ │ │ ├── HypervisorApi.java
│ │ │ │ ├── ISOApi.java
│ │ │ │ ├── LimitApi.java
│ │ │ │ ├── LoadBalancerApi.java
│ │ │ │ ├── NATApi.java
│ │ │ │ ├── NetworkApi.java
│ │ │ │ ├── OfferingApi.java
│ │ │ │ ├── ProjectApi.java
│ │ │ │ ├── SSHKeyPairApi.java
│ │ │ │ ├── SecurityGroupApi.java
│ │ │ │ ├── SessionApi.java
│ │ │ │ ├── SnapshotApi.java
│ │ │ │ ├── TagApi.java
│ │ │ │ ├── TemplateApi.java
│ │ │ │ ├── VMGroupApi.java
│ │ │ │ ├── VirtualMachineApi.java
│ │ │ │ ├── VolumeApi.java
│ │ │ │ └── ZoneApi.java
│ │ │ ├── filters/
│ │ │ │ ├── AddSessionKeyAndJSessionIdToRequest.java
│ │ │ │ ├── AuthenticationFilter.java
│ │ │ │ └── QuerySigner.java
│ │ │ ├── functions/
│ │ │ │ ├── CloudStackFallbacks.java
│ │ │ │ ├── CreateFirewallRulesForIP.java
│ │ │ │ ├── CreatePortForwardingRulesForIP.java
│ │ │ │ ├── CreateSecurityGroupIfNeeded.java
│ │ │ │ ├── DateToYyyyMmDd.java
│ │ │ │ ├── GetFirewallRulesByVirtualMachine.java
│ │ │ │ ├── GetIPForwardingRulesByVirtualMachine.java
│ │ │ │ ├── ParseAsyncJobFromHttpResponse.java
│ │ │ │ ├── ParseAsyncJobsFromHttpResponse.java
│ │ │ │ ├── ParseEventTypesFromHttpResponse.java
│ │ │ │ ├── ParseIdToNameEntryFromHttpResponse.java
│ │ │ │ ├── ParseIdToNameFromHttpResponse.java
│ │ │ │ ├── ParseLoginResponseFromHttpResponse.java
│ │ │ │ ├── ParseNamesFromHttpResponse.java
│ │ │ │ ├── ParseTypedAsyncJob.java
│ │ │ │ ├── ReuseOrAssociateNewPublicIPAddress.java
│ │ │ │ ├── StaticNATVirtualMachineInNetwork.java
│ │ │ │ ├── WindowsLoginCredentialsFromEncryptedData.java
│ │ │ │ └── ZoneIdToZone.java
│ │ │ ├── handlers/
│ │ │ │ ├── CloudStackErrorHandler.java
│ │ │ │ └── InvalidateSessionAndRetryOn401AndLogoutOnClose.java
│ │ │ ├── internal/
│ │ │ │ └── CloudStackContextImpl.java
│ │ │ ├── loaders/
│ │ │ │ └── LoginWithPasswordCredentials.java
│ │ │ ├── options/
│ │ │ │ ├── AccountInDomainOptions.java
│ │ │ │ ├── AddClusterOptions.java
│ │ │ │ ├── AddHostOptions.java
│ │ │ │ ├── AddSecondaryStorageOptions.java
│ │ │ │ ├── AssignVirtualMachineOptions.java
│ │ │ │ ├── AssociateIPAddressOptions.java
│ │ │ │ ├── CreateAccountOptions.java
│ │ │ │ ├── CreateDiskOfferingOptions.java
│ │ │ │ ├── CreateDomainOptions.java
│ │ │ │ ├── CreateFirewallRuleOptions.java
│ │ │ │ ├── CreateIPForwardingRuleOptions.java
│ │ │ │ ├── CreateLoadBalancerRuleOptions.java
│ │ │ │ ├── CreateNetworkOptions.java
│ │ │ │ ├── CreatePodOptions.java
│ │ │ │ ├── CreateServiceOfferingOptions.java
│ │ │ │ ├── CreateSnapshotOptions.java
│ │ │ │ ├── CreateTagsOptions.java
│ │ │ │ ├── CreateTemplateOptions.java
│ │ │ │ ├── CreateUserOptions.java
│ │ │ │ ├── CreateVMGroupOptions.java
│ │ │ │ ├── CreateVlanIPRangeOptions.java
│ │ │ │ ├── CreateZoneOptions.java
│ │ │ │ ├── DeleteHostOptions.java
│ │ │ │ ├── DeleteISOOptions.java
│ │ │ │ ├── DeleteTagsOptions.java
│ │ │ │ ├── DeleteTemplateOptions.java
│ │ │ │ ├── DeployVirtualMachineOptions.java
│ │ │ │ ├── ExtractISOOptions.java
│ │ │ │ ├── ExtractTemplateOptions.java
│ │ │ │ ├── GenerateUsageRecordsOptions.java
│ │ │ │ ├── ListAccountsOptions.java
│ │ │ │ ├── ListAlertsOptions.java
│ │ │ │ ├── ListAsyncJobsOptions.java
│ │ │ │ ├── ListCapacityOptions.java
│ │ │ │ ├── ListClustersOptions.java
│ │ │ │ ├── ListConfigurationEntriesOptions.java
│ │ │ │ ├── ListDiskOfferingsOptions.java
│ │ │ │ ├── ListDomainChildrenOptions.java
│ │ │ │ ├── ListDomainsOptions.java
│ │ │ │ ├── ListEgressFirewallRulesOptions.java
│ │ │ │ ├── ListEventsOptions.java
│ │ │ │ ├── ListFirewallRulesOptions.java
│ │ │ │ ├── ListHostsOptions.java
│ │ │ │ ├── ListIPForwardingRulesOptions.java
│ │ │ │ ├── ListISOsOptions.java
│ │ │ │ ├── ListLoadBalancerRulesOptions.java
│ │ │ │ ├── ListNetworkOfferingsOptions.java
│ │ │ │ ├── ListNetworksOptions.java
│ │ │ │ ├── ListOSTypesOptions.java
│ │ │ │ ├── ListPodsOptions.java
│ │ │ │ ├── ListPortForwardingRulesOptions.java
│ │ │ │ ├── ListProjectsOptions.java
│ │ │ │ ├── ListPublicIPAddressesOptions.java
│ │ │ │ ├── ListResourceLimitsOptions.java
│ │ │ │ ├── ListSSHKeyPairsOptions.java
│ │ │ │ ├── ListSecurityGroupsOptions.java
│ │ │ │ ├── ListServiceOfferingsOptions.java
│ │ │ │ ├── ListSnapshotPoliciesOptions.java
│ │ │ │ ├── ListSnapshotsOptions.java
│ │ │ │ ├── ListStoragePoolsOptions.java
│ │ │ │ ├── ListTagsOptions.java
│ │ │ │ ├── ListTemplatesOptions.java
│ │ │ │ ├── ListUsageRecordsOptions.java
│ │ │ │ ├── ListUsersOptions.java
│ │ │ │ ├── ListVMGroupsOptions.java
│ │ │ │ ├── ListVirtualMachinesOptions.java
│ │ │ │ ├── ListVlanIPRangesOptions.java
│ │ │ │ ├── ListVolumesOptions.java
│ │ │ │ ├── ListZonesOptions.java
│ │ │ │ ├── RegisterISOOptions.java
│ │ │ │ ├── RegisterTemplateOptions.java
│ │ │ │ ├── StopVirtualMachineOptions.java
│ │ │ │ ├── UpdateAccountOptions.java
│ │ │ │ ├── UpdateClusterOptions.java
│ │ │ │ ├── UpdateDiskOfferingOptions.java
│ │ │ │ ├── UpdateDomainOptions.java
│ │ │ │ ├── UpdateHostOptions.java
│ │ │ │ ├── UpdateISOOptions.java
│ │ │ │ ├── UpdateISOPermissionsOptions.java
│ │ │ │ ├── UpdateLoadBalancerRuleOptions.java
│ │ │ │ ├── UpdateNetworkOfferingOptions.java
│ │ │ │ ├── UpdatePodOptions.java
│ │ │ │ ├── UpdateServiceOfferingOptions.java
│ │ │ │ ├── UpdateTemplateOptions.java
│ │ │ │ ├── UpdateTemplatePermissionsOptions.java
│ │ │ │ ├── UpdateUserOptions.java
│ │ │ │ ├── UpdateVMGroupOptions.java
│ │ │ │ ├── UpdateVirtualMachineOptions.java
│ │ │ │ └── UpdateZoneOptions.java
│ │ │ ├── predicates/
│ │ │ │ ├── CorrectHypervisorForZone.java
│ │ │ │ ├── JobComplete.java
│ │ │ │ ├── LoadBalancerRuleActive.java
│ │ │ │ ├── NetworkOfferingPredicates.java
│ │ │ │ ├── NetworkPredicates.java
│ │ │ │ ├── OSCategoryIn.java
│ │ │ │ ├── PublicIPAddressPredicates.java
│ │ │ │ ├── SecurityGroupPredicates.java
│ │ │ │ ├── SshKeyPairPredicates.java
│ │ │ │ ├── TemplatePredicates.java
│ │ │ │ ├── UserPredicates.java
│ │ │ │ ├── VirtualMachineDestroyed.java
│ │ │ │ ├── VirtualMachineExpunged.java
│ │ │ │ ├── VirtualMachineRunning.java
│ │ │ │ └── ZonePredicates.java
│ │ │ ├── strategy/
│ │ │ │ └── BlockUntilJobCompletesAndReturnResult.java
│ │ │ ├── suppliers/
│ │ │ │ ├── GetCurrentUser.java
│ │ │ │ ├── NetworksForCurrentUser.java
│ │ │ │ ├── ProjectsForCurrentUser.java
│ │ │ │ └── ZoneIdToZoneSupplier.java
│ │ │ └── util/
│ │ │ ├── ApiKeyPairs.java
│ │ │ └── SnapshotPolicySchedules.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── cloudstack/
│ │ │ ├── CloudStackApiMetadataTest.java
│ │ │ ├── CloudStackContextBuilderTest.java
│ │ │ ├── PasswordAuthenticationExpectTest.java
│ │ │ ├── compute/
│ │ │ │ ├── CloudStackComputeServiceAdapterExpectTest.java
│ │ │ │ ├── CloudStackComputeServiceAdapterLiveTest.java
│ │ │ │ ├── CloudStackComputeServiceLiveTest.java
│ │ │ │ ├── CloudStackExperimentLiveTest.java
│ │ │ │ ├── extensions/
│ │ │ │ │ ├── CloudStackImageExtensionExpectTest.java
│ │ │ │ │ ├── CloudStackImageExtensionLiveTest.java
│ │ │ │ │ ├── CloudStackSecurityGroupExtensionExpectTest.java
│ │ │ │ │ └── CloudStackSecurityGroupExtensionLiveTest.java
│ │ │ │ ├── functions/
│ │ │ │ │ ├── CloudStackSecurityGroupToSecurityGroupTest.java
│ │ │ │ │ ├── IngressRuleToIpPermissionTest.java
│ │ │ │ │ ├── ServiceOfferingToHardwareTest.java
│ │ │ │ │ ├── TemplateToImageTest.java
│ │ │ │ │ ├── TemplateToOperatingSystemTest.java
│ │ │ │ │ ├── VirtualMachineToNodeMetadataTest.java
│ │ │ │ │ └── ZoneToLocationTest.java
│ │ │ │ ├── loaders/
│ │ │ │ │ ├── CreateUniqueKeyPairTest.java
│ │ │ │ │ └── FindSecurityGroupOrCreateTest.java
│ │ │ │ ├── options/
│ │ │ │ │ └── CloudStackTemplateOptionsTest.java
│ │ │ │ └── strategy/
│ │ │ │ └── OptionsConverterTest.java
│ │ │ ├── domain/
│ │ │ │ └── VirtualMachineTest.java
│ │ │ ├── features/
│ │ │ │ ├── AccountApiExpectTest.java
│ │ │ │ ├── AccountApiLiveTest.java
│ │ │ │ ├── AccountApiTest.java
│ │ │ │ ├── AddressApiLiveTest.java
│ │ │ │ ├── AddressApiTest.java
│ │ │ │ ├── AsyncJobApiLiveTest.java
│ │ │ │ ├── AsyncJobApiTest.java
│ │ │ │ ├── ConfigurationApiLiveTest.java
│ │ │ │ ├── ConfigurationApiTest.java
│ │ │ │ ├── DomainAccountApiLiveTest.java
│ │ │ │ ├── DomainAccountApiTest.java
│ │ │ │ ├── DomainDomainApiExpectTest.java
│ │ │ │ ├── DomainDomainApiLiveTest.java
│ │ │ │ ├── DomainLimitApiLiveTest.java
│ │ │ │ ├── DomainLimitApiTest.java
│ │ │ │ ├── DomainUserApiLiveTest.java
│ │ │ │ ├── EventApiLiveTest.java
│ │ │ │ ├── EventApiTest.java
│ │ │ │ ├── FirewallApiExpectTest.java
│ │ │ │ ├── FirewallApiLiveTest.java
│ │ │ │ ├── FirewallApiTest.java
│ │ │ │ ├── GlobalAccountApiLiveTest.java
│ │ │ │ ├── GlobalAccountApiTest.java
│ │ │ │ ├── GlobalAlertApiLiveTest.java
│ │ │ │ ├── GlobalAlertApiTest.java
│ │ │ │ ├── GlobalCapacityApiLiveTest.java
│ │ │ │ ├── GlobalCapacityApiTest.java
│ │ │ │ ├── GlobalConfigurationApiExpectTest.java
│ │ │ │ ├── GlobalConfigurationApiLiveTest.java
│ │ │ │ ├── GlobalDomainApiExpectTest.java
│ │ │ │ ├── GlobalDomainApiLiveTest.java
│ │ │ │ ├── GlobalHostApiExpectTest.java
│ │ │ │ ├── GlobalHostApiLiveTest.java
│ │ │ │ ├── GlobalHostApiTest.java
│ │ │ │ ├── GlobalOfferingApiLiveTest.java
│ │ │ │ ├── GlobalOfferingApiTest.java
│ │ │ │ ├── GlobalPodApiExpectTest.java
│ │ │ │ ├── GlobalPodApiLiveTest.java
│ │ │ │ ├── GlobalStoragePoolApiLiveTest.java
│ │ │ │ ├── GlobalStoragePoolApiTest.java
│ │ │ │ ├── GlobalUsageApiLiveTest.java
│ │ │ │ ├── GlobalUsageApiTest.java
│ │ │ │ ├── GlobalUserApiLiveTest.java
│ │ │ │ ├── GlobalUserApiTest.java
│ │ │ │ ├── GlobalVlanApiExpectTest.java
│ │ │ │ ├── GlobalVlanApiLiveTest.java
│ │ │ │ ├── GlobalZoneApiExpectTest.java
│ │ │ │ ├── GlobalZoneApiLiveTest.java
│ │ │ │ ├── GuestOSApiLiveTest.java
│ │ │ │ ├── GuestOSApiTest.java
│ │ │ │ ├── HypervisorApiLiveTest.java
│ │ │ │ ├── HypervisorApiTest.java
│ │ │ │ ├── ISOApiExpectTest.java
│ │ │ │ ├── ISOApiLiveTest.java
│ │ │ │ ├── ISOApiTest.java
│ │ │ │ ├── LimitApiLiveTest.java
│ │ │ │ ├── LimitApiTest.java
│ │ │ │ ├── LoadBalancerApiLiveTest.java
│ │ │ │ ├── LoadBalancerApiTest.java
│ │ │ │ ├── NATApiLiveTest.java
│ │ │ │ ├── NATApiTest.java
│ │ │ │ ├── NetworkApiLiveTest.java
│ │ │ │ ├── NetworkApiTest.java
│ │ │ │ ├── OfferingApiLiveTest.java
│ │ │ │ ├── OfferingApiTest.java
│ │ │ │ ├── ProjectApiExpectTest.java
│ │ │ │ ├── ProjectApiLiveTest.java
│ │ │ │ ├── ProjectApiTest.java
│ │ │ │ ├── SSHKeyPairApiExpectTest.java
│ │ │ │ ├── SSHKeyPairApiLiveTest.java
│ │ │ │ ├── SSHKeyPairApiTest.java
│ │ │ │ ├── SecurityGroupApiLiveTest.java
│ │ │ │ ├── SecurityGroupApiTest.java
│ │ │ │ ├── SessionApiExpectTest.java
│ │ │ │ ├── SessionApiLiveTest.java
│ │ │ │ ├── SnapshotApiLiveTest.java
│ │ │ │ ├── SnapshotApiTest.java
│ │ │ │ ├── TagApiExpectTest.java
│ │ │ │ ├── TagApiLiveTest.java
│ │ │ │ ├── TagApiTest.java
│ │ │ │ ├── TemplateApiLiveTest.java
│ │ │ │ ├── TemplateApiTest.java
│ │ │ │ ├── VMGroupApiLiveTest.java
│ │ │ │ ├── VMGroupApiTest.java
│ │ │ │ ├── VirtualMachineApiExpectTest.java
│ │ │ │ ├── VirtualMachineApiLiveTest.java
│ │ │ │ ├── VirtualMachineApiTest.java
│ │ │ │ ├── VolumeApiExpectTest.java
│ │ │ │ ├── VolumeApiLiveTest.java
│ │ │ │ ├── VolumeApiTest.java
│ │ │ │ ├── ZoneApiExpectTest.java
│ │ │ │ ├── ZoneApiLiveTest.java
│ │ │ │ └── ZoneApiTest.java
│ │ │ ├── filters/
│ │ │ │ └── QuerySignerTest.java
│ │ │ ├── functions/
│ │ │ │ ├── BlockUntilJobCompletesAndReturnResultTest.java
│ │ │ │ ├── CreateSecurityGroupIfNeededTest.java
│ │ │ │ ├── ParseAsyncJobFromHttpResponseTest.java
│ │ │ │ ├── ParseAsyncJobsFromHttpResponseTest.java
│ │ │ │ ├── ReuseOrAssociateNewPublicIPAddressTest.java
│ │ │ │ ├── StaticNATVirtualMachineInNetworkLiveTest.java
│ │ │ │ └── WindowsLoginCredentialsFromEncryptedDataTest.java
│ │ │ ├── handlers/
│ │ │ │ ├── CloudStackErrorHandlerTest.java
│ │ │ │ └── InvalidateSessionAndRetryOn401AndLogoutOnCloseTest.java
│ │ │ ├── internal/
│ │ │ │ ├── BaseCloudStackApiLiveTest.java
│ │ │ │ ├── BaseCloudStackApiTest.java
│ │ │ │ ├── BaseCloudStackComputeServiceContextExpectTest.java
│ │ │ │ └── BaseCloudStackExpectTest.java
│ │ │ ├── loaders/
│ │ │ │ └── LoginWithPasswordCredentialsTest.java
│ │ │ ├── options/
│ │ │ │ ├── AddClusterOptionsTest.java
│ │ │ │ ├── AddHostOptionsTest.java
│ │ │ │ ├── AddSecondaryStorageOptionsTest.java
│ │ │ │ ├── AssociateIPAddressOptionsTest.java
│ │ │ │ ├── CreateAccountOptionsTest.java
│ │ │ │ ├── CreateDiskOfferingOptionsTest.java
│ │ │ │ ├── CreateIPForwardingRuleOptionsTest.java
│ │ │ │ ├── CreateNetworkOptionsTest.java
│ │ │ │ ├── CreatePodOptionsTest.java
│ │ │ │ ├── CreateServiceOfferingOptionsTest.java
│ │ │ │ ├── CreateTagsOptionsTest.java
│ │ │ │ ├── CreateUserOptionsTest.java
│ │ │ │ ├── CreateVlanIPRangeOptionsTest.java
│ │ │ │ ├── DeleteHostOptionsTest.java
│ │ │ │ ├── DeleteTagsOptionsTest.java
│ │ │ │ ├── GenerateUsageRecordsOptionsTest.java
│ │ │ │ ├── ListAccountsOptionsTest.java
│ │ │ │ ├── ListAlertsOptionsTest.java
│ │ │ │ ├── ListAsyncJobsOptionsTest.java
│ │ │ │ ├── ListCapacityOptionsTest.java
│ │ │ │ ├── ListClustersOptionsTest.java
│ │ │ │ ├── ListDiskOfferingsOptionsTest.java
│ │ │ │ ├── ListHostsOptionsTest.java
│ │ │ │ ├── ListIPForwardingRulesOptionsTest.java
│ │ │ │ ├── ListISOsOptionsTest.java
│ │ │ │ ├── ListLoadBalancerRulesOptionsTest.java
│ │ │ │ ├── ListNetworkOfferingsOptionsTest.java
│ │ │ │ ├── ListNetworksOptionsTest.java
│ │ │ │ ├── ListOSTypesOptionsTest.java
│ │ │ │ ├── ListPodsOptionsTest.java
│ │ │ │ ├── ListPortForwardingRulesOptionsTest.java
│ │ │ │ ├── ListProjectsOptionsTest.java
│ │ │ │ ├── ListPublicIPAddressesOptionsTest.java
│ │ │ │ ├── ListSecurityGroupsOptionsTest.java
│ │ │ │ ├── ListServiceOfferingsOptionsTest.java
│ │ │ │ ├── ListStoragePoolsOptionsTest.java
│ │ │ │ ├── ListTagsOptionsTest.java
│ │ │ │ ├── ListTemplatesOptionsTest.java
│ │ │ │ ├── ListUsageRecordsOptionsTest.java
│ │ │ │ ├── ListUsersOptionsTest.java
│ │ │ │ ├── ListVirtualMachinesOptionsTest.java
│ │ │ │ ├── ListVlanIPRangesOptionsTest.java
│ │ │ │ ├── ListZonesOptionsTest.java
│ │ │ │ ├── UpdateAccountOptionsTest.java
│ │ │ │ ├── UpdateClusterOptionsTest.java
│ │ │ │ ├── UpdateDiskOfferingOptionsTest.java
│ │ │ │ ├── UpdateHostOptionsTest.java
│ │ │ │ ├── UpdateNetworkOfferingOptionsTest.java
│ │ │ │ ├── UpdatePodOptionsTest.java
│ │ │ │ ├── UpdateServiceOfferingOptionsTest.java
│ │ │ │ └── UpdateUserOptionsTest.java
│ │ │ ├── parse/
│ │ │ │ ├── DeleteIPForwardingRuleResponseTest.java
│ │ │ │ ├── DeleteNetworkResponseTest.java
│ │ │ │ ├── DeployVirtualMachineResponse3xTest.java
│ │ │ │ ├── DeployVirtualMachineResponse4xTest.java
│ │ │ │ ├── DisableStaticNATResponseTest.java
│ │ │ │ ├── EnableStaticNATResponseWhereResponseDoesntHaveJobTest.java
│ │ │ │ ├── JobResultResponseTest.java
│ │ │ │ ├── ListAccountsResponseTest.java
│ │ │ │ ├── ListAlertsResponseTest.java
│ │ │ │ ├── ListCapabilitiesResponseTest.java
│ │ │ │ ├── ListCapacityResponseTest.java
│ │ │ │ ├── ListClustersResponseTest.java
│ │ │ │ ├── ListConfigurationEntriesResponseTest.java
│ │ │ │ ├── ListDiskOfferingsResponseTest.java
│ │ │ │ ├── ListDomainsResponseTest.java
│ │ │ │ ├── ListFirewallRulesResponseTest.java
│ │ │ │ ├── ListHostsResponseTest.java
│ │ │ │ ├── ListHypervisorsResponseTest.java
│ │ │ │ ├── ListIPForwardingRulesResponseTest.java
│ │ │ │ ├── ListLoadBalancerRulesResponseTest.java
│ │ │ │ ├── ListNetworkOfferingsResponseTest.java
│ │ │ │ ├── ListNetworksResponseTest.java
│ │ │ │ ├── ListOSCategoriesResponseTest.java
│ │ │ │ ├── ListOSTypesResponseTest.java
│ │ │ │ ├── ListPodsResponseTest.java
│ │ │ │ ├── ListPortForwardingRulesResponseTest.java
│ │ │ │ ├── ListPublicIPAddressesResponseTest.java
│ │ │ │ ├── ListSSHKeyPairsResponseTest.java
│ │ │ │ ├── ListSecurityGroupsResponseTest.java
│ │ │ │ ├── ListServiceOfferingsResponseTest.java
│ │ │ │ ├── ListStoragePoolsResponseTest.java
│ │ │ │ ├── ListTagsResponseTest.java
│ │ │ │ ├── ListTemplatesResponseTest.java
│ │ │ │ ├── ListUsageRecordsResponseTest.java
│ │ │ │ ├── ListVirtualMachinesResponse3xTest.java
│ │ │ │ ├── ListVirtualMachinesResponseTest.java
│ │ │ │ ├── ListVlanIPRangesResponseTest.java
│ │ │ │ ├── ListZonesResponseTest.java
│ │ │ │ └── RegisterUserKeysResponseTest.java
│ │ │ └── predicates/
│ │ │ ├── JobCompleteTest.java
│ │ │ ├── NetworkPredicatesTest.java
│ │ │ ├── OSCategoryInTest.java
│ │ │ ├── PublicIPAddressPredicatesTest.java
│ │ │ ├── SecurityGroupPredicatesTest.java
│ │ │ ├── TemplatePredicatesTest.java
│ │ │ ├── UserPredicatesTest.java
│ │ │ ├── VirtualMachineDestroyedTest.java
│ │ │ ├── VirtualMachineExpungedTest.java
│ │ │ ├── VirtualMachineRunningTest.java
│ │ │ └── ZonePredicatesTest.java
│ │ └── resources/
│ │ ├── addclusterresponse.json
│ │ ├── addhostresponse.json
│ │ ├── addsecondarystorageresponse.json
│ │ ├── authorizesecuritygroupingressresponse.json
│ │ ├── cancelhostmaintenanceresponse.json
│ │ ├── createdomainresponse.json
│ │ ├── createegressfirewallrulesresponse.json
│ │ ├── createfirewallrulesresponse.json
│ │ ├── createkeypairresponse.json
│ │ ├── createpodresponse.json
│ │ ├── createportforwardingrulesresponse.json
│ │ ├── createsecuritygroupresponse.json
│ │ ├── createsshkeypairresponse-2.json
│ │ ├── createsshkeypairresponse.json
│ │ ├── createtagsresponse.json
│ │ ├── createtemplateresponse-imageextension.json
│ │ ├── createtemplateresponse.json
│ │ ├── createvlaniprangeresponse.json
│ │ ├── createzoneresponse.json
│ │ ├── deletedomainresponse.json
│ │ ├── deleteegressfirewallrulesresponse.json
│ │ ├── deletefirewallrulesresponse.json
│ │ ├── deleteipforwardingruleresponse.json
│ │ ├── deletenetworkresponse.json
│ │ ├── deleteportforwardingrulesresponse.json
│ │ ├── deletesecuritygroupresponse.json
│ │ ├── deletetagsresponse.json
│ │ ├── deletetemplateresponse.json
│ │ ├── deletezoneresponse.json
│ │ ├── deployvirtualmachineresponse.json
│ │ ├── deployvirtualmachineresponse4x.json
│ │ ├── disablestaticnatresponse.json
│ │ ├── enablestaticnatresponse-withoutjob.json
│ │ ├── getdomainresponse.json
│ │ ├── getegressfirewallrulesresponse.json
│ │ ├── getfirewallrulesresponse.json
│ │ ├── getisoresponse.json
│ │ ├── getportforwardingrulesresponse.json
│ │ ├── getsecuritygroupresponse.json
│ │ ├── getsecuritygroupresponse_extension_byid.json
│ │ ├── getsecuritygroupresponse_extension_byid_empty.json
│ │ ├── getsecuritygroupresponse_extension_byid_with_cidr.json
│ │ ├── getsecuritygroupresponse_extension_byid_with_group.json
│ │ ├── getvmpasswordresponse.json
│ │ ├── getzoneresponse-2.json
│ │ ├── getzoneresponse.json
│ │ ├── listaccountsresponse.json
│ │ ├── listalertsresponse.json
│ │ ├── listasyncjobsresponse.json
│ │ ├── listcapabilitiesresponse.json
│ │ ├── listcapacityresponse.json
│ │ ├── listclustersresponse.json
│ │ ├── listconfigurationsresponse.json
│ │ ├── listdiskofferingsresponse.json
│ │ ├── listdomainchildrenresponse.json
│ │ ├── listdomainsresponse.json
│ │ ├── listegressfirewallrulesresponse.json
│ │ ├── listeventtypesresponse.json
│ │ ├── listfirewallrulesresponse.json
│ │ ├── listhostsresponse.json
│ │ ├── listhypervisorsresponse.json
│ │ ├── listipforwardingrulesresponse.json
│ │ ├── listisosresponse.json
│ │ ├── listloadbalancerrulesresponse.json
│ │ ├── listnetworkofferingsresponse.json
│ │ ├── listnetworksresponse-2.json
│ │ ├── listnetworksresponse.json
│ │ ├── listoscategoriesresponse.json
│ │ ├── listostypesresponse.json
│ │ ├── listpodsresponse.json
│ │ ├── listportforwardingrulesresponse.json
│ │ ├── listprojectsresponse.json
│ │ ├── listpublicipaddressesresponse.json
│ │ ├── listresourcelimitsresponse.json
│ │ ├── listsecuritygroupsresponse.json
│ │ ├── listserviceofferingsresponse.json
│ │ ├── listsshkeypairsresponse.json
│ │ ├── liststoragepoolsresponse.json
│ │ ├── listtagsresponse.json
│ │ ├── listtemplatesresponse-imageextension.json
│ │ ├── listtemplatesresponse.json
│ │ ├── listusagerecordsresponse.json
│ │ ├── listvirtualmachinesresponse-imageextension.json
│ │ ├── listvirtualmachinesresponse.json
│ │ ├── listvirtualmachinesresponse3x.json
│ │ ├── listvlaniprangesresponse.json
│ │ ├── listvolumesresponse-imageextension.json
│ │ ├── listzonesresponse.json
│ │ ├── listzonesresponse_single.json
│ │ ├── loginresponse.json
│ │ ├── logoutresponse.json
│ │ ├── preparehostformaintenanceresponse.json
│ │ ├── queryasyncjobresultresponse-authorizeingress.json
│ │ ├── queryasyncjobresultresponse-createtemplate-imageextension.json
│ │ ├── queryasyncjobresultresponse-createtemplate.json
│ │ ├── queryasyncjobresultresponse-createvolume.json
│ │ ├── queryasyncjobresultresponse-extracttemplate.json
│ │ ├── queryasyncjobresultresponse-ipaddress.json
│ │ ├── queryasyncjobresultresponse-ipforwardingrule.json
│ │ ├── queryasyncjobresultresponse-stopvirtualmachine-imageextension.json
│ │ ├── queryasyncjobresultresponse-virtualmachine-securitygroup.json
│ │ ├── queryasyncjobresultresponse-virtualmachine.json
│ │ ├── reconnecthostresponse.json
│ │ ├── registerisoresponse.json
│ │ ├── registersshkeypairresponse.json
│ │ ├── registeruserkeysresponse.json
│ │ ├── revokesecuritygroupingressresponse.json
│ │ ├── stopvirtualmachineresponse-imageextension.json
│ │ ├── updateclusterresponse.json
│ │ ├── updateconfigurationsresponse.json
│ │ ├── updatedomainresponse.json
│ │ ├── updatehostresponse.json
│ │ ├── updatepodresponse.json
│ │ └── updatezoneresponse.json
│ ├── cloudwatch/
│ │ ├── bnd.bnd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── cloudwatch/
│ │ │ ├── CloudWatch.java
│ │ │ ├── CloudWatchApi.java
│ │ │ ├── CloudWatchApiMetadata.java
│ │ │ ├── binders/
│ │ │ │ ├── AlarmNamesBinder.java
│ │ │ │ ├── GetMetricStatisticsBinder.java
│ │ │ │ └── MetricDataBinder.java
│ │ │ ├── config/
│ │ │ │ └── CloudWatchHttpApiModule.java
│ │ │ ├── domain/
│ │ │ │ ├── Alarm.java
│ │ │ │ ├── AlarmHistoryItem.java
│ │ │ │ ├── AutoScalingConstants.java
│ │ │ │ ├── ComparisonOperator.java
│ │ │ │ ├── Datapoint.java
│ │ │ │ ├── Dimension.java
│ │ │ │ ├── DynamoDBConstants.java
│ │ │ │ ├── EBSConstants.java
│ │ │ │ ├── EC2Constants.java
│ │ │ │ ├── ELBConstants.java
│ │ │ │ ├── EMRConstants.java
│ │ │ │ ├── GetMetricStatistics.java
│ │ │ │ ├── GetMetricStatisticsResponse.java
│ │ │ │ ├── HistoryItemType.java
│ │ │ │ ├── ListMetricsResponse.java
│ │ │ │ ├── Metric.java
│ │ │ │ ├── MetricDatum.java
│ │ │ │ ├── Namespaces.java
│ │ │ │ ├── RDSConstants.java
│ │ │ │ ├── SNSConstants.java
│ │ │ │ ├── SQSConstants.java
│ │ │ │ ├── StatisticValues.java
│ │ │ │ ├── Statistics.java
│ │ │ │ ├── StorageGatewayConstants.java
│ │ │ │ └── Unit.java
│ │ │ ├── features/
│ │ │ │ ├── AlarmApi.java
│ │ │ │ └── MetricApi.java
│ │ │ ├── functions/
│ │ │ │ ├── ISO8601Format.java
│ │ │ │ ├── ListAlarmHistoryToPagedIterable.java
│ │ │ │ ├── ListAlarmsToPagedIterable.java
│ │ │ │ └── MetricsToPagedIterable.java
│ │ │ ├── handlers/
│ │ │ │ └── CloudWatchErrorHandler.java
│ │ │ ├── options/
│ │ │ │ ├── GetMetricStatisticsOptions.java
│ │ │ │ ├── ListAlarmHistoryOptions.java
│ │ │ │ ├── ListAlarmsForMetric.java
│ │ │ │ ├── ListAlarmsOptions.java
│ │ │ │ ├── ListMetricsOptions.java
│ │ │ │ └── SaveAlarmOptions.java
│ │ │ └── xml/
│ │ │ ├── AlarmHistoryItemHandler.java
│ │ │ ├── DatapointHandler.java
│ │ │ ├── DimensionHandler.java
│ │ │ ├── GetMetricStatisticsResponseHandler.java
│ │ │ ├── GetMetricStatisticsResponseHandlerV2.java
│ │ │ ├── ListAlarmHistoryResponseHandler.java
│ │ │ ├── ListAlarmsForMetricResponseHandler.java
│ │ │ ├── ListAlarmsResponseHandler.java
│ │ │ ├── ListMetricsResponseHandler.java
│ │ │ ├── MetricAlarmHandler.java
│ │ │ └── MetricHandler.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── cloudwatch/
│ │ │ ├── CloudWatchApiMetadataTest.java
│ │ │ ├── CloudWatchLiveTest.java
│ │ │ ├── CloudWatchTest.java
│ │ │ ├── binders/
│ │ │ │ ├── AlarmNamesBinderTest.java
│ │ │ │ └── MetricDataBinderTest.java
│ │ │ ├── features/
│ │ │ │ ├── AlarmApiExpectTest.java
│ │ │ │ ├── AlarmApiLiveTest.java
│ │ │ │ ├── MetricApiExpectTest.java
│ │ │ │ └── MetricApiLiveTest.java
│ │ │ ├── internal/
│ │ │ │ ├── BaseCloudWatchApiExpectTest.java
│ │ │ │ ├── BaseCloudWatchApiLiveTest.java
│ │ │ │ └── BaseCloudWatchExpectTest.java
│ │ │ ├── options/
│ │ │ │ ├── GetMetricStatisticsOptionsTest.java
│ │ │ │ ├── ListAlarmHistoryOptionsTest.java
│ │ │ │ ├── ListAlarmsForMetricTest.java
│ │ │ │ ├── ListAlarmsOptionsTest.java
│ │ │ │ └── SaveAlarmOptionsTest.java
│ │ │ └── xml/
│ │ │ ├── GetMetricStatisticsResponseHandlerTest.java
│ │ │ ├── ListAlarmHistoryResponseHandlerTest.java
│ │ │ ├── ListAlarmsForMetricResponseHandlerTest.java
│ │ │ └── ListAlarmsResponseHandlerTest.java
│ │ └── resources/
│ │ ├── DescribeAlarmHistoryResponse.xml
│ │ ├── DescribeAlarmsForMetricResponse.xml
│ │ ├── DescribeAlarmsResponse.xml
│ │ ├── InvalidFormatResponse.xml
│ │ ├── LimitExceededResponse.xml
│ │ ├── VoidResponse.xml
│ │ ├── get_metric_statistics.xml
│ │ ├── list_metrics.xml
│ │ ├── list_metrics_marker.xml
│ │ └── log4j.xml
│ ├── docker/
│ │ ├── README.md
│ │ ├── bnd.bnd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── docker/
│ │ │ ├── DockerApi.java
│ │ │ ├── DockerApiMetadata.java
│ │ │ ├── compute/
│ │ │ │ ├── config/
│ │ │ │ │ ├── DockerComputeServiceContextModule.java
│ │ │ │ │ └── LoginPortLookupModule.java
│ │ │ │ ├── functions/
│ │ │ │ │ ├── ContainerToNodeMetadata.java
│ │ │ │ │ ├── CustomLoginPortFromImage.java
│ │ │ │ │ ├── ImageToImage.java
│ │ │ │ │ ├── LoginPortForContainer.java
│ │ │ │ │ ├── PublicPortForContainerPort.java
│ │ │ │ │ └── StateToStatus.java
│ │ │ │ ├── options/
│ │ │ │ │ └── DockerTemplateOptions.java
│ │ │ │ └── strategy/
│ │ │ │ └── DockerComputeServiceAdapter.java
│ │ │ ├── config/
│ │ │ │ ├── DockerHttpApiModule.java
│ │ │ │ ├── DockerOkHttpClientSupplier.java
│ │ │ │ └── DockerParserModule.java
│ │ │ ├── domain/
│ │ │ │ ├── Config.java
│ │ │ │ ├── Container.java
│ │ │ │ ├── ContainerSummary.java
│ │ │ │ ├── Exec.java
│ │ │ │ ├── ExecCreateParams.java
│ │ │ │ ├── ExecInspect.java
│ │ │ │ ├── ExecStartParams.java
│ │ │ │ ├── ExposedPorts.java
│ │ │ │ ├── HostConfig.java
│ │ │ │ ├── Image.java
│ │ │ │ ├── ImageHistory.java
│ │ │ │ ├── ImageSummary.java
│ │ │ │ ├── Info.java
│ │ │ │ ├── Network.java
│ │ │ │ ├── NetworkSettings.java
│ │ │ │ ├── Node.java
│ │ │ │ ├── Port.java
│ │ │ │ ├── Resource.java
│ │ │ │ ├── State.java
│ │ │ │ ├── StatusCode.java
│ │ │ │ └── Version.java
│ │ │ ├── features/
│ │ │ │ ├── ContainerApi.java
│ │ │ │ ├── ImageApi.java
│ │ │ │ ├── MiscApi.java
│ │ │ │ └── NetworkApi.java
│ │ │ ├── handlers/
│ │ │ │ └── DockerErrorHandler.java
│ │ │ ├── internal/
│ │ │ │ └── NullSafeCopies.java
│ │ │ ├── options/
│ │ │ │ ├── AttachOptions.java
│ │ │ │ ├── BuildOptions.java
│ │ │ │ ├── CommitOptions.java
│ │ │ │ ├── CreateImageOptions.java
│ │ │ │ ├── DeleteImageOptions.java
│ │ │ │ ├── ListContainerOptions.java
│ │ │ │ ├── ListImageOptions.java
│ │ │ │ └── RemoveContainerOptions.java
│ │ │ ├── suppliers/
│ │ │ │ ├── DockerSSLContextSupplier.java
│ │ │ │ ├── DockerUntrustedSSLContextSupplier.java
│ │ │ │ └── SSLContextBuilder.java
│ │ │ └── util/
│ │ │ ├── DockerInputStream.java
│ │ │ └── StdStreamData.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── docker/
│ │ │ ├── DockerApiMetadataTest.java
│ │ │ ├── compute/
│ │ │ │ ├── BaseDockerApiLiveTest.java
│ │ │ │ ├── DockerComputeServiceAdapterLiveTest.java
│ │ │ │ ├── DockerComputeServiceLiveTest.java
│ │ │ │ ├── SshToCustomPortLiveTest.java
│ │ │ │ ├── functions/
│ │ │ │ │ ├── ContainerToNodeMetadataTest.java
│ │ │ │ │ ├── CustomLoginPortFromImageTest.java
│ │ │ │ │ ├── ImageToImageTest.java
│ │ │ │ │ └── StateToStatusTest.java
│ │ │ │ ├── options/
│ │ │ │ │ └── DockerTemplateOptionsTest.java
│ │ │ │ └── strategy/
│ │ │ │ └── PredicateLocateImageByNameTest.java
│ │ │ ├── config/
│ │ │ │ └── DockerParserModuleTest.java
│ │ │ ├── domain/
│ │ │ │ ├── ConfigTest.java
│ │ │ │ └── ContainerTest.java
│ │ │ ├── features/
│ │ │ │ ├── ContainerApiLiveTest.java
│ │ │ │ ├── ContainerApiMockTest.java
│ │ │ │ ├── ImageApiLiveTest.java
│ │ │ │ ├── ImageApiMockTest.java
│ │ │ │ ├── MiscApiLiveTest.java
│ │ │ │ ├── MiscApiMockTest.java
│ │ │ │ ├── NetworkApiLiveTest.java
│ │ │ │ └── NetworkApiMockTest.java
│ │ │ ├── internal/
│ │ │ │ ├── BaseDockerMockTest.java
│ │ │ │ ├── BaseDockerParseTest.java
│ │ │ │ └── DockerTestUtils.java
│ │ │ └── parse/
│ │ │ ├── ContainerParseTest.java
│ │ │ ├── ContainerVersionMajor1Minor21.java
│ │ │ ├── ContainersParseTest.java
│ │ │ ├── HistoryParseTest.java
│ │ │ ├── ImageParseTest.java
│ │ │ ├── ImagesParseTest.java
│ │ │ ├── Info2ParseTest.java
│ │ │ ├── InfoParseTest.java
│ │ │ ├── NetworkParseTest.java
│ │ │ ├── NetworksParseTest.java
│ │ │ └── VersionParseTest.java
│ │ └── resources/
│ │ ├── Dockerfile
│ │ ├── SimpleDockerfile
│ │ ├── cert.pem
│ │ ├── container-1.21-create.json
│ │ ├── container-1.21-inspect.json
│ │ ├── container-creation.json
│ │ ├── container.json
│ │ ├── containers.json
│ │ ├── exec.json
│ │ ├── exec.start
│ │ ├── execInspect.json
│ │ ├── history-apiver22.json
│ │ ├── history.json
│ │ ├── image.json
│ │ ├── images.json
│ │ ├── info.json
│ │ ├── info2.json
│ │ ├── key.pem
│ │ ├── logback.xml
│ │ ├── network-creation.json
│ │ ├── network.json
│ │ ├── networks.json
│ │ └── version.json
│ ├── ec2/
│ │ ├── README.txt
│ │ ├── bnd.bnd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── ec2/
│ │ │ ├── EC2Api.java
│ │ │ ├── EC2ApiMetadata.java
│ │ │ ├── EC2Fallbacks.java
│ │ │ ├── binders/
│ │ │ │ ├── BindBlockDeviceMappingToIndexedFormParams.java
│ │ │ │ ├── BindBundleIdsToIndexedFormParams.java
│ │ │ │ ├── BindFiltersToIndexedFormParams.java
│ │ │ │ ├── BindGroupIdsToIndexedFormParams.java
│ │ │ │ ├── BindGroupNamesToIndexedFormParams.java
│ │ │ │ ├── BindInstanceIdsToIndexedFormParams.java
│ │ │ │ ├── BindIpPermissionToIndexedFormParams.java
│ │ │ │ ├── BindIpPermissionsToIndexedFormParams.java
│ │ │ │ ├── BindKeyNamesToIndexedFormParams.java
│ │ │ │ ├── BindProductCodesToIndexedFormParams.java
│ │ │ │ ├── BindPublicIpsToIndexedFormParams.java
│ │ │ │ ├── BindResourceIdsToIndexedFormParams.java
│ │ │ │ ├── BindS3UploadPolicyAndSignature.java
│ │ │ │ ├── BindSubnetIdsToIndexedFormParams.java
│ │ │ │ ├── BindTagKeysToIndexedFormParams.java
│ │ │ │ ├── BindTagsToIndexedFormParams.java
│ │ │ │ ├── BindUserGroupsToIndexedFormParams.java
│ │ │ │ ├── BindUserIdGroupPairToSourceSecurityGroupFormParams.java
│ │ │ │ ├── BindUserIdsToIndexedFormParams.java
│ │ │ │ ├── BindVolumeIdsToIndexedFormParams.java
│ │ │ │ └── IfNotNullBindAvailabilityZoneToFormParam.java
│ │ │ ├── compute/
│ │ │ │ ├── EC2ComputeService.java
│ │ │ │ ├── EC2ComputeServiceContext.java
│ │ │ │ ├── config/
│ │ │ │ │ ├── EC2BindComputeStrategiesByClass.java
│ │ │ │ │ ├── EC2BindComputeSuppliersByClass.java
│ │ │ │ │ ├── EC2ComputeServiceContextModule.java
│ │ │ │ │ ├── EC2ComputeServiceDependenciesModule.java
│ │ │ │ │ └── EC2ResolveImagesModule.java
│ │ │ │ ├── domain/
│ │ │ │ │ ├── EC2HardwareBuilder.java
│ │ │ │ │ ├── PasswordDataAndPrivateKey.java
│ │ │ │ │ ├── RegionAndName.java
│ │ │ │ │ └── RegionNameAndIngressRules.java
│ │ │ │ ├── extensions/
│ │ │ │ │ ├── EC2ImageExtension.java
│ │ │ │ │ └── EC2SecurityGroupExtension.java
│ │ │ │ ├── functions/
│ │ │ │ │ ├── AddElasticIpsToNodemetadata.java
│ │ │ │ │ ├── CreateUniqueKeyPair.java
│ │ │ │ │ ├── CredentialsForInstance.java
│ │ │ │ │ ├── EC2ImageParser.java
│ │ │ │ │ ├── EC2SecurityGroupIdFromName.java
│ │ │ │ │ ├── EC2SecurityGroupToSecurityGroup.java
│ │ │ │ │ ├── ImagesToRegionAndIdMap.java
│ │ │ │ │ ├── PasswordCredentialsFromWindowsInstance.java
│ │ │ │ │ ├── PresentInstances.java
│ │ │ │ │ ├── RunningInstanceToNodeMetadata.java
│ │ │ │ │ └── WindowsLoginCredentialsFromEncryptedData.java
│ │ │ │ ├── internal/
│ │ │ │ │ ├── EC2ComputeServiceContextImpl.java
│ │ │ │ │ └── EC2TemplateBuilderImpl.java
│ │ │ │ ├── loaders/
│ │ │ │ │ ├── CreateSecurityGroupIfNeeded.java
│ │ │ │ │ ├── LoadAllocationIdForInstanceOrNull.java
│ │ │ │ │ ├── LoadPublicIpForInstanceOrNull.java
│ │ │ │ │ └── RegionAndIdToImage.java
│ │ │ │ ├── options/
│ │ │ │ │ └── EC2TemplateOptions.java
│ │ │ │ ├── predicates/
│ │ │ │ │ ├── EC2ImagePredicates.java
│ │ │ │ │ └── SecurityGroupPresent.java
│ │ │ │ ├── strategy/
│ │ │ │ │ ├── CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.java
│ │ │ │ │ ├── DescribeImagesParallel.java
│ │ │ │ │ ├── EC2CreateNodesInGroupThenAddToSet.java
│ │ │ │ │ ├── EC2DestroyNodeStrategy.java
│ │ │ │ │ ├── EC2GetImageStrategy.java
│ │ │ │ │ ├── EC2GetNodeMetadataStrategy.java
│ │ │ │ │ ├── EC2ListNodesStrategy.java
│ │ │ │ │ ├── EC2PopulateDefaultLoginCredentialsForImageStrategy.java
│ │ │ │ │ ├── EC2RebootNodeStrategy.java
│ │ │ │ │ ├── EC2ResumeNodeStrategy.java
│ │ │ │ │ ├── EC2SuspendNodeStrategy.java
│ │ │ │ │ └── ReviseParsedImage.java
│ │ │ │ ├── suppliers/
│ │ │ │ │ ├── EC2HardwareSupplier.java
│ │ │ │ │ ├── EC2ImageSupplier.java
│ │ │ │ │ └── RegionAndNameToImageSupplier.java
│ │ │ │ └── util/
│ │ │ │ └── EC2ComputeUtils.java
│ │ │ ├── config/
│ │ │ │ ├── BaseEC2HttpApiModule.java
│ │ │ │ └── EC2HttpApiModule.java
│ │ │ ├── domain/
│ │ │ │ ├── Attachment.java
│ │ │ │ ├── AvailabilityZoneInfo.java
│ │ │ │ ├── BlockDevice.java
│ │ │ │ ├── BlockDeviceMapping.java
│ │ │ │ ├── BundleInstanceS3Storage.java
│ │ │ │ ├── BundleTask.java
│ │ │ │ ├── Hypervisor.java
│ │ │ │ ├── Image.java
│ │ │ │ ├── ImageAttribute.java
│ │ │ │ ├── InstanceState.java
│ │ │ │ ├── InstanceStateChange.java
│ │ │ │ ├── InstanceType.java
│ │ │ │ ├── KeyPair.java
│ │ │ │ ├── PasswordData.java
│ │ │ │ ├── Permission.java
│ │ │ │ ├── PublicIpInstanceIdPair.java
│ │ │ │ ├── Reservation.java
│ │ │ │ ├── ReservedInstancesOffering.java
│ │ │ │ ├── RootDeviceType.java
│ │ │ │ ├── RunningInstance.java
│ │ │ │ ├── SecurityGroup.java
│ │ │ │ ├── Snapshot.java
│ │ │ │ ├── Subnet.java
│ │ │ │ ├── Tag.java
│ │ │ │ ├── UserIdGroupPair.java
│ │ │ │ ├── VirtualizationType.java
│ │ │ │ └── Volume.java
│ │ │ ├── features/
│ │ │ │ ├── AMIApi.java
│ │ │ │ ├── AvailabilityZoneAndRegionApi.java
│ │ │ │ ├── ElasticBlockStoreApi.java
│ │ │ │ ├── ElasticIPAddressApi.java
│ │ │ │ ├── InstanceApi.java
│ │ │ │ ├── KeyPairApi.java
│ │ │ │ ├── SecurityGroupApi.java
│ │ │ │ ├── SubnetApi.java
│ │ │ │ ├── TagApi.java
│ │ │ │ └── WindowsApi.java
│ │ │ ├── functions/
│ │ │ │ ├── ConvertUnencodedBytesToBase64EncodedString.java
│ │ │ │ └── EncodedRSAPublicKeyToBase64.java
│ │ │ ├── options/
│ │ │ │ ├── BundleInstanceS3StorageOptions.java
│ │ │ │ ├── CreateImageOptions.java
│ │ │ │ ├── CreateSnapshotOptions.java
│ │ │ │ ├── CreateVolumeOptions.java
│ │ │ │ ├── DescribeAvailabilityZonesOptions.java
│ │ │ │ ├── DescribeImagesOptions.java
│ │ │ │ ├── DescribeRegionsOptions.java
│ │ │ │ ├── DescribeSnapshotsOptions.java
│ │ │ │ ├── DetachVolumeOptions.java
│ │ │ │ ├── RegisterImageBackedByEbsOptions.java
│ │ │ │ ├── RegisterImageOptions.java
│ │ │ │ ├── RunInstancesOptions.java
│ │ │ │ └── internal/
│ │ │ │ └── BaseEC2RequestOptions.java
│ │ │ ├── predicates/
│ │ │ │ ├── InstanceHasIpAddress.java
│ │ │ │ ├── InstanceStateRunning.java
│ │ │ │ ├── InstanceStateStopped.java
│ │ │ │ ├── InstanceStateTerminated.java
│ │ │ │ ├── SnapshotCompleted.java
│ │ │ │ ├── VolumeAttached.java
│ │ │ │ ├── VolumeAvailable.java
│ │ │ │ └── VolumeDetached.java
│ │ │ ├── reference/
│ │ │ │ └── EC2Constants.java
│ │ │ ├── suppliers/
│ │ │ │ ├── DescribeAvailabilityZonesInRegion.java
│ │ │ │ └── DescribeRegionsForRegionURIs.java
│ │ │ ├── util/
│ │ │ │ ├── IpPermissions.java
│ │ │ │ ├── SubnetFilterBuilder.java
│ │ │ │ ├── TagFilterBuilder.java
│ │ │ │ └── Tags.java
│ │ │ └── xml/
│ │ │ ├── AllocateAddressResponseHandler.java
│ │ │ ├── AttachmentHandler.java
│ │ │ ├── BaseReservationHandler.java
│ │ │ ├── BlockDeviceMappingHandler.java
│ │ │ ├── BooleanValueHandler.java
│ │ │ ├── BundleTaskHandler.java
│ │ │ ├── CreateVolumeResponseHandler.java
│ │ │ ├── DescribeAddressesResponseHandler.java
│ │ │ ├── DescribeAvailabilityZonesResponseHandler.java
│ │ │ ├── DescribeBundleTasksResponseHandler.java
│ │ │ ├── DescribeImagesResponseHandler.java
│ │ │ ├── DescribeInstancesResponseHandler.java
│ │ │ ├── DescribeKeyPairsResponseHandler.java
│ │ │ ├── DescribeRegionsResponseHandler.java
│ │ │ ├── DescribeSecurityGroupsResponseHandler.java
│ │ │ ├── DescribeSnapshotsResponseHandler.java
│ │ │ ├── DescribeSubnetsResponseHandler.java
│ │ │ ├── DescribeTagsResponseHandler.java
│ │ │ ├── DescribeVolumesResponseHandler.java
│ │ │ ├── GetConsoleOutputResponseHandler.java
│ │ │ ├── GetPasswordDataResponseHandler.java
│ │ │ ├── ImageIdHandler.java
│ │ │ ├── InstanceInitiatedShutdownBehaviorHandler.java
│ │ │ ├── InstanceStateChangeHandler.java
│ │ │ ├── InstanceTypeHandler.java
│ │ │ ├── IpPermissionHandler.java
│ │ │ ├── KeyPairResponseHandler.java
│ │ │ ├── PermissionHandler.java
│ │ │ ├── RunInstancesResponseHandler.java
│ │ │ ├── SecurityGroupHandler.java
│ │ │ ├── SnapshotHandler.java
│ │ │ ├── StringValueHandler.java
│ │ │ ├── SubnetHandler.java
│ │ │ ├── TagHandler.java
│ │ │ ├── TagSetHandler.java
│ │ │ └── UnencodeStringValueHandler.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── ec2/
│ │ │ ├── CloudApplicationArchitecturesEC2ApiLiveTest.java
│ │ │ ├── EBSBootEC2ApiLiveTest.java
│ │ │ ├── EC2ApiMetadataTest.java
│ │ │ ├── EC2ContextBuilderText.java
│ │ │ ├── binders/
│ │ │ │ ├── BindBlockDeviceMappingToIndexedFormParamsTest.java
│ │ │ │ ├── BindBundleIdsToIndexedFormParamsTest.java
│ │ │ │ ├── BindFiltersToIndexedFormParamsTest.java
│ │ │ │ ├── BindGroupNamesToIndexedFormParamsTest.java
│ │ │ │ ├── BindInstanceIdsToIndexedFormParamsTest.java
│ │ │ │ ├── BindKeyNamesToIndexedFormParamsTest.java
│ │ │ │ ├── BindProductCodesToIndexedFormParamsTest.java
│ │ │ │ ├── BindPublicIpsToIndexedFormParamsTest.java
│ │ │ │ ├── BindResourceIdsToIndexedFormParamsTest.java
│ │ │ │ ├── BindS3UploadPolicyAndSignatureTest.java
│ │ │ │ ├── BindTagKeysToIndexedFormParamsTest.java
│ │ │ │ ├── BindTagsToIndexedFormParamsTest.java
│ │ │ │ ├── BindUserGroupsToIndexedFormParamsTest.java
│ │ │ │ ├── BindUserIdGroupPairToSourceSecurityGroupFormParamsTest.java
│ │ │ │ ├── BindUserIdsToIndexedFormParamsTest.java
│ │ │ │ ├── BindVolumeIdsToIndexedFormParamsTest.java
│ │ │ │ └── IfNotNullBindAvailabilityZoneToFormParamTest.java
│ │ │ ├── compute/
│ │ │ │ ├── EC2ComputeServiceExpectTest.java
│ │ │ │ ├── EC2ComputeServiceLiveTest.java
│ │ │ │ ├── EC2TemplateBuilderLiveTest.java
│ │ │ │ ├── EC2TemplateBuilderTest.java
│ │ │ │ ├── TestCanRecreateGroupLiveTest.java
│ │ │ │ ├── config/
│ │ │ │ │ └── EC2ComputeServiceContextModuleTest.java
│ │ │ │ ├── extensions/
│ │ │ │ │ ├── EC2ImageExtensionExpectTest.java
│ │ │ │ │ ├── EC2ImageExtensionLiveTest.java
│ │ │ │ │ ├── EC2SecurityGroupExtensionExpectTest.java
│ │ │ │ │ └── EC2SecurityGroupExtensionLiveTest.java
│ │ │ │ ├── functions/
│ │ │ │ │ ├── AddElasticIpsToNodemetadataTest.java
│ │ │ │ │ ├── CreateUniqueKeyPairTest.java
│ │ │ │ │ ├── EC2ImageParserTest.java
│ │ │ │ │ ├── EC2SecurityGroupToSecurityGroupTest.java
│ │ │ │ │ ├── PresentInstancesTest.java
│ │ │ │ │ ├── RunningInstanceToNodeMetadataTest.java
│ │ │ │ │ └── WindowsLoginCredentialsFromEncryptedDataTest.java
│ │ │ │ ├── internal/
│ │ │ │ │ ├── BaseEC2ComputeServiceContextExpectTest.java
│ │ │ │ │ ├── BaseEC2ComputeServiceExpectTest.java
│ │ │ │ │ └── EC2TemplateBuilderImplTest.java
│ │ │ │ ├── loaders/
│ │ │ │ │ ├── CreateSecurityGroupIfNeededTest.java
│ │ │ │ │ ├── LoadPublicIpForInstanceOrNullTest.java
│ │ │ │ │ └── RegionAndIdToImageTest.java
│ │ │ │ ├── options/
│ │ │ │ │ └── EC2TemplateOptionsTest.java
│ │ │ │ └── strategy/
│ │ │ │ ├── CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
│ │ │ │ ├── EC2CreateNodesInGroupThenAddToSetTest.java
│ │ │ │ └── EC2DestroyNodeStrategyTest.java
│ │ │ ├── config/
│ │ │ │ └── EC2HttpApiModuleExpectTest.java
│ │ │ ├── features/
│ │ │ │ ├── AMIApiExpectTest.java
│ │ │ │ ├── AMIApiLiveTest.java
│ │ │ │ ├── AMIApiTest.java
│ │ │ │ ├── AvailabilityZoneAndRegionApiLiveTest.java
│ │ │ │ ├── AvailabilityZoneAndRegionApiTest.java
│ │ │ │ ├── BaseEC2ApiTest.java
│ │ │ │ ├── EC2ElasticBlockStoreApiExpectTest.java
│ │ │ │ ├── ElasticBlockStoreApiLiveTest.java
│ │ │ │ ├── ElasticBlockStoreApiTest.java
│ │ │ │ ├── ElasticIPAddressApiExpectTest.java
│ │ │ │ ├── ElasticIPAddressApiLiveTest.java
│ │ │ │ ├── ElasticIPAddressApiTest.java
│ │ │ │ ├── InstanceApiExpectTest.java
│ │ │ │ ├── InstanceApiLiveTest.java
│ │ │ │ ├── InstanceApiTest.java
│ │ │ │ ├── KeyPairApiExpectTest.java
│ │ │ │ ├── KeyPairApiLiveTest.java
│ │ │ │ ├── KeyPairApiTest.java
│ │ │ │ ├── SecurityGroupApiExpectTest.java
│ │ │ │ ├── SecurityGroupApiLiveTest.java
│ │ │ │ ├── SecurityGroupApiTest.java
│ │ │ │ ├── SubnetApiExpectTest.java
│ │ │ │ ├── SubnetApiLiveTest.java
│ │ │ │ ├── TagApiExpectTest.java
│ │ │ │ ├── WindowsApiExpectTest.java
│ │ │ │ ├── WindowsApiLiveTest.java
│ │ │ │ ├── WindowsApiTest.java
│ │ │ │ └── internal/
│ │ │ │ └── BaseTagApiLiveTest.java
│ │ │ ├── functions/
│ │ │ │ ├── ConvertUnencodedBytesToBase64EncodedStringTest.java
│ │ │ │ └── EncodedRSAPublicKeyToBase64Test.java
│ │ │ ├── internal/
│ │ │ │ ├── BaseEC2ApiExpectTest.java
│ │ │ │ ├── BaseEC2ApiLiveTest.java
│ │ │ │ ├── BaseEC2ApiMockTest.java
│ │ │ │ └── BaseEC2ExpectTest.java
│ │ │ ├── options/
│ │ │ │ ├── BundleInstanceS3StorageOptionsTest.java
│ │ │ │ ├── CreateImageOptionsTest.java
│ │ │ │ ├── CreateSnapshotOptionsTest.java
│ │ │ │ ├── CreateVolumeOptionsTest.java
│ │ │ │ ├── DescribeImagesOptionsTest.java
│ │ │ │ ├── DescribeSnapshotsOptionsTest.java
│ │ │ │ ├── DetachVolumeOptionsTest.java
│ │ │ │ ├── RegisterImageBackedByEbsOptionsTest.java
│ │ │ │ ├── RegisterImageOptionsTest.java
│ │ │ │ └── RunInstancesOptionsTest.java
│ │ │ ├── parse/
│ │ │ │ ├── DescribeSubnetsResponseTest.java
│ │ │ │ ├── DescribeTagsResponseTest.java
│ │ │ │ └── GetPasswordDataResponseTest.java
│ │ │ ├── predicates/
│ │ │ │ └── VolumeDetachedTest.java
│ │ │ ├── suppliers/
│ │ │ │ ├── DescribeAvailabilityZonesInRegionMockTest.java
│ │ │ │ └── DescribeRegionsForRegionURIsMockTest.java
│ │ │ ├── util/
│ │ │ │ ├── IpPermissionsTest.java
│ │ │ │ └── TagsTest.java
│ │ │ └── xml/
│ │ │ ├── AllocateAddressResponseHandlerTest.java
│ │ │ ├── AttachmentHandlerTest.java
│ │ │ ├── BaseEC2HandlerTest.java
│ │ │ ├── BlockDeviceMappingHandlerTest.java
│ │ │ ├── BundleTaskHandlerTest.java
│ │ │ ├── CreateVolumeResponseHandlerTest.java
│ │ │ ├── DescribeAddressesResponseHandlerTest.java
│ │ │ ├── DescribeAvailabilityZonesResponseHandlerTest.java
│ │ │ ├── DescribeBundleTasksResponseHandlerTest.java
│ │ │ ├── DescribeImagesResponseHandlerTest.java
│ │ │ ├── DescribeInstanceAttributeTest.java
│ │ │ ├── DescribeInstancesResponseHandlerTest.java
│ │ │ ├── DescribeKeyPairsResponseHandlerTest.java
│ │ │ ├── DescribeRegionsResponseHandlerTest.java
│ │ │ ├── DescribeSecurityGroupsResponseHandlerTest.java
│ │ │ ├── DescribeSnapshotsResponseHandlerTest.java
│ │ │ ├── DescribeVolumesResponseHandlerTest.java
│ │ │ ├── GetConsoleOutputResponseHandlerTest.java
│ │ │ ├── InstanceStateChangeHandlerTest.java
│ │ │ ├── KeyPairResponseHandlerTest.java
│ │ │ ├── PermissionHandlerTest.java
│ │ │ ├── RunInstancesResponseHandlerTest.java
│ │ │ └── SnapshotHandlerTest.java
│ │ └── resources/
│ │ ├── allocate_address.xml
│ │ ├── amzn_images.xml
│ │ ├── attach.xml
│ │ ├── authorize_securitygroup_ingress_response.xml
│ │ ├── availabilityZones-ap-northeast-1.xml
│ │ ├── availabilityZones-ap-southeast-1.xml
│ │ ├── availabilityZones-eu-west-1.xml
│ │ ├── availabilityZones-sa-east-1.xml
│ │ ├── availabilityZones-us-east-1.xml
│ │ ├── availabilityZones-us-west-1.xml
│ │ ├── availabilityZones-us-west-2.xml
│ │ ├── availabilityZones.xml
│ │ ├── bundle_instance.xml
│ │ ├── cancel_bundle_task.xml
│ │ ├── create_keypair.xml
│ │ ├── created_securitygroup.xml
│ │ ├── created_snapshot.xml
│ │ ├── created_volume.xml
│ │ ├── delete_keypair.xml
│ │ ├── delete_placementgroup.xml
│ │ ├── delete_securitygroup.xml
│ │ ├── describe_addresses.xml
│ │ ├── describe_addresses_single.xml
│ │ ├── describe_addresses_with_tags.xml
│ │ ├── describe_bundle_tasks.xml
│ │ ├── describe_image_attribute_blockDeviceMapping.xml
│ │ ├── describe_image_attribute_launchPermission.xml
│ │ ├── describe_images.xml
│ │ ├── describe_images_ebs.xml
│ │ ├── describe_images_imageextension0.xml
│ │ ├── describe_images_imageextension1.xml
│ │ ├── describe_images_imageextension2.xml
│ │ ├── describe_images_nova.xml
│ │ ├── describe_images_tags.xml
│ │ ├── describe_images_windows.xml
│ │ ├── describe_instances.xml
│ │ ├── describe_instances_ebs.xml
│ │ ├── describe_instances_empty.xml
│ │ ├── describe_instances_multiple.xml
│ │ ├── describe_instances_running-1.xml
│ │ ├── describe_instances_running-named.xml
│ │ ├── describe_instances_running.xml
│ │ ├── describe_instances_running_securitygroups.xml
│ │ ├── describe_instances_three_ids.xml
│ │ ├── describe_keypairs.xml
│ │ ├── describe_keypairs_jcloudssingle.xml
│ │ ├── describe_securitygroups.xml
│ │ ├── describe_securitygroups_empty.xml
│ │ ├── describe_securitygroups_extension_cidr.xml
│ │ ├── describe_securitygroups_extension_group.xml
│ │ ├── describe_securitygroups_extension_new.xml
│ │ ├── describe_securitygroups_extension_single.xml
│ │ ├── describe_snapshots.xml
│ │ ├── describe_subnets.xml
│ │ ├── describe_tags.xml
│ │ ├── describe_volumes.xml
│ │ ├── describe_volumes_single.xml
│ │ ├── disableApiTermination.xml
│ │ ├── get_console_output_response.xml
│ │ ├── get_passworddata.xml
│ │ ├── instanceInitiatedShutdownBehavior.xml
│ │ ├── instanceType.xml
│ │ ├── log4j.xml
│ │ ├── new_instance.xml
│ │ ├── new_securitygroup.xml
│ │ ├── ramdisk.xml
│ │ ├── regionEndpoints-additional.xml
│ │ ├── regionEndpoints-all.xml
│ │ ├── regionEndpoints.xml
│ │ ├── run_instances.xml
│ │ ├── run_instances_cloudbridge.xml
│ │ ├── run_instances_three.xml
│ │ ├── start_instances.xml
│ │ ├── stop_instances.xml
│ │ ├── terminate_instances.xml
│ │ └── userData.xml
│ ├── elasticstack/
│ │ ├── README.txt
│ │ ├── bnd.bnd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── elasticstack/
│ │ │ ├── ElasticStackApi.java
│ │ │ ├── ElasticStackApiMetadata.java
│ │ │ ├── binders/
│ │ │ │ ├── BindDriveDataToPlainTextString.java
│ │ │ │ ├── BindDriveToPlainTextString.java
│ │ │ │ └── BindServerToPlainTextString.java
│ │ │ ├── compute/
│ │ │ │ ├── ElasticStackComputeServiceAdapter.java
│ │ │ │ ├── config/
│ │ │ │ │ └── ElasticStackComputeServiceContextModule.java
│ │ │ │ └── functions/
│ │ │ │ ├── ServerInfoToNodeMetadata.java
│ │ │ │ ├── StandardDriveToWellKnownImage.java
│ │ │ │ └── WellKnownImageToImage.java
│ │ │ ├── config/
│ │ │ │ └── ElasticStackHttpApiModule.java
│ │ │ ├── domain/
│ │ │ │ ├── BlockDevice.java
│ │ │ │ ├── ClaimType.java
│ │ │ │ ├── CreateDriveRequest.java
│ │ │ │ ├── Device.java
│ │ │ │ ├── Drive.java
│ │ │ │ ├── DriveData.java
│ │ │ │ ├── DriveInfo.java
│ │ │ │ ├── DriveMetrics.java
│ │ │ │ ├── DriveStatus.java
│ │ │ │ ├── IDEDevice.java
│ │ │ │ ├── ImageConversionType.java
│ │ │ │ ├── Item.java
│ │ │ │ ├── MediaType.java
│ │ │ │ ├── Model.java
│ │ │ │ ├── NIC.java
│ │ │ │ ├── SCSIDevice.java
│ │ │ │ ├── Server.java
│ │ │ │ ├── ServerInfo.java
│ │ │ │ ├── ServerMetrics.java
│ │ │ │ ├── ServerStatus.java
│ │ │ │ ├── StandardDrive.java
│ │ │ │ ├── VNC.java
│ │ │ │ └── WellKnownImage.java
│ │ │ ├── functions/
│ │ │ │ ├── BaseDriveToMap.java
│ │ │ │ ├── CreateDriveRequestToMap.java
│ │ │ │ ├── DriveDataToMap.java
│ │ │ │ ├── KeyValuesDelimitedByBlankLinesToDriveInfo.java
│ │ │ │ ├── KeyValuesDelimitedByBlankLinesToServerInfo.java
│ │ │ │ ├── ListOfKeyValuesDelimitedByBlankLinesToDriveInfoSet.java
│ │ │ │ ├── ListOfKeyValuesDelimitedByBlankLinesToListOfMaps.java
│ │ │ │ ├── ListOfKeyValuesDelimitedByBlankLinesToServerInfoSet.java
│ │ │ │ ├── ListOfKeyValuesDelimitedByBlankLinesToStandardDriveSet.java
│ │ │ │ ├── ListOfMapsToListOfKeyValuesDelimitedByBlankLines.java
│ │ │ │ ├── MapToDevices.java
│ │ │ │ ├── MapToDriveInfo.java
│ │ │ │ ├── MapToDriveMetrics.java
│ │ │ │ ├── MapToNICs.java
│ │ │ │ ├── MapToServerInfo.java
│ │ │ │ ├── MapToServerMetrics.java
│ │ │ │ ├── MapToStandardDrive.java
│ │ │ │ ├── ReturnPayload.java
│ │ │ │ ├── ServerToMap.java
│ │ │ │ └── SplitNewlines.java
│ │ │ ├── handlers/
│ │ │ │ └── ElasticStackErrorHandler.java
│ │ │ ├── predicates/
│ │ │ │ └── DriveClaimed.java
│ │ │ ├── reference/
│ │ │ │ └── ElasticStackConstants.java
│ │ │ ├── suppliers/
│ │ │ │ ├── StandardDiskImageSupplier.java
│ │ │ │ └── WellKnownImageSupplier.java
│ │ │ └── util/
│ │ │ └── Servers.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── elasticstack/
│ │ │ ├── ElasticStackApiLiveTest.java
│ │ │ ├── ElasticStackApiMetadataTest.java
│ │ │ ├── ElasticStackApiTest.java
│ │ │ ├── ElasticStackMockTest.java
│ │ │ ├── binders/
│ │ │ │ ├── BindDriveDataToPlainTextStringTest.java
│ │ │ │ ├── BindDriveToPlainTextStringTest.java
│ │ │ │ └── BindServerToPlainTextStringTest.java
│ │ │ ├── compute/
│ │ │ │ ├── ElasticStackComputeServiceAdapterTest.java
│ │ │ │ ├── ElasticStackComputeServiceLiveTest.java
│ │ │ │ └── functions/
│ │ │ │ ├── GetImageIdFromServerTest.java
│ │ │ │ └── StandardDriveToWellKnownImageTest.java
│ │ │ ├── functions/
│ │ │ │ ├── BaseDriveToMapTest.java
│ │ │ │ ├── CreateDriveRequestToMapTest.java
│ │ │ │ ├── DriveDataToMapTest.java
│ │ │ │ ├── KeyValuesDelimitedByBlankLinesToDriveInfoTest.java
│ │ │ │ ├── KeyValuesDelimitedByBlankLinesToServerInfoTest.java
│ │ │ │ ├── ListOfKeyValuesDelimitedByBlankLinesToDriveInfoSetTest.java
│ │ │ │ ├── ListOfKeyValuesDelimitedByBlankLinesToListOfMapsTest.java
│ │ │ │ ├── ListOfKeyValuesDelimitedByBlankLinesToServerInfoSetTest.java
│ │ │ │ ├── ListOfKeyValuesDelimitedByBlankLinesToStandardDriveSetTest.java
│ │ │ │ ├── ListOfMapsToListOfKeyValuesDelimitedByBlankLinesTest.java
│ │ │ │ ├── MapToDriveInfoTest.java
│ │ │ │ ├── MapToServerInfoTest.java
│ │ │ │ ├── MapToStandardDriveTest.java
│ │ │ │ ├── ServerToMapTest.java
│ │ │ │ └── SplitNewlinesTest.java
│ │ │ ├── handlers/
│ │ │ │ └── ElasticStackErrorHandlerTest.java
│ │ │ └── suppliers/
│ │ │ └── MockStandardDiskImageSupplier.java
│ │ └── resources/
│ │ ├── create_drive.txt
│ │ ├── create_server.txt
│ │ ├── drive.txt
│ │ ├── drive_data.txt
│ │ ├── log4j.xml
│ │ ├── new_server.txt
│ │ ├── new_server2.txt
│ │ ├── server2.txt
│ │ ├── servers.txt
│ │ ├── standard_drive.txt
│ │ ├── standard_drives.txt
│ │ ├── standard_drives_uuids.txt
│ │ └── uuids.txt
│ ├── filesystem/
│ │ ├── README.txt
│ │ ├── bnd.bnd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── filesystem/
│ │ │ ├── FilesystemApiMetadata.java
│ │ │ ├── config/
│ │ │ │ └── FilesystemBlobStoreContextModule.java
│ │ │ ├── predicates/
│ │ │ │ └── validators/
│ │ │ │ ├── FilesystemBlobKeyValidator.java
│ │ │ │ ├── FilesystemContainerNameValidator.java
│ │ │ │ └── internal/
│ │ │ │ ├── FilesystemBlobKeyValidatorImpl.java
│ │ │ │ └── FilesystemContainerNameValidatorImpl.java
│ │ │ ├── reference/
│ │ │ │ └── FilesystemConstants.java
│ │ │ ├── strategy/
│ │ │ │ └── internal/
│ │ │ │ └── FilesystemStorageStrategyImpl.java
│ │ │ └── util/
│ │ │ ├── Utils.java
│ │ │ └── internal/
│ │ │ └── FileSystemBlobUtilsImpl.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── filesystem/
│ │ │ ├── FilesystemApiMetadataTest.java
│ │ │ ├── FilesystemBlobStoreTest.java
│ │ │ ├── integration/
│ │ │ │ ├── FilesystemBlobIntegrationTest.java
│ │ │ │ ├── FilesystemContainerIntegrationTest.java
│ │ │ │ └── FilesystemServiceIntegrationTest.java
│ │ │ ├── predicates/
│ │ │ │ └── validators/
│ │ │ │ └── internal/
│ │ │ │ ├── FilesystemBlobKeyValidatorTest.java
│ │ │ │ └── FilesystemContainerNameValidatorTest.java
│ │ │ ├── strategy/
│ │ │ │ └── internal/
│ │ │ │ └── FilesystemStorageStrategyImplTest.java
│ │ │ └── utils/
│ │ │ └── TestUtils.java
│ │ └── resources/
│ │ └── logging.properties
│ ├── glacier/
│ │ ├── README.md
│ │ ├── bnd.bnd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── glacier/
│ │ │ ├── GlacierApiMetadata.java
│ │ │ ├── GlacierClient.java
│ │ │ ├── GlacierResponseException.java
│ │ │ ├── binders/
│ │ │ │ ├── BindArchiveOutputRangeToHeaders.java
│ │ │ │ ├── BindArchiveSizeToHeaders.java
│ │ │ │ ├── BindContentRangeToHeaders.java
│ │ │ │ ├── BindDescriptionToHeaders.java
│ │ │ │ ├── BindHashesToHeaders.java
│ │ │ │ ├── BindJobRequestToJsonPayload.java
│ │ │ │ ├── BindMultipartTreeHashToHeaders.java
│ │ │ │ └── BindPartSizeToHeaders.java
│ │ │ ├── blobstore/
│ │ │ │ ├── GlacierBlobStore.java
│ │ │ │ ├── config/
│ │ │ │ │ └── GlacierBlobStoreContextModule.java
│ │ │ │ ├── functions/
│ │ │ │ │ ├── ArchiveMetadataCollectionToStorageMetadata.java
│ │ │ │ │ ├── ListContainerOptionsToInventoryRetrievalJobRequest.java
│ │ │ │ │ ├── PaginatedVaultCollectionToStorageMetadata.java
│ │ │ │ │ └── VaultMetadataToStorageMetadata.java
│ │ │ │ └── strategy/
│ │ │ │ ├── MultipartUploadStrategy.java
│ │ │ │ ├── PayloadSlice.java
│ │ │ │ ├── PollingStrategy.java
│ │ │ │ ├── SlicingStrategy.java
│ │ │ │ └── internal/
│ │ │ │ ├── BasePollingStrategy.java
│ │ │ │ ├── BaseSlicingStrategy.java
│ │ │ │ ├── ClearVaultStrategy.java
│ │ │ │ └── SequentialMultipartUploadStrategy.java
│ │ │ ├── config/
│ │ │ │ ├── GlacierHttpApiModule.java
│ │ │ │ └── GlacierParserModule.java
│ │ │ ├── domain/
│ │ │ │ ├── ArchiveMetadata.java
│ │ │ │ ├── ArchiveMetadataCollection.java
│ │ │ │ ├── ArchiveRetrievalJobRequest.java
│ │ │ │ ├── GlacierError.java
│ │ │ │ ├── InventoryRetrievalJobRequest.java
│ │ │ │ ├── InventoryRetrievalParameters.java
│ │ │ │ ├── JobMetadata.java
│ │ │ │ ├── JobRequest.java
│ │ │ │ ├── JobStatus.java
│ │ │ │ ├── MultipartUploadMetadata.java
│ │ │ │ ├── PaginatedJobCollection.java
│ │ │ │ ├── PaginatedMultipartUploadCollection.java
│ │ │ │ ├── PaginatedVaultCollection.java
│ │ │ │ ├── PartMetadata.java
│ │ │ │ └── VaultMetadata.java
│ │ │ ├── fallbacks/
│ │ │ │ └── FalseOnIllegalArgumentException.java
│ │ │ ├── filters/
│ │ │ │ └── RequestAuthorizeSignature.java
│ │ │ ├── functions/
│ │ │ │ ├── GetPayloadFromHttpContent.java
│ │ │ │ ├── ParseArchiveIdHeader.java
│ │ │ │ ├── ParseArchiveMetadataCollectionFromHttpContent.java
│ │ │ │ ├── ParseJobIdHeader.java
│ │ │ │ ├── ParseJobMetadataFromHttpContent.java
│ │ │ │ ├── ParseJobMetadataListFromHttpContent.java
│ │ │ │ ├── ParseMultipartUploadIdHeader.java
│ │ │ │ ├── ParseMultipartUploadListFromHttpContent.java
│ │ │ │ ├── ParseMultipartUploadPartListFromHttpContent.java
│ │ │ │ ├── ParseMultipartUploadTreeHashHeader.java
│ │ │ │ ├── ParseVaultMetadataFromHttpContent.java
│ │ │ │ └── ParseVaultMetadataListFromHttpContent.java
│ │ │ ├── handlers/
│ │ │ │ └── ParseGlacierErrorFromJsonContent.java
│ │ │ ├── options/
│ │ │ │ └── PaginationOptions.java
│ │ │ ├── predicates/
│ │ │ │ └── validators/
│ │ │ │ ├── DescriptionValidator.java
│ │ │ │ ├── PartSizeValidator.java
│ │ │ │ ├── PayloadValidator.java
│ │ │ │ └── VaultNameValidator.java
│ │ │ ├── reference/
│ │ │ │ └── GlacierHeaders.java
│ │ │ └── util/
│ │ │ ├── AWSRequestSignerV4.java
│ │ │ ├── ContentRange.java
│ │ │ └── TreeHash.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── glacier/
│ │ │ ├── GlacierApiMetadataTest.java
│ │ │ ├── GlacierClientLiveTest.java
│ │ │ ├── GlacierClientLongLiveTest.java
│ │ │ ├── GlacierClientMockTest.java
│ │ │ ├── blobstore/
│ │ │ │ └── strategy/
│ │ │ │ └── internal/
│ │ │ │ ├── BaseSlicingStrategyTest.java
│ │ │ │ └── MultipartUploadStrategyMockTest.java
│ │ │ ├── predicates/
│ │ │ │ └── validators/
│ │ │ │ ├── DescriptionValidatorTest.java
│ │ │ │ ├── PartSizeValidatorTest.java
│ │ │ │ ├── PayloadValidatorTest.java
│ │ │ │ └── VaultNameValidatorTest.java
│ │ │ └── util/
│ │ │ ├── AWSRequestSignerV4Test.java
│ │ │ ├── ContentRangeTest.java
│ │ │ ├── TestUtils.java
│ │ │ └── TreeHashTest.java
│ │ └── resources/
│ │ ├── json/
│ │ │ ├── describeJobResponseBody.json
│ │ │ ├── describeVaultResponseBody.json
│ │ │ ├── getJobOutputResponseBody.json
│ │ │ ├── listJobsResponseBody.json
│ │ │ ├── listMultipartUploadsResponseBody.json
│ │ │ ├── listMultipartUploadsWithEmptyListResponseBody.json
│ │ │ ├── listPartsResponseBody.json
│ │ │ ├── listVaultsResponseBody.json
│ │ │ ├── listVaultsWithEmptyListResponseBody.json
│ │ │ └── listVaultsWithQueryParamsResponseBody.json
│ │ └── testng.xml
│ ├── oauth/
│ │ ├── README
│ │ ├── bnd.bnd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── oauth/
│ │ │ └── v2/
│ │ │ ├── AuthorizationApi.java
│ │ │ ├── OAuthFallbacks.java
│ │ │ ├── config/
│ │ │ │ ├── Authorization.java
│ │ │ │ ├── CertificateFingerprintSupplier.java
│ │ │ │ ├── CredentialType.java
│ │ │ │ ├── OAuthConfigFactory.java
│ │ │ │ ├── OAuthModule.java
│ │ │ │ ├── OAuthProperties.java
│ │ │ │ ├── OAuthScopes.java
│ │ │ │ └── PrivateKeySupplier.java
│ │ │ ├── domain/
│ │ │ │ ├── CertificateFingerprint.java
│ │ │ │ ├── Claims.java
│ │ │ │ ├── ClientCredentialsAuthArgs.java
│ │ │ │ ├── ClientCredentialsClaims.java
│ │ │ │ ├── ClientSecret.java
│ │ │ │ └── Token.java
│ │ │ ├── filters/
│ │ │ │ ├── BearerTokenFromCredentials.java
│ │ │ │ ├── ClientCredentialsJWTBearerTokenFlow.java
│ │ │ │ ├── ClientCredentialsSecretFlow.java
│ │ │ │ ├── JWTBearerTokenFlow.java
│ │ │ │ └── OAuthFilter.java
│ │ │ └── functions/
│ │ │ ├── ClaimsToAssertion.java
│ │ │ └── ClientCredentialsClaimsToAssertion.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── oauth/
│ │ │ └── v2/
│ │ │ ├── AuthorizationApiLiveTest.java
│ │ │ ├── AuthorizationApiMockTest.java
│ │ │ ├── OAuthTestUtils.java
│ │ │ ├── config/
│ │ │ │ └── PrivateKeySupplierTest.java
│ │ │ ├── filters/
│ │ │ │ └── TestJWTBearerTokenFlow.java
│ │ │ └── functions/
│ │ │ └── ClaimsToAssertionTest.java
│ │ └── resources/
│ │ ├── logback.xml
│ │ ├── testcert.pem
│ │ └── testpk.pem
│ ├── openstack-cinder/
│ │ ├── bnd.bnd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── openstack/
│ │ │ └── cinder/
│ │ │ └── v1/
│ │ │ ├── CinderApi.java
│ │ │ ├── CinderApiMetadata.java
│ │ │ ├── config/
│ │ │ │ ├── CinderHttpApiModule.java
│ │ │ │ └── CinderParserModule.java
│ │ │ ├── domain/
│ │ │ │ ├── AvailabilityZone.java
│ │ │ │ ├── Snapshot.java
│ │ │ │ ├── SnapshotExtendedAttributes.java
│ │ │ │ ├── Volume.java
│ │ │ │ ├── VolumeAttachment.java
│ │ │ │ ├── VolumeQuota.java
│ │ │ │ ├── VolumeType.java
│ │ │ │ └── ZoneState.java
│ │ │ ├── extensions/
│ │ │ │ ├── AvailabilityZoneApi.java
│ │ │ │ └── ExtensionNamespaces.java
│ │ │ ├── features/
│ │ │ │ ├── QuotaApi.java
│ │ │ │ ├── SnapshotApi.java
│ │ │ │ ├── VolumeApi.java
│ │ │ │ └── VolumeTypeApi.java
│ │ │ ├── handlers/
│ │ │ │ └── CinderErrorHandler.java
│ │ │ ├── options/
│ │ │ │ ├── CreateSnapshotOptions.java
│ │ │ │ └── CreateVolumeOptions.java
│ │ │ └── predicates/
│ │ │ ├── SnapshotPredicates.java
│ │ │ └── VolumePredicates.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── openstack/
│ │ │ └── cinder/
│ │ │ └── v1/
│ │ │ ├── domain/
│ │ │ │ └── VolumeTest.java
│ │ │ ├── features/
│ │ │ │ ├── AvailabilityZoneApiExpectTest.java
│ │ │ │ ├── AvailabilityZoneApiLiveTest.java
│ │ │ │ ├── QuotasApiExpectTest.java
│ │ │ │ ├── QuotasApiLiveTest.java
│ │ │ │ ├── SnapshotApiExpectTest.java
│ │ │ │ ├── VolumeAndSnapshotApiLiveTest.java
│ │ │ │ ├── VolumeApiExpectTest.java
│ │ │ │ ├── VolumeTypeApiExpectTest.java
│ │ │ │ └── VolumeTypeApiLiveTest.java
│ │ │ └── internal/
│ │ │ ├── BaseCinderApiExpectTest.java
│ │ │ ├── BaseCinderApiLiveTest.java
│ │ │ └── BaseCinderExpectTest.java
│ │ └── resources/
│ │ ├── availability_zones_list.json
│ │ ├── quotas.json
│ │ ├── snapshot_create.json
│ │ ├── snapshot_create_response.json
│ │ ├── snapshot_get.json
│ │ ├── snapshot_list_details.json
│ │ ├── snapshot_list_simple.json
│ │ ├── volume_create.json
│ │ ├── volume_create_response.json
│ │ ├── volume_get.json
│ │ ├── volume_list_details.json
│ │ ├── volume_list_simple.json
│ │ ├── volume_type_get.json
│ │ └── volume_type_list_simple.json
│ ├── openstack-keystone/
│ │ ├── bnd.bnd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── openstack/
│ │ │ ├── keystone/
│ │ │ │ ├── auth/
│ │ │ │ │ ├── AuthHeaders.java
│ │ │ │ │ ├── AuthenticationApi.java
│ │ │ │ │ ├── config/
│ │ │ │ │ │ ├── Authentication.java
│ │ │ │ │ │ ├── AuthenticationModule.java
│ │ │ │ │ │ ├── CredentialType.java
│ │ │ │ │ │ └── CredentialTypes.java
│ │ │ │ │ ├── domain/
│ │ │ │ │ │ ├── ApiAccessKeyCredentials.java
│ │ │ │ │ │ ├── AuthInfo.java
│ │ │ │ │ │ ├── PasswordCredentials.java
│ │ │ │ │ │ ├── TenantOrDomainAndCredentials.java
│ │ │ │ │ │ └── TokenCredentials.java
│ │ │ │ │ ├── filters/
│ │ │ │ │ │ └── AuthenticateRequest.java
│ │ │ │ │ ├── functions/
│ │ │ │ │ │ ├── AuthenticateApiAccessKeyCredentials.java
│ │ │ │ │ │ ├── AuthenticatePasswordCredentials.java
│ │ │ │ │ │ ├── AuthenticateTokenCredentials.java
│ │ │ │ │ │ └── BaseAuthenticator.java
│ │ │ │ │ └── handlers/
│ │ │ │ │ └── RetryOnRenew.java
│ │ │ │ ├── catalog/
│ │ │ │ │ ├── ServiceEndpoint.java
│ │ │ │ │ ├── config/
│ │ │ │ │ │ ├── InternalUrlModule.java
│ │ │ │ │ │ ├── KeystoneAdminURLModule.java
│ │ │ │ │ │ └── ServiceCatalogModule.java
│ │ │ │ │ ├── functions/
│ │ │ │ │ │ ├── AdminEndpointResolutionStrategy.java
│ │ │ │ │ │ ├── AdminURL.java
│ │ │ │ │ │ ├── BaseEndpointResolutionStrategy.java
│ │ │ │ │ │ ├── InternalURL.java
│ │ │ │ │ │ ├── PublicURLOrInternal.java
│ │ │ │ │ │ ├── ReturnRegionOrProvider.java
│ │ │ │ │ │ ├── ServiceEndpointResolutionStrategy.java
│ │ │ │ │ │ └── ServiceEndpointToRegion.java
│ │ │ │ │ └── suppliers/
│ │ │ │ │ ├── LocationIdToURIFromServiceEndpointsForTypeAndVersion.java
│ │ │ │ │ ├── RegionIdToAdminURIFromServiceEndpointsForTypeAndVersion.java
│ │ │ │ │ ├── RegionIdToAdminURISupplier.java
│ │ │ │ │ └── RegionIdToURIFromServiceEndpointsForTypeAndVersion.java
│ │ │ │ ├── config/
│ │ │ │ │ └── KeystoneProperties.java
│ │ │ │ ├── v2_0/
│ │ │ │ │ ├── KeystoneApi.java
│ │ │ │ │ ├── KeystoneApiMetadata.java
│ │ │ │ │ ├── KeystoneFallbacks.java
│ │ │ │ │ ├── auth/
│ │ │ │ │ │ └── V2AuthenticationApi.java
│ │ │ │ │ ├── binders/
│ │ │ │ │ │ └── BindAuthToJsonPayload.java
│ │ │ │ │ ├── catalog/
│ │ │ │ │ │ └── V2ServiceCatalog.java
│ │ │ │ │ ├── config/
│ │ │ │ │ │ ├── KeystoneHttpApiModule.java
│ │ │ │ │ │ ├── KeystoneParserModule.java
│ │ │ │ │ │ └── NamespaceAliases.java
│ │ │ │ │ ├── domain/
│ │ │ │ │ │ ├── Access.java
│ │ │ │ │ │ ├── ApiMetadata.java
│ │ │ │ │ │ ├── Endpoint.java
│ │ │ │ │ │ ├── MediaType.java
│ │ │ │ │ │ ├── Role.java
│ │ │ │ │ │ ├── Service.java
│ │ │ │ │ │ ├── Tenant.java
│ │ │ │ │ │ ├── Token.java
│ │ │ │ │ │ └── User.java
│ │ │ │ │ ├── extensions/
│ │ │ │ │ │ ├── ExtensionAliases.java
│ │ │ │ │ │ ├── ExtensionNames.java
│ │ │ │ │ │ ├── ExtensionNamespaces.java
│ │ │ │ │ │ ├── RoleAdminApi.java
│ │ │ │ │ │ ├── ServiceAdminApi.java
│ │ │ │ │ │ ├── TenantAdminApi.java
│ │ │ │ │ │ └── UserAdminApi.java
│ │ │ │ │ ├── features/
│ │ │ │ │ │ ├── ServiceApi.java
│ │ │ │ │ │ ├── TenantApi.java
│ │ │ │ │ │ ├── TokenApi.java
│ │ │ │ │ │ └── UserApi.java
│ │ │ │ │ ├── functions/
│ │ │ │ │ │ └── internal/
│ │ │ │ │ │ ├── ParseServices.java
│ │ │ │ │ │ ├── ParseTenants.java
│ │ │ │ │ │ └── ParseUsers.java
│ │ │ │ │ ├── handlers/
│ │ │ │ │ │ └── KeystoneErrorHandler.java
│ │ │ │ │ └── options/
│ │ │ │ │ ├── CreateTenantOptions.java
│ │ │ │ │ ├── CreateUserOptions.java
│ │ │ │ │ ├── UpdateTenantOptions.java
│ │ │ │ │ └── UpdateUserOptions.java
│ │ │ │ └── v3/
│ │ │ │ ├── KeystoneApi.java
│ │ │ │ ├── KeystoneApiMetadata.java
│ │ │ │ ├── auth/
│ │ │ │ │ └── V3AuthenticationApi.java
│ │ │ │ ├── binders/
│ │ │ │ │ ├── BindAccessKeyAuthToJsonPayload.java
│ │ │ │ │ ├── BindAuthToJsonPayload.java
│ │ │ │ │ ├── BindPasswordAuthToJsonPayload.java
│ │ │ │ │ └── BindTokenAuthToJsonPayload.java
│ │ │ │ ├── catalog/
│ │ │ │ │ └── V3ServiceCatalog.java
│ │ │ │ ├── config/
│ │ │ │ │ └── KeystoneHttpApiModule.java
│ │ │ │ ├── domain/
│ │ │ │ │ ├── Auth.java
│ │ │ │ │ ├── Catalog.java
│ │ │ │ │ ├── Endpoint.java
│ │ │ │ │ ├── Group.java
│ │ │ │ │ ├── Link.java
│ │ │ │ │ ├── Project.java
│ │ │ │ │ ├── Region.java
│ │ │ │ │ ├── Token.java
│ │ │ │ │ └── User.java
│ │ │ │ ├── features/
│ │ │ │ │ ├── AuthApi.java
│ │ │ │ │ ├── CatalogApi.java
│ │ │ │ │ ├── ProjectApi.java
│ │ │ │ │ ├── RegionApi.java
│ │ │ │ │ └── UserApi.java
│ │ │ │ └── parsers/
│ │ │ │ └── ParseTokenFromHttpResponse.java
│ │ │ └── v2_0/
│ │ │ ├── ServiceType.java
│ │ │ ├── domain/
│ │ │ │ ├── Extension.java
│ │ │ │ ├── Limit.java
│ │ │ │ ├── Limits.java
│ │ │ │ ├── Link.java
│ │ │ │ ├── PaginatedCollection.java
│ │ │ │ ├── RateLimit.java
│ │ │ │ └── Resource.java
│ │ │ ├── features/
│ │ │ │ └── ExtensionApi.java
│ │ │ ├── functions/
│ │ │ │ └── PresentWhenExtensionAnnotationMatchesExtensionSet.java
│ │ │ ├── options/
│ │ │ │ └── PaginationOptions.java
│ │ │ ├── predicates/
│ │ │ │ ├── ExtensionPredicates.java
│ │ │ │ └── LinkPredicates.java
│ │ │ └── services/
│ │ │ ├── Compute.java
│ │ │ ├── Extension.java
│ │ │ ├── Identity.java
│ │ │ ├── Image.java
│ │ │ └── ObjectStore.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── openstack/
│ │ │ ├── keystone/
│ │ │ │ ├── auth/
│ │ │ │ │ ├── config/
│ │ │ │ │ │ ├── CredentialTypesTest.java
│ │ │ │ │ │ └── ProviderModuleExpectTest.java
│ │ │ │ │ ├── handlers/
│ │ │ │ │ │ └── RetryOnRenewTest.java
│ │ │ │ │ └── suppliers/
│ │ │ │ │ ├── LocationIdToURIFromAccessForTypeAndVersionTest.java
│ │ │ │ │ ├── RegionIdToAdminURIFromAccessForTypeAndVersionTest.java
│ │ │ │ │ └── RegionIdToURIFromAccessForTypeAndVersionTest.java
│ │ │ │ ├── catalog/
│ │ │ │ │ └── functions/
│ │ │ │ │ ├── AdminURLTest.java
│ │ │ │ │ ├── InternalURLTest.java
│ │ │ │ │ ├── PublicURLOrInternalTest.java
│ │ │ │ │ └── ReturnRegionOrProviderTest.java
│ │ │ │ ├── v2_0/
│ │ │ │ │ ├── KeystoneApiExpectTest.java
│ │ │ │ │ ├── KeystoneApiLiveTest.java
│ │ │ │ │ ├── extensions/
│ │ │ │ │ │ ├── RoleAdminApiLiveTest.java
│ │ │ │ │ │ ├── RoleAdminApiMockTest.java
│ │ │ │ │ │ ├── ServiceAdminApiLiveTest.java
│ │ │ │ │ │ ├── ServiceAdminApiMockTest.java
│ │ │ │ │ │ ├── TenantAdminApiLiveTest.java
│ │ │ │ │ │ ├── TenantAdminApiMockTest.java
│ │ │ │ │ │ ├── UserAdminApiLiveTest.java
│ │ │ │ │ │ └── UserAdminApiMockTest.java
│ │ │ │ │ ├── features/
│ │ │ │ │ │ ├── ServiceApiExpectTest.java
│ │ │ │ │ │ ├── ServiceApiLiveTest.java
│ │ │ │ │ │ ├── TenantApiExpectTest.java
│ │ │ │ │ │ ├── TenantApiLiveTest.java
│ │ │ │ │ │ ├── TokenApiExpectTest.java
│ │ │ │ │ │ ├── TokenApiLiveTest.java
│ │ │ │ │ │ ├── UserApiExpectTest.java
│ │ │ │ │ │ └── UserApiLiveTest.java
│ │ │ │ │ ├── functions/
│ │ │ │ │ │ └── internal/
│ │ │ │ │ │ └── ParseUsersTest.java
│ │ │ │ │ ├── internal/
│ │ │ │ │ │ ├── BaseKeystoneApiLiveTest.java
│ │ │ │ │ │ ├── BaseKeystoneRestApiExpectTest.java
│ │ │ │ │ │ └── KeystoneFixture.java
│ │ │ │ │ └── parse/
│ │ │ │ │ ├── ParseAccessTest.java
│ │ │ │ │ ├── ParseAdminAccessTest.java
│ │ │ │ │ ├── ParseDevstackApiMetadataTest.java
│ │ │ │ │ ├── ParseMinimalAccessTest.java
│ │ │ │ │ ├── ParseRackspaceAccessTest.java
│ │ │ │ │ ├── ParseRackspaceApiMetadataTest.java
│ │ │ │ │ ├── ParseRackspaceCryptoTokenAccessTest.java
│ │ │ │ │ └── ParseRandomEndpointVersionAccessTest.java
│ │ │ │ └── v3/
│ │ │ │ ├── auth/
│ │ │ │ │ ├── V3AuthenticationApiLiveTest.java
│ │ │ │ │ └── V3AuthenticationApiMockTest.java
│ │ │ │ ├── features/
│ │ │ │ │ ├── AuthApiLiveTest.java
│ │ │ │ │ ├── AuthApiMockTest.java
│ │ │ │ │ ├── CatalogApiLiveTest.java
│ │ │ │ │ ├── CatalogApiMockTest.java
│ │ │ │ │ ├── ProjectApiLiveTest.java
│ │ │ │ │ ├── ProjectApiMockTest.java
│ │ │ │ │ ├── RegionApiLiveTest.java
│ │ │ │ │ ├── RegionApiMockTest.java
│ │ │ │ │ ├── UserApiLiveTest.java
│ │ │ │ │ └── UserApiMockTest.java
│ │ │ │ └── internal/
│ │ │ │ ├── BaseV3KeystoneApiLiveTest.java
│ │ │ │ └── BaseV3KeystoneApiMockTest.java
│ │ │ └── v2_0/
│ │ │ ├── functions/
│ │ │ │ └── PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSetTest.java
│ │ │ ├── internal/
│ │ │ │ └── BaseOpenStackMockTest.java
│ │ │ ├── options/
│ │ │ │ └── PaginationOptionsTest.java
│ │ │ └── predicates/
│ │ │ ├── ExtensionPredicatesTest.java
│ │ │ └── LinkPredicatesTest.java
│ │ └── resources/
│ │ ├── access_minimal.json
│ │ ├── access_version_uids.json
│ │ ├── adminAuth.json
│ │ ├── admin_extensions.json
│ │ ├── devstackVersion.json
│ │ ├── keystoneAuthResponse.json
│ │ ├── keystoneAuthResponse_openstack.json
│ │ ├── logback.xml
│ │ ├── raxAuth.json
│ │ ├── raxCryptoAuth.json
│ │ ├── raxVersion.json
│ │ ├── role_create_response.json
│ │ ├── role_list_response.json
│ │ ├── service_create_response.json
│ │ ├── service_list_response.json
│ │ ├── tenant_create_response.json
│ │ ├── tenant_details.json
│ │ ├── tenant_list.json
│ │ ├── tenant_list_att.json
│ │ ├── tenant_update_response.json
│ │ ├── token_details.json
│ │ ├── user_create_response.json
│ │ ├── user_details.json
│ │ ├── user_endpoints.json
│ │ ├── user_list.json
│ │ ├── user_role_list.json
│ │ ├── user_tenant_role_list.json
│ │ ├── user_update_response.json
│ │ └── v3/
│ │ ├── auth-accesskey.json
│ │ ├── auth-password-project-scoped-id-domain-id.json
│ │ ├── auth-password-project-scoped-id-domain-name.json
│ │ ├── auth-password-project-scoped-name-domain-backwards-compat.json
│ │ ├── auth-password-project-scoped-name-domain-id.json
│ │ ├── auth-password-project-scoped-name-domain-name.json
│ │ ├── auth-password-scoped.json
│ │ ├── auth-password.json
│ │ ├── auth-token-scoped.json
│ │ ├── auth-token.json
│ │ ├── endpoints.json
│ │ ├── groups.json
│ │ ├── project.json
│ │ ├── projects.json
│ │ ├── region.json
│ │ ├── regions.json
│ │ ├── token.json
│ │ ├── user.json
│ │ └── users.json
│ ├── openstack-neutron/
│ │ ├── README.md
│ │ ├── bnd.bnd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── openstack/
│ │ │ └── neutron/
│ │ │ └── v2/
│ │ │ ├── NeutronApi.java
│ │ │ ├── NeutronApiMetadata.java
│ │ │ ├── config/
│ │ │ │ └── NeutronHttpApiModule.java
│ │ │ ├── domain/
│ │ │ │ ├── AddressPair.java
│ │ │ │ ├── AllocationPool.java
│ │ │ │ ├── CreateFirewall.java
│ │ │ │ ├── CreateFirewallPolicy.java
│ │ │ │ ├── CreateFirewallRule.java
│ │ │ │ ├── ExternalGatewayInfo.java
│ │ │ │ ├── ExtraDhcpOption.java
│ │ │ │ ├── Firewall.java
│ │ │ │ ├── FirewallPolicies.java
│ │ │ │ ├── FirewallPolicy.java
│ │ │ │ ├── FirewallRule.java
│ │ │ │ ├── FirewallRules.java
│ │ │ │ ├── Firewalls.java
│ │ │ │ ├── FloatingIP.java
│ │ │ │ ├── FloatingIPs.java
│ │ │ │ ├── HostRoute.java
│ │ │ │ ├── IP.java
│ │ │ │ ├── IPv6DHCPMode.java
│ │ │ │ ├── IpVersion.java
│ │ │ │ ├── Network.java
│ │ │ │ ├── NetworkSegment.java
│ │ │ │ ├── NetworkStatus.java
│ │ │ │ ├── NetworkType.java
│ │ │ │ ├── Networks.java
│ │ │ │ ├── Port.java
│ │ │ │ ├── Ports.java
│ │ │ │ ├── Router.java
│ │ │ │ ├── RouterInterface.java
│ │ │ │ ├── Routers.java
│ │ │ │ ├── Rule.java
│ │ │ │ ├── RuleDirection.java
│ │ │ │ ├── RuleEthertype.java
│ │ │ │ ├── RuleProtocol.java
│ │ │ │ ├── Rules.java
│ │ │ │ ├── SecurityGroup.java
│ │ │ │ ├── SecurityGroups.java
│ │ │ │ ├── Subnet.java
│ │ │ │ ├── Subnets.java
│ │ │ │ ├── UpdateFirewall.java
│ │ │ │ ├── UpdateFirewallPolicy.java
│ │ │ │ ├── UpdateFirewallRule.java
│ │ │ │ ├── VIFType.java
│ │ │ │ ├── VNICType.java
│ │ │ │ └── lbaas/
│ │ │ │ └── v1/
│ │ │ │ ├── HealthMonitor.java
│ │ │ │ ├── HealthMonitorStatus.java
│ │ │ │ ├── HealthMonitors.java
│ │ │ │ ├── HttpMethod.java
│ │ │ │ ├── LBaaSStatus.java
│ │ │ │ ├── Member.java
│ │ │ │ ├── Members.java
│ │ │ │ ├── Pool.java
│ │ │ │ ├── PoolStatus.java
│ │ │ │ ├── Pools.java
│ │ │ │ ├── ProbeType.java
│ │ │ │ ├── Protocol.java
│ │ │ │ ├── SessionPersistence.java
│ │ │ │ ├── VIP.java
│ │ │ │ └── VIPs.java
│ │ │ ├── extensions/
│ │ │ │ ├── ExtensionNamespaces.java
│ │ │ │ ├── FWaaSApi.java
│ │ │ │ ├── RouterApi.java
│ │ │ │ └── lbaas/
│ │ │ │ └── v1/
│ │ │ │ └── LBaaSApi.java
│ │ │ ├── fallbacks/
│ │ │ │ ├── EmptyFloatingIPsFallback.java
│ │ │ │ ├── EmptyNetworksFallback.java
│ │ │ │ ├── EmptyPortsFallback.java
│ │ │ │ ├── EmptyRoutersFallback.java
│ │ │ │ ├── EmptyRulesFallback.java
│ │ │ │ ├── EmptySecurityGroupsFallback.java
│ │ │ │ ├── EmptySubnetsFallback.java
│ │ │ │ └── lbaas/
│ │ │ │ └── v1/
│ │ │ │ ├── EmptyHealthMonitorsFallback.java
│ │ │ │ ├── EmptyMembersFallback.java
│ │ │ │ ├── EmptyPoolsFallback.java
│ │ │ │ └── EmptyVIPsFallback.java
│ │ │ ├── features/
│ │ │ │ ├── FloatingIPApi.java
│ │ │ │ ├── NetworkApi.java
│ │ │ │ ├── PortApi.java
│ │ │ │ ├── SecurityGroupApi.java
│ │ │ │ └── SubnetApi.java
│ │ │ ├── functions/
│ │ │ │ ├── FirewallPolicyToPagedIterable.java
│ │ │ │ ├── FirewallRuleToPagedIterable.java
│ │ │ │ ├── FirewallToPagedIterable.java
│ │ │ │ ├── FloatingIPsToPagedIterable.java
│ │ │ │ ├── NetworksToPagedIterable.java
│ │ │ │ ├── ParseFirewallPolicies.java
│ │ │ │ ├── ParseFirewallRules.java
│ │ │ │ ├── ParseFirewalls.java
│ │ │ │ ├── ParseFloatingIPs.java
│ │ │ │ ├── ParseNetworks.java
│ │ │ │ ├── ParsePorts.java
│ │ │ │ ├── ParseRouters.java
│ │ │ │ ├── ParseRules.java
│ │ │ │ ├── ParseSecurityGroups.java
│ │ │ │ ├── ParseSubnets.java
│ │ │ │ ├── PortsToPagedIterable.java
│ │ │ │ ├── RouterToPagedIterable.java
│ │ │ │ ├── RulesToPagedIterable.java
│ │ │ │ ├── SecurityGroupsToPagedIterable.java
│ │ │ │ ├── SubnetsToPagedIterable.java
│ │ │ │ ├── VersionAwareRegionToEndpoint.java
│ │ │ │ └── lbaas/
│ │ │ │ └── v1/
│ │ │ │ ├── HealthMonitorsToPagedIterable.java
│ │ │ │ ├── MembersToPagedIterable.java
│ │ │ │ ├── ParseHealthMonitors.java
│ │ │ │ ├── ParseMembers.java
│ │ │ │ ├── ParsePools.java
│ │ │ │ ├── ParseVIPs.java
│ │ │ │ ├── PoolsToPagedIterable.java
│ │ │ │ └── VIPsToPagedIterable.java
│ │ │ ├── handlers/
│ │ │ │ └── NeutronErrorHandler.java
│ │ │ └── options/
│ │ │ └── EmptyOptions.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── openstack/
│ │ │ └── neutron/
│ │ │ └── v2/
│ │ │ ├── NeutronApiMetadataTest.java
│ │ │ ├── extensions/
│ │ │ │ ├── FWaaSApiLiveTest.java
│ │ │ │ ├── FWaaSApiMockTest.java
│ │ │ │ ├── RouterApiLiveTest.java
│ │ │ │ ├── RouterApiMockTest.java
│ │ │ │ └── lbaas/
│ │ │ │ └── v1/
│ │ │ │ ├── LBaaSApiLiveTest.java
│ │ │ │ └── LBaaSApiMockTest.java
│ │ │ ├── features/
│ │ │ │ ├── ExtensionApiLiveTest.java
│ │ │ │ ├── ExtensionApiMockTest.java
│ │ │ │ ├── FloatingIPApiLiveTest.java
│ │ │ │ ├── FloatingIPApiMockTest.java
│ │ │ │ ├── NetworkApiLiveTest.java
│ │ │ │ ├── NetworkApiMockTest.java
│ │ │ │ ├── PortApiLiveTest.java
│ │ │ │ ├── PortApiMockTest.java
│ │ │ │ ├── SecurityGroupApiLiveTest.java
│ │ │ │ ├── SecurityGroupApiMockTest.java
│ │ │ │ ├── SubnetApiLiveTest.java
│ │ │ │ └── SubnetApiMockTest.java
│ │ │ ├── internal/
│ │ │ │ ├── BaseNeutronApiLiveTest.java
│ │ │ │ └── BaseNeutronApiMockTest.java
│ │ │ └── util/
│ │ │ ├── ClassUtil.java
│ │ │ └── PredicateUtil.java
│ │ └── resources/
│ │ ├── access.json
│ │ ├── extension_details.json
│ │ ├── extension_list.json
│ │ ├── extension_list_with_lbaas_v1_response.json
│ │ ├── extension_list_without_lbaas_v1_response.json
│ │ ├── firewall_create_request.json
│ │ ├── firewall_create_response.json
│ │ ├── firewall_get_response.json
│ │ ├── firewall_list_response.json
│ │ ├── firewall_policy_create_request.json
│ │ ├── firewall_policy_create_response.json
│ │ ├── firewall_policy_get_response.json
│ │ ├── firewall_policy_insert_rule_request.json
│ │ ├── firewall_policy_insert_rule_response.json
│ │ ├── firewall_policy_list_response.json
│ │ ├── firewall_rule_create_request.json
│ │ ├── firewall_rule_create_response.json
│ │ ├── firewall_rule_get_response.json
│ │ ├── firewall_rule_update_request.json
│ │ ├── firewall_rule_update_response.json
│ │ ├── firewall_update_request.json
│ │ ├── firewall_update_response.json
│ │ ├── floatingip_create_request.json
│ │ ├── floatingip_create_response.json
│ │ ├── floatingip_get_response.json
│ │ ├── floatingip_list_response.json
│ │ ├── floatingip_list_response_paged1.json
│ │ ├── floatingip_list_response_paged2.json
│ │ ├── floatingip_update_dissociate_request.json
│ │ ├── floatingip_update_dissociate_response.json
│ │ ├── floatingip_update_request.json
│ │ ├── floatingip_update_response.json
│ │ ├── lbaas/
│ │ │ └── v1/
│ │ │ ├── health_monitor_create_request.json
│ │ │ ├── health_monitor_create_response.json
│ │ │ ├── health_monitor_get_response.json
│ │ │ ├── health_monitor_list_response_paged1.json
│ │ │ ├── health_monitor_list_response_paged2.json
│ │ │ ├── health_monitor_update_request.json
│ │ │ ├── health_monitor_update_response.json
│ │ │ ├── member_create_request.json
│ │ │ ├── member_create_response.json
│ │ │ ├── member_get_response.json
│ │ │ ├── member_list_response_paged1.json
│ │ │ ├── member_list_response_paged2.json
│ │ │ ├── member_update_request.json
│ │ │ ├── member_update_response.json
│ │ │ ├── pool_associate_health_monitor_request.json
│ │ │ ├── pool_associate_health_monitor_response.json
│ │ │ ├── pool_create_request.json
│ │ │ ├── pool_create_response.json
│ │ │ ├── pool_get_response.json
│ │ │ ├── pool_list_response_paged1.json
│ │ │ ├── pool_list_response_paged2.json
│ │ │ ├── pool_update_request.json
│ │ │ ├── pool_update_response.json
│ │ │ ├── vip_create_request.json
│ │ │ ├── vip_create_response.json
│ │ │ ├── vip_get_response.json
│ │ │ ├── vip_list_response_paged1.json
│ │ │ ├── vip_list_response_paged2.json
│ │ │ ├── vip_update_request.json
│ │ │ └── vip_update_response.json
│ │ ├── list_networks.json
│ │ ├── list_ports.json
│ │ ├── list_routers.json
│ │ ├── list_subnets.json
│ │ ├── logback.xml
│ │ ├── network.json
│ │ ├── network_bulk_create_request.json
│ │ ├── network_bulk_create_response.json
│ │ ├── network_create_request.json
│ │ ├── network_create_response.json
│ │ ├── network_get_response.json
│ │ ├── network_list_response.json
│ │ ├── network_list_response_paged1.json
│ │ ├── network_list_response_paged2.json
│ │ ├── network_update_request.json
│ │ ├── network_update_response.json
│ │ ├── port.json
│ │ ├── port_create_bulk_request.json
│ │ ├── port_create_bulk_response.json
│ │ ├── port_create_request.json
│ │ ├── port_create_response.json
│ │ ├── port_get_response.json
│ │ ├── port_list_response.json
│ │ ├── port_list_response_paged1.json
│ │ ├── port_list_response_paged2.json
│ │ ├── port_update_request.json
│ │ ├── port_update_response.json
│ │ ├── router.json
│ │ ├── router_add_interface_port_request.json
│ │ ├── router_add_interface_request.json
│ │ ├── router_add_interface_response.json
│ │ ├── router_create_request.json
│ │ ├── router_create_response.json
│ │ ├── router_get_response.json
│ │ ├── router_list_response.json
│ │ ├── router_list_response_paged1.json
│ │ ├── router_list_response_paged2.json
│ │ ├── router_remove_interface_port_request.json
│ │ ├── router_remove_interface_subnet_request.json
│ │ ├── router_update_request.json
│ │ ├── router_update_response.json
│ │ ├── security_group_create_request.json
│ │ ├── security_group_create_response.json
│ │ ├── security_group_get_response.json
│ │ ├── security_group_list_response.json
│ │ ├── security_group_list_response_paged1.json
│ │ ├── security_group_list_response_paged2.json
│ │ ├── security_group_rule_create_request.json
│ │ ├── security_group_rule_create_response.json
│ │ ├── security_group_rule_get_response.json
│ │ ├── security_group_rule_list_response.json
│ │ ├── security_group_rule_list_response_paged1.json
│ │ ├── security_group_rule_list_response_paged2.json
│ │ ├── subnet.json
│ │ ├── subnet_bulk_create_request.json
│ │ ├── subnet_bulk_create_response.json
│ │ ├── subnet_create_request.json
│ │ ├── subnet_create_response.json
│ │ ├── subnet_get_response.json
│ │ ├── subnet_list_response.json
│ │ ├── subnet_list_response_pages1.json
│ │ ├── subnet_list_response_pages2.json
│ │ ├── subnet_update_request.json
│ │ └── subnet_update_response.json
│ ├── openstack-nova/
│ │ ├── bnd.bnd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── openstack/
│ │ │ └── nova/
│ │ │ └── v2_0/
│ │ │ ├── NovaApi.java
│ │ │ ├── NovaApiMetadata.java
│ │ │ ├── binders/
│ │ │ │ ├── BindConsoleToJsonPayload.java
│ │ │ │ ├── BindKeyPairToJsonPayload.java
│ │ │ │ ├── BindMetadataToJsonPayload.java
│ │ │ │ └── BindSecurityGroupRuleToJsonPayload.java
│ │ │ ├── compute/
│ │ │ │ ├── NovaComputeService.java
│ │ │ │ ├── NovaComputeServiceAdapter.java
│ │ │ │ ├── config/
│ │ │ │ │ └── NovaComputeServiceContextModule.java
│ │ │ │ ├── extensions/
│ │ │ │ │ ├── NeutronSecurityGroupExtension.java
│ │ │ │ │ ├── NovaImageExtension.java
│ │ │ │ │ └── NovaSecurityGroupExtension.java
│ │ │ │ ├── functions/
│ │ │ │ │ ├── AllocateAndAddFloatingIpToNode.java
│ │ │ │ │ ├── CleanupResources.java
│ │ │ │ │ ├── CreateSecurityGroupIfNeeded.java
│ │ │ │ │ ├── FlavorInRegionToHardware.java
│ │ │ │ │ ├── ImageInRegionToImage.java
│ │ │ │ │ ├── ImageToOperatingSystem.java
│ │ │ │ │ ├── NeutronSecurityGroupToSecurityGroup.java
│ │ │ │ │ ├── NovaSecurityGroupInRegionToSecurityGroup.java
│ │ │ │ │ ├── NovaSecurityGroupToSecurityGroup.java
│ │ │ │ │ ├── OrphanedGroupsByRegionId.java
│ │ │ │ │ ├── RemoveFloatingIpFromNodeAndDeallocate.java
│ │ │ │ │ └── ServerInRegionToNodeMetadata.java
│ │ │ │ ├── loaders/
│ │ │ │ │ ├── FindSecurityGroupOrCreate.java
│ │ │ │ │ └── LoadFloatingIpsForInstance.java
│ │ │ │ ├── options/
│ │ │ │ │ ├── NodeAndNovaTemplateOptions.java
│ │ │ │ │ └── NovaTemplateOptions.java
│ │ │ │ ├── predicates/
│ │ │ │ │ └── AllNodesInGroupTerminated.java
│ │ │ │ └── strategy/
│ │ │ │ └── ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java
│ │ │ ├── config/
│ │ │ │ ├── NovaHttpApiModule.java
│ │ │ │ ├── NovaParserModule.java
│ │ │ │ └── NovaProperties.java
│ │ │ ├── domain/
│ │ │ │ ├── Address.java
│ │ │ │ ├── BackupType.java
│ │ │ │ ├── BlockDeviceMapping.java
│ │ │ │ ├── Console.java
│ │ │ │ ├── FixedIP.java
│ │ │ │ ├── Flavor.java
│ │ │ │ ├── FloatingIP.java
│ │ │ │ ├── FloatingIPPool.java
│ │ │ │ ├── FloatingIpForServer.java
│ │ │ │ ├── Host.java
│ │ │ │ ├── HostAggregate.java
│ │ │ │ ├── HostResourceUsage.java
│ │ │ │ ├── Image.java
│ │ │ │ ├── Ingress.java
│ │ │ │ ├── InterfaceAttachment.java
│ │ │ │ ├── KeyPair.java
│ │ │ │ ├── Network.java
│ │ │ │ ├── PortInterface.java
│ │ │ │ ├── PortState.java
│ │ │ │ ├── Quota.java
│ │ │ │ ├── RebootType.java
│ │ │ │ ├── SecurityGroup.java
│ │ │ │ ├── SecurityGroupRule.java
│ │ │ │ ├── Server.java
│ │ │ │ ├── ServerCreated.java
│ │ │ │ ├── ServerExtendedAttributes.java
│ │ │ │ ├── ServerExtendedStatus.java
│ │ │ │ ├── ServerWithSecurityGroups.java
│ │ │ │ ├── SimpleServerUsage.java
│ │ │ │ ├── SimpleTenantUsage.java
│ │ │ │ ├── TenantIdAndName.java
│ │ │ │ ├── VirtualInterface.java
│ │ │ │ ├── Volume.java
│ │ │ │ ├── VolumeAttachment.java
│ │ │ │ ├── VolumeSnapshot.java
│ │ │ │ ├── VolumeType.java
│ │ │ │ ├── regionscoped/
│ │ │ │ │ ├── AvailabilityZone.java
│ │ │ │ │ ├── AvailabilityZoneDetails.java
│ │ │ │ │ ├── FlavorInRegion.java
│ │ │ │ │ ├── Hypervisor.java
│ │ │ │ │ ├── HypervisorDetails.java
│ │ │ │ │ ├── ImageInRegion.java
│ │ │ │ │ ├── NeutronSecurityGroupInRegion.java
│ │ │ │ │ ├── RegionAndId.java
│ │ │ │ │ ├── RegionAndName.java
│ │ │ │ │ ├── RegionSecurityGroupNameAndPorts.java
│ │ │ │ │ ├── SecurityGroupInRegion.java
│ │ │ │ │ ├── ServerInRegion.java
│ │ │ │ │ └── ZoneState.java
│ │ │ │ └── zonescoped/
│ │ │ │ ├── AvailabilityZone.java
│ │ │ │ ├── FlavorInRegion.java
│ │ │ │ ├── ImageInRegion.java
│ │ │ │ ├── RegionAndId.java
│ │ │ │ ├── RegionAndName.java
│ │ │ │ ├── RegionSecurityGroupNameAndPorts.java
│ │ │ │ ├── SecurityGroupInRegion.java
│ │ │ │ ├── ServerInRegion.java
│ │ │ │ └── ZoneState.java
│ │ │ ├── extensions/
│ │ │ │ ├── AttachInterfaceApi.java
│ │ │ │ ├── AvailabilityZoneApi.java
│ │ │ │ ├── ConsolesApi.java
│ │ │ │ ├── ExtensionAliases.java
│ │ │ │ ├── ExtensionNames.java
│ │ │ │ ├── ExtensionNamespaces.java
│ │ │ │ ├── FlavorExtraSpecsApi.java
│ │ │ │ ├── FloatingIPApi.java
│ │ │ │ ├── FloatingIPPoolApi.java
│ │ │ │ ├── HostAdministrationApi.java
│ │ │ │ ├── HostAggregateApi.java
│ │ │ │ ├── HypervisorApi.java
│ │ │ │ ├── KeyPairApi.java
│ │ │ │ ├── QuotaApi.java
│ │ │ │ ├── SecurityGroupApi.java
│ │ │ │ ├── ServerAdminApi.java
│ │ │ │ ├── ServerWithSecurityGroupsApi.java
│ │ │ │ ├── SimpleTenantUsageApi.java
│ │ │ │ ├── VirtualInterfaceApi.java
│ │ │ │ ├── VolumeApi.java
│ │ │ │ ├── VolumeAttachmentApi.java
│ │ │ │ └── VolumeTypeApi.java
│ │ │ ├── features/
│ │ │ │ ├── FlavorApi.java
│ │ │ │ ├── ImageApi.java
│ │ │ │ └── ServerApi.java
│ │ │ ├── functions/
│ │ │ │ ├── FieldValueResponseParsers.java
│ │ │ │ ├── OverLimitParser.java
│ │ │ │ ├── ParseImageIdFromLocationHeader.java
│ │ │ │ └── internal/
│ │ │ │ ├── OnlyMetadataValueOrNull.java
│ │ │ │ ├── ParseDiagnostics.java
│ │ │ │ ├── ParseFlavorDetails.java
│ │ │ │ ├── ParseFlavors.java
│ │ │ │ ├── ParseImageDetails.java
│ │ │ │ ├── ParseImages.java
│ │ │ │ ├── ParseKeyPairs.java
│ │ │ │ ├── ParseServerDetails.java
│ │ │ │ └── ParseServers.java
│ │ │ ├── handlers/
│ │ │ │ └── NovaErrorHandler.java
│ │ │ ├── options/
│ │ │ │ ├── CreateBackupOfServerOptions.java
│ │ │ │ ├── CreateServerOptions.java
│ │ │ │ ├── CreateVolumeOptions.java
│ │ │ │ ├── CreateVolumeSnapshotOptions.java
│ │ │ │ ├── CreateVolumeTypeOptions.java
│ │ │ │ ├── ListOptions.java
│ │ │ │ └── RebuildServerOptions.java
│ │ │ └── predicates/
│ │ │ ├── FindSecurityGroupWithNameAndReturnTrue.java
│ │ │ ├── ImagePredicates.java
│ │ │ ├── KeyPairPredicates.java
│ │ │ └── SecurityGroupPredicates.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── openstack/
│ │ │ └── nova/
│ │ │ └── v2_0/
│ │ │ ├── AccessKeyAndSecretKeyAndTenantIdAuthenticationExpectTest.java
│ │ │ ├── AccessKeyAndSecretKeyAndTenantNamePropertyAuthenticationExpectTest.java
│ │ │ ├── AccessKeyAndSecretKeyAuthenticationExpectTest.java
│ │ │ ├── EndpointIdIsRandomExpectTest.java
│ │ │ ├── NovaApiMetadataTest.java
│ │ │ ├── PasswordAuthenticationExpectTest.java
│ │ │ ├── PasswordAuthenticationWithTenantNameExpectTest.java
│ │ │ ├── compute/
│ │ │ │ ├── NovaComputeServiceAdapterExpectTest.java
│ │ │ │ ├── NovaComputeServiceExpectTest.java
│ │ │ │ ├── NovaComputeServiceLiveTest.java
│ │ │ │ ├── NovaWithNeutronComputeServiceLiveTest.java
│ │ │ │ ├── extensions/
│ │ │ │ │ ├── NeutronSecurityGroupExtensionLiveTest.java
│ │ │ │ │ ├── NovaImageExtensionExpectTest.java
│ │ │ │ │ ├── NovaImageExtensionLiveTest.java
│ │ │ │ │ ├── NovaSecurityGroupExtensionExpectTest.java
│ │ │ │ │ └── NovaSecurityGroupExtensionLiveTest.java
│ │ │ │ ├── functions/
│ │ │ │ │ ├── AllocateAndAddFloatingIpToNodeExpectTest.java
│ │ │ │ │ ├── FlavorInRegionToHardwareTest.java
│ │ │ │ │ ├── ImageInRegionToImageTest.java
│ │ │ │ │ ├── ImageToOperatingSystemTest.java
│ │ │ │ │ ├── NovaSecurityGroupInRegionToSecurityGroupTest.java
│ │ │ │ │ ├── OrphanedGroupsByRegionIdTest.java
│ │ │ │ │ └── ServerInRegionToNodeMetadataTest.java
│ │ │ │ ├── loaders/
│ │ │ │ │ ├── FindSecurityGroupInRegionOrCreateTest.java
│ │ │ │ │ └── LoadFloatingIpsForInstanceTest.java
│ │ │ │ └── options/
│ │ │ │ └── NovaTemplateOptionsTest.java
│ │ │ ├── config/
│ │ │ │ └── ImageAdapterTest.java
│ │ │ ├── extensions/
│ │ │ │ ├── AdminActionsApiExpectTest.java
│ │ │ │ ├── AdminActionsApiLiveTest.java
│ │ │ │ ├── AttachInterfaceApiExpectTest.java
│ │ │ │ ├── AvailabilityZoneApiExpectTest.java
│ │ │ │ ├── AvailabilityZonesApiLiveTest.java
│ │ │ │ ├── ConsolesApiLiveTest.java
│ │ │ │ ├── ConsolesApiMockTest.java
│ │ │ │ ├── DeprecatedAvailabilityZoneApiExpectTest.java
│ │ │ │ ├── DeprecatedAvailabilityZonesApiLiveTest.java
│ │ │ │ ├── ExtendedAvailabilityZoneExpectTest.java
│ │ │ │ ├── ExtendedAvailabilityZoneLiveTest.java
│ │ │ │ ├── FlavorExtraSpecsApiExpectTest.java
│ │ │ │ ├── FlavorExtraSpecsApiLiveTest.java
│ │ │ │ ├── FloatingIPApiExpectTest.java
│ │ │ │ ├── FloatingIPApiLiveTest.java
│ │ │ │ ├── FloatingIPPoolApiExpectTest.java
│ │ │ │ ├── FloatingIPPoolApiLiveTest.java
│ │ │ │ ├── HostAdministrationApiExpectTest.java
│ │ │ │ ├── HostAdministrationApiLiveTest.java
│ │ │ │ ├── HostAggregateApiExpectTest.java
│ │ │ │ ├── HostAggregateApiLiveTest.java
│ │ │ │ ├── HypervisorApiLiveTest.java
│ │ │ │ ├── HypervisorApiMockTest.java
│ │ │ │ ├── KeyPairApiExpectTest.java
│ │ │ │ ├── KeyPairApiLiveTest.java
│ │ │ │ ├── QuotaApiExpectTest.java
│ │ │ │ ├── QuotaApiLiveTest.java
│ │ │ │ ├── SecurityGroupApiExpectTest.java
│ │ │ │ ├── SecurityGroupApiLiveTest.java
│ │ │ │ ├── ServerWithSecurityGroupsApiExpectTest.java
│ │ │ │ ├── ServerWithSecurityGroupsApiLiveTest.java
│ │ │ │ ├── SimpleTenantUsageApiExpectTest.java
│ │ │ │ ├── SimpleTenantUsageApiLiveTest.java
│ │ │ │ ├── VirtualInterfaceApiExpectTest.java
│ │ │ │ ├── VirtualInterfaceApiLiveTest.java
│ │ │ │ ├── VolumeApiExpectTest.java
│ │ │ │ ├── VolumeApiLiveTest.java
│ │ │ │ ├── VolumeAttachmentApiExpectTest.java
│ │ │ │ ├── VolumeAttachmentApiLiveTest.java
│ │ │ │ ├── VolumeTypeApiExpectTest.java
│ │ │ │ └── VolumeTypeApiLiveTest.java
│ │ │ ├── features/
│ │ │ │ ├── ExtensionApiExpectTest.java
│ │ │ │ ├── ExtensionApiLiveTest.java
│ │ │ │ ├── FlavorApiExpectTest.java
│ │ │ │ ├── FlavorApiLiveTest.java
│ │ │ │ ├── ImageApiExpectTest.java
│ │ │ │ ├── ImageApiLiveTest.java
│ │ │ │ ├── ImageApiMockTest.java
│ │ │ │ ├── ServerApiExpectTest.java
│ │ │ │ └── ServerApiLiveTest.java
│ │ │ ├── functions/
│ │ │ │ ├── CreateSecurityGroupIfNeededTest.java
│ │ │ │ ├── FindSecurityGroupWithNameAndReturnTrueExpectTest.java
│ │ │ │ └── InternalURLLiveTest.java
│ │ │ ├── handlers/
│ │ │ │ └── NovaErrorHandlerTest.java
│ │ │ ├── internal/
│ │ │ │ ├── BaseNovaApiExpectTest.java
│ │ │ │ ├── BaseNovaApiLiveTest.java
│ │ │ │ ├── BaseNovaComputeServiceContextExpectTest.java
│ │ │ │ ├── BaseNovaComputeServiceExpectTest.java
│ │ │ │ └── BaseNovaExpectTest.java
│ │ │ ├── options/
│ │ │ │ ├── CreateServerOptionsTest.java
│ │ │ │ └── ListOptionsTest.java
│ │ │ ├── parse/
│ │ │ │ ├── ParseComputeServiceTypicalSecurityGroupTest.java
│ │ │ │ ├── ParseCreateFlavorTest.java
│ │ │ │ ├── ParseCreatedServerTest.java
│ │ │ │ ├── ParseExtensionListNormalTest.java
│ │ │ │ ├── ParseExtensionListTest.java
│ │ │ │ ├── ParseExtensionTest.java
│ │ │ │ ├── ParseFlavorListTest.java
│ │ │ │ ├── ParseFlavorTest.java
│ │ │ │ ├── ParseFloatingIPListTest.java
│ │ │ │ ├── ParseFloatingIPPoolListTest.java
│ │ │ │ ├── ParseFloatingIPTest.java
│ │ │ │ ├── ParseImageListTest.java
│ │ │ │ ├── ParseImageTest.java
│ │ │ │ ├── ParseKeyPairListTest.java
│ │ │ │ ├── ParseKeyPairTest.java
│ │ │ │ ├── ParseMetadataItemTest.java
│ │ │ │ ├── ParseMetadataListTest.java
│ │ │ │ ├── ParseMetadataUpdateTest.java
│ │ │ │ ├── ParseNOVNCConsoleTest.java
│ │ │ │ ├── ParseRDPConsoleTest.java
│ │ │ │ ├── ParseSPICEConsoleTest.java
│ │ │ │ ├── ParseSecurityGroupListTest.java
│ │ │ │ ├── ParseSecurityGroupTest.java
│ │ │ │ ├── ParseServerDetailsEssexTest.java
│ │ │ │ ├── ParseServerDetailsStatesTest.java
│ │ │ │ ├── ParseServerDiagnostics.java
│ │ │ │ ├── ParseServerListTest.java
│ │ │ │ ├── ParseServerTest.java
│ │ │ │ ├── ParseServerWithAddressExtensionsTest.java
│ │ │ │ ├── ParseServerWithAllExtensionsTest.java
│ │ │ │ ├── ParseServerWithInternetAddressesTest.java
│ │ │ │ ├── ParseServerWithoutImageTest.java
│ │ │ │ ├── ParseXVPVNCConsoleTest.java
│ │ │ │ └── PublicIpsInPrivateAddressBlockExpectTest.java
│ │ │ └── predicates/
│ │ │ ├── ImagePredicatesTest.java
│ │ │ └── SecurityGroupPredicatesTest.java
│ │ └── resources/
│ │ ├── access.json
│ │ ├── attach_interface_details.json
│ │ ├── attach_interfaces_list.json
│ │ ├── attachment_details.json
│ │ ├── attachment_list.json
│ │ ├── availability_zone_list.json
│ │ ├── extension_details.json
│ │ ├── extension_list.json
│ │ ├── extension_list_full.json
│ │ ├── extension_list_full_no_namespaces.json
│ │ ├── extension_list_normal.json
│ │ ├── extension_list_openstack.json
│ │ ├── flavor_details.json
│ │ ├── flavor_list.json
│ │ ├── flavor_list_detail.json
│ │ ├── flavor_list_detail_openstack.json
│ │ ├── flavor_new.json
│ │ ├── floatingip_details.json
│ │ ├── floatingip_list.json
│ │ ├── floatingippool_list.json
│ │ ├── host.json
│ │ ├── host_aggregate_details.json
│ │ ├── host_aggregate_list.json
│ │ ├── host_aggregate_with_host_details.json
│ │ ├── hosts_list.json
│ │ ├── hypervisor_details.json
│ │ ├── hypervisor_list.json
│ │ ├── image_active.json
│ │ ├── image_details.json
│ │ ├── image_details_with_block_device_mapping.json
│ │ ├── image_details_without_metadata.json
│ │ ├── image_list.json
│ │ ├── image_list_detail.json
│ │ ├── image_list_detail_imageextension.json
│ │ ├── image_list_detail_openstack.json
│ │ ├── image_list_with_block_device_mapping.json
│ │ ├── keypair_created_computeservice.json
│ │ ├── keypair_details.json
│ │ ├── keypair_list.json
│ │ ├── listAvailabilityZones.json
│ │ ├── logback-test.xml
│ │ ├── metadata_item.json
│ │ ├── metadata_list.json
│ │ ├── metadata_updated.json
│ │ ├── new_server.json
│ │ ├── new_server_config_drive.json
│ │ ├── new_server_disk_config_auto.json
│ │ ├── new_server_disk_config_manual.json
│ │ ├── new_server_in_zone.json
│ │ ├── new_server_networks_response.json
│ │ ├── new_server_no_adminpass.json
│ │ ├── new_server_nova_networks.json
│ │ ├── novnc_console.json
│ │ ├── quotas.json
│ │ ├── rdp_console.json
│ │ ├── securitygroup_created.json
│ │ ├── securitygroup_details.json
│ │ ├── securitygroup_details_computeservice_typical.json
│ │ ├── securitygroup_details_extension.json
│ │ ├── securitygroup_details_extension_norules.json
│ │ ├── securitygroup_details_port22.json
│ │ ├── securitygroup_list.json
│ │ ├── securitygroup_list_details_computeservice_typical.json
│ │ ├── securitygroup_list_extension.json
│ │ ├── securitygrouprule_created.json
│ │ ├── securitygrouprule_created_cidr.json
│ │ ├── securitygrouprule_created_group.json
│ │ ├── server_details.json
│ │ ├── server_details_devstack.json
│ │ ├── server_details_openstack.json
│ │ ├── server_details_suspended.json
│ │ ├── server_details_with_address_ext.json
│ │ ├── server_details_without_image.json
│ │ ├── server_diagnostics.json
│ │ ├── server_list.json
│ │ ├── server_list_details.json
│ │ ├── server_list_details_essex.json
│ │ ├── server_list_details_states.json
│ │ ├── server_public_ip_in_private.json
│ │ ├── server_with_security_groups.json
│ │ ├── server_with_security_groups_extension.json
│ │ ├── simple_tenant_usage.json
│ │ ├── simple_tenant_usages.json
│ │ ├── snapshot_details.json
│ │ ├── snapshot_list.json
│ │ ├── snapshot_list_detail.json
│ │ ├── spice_console.json
│ │ ├── virtual_interfaces_list.json
│ │ ├── volume_details.json
│ │ ├── volume_list.json
│ │ ├── volume_list_detail.json
│ │ ├── volume_type.json
│ │ ├── volume_type_extra_specs.json
│ │ ├── volume_type_list.json
│ │ └── xvpvnc_console.json
│ ├── openstack-nova-ec2/
│ │ ├── bnd.bnd
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── jclouds/
│ │ │ └── openstack/
│ │ │ └── nova/
│ │ │ └── ec2/
│ │ │ ├── NovaEC2Api.java
│ │ │ ├── NovaEC2ApiMetadata.java
│ │ │ ├── config/
│ │ │ │ ├── HyphenToNullIso8601Module.java
│ │ │ │ ├── NovaEC2ComputeServiceContextModule.java
│ │ │ │ └── NovaEC2HttpApiModule.java
│ │ │ ├── features/
│ │ │ │ └── NovaEC2KeyPairApi.java
│ │ │ ├── internal/
│ │ │ │ └── HyphenToNullIso8601Codec.java
│ │ │ ├── loaders/
│ │ │ │ └── NovaCreateSecurityGroupIfNeeded.java
│ │ │ ├── strategy/
│ │ │
================================================
FILE CONTENTS
================================================
================================================
FILE: .asf.yaml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
github:
description: The Java Multi-Cloud Toolkit
homepage: https://jclouds.apache.org/
labels:
- java
- library
- cloud
- jclouds
# Uncomment the following lines if at some point we feel like
# we want to control merges and pull request builds.
#
# enabled_merge_buttons:
# squash: true
# merge: false
# rebase: false
# protected_branches:
# master:
# required_status_checks:
# contexts:
# - build
# required_pull_request_reviews:
# required_approving_review_count: 1
================================================
FILE: .dir-locals.el
================================================
;; Licensed to the Apache Software Foundation (ASF) under one or more
;; contributor license agreements. See the NOTICE file distributed with
;; this work for additional information regarding copyright ownership.
;; The ASF licenses this file to You under the Apache License, Version 2.0
;; (the "License"); you may not use this file except in compliance with
;; the License. You may obtain a copy of the License at
;;
;; http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
((nil . ((c-basic-offset . 3))))
================================================
FILE: .gitattributes
================================================
* text eol=lf
*.cmd binary
================================================
FILE: .github/workflows/ci.yaml
================================================
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: CI
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v4
with:
java-version: "11"
distribution: temurin
cache: maven
- name: Build
run: mvn clean verify checkstyle:checkstyle -B -q -Dorg.slf4j.simpleLogger.defaultLogLevel=ERROR -Pdoc,src
================================================
FILE: .gitignore
================================================
# use glob syntax.
syntax: glob
target/
test-output/
bin/
.settings/
.classpath
.project
.idea/
*.iml
*.eml
*.ipr
*.iws
*.DS_STORE
TAGS
.metadata/
atlassian-ide-plugin.xml
.DS_Store
.java-version
.factorypath
.apt_generated
.apt_generated_tests
.checkstyle
nb-configuration.xml
nbactions.xml
/.nb-gradle/
dependency-reduced-pom.xml
.vscode
================================================
FILE: .mailmap
================================================
Adrian Cole <acole@.eng.vmware.com>
Adrian Cole <acole@twitter.com>
Adrian Cole <adrian.f.cole@3d8758e0-26b5-11de-8745-db77d3ebf521>
Adrian Cole <adrian.f.cole@gmail.com>
Adrian Cole <ferncam1@3d8758e0-26b5-11de-8745-db77d3ebf521>
Alex Yarmula <oleksiy.yarmula+hosting@gmail.com>
Alfredo Morresi <rainbowbreeze@gmx.com>
Alfredo Morresi <rainbowbreeze@pc-alfredo.(none)>
Andrea Turli <andrea@bigmac.local>
Andrea Turli <andrea.turli@.dir.svc.accenture.com>
Andrea Turli <Andrea_Turli@.dub.emea.dell.com>
Andrea Turli <andrea.turli@gmail.com>
Andrea Turli <toor@toor.(none)>
Andrei Savu <asavu@apache.org>
Andrew Phillips <sharedocs1@gmail.com@3d8758e0-26b5-11de-8745-db77d3ebf521>
Antoni Batchelli <tbatchelli@acm.org>
Barak Merimovich <barakme@gmail.com>
Carlos Sanchez <carlos@apache.org>
Dan Lo Bianco <dan.lobianco@cloudsoftcorp.com>
Dmitry Durnev <ddurnev@griddynamics.com>
Hans Hrasna <hans.hrasna@gmail.com>
Hunter Hutchinson <hunter.hutchinson@gmail.com>
Ilja Bobkevic <ilja.bobkevic@gmail.com>
Ivan Meredith <ivan@ivan.net.nz@3d8758e0-26b5-11de-8745-db77d3ebf521>
James Murty <jamurty@3d8758e0-26b5-11de-8745-db77d3ebf521>
Karthik Ganesan <karthikwrites@yahoo.com>
Nicholas Terry <nterry@familysearch.org>
Nirmal Fernando <nirmal@nirmal.(none)>
Seshu Pasam <github@pasam.com>
Shane Witbeck <shane@digitalsanctum.com>
Tibor Kiss <tibor.kiss@omixon.com>
Victor Galkin <vgalkin@griddynamics.net>
Vijay Kiran <mail@vijaykiran.com>
Zack Shoylev <zack.shoylev@rackspace.com>
================================================
FILE: CONTRIBUTING.md
================================================
Please review the [How to Contribute](https://cwiki.apache.org/confluence/display/JCLOUDS/Contribute) page for information on how to submit your patch and how the review process works.
Also make sure all the changes are aligned with the [Coding Standards](https://cwiki.apache.org/confluence/display/JCLOUDS/Writing+jclouds+Code) of the project.
Thanks!
The Apache jclouds team
================================================
FILE: README.md
================================================
jclouds
======
Apache jclouds is an open source multi-cloud toolkit for the Java platform that gives you the freedom to create applications that are portable across clouds while giving you full control to use cloud-specific features.
For more information about using or contributing to jclouds, please visit our website at [jclouds.apache.org](http://jclouds.apache.org/).
License
-------
Copyright (C) 2009-2022 The Apache Software Foundation
Licensed under the Apache License, Version 2.0
================================================
FILE: all/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.jclouds</groupId>
<artifactId>jclouds-project</artifactId>
<version>2.7.1-SNAPSHOT</version>
<relativePath>../project/pom.xml</relativePath>
</parent>
<artifactId>jclouds-all</artifactId>
<name>all</name>
<dependencies>
<dependency>
<groupId>org.apache.jclouds.api</groupId>
<artifactId>rackspace-cloudidentity</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.api</groupId>
<artifactId>openstack-cinder</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.api</groupId>
<artifactId>rackspace-clouddns</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>aws-cloudwatch</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>rackspace-cloudblockstorage-us</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>rackspace-cloudblockstorage-uk</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>rackspace-clouddns-us</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>rackspace-clouddns-uk</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>rackspace-clouddatabases-us</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>rackspace-clouddatabases-uk</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>aws-sqs</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>aws-sts</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>aws-route53</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>ultradns-ws</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>dynect</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.api</groupId>
<artifactId>chef</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>jclouds-allloadbalancer</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>jclouds-allcompute</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>jclouds-allblobstore</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
================================================
FILE: allblobstore/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.jclouds</groupId>
<artifactId>jclouds-project</artifactId>
<version>2.7.1-SNAPSHOT</version>
<relativePath>../project/pom.xml</relativePath>
</parent>
<artifactId>jclouds-allblobstore</artifactId>
<name>allblobstore</name>
<dependencies>
<dependency>
<groupId>org.apache.jclouds.api</groupId>
<artifactId>s3</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>aws-s3</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>azureblob</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.api</groupId>
<artifactId>atmos</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>b2</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.api</groupId>
<artifactId>glacier</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>google-cloud-storage</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.api</groupId>
<artifactId>openstack-swift</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>rackspace-cloudfiles-us</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>rackspace-cloudfiles-uk</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
================================================
FILE: allcompute/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.jclouds</groupId>
<artifactId>jclouds-project</artifactId>
<version>2.7.1-SNAPSHOT</version>
<relativePath>../project/pom.xml</relativePath>
</parent>
<artifactId>jclouds-allcompute</artifactId>
<name>allcompute</name>
<dependencies>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>aws-ec2</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.api</groupId>
<artifactId>openstack-nova</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.api</groupId>
<artifactId>openstack-nova-ec2</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.api</groupId>
<artifactId>byon</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.api</groupId>
<artifactId>ec2</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>gogrid</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.api</groupId>
<artifactId>elasticstack</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>elastichosts-lon-p</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>elastichosts-sat-p</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>elastichosts-lon-b</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>openhosting-east1</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>serverlove-z1-man</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>skalicloud-sdg-my</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>go2cloud-jhb1</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>softlayer</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.api</groupId>
<artifactId>cloudstack</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>rackspace-cloudservers-us</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>rackspace-cloudservers-uk</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>google-compute-engine</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>digitalocean2</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>profitbricks</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.api</groupId>
<artifactId>docker</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>packet</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>azurecompute-arm</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
================================================
FILE: allloadbalancer/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.jclouds</groupId>
<artifactId>jclouds-project</artifactId>
<version>2.7.1-SNAPSHOT</version>
<relativePath>../project/pom.xml</relativePath>
</parent>
<artifactId>jclouds-allloadbalancer</artifactId>
<name>allloadbalancer</name>
<dependencies>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>rackspace-cloudloadbalancers-uk</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>rackspace-cloudloadbalancers-us</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>
================================================
FILE: apis/atmos/README.txt
================================================
#
# The jclouds API for EMC's Atmos Online Storage (http://www.emccis.com/).
#
# TODO: Implementation status.
# TODO: Supported features.
# TODO: Usage example.
================================================
FILE: apis/atmos/bnd.bnd
================================================
Export-Package: \
org.jclouds.atmos.*;version="${project.version}";-noimport:=true
================================================
FILE: apis/atmos/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.jclouds</groupId>
<artifactId>jclouds-project</artifactId>
<version>2.7.1-SNAPSHOT</version>
<relativePath>../../project/pom.xml</relativePath>
</parent>
<groupId>org.apache.jclouds.api</groupId>
<artifactId>atmos</artifactId>
<name>jclouds atmos components</name>
<properties>
<test.atmos.endpoint>https://accesspoint.atmosonline.com</test.atmos.endpoint>
<test.atmos.api-version>1.3.0</test.atmos.api-version>
<test.atmos.build-version />
<test.atmos.identity>FIXME_IDENTITY</test.atmos.identity>
<test.atmos.credential>FIXME_CREDENTIAL</test.atmos.credential>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.jclouds</groupId>
<artifactId>jclouds-blobstore</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds</groupId>
<artifactId>jclouds-blobstore</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.jclouds</groupId>
<artifactId>jclouds-core</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.jclouds.driver</groupId>
<artifactId>jclouds-log4j</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.auto.service</groupId>
<artifactId>auto-service</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<profiles>
<profile>
<id>live</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<id>integration</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<systemPropertyVariables>
<jclouds.blobstore.httpstream.url>${jclouds.blobstore.httpstream.url}</jclouds.blobstore.httpstream.url>
<jclouds.blobstore.httpstream.md5>${jclouds.blobstore.httpstream.md5}</jclouds.blobstore.httpstream.md5>
<test.atmos.endpoint>${test.atmos.endpoint}</test.atmos.endpoint>
<test.atmos.api-version>${test.atmos.api-version}</test.atmos.api-version>
<test.atmos.build-version>${test.atmos.build-version}</test.atmos.build-version>
<test.atmos.identity>${test.atmos.identity}</test.atmos.identity>
<test.atmos.credential>${test.atmos.credential}</test.atmos.credential>
</systemPropertyVariables>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/AtmosApiMetadata.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos;
import static org.jclouds.Constants.PROPERTY_IDEMPOTENT_METHODS;
import static org.jclouds.blobstore.reference.BlobStoreConstants.PROPERTY_USER_METADATA_PREFIX;
import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS;
import static org.jclouds.reflect.Reflection2.typeToken;
import java.net.URI;
import java.util.Properties;
import org.jclouds.apis.ApiMetadata;
import org.jclouds.atmos.blobstore.config.AtmosBlobStoreContextModule;
import org.jclouds.atmos.config.AtmosHttpApiModule;
import org.jclouds.blobstore.BlobStoreContext;
import org.jclouds.rest.internal.BaseHttpApiMetadata;
import com.google.auto.service.AutoService;
import com.google.common.collect.ImmutableSet;
import com.google.inject.Module;
@AutoService(ApiMetadata.class)
public class AtmosApiMetadata extends BaseHttpApiMetadata {
private static Builder builder() {
return new Builder();
}
@Override
public Builder toBuilder() {
return builder().fromApiMetadata(this);
}
public AtmosApiMetadata() {
this(builder());
}
protected AtmosApiMetadata(Builder builder) {
super(builder);
}
public static Properties defaultProperties() {
Properties properties = BaseHttpApiMetadata.defaultProperties();
properties.setProperty(PROPERTY_REGIONS, "DEFAULT");
properties.setProperty(PROPERTY_USER_METADATA_PREFIX, "X-Object-Meta-");
properties.setProperty(PROPERTY_IDEMPOTENT_METHODS, "DELETE,GET,HEAD,OPTIONS,POST,PUT");
return properties;
}
public static class Builder extends BaseHttpApiMetadata.Builder<AtmosClient, Builder> {
protected Builder() {
super(AtmosClient.class);
id("atmos")
.name("EMC's Atmos API")
.identityName("Subtenant ID (UID)")
.credentialName("Shared Secret")
.documentation(URI.create("https://community.emc.com/docs/DOC-10508"))
.version("1.4.0")
.defaultEndpoint("https://accesspoint.atmosonline.com")
.defaultProperties(AtmosApiMetadata.defaultProperties())
.view(typeToken(BlobStoreContext.class))
.defaultModules(ImmutableSet.<Class<? extends Module>>of(AtmosHttpApiModule.class, AtmosBlobStoreContextModule.class));
}
@Override
public AtmosApiMetadata build() {
return new AtmosApiMetadata(this);
}
@Override
protected Builder self() {
return this;
}
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/AtmosClient.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos;
import static com.google.common.net.HttpHeaders.EXPECT;
import java.io.Closeable;
import java.net.URI;
import jakarta.inject.Named;
import jakarta.ws.rs.Consumes;
import jakarta.ws.rs.DELETE;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.HEAD;
import jakarta.ws.rs.POST;
import jakarta.ws.rs.PUT;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
import org.jclouds.atmos.binders.BindMetadataToHeaders;
import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.atmos.domain.BoundedSet;
import org.jclouds.atmos.domain.DirectoryEntry;
import org.jclouds.atmos.domain.SystemMetadata;
import org.jclouds.atmos.domain.UserMetadata;
import org.jclouds.atmos.fallbacks.TrueOn404FalseOnPathNotEmpty;
import org.jclouds.atmos.filters.SignRequest;
import org.jclouds.atmos.functions.AtmosObjectName;
import org.jclouds.atmos.functions.ParseDirectoryListFromContentAndHeaders;
import org.jclouds.atmos.functions.ParseObjectFromHeadersAndHttpContent;
import org.jclouds.atmos.functions.ParseSystemMetadataFromHeaders;
import org.jclouds.atmos.functions.ParseUserMetadataFromHeaders;
import org.jclouds.atmos.functions.ReturnTrueIfGroupACLIsOtherRead;
import org.jclouds.atmos.options.ListOptions;
import org.jclouds.atmos.options.PutOptions;
import org.jclouds.blobstore.BlobStoreFallbacks.NullOnKeyAlreadyExists;
import org.jclouds.blobstore.BlobStoreFallbacks.ThrowContainerNotFoundOn404;
import org.jclouds.blobstore.BlobStoreFallbacks.ThrowKeyNotFoundOn404;
import org.jclouds.http.functions.ParseURIFromListOrLocationHeaderIf20x;
import org.jclouds.http.options.GetOptions;
import org.jclouds.javax.annotation.Nullable;
import org.jclouds.rest.annotations.BinderParam;
import org.jclouds.rest.annotations.Fallback;
import org.jclouds.rest.annotations.Headers;
import org.jclouds.rest.annotations.ParamParser;
import org.jclouds.rest.annotations.QueryParams;
import org.jclouds.rest.annotations.RequestFilters;
import org.jclouds.rest.annotations.ResponseParser;
import com.google.inject.Provides;
/** Provides access to EMC Atmos Online Storage resources via their REST API. */
@RequestFilters(SignRequest.class)
@Path("/rest/namespace")
public interface AtmosClient extends Closeable {
@Provides
AtmosObject newObject();
@Named("ListDirectory")
@GET
@Path("/")
@ResponseParser(ParseDirectoryListFromContentAndHeaders.class)
@Consumes(MediaType.TEXT_XML)
BoundedSet<? extends DirectoryEntry> listDirectories(ListOptions... options);
@Named("ListDirectory")
@GET
@Path("/{directoryName}/")
@ResponseParser(ParseDirectoryListFromContentAndHeaders.class)
@Fallback(ThrowContainerNotFoundOn404.class)
@Consumes(MediaType.TEXT_XML)
@Headers(keys = "x-emc-include-meta", values = "1")
BoundedSet<? extends DirectoryEntry> listDirectory(
@PathParam("directoryName") String directoryName, ListOptions... options);
@Named("CreateDirectory")
@POST
@Path("/{directoryName}/")
@Fallback(NullOnKeyAlreadyExists.class)
@Produces(MediaType.APPLICATION_OCTET_STREAM)
@Consumes(MediaType.WILDCARD)
URI createDirectory(@PathParam("directoryName") String directoryName, PutOptions... options);
@Nullable
@Named("CreateObject")
@POST
@Path("/{parent}/{name}")
@Headers(keys = EXPECT, values = "100-continue")
@ResponseParser(ParseURIFromListOrLocationHeaderIf20x.class)
@Consumes(MediaType.WILDCARD)
URI createFile(@PathParam("parent") String parent, @PathParam("name") @ParamParser(AtmosObjectName.class)
@BinderParam(BindMetadataToHeaders.class) AtmosObject object, PutOptions... options);
@Named("UpdateObject")
@PUT
@Path("/{parent}/{name}")
@Headers(keys = EXPECT, values = "100-continue")
@Fallback(ThrowKeyNotFoundOn404.class)
@Consumes(MediaType.WILDCARD)
void updateFile(@PathParam("parent") String parent, @PathParam("name") @ParamParser(AtmosObjectName.class)
@BinderParam(BindMetadataToHeaders.class) AtmosObject object, PutOptions... options);
@Named("ReadObject")
@GET
@ResponseParser(ParseObjectFromHeadersAndHttpContent.class)
@Fallback(NullOnNotFoundOr404.class)
@Path("/{path}")
@Consumes(MediaType.WILDCARD)
AtmosObject readFile(@PathParam("path") String path, GetOptions... options);
@Named("GetObjectMetadata")
@HEAD
@ResponseParser(ParseObjectFromHeadersAndHttpContent.class)
@Fallback(NullOnNotFoundOr404.class)
@Path("/{path}")
@Consumes(MediaType.WILDCARD)
AtmosObject headFile(@PathParam("path") String path);
@Named("GetSystemMetadata")
@HEAD
@ResponseParser(ParseSystemMetadataFromHeaders.class)
@Fallback(NullOnNotFoundOr404.class)
// currently throws 403 errors @QueryParams(keys = "metadata/system")
@Path("/{path}")
@Consumes(MediaType.WILDCARD)
SystemMetadata getSystemMetadata(@PathParam("path") String path);
@Named("GetUserMetadata")
@HEAD
@ResponseParser(ParseUserMetadataFromHeaders.class)
@Fallback(NullOnNotFoundOr404.class)
@Path("/{path}")
@QueryParams(keys = "metadata/user")
@Consumes(MediaType.WILDCARD)
UserMetadata getUserMetadata(@PathParam("path") String path);
@Named("DeleteObject")
@DELETE
@Fallback(TrueOn404FalseOnPathNotEmpty.class)
@Path("/{path}")
@Consumes(MediaType.WILDCARD)
boolean deletePath(@PathParam("path") String path);
@Named("GetObjectMetadata")
@HEAD
@Fallback(FalseOnNotFoundOr404.class)
@Path("/{path}")
@Consumes(MediaType.WILDCARD)
boolean pathExists(@PathParam("path") String path);
@Named("GetObjectMetadata")
@HEAD
@ResponseParser(ReturnTrueIfGroupACLIsOtherRead.class)
@Path("/{path}")
@Consumes(MediaType.WILDCARD)
@Fallback(FalseOnNotFoundOr404.class)
boolean isPublic(@PathParam("path") String path);
@Named("SetObjectMetadata")
@POST
@Path("/{path}")
@QueryParams(keys = "acl")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
@Fallback(ThrowKeyNotFoundOn404.class)
@Consumes(MediaType.WILDCARD)
void setGroupAcl(@PathParam("path") String path, PutOptions options);
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/AtmosResponseException.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos;
import org.jclouds.atmos.domain.AtmosError;
import org.jclouds.http.HttpCommand;
import org.jclouds.http.HttpResponse;
import org.jclouds.http.HttpResponseException;
import org.jclouds.javax.annotation.Nullable;
/**
* Encapsulates an Error from Atmos Storage Services.
*
* @see AtmosError
* @see ParseAtmosErrorFromXmlContent
*/
public class AtmosResponseException extends HttpResponseException {
private transient AtmosError error;
public AtmosResponseException(HttpCommand command, HttpResponse response,
AtmosError error) {
super(String.format("command %s failed with code %s, error: %s", command.getCurrentRequest()
.getRequestLine(), response.getStatusCode(), error.toString()), command, response);
this.setError(error);
}
public AtmosResponseException(HttpCommand command, HttpResponse response,
AtmosError error, Throwable cause) {
super(String.format("command %1$s failed with error: %2$s", command.getCurrentRequest()
.getRequestLine(), error.toString()), command, response, cause);
this.setError(error);
}
public AtmosResponseException(String message, HttpCommand command, HttpResponse response,
AtmosError error) {
super(message, command, response);
this.setError(error);
}
public AtmosResponseException(String message, HttpCommand command, HttpResponse response,
AtmosError error, Throwable cause) {
super(message, command, response, cause);
this.setError(error);
}
public void setError(AtmosError error) {
this.error = error;
}
@Nullable
public AtmosError getError() {
return error;
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/binders/BindMetadataToHeaders.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.binders;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import com.google.common.io.BaseEncoding;
import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.atmos.reference.AtmosHeaders;
import org.jclouds.http.HttpRequest;
import org.jclouds.rest.Binder;
@Singleton
public class BindMetadataToHeaders implements Binder {
private final BindUserMetadataToHeaders metaBinder;
@Inject
protected BindMetadataToHeaders(BindUserMetadataToHeaders metaBinder) {
this.metaBinder = metaBinder;
}
@Override
public <R extends HttpRequest> R bindToRequest(R request, Object input) {
checkArgument(checkNotNull(input, "input") instanceof AtmosObject, "this binder is only valid for AtmosObject!");
checkNotNull(request, "request");
AtmosObject object = AtmosObject.class.cast(input);
checkNotNull(object.getPayload(), "object payload");
checkArgument(object.getPayload().getContentMetadata().getContentLength() != null,
"contentLength must be set, streaming not supported");
byte[] contentMD5 = object.getContentMetadata().getContentMD5();
if (contentMD5 != null) {
request = (R) request.toBuilder()
.addHeader(AtmosHeaders.CHECKSUM, "MD5/0/" +
BaseEncoding.base16().encode(contentMD5))
.build();
}
return metaBinder.bindToRequest(request, object.getUserMetadata());
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/binders/BindUserMetadataToHeaders.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.binders;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import java.util.Map;
import jakarta.inject.Singleton;
import org.jclouds.atmos.domain.UserMetadata;
import org.jclouds.http.HttpRequest;
import org.jclouds.rest.Binder;
import com.google.common.base.Function;
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMap.Builder;
import com.google.common.collect.Multimaps;
@Singleton
public class BindUserMetadataToHeaders implements Binder, Function<UserMetadata, Map<String, String>> {
@SuppressWarnings("unchecked")
@Override
public <R extends HttpRequest> R bindToRequest(R request, Object input) {
checkArgument(checkNotNull(input, "input") instanceof UserMetadata,
"this binder is only valid for UserMetadatas!");
checkNotNull(request, "request");
return (R) request.toBuilder().replaceHeaders(Multimaps.forMap(apply(UserMetadata.class.cast(input)))).build();
}
@Override
public Map<String, String> apply(UserMetadata md) {
Builder<String, String> headers = ImmutableMap.builder();
if (!md.getMetadata().isEmpty()) {
String header = Joiner.on(',').withKeyValueSeparator("=").join(md.getMetadata());
headers.put("x-emc-meta", header);
}
if (!md.getListableMetadata().isEmpty()) {
String header = Joiner.on(',').withKeyValueSeparator("=").join(md.getListableMetadata());
headers.put("x-emc-listable-meta", header);
}
if (!md.getTags().isEmpty()) {
String header = Joiner.on(',').join(md.getTags());
headers.put("x-emc-tags", header);
}
if (!md.getListableTags().isEmpty()) {
String header = Joiner.on(',').join(md.getListableTags());
headers.put("x-emc-listable-tags", header);
}
return headers.build();
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSigner.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.blobstore;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.jclouds.blobstore.util.BlobStoreUtils.cleanRequest;
import static org.jclouds.reflect.Reflection2.method;
import java.net.URI;
import java.util.Date;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import org.jclouds.atmos.AtmosClient;
import org.jclouds.atmos.blobstore.functions.BlobToObject;
import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.atmos.filters.SignRequest;
import org.jclouds.atmos.options.PutOptions;
import org.jclouds.blobstore.BlobRequestSigner;
import org.jclouds.blobstore.domain.Blob;
import org.jclouds.blobstore.functions.BlobToHttpGetOptions;
import org.jclouds.date.DateService;
import org.jclouds.date.TimeStamp;
import org.jclouds.domain.Credentials;
import org.jclouds.http.HttpRequest;
import org.jclouds.http.Uris;
import org.jclouds.http.options.GetOptions;
import org.jclouds.reflect.Invocation;
import com.google.common.base.Function;
import com.google.common.base.Supplier;
import com.google.common.collect.ImmutableList;
import com.google.common.reflect.Invokable;
import com.google.inject.Provider;
@Singleton
public class AtmosBlobRequestSigner implements BlobRequestSigner {
private static final int DEFAULT_EXPIRY_SECONDS = 15 * 60;
private final Function<Invocation, HttpRequest> processor;
private final BlobToObject blobToObject;
private final BlobToHttpGetOptions blob2ObjectGetOptions;
private final Invokable<?, ?> getMethod;
private final Invokable<?, ?> deleteMethod;
private final Invokable<?, ?> createMethod;
private final SignRequest signer;
private final URI endpoint;
private final String identity;
private final DateService dateService;
private final Provider<String> timeStampProvider;
@Inject
public AtmosBlobRequestSigner(Function<Invocation, HttpRequest> processor, BlobToObject blobToObject,
BlobToHttpGetOptions blob2ObjectGetOptions, SignRequest signer,
@org.jclouds.location.Provider Supplier<URI> endpointProvider,
@org.jclouds.location.Provider Supplier<Credentials> creds,
DateService dateService, @TimeStamp Provider<String> timeStampProvider)
throws SecurityException, NoSuchMethodException {
this.processor = checkNotNull(processor, "processor");
this.blobToObject = checkNotNull(blobToObject, "blobToObject");
this.blob2ObjectGetOptions = checkNotNull(blob2ObjectGetOptions, "blob2ObjectGetOptions");
this.getMethod = method(AtmosClient.class, "readFile", String.class, GetOptions[].class);
this.deleteMethod = method(AtmosClient.class, "deletePath", String.class);
this.createMethod = method(AtmosClient.class, "createFile", String.class, AtmosObject.class, PutOptions[].class);
this.signer = signer;
this.endpoint = endpointProvider.get();
this.identity = creds.get().identity;
this.dateService = dateService;
this.timeStampProvider = timeStampProvider;
}
@Override
public HttpRequest signGetBlob(String container, String name) {
return signGetBlob(container, name, DEFAULT_EXPIRY_SECONDS);
}
@Override
public HttpRequest signGetBlob(String container, String name, long timeInSeconds) {
checkNotNull(container, "container");
checkNotNull(name, "name");
return sign("GET", "/rest/namespace/" + container + "/" + name, timeInSeconds);
}
@Override
public HttpRequest signPutBlob(String container, Blob blob) {
checkNotNull(container, "container");
checkNotNull(blob, "blob");
return cleanRequest(processor.apply(Invocation.create(createMethod,
ImmutableList.<Object> of(container, blobToObject.apply(blob)))));
}
@Override
public HttpRequest signPutBlob(String container, Blob blob, long timeInSeconds) {
throw new UnsupportedOperationException();
}
private String getPath(String container, String name) {
return checkNotNull(container, "container") + "/" + checkNotNull(name, "name");
}
@Override
public HttpRequest signGetBlob(String container, String name, org.jclouds.blobstore.options.GetOptions options) {
checkNotNull(container, "container");
checkNotNull(name, "name");
return cleanRequest(processor.apply(Invocation.create(getMethod,
ImmutableList.of(getPath(container, name), blob2ObjectGetOptions.apply(checkNotNull(options, "options"))))));
}
private HttpRequest sign(String method, String path, long timeInSeconds) {
Date now = dateService.rfc1123DateParse(timeStampProvider.get());
String expires = String.valueOf(now.getTime() / 1000 + timeInSeconds);
String stringToSign = method + "\n" +
path + "\n" +
identity + "\n" +
expires;
return HttpRequest.builder()
.method(method)
.endpoint(Uris.uriBuilder(endpoint.getScheme() + "://" + endpoint.getHost()).appendPath(path).build())
.addQueryParam("uid", identity)
.addQueryParam("expires", expires)
.addQueryParam("signature", signer.calculateSignature(stringToSign))
.build();
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.blobstore;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.jclouds.atmos.options.PutOptions.Builder.publicRead;
import java.io.InputStream;
import java.util.List;
import java.util.Set;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.inject.Singleton;
import org.jclouds.atmos.AtmosClient;
import org.jclouds.atmos.blobstore.functions.BlobStoreListOptionsToListOptions;
import org.jclouds.atmos.blobstore.functions.BlobToObject;
import org.jclouds.atmos.blobstore.functions.DirectoryEntryListToResourceMetadataList;
import org.jclouds.atmos.blobstore.functions.ObjectToBlob;
import org.jclouds.atmos.blobstore.functions.ObjectToBlobMetadata;
import org.jclouds.atmos.options.ListOptions;
import org.jclouds.atmos.util.AtmosUtils;
import org.jclouds.blobstore.BlobStoreContext;
import org.jclouds.blobstore.domain.Blob;
import org.jclouds.blobstore.domain.BlobAccess;
import org.jclouds.blobstore.domain.BlobMetadata;
import org.jclouds.blobstore.domain.ContainerAccess;
import org.jclouds.blobstore.domain.MultipartPart;
import org.jclouds.blobstore.domain.MultipartUpload;
import org.jclouds.blobstore.domain.PageSet;
import org.jclouds.blobstore.domain.StorageMetadata;
import org.jclouds.blobstore.functions.BlobToHttpGetOptions;
import org.jclouds.blobstore.internal.BaseBlobStore;
import org.jclouds.blobstore.options.CopyOptions;
import org.jclouds.blobstore.options.CreateContainerOptions;
import org.jclouds.blobstore.options.PutOptions;
import org.jclouds.blobstore.strategy.internal.FetchBlobMetadata;
import org.jclouds.blobstore.util.BlobUtils;
import org.jclouds.collect.Memoized;
import org.jclouds.crypto.Crypto;
import org.jclouds.domain.Location;
import org.jclouds.http.options.GetOptions;
import org.jclouds.io.Payload;
import org.jclouds.io.PayloadSlicer;
import com.google.common.base.Strings;
import com.google.common.base.Supplier;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
@Singleton
public class AtmosBlobStore extends BaseBlobStore {
private final AtmosClient sync;
private final ObjectToBlob object2Blob;
private final ObjectToBlobMetadata object2BlobMd;
private final BlobToObject blob2Object;
private final BlobStoreListOptionsToListOptions container2ContainerListOptions;
private final DirectoryEntryListToResourceMetadataList container2ResourceList;
private final Crypto crypto;
private final BlobToHttpGetOptions blob2ObjectGetOptions;
private final Provider<FetchBlobMetadata> fetchBlobMetadataProvider;
private final LoadingCache<String, Boolean> isPublic;
@Inject
AtmosBlobStore(BlobStoreContext context, BlobUtils blobUtils, Supplier<Location> defaultLocation,
@Memoized Supplier<Set<? extends Location>> locations, PayloadSlicer slicer, AtmosClient sync,
ObjectToBlob object2Blob, ObjectToBlobMetadata object2BlobMd, BlobToObject blob2Object,
BlobStoreListOptionsToListOptions container2ContainerListOptions,
DirectoryEntryListToResourceMetadataList container2ResourceList, Crypto crypto,
BlobToHttpGetOptions blob2ObjectGetOptions, Provider<FetchBlobMetadata> fetchBlobMetadataProvider,
LoadingCache<String, Boolean> isPublic) {
super(context, blobUtils, defaultLocation, locations, slicer);
this.blob2ObjectGetOptions = checkNotNull(blob2ObjectGetOptions, "blob2ObjectGetOptions");
this.sync = checkNotNull(sync, "sync");
this.container2ContainerListOptions = checkNotNull(container2ContainerListOptions,
"container2ContainerListOptions");
this.container2ResourceList = checkNotNull(container2ResourceList, "container2ResourceList");
this.object2Blob = checkNotNull(object2Blob, "object2Blob");
this.blob2Object = checkNotNull(blob2Object, "blob2Object");
this.object2BlobMd = checkNotNull(object2BlobMd, "object2BlobMd");
this.crypto = checkNotNull(crypto, "crypto");
this.fetchBlobMetadataProvider = checkNotNull(fetchBlobMetadataProvider, "fetchBlobMetadataProvider");
this.isPublic = checkNotNull(isPublic, "isPublic");
}
/**
* This implementation invokes {@link AtmosClient#headFile}
*/
@Override
public BlobMetadata blobMetadata(String container, String key) {
return object2BlobMd.apply(sync.headFile(container + "/" + key));
}
/**
* This implementation invokes {@link AtmosClient#deletePath} followed by
* {@link AtmosClient#pathExists} until it is true.
*/
protected boolean deleteAndVerifyContainerGone(final String container) {
sync.deletePath(container + "/");
return !sync.pathExists(container + "/");
}
/**
* This implementation invokes {@link AtmosClient#createDirectory}
*
* @param location
* currently ignored
* @param container
* directory name
*/
@Override
public boolean createContainerInLocation(Location location, String container) {
return sync.createDirectory(container) != null;
}
@Override
public ContainerAccess getContainerAccess(String container) {
if (sync.isPublic(container)) {
return ContainerAccess.PUBLIC_READ;
} else {
return ContainerAccess.PRIVATE;
}
}
@Override
public void setContainerAccess(String container, ContainerAccess access) {
org.jclouds.atmos.options.PutOptions options = new org.jclouds.atmos.options.PutOptions();
if (access == ContainerAccess.PUBLIC_READ) {
options.publicRead();
} else {
options.publicNone();
}
sync.setGroupAcl(container, options);
}
/**
* This implementation invokes {@link AtmosClient#createDirectory}
*
* @param container
* directory name
*/
@Override
public void createDirectory(String container, String directory) {
sync.createDirectory(container + "/" + directory);
}
/**
* This implementation invokes {@link #removeBlob}
*/
@Override
public void deleteDirectory(String containerName, String directory) {
removeBlob(containerName, directory + "/");
}
/**
* This implementation invokes {@link AtmosClient#pathExists}
*/
@Override
public boolean containerExists(String container) {
return sync.pathExists(container + "/");
}
/**
* This implementation invokes {@link AtmosClient#pathExists}
*/
@Override
public boolean directoryExists(String container, String directory) {
return sync.pathExists(container + "/" + directory + "/");
}
/**
* This implementation invokes {@link AtmosClient#pathExists}
*
* @param container
* container
* @param key
* file name
*/
@Override
public boolean blobExists(String container, String key) {
return sync.pathExists(container + "/" + key);
}
/**
* This implementation invokes {@link AtmosClient#readFile}
*/
@Override
public Blob getBlob(String container, String key, org.jclouds.blobstore.options.GetOptions options) {
GetOptions httpOptions = blob2ObjectGetOptions.apply(options);
return object2Blob.apply(sync.readFile(container + "/" + key, httpOptions));
}
/**
* This implementation invokes {@link AtmosClient#listDirectories}
*/
@Override
public PageSet<? extends StorageMetadata> list() {
return container2ResourceList.apply(sync.listDirectories());
}
/**
* This implementation invokes {@link AtmosClient#listDirectory}
*/
@Override
public PageSet<? extends StorageMetadata> list(String container,
org.jclouds.blobstore.options.ListContainerOptions options) {
// TODO: recursive?
if (!Strings.nullToEmpty(options.getDelimiter()).equals("/") && !Strings.isNullOrEmpty(options.getPrefix())) {
throw new IllegalArgumentException("Atmos can only list via prefix if delimiter is / and the prefix matches an existing directory");
}
container = AtmosUtils.adjustContainerIfDirOptionPresent(container, options);
if (!Strings.isNullOrEmpty(options.getPrefix())) {
// this only works when the prefix exactly matches a directory, the common usage
container += "/" + options.getPrefix();
}
ListOptions nativeOptions = container2ContainerListOptions.apply(options);
// until includeMeta() option works for namespace interface
PageSet<? extends StorageMetadata> list = container2ResourceList.apply(sync.listDirectory(container,
nativeOptions));
return options.isDetailed() ? fetchBlobMetadataProvider.get().setContainerName(container).apply(list) : list;
}
/**
* This implementation invokes {@link AtmosClient#createFile}
* <p/>
* Since there is no etag support in atmos, we just return the path.
*/
@Override
public String putBlob(final String container, final Blob blob) {
return putBlob(container, blob, PutOptions.NONE);
}
/**
* This implementation invokes {@link AtmosClient#createFile}
* <p/>
* Since there is no etag support in atmos, we just return the path.
*/
@Override
public String putBlob(String container, Blob blob, PutOptions options) {
if (options.isMultipart()) {
throw new UnsupportedOperationException("Atmos does not support multipart uploads");
}
org.jclouds.atmos.options.PutOptions atmosOptions = new org.jclouds.atmos.options.PutOptions();
atmosOptions.publicNone();
try {
// TODO: not needed
if (isPublic.getUnchecked(container + "/"))
atmosOptions.publicRead();
} catch (CacheLoader.InvalidCacheLoadException e) {
// nulls not permitted
}
if (options.getBlobAccess() == BlobAccess.PUBLIC_READ) {
atmosOptions.publicRead();
}
return AtmosUtils.putBlob(sync, crypto, blob2Object, container, blob, atmosOptions);
}
/**
* This implementation invokes {@link AtmosClient#deletePath}
*/
@Override
public void removeBlob(String container, String key) {
sync.deletePath(container + "/" + key);
}
@Override
public BlobAccess getBlobAccess(String container, String key) {
if (sync.isPublic(container + "/" + key)) {
return BlobAccess.PUBLIC_READ;
} else {
return BlobAccess.PRIVATE;
}
}
@Override
public void setBlobAccess(String container, String key, BlobAccess access) {
org.jclouds.atmos.options.PutOptions options = new org.jclouds.atmos.options.PutOptions();
if (access == BlobAccess.PUBLIC_READ) {
options.publicRead();
} else {
options.publicNone();
}
sync.setGroupAcl(container + "/" + key, options);
}
@Override
public boolean createContainerInLocation(Location location, String container, CreateContainerOptions options) {
if (options.isPublicRead()) {
return sync.createDirectory(container, publicRead()) != null;
}
return createContainerInLocation(location, container);
}
@Override
public MultipartUpload initiateMultipartUpload(String container, BlobMetadata blobMetadata, PutOptions options) {
throw new UnsupportedOperationException("Atmos does not support multipart uploads");
}
@Override
public void abortMultipartUpload(MultipartUpload mpu) {
throw new UnsupportedOperationException("Atmos does not support multipart uploads");
}
@Override
public String completeMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts) {
throw new UnsupportedOperationException("Atmos does not support multipart uploads");
}
@Override
public MultipartPart uploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload) {
throw new UnsupportedOperationException("Atmos does not support multipart uploads");
}
@Override
public List<MultipartPart> listMultipartUpload(MultipartUpload mpu) {
throw new UnsupportedOperationException("Atmos does not support multipart uploads");
}
@Override
public List<MultipartUpload> listMultipartUploads(String container) {
throw new UnsupportedOperationException("Atmos does not support multipart uploads");
}
@Override
public long getMinimumMultipartPartSize() {
throw new UnsupportedOperationException("Atmos does not support multipart uploads");
}
@Override
public long getMaximumMultipartPartSize() {
throw new UnsupportedOperationException("Atmos does not support multipart uploads");
}
@Override
public int getMaximumNumberOfParts() {
throw new UnsupportedOperationException("Atmos does not support multipart uploads");
}
@Override
public InputStream streamBlob(String container, String name) {
throw new UnsupportedOperationException("Atmos does not support multipart uploads");
}
@Override
public String copyBlob(String fromContainer, String fromName, String toContainer, String toName,
CopyOptions options) {
if (options.ifMatch() != null) {
throw new UnsupportedOperationException("Atmos does not support ifMatch");
}
if (options.ifNoneMatch() != null) {
throw new UnsupportedOperationException("Atmos does not support ifNoneMatch");
}
return super.copyBlob(fromContainer, fromName, toContainer, toName, options);
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/config/AtmosBlobStoreContextModule.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.blobstore.config;
import java.util.concurrent.TimeUnit;
import jakarta.inject.Singleton;
import org.jclouds.atmos.AtmosClient;
import org.jclouds.atmos.blobstore.AtmosBlobRequestSigner;
import org.jclouds.atmos.blobstore.AtmosBlobStore;
import org.jclouds.blobstore.BlobRequestSigner;
import org.jclouds.blobstore.BlobStore;
import org.jclouds.blobstore.attr.ConsistencyModel;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import com.google.inject.Scopes;
public class AtmosBlobStoreContextModule extends AbstractModule {
@Override
protected void configure() {
bind(ConsistencyModel.class).toInstance(ConsistencyModel.EVENTUAL);
bind(BlobStore.class).to(AtmosBlobStore.class).in(Scopes.SINGLETON);
bind(BlobRequestSigner.class).to(AtmosBlobRequestSigner.class);
}
@Provides
@Singleton
protected final LoadingCache<String, Boolean> isPublic(final AtmosClient client) {
return CacheBuilder.newBuilder().expireAfterWrite(30, TimeUnit.SECONDS).build(new CacheLoader<String, Boolean>() {
@Override
public String toString() {
return "isPublic()";
}
@Override
public Boolean load(String arg0) throws Exception {
return client.isPublic(arg0);
}
});
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobMetadataToObject.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.blobstore.functions;
import java.util.Map.Entry;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.atmos.domain.UserMetadata;
import org.jclouds.blobstore.domain.BlobMetadata;
import com.google.common.base.Function;
@Singleton
public class BlobMetadataToObject implements Function<BlobMetadata, AtmosObject> {
private final AtmosObject.Factory factory;
private final BlobToContentMetadata blob2ContentMd;
private final BlobToSystemMetadata blob2SysMd;
@Inject
protected BlobMetadataToObject(AtmosObject.Factory factory,
BlobToContentMetadata blob2ContentMd, BlobToSystemMetadata blob2SysMd) {
this.factory = factory;
this.blob2ContentMd = blob2ContentMd;
this.blob2SysMd = blob2SysMd;
}
public AtmosObject apply(BlobMetadata from) {
if (from == null)
return null;
UserMetadata userMd = new UserMetadata();
if (from.getUserMetadata() != null) {
for (Entry<String, String> entry : from.getUserMetadata().entrySet())
userMd.getMetadata().put(entry.getKey().toLowerCase(), entry.getValue());
}
return factory.create(blob2ContentMd.apply(from), blob2SysMd.apply(from), userMd);
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobStoreListOptionsToListOptions.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.blobstore.functions;
import static com.google.common.base.Preconditions.checkNotNull;
import jakarta.inject.Singleton;
import org.jclouds.blobstore.options.ListContainerOptions;
import com.google.common.base.Function;
import com.google.common.base.Strings;
@Singleton
public class BlobStoreListOptionsToListOptions implements
Function<ListContainerOptions, org.jclouds.atmos.options.ListOptions> {
@Override
public org.jclouds.atmos.options.ListOptions apply(ListContainerOptions from) {
checkNotNull(from, "set options to instance NONE instead of passing null");
org.jclouds.atmos.options.ListOptions httpOptions = new org.jclouds.atmos.options.ListOptions();
if (!Strings.isNullOrEmpty(from.getMarker())) {
httpOptions.token(from.getMarker());
}
if (from.getMaxResults() != null) {
httpOptions.limit(from.getMaxResults());
}
if (from.isDetailed()) {
httpOptions.includeMeta();
}
return httpOptions;
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobToContentMetadata.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.blobstore.functions;
import jakarta.inject.Singleton;
import org.jclouds.atmos.domain.MutableContentMetadata;
import org.jclouds.atmos.domain.internal.DelegatingMutableContentMetadata;
import org.jclouds.blobstore.domain.BlobMetadata;
import org.jclouds.blobstore.domain.internal.MutableBlobMetadataImpl;
import org.jclouds.http.HttpUtils;
import com.google.common.base.Function;
@Singleton
public class BlobToContentMetadata implements Function<BlobMetadata, MutableContentMetadata> {
public MutableContentMetadata apply(BlobMetadata base) {
MutableBlobMetadataImpl to = new MutableBlobMetadataImpl();
HttpUtils.copy(base.getContentMetadata(), to.getContentMetadata());
return new DelegatingMutableContentMetadata(base.getUri(), base.getName(), base.getUri() != null ? base.getUri()
.getPath() : null, to.getContentMetadata());
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobToObject.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.blobstore.functions;
import static com.google.common.base.Preconditions.checkNotNull;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.blobstore.domain.Blob;
import com.google.common.base.Function;
@Singleton
public class BlobToObject implements Function<Blob, AtmosObject> {
private final BlobMetadataToObject blobMd2Object;
@Inject
BlobToObject(BlobMetadataToObject blobMd2Object) {
this.blobMd2Object = blobMd2Object;
}
public AtmosObject apply(Blob from) {
if (from == null)
return null;
AtmosObject object = blobMd2Object.apply(from.getMetadata());
object.setPayload(checkNotNull(from.getPayload(), "payload: " + from));
object.setAllHeaders(from.getAllHeaders());
return object;
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobToSystemMetadata.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.blobstore.functions;
import jakarta.inject.Singleton;
import org.jclouds.atmos.domain.FileType;
import org.jclouds.atmos.domain.SystemMetadata;
import org.jclouds.blobstore.domain.BlobMetadata;
import com.google.common.base.Function;
@Singleton
public class BlobToSystemMetadata implements Function<BlobMetadata, SystemMetadata> {
public SystemMetadata apply(BlobMetadata base) {
return new SystemMetadata(base.getContentMetadata().getContentMD5(), null, base.getLastModified(), null, null,
null, 1, null, base.getName(), null, (base.getContentMetadata().getContentLength() != null) ? base
.getContentMetadata().getContentLength() : 0, FileType.REGULAR, "root");
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/DirectoryEntryListToResourceMetadataList.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.blobstore.functions;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import org.jclouds.atmos.domain.BoundedSet;
import org.jclouds.atmos.domain.DirectoryEntry;
import org.jclouds.atmos.domain.FileType;
import org.jclouds.blobstore.domain.PageSet;
import org.jclouds.blobstore.domain.StorageMetadata;
import org.jclouds.blobstore.domain.StorageType;
import org.jclouds.blobstore.domain.internal.BlobMetadataImpl;
import org.jclouds.blobstore.domain.internal.MutableBlobMetadataImpl;
import org.jclouds.blobstore.domain.internal.PageSetImpl;
import org.jclouds.blobstore.domain.internal.StorageMetadataImpl;
import org.jclouds.domain.Location;
import org.jclouds.io.payloads.BaseMutableContentMetadata;
import com.google.common.base.Function;
import com.google.common.base.Supplier;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
@Singleton
public class DirectoryEntryListToResourceMetadataList implements
Function<BoundedSet<? extends DirectoryEntry>, PageSet<? extends StorageMetadata>> {
private Supplier<Location> defaultLocation;
@Inject
DirectoryEntryListToResourceMetadataList(Supplier<Location> defaultLocation) {
this.defaultLocation = defaultLocation;
}
public PageSet<? extends StorageMetadata> apply(BoundedSet<? extends DirectoryEntry> from) {
return new PageSetImpl<StorageMetadata>(Iterables.transform(from,
new Function<DirectoryEntry, StorageMetadata>() {
public StorageMetadata apply(DirectoryEntry from) {
StorageType type = from.getType() == FileType.DIRECTORY ? StorageType.FOLDER : StorageType.BLOB;
if (type == StorageType.FOLDER)
return new StorageMetadataImpl(type, from.getObjectID(), from.getObjectName(), defaultLocation
.get(), null, null, null, null, ImmutableMap.<String, String>of());
else {
BlobMetadataImpl metadata = new BlobMetadataImpl(from.getObjectID(), from.getObjectName(), defaultLocation.get(),
null, from.getObjectID(), null, from.getModifiedTime(), ImmutableMap.<String, String>of(), null,
null, new BaseMutableContentMetadata());
MutableBlobMetadataImpl mutable = new MutableBlobMetadataImpl(metadata);
mutable.setSize(from.getSize());
return mutable;
}
}
}), from.getToken());
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/ObjectToBlob.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.blobstore.functions;
import static com.google.common.base.Preconditions.checkNotNull;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.blobstore.domain.Blob;
import org.jclouds.blobstore.domain.Blob.Factory;
import org.jclouds.http.HttpUtils;
import com.google.common.base.Function;
@Singleton
public class ObjectToBlob implements Function<AtmosObject, Blob> {
private final Factory blobFactory;
private final ObjectToBlobMetadata object2BlobMd;
@Inject
ObjectToBlob(Factory blobFactory, ObjectToBlobMetadata object2BlobMd) {
this.blobFactory = blobFactory;
this.object2BlobMd = object2BlobMd;
}
public Blob apply(AtmosObject from) {
if (from == null)
return null;
Blob blob = blobFactory.create(object2BlobMd.apply(from));
blob.setPayload(checkNotNull(from.getPayload(), "payload: " + from));
HttpUtils.copy(from.getContentMetadata(), blob.getPayload().getContentMetadata());
blob.setAllHeaders(from.getAllHeaders());
return blob;
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/ObjectToBlobMetadata.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.blobstore.functions;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.atmos.domain.FileType;
import org.jclouds.atmos.filters.ShareUrl;
import org.jclouds.atmos.functions.AtmosObjectName;
import org.jclouds.blobstore.domain.MutableBlobMetadata;
import org.jclouds.blobstore.domain.StorageType;
import org.jclouds.blobstore.domain.Tier;
import org.jclouds.blobstore.domain.internal.MutableBlobMetadataImpl;
import org.jclouds.http.HttpUtils;
import com.google.common.base.Function;
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
@Singleton
public class ObjectToBlobMetadata implements Function<AtmosObject, MutableBlobMetadata> {
private final AtmosObjectName objectName;
private final ShareUrl shareUrl;
private static final Set<String> systemMetadata = ImmutableSet.of("atime", "mtime", "ctime", "itime", "type", "uid",
"gid", "objectid", "objname", "size", "nlink", "policyname");
@Inject
protected ObjectToBlobMetadata(AtmosObjectName objectName, ShareUrl shareUrl)
throws SecurityException, NoSuchMethodException {
this.objectName = objectName;
this.shareUrl = shareUrl;
}
public MutableBlobMetadata apply(AtmosObject from) {
if (from == null)
return null;
MutableBlobMetadata to = new MutableBlobMetadataImpl();
to.setId(from.getSystemMetadata().getObjectID());
to.setLastModified(from.getSystemMetadata().getLastUserDataModification());
HttpUtils.copy(from.getContentMetadata(), to.getContentMetadata());
to.setName(objectName.apply(from));
to.setUri(from.getContentMetadata().getUri());
to.setContainer(Iterables.get(Splitter.on('/').split(from.getContentMetadata().getPath()), 0));
if (from.getAllHeaders().containsEntry("x-emc-groupacl", "other=READ"))
to.setPublicUri(shareUrl.apply(from.getContentMetadata().getPath()));
if (from.getSystemMetadata().getType() == FileType.DIRECTORY) {
to.setType(StorageType.FOLDER);
} else {
to.setType(StorageType.BLOB);
}
Map<String, String> lowerKeyMetadata = Maps.newHashMap();
for (Entry<String, String> entry : from.getUserMetadata().getMetadata().entrySet()) {
String key = entry.getKey().toLowerCase();
if (!systemMetadata.contains(key))
lowerKeyMetadata.put(key, entry.getValue());
}
to.setUserMetadata(lowerKeyMetadata);
to.setSize(from.getContentMetadata().getContentLength());
to.setTier(Tier.STANDARD);
to.setETag(from.getSystemMetadata().getObjectID());
to.getContentMetadata().setContentMD5(from.getSystemMetadata().getContentMD5());
return to;
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosHttpApiModule.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.config;
import java.util.Date;
import java.util.concurrent.TimeUnit;
import jakarta.inject.Named;
import org.jclouds.Constants;
import org.jclouds.atmos.AtmosClient;
import org.jclouds.atmos.handlers.AtmosClientErrorRetryHandler;
import org.jclouds.atmos.handlers.AtmosServerErrorRetryHandler;
import org.jclouds.atmos.handlers.ParseAtmosErrorFromXmlContent;
import org.jclouds.date.DateService;
import org.jclouds.date.TimeStamp;
import org.jclouds.http.HttpErrorHandler;
import org.jclouds.http.HttpRetryHandler;
import org.jclouds.http.annotation.ClientError;
import org.jclouds.http.annotation.Redirection;
import org.jclouds.http.annotation.ServerError;
import org.jclouds.rest.ConfiguresHttpApi;
import org.jclouds.rest.config.HttpApiModule;
import com.google.common.base.Supplier;
import com.google.common.base.Suppliers;
import com.google.inject.Provides;
/**
* Configures the EMC Atmos Online Storage authentication service connection, including logging and
* http transport.
*/
@ConfiguresHttpApi
public class AtmosHttpApiModule extends HttpApiModule<AtmosClient> {
@Override
protected void configure() {
install(new AtmosParserModule());
install(new AtmosObjectModule());
super.configure();
}
@Provides
@TimeStamp
protected final String guiceProvideTimeStamp(@TimeStamp Supplier<String> cache) {
return provideTimeStamp(cache);
}
protected String provideTimeStamp(@TimeStamp Supplier<String> cache) {
return cache.get();
}
/**
* borrowing concurrency code to ensure that caching takes place properly
*/
@Provides
@TimeStamp
final Supplier<String> provideTimeStampCache(@Named(Constants.PROPERTY_SESSION_INTERVAL) long seconds,
final DateService dateService) {
return Suppliers.memoizeWithExpiration(new Supplier<String>() {
@Override
public String get() {
return dateService.rfc822DateFormat();
}
}, seconds, TimeUnit.SECONDS);
}
@Provides
@TimeStamp
protected final Long provideShareableUrlTimeout() {
return new Date().getTime() + TimeUnit.HOURS.toMillis(1);
}
@Override
protected void bindErrorHandlers() {
bind(HttpErrorHandler.class).annotatedWith(Redirection.class).to(ParseAtmosErrorFromXmlContent.class);
bind(HttpErrorHandler.class).annotatedWith(ClientError.class).to(ParseAtmosErrorFromXmlContent.class);
bind(HttpErrorHandler.class).annotatedWith(ServerError.class).to(ParseAtmosErrorFromXmlContent.class);
}
@Override
protected void bindRetryHandlers() {
bind(HttpRetryHandler.class).annotatedWith(ClientError.class).to(AtmosClientErrorRetryHandler.class);
bind(HttpRetryHandler.class).annotatedWith(ServerError.class).to(AtmosServerErrorRetryHandler.class);
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosObjectModule.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.config;
import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.atmos.domain.MutableContentMetadata;
import org.jclouds.blobstore.config.BlobStoreObjectModule;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
/**
* Configures the domain object mappings needed for all Atmos implementations
*/
public class AtmosObjectModule extends AbstractModule {
/**
* explicit factories are created here as it has been shown that Assisted Inject is extremely
* inefficient. http://code.google.com/p/google-guice/issues/detail?id=435
*/
@Override
protected void configure() {
// for converters
install(new BlobStoreObjectModule());
}
@Provides
final AtmosObject provideAtmosObject(AtmosObject.Factory factory) {
return factory.create((MutableContentMetadata) null);
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosParserModule.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.config;
import org.jclouds.json.config.GsonModule.DateAdapter;
import org.jclouds.json.config.GsonModule.Iso8601DateAdapter;
import com.google.inject.AbstractModule;
public class AtmosParserModule extends AbstractModule {
@Override
protected void configure() {
bind(DateAdapter.class).to(Iso8601DateAdapter.class);
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/AtmosError.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.domain;
/**
* When an Atmos Storage request is in error, the client receives an error response.
*
* Provides access to EMC Atmos Online Storage resources via their REST API.
*/
public class AtmosError {
private final int code;
private final String message;
private String stringSigned;
@Override
public String toString() {
return "AtmosError [code=" + code + ", message=" + message
+ (stringSigned != null ? (", stringSigned=" + stringSigned) : "") + "]";
}
public AtmosError(int code, String message) {
this.code = code;
this.message = message;
}
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
public void setStringSigned(String stringSigned) {
this.stringSigned = stringSigned;
}
/**
* @return what jclouds signed before sending the request.
*/
public String getStringSigned() {
return stringSigned;
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/AtmosObject.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.domain;
import org.jclouds.atmos.domain.internal.AtmosObjectImpl.AtmosObjectFactory;
import org.jclouds.io.PayloadEnclosing;
import org.jclouds.javax.annotation.Nullable;
import com.google.common.collect.Multimap;
import com.google.inject.ImplementedBy;
public interface AtmosObject extends PayloadEnclosing, Comparable<AtmosObject> {
@ImplementedBy(AtmosObjectFactory.class)
public interface Factory {
AtmosObject create(@Nullable MutableContentMetadata contentMetadata);
AtmosObject create(SystemMetadata systemMetadata, UserMetadata userMetadata);
AtmosObject create(MutableContentMetadata contentMetadata, SystemMetadata systemMetadata,
UserMetadata userMetadata);
}
MutableContentMetadata getContentMetadata();
/**
* @return System and User metadata relevant to this object.
*/
SystemMetadata getSystemMetadata();
UserMetadata getUserMetadata();
Multimap<String, String> getAllHeaders();
void setAllHeaders(Multimap<String, String> allHeaders);
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/BoundedSet.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.domain;
import java.util.Set;
import org.jclouds.atmos.domain.internal.BoundedLinkedHashSet;
import org.jclouds.javax.annotation.Nullable;
import com.google.inject.ImplementedBy;
@ImplementedBy(BoundedLinkedHashSet.class)
public interface BoundedSet<T> extends Set<T> {
@Nullable
String getToken();
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/DirectoryEntry.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.domain;
import java.util.Date;
import org.jclouds.javax.annotation.Nullable;
import com.google.common.base.Objects;
/**
* Metadata of a Atmos Online object
*/
public class DirectoryEntry implements Comparable<DirectoryEntry> {
private final String objectid;
private final FileType type;
private final String objname;
private final long size;
@Nullable private final Date modifiedTime;
@Deprecated
public DirectoryEntry(String objectid, FileType type, String objname, long size) {
this(objectid, type, objname, size, null);
}
public DirectoryEntry(String objectid, FileType type, String objname, long size, Date modifiedTime) {
this.objectid = objectid;
this.objname = objname;
this.type = type;
this.size = size;
this.modifiedTime = modifiedTime != null ? (Date) modifiedTime.clone() : null;
}
public String getObjectID() {
return objectid;
}
public String getObjectName() {
return objname;
}
public FileType getType() {
return type;
}
public long getSize() {
return size;
}
public Date getModifiedTime() {
return modifiedTime != null ? (Date) modifiedTime.clone() : null;
}
public int compareTo(DirectoryEntry o) {
if (getObjectName() == null)
return -1;
return (this == o) ? 0 : getObjectName().compareTo(o.getObjectName());
}
@Override
public int hashCode() {
return Objects.hashCode(objectid, objname, type, size);
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
DirectoryEntry other = (DirectoryEntry) obj;
return Objects.equal(objectid, other.objectid) &&
Objects.equal(objname, other.objname) &&
Objects.equal(type, other.type) &&
Objects.equal(size, other.size);
}
@Override
public String toString() {
return "DirectoryEntry [type=" + type + ", objectid=" + objectid + ", objname=" + objname
+ ", size=" + size + "]";
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/FileType.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.domain;
public enum FileType {
DIRECTORY, REGULAR, UNRECOGNIZED;
public String value() {
return name().toLowerCase();
}
public static FileType fromValue(String v) {
try {
return valueOf(v.toUpperCase());
} catch (IllegalArgumentException e) {
return UNRECOGNIZED;
}
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/MutableContentMetadata.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.domain;
import java.net.URI;
import org.jclouds.atmos.domain.internal.DelegatingMutableContentMetadata;
import com.google.inject.ImplementedBy;
/**
* metadata of the object
*/
@ImplementedBy(DelegatingMutableContentMetadata.class)
public interface MutableContentMetadata extends org.jclouds.io.MutableContentMetadata {
String getName();
void setName(String name);
URI getUri();
void setUri(URI uri);
String getPath();
void setPath(String path);
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/SystemMetadata.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.domain;
import java.util.Date;
import org.jclouds.javax.annotation.Nullable;
/**
* Metadata of a Atmos Online object
*/
public class SystemMetadata extends DirectoryEntry {
private final Date atime;
private final Date ctime;
private final String gid;
private final Date itime;
private final Date mtime;
private final int nlink;
private final String policyname;
private final long size;
private final String uid;
private final byte[] contentmd5;
public SystemMetadata(@Nullable byte [] contentmd5, Date atime, Date ctime, String gid, Date itime, Date mtime, int nlink,
String objectid, String objname, String policyname, long size, FileType type, String uid) {
super(objectid, type, objname, size);
this.contentmd5 = contentmd5;
this.atime = atime;
this.ctime = ctime;
this.gid = gid;
this.itime = itime;
this.mtime = mtime;
this.nlink = nlink;
this.policyname = policyname;
this.size = size;
this.uid = uid;
}
public String getGroupID() {
return gid;
}
public int getHardLinkCount() {
return nlink;
}
public Date getInceptionTime() {
return itime;
}
public Date getLastAccessTime() {
return atime;
}
public Date getLastMetadataModification() {
return mtime;
}
public Date getLastUserDataModification() {
return ctime;
}
public String getPolicyName() {
return policyname;
}
public long getSize() {
return size;
}
public String getUserID() {
return uid;
}
public byte[] getContentMD5() {
return contentmd5;
}
@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result + ((atime == null) ? 0 : atime.hashCode());
result = prime * result + ((ctime == null) ? 0 : ctime.hashCode());
result = prime * result + ((gid == null) ? 0 : gid.hashCode());
result = prime * result + ((itime == null) ? 0 : itime.hashCode());
result = prime * result + ((mtime == null) ? 0 : mtime.hashCode());
result = prime * result + nlink;
result = prime * result + ((policyname == null) ? 0 : policyname.hashCode());
result = prime * result + (int) (size ^ (size >>> 32));
result = prime * result + ((uid == null) ? 0 : uid.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (!super.equals(obj))
return false;
if (getClass() != obj.getClass())
return false;
SystemMetadata other = (SystemMetadata) obj;
if (atime == null) {
if (other.atime != null)
return false;
} else if (!atime.equals(other.atime))
return false;
if (ctime == null) {
if (other.ctime != null)
return false;
} else if (!ctime.equals(other.ctime))
return false;
if (gid == null) {
if (other.gid != null)
return false;
} else if (!gid.equals(other.gid))
return false;
if (itime == null) {
if (other.itime != null)
return false;
} else if (!itime.equals(other.itime))
return false;
if (mtime == null) {
if (other.mtime != null)
return false;
} else if (!mtime.equals(other.mtime))
return false;
if (nlink != other.nlink)
return false;
if (policyname == null) {
if (other.policyname != null)
return false;
} else if (!policyname.equals(other.policyname))
return false;
if (size != other.size)
return false;
if (uid == null) {
if (other.uid != null)
return false;
} else if (!uid.equals(other.uid))
return false;
return true;
}
@Override
public String toString() {
return "[type=" + getType() + ", id=" + getObjectID() + ", name=" + getObjectName() + "]";
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/UploadInfo.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.domain;
import java.net.URI;
public class UploadInfo {
private final String token;
private final URI host;
public UploadInfo(String token, URI host) {
this.token = token;
this.host = host;
}
public String getToken() {
return token;
}
public URI getHost() {
return host;
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/UserMetadata.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.domain;
import static com.google.common.base.Preconditions.checkNotNull;
import java.util.Map;
import java.util.Set;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
/**
* User metadata
*/
public class UserMetadata {
private final Map<String, String> metadata;
private final Map<String, String> listableMetadata;
private final Set<String> tags;
private final Set<String> listableTags;
public UserMetadata(Map<String, String> metadata, Map<String, String> listableMetadata, Iterable<String> tags,
Iterable<String> listableTags) {
this.metadata = Maps.newLinkedHashMap(checkNotNull(metadata, "metadata"));
this.listableMetadata = Maps.newLinkedHashMap(checkNotNull(listableMetadata, "listableMetadata"));
this.tags = Sets.newLinkedHashSet(checkNotNull(tags, "tags"));
this.listableTags = Sets.newLinkedHashSet(checkNotNull(listableTags, "listableTags"));
}
public UserMetadata() {
this.metadata = Maps.newLinkedHashMap();
this.listableMetadata = Maps.newLinkedHashMap();
this.tags = Sets.newLinkedHashSet();
this.listableTags = Sets.newLinkedHashSet();
}
public Map<String, String> getMetadata() {
return metadata;
}
public Map<String, String> getListableMetadata() {
return listableMetadata;
}
public Set<String> getTags() {
return tags;
}
public Set<String> getListableTags() {
return listableTags;
}
@Override
public String toString() {
return "[metadata=" + metadata + ", listableMetadata=" + listableMetadata + ", tags=" + tags + ", listableTags="
+ listableTags + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((listableMetadata == null) ? 0 : listableMetadata.hashCode());
result = prime * result + ((listableTags == null) ? 0 : listableTags.hashCode());
result = prime * result + ((metadata == null) ? 0 : metadata.hashCode());
result = prime * result + ((tags == null) ? 0 : tags.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
UserMetadata other = (UserMetadata) obj;
if (listableMetadata == null) {
if (other.listableMetadata != null)
return false;
} else if (!listableMetadata.equals(other.listableMetadata))
return false;
if (listableTags == null) {
if (other.listableTags != null)
return false;
} else if (!listableTags.equals(other.listableTags))
return false;
if (metadata == null) {
if (other.metadata != null)
return false;
} else if (!metadata.equals(other.metadata))
return false;
if (tags == null) {
if (other.tags != null)
return false;
} else if (!tags.equals(other.tags))
return false;
return true;
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/internal/AtmosObjectImpl.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.domain.internal;
import static com.google.common.base.Preconditions.checkNotNull;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.inject.Singleton;
import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.atmos.domain.MutableContentMetadata;
import org.jclouds.atmos.domain.SystemMetadata;
import org.jclouds.atmos.domain.UserMetadata;
import org.jclouds.http.internal.PayloadEnclosingImpl;
import org.jclouds.io.Payload;
import com.google.common.collect.LinkedHashMultimap;
import com.google.common.collect.Multimap;
/**
* Default Implementation of {@link AtmosObject}.
*/
public class AtmosObjectImpl extends PayloadEnclosingImpl implements AtmosObject, Comparable<AtmosObject> {
@Singleton
public static class AtmosObjectFactory implements AtmosObject.Factory {
@Inject
Provider<MutableContentMetadata> metadataProvider;
public AtmosObject create(MutableContentMetadata contentMetadata) {
return new AtmosObjectImpl(contentMetadata != null ? contentMetadata : metadataProvider.get());
}
public AtmosObject create(SystemMetadata systemMetadata, UserMetadata userMetadata) {
return new AtmosObjectImpl(metadataProvider.get(), systemMetadata, userMetadata);
}
public AtmosObject create(MutableContentMetadata contentMetadata, SystemMetadata systemMetadata,
UserMetadata userMetadata) {
return new AtmosObjectImpl(contentMetadata, systemMetadata, userMetadata);
}
}
private final UserMetadata userMetadata;
private final SystemMetadata systemMetadata;
public SystemMetadata getSystemMetadata() {
return systemMetadata;
}
public UserMetadata getUserMetadata() {
return userMetadata;
}
private MutableContentMetadata contentMetadata;
private Multimap<String, String> allHeaders = LinkedHashMultimap.create();
public AtmosObjectImpl(MutableContentMetadata contentMetadata, SystemMetadata systemMetadata,
UserMetadata userMetadata) {
this.contentMetadata = contentMetadata;
this.systemMetadata = systemMetadata;
this.userMetadata = userMetadata;
}
@Inject
public AtmosObjectImpl(MutableContentMetadata contentMetadata) {
this(contentMetadata, null, new UserMetadata());
}
/**
* {@inheritDoc}
*/
@Override
public MutableContentMetadata getContentMetadata() {
return contentMetadata;
}
/**
* {@inheritDoc}
*/
@Override
public Multimap<String, String> getAllHeaders() {
return allHeaders;
}
/**
* {@inheritDoc}
*/
@Override
public void setAllHeaders(Multimap<String, String> allHeaders) {
this.allHeaders = checkNotNull(allHeaders, "allHeaders");
}
/**
* {@inheritDoc}
*/
@Override
public int compareTo(AtmosObject o) {
if (getContentMetadata().getName() == null)
return -1;
return (this == o) ? 0 : getContentMetadata().getName().compareTo(o.getContentMetadata().getName());
}
@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result + ((contentMetadata == null) ? 0 : contentMetadata.hashCode());
result = prime * result + ((systemMetadata == null) ? 0 : systemMetadata.hashCode());
result = prime * result + ((userMetadata == null) ? 0 : userMetadata.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (!super.equals(obj))
return false;
if (getClass() != obj.getClass())
return false;
AtmosObjectImpl other = (AtmosObjectImpl) obj;
if (contentMetadata == null) {
if (other.contentMetadata != null)
return false;
} else if (!contentMetadata.equals(other.contentMetadata))
return false;
if (systemMetadata == null) {
if (other.systemMetadata != null)
return false;
} else if (!systemMetadata.equals(other.systemMetadata))
return false;
if (userMetadata == null) {
if (other.userMetadata != null)
return false;
} else if (!userMetadata.equals(other.userMetadata))
return false;
return true;
}
@Override
public String toString() {
return "[contentMetadata=" + contentMetadata + "]";
}
@Override
public void setPayload(Payload data) {
this.payload = data;
this.contentMetadata = new DelegatingMutableContentMetadata(contentMetadata.getUri(), contentMetadata.getName(),
contentMetadata.getPath(), payload.getContentMetadata());
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/internal/BoundedLinkedHashSet.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.domain.internal;
import static com.google.common.base.Preconditions.checkNotNull;
import java.util.LinkedHashSet;
import org.jclouds.atmos.domain.BoundedSet;
import org.jclouds.javax.annotation.Nullable;
import com.google.common.collect.Iterables;
public class BoundedLinkedHashSet<T> extends LinkedHashSet<T> implements BoundedSet<T> {
protected final String token;
public BoundedLinkedHashSet(Iterable<T> contents, @Nullable String token) {
Iterables.addAll(this, checkNotNull(contents, "contents"));
this.token = token;
}
@Nullable
public String getToken() {
return token;
}
@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result + ((token == null) ? 0 : token.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (!super.equals(obj))
return false;
if (getClass() != obj.getClass())
return false;
BoundedLinkedHashSet<?> other = (BoundedLinkedHashSet<?>) obj;
if (token == null) {
if (other.token != null)
return false;
} else if (!token.equals(other.token))
return false;
return true;
}
@Override
public String toString() {
return "[token=" + token + ", contents=" + super.toString() + "]";
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/internal/DelegatingMutableContentMetadata.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.domain.internal;
import java.net.URI;
import java.util.Date;
import org.jclouds.atmos.domain.MutableContentMetadata;
import org.jclouds.io.ContentMetadataBuilder;
import org.jclouds.io.payloads.BaseMutableContentMetadata;
import com.google.common.hash.HashCode;
public class DelegatingMutableContentMetadata implements MutableContentMetadata {
private URI uri;
private String name;
private String path;
private final org.jclouds.io.MutableContentMetadata delegate;
public DelegatingMutableContentMetadata() {
this(null, null, null, new BaseMutableContentMetadata());
}
public DelegatingMutableContentMetadata(URI uri, String name, String path,
org.jclouds.io.MutableContentMetadata delegate) {
this.uri = uri;
this.name = name;
this.delegate = delegate;
this.path = path;
}
@Override
public Long getContentLength() {
return delegate.getContentLength();
}
/** @deprecated use {@link #getContentMD5AsHashCode()} instead. */
@Deprecated
@Override
public byte[] getContentMD5() {
return delegate.getContentMD5();
}
@Override
public HashCode getContentMD5AsHashCode() {
return delegate.getContentMD5AsHashCode();
}
@Override
public String getContentType() {
return delegate.getContentType();
}
@Override
public String getName() {
return name;
}
@Override
public void setContentLength(Long contentLength) {
delegate.setContentLength(contentLength);
}
/** @deprecated use {@link #setContentMD5(HashCode)} instead. */
@Deprecated
@Override
public void setContentMD5(byte[] contentMD5) {
delegate.setContentMD5(contentMD5);
}
@Override
public void setContentMD5(HashCode contentMD5) {
delegate.setContentMD5(contentMD5);
}
@Override
public void setContentType(String contentType) {
delegate.setContentType(contentType);
}
@Override
public void setName(String name) {
this.name = name;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
DelegatingMutableContentMetadata other = (DelegatingMutableContentMetadata) obj;
if (uri == null) {
if (other.uri != null)
return false;
} else if (!uri.equals(other.uri))
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((uri == null) ? 0 : uri.hashCode());
return result;
}
@Override
public String toString() {
return "[uri=" + uri + ", name=" + name + ", path=" + path + ", delegate=" + delegate + "]";
}
public org.jclouds.io.MutableContentMetadata getDelegate() {
return delegate;
}
@Override
public void setCacheControl(String cacheControl) {
delegate.setCacheControl(cacheControl);
}
@Override
public void setContentDisposition(String contentDisposition) {
delegate.setContentDisposition(contentDisposition);
}
@Override
public void setContentEncoding(String contentEncoding) {
delegate.setContentEncoding(contentEncoding);
}
@Override
public void setContentLanguage(String contentLanguage) {
delegate.setContentLanguage(contentLanguage);
}
@Override
public String getCacheControl() {
return delegate.getCacheControl();
}
@Override
public String getContentDisposition() {
return delegate.getContentDisposition();
}
@Override
public String getContentEncoding() {
return delegate.getContentEncoding();
}
@Override
public String getContentLanguage() {
return delegate.getContentLanguage();
}
@Override
public void setExpires(Date expires) {
delegate.setExpires(expires);
}
@Override
public Date getExpires() {
return delegate.getExpires();
}
@Override
public ContentMetadataBuilder toBuilder() {
return delegate.toBuilder();
}
@Override
public URI getUri() {
return uri;
}
@Override
public void setUri(URI uri) {
this.uri = uri;
}
@Override
public String getPath() {
return path;
}
@Override
public void setPath(String path) {
this.path = path;
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExists.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.fallbacks;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Throwables.propagate;
import java.net.URI;
import org.jclouds.Fallback;
import org.jclouds.blobstore.KeyAlreadyExistsException;
import org.jclouds.http.HttpRequest;
import org.jclouds.javax.annotation.Nullable;
import org.jclouds.rest.InvocationContext;
import com.google.common.annotations.VisibleForTesting;
public class EndpointIfAlreadyExists implements Fallback<URI>, InvocationContext<EndpointIfAlreadyExists> {
private URI endpoint;
@Override
public URI createOrPropagate(Throwable t) throws Exception {
if (checkNotNull(t, "throwable") instanceof KeyAlreadyExistsException) {
return endpoint;
}
throw propagate(t);
}
@Override
public EndpointIfAlreadyExists setContext(HttpRequest request) {
return setEndpoint(request == null ? null : request.getEndpoint());
}
@VisibleForTesting
EndpointIfAlreadyExists setEndpoint(@Nullable URI endpoint) {
this.endpoint = endpoint;
return this;
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/TrueOn404FalseOnPathNotEmpty.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.fallbacks;
import static com.google.common.base.Throwables.propagate;
import static org.jclouds.util.Throwables2.getFirstThrowableOfType;
import org.jclouds.Fallback;
import org.jclouds.atmos.AtmosResponseException;
import org.jclouds.atmos.reference.AtmosErrorCode;
import org.jclouds.http.HttpUtils;
public final class TrueOn404FalseOnPathNotEmpty implements Fallback<Boolean> {
@Override
public Boolean createOrPropagate(Throwable t) throws Exception {
if (HttpUtils.contains404(t)) {
return true;
}
AtmosResponseException exception = getFirstThrowableOfType(t, AtmosResponseException.class);
if (exception != null && exception.getError().getCode() == AtmosErrorCode.DIRECTORY_NOT_EMPTY.getCode()) {
return false;
}
throw propagate(t);
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/filters/ShareUrl.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.filters;
import static com.google.common.base.Throwables.propagate;
import static com.google.common.io.BaseEncoding.base64;
import static com.google.common.io.ByteStreams.readBytes;
import static org.jclouds.Constants.LOGGER_SIGNATURE;
import static org.jclouds.crypto.Macs.asByteProcessor;
import static org.jclouds.http.Uris.uriBuilder;
import static org.jclouds.util.Strings2.toInputStream;
import java.io.IOException;
import java.net.URI;
import java.security.InvalidKeyException;
import jakarta.annotation.Resource;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import jakarta.inject.Singleton;
import org.jclouds.crypto.Crypto;
import org.jclouds.date.TimeStamp;
import org.jclouds.domain.Credentials;
import org.jclouds.http.HttpException;
import org.jclouds.location.Provider;
import org.jclouds.logging.Logger;
import com.google.common.base.Function;
import com.google.common.base.Supplier;
import com.google.common.collect.ImmutableMap;
import com.google.common.io.ByteProcessor;
/**
* Signs the EMC Atmos Online Storage request.
*
* @see <a href="https://community.emc.com/community/labs/atmos_online" />
*/
@Singleton
public class ShareUrl implements Function<String, URI> {
private final Supplier<Credentials> creds;
private final Supplier<URI> provider;
private final jakarta.inject.Provider<Long> timeStampProvider;
private final Crypto crypto;
@Resource
Logger logger = Logger.NULL;
@Resource
@Named(LOGGER_SIGNATURE)
Logger signatureLog = Logger.NULL;
@Inject
public ShareUrl(@Provider Supplier<Credentials> creds, @Provider Supplier<URI> provider,
@TimeStamp jakarta.inject.Provider<Long> timeStampProvider, Crypto crypto) {
this.creds = creds;
this.provider = provider;
this.timeStampProvider = timeStampProvider;
this.crypto = crypto;
}
@Override
public URI apply(String path) throws HttpException {
String requestedResource = new StringBuilder().append("/rest/namespace/").append(path).toString();
String expires = timeStampProvider.get().toString();
String signature = signString(createStringToSign(requestedResource, expires));
return uriBuilder(provider.get())
.replaceQuery(ImmutableMap.of("uid", creds.get().identity, "expires", expires, "signature", signature))
.appendPath(requestedResource).build();
}
public String createStringToSign(String requestedResource, String expires) {
StringBuilder toSign = new StringBuilder();
toSign.append("GET\n");
toSign.append(requestedResource.toLowerCase()).append("\n");
toSign.append(creds.get().identity).append("\n");
toSign.append(expires);
return toSign.toString();
}
public String signString(String toSign) {
try {
ByteProcessor<byte[]> hmacSHA1 = asByteProcessor(crypto.hmacSHA1(base64().decode(creds.get().credential)));
return base64().encode(readBytes(toInputStream(toSign), hmacSHA1));
} catch (InvalidKeyException e) {
throw propagate(e);
} catch (IOException e) {
throw propagate(e);
}
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/filters/SignRequest.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.filters;
import static com.google.common.io.BaseEncoding.base64;
import static com.google.common.io.ByteStreams.readBytes;
import static org.jclouds.Constants.LOGGER_SIGNATURE;
import static org.jclouds.crypto.Macs.asByteProcessor;
import static org.jclouds.util.Patterns.NEWLINE_PATTERN;
import static org.jclouds.util.Strings2.toInputStream;
import java.util.Set;
import jakarta.annotation.Resource;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import jakarta.inject.Provider;
import jakarta.inject.Singleton;
import org.jclouds.atmos.reference.AtmosHeaders;
import org.jclouds.crypto.Crypto;
import org.jclouds.date.TimeStamp;
import org.jclouds.domain.Credentials;
import org.jclouds.http.HttpException;
import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpRequestFilter;
import org.jclouds.http.HttpUtils;
import org.jclouds.http.internal.SignatureWire;
import org.jclouds.logging.Logger;
import org.jclouds.util.Strings2;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Strings;
import com.google.common.base.Supplier;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMap.Builder;
import com.google.common.collect.Multimaps;
import com.google.common.collect.Sets;
import com.google.common.io.ByteProcessor;
import com.google.common.net.HttpHeaders;
/**
* Signs the EMC Atmos Online Storage request.
*
* @see <a href="https://community.emc.com/community/labs/atmos_online" />
*/
@Singleton
public class SignRequest implements HttpRequestFilter {
private final SignatureWire signatureWire;
private final Supplier<Credentials> creds;
private final Provider<String> timeStampProvider;
private final Crypto crypto;
private final HttpUtils utils;
@Resource
Logger logger = Logger.NULL;
@Resource
@Named(LOGGER_SIGNATURE)
Logger signatureLog = Logger.NULL;
@Inject
public SignRequest(SignatureWire signatureWire, @org.jclouds.location.Provider Supplier<Credentials> creds,
@TimeStamp Provider<String> timeStampProvider, Crypto crypto, HttpUtils utils) {
this.signatureWire = signatureWire;
this.creds = creds;
this.timeStampProvider = timeStampProvider;
this.crypto = crypto;
this.utils = utils;
}
@Override
public HttpRequest filter(HttpRequest request) throws HttpException {
Builder<String, String> builder = ImmutableMap.builder();
builder.put(AtmosHeaders.UID, creds.get().identity);
String date = timeStampProvider.get();
builder.put(HttpHeaders.DATE, date);
if (request.getFirstHeaderOrNull(AtmosHeaders.DATE) != null)
builder.put(AtmosHeaders.DATE, date);
request = request.toBuilder().replaceHeaders(Multimaps.forMap(builder.build())).build();
String signature = calculateSignature(createStringToSign(request));
request = request.toBuilder().replaceHeader(AtmosHeaders.SIGNATURE, signature).build();
utils.logRequest(signatureLog, request, "<<");
return request;
}
public String createStringToSign(HttpRequest request) {
utils.logRequest(signatureLog, request, ">>");
StringBuilder buffer = new StringBuilder();
// re-sign the request
appendMethod(request, buffer);
appendPayloadMetadata(request, buffer);
appendHttpHeaders(request, buffer);
appendCanonicalizedResource(request, buffer);
appendCanonicalizedHeaders(request, buffer);
if (signatureWire.enabled())
signatureWire.output(buffer.toString());
return buffer.toString();
}
public String calculateSignature(String toSign) {
String signature = signString(toSign);
if (signatureWire.enabled())
signatureWire.input(Strings2.toInputStream(signature));
return signature;
}
public String signString(String toSign) {
try {
ByteProcessor<byte[]> hmacSHA1 = asByteProcessor(crypto.hmacSHA1(base64().decode(creds.get().credential)));
return base64().encode(readBytes(toInputStream(toSign), hmacSHA1));
} catch (Exception e) {
throw new HttpException("error signing request", e);
}
}
private void appendMethod(HttpRequest request, StringBuilder toSign) {
toSign.append(request.getMethod()).append("\n");
}
private void appendCanonicalizedHeaders(HttpRequest request, StringBuilder toSign) {
// TreeSet == Sort the headers alphabetically.
Set<String> headers = Sets.newTreeSet(request.getHeaders().keySet());
for (String header : headers) {
if (header.startsWith("x-emc-") && !header.equals(AtmosHeaders.SIGNATURE)) {
// Convert all header names to lowercase.
toSign.append(header.toLowerCase()).append(":");
// For headers with values that span multiple lines, convert them into one line by
// replacing any
// newline characters and extra embedded white spaces in the value.
for (String value : request.getHeaders().get(header)) {
value = value.replace(" ", " ");
value = NEWLINE_PATTERN.matcher(value).replaceAll("");
toSign.append(value).append(' ');
}
toSign.deleteCharAt(toSign.lastIndexOf(" "));
// Concatenate all headers together, using newlines (\n) separating each header from the
// next one.
toSign.append("\n");
}
}
// There should be no terminating newline character at the end of the last header.
if (toSign.charAt(toSign.length() - 1) == '\n')
toSign.deleteCharAt(toSign.length() - 1);
}
private void appendPayloadMetadata(HttpRequest request, StringBuilder buffer) {
buffer.append(
Strings.nullToEmpty(request.getPayload() == null ? null : request.getPayload().getContentMetadata()
.getContentType())).append("\n");
}
@VisibleForTesting
void appendHttpHeaders(HttpRequest request, StringBuilder toSign) {
// Only the value is used, not the header
// name. If a request does not include the header, this is an empty string.
toSign.append(HttpUtils.nullToEmpty(request.getHeaders().get("Range")).toLowerCase()).append("\n");
// Standard HTTP header, in UTC format. Only the date value is used, not the header name.
toSign.append(request.getFirstHeaderOrNull(HttpHeaders.DATE)).append("\n");
}
@VisibleForTesting
void appendCanonicalizedResource(HttpRequest request, StringBuilder toSign) {
// Path portion of the HTTP request URI, in lowercase.
toSign.append(request.getEndpoint().getRawPath().toLowerCase());
String query = request.getEndpoint().getRawQuery();
if (query != null) {
toSign.append("?").append(query);
}
toSign.append("\n");
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/AtmosObjectName.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.functions;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import jakarta.inject.Singleton;
import org.jclouds.atmos.domain.AtmosObject;
import com.google.common.base.Function;
@Singleton
public class AtmosObjectName implements Function<Object, String> {
@Override
public String apply(Object input) {
checkArgument(checkNotNull(input, "input") instanceof AtmosObject,
"this function is only valid for AtmosObjects!");
AtmosObject object = AtmosObject.class.cast(input);
return checkNotNull(object.getContentMetadata().getName() != null ? object.getContentMetadata().getName()
: object.getSystemMetadata().getObjectName(), "objectName");
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseDirectoryListFromContentAndHeaders.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.functions;
import static com.google.common.base.Preconditions.checkNotNull;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import jakarta.inject.Singleton;
import org.jclouds.atmos.domain.BoundedSet;
import org.jclouds.atmos.domain.DirectoryEntry;
import org.jclouds.atmos.domain.internal.BoundedLinkedHashSet;
import org.jclouds.atmos.reference.AtmosHeaders;
import org.jclouds.atmos.xml.ListDirectoryResponseHandler;
import org.jclouds.http.HttpResponse;
import org.jclouds.http.functions.ParseSax;
import org.jclouds.http.functions.ParseSax.Factory;
import com.google.common.base.Function;
/**
* This parses {@link BoundedSet} from HTTP headers and xml content.
*/
@Singleton
public class ParseDirectoryListFromContentAndHeaders implements Function<HttpResponse, BoundedSet<DirectoryEntry>> {
private final ParseSax.Factory factory;
private final Provider<ListDirectoryResponseHandler> listHandlerProvider;
@Inject
ParseDirectoryListFromContentAndHeaders(Factory factory, Provider<ListDirectoryResponseHandler> listHandlerProvider) {
this.factory = checkNotNull(factory, "factory");
this.listHandlerProvider = checkNotNull(listHandlerProvider, "listHandlerProvider");
}
/**
* parses the http response headers to create a new {@link BoundedSet} object.
*/
public BoundedSet<DirectoryEntry> apply(HttpResponse from) {
checkNotNull(from, "http response");
String token = from.getFirstHeaderOrNull(AtmosHeaders.TOKEN);
return new BoundedLinkedHashSet<DirectoryEntry>(factory.create(listHandlerProvider.get()).parse(
from.getPayload().getInput()), token);
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseObjectFromHeadersAndHttpContent.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.functions;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.jclouds.http.HttpUtils.attemptToParseSizeAndRangeFromHeaders;
import java.net.URI;
import jakarta.inject.Inject;
import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
import org.jclouds.rest.InvocationContext;
import org.jclouds.rest.internal.GeneratedHttpRequest;
import com.google.common.base.Function;
/**
* Parses response headers and creates a new AtmosObject from them and the HTTP content.
*
* @see ParseMetadataFromHeaders
*/
public class ParseObjectFromHeadersAndHttpContent implements Function<HttpResponse, AtmosObject>,
InvocationContext<ParseObjectFromHeadersAndHttpContent> {
private final ParseSystemMetadataFromHeaders systemMetadataParser;
private final ParseUserMetadataFromHeaders userMetadataParser;
private final AtmosObject.Factory objectProvider;
private URI uri;
private String path;
@Inject
public ParseObjectFromHeadersAndHttpContent(ParseSystemMetadataFromHeaders systemMetadataParser,
ParseUserMetadataFromHeaders userMetadataParser, AtmosObject.Factory objectProvider) {
this.systemMetadataParser = checkNotNull(systemMetadataParser, "systemMetadataParser");
this.userMetadataParser = checkNotNull(userMetadataParser, "userMetadataParser");
this.objectProvider = checkNotNull(objectProvider, "objectProvider");
}
/**
* First, calls {@link ParseSystemAndUserMetadataFromHeaders}.
*
* Then, sets the object size based on the Content-Length header and adds the content to the
* {@link AtmosObject} result.
*
* @throws org.jclouds.http.HttpException
*/
public AtmosObject apply(HttpResponse from) {
checkNotNull(from, "http response");
AtmosObject object = objectProvider.create(systemMetadataParser.apply(from), userMetadataParser.apply(from));
object.getContentMetadata().setName(object.getSystemMetadata().getObjectName());
object.getContentMetadata().setPath(path);
object.getContentMetadata().setUri(uri);
object.getAllHeaders().putAll(from.getHeaders());
object.setPayload(from.getPayload());
object.getContentMetadata().setContentLength(attemptToParseSizeAndRangeFromHeaders(from));
object.getContentMetadata().setContentMD5(object.getSystemMetadata().getContentMD5());
return object;
}
@Override
public ParseObjectFromHeadersAndHttpContent setContext(HttpRequest request) {
this.uri = request.getEndpoint();
return setPath(GeneratedHttpRequest.class.cast(request).getInvocation().getArgs().get(0).toString());
}
private ParseObjectFromHeadersAndHttpContent setPath(String path) {
this.path = path;
return this;
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseSystemMetadataFromHeaders.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.functions;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.io.BaseEncoding.base16;
import java.util.Map;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import org.jclouds.atmos.domain.FileType;
import org.jclouds.atmos.domain.SystemMetadata;
import org.jclouds.atmos.reference.AtmosHeaders;
import org.jclouds.date.DateService;
import org.jclouds.http.HttpResponse;
import com.google.common.base.Function;
import com.google.common.base.Splitter;
@Singleton
public class ParseSystemMetadataFromHeaders implements Function<HttpResponse, SystemMetadata> {
private final DateService dateService;
@Inject
public ParseSystemMetadataFromHeaders(DateService dateService) {
this.dateService = checkNotNull(dateService, "dateService");
}
public SystemMetadata apply(HttpResponse from) {
checkNotNull(from, "http response");
String meta = checkNotNull(from.getFirstHeaderOrNull(AtmosHeaders.META), AtmosHeaders.META);
Map<String, String> metaMap = Splitter.on(", ").withKeyValueSeparator('=').split(meta);
assert metaMap.size() >= 12 : String.format("Should be 12 entries in %s", metaMap);
byte[] md5 = null;
String wschecksum = from.getFirstHeaderOrNull(AtmosHeaders.CHECKSUM);
if (wschecksum != null) {
String[] parts = wschecksum.split("/");
if (parts[0].equalsIgnoreCase("MD5") && parts.length == 3) {
md5 = base16().lowerCase().decode(parts[2]);
}
}
return new SystemMetadata(md5, dateService.iso8601SecondsDateParse(checkNotNull(metaMap.get("atime"), "atime")),
dateService.iso8601SecondsDateParse(checkNotNull(metaMap.get("ctime"), "ctime")), checkNotNull(
metaMap.get("gid"), "gid"), dateService.iso8601SecondsDateParse(checkNotNull(metaMap.get("itime"),
"itime")), dateService.iso8601SecondsDateParse(checkNotNull(metaMap.get("mtime"), "mtime")),
Integer.parseInt(checkNotNull(metaMap.get("nlink"), "nlink")), checkNotNull(metaMap.get("objectid"),
"objectid"), checkNotNull(metaMap.get("objname"), "objname"), checkNotNull(metaMap.get("policyname"),
"policyname"), Long.parseLong(checkNotNull(metaMap.get("size"), "size")),
FileType.fromValue(checkNotNull(metaMap.get("type"), "type")), checkNotNull(metaMap.get("uid"), "uid"));
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseUserMetadataFromHeaders.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.functions;
import static com.google.common.base.Preconditions.checkNotNull;
import java.util.Map;
import java.util.Set;
import jakarta.inject.Singleton;
import org.jclouds.atmos.domain.UserMetadata;
import org.jclouds.atmos.reference.AtmosHeaders;
import org.jclouds.http.HttpResponse;
import com.google.common.base.Function;
import com.google.common.base.Predicates;
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Maps;
@Singleton
public class ParseUserMetadataFromHeaders implements Function<HttpResponse, UserMetadata> {
private static final Set<String> SYS_KEYS = ImmutableSet.of(
"atime", "ctime", "gid", "itime", "mtime", "nlink",
"parent",
"policyname", "size", "uid", "content-md5", "objectid", "objname", "type");
public UserMetadata apply(HttpResponse from) {
checkNotNull(from, "http response");
Map<String, String> meta = Maps.filterKeys(
getMetaMap(checkNotNull(from.getFirstHeaderOrNull(AtmosHeaders.META), AtmosHeaders.META)),
Predicates.not(Predicates.in(SYS_KEYS)));
Map<String, String> listableMeta = (from.getFirstHeaderOrNull(AtmosHeaders.LISTABLE_META) != null) ? getMetaMap(from
.getFirstHeaderOrNull(AtmosHeaders.LISTABLE_META)) : ImmutableMap.<String, String> of();
Iterable<String> tags = (from.getFirstHeaderOrNull(AtmosHeaders.TAGS) != null) ? Splitter.on(", ").split(
from.getFirstHeaderOrNull(AtmosHeaders.TAGS)) : ImmutableSet.<String> of();
Iterable<String> listableTags = (from.getFirstHeaderOrNull(AtmosHeaders.LISTABLE_TAGS) != null) ? Splitter
.on(", ").split(from.getFirstHeaderOrNull(AtmosHeaders.LISTABLE_TAGS)) : ImmutableSet.<String> of();
return new UserMetadata(meta, listableMeta, tags, listableTags);
}
private static Map<String, String> getMetaMap(String meta) {
return Splitter.on(", ").withKeyValueSeparator('=').split(meta);
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ReturnTrueIfGroupACLIsOtherRead.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.functions;
import static com.google.common.base.Preconditions.checkNotNull;
import jakarta.inject.Singleton;
import org.jclouds.http.HttpResponse;
import com.google.common.base.Function;
@Singleton
public class ReturnTrueIfGroupACLIsOtherRead implements Function<HttpResponse, Boolean> {
public Boolean apply(HttpResponse from) {
checkNotNull(from, "http response");
return from.getHeaders().containsEntry("x-emc-groupacl", "other=READ");
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/handlers/AtmosClientErrorRetryHandler.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.handlers;
import jakarta.annotation.Resource;
import jakarta.inject.Named;
import org.jclouds.Constants;
import org.jclouds.atmos.domain.AtmosError;
import org.jclouds.atmos.reference.AtmosErrorCode;
import org.jclouds.atmos.util.AtmosUtils;
import org.jclouds.http.HttpCommand;
import org.jclouds.http.HttpException;
import org.jclouds.http.HttpResponse;
import org.jclouds.http.HttpRetryHandler;
import org.jclouds.http.HttpUtils;
import org.jclouds.http.handlers.BackoffLimitedRetryHandler;
import org.jclouds.logging.Logger;
import com.google.inject.Inject;
/**
* Handles Retryable responses with error codes in the 4xx range
*
* @see Error codes section at <a href="https://www.synaptic.att.com/assets/us/en/home/Atmos_Programmers_Guide_1.3.4A.pdf" />
*/
public class AtmosClientErrorRetryHandler implements HttpRetryHandler {
private final AtmosUtils utils;
private final BackoffLimitedRetryHandler backoffHandler;
@Inject
public AtmosClientErrorRetryHandler(BackoffLimitedRetryHandler backoffHandler,
AtmosUtils utils) {
this.backoffHandler = backoffHandler;
this.utils = utils;
}
@Inject(optional = true)
@Named(Constants.PROPERTY_MAX_RETRIES)
private int retryCountLimit = 5;
@Resource
protected Logger logger = Logger.NULL;
public boolean shouldRetryRequest(HttpCommand command, HttpResponse response) {
if (command.getFailureCount() > retryCountLimit)
return false;
if (response.getStatusCode() == 404 && command.getCurrentRequest().getMethod().equals("DELETE")) {
command.incrementFailureCount();
return true;
} else if (response.getStatusCode() == 409) {
byte[] content = HttpUtils.closeClientButKeepContentStream(response);
// Content can be null in the case of HEAD requests
if (content != null) {
try {
AtmosError error = utils.parseAtmosErrorFromContent(command, response,
new String(content));
if (error.getCode() == AtmosErrorCode.CONFLICTING_OPERATION.getCode()) {
return backoffHandler.shouldRetryRequest(command, response);
}
// don't increment count before here, since backoff handler does already
command.incrementFailureCount();
} catch (HttpException e) {
logger.warn(e, "error parsing response: %s", new String(content));
}
} else {
command.incrementFailureCount();
}
return true;
}
return false;
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/handlers/AtmosServerErrorRetryHandler.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.handlers;
import jakarta.annotation.Resource;
import jakarta.inject.Named;
import org.jclouds.Constants;
import org.jclouds.atmos.domain.AtmosError;
import org.jclouds.atmos.reference.AtmosErrorCode;
import org.jclouds.atmos.util.AtmosUtils;
import org.jclouds.http.HttpCommand;
import org.jclouds.http.HttpException;
import org.jclouds.http.HttpResponse;
import org.jclouds.http.HttpRetryHandler;
import org.jclouds.http.HttpUtils;
import org.jclouds.http.handlers.BackoffLimitedRetryHandler;
import org.jclouds.logging.Logger;
import com.google.inject.Inject;
/**
* Handles Retryable responses with error codes in the 5xx range
*
* @see Error codes section at <a href="https://www.synaptic.att.com/assets/us/en/home/Atmos_Programmers_Guide_1.3.4A.pdf" />
*/
public class AtmosServerErrorRetryHandler implements HttpRetryHandler {
private final AtmosUtils utils;
private final BackoffLimitedRetryHandler backoffHandler;
@Inject
public AtmosServerErrorRetryHandler(BackoffLimitedRetryHandler backoffHandler,
AtmosUtils utils) {
this.backoffHandler = backoffHandler;
this.utils = utils;
}
@Inject(optional = true)
@Named(Constants.PROPERTY_MAX_RETRIES)
private int retryCountLimit = 5;
@Resource
protected Logger logger = Logger.NULL;
public boolean shouldRetryRequest(HttpCommand command, HttpResponse response) {
if (command.getFailureCount() > retryCountLimit) {
return false;
}
if (response.getStatusCode() == 500) {
byte[] content = HttpUtils.closeClientButKeepContentStream(response);
// Content can be null in the case of HEAD requests
if (content != null) {
try {
AtmosError error = utils.parseAtmosErrorFromContent(command, response,
new String(content));
if (error.getCode() == AtmosErrorCode.SERVER_BUSY.getCode()) {
return backoffHandler.shouldRetryRequest(command, response);
}
// don't increment count before here, since backoff handler does already
command.incrementFailureCount();
} catch (HttpException e) {
logger.warn(e, "error parsing response: %s", new String(content));
}
} else {
command.incrementFailureCount();
}
return false;
}
return false;
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/handlers/ParseAtmosErrorFromXmlContent.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.handlers;
import static org.jclouds.http.HttpUtils.releasePayload;
import java.io.File;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import jakarta.annotation.Resource;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import org.jclouds.atmos.AtmosResponseException;
import org.jclouds.atmos.domain.AtmosError;
import org.jclouds.atmos.reference.AtmosErrorCode;
import org.jclouds.atmos.util.AtmosUtils;
import org.jclouds.blobstore.ContainerNotFoundException;
import org.jclouds.blobstore.KeyAlreadyExistsException;
import org.jclouds.blobstore.KeyNotFoundException;
import org.jclouds.http.HttpCommand;
import org.jclouds.http.HttpErrorHandler;
import org.jclouds.http.HttpResponse;
import org.jclouds.http.HttpResponseException;
import org.jclouds.logging.Logger;
import org.jclouds.rest.AuthorizationException;
import org.jclouds.util.Strings2;
/**
* This will parse and set an appropriate exception on the command object.
*
* @see AtmosError
*/
@Singleton
public class ParseAtmosErrorFromXmlContent implements HttpErrorHandler {
@Resource
protected Logger logger = Logger.NULL;
private final AtmosUtils utils;
@Inject
public ParseAtmosErrorFromXmlContent(AtmosUtils utils) {
this.utils = utils;
}
public static final Pattern DIRECTORY_PATH = Pattern.compile("^/rest/namespace/?([^/]+)/$");
public static final Pattern DIRECTORY_KEY_PATH = Pattern.compile("^/rest/namespace/?([^/]+)/(.*)");
public void handleError(HttpCommand command, HttpResponse response) {
Exception exception = new HttpResponseException(command, response);
try {
AtmosError error = null;
if (response.getPayload() != null) {
try {
String content = Strings2.toStringAndClose(response.getPayload().openStream());
if (content != null && content.indexOf('<') >= 0) {
error = utils.parseAtmosErrorFromContent(command, response, Strings2.toInputStream(content));
} else {
exception = content != null ? new HttpResponseException(command, response, content) : exception;
}
} catch (IOException e) {
logger.warn(e, "exception reading error from response", response);
}
}
if (error != null && error.getCode() == AtmosErrorCode.RESOURCE_ALREADY_EXISTS.getCode()) {
File file = new File(command.getCurrentRequest().getEndpoint().getPath());
exception = new KeyAlreadyExistsException(file.getParentFile().getAbsolutePath(), file.getName());
} else {
switch (response.getStatusCode()) {
case 401:
exception = new AuthorizationException(exception.getMessage(), exception);
break;
case 404:
if (!command.getCurrentRequest().getMethod().equals("DELETE")) {
String message = error != null ? error.getMessage() : String.format("%s -> %s", command.getCurrentRequest()
.getRequestLine(), response.getStatusLine());
String path = command.getCurrentRequest().getEndpoint().getPath();
Matcher matcher = DIRECTORY_PATH.matcher(path);
if (matcher.find()) {
exception = new ContainerNotFoundException(matcher.group(1), message);
} else {
matcher = DIRECTORY_KEY_PATH.matcher(path);
if (matcher.find()) {
exception = new KeyNotFoundException(matcher.group(1), matcher.group(2), message);
}
}
}
break;
default:
exception = error != null ? new AtmosResponseException(command, response, error)
: new HttpResponseException(command, response);
}
}
} finally {
releasePayload(response);
command.setException(exception);
}
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/options/ListOptions.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.options;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;
import java.util.Collection;
import org.jclouds.http.options.BaseHttpRequestOptions;
import com.google.common.collect.ImmutableList;
/**
* Options used to control paginated results (aka list commands).
*/
public class ListOptions extends BaseHttpRequestOptions {
public static final ListOptions NONE = new ListOptions();
private static final Collection<String> INCLUDE_META = ImmutableList.of(Integer.toString(1));
/**
* specifies the position to resume listing
* <p/>
* note this is an opaque value and should not be interpreted.
*/
public ListOptions token(String token) {
this.headers.put("x-emc-token", checkNotNull(token, "x-emc-token"));
return this;
}
public String getToken() {
return getFirstHeaderOrNull("x-emc-token");
}
/**
* the maximum number of items that should be returned. If this is not specified, there is no
* limit.
*/
public ListOptions limit(int maxresults) {
checkState(maxresults >= 0, "maxresults must be >= 0");
checkState(maxresults <= 10000, "maxresults must be <= 10000");
headers.put("x-emc-limit", Integer.toString(maxresults));
return this;
}
/**
* the maximum number of items that should be returned. If this is not specified, there is no
* limit.
*/
public ListOptions includeMeta() {
headers.replaceValues("x-emc-include-meta", INCLUDE_META);
return this;
}
public boolean metaIncluded() {
String meta = getFirstHeaderOrNull("x-emc-include-meta");
return (meta != null) ? meta.equals("1") : false;
}
public Integer getLimit() {
String maxresults = getFirstHeaderOrNull("x-emc-limit");
return (maxresults != null) ? Integer.valueOf(maxresults) : null;
}
public static class Builder {
/**
* @see ListOptions#token(String)
*/
public static ListOptions token(String token) {
ListOptions options = new ListOptions();
return options.token(token);
}
/**
* @see ListOptions#includeMeta()
*/
public static ListOptions includeMeta() {
ListOptions options = new ListOptions();
return options.includeMeta();
}
/**
* @see ListOptions#limit(int)
*/
public static ListOptions limit(int maxKeys) {
ListOptions options = new ListOptions();
return options.limit(maxKeys);
}
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/options/PutOptions.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.options;
import org.jclouds.http.options.BaseHttpRequestOptions;
/**
* Contains options supported in the REST API for the PUT operations.
* <p/>
* <h2>
* Usage</h2> The recommended way to instantiate a PutOptions object is to statically import
* PutOptions.Builder.* and invoke a static creation method followed by an instance mutator (if
* needed):
* <p/>
* <code>
* import org.jclouds.atmos.options.PutOptions.Builder.*
* import org.jclouds.atmos.AtmosClient;
*
* AtmosClient connection = // get connection
* connection.createDirectory("directory", publicRead());
* <code>
*/
public class PutOptions extends BaseHttpRequestOptions {
public static final PutOptions NONE = new PutOptions();
/**
* Add public access to all users
*
*/
public PutOptions publicRead() {
this.replaceHeader("x-emc-useracl", "root=FULL_CONTROL");
this.replaceHeader("x-emc-groupacl", "other=READ");
return this;
}
public PutOptions publicNone() {
this.replaceHeader("x-emc-useracl", "root=FULL_CONTROL");
this.replaceHeader("x-emc-groupacl", "other=NONE");
return this;
}
/**
* By default Atmos does not allow overwriting objects.
*
* Note: older versions of Atmos do not support this header.
*/
public PutOptions overwrite() {
this.replaceHeader("x-emc-force-overwrite", "true");
return this;
}
public static class Builder {
/**
* @see PutOptions#publicRead
*/
public static PutOptions publicRead() {
PutOptions options = new PutOptions();
return options.publicRead();
}
public static PutOptions publicNone() {
PutOptions options = new PutOptions();
return options.publicNone();
}
public static PutOptions overwrite() {
PutOptions options = new PutOptions();
return options.overwrite();
}
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/reference/AtmosErrorCode.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.reference;
/** Atmos error codes. */
public enum AtmosErrorCode {
/** Operation aborted because of a conflicting operation in progess against the resource. */
CONFLICTING_OPERATION(1006),
/** The directory you are attempting to delete is not empty. */
DIRECTORY_NOT_EMPTY(1023),
/** The requested object was not found. */
OBJECT_NOT_FOUND(1003),
/** The resource you are trying to create already exists. */
RESOURCE_ALREADY_EXISTS(1016),
/** The server is busy. Please try again. */
SERVER_BUSY(1040),
/** There was a mismatch between the signature in the request and the signature as computed by the server. */
SIGNATURE_MISMATCH(1032);
private final int code;
private AtmosErrorCode(int code) {
this.code = code;
}
public int getCode() {
return code;
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/reference/AtmosHeaders.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.reference;
/**
* Query parameters common to Atmos apis.
*
* @see <a href="https://community.emc.com/community/labs/atmos_online" />
*/
public final class AtmosHeaders {
public static final String SIGNATURE = "x-emc-signature";
public static final String LISTABLE_META = "x-emc-listable-meta";
public static final String META = "x-emc-meta";
public static final String LISTABLE_TAGS = "x-emc-listable-tags";
public static final String TAGS = "x-emc-tags";
public static final String USER_ACL = "x-emc-useracl";
public static final String DATE = "x-emc-date";
public static final String GROUP_ACL = "x-emc-groupacl";
public static final String UID = "x-emc-uid";
public static final String TOKEN = "x-emc-token";
public static final String CHECKSUM = "x-emc-wschecksum";
private AtmosHeaders() {
throw new AssertionError("intentionally unimplemented");
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/util/AtmosUtils.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.util;
import static com.google.common.base.Preconditions.checkState;
import static org.jclouds.util.Predicates2.retry;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.net.URI;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
import org.jclouds.atmos.AtmosClient;
import org.jclouds.atmos.blobstore.functions.BlobToObject;
import org.jclouds.atmos.domain.AtmosError;
import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.atmos.filters.SignRequest;
import org.jclouds.atmos.options.PutOptions;
import org.jclouds.atmos.reference.AtmosErrorCode;
import org.jclouds.atmos.xml.ErrorHandler;
import org.jclouds.blobstore.ContainerNotFoundException;
import org.jclouds.blobstore.KeyAlreadyExistsException;
import org.jclouds.blobstore.domain.Blob;
import org.jclouds.crypto.Crypto;
import org.jclouds.http.HttpCommand;
import org.jclouds.http.HttpException;
import org.jclouds.http.HttpResponse;
import org.jclouds.http.functions.ParseSax;
import com.google.common.base.Predicate;
/**
* Encryption, Hashing, and IO Utilities needed to sign and verify Atmos Storage requests and
* responses.
*/
public class AtmosUtils {
@Inject
SignRequest signer;
@Inject
ParseSax.Factory factory;
@Inject
Provider<ErrorHandler> errorHandlerProvider;
public AtmosError parseAtmosErrorFromContent(HttpCommand command, HttpResponse response, InputStream content)
throws HttpException {
AtmosError error = factory.create(errorHandlerProvider.get()).parse(content);
if (error.getCode() == AtmosErrorCode.SIGNATURE_MISMATCH.getCode()) {
error.setStringSigned(signer.createStringToSign(command.getCurrentRequest()));
}
return error;
}
public static String putBlob(final AtmosClient sync, Crypto crypto, BlobToObject blob2Object, String container,
Blob blob, PutOptions options) {
final String path = container + "/" + blob.getMetadata().getName();
final AtmosObject object = blob2Object.apply(blob);
URI uri;
try {
uri = sync.createFile(container, object, options);
} catch (KeyAlreadyExistsException e) {
deletePathAndEnsureGone(sync, path);
uri = sync.createFile(container, object, options);
}
// return object ID as the ETag
String objectId = uri.getPath();
String prefix = "/rest/objects/";
checkState(objectId.startsWith(prefix), objectId);
return objectId.substring(prefix.length());
}
public static void deletePathAndEnsureGone(final AtmosClient sync, String path) {
checkState(retry(new Predicate<String>() {
public boolean apply(String in) {
try {
sync.deletePath(in);
return !sync.pathExists(in);
} catch (ContainerNotFoundException e) {
return true;
}
}
}, 3000).apply(path), "%s still exists after deleting!", path);
}
public AtmosError parseAtmosErrorFromContent(HttpCommand command, HttpResponse response, String content)
throws HttpException {
return parseAtmosErrorFromContent(command, response, new ByteArrayInputStream(content.getBytes()));
}
public static String adjustContainerIfDirOptionPresent(String container,
org.jclouds.blobstore.options.ListContainerOptions options) {
if (options != org.jclouds.blobstore.options.ListContainerOptions.NONE) {
// if (options.isRecursive()) {
// throw new UnsupportedOperationException("recursive not currently supported in emcsaas");
// }
if (options.getDir() != null) {
container = container + "/" + options.getDir();
}
}
return container;
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/xml/ErrorHandler.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.xml;
import org.jclouds.atmos.domain.AtmosError;
import org.jclouds.http.functions.ParseSax;
/**
* Parses the error from the Atmos Online Storage REST API.
*/
public class ErrorHandler extends ParseSax.HandlerWithResult<AtmosError> {
private StringBuilder currentText = new StringBuilder();
private int code;
private String message;
public AtmosError getResult() {
return new AtmosError(code, message);
}
public void endElement(String uri, String name, String qName) {
if (qName.equals("Code")) {
this.code = Integer.parseInt(currentText.toString().trim());
} else if (qName.equals("Message")) {
this.message = currentText.toString().trim();
}
currentText.setLength(0);
}
public void characters(char[] ch, int start, int length) {
currentText.append(ch, start, length);
}
}
================================================
FILE: apis/atmos/src/main/java/org/jclouds/atmos/xml/ListDirectoryResponseHandler.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos.xml;
import java.util.Date;
import java.util.Set;
import jakarta.inject.Inject;
import org.jclouds.atmos.domain.DirectoryEntry;
import org.jclouds.atmos.domain.FileType;
import org.jclouds.date.DateService;
import org.jclouds.http.functions.ParseSax;
import com.google.common.collect.Sets;
/**
* Parses an object list
* <p/>
*
* @see <a href="https://community.emc.com/community/labs/atmos_online" />
*/
public class ListDirectoryResponseHandler extends ParseSax.HandlerWithResult<Set<DirectoryEntry>> {
private Set<DirectoryEntry> entries = Sets.newLinkedHashSet();
private String currentObjectId;
private FileType currentType;
private String currentFileName;
private long currentSize;
private Date currentModificationTime;
// metadata parsing
private String currentName;
private StringBuilder currentText = new StringBuilder();
private final DateService dateService;
@Inject
ListDirectoryResponseHandler(DateService dateService) {
this.dateService = dateService;
}
public Set<DirectoryEntry> getResult() {
return entries;
}
public void endElement(String uri, String name, String qName) {
if (qName.equals("ObjectID")) {
currentObjectId = currentText.toString().trim();
} else if (qName.equals("FileType")) {
currentType = FileType.fromValue(currentText.toString().trim());
} else if (qName.equals("Filename")) {
currentFileName = currentText.toString().trim();
if (currentFileName.equals(""))
currentFileName = null;
} else if (qName.equals("Name")) {
currentName = currentText.toString().trim();
} else if (qName.equals("Value")) {
if (currentName.equals("size")) {
currentSize = Long.parseLong(currentText.toString().trim());
} else if (currentName.equals("mtime")) {
currentModificationTime = dateService.iso8601DateOrSecondsDateParse(currentText.toString().trim());
}
} else if (qName.equals("DirectoryEntry")) {
entries.add(new DirectoryEntry(currentObjectId, currentType, currentFileName, currentSize, currentModificationTime));
}
currentText.setLength(0);
}
public void characters(char[] ch, int start, int length) {
currentText.append(ch, start, length);
}
}
================================================
FILE: apis/atmos/src/test/java/org/jclouds/atmos/AtmosApiMetadataTest.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos;
import org.jclouds.blobstore.internal.BaseBlobStoreApiMetadataTest;
import org.testng.annotations.Test;
@Test(groups = "unit", testName = "AtmosApiMetadataTest")
public class AtmosApiMetadataTest extends BaseBlobStoreApiMetadataTest {
public AtmosApiMetadataTest() {
super(new AtmosApiMetadata());
}
}
================================================
FILE: apis/atmos/src/test/java/org/jclouds/atmos/AtmosClientLiveTest.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jclouds.atmos;
import static com.google.common.base.Charsets.UTF_8;
import static com.google.common.base.Preconditions.checkState;
import static org.jclouds.util.Predicates2.retry;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNull;
import java.io.IOException;
import java.lang.reflect.UndeclaredThrowableException;
import java.net.URI;
import java.security.SecureRandom;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeoutException;
import org.jclouds.atmos.domain.AtmosObject;
import org.jclouds.atmos.domain.BoundedSet;
import org.jclouds.atmos.domain.DirectoryEntry;
import org.jclouds.atmos.domain.FileType;
import org.jclouds.atmos.domain.SystemMetadata;
import org.jclouds.atmos.options.ListOptions;
import org.jclouds.blobstore.ContainerNotFoundException;
import org.jclouds.blobstore.KeyAlreadyExistsException;
import org.jclouds.blobstore.KeyNotFoundException;
import org.jclouds.blobstore.integration.internal.BaseBlobStoreInteg
Showing preview only (719K chars total). Download the full file or copy to clipboard to get everything.
gitextract_4xvek8ry/ ├── .asf.yaml ├── .dir-locals.el ├── .gitattributes ├── .github/ │ └── workflows/ │ └── ci.yaml ├── .gitignore ├── .mailmap ├── CONTRIBUTING.md ├── README.md ├── all/ │ └── pom.xml ├── allblobstore/ │ └── pom.xml ├── allcompute/ │ └── pom.xml ├── allloadbalancer/ │ └── pom.xml ├── apis/ │ ├── atmos/ │ │ ├── README.txt │ │ ├── bnd.bnd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── atmos/ │ │ │ ├── AtmosApiMetadata.java │ │ │ ├── AtmosClient.java │ │ │ ├── AtmosResponseException.java │ │ │ ├── binders/ │ │ │ │ ├── BindMetadataToHeaders.java │ │ │ │ └── BindUserMetadataToHeaders.java │ │ │ ├── blobstore/ │ │ │ │ ├── AtmosBlobRequestSigner.java │ │ │ │ ├── AtmosBlobStore.java │ │ │ │ ├── config/ │ │ │ │ │ └── AtmosBlobStoreContextModule.java │ │ │ │ └── functions/ │ │ │ │ ├── BlobMetadataToObject.java │ │ │ │ ├── BlobStoreListOptionsToListOptions.java │ │ │ │ ├── BlobToContentMetadata.java │ │ │ │ ├── BlobToObject.java │ │ │ │ ├── BlobToSystemMetadata.java │ │ │ │ ├── DirectoryEntryListToResourceMetadataList.java │ │ │ │ ├── ObjectToBlob.java │ │ │ │ └── ObjectToBlobMetadata.java │ │ │ ├── config/ │ │ │ │ ├── AtmosHttpApiModule.java │ │ │ │ ├── AtmosObjectModule.java │ │ │ │ └── AtmosParserModule.java │ │ │ ├── domain/ │ │ │ │ ├── AtmosError.java │ │ │ │ ├── AtmosObject.java │ │ │ │ ├── BoundedSet.java │ │ │ │ ├── DirectoryEntry.java │ │ │ │ ├── FileType.java │ │ │ │ ├── MutableContentMetadata.java │ │ │ │ ├── SystemMetadata.java │ │ │ │ ├── UploadInfo.java │ │ │ │ ├── UserMetadata.java │ │ │ │ └── internal/ │ │ │ │ ├── AtmosObjectImpl.java │ │ │ │ ├── BoundedLinkedHashSet.java │ │ │ │ └── DelegatingMutableContentMetadata.java │ │ │ ├── fallbacks/ │ │ │ │ ├── EndpointIfAlreadyExists.java │ │ │ │ └── TrueOn404FalseOnPathNotEmpty.java │ │ │ ├── filters/ │ │ │ │ ├── ShareUrl.java │ │ │ │ └── SignRequest.java │ │ │ ├── functions/ │ │ │ │ ├── AtmosObjectName.java │ │ │ │ ├── ParseDirectoryListFromContentAndHeaders.java │ │ │ │ ├── ParseObjectFromHeadersAndHttpContent.java │ │ │ │ ├── ParseSystemMetadataFromHeaders.java │ │ │ │ ├── ParseUserMetadataFromHeaders.java │ │ │ │ └── ReturnTrueIfGroupACLIsOtherRead.java │ │ │ ├── handlers/ │ │ │ │ ├── AtmosClientErrorRetryHandler.java │ │ │ │ ├── AtmosServerErrorRetryHandler.java │ │ │ │ └── ParseAtmosErrorFromXmlContent.java │ │ │ ├── options/ │ │ │ │ ├── ListOptions.java │ │ │ │ └── PutOptions.java │ │ │ ├── reference/ │ │ │ │ ├── AtmosErrorCode.java │ │ │ │ └── AtmosHeaders.java │ │ │ ├── util/ │ │ │ │ └── AtmosUtils.java │ │ │ └── xml/ │ │ │ ├── ErrorHandler.java │ │ │ └── ListDirectoryResponseHandler.java │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── atmos/ │ │ │ ├── AtmosApiMetadataTest.java │ │ │ ├── AtmosClientLiveTest.java │ │ │ ├── AtmosClientTest.java │ │ │ ├── binders/ │ │ │ │ ├── BindMetadataToHeadersTest.java │ │ │ │ └── BindUserMetadataToHeadersTest.java │ │ │ ├── blobstore/ │ │ │ │ ├── AtmosBlobRequestSignerTest.java │ │ │ │ ├── functions/ │ │ │ │ │ ├── ListOptionsToBlobStoreListOptions.java │ │ │ │ │ └── ResourceMetadataListToDirectoryEntryList.java │ │ │ │ └── integration/ │ │ │ │ ├── AtmosBlobSignerLiveTest.java │ │ │ │ ├── AtmosContainerIntegrationLiveTest.java │ │ │ │ ├── AtmosContainerLiveTest.java │ │ │ │ ├── AtmosIntegrationLiveTest.java │ │ │ │ ├── AtmosLiveTest.java │ │ │ │ └── AtmosServiceIntegrationLiveTest.java │ │ │ ├── fallbacks/ │ │ │ │ └── EndpointIfAlreadyExistsTest.java │ │ │ ├── filters/ │ │ │ │ └── SignRequestTest.java │ │ │ ├── functions/ │ │ │ │ ├── AtmosObjectNameTest.java │ │ │ │ ├── ParseDirectoryListFromContentAndHeadersTest.java │ │ │ │ ├── ParseObjectFromHeadersAndHttpContentTest.java │ │ │ │ ├── ParseSystemMetadataFromHeadersTest.java │ │ │ │ └── ParseUserMetadataFromHeadersTest.java │ │ │ ├── handlers/ │ │ │ │ └── AtmosServerErrorRetryHandlerTest.java │ │ │ ├── options/ │ │ │ │ └── ListOptionsTest.java │ │ │ └── xml/ │ │ │ ├── ErrorHandlerTest.java │ │ │ └── ListDirectoryResponseHandlerTest.java │ │ └── resources/ │ │ ├── error.xml │ │ ├── hashstring.txt │ │ ├── list_basic.xml │ │ ├── list_meta.xml │ │ └── log4j.xml │ ├── byon/ │ │ ├── README.txt │ │ ├── bnd.bnd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── byon/ │ │ │ ├── BYONApiMetadata.java │ │ │ ├── Node.java │ │ │ ├── config/ │ │ │ │ ├── BYONComputeServiceContextModule.java │ │ │ │ ├── CacheNodeStoreModule.java │ │ │ │ ├── ConfiguresNodeStore.java │ │ │ │ └── YamlNodeStoreModule.java │ │ │ ├── domain/ │ │ │ │ └── YamlNode.java │ │ │ ├── functions/ │ │ │ │ ├── NodeToNodeMetadata.java │ │ │ │ └── NodesFromYamlStream.java │ │ │ ├── internal/ │ │ │ │ └── BYONComputeServiceAdapter.java │ │ │ └── suppliers/ │ │ │ ├── NodesParsedFromSupplier.java │ │ │ └── SupplyFromProviderURIOrNodesProperty.java │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── byon/ │ │ │ ├── BYONApiMetadataTest.java │ │ │ ├── BYONComputeServiceLiveTest.java │ │ │ ├── BYONComputeServiceTest.java │ │ │ ├── config/ │ │ │ │ ├── CacheNodeStoreModuleTest.java │ │ │ │ └── YamlNodeStoreModuleTest.java │ │ │ ├── functions/ │ │ │ │ ├── NodeToNodeMetadataTest.java │ │ │ │ └── NodesFromYamlTest.java │ │ │ └── suppliers/ │ │ │ ├── NodesParsedFromSupplierTest.java │ │ │ └── SupplyFromProviderURIOrNodesPropertyTest.java │ │ └── resources/ │ │ ├── log4j.xml │ │ ├── test1.yaml │ │ ├── test_location.yaml │ │ ├── test_with_url.yaml │ │ └── testkey.txt │ ├── chef/ │ │ ├── bnd.bnd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ ├── chef/ │ │ │ │ ├── ChefApi.java │ │ │ │ ├── ChefApiMetadata.java │ │ │ │ ├── ChefService.java │ │ │ │ ├── binders/ │ │ │ │ │ ├── BindChecksumsToJsonPayload.java │ │ │ │ │ ├── BindCreateClientOptionsToJsonPayload.java │ │ │ │ │ ├── BindGenerateKeyForClientToJsonPayload.java │ │ │ │ │ ├── BindGroupToUpdateRequestJsonPayload.java │ │ │ │ │ ├── DatabagItemId.java │ │ │ │ │ ├── EnvironmentName.java │ │ │ │ │ ├── GroupName.java │ │ │ │ │ ├── NodeName.java │ │ │ │ │ └── RoleName.java │ │ │ │ ├── config/ │ │ │ │ │ ├── ChefBootstrapModule.java │ │ │ │ │ ├── ChefHttpApiModule.java │ │ │ │ │ ├── ChefParserModule.java │ │ │ │ │ ├── ChefProperties.java │ │ │ │ │ ├── InstallChef.java │ │ │ │ │ └── Validator.java │ │ │ │ ├── domain/ │ │ │ │ │ ├── Attribute.java │ │ │ │ │ ├── BootstrapConfig.java │ │ │ │ │ ├── ChecksumStatus.java │ │ │ │ │ ├── Client.java │ │ │ │ │ ├── CookbookDefinition.java │ │ │ │ │ ├── CookbookVersion.java │ │ │ │ │ ├── DatabagItem.java │ │ │ │ │ ├── Environment.java │ │ │ │ │ ├── Group.java │ │ │ │ │ ├── Grouping.java │ │ │ │ │ ├── Metadata.java │ │ │ │ │ ├── Node.java │ │ │ │ │ ├── Resource.java │ │ │ │ │ ├── Role.java │ │ │ │ │ ├── Sandbox.java │ │ │ │ │ ├── SearchResult.java │ │ │ │ │ ├── UploadSandbox.java │ │ │ │ │ └── User.java │ │ │ │ ├── features/ │ │ │ │ │ └── OrganizationApi.java │ │ │ │ ├── filters/ │ │ │ │ │ └── SignedHeaderAuth.java │ │ │ │ ├── functions/ │ │ │ │ │ ├── BootstrapConfigForGroup.java │ │ │ │ │ ├── ClientForGroup.java │ │ │ │ │ ├── GroupToBootScript.java │ │ │ │ │ ├── ParseCookbookDefinitionFromJson.java │ │ │ │ │ ├── ParseCookbookDefinitionListFromJson.java │ │ │ │ │ ├── ParseCookbookNamesFromJson.java │ │ │ │ │ ├── ParseCookbookVersionsFromJson.java │ │ │ │ │ ├── ParseErrorFromJsonOrReturnBody.java │ │ │ │ │ ├── ParseKeySetFromJson.java │ │ │ │ │ ├── ParseSearchClientsFromJson.java │ │ │ │ │ ├── ParseSearchDatabagFromJson.java │ │ │ │ │ ├── ParseSearchEnvironmentsFromJson.java │ │ │ │ │ ├── ParseSearchNodesFromJson.java │ │ │ │ │ ├── ParseSearchResultFromJson.java │ │ │ │ │ ├── ParseSearchRolesFromJson.java │ │ │ │ │ └── UriForResource.java │ │ │ │ ├── handlers/ │ │ │ │ │ ├── ChefApiErrorRetryHandler.java │ │ │ │ │ └── ChefErrorHandler.java │ │ │ │ ├── internal/ │ │ │ │ │ └── BaseChefService.java │ │ │ │ ├── options/ │ │ │ │ │ ├── CreateClientOptions.java │ │ │ │ │ └── SearchOptions.java │ │ │ │ ├── predicates/ │ │ │ │ │ └── CookbookVersionPredicates.java │ │ │ │ ├── strategy/ │ │ │ │ │ ├── CleanupStaleNodesAndClients.java │ │ │ │ │ ├── CreateNodeAndPopulateAutomaticAttributes.java │ │ │ │ │ ├── DeleteAllClientsInList.java │ │ │ │ │ ├── DeleteAllNodesInList.java │ │ │ │ │ ├── ListClients.java │ │ │ │ │ ├── ListCookbookVersions.java │ │ │ │ │ ├── ListCookbookVersionsInEnvironment.java │ │ │ │ │ ├── ListEnvironments.java │ │ │ │ │ ├── ListNodes.java │ │ │ │ │ ├── ListNodesInEnvironment.java │ │ │ │ │ ├── UpdateAutomaticAttributesOnNode.java │ │ │ │ │ └── internal/ │ │ │ │ │ ├── BaseListCookbookVersionsImpl.java │ │ │ │ │ ├── BaseListNodesImpl.java │ │ │ │ │ ├── CleanupStaleNodesAndClientsImpl.java │ │ │ │ │ ├── CreateNodeAndPopulateAutomaticAttributesImpl.java │ │ │ │ │ ├── DeleteAllClientsInListImpl.java │ │ │ │ │ ├── DeleteAllNodesInListImpl.java │ │ │ │ │ ├── ListClientsImpl.java │ │ │ │ │ ├── ListCookbookVersionsImpl.java │ │ │ │ │ ├── ListCookbookVersionsInEnvironmentImpl.java │ │ │ │ │ ├── ListEnvironmentsImpl.java │ │ │ │ │ ├── ListNodesImpl.java │ │ │ │ │ ├── ListNodesInEnvironmentImpl.java │ │ │ │ │ └── UpdateAutomaticAttributesOnNodeImpl.java │ │ │ │ ├── suppliers/ │ │ │ │ │ └── ChefVersionSupplier.java │ │ │ │ └── util/ │ │ │ │ ├── ChefUtils.java │ │ │ │ ├── CollectionUtils.java │ │ │ │ └── RunListBuilder.java │ │ │ └── ohai/ │ │ │ ├── Automatic.java │ │ │ ├── AutomaticSupplier.java │ │ │ ├── config/ │ │ │ │ ├── ConfiguresOhai.java │ │ │ │ ├── JMXOhaiModule.java │ │ │ │ └── OhaiModule.java │ │ │ ├── functions/ │ │ │ │ ├── ByteArrayToMacAddress.java │ │ │ │ ├── MapSetToMultimap.java │ │ │ │ └── NestSlashKeys.java │ │ │ └── suppliers/ │ │ │ └── UptimeSecondsSupplier.java │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ ├── chef/ │ │ │ │ ├── BaseChefApiExpectTest.java │ │ │ │ ├── ChefApiDelegationTest.java │ │ │ │ ├── ChefApiExpectTest.java │ │ │ │ ├── ChefApiLiveTest.java │ │ │ │ ├── ChefApiMetadataTest.java │ │ │ │ ├── ChefApiTest.java │ │ │ │ ├── binders/ │ │ │ │ │ ├── BindGroupToUpdateRequestJsonPayloadTest.java │ │ │ │ │ ├── BindHexEncodedMD5sToJsonPayloadTest.java │ │ │ │ │ └── GroupNameTest.java │ │ │ │ ├── config/ │ │ │ │ │ └── ChefParserModuleTest.java │ │ │ │ ├── domain/ │ │ │ │ │ └── RoleTest.java │ │ │ │ ├── features/ │ │ │ │ │ ├── OrganizationApiExpectTest.java │ │ │ │ │ └── OrganizationApiLiveTest.java │ │ │ │ ├── filters/ │ │ │ │ │ └── SignedHeaderAuthTest.java │ │ │ │ ├── functions/ │ │ │ │ │ ├── BootstrapConfigForGroupTest.java │ │ │ │ │ ├── ClientForGroupTest.java │ │ │ │ │ ├── GroupToBootScriptTest.java │ │ │ │ │ ├── ParseClientFromJsonTest.java │ │ │ │ │ ├── ParseCookbookDefinitionFromJsonTest.java │ │ │ │ │ ├── ParseCookbookDefinitionListFromJsonTest.java │ │ │ │ │ ├── ParseCookbookNamesFromJsonTest.java │ │ │ │ │ ├── ParseCookbookVersionFromJsonTest.java │ │ │ │ │ ├── ParseCookbookVersionsFromJsonTest.java │ │ │ │ │ ├── ParseDataBagItemFromJsonTest.java │ │ │ │ │ ├── ParseErrorFromJsonOrReturnBodyTest.java │ │ │ │ │ ├── ParseKeySetFromJsonTest.java │ │ │ │ │ ├── ParseNodeFromJsonTest.java │ │ │ │ │ ├── ParseSandboxFromJsonTest.java │ │ │ │ │ ├── ParseSearchDataBagItemFromJsonTest.java │ │ │ │ │ ├── ParseUploadSandboxFromJsonTest.java │ │ │ │ │ └── UriForResourceTest.java │ │ │ │ ├── handlers/ │ │ │ │ │ └── ChefApiErrorRetryHandlerTest.java │ │ │ │ ├── internal/ │ │ │ │ │ ├── BaseChefLiveTest.java │ │ │ │ │ └── BaseChefServiceTest.java │ │ │ │ ├── strategy/ │ │ │ │ │ └── internal/ │ │ │ │ │ ├── CleanupStaleNodesAndClientsImplLiveTest.java │ │ │ │ │ ├── CreateNodeAndPopulateAutomaticAttributesImplLiveTest.java │ │ │ │ │ ├── CreateNodeAndPopulateAutomaticAttributesImplTest.java │ │ │ │ │ ├── DeleteAllApisAndNodesInListImplLiveTest.java │ │ │ │ │ ├── ListCookbookVersionsInEnvironmentImplLiveTest.java │ │ │ │ │ ├── ListNodesImplLiveTest.java │ │ │ │ │ ├── ListNodesInEnvironmentImplLiveTest.java │ │ │ │ │ ├── UpdateAutomaticAttributesOnNodeImplLiveTest.java │ │ │ │ │ └── UpdateAutomaticAttributesOnNodeImplTest.java │ │ │ │ ├── suppliers/ │ │ │ │ │ └── ChefVersionSupplierTest.java │ │ │ │ └── util/ │ │ │ │ ├── ChefUtilsTest.java │ │ │ │ └── RunListBuilderTest.java │ │ │ └── ohai/ │ │ │ ├── config/ │ │ │ │ ├── JMXTest.java │ │ │ │ └── OhaiModuleTest.java │ │ │ └── functions/ │ │ │ ├── ByteArrayToMacAddressTest.java │ │ │ └── NestSlashKeysTest.java │ │ └── resources/ │ │ ├── apache-chef-demo-cookbook.json │ │ ├── bootstrap-env-noattrs.sh │ │ ├── bootstrap-env.sh │ │ ├── bootstrap-node-env.sh │ │ ├── bootstrap-ssl.sh │ │ ├── bootstrap.sh │ │ ├── brew-cookbook.json │ │ ├── chef.crt │ │ ├── client-no-pub-key.json │ │ ├── client.json │ │ ├── clients_list.json │ │ ├── data_list.json │ │ ├── env_cookbooks.json │ │ ├── environment_recipes.json │ │ ├── group-update.json │ │ ├── group.json │ │ ├── groups.json │ │ ├── logback.xml │ │ ├── mysql-cookbook.json │ │ ├── node.json │ │ ├── nodes_list.json │ │ ├── privkey.txt │ │ ├── pubkey.txt │ │ ├── roles_list.json │ │ ├── sandbox.json │ │ ├── search_role.json │ │ ├── search_role_empty.json │ │ ├── tomcat-cookbook.json │ │ ├── upload-site.json │ │ └── user.json │ ├── cloudstack/ │ │ ├── bnd.bnd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── cloudstack/ │ │ │ ├── AsyncJobException.java │ │ │ ├── CloudStackApi.java │ │ │ ├── CloudStackApiMetadata.java │ │ │ ├── CloudStackContext.java │ │ │ ├── CloudStackDomainApi.java │ │ │ ├── CloudStackGlobalApi.java │ │ │ ├── binders/ │ │ │ │ ├── BindAccountSecurityGroupPairsToIndexedQueryParams.java │ │ │ │ ├── BindCIDRsToCommaDelimitedQueryParam.java │ │ │ │ ├── BindIdListToCommaDelimitedQueryParam.java │ │ │ │ ├── BindSnapshotPolicyScheduleToQueryParam.java │ │ │ │ ├── BindTemplateMetadataToQueryParams.java │ │ │ │ └── ResourceLimitToQueryParams.java │ │ │ ├── compute/ │ │ │ │ ├── CloudStackComputeService.java │ │ │ │ ├── config/ │ │ │ │ │ └── CloudStackComputeServiceContextModule.java │ │ │ │ ├── extensions/ │ │ │ │ │ ├── CloudStackImageExtension.java │ │ │ │ │ └── CloudStackSecurityGroupExtension.java │ │ │ │ ├── functions/ │ │ │ │ │ ├── CloudStackSecurityGroupToSecurityGroup.java │ │ │ │ │ ├── IngressRuleToIpPermission.java │ │ │ │ │ ├── OrphanedGroupsByZoneId.java │ │ │ │ │ ├── ServiceOfferingToHardware.java │ │ │ │ │ ├── TemplateToImage.java │ │ │ │ │ ├── TemplateToOperatingSystem.java │ │ │ │ │ ├── VirtualMachineToNodeMetadata.java │ │ │ │ │ └── ZoneToLocation.java │ │ │ │ ├── loaders/ │ │ │ │ │ ├── CreateUniqueKeyPair.java │ │ │ │ │ └── FindSecurityGroupOrCreate.java │ │ │ │ ├── options/ │ │ │ │ │ └── CloudStackTemplateOptions.java │ │ │ │ ├── predicates/ │ │ │ │ │ └── AllNodesInGroupTerminated.java │ │ │ │ └── strategy/ │ │ │ │ ├── AdvancedNetworkOptionsConverter.java │ │ │ │ ├── BasicNetworkOptionsConverter.java │ │ │ │ ├── CloudStackComputeServiceAdapter.java │ │ │ │ └── OptionsConverter.java │ │ │ ├── config/ │ │ │ │ ├── CloudStackHttpApiModule.java │ │ │ │ ├── CloudStackParserModule.java │ │ │ │ ├── CloudStackProperties.java │ │ │ │ └── CredentialType.java │ │ │ ├── domain/ │ │ │ │ ├── Account.java │ │ │ │ ├── Alert.java │ │ │ │ ├── AllocationState.java │ │ │ │ ├── ApiKeyPair.java │ │ │ │ ├── AsyncCreateResponse.java │ │ │ │ ├── AsyncJob.java │ │ │ │ ├── AsyncJobError.java │ │ │ │ ├── Capabilities.java │ │ │ │ ├── Capacity.java │ │ │ │ ├── Cluster.java │ │ │ │ ├── ConfigurationEntry.java │ │ │ │ ├── DiskOffering.java │ │ │ │ ├── Domain.java │ │ │ │ ├── EncryptedPasswordAndPrivateKey.java │ │ │ │ ├── Event.java │ │ │ │ ├── ExtractMode.java │ │ │ │ ├── FirewallRule.java │ │ │ │ ├── GuestIPType.java │ │ │ │ ├── Host.java │ │ │ │ ├── IPForwardingRule.java │ │ │ │ ├── ISO.java │ │ │ │ ├── ISOExtraction.java │ │ │ │ ├── ISOPermissions.java │ │ │ │ ├── IngressRule.java │ │ │ │ ├── JobResult.java │ │ │ │ ├── LoadBalancerRule.java │ │ │ │ ├── LoginResponse.java │ │ │ │ ├── NIC.java │ │ │ │ ├── Network.java │ │ │ │ ├── NetworkOffering.java │ │ │ │ ├── NetworkOfferingAvailabilityType.java │ │ │ │ ├── NetworkService.java │ │ │ │ ├── NetworkType.java │ │ │ │ ├── OSType.java │ │ │ │ ├── PermissionOperation.java │ │ │ │ ├── Pod.java │ │ │ │ ├── PortForwardingRule.java │ │ │ │ ├── Project.java │ │ │ │ ├── PublicIPAddress.java │ │ │ │ ├── ResourceLimit.java │ │ │ │ ├── SecurityGroup.java │ │ │ │ ├── ServiceOffering.java │ │ │ │ ├── Snapshot.java │ │ │ │ ├── SnapshotPolicy.java │ │ │ │ ├── SnapshotPolicySchedule.java │ │ │ │ ├── SshKeyPair.java │ │ │ │ ├── StoragePool.java │ │ │ │ ├── StorageType.java │ │ │ │ ├── SystemVmType.java │ │ │ │ ├── Tag.java │ │ │ │ ├── Template.java │ │ │ │ ├── TemplateExtraction.java │ │ │ │ ├── TemplateFilter.java │ │ │ │ ├── TemplateMetadata.java │ │ │ │ ├── TemplatePermission.java │ │ │ │ ├── TrafficType.java │ │ │ │ ├── UsageRecord.java │ │ │ │ ├── User.java │ │ │ │ ├── VMGroup.java │ │ │ │ ├── VirtualMachine.java │ │ │ │ ├── VlanIPRange.java │ │ │ │ ├── Volume.java │ │ │ │ ├── Zone.java │ │ │ │ ├── ZoneAndName.java │ │ │ │ └── ZoneSecurityGroupNamePortsCidrs.java │ │ │ ├── features/ │ │ │ │ ├── AccountApi.java │ │ │ │ ├── AddressApi.java │ │ │ │ ├── AsyncJobApi.java │ │ │ │ ├── ConfigurationApi.java │ │ │ │ ├── DomainAccountApi.java │ │ │ │ ├── DomainDomainApi.java │ │ │ │ ├── DomainLimitApi.java │ │ │ │ ├── DomainUserApi.java │ │ │ │ ├── EventApi.java │ │ │ │ ├── FirewallApi.java │ │ │ │ ├── GlobalAccountApi.java │ │ │ │ ├── GlobalAlertApi.java │ │ │ │ ├── GlobalCapacityApi.java │ │ │ │ ├── GlobalConfigurationApi.java │ │ │ │ ├── GlobalDomainApi.java │ │ │ │ ├── GlobalHostApi.java │ │ │ │ ├── GlobalOfferingApi.java │ │ │ │ ├── GlobalPodApi.java │ │ │ │ ├── GlobalStoragePoolApi.java │ │ │ │ ├── GlobalUsageApi.java │ │ │ │ ├── GlobalUserApi.java │ │ │ │ ├── GlobalVlanApi.java │ │ │ │ ├── GlobalZoneApi.java │ │ │ │ ├── GuestOSApi.java │ │ │ │ ├── HypervisorApi.java │ │ │ │ ├── ISOApi.java │ │ │ │ ├── LimitApi.java │ │ │ │ ├── LoadBalancerApi.java │ │ │ │ ├── NATApi.java │ │ │ │ ├── NetworkApi.java │ │ │ │ ├── OfferingApi.java │ │ │ │ ├── ProjectApi.java │ │ │ │ ├── SSHKeyPairApi.java │ │ │ │ ├── SecurityGroupApi.java │ │ │ │ ├── SessionApi.java │ │ │ │ ├── SnapshotApi.java │ │ │ │ ├── TagApi.java │ │ │ │ ├── TemplateApi.java │ │ │ │ ├── VMGroupApi.java │ │ │ │ ├── VirtualMachineApi.java │ │ │ │ ├── VolumeApi.java │ │ │ │ └── ZoneApi.java │ │ │ ├── filters/ │ │ │ │ ├── AddSessionKeyAndJSessionIdToRequest.java │ │ │ │ ├── AuthenticationFilter.java │ │ │ │ └── QuerySigner.java │ │ │ ├── functions/ │ │ │ │ ├── CloudStackFallbacks.java │ │ │ │ ├── CreateFirewallRulesForIP.java │ │ │ │ ├── CreatePortForwardingRulesForIP.java │ │ │ │ ├── CreateSecurityGroupIfNeeded.java │ │ │ │ ├── DateToYyyyMmDd.java │ │ │ │ ├── GetFirewallRulesByVirtualMachine.java │ │ │ │ ├── GetIPForwardingRulesByVirtualMachine.java │ │ │ │ ├── ParseAsyncJobFromHttpResponse.java │ │ │ │ ├── ParseAsyncJobsFromHttpResponse.java │ │ │ │ ├── ParseEventTypesFromHttpResponse.java │ │ │ │ ├── ParseIdToNameEntryFromHttpResponse.java │ │ │ │ ├── ParseIdToNameFromHttpResponse.java │ │ │ │ ├── ParseLoginResponseFromHttpResponse.java │ │ │ │ ├── ParseNamesFromHttpResponse.java │ │ │ │ ├── ParseTypedAsyncJob.java │ │ │ │ ├── ReuseOrAssociateNewPublicIPAddress.java │ │ │ │ ├── StaticNATVirtualMachineInNetwork.java │ │ │ │ ├── WindowsLoginCredentialsFromEncryptedData.java │ │ │ │ └── ZoneIdToZone.java │ │ │ ├── handlers/ │ │ │ │ ├── CloudStackErrorHandler.java │ │ │ │ └── InvalidateSessionAndRetryOn401AndLogoutOnClose.java │ │ │ ├── internal/ │ │ │ │ └── CloudStackContextImpl.java │ │ │ ├── loaders/ │ │ │ │ └── LoginWithPasswordCredentials.java │ │ │ ├── options/ │ │ │ │ ├── AccountInDomainOptions.java │ │ │ │ ├── AddClusterOptions.java │ │ │ │ ├── AddHostOptions.java │ │ │ │ ├── AddSecondaryStorageOptions.java │ │ │ │ ├── AssignVirtualMachineOptions.java │ │ │ │ ├── AssociateIPAddressOptions.java │ │ │ │ ├── CreateAccountOptions.java │ │ │ │ ├── CreateDiskOfferingOptions.java │ │ │ │ ├── CreateDomainOptions.java │ │ │ │ ├── CreateFirewallRuleOptions.java │ │ │ │ ├── CreateIPForwardingRuleOptions.java │ │ │ │ ├── CreateLoadBalancerRuleOptions.java │ │ │ │ ├── CreateNetworkOptions.java │ │ │ │ ├── CreatePodOptions.java │ │ │ │ ├── CreateServiceOfferingOptions.java │ │ │ │ ├── CreateSnapshotOptions.java │ │ │ │ ├── CreateTagsOptions.java │ │ │ │ ├── CreateTemplateOptions.java │ │ │ │ ├── CreateUserOptions.java │ │ │ │ ├── CreateVMGroupOptions.java │ │ │ │ ├── CreateVlanIPRangeOptions.java │ │ │ │ ├── CreateZoneOptions.java │ │ │ │ ├── DeleteHostOptions.java │ │ │ │ ├── DeleteISOOptions.java │ │ │ │ ├── DeleteTagsOptions.java │ │ │ │ ├── DeleteTemplateOptions.java │ │ │ │ ├── DeployVirtualMachineOptions.java │ │ │ │ ├── ExtractISOOptions.java │ │ │ │ ├── ExtractTemplateOptions.java │ │ │ │ ├── GenerateUsageRecordsOptions.java │ │ │ │ ├── ListAccountsOptions.java │ │ │ │ ├── ListAlertsOptions.java │ │ │ │ ├── ListAsyncJobsOptions.java │ │ │ │ ├── ListCapacityOptions.java │ │ │ │ ├── ListClustersOptions.java │ │ │ │ ├── ListConfigurationEntriesOptions.java │ │ │ │ ├── ListDiskOfferingsOptions.java │ │ │ │ ├── ListDomainChildrenOptions.java │ │ │ │ ├── ListDomainsOptions.java │ │ │ │ ├── ListEgressFirewallRulesOptions.java │ │ │ │ ├── ListEventsOptions.java │ │ │ │ ├── ListFirewallRulesOptions.java │ │ │ │ ├── ListHostsOptions.java │ │ │ │ ├── ListIPForwardingRulesOptions.java │ │ │ │ ├── ListISOsOptions.java │ │ │ │ ├── ListLoadBalancerRulesOptions.java │ │ │ │ ├── ListNetworkOfferingsOptions.java │ │ │ │ ├── ListNetworksOptions.java │ │ │ │ ├── ListOSTypesOptions.java │ │ │ │ ├── ListPodsOptions.java │ │ │ │ ├── ListPortForwardingRulesOptions.java │ │ │ │ ├── ListProjectsOptions.java │ │ │ │ ├── ListPublicIPAddressesOptions.java │ │ │ │ ├── ListResourceLimitsOptions.java │ │ │ │ ├── ListSSHKeyPairsOptions.java │ │ │ │ ├── ListSecurityGroupsOptions.java │ │ │ │ ├── ListServiceOfferingsOptions.java │ │ │ │ ├── ListSnapshotPoliciesOptions.java │ │ │ │ ├── ListSnapshotsOptions.java │ │ │ │ ├── ListStoragePoolsOptions.java │ │ │ │ ├── ListTagsOptions.java │ │ │ │ ├── ListTemplatesOptions.java │ │ │ │ ├── ListUsageRecordsOptions.java │ │ │ │ ├── ListUsersOptions.java │ │ │ │ ├── ListVMGroupsOptions.java │ │ │ │ ├── ListVirtualMachinesOptions.java │ │ │ │ ├── ListVlanIPRangesOptions.java │ │ │ │ ├── ListVolumesOptions.java │ │ │ │ ├── ListZonesOptions.java │ │ │ │ ├── RegisterISOOptions.java │ │ │ │ ├── RegisterTemplateOptions.java │ │ │ │ ├── StopVirtualMachineOptions.java │ │ │ │ ├── UpdateAccountOptions.java │ │ │ │ ├── UpdateClusterOptions.java │ │ │ │ ├── UpdateDiskOfferingOptions.java │ │ │ │ ├── UpdateDomainOptions.java │ │ │ │ ├── UpdateHostOptions.java │ │ │ │ ├── UpdateISOOptions.java │ │ │ │ ├── UpdateISOPermissionsOptions.java │ │ │ │ ├── UpdateLoadBalancerRuleOptions.java │ │ │ │ ├── UpdateNetworkOfferingOptions.java │ │ │ │ ├── UpdatePodOptions.java │ │ │ │ ├── UpdateServiceOfferingOptions.java │ │ │ │ ├── UpdateTemplateOptions.java │ │ │ │ ├── UpdateTemplatePermissionsOptions.java │ │ │ │ ├── UpdateUserOptions.java │ │ │ │ ├── UpdateVMGroupOptions.java │ │ │ │ ├── UpdateVirtualMachineOptions.java │ │ │ │ └── UpdateZoneOptions.java │ │ │ ├── predicates/ │ │ │ │ ├── CorrectHypervisorForZone.java │ │ │ │ ├── JobComplete.java │ │ │ │ ├── LoadBalancerRuleActive.java │ │ │ │ ├── NetworkOfferingPredicates.java │ │ │ │ ├── NetworkPredicates.java │ │ │ │ ├── OSCategoryIn.java │ │ │ │ ├── PublicIPAddressPredicates.java │ │ │ │ ├── SecurityGroupPredicates.java │ │ │ │ ├── SshKeyPairPredicates.java │ │ │ │ ├── TemplatePredicates.java │ │ │ │ ├── UserPredicates.java │ │ │ │ ├── VirtualMachineDestroyed.java │ │ │ │ ├── VirtualMachineExpunged.java │ │ │ │ ├── VirtualMachineRunning.java │ │ │ │ └── ZonePredicates.java │ │ │ ├── strategy/ │ │ │ │ └── BlockUntilJobCompletesAndReturnResult.java │ │ │ ├── suppliers/ │ │ │ │ ├── GetCurrentUser.java │ │ │ │ ├── NetworksForCurrentUser.java │ │ │ │ ├── ProjectsForCurrentUser.java │ │ │ │ └── ZoneIdToZoneSupplier.java │ │ │ └── util/ │ │ │ ├── ApiKeyPairs.java │ │ │ └── SnapshotPolicySchedules.java │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── cloudstack/ │ │ │ ├── CloudStackApiMetadataTest.java │ │ │ ├── CloudStackContextBuilderTest.java │ │ │ ├── PasswordAuthenticationExpectTest.java │ │ │ ├── compute/ │ │ │ │ ├── CloudStackComputeServiceAdapterExpectTest.java │ │ │ │ ├── CloudStackComputeServiceAdapterLiveTest.java │ │ │ │ ├── CloudStackComputeServiceLiveTest.java │ │ │ │ ├── CloudStackExperimentLiveTest.java │ │ │ │ ├── extensions/ │ │ │ │ │ ├── CloudStackImageExtensionExpectTest.java │ │ │ │ │ ├── CloudStackImageExtensionLiveTest.java │ │ │ │ │ ├── CloudStackSecurityGroupExtensionExpectTest.java │ │ │ │ │ └── CloudStackSecurityGroupExtensionLiveTest.java │ │ │ │ ├── functions/ │ │ │ │ │ ├── CloudStackSecurityGroupToSecurityGroupTest.java │ │ │ │ │ ├── IngressRuleToIpPermissionTest.java │ │ │ │ │ ├── ServiceOfferingToHardwareTest.java │ │ │ │ │ ├── TemplateToImageTest.java │ │ │ │ │ ├── TemplateToOperatingSystemTest.java │ │ │ │ │ ├── VirtualMachineToNodeMetadataTest.java │ │ │ │ │ └── ZoneToLocationTest.java │ │ │ │ ├── loaders/ │ │ │ │ │ ├── CreateUniqueKeyPairTest.java │ │ │ │ │ └── FindSecurityGroupOrCreateTest.java │ │ │ │ ├── options/ │ │ │ │ │ └── CloudStackTemplateOptionsTest.java │ │ │ │ └── strategy/ │ │ │ │ └── OptionsConverterTest.java │ │ │ ├── domain/ │ │ │ │ └── VirtualMachineTest.java │ │ │ ├── features/ │ │ │ │ ├── AccountApiExpectTest.java │ │ │ │ ├── AccountApiLiveTest.java │ │ │ │ ├── AccountApiTest.java │ │ │ │ ├── AddressApiLiveTest.java │ │ │ │ ├── AddressApiTest.java │ │ │ │ ├── AsyncJobApiLiveTest.java │ │ │ │ ├── AsyncJobApiTest.java │ │ │ │ ├── ConfigurationApiLiveTest.java │ │ │ │ ├── ConfigurationApiTest.java │ │ │ │ ├── DomainAccountApiLiveTest.java │ │ │ │ ├── DomainAccountApiTest.java │ │ │ │ ├── DomainDomainApiExpectTest.java │ │ │ │ ├── DomainDomainApiLiveTest.java │ │ │ │ ├── DomainLimitApiLiveTest.java │ │ │ │ ├── DomainLimitApiTest.java │ │ │ │ ├── DomainUserApiLiveTest.java │ │ │ │ ├── EventApiLiveTest.java │ │ │ │ ├── EventApiTest.java │ │ │ │ ├── FirewallApiExpectTest.java │ │ │ │ ├── FirewallApiLiveTest.java │ │ │ │ ├── FirewallApiTest.java │ │ │ │ ├── GlobalAccountApiLiveTest.java │ │ │ │ ├── GlobalAccountApiTest.java │ │ │ │ ├── GlobalAlertApiLiveTest.java │ │ │ │ ├── GlobalAlertApiTest.java │ │ │ │ ├── GlobalCapacityApiLiveTest.java │ │ │ │ ├── GlobalCapacityApiTest.java │ │ │ │ ├── GlobalConfigurationApiExpectTest.java │ │ │ │ ├── GlobalConfigurationApiLiveTest.java │ │ │ │ ├── GlobalDomainApiExpectTest.java │ │ │ │ ├── GlobalDomainApiLiveTest.java │ │ │ │ ├── GlobalHostApiExpectTest.java │ │ │ │ ├── GlobalHostApiLiveTest.java │ │ │ │ ├── GlobalHostApiTest.java │ │ │ │ ├── GlobalOfferingApiLiveTest.java │ │ │ │ ├── GlobalOfferingApiTest.java │ │ │ │ ├── GlobalPodApiExpectTest.java │ │ │ │ ├── GlobalPodApiLiveTest.java │ │ │ │ ├── GlobalStoragePoolApiLiveTest.java │ │ │ │ ├── GlobalStoragePoolApiTest.java │ │ │ │ ├── GlobalUsageApiLiveTest.java │ │ │ │ ├── GlobalUsageApiTest.java │ │ │ │ ├── GlobalUserApiLiveTest.java │ │ │ │ ├── GlobalUserApiTest.java │ │ │ │ ├── GlobalVlanApiExpectTest.java │ │ │ │ ├── GlobalVlanApiLiveTest.java │ │ │ │ ├── GlobalZoneApiExpectTest.java │ │ │ │ ├── GlobalZoneApiLiveTest.java │ │ │ │ ├── GuestOSApiLiveTest.java │ │ │ │ ├── GuestOSApiTest.java │ │ │ │ ├── HypervisorApiLiveTest.java │ │ │ │ ├── HypervisorApiTest.java │ │ │ │ ├── ISOApiExpectTest.java │ │ │ │ ├── ISOApiLiveTest.java │ │ │ │ ├── ISOApiTest.java │ │ │ │ ├── LimitApiLiveTest.java │ │ │ │ ├── LimitApiTest.java │ │ │ │ ├── LoadBalancerApiLiveTest.java │ │ │ │ ├── LoadBalancerApiTest.java │ │ │ │ ├── NATApiLiveTest.java │ │ │ │ ├── NATApiTest.java │ │ │ │ ├── NetworkApiLiveTest.java │ │ │ │ ├── NetworkApiTest.java │ │ │ │ ├── OfferingApiLiveTest.java │ │ │ │ ├── OfferingApiTest.java │ │ │ │ ├── ProjectApiExpectTest.java │ │ │ │ ├── ProjectApiLiveTest.java │ │ │ │ ├── ProjectApiTest.java │ │ │ │ ├── SSHKeyPairApiExpectTest.java │ │ │ │ ├── SSHKeyPairApiLiveTest.java │ │ │ │ ├── SSHKeyPairApiTest.java │ │ │ │ ├── SecurityGroupApiLiveTest.java │ │ │ │ ├── SecurityGroupApiTest.java │ │ │ │ ├── SessionApiExpectTest.java │ │ │ │ ├── SessionApiLiveTest.java │ │ │ │ ├── SnapshotApiLiveTest.java │ │ │ │ ├── SnapshotApiTest.java │ │ │ │ ├── TagApiExpectTest.java │ │ │ │ ├── TagApiLiveTest.java │ │ │ │ ├── TagApiTest.java │ │ │ │ ├── TemplateApiLiveTest.java │ │ │ │ ├── TemplateApiTest.java │ │ │ │ ├── VMGroupApiLiveTest.java │ │ │ │ ├── VMGroupApiTest.java │ │ │ │ ├── VirtualMachineApiExpectTest.java │ │ │ │ ├── VirtualMachineApiLiveTest.java │ │ │ │ ├── VirtualMachineApiTest.java │ │ │ │ ├── VolumeApiExpectTest.java │ │ │ │ ├── VolumeApiLiveTest.java │ │ │ │ ├── VolumeApiTest.java │ │ │ │ ├── ZoneApiExpectTest.java │ │ │ │ ├── ZoneApiLiveTest.java │ │ │ │ └── ZoneApiTest.java │ │ │ ├── filters/ │ │ │ │ └── QuerySignerTest.java │ │ │ ├── functions/ │ │ │ │ ├── BlockUntilJobCompletesAndReturnResultTest.java │ │ │ │ ├── CreateSecurityGroupIfNeededTest.java │ │ │ │ ├── ParseAsyncJobFromHttpResponseTest.java │ │ │ │ ├── ParseAsyncJobsFromHttpResponseTest.java │ │ │ │ ├── ReuseOrAssociateNewPublicIPAddressTest.java │ │ │ │ ├── StaticNATVirtualMachineInNetworkLiveTest.java │ │ │ │ └── WindowsLoginCredentialsFromEncryptedDataTest.java │ │ │ ├── handlers/ │ │ │ │ ├── CloudStackErrorHandlerTest.java │ │ │ │ └── InvalidateSessionAndRetryOn401AndLogoutOnCloseTest.java │ │ │ ├── internal/ │ │ │ │ ├── BaseCloudStackApiLiveTest.java │ │ │ │ ├── BaseCloudStackApiTest.java │ │ │ │ ├── BaseCloudStackComputeServiceContextExpectTest.java │ │ │ │ └── BaseCloudStackExpectTest.java │ │ │ ├── loaders/ │ │ │ │ └── LoginWithPasswordCredentialsTest.java │ │ │ ├── options/ │ │ │ │ ├── AddClusterOptionsTest.java │ │ │ │ ├── AddHostOptionsTest.java │ │ │ │ ├── AddSecondaryStorageOptionsTest.java │ │ │ │ ├── AssociateIPAddressOptionsTest.java │ │ │ │ ├── CreateAccountOptionsTest.java │ │ │ │ ├── CreateDiskOfferingOptionsTest.java │ │ │ │ ├── CreateIPForwardingRuleOptionsTest.java │ │ │ │ ├── CreateNetworkOptionsTest.java │ │ │ │ ├── CreatePodOptionsTest.java │ │ │ │ ├── CreateServiceOfferingOptionsTest.java │ │ │ │ ├── CreateTagsOptionsTest.java │ │ │ │ ├── CreateUserOptionsTest.java │ │ │ │ ├── CreateVlanIPRangeOptionsTest.java │ │ │ │ ├── DeleteHostOptionsTest.java │ │ │ │ ├── DeleteTagsOptionsTest.java │ │ │ │ ├── GenerateUsageRecordsOptionsTest.java │ │ │ │ ├── ListAccountsOptionsTest.java │ │ │ │ ├── ListAlertsOptionsTest.java │ │ │ │ ├── ListAsyncJobsOptionsTest.java │ │ │ │ ├── ListCapacityOptionsTest.java │ │ │ │ ├── ListClustersOptionsTest.java │ │ │ │ ├── ListDiskOfferingsOptionsTest.java │ │ │ │ ├── ListHostsOptionsTest.java │ │ │ │ ├── ListIPForwardingRulesOptionsTest.java │ │ │ │ ├── ListISOsOptionsTest.java │ │ │ │ ├── ListLoadBalancerRulesOptionsTest.java │ │ │ │ ├── ListNetworkOfferingsOptionsTest.java │ │ │ │ ├── ListNetworksOptionsTest.java │ │ │ │ ├── ListOSTypesOptionsTest.java │ │ │ │ ├── ListPodsOptionsTest.java │ │ │ │ ├── ListPortForwardingRulesOptionsTest.java │ │ │ │ ├── ListProjectsOptionsTest.java │ │ │ │ ├── ListPublicIPAddressesOptionsTest.java │ │ │ │ ├── ListSecurityGroupsOptionsTest.java │ │ │ │ ├── ListServiceOfferingsOptionsTest.java │ │ │ │ ├── ListStoragePoolsOptionsTest.java │ │ │ │ ├── ListTagsOptionsTest.java │ │ │ │ ├── ListTemplatesOptionsTest.java │ │ │ │ ├── ListUsageRecordsOptionsTest.java │ │ │ │ ├── ListUsersOptionsTest.java │ │ │ │ ├── ListVirtualMachinesOptionsTest.java │ │ │ │ ├── ListVlanIPRangesOptionsTest.java │ │ │ │ ├── ListZonesOptionsTest.java │ │ │ │ ├── UpdateAccountOptionsTest.java │ │ │ │ ├── UpdateClusterOptionsTest.java │ │ │ │ ├── UpdateDiskOfferingOptionsTest.java │ │ │ │ ├── UpdateHostOptionsTest.java │ │ │ │ ├── UpdateNetworkOfferingOptionsTest.java │ │ │ │ ├── UpdatePodOptionsTest.java │ │ │ │ ├── UpdateServiceOfferingOptionsTest.java │ │ │ │ └── UpdateUserOptionsTest.java │ │ │ ├── parse/ │ │ │ │ ├── DeleteIPForwardingRuleResponseTest.java │ │ │ │ ├── DeleteNetworkResponseTest.java │ │ │ │ ├── DeployVirtualMachineResponse3xTest.java │ │ │ │ ├── DeployVirtualMachineResponse4xTest.java │ │ │ │ ├── DisableStaticNATResponseTest.java │ │ │ │ ├── EnableStaticNATResponseWhereResponseDoesntHaveJobTest.java │ │ │ │ ├── JobResultResponseTest.java │ │ │ │ ├── ListAccountsResponseTest.java │ │ │ │ ├── ListAlertsResponseTest.java │ │ │ │ ├── ListCapabilitiesResponseTest.java │ │ │ │ ├── ListCapacityResponseTest.java │ │ │ │ ├── ListClustersResponseTest.java │ │ │ │ ├── ListConfigurationEntriesResponseTest.java │ │ │ │ ├── ListDiskOfferingsResponseTest.java │ │ │ │ ├── ListDomainsResponseTest.java │ │ │ │ ├── ListFirewallRulesResponseTest.java │ │ │ │ ├── ListHostsResponseTest.java │ │ │ │ ├── ListHypervisorsResponseTest.java │ │ │ │ ├── ListIPForwardingRulesResponseTest.java │ │ │ │ ├── ListLoadBalancerRulesResponseTest.java │ │ │ │ ├── ListNetworkOfferingsResponseTest.java │ │ │ │ ├── ListNetworksResponseTest.java │ │ │ │ ├── ListOSCategoriesResponseTest.java │ │ │ │ ├── ListOSTypesResponseTest.java │ │ │ │ ├── ListPodsResponseTest.java │ │ │ │ ├── ListPortForwardingRulesResponseTest.java │ │ │ │ ├── ListPublicIPAddressesResponseTest.java │ │ │ │ ├── ListSSHKeyPairsResponseTest.java │ │ │ │ ├── ListSecurityGroupsResponseTest.java │ │ │ │ ├── ListServiceOfferingsResponseTest.java │ │ │ │ ├── ListStoragePoolsResponseTest.java │ │ │ │ ├── ListTagsResponseTest.java │ │ │ │ ├── ListTemplatesResponseTest.java │ │ │ │ ├── ListUsageRecordsResponseTest.java │ │ │ │ ├── ListVirtualMachinesResponse3xTest.java │ │ │ │ ├── ListVirtualMachinesResponseTest.java │ │ │ │ ├── ListVlanIPRangesResponseTest.java │ │ │ │ ├── ListZonesResponseTest.java │ │ │ │ └── RegisterUserKeysResponseTest.java │ │ │ └── predicates/ │ │ │ ├── JobCompleteTest.java │ │ │ ├── NetworkPredicatesTest.java │ │ │ ├── OSCategoryInTest.java │ │ │ ├── PublicIPAddressPredicatesTest.java │ │ │ ├── SecurityGroupPredicatesTest.java │ │ │ ├── TemplatePredicatesTest.java │ │ │ ├── UserPredicatesTest.java │ │ │ ├── VirtualMachineDestroyedTest.java │ │ │ ├── VirtualMachineExpungedTest.java │ │ │ ├── VirtualMachineRunningTest.java │ │ │ └── ZonePredicatesTest.java │ │ └── resources/ │ │ ├── addclusterresponse.json │ │ ├── addhostresponse.json │ │ ├── addsecondarystorageresponse.json │ │ ├── authorizesecuritygroupingressresponse.json │ │ ├── cancelhostmaintenanceresponse.json │ │ ├── createdomainresponse.json │ │ ├── createegressfirewallrulesresponse.json │ │ ├── createfirewallrulesresponse.json │ │ ├── createkeypairresponse.json │ │ ├── createpodresponse.json │ │ ├── createportforwardingrulesresponse.json │ │ ├── createsecuritygroupresponse.json │ │ ├── createsshkeypairresponse-2.json │ │ ├── createsshkeypairresponse.json │ │ ├── createtagsresponse.json │ │ ├── createtemplateresponse-imageextension.json │ │ ├── createtemplateresponse.json │ │ ├── createvlaniprangeresponse.json │ │ ├── createzoneresponse.json │ │ ├── deletedomainresponse.json │ │ ├── deleteegressfirewallrulesresponse.json │ │ ├── deletefirewallrulesresponse.json │ │ ├── deleteipforwardingruleresponse.json │ │ ├── deletenetworkresponse.json │ │ ├── deleteportforwardingrulesresponse.json │ │ ├── deletesecuritygroupresponse.json │ │ ├── deletetagsresponse.json │ │ ├── deletetemplateresponse.json │ │ ├── deletezoneresponse.json │ │ ├── deployvirtualmachineresponse.json │ │ ├── deployvirtualmachineresponse4x.json │ │ ├── disablestaticnatresponse.json │ │ ├── enablestaticnatresponse-withoutjob.json │ │ ├── getdomainresponse.json │ │ ├── getegressfirewallrulesresponse.json │ │ ├── getfirewallrulesresponse.json │ │ ├── getisoresponse.json │ │ ├── getportforwardingrulesresponse.json │ │ ├── getsecuritygroupresponse.json │ │ ├── getsecuritygroupresponse_extension_byid.json │ │ ├── getsecuritygroupresponse_extension_byid_empty.json │ │ ├── getsecuritygroupresponse_extension_byid_with_cidr.json │ │ ├── getsecuritygroupresponse_extension_byid_with_group.json │ │ ├── getvmpasswordresponse.json │ │ ├── getzoneresponse-2.json │ │ ├── getzoneresponse.json │ │ ├── listaccountsresponse.json │ │ ├── listalertsresponse.json │ │ ├── listasyncjobsresponse.json │ │ ├── listcapabilitiesresponse.json │ │ ├── listcapacityresponse.json │ │ ├── listclustersresponse.json │ │ ├── listconfigurationsresponse.json │ │ ├── listdiskofferingsresponse.json │ │ ├── listdomainchildrenresponse.json │ │ ├── listdomainsresponse.json │ │ ├── listegressfirewallrulesresponse.json │ │ ├── listeventtypesresponse.json │ │ ├── listfirewallrulesresponse.json │ │ ├── listhostsresponse.json │ │ ├── listhypervisorsresponse.json │ │ ├── listipforwardingrulesresponse.json │ │ ├── listisosresponse.json │ │ ├── listloadbalancerrulesresponse.json │ │ ├── listnetworkofferingsresponse.json │ │ ├── listnetworksresponse-2.json │ │ ├── listnetworksresponse.json │ │ ├── listoscategoriesresponse.json │ │ ├── listostypesresponse.json │ │ ├── listpodsresponse.json │ │ ├── listportforwardingrulesresponse.json │ │ ├── listprojectsresponse.json │ │ ├── listpublicipaddressesresponse.json │ │ ├── listresourcelimitsresponse.json │ │ ├── listsecuritygroupsresponse.json │ │ ├── listserviceofferingsresponse.json │ │ ├── listsshkeypairsresponse.json │ │ ├── liststoragepoolsresponse.json │ │ ├── listtagsresponse.json │ │ ├── listtemplatesresponse-imageextension.json │ │ ├── listtemplatesresponse.json │ │ ├── listusagerecordsresponse.json │ │ ├── listvirtualmachinesresponse-imageextension.json │ │ ├── listvirtualmachinesresponse.json │ │ ├── listvirtualmachinesresponse3x.json │ │ ├── listvlaniprangesresponse.json │ │ ├── listvolumesresponse-imageextension.json │ │ ├── listzonesresponse.json │ │ ├── listzonesresponse_single.json │ │ ├── loginresponse.json │ │ ├── logoutresponse.json │ │ ├── preparehostformaintenanceresponse.json │ │ ├── queryasyncjobresultresponse-authorizeingress.json │ │ ├── queryasyncjobresultresponse-createtemplate-imageextension.json │ │ ├── queryasyncjobresultresponse-createtemplate.json │ │ ├── queryasyncjobresultresponse-createvolume.json │ │ ├── queryasyncjobresultresponse-extracttemplate.json │ │ ├── queryasyncjobresultresponse-ipaddress.json │ │ ├── queryasyncjobresultresponse-ipforwardingrule.json │ │ ├── queryasyncjobresultresponse-stopvirtualmachine-imageextension.json │ │ ├── queryasyncjobresultresponse-virtualmachine-securitygroup.json │ │ ├── queryasyncjobresultresponse-virtualmachine.json │ │ ├── reconnecthostresponse.json │ │ ├── registerisoresponse.json │ │ ├── registersshkeypairresponse.json │ │ ├── registeruserkeysresponse.json │ │ ├── revokesecuritygroupingressresponse.json │ │ ├── stopvirtualmachineresponse-imageextension.json │ │ ├── updateclusterresponse.json │ │ ├── updateconfigurationsresponse.json │ │ ├── updatedomainresponse.json │ │ ├── updatehostresponse.json │ │ ├── updatepodresponse.json │ │ └── updatezoneresponse.json │ ├── cloudwatch/ │ │ ├── bnd.bnd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── cloudwatch/ │ │ │ ├── CloudWatch.java │ │ │ ├── CloudWatchApi.java │ │ │ ├── CloudWatchApiMetadata.java │ │ │ ├── binders/ │ │ │ │ ├── AlarmNamesBinder.java │ │ │ │ ├── GetMetricStatisticsBinder.java │ │ │ │ └── MetricDataBinder.java │ │ │ ├── config/ │ │ │ │ └── CloudWatchHttpApiModule.java │ │ │ ├── domain/ │ │ │ │ ├── Alarm.java │ │ │ │ ├── AlarmHistoryItem.java │ │ │ │ ├── AutoScalingConstants.java │ │ │ │ ├── ComparisonOperator.java │ │ │ │ ├── Datapoint.java │ │ │ │ ├── Dimension.java │ │ │ │ ├── DynamoDBConstants.java │ │ │ │ ├── EBSConstants.java │ │ │ │ ├── EC2Constants.java │ │ │ │ ├── ELBConstants.java │ │ │ │ ├── EMRConstants.java │ │ │ │ ├── GetMetricStatistics.java │ │ │ │ ├── GetMetricStatisticsResponse.java │ │ │ │ ├── HistoryItemType.java │ │ │ │ ├── ListMetricsResponse.java │ │ │ │ ├── Metric.java │ │ │ │ ├── MetricDatum.java │ │ │ │ ├── Namespaces.java │ │ │ │ ├── RDSConstants.java │ │ │ │ ├── SNSConstants.java │ │ │ │ ├── SQSConstants.java │ │ │ │ ├── StatisticValues.java │ │ │ │ ├── Statistics.java │ │ │ │ ├── StorageGatewayConstants.java │ │ │ │ └── Unit.java │ │ │ ├── features/ │ │ │ │ ├── AlarmApi.java │ │ │ │ └── MetricApi.java │ │ │ ├── functions/ │ │ │ │ ├── ISO8601Format.java │ │ │ │ ├── ListAlarmHistoryToPagedIterable.java │ │ │ │ ├── ListAlarmsToPagedIterable.java │ │ │ │ └── MetricsToPagedIterable.java │ │ │ ├── handlers/ │ │ │ │ └── CloudWatchErrorHandler.java │ │ │ ├── options/ │ │ │ │ ├── GetMetricStatisticsOptions.java │ │ │ │ ├── ListAlarmHistoryOptions.java │ │ │ │ ├── ListAlarmsForMetric.java │ │ │ │ ├── ListAlarmsOptions.java │ │ │ │ ├── ListMetricsOptions.java │ │ │ │ └── SaveAlarmOptions.java │ │ │ └── xml/ │ │ │ ├── AlarmHistoryItemHandler.java │ │ │ ├── DatapointHandler.java │ │ │ ├── DimensionHandler.java │ │ │ ├── GetMetricStatisticsResponseHandler.java │ │ │ ├── GetMetricStatisticsResponseHandlerV2.java │ │ │ ├── ListAlarmHistoryResponseHandler.java │ │ │ ├── ListAlarmsForMetricResponseHandler.java │ │ │ ├── ListAlarmsResponseHandler.java │ │ │ ├── ListMetricsResponseHandler.java │ │ │ ├── MetricAlarmHandler.java │ │ │ └── MetricHandler.java │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── cloudwatch/ │ │ │ ├── CloudWatchApiMetadataTest.java │ │ │ ├── CloudWatchLiveTest.java │ │ │ ├── CloudWatchTest.java │ │ │ ├── binders/ │ │ │ │ ├── AlarmNamesBinderTest.java │ │ │ │ └── MetricDataBinderTest.java │ │ │ ├── features/ │ │ │ │ ├── AlarmApiExpectTest.java │ │ │ │ ├── AlarmApiLiveTest.java │ │ │ │ ├── MetricApiExpectTest.java │ │ │ │ └── MetricApiLiveTest.java │ │ │ ├── internal/ │ │ │ │ ├── BaseCloudWatchApiExpectTest.java │ │ │ │ ├── BaseCloudWatchApiLiveTest.java │ │ │ │ └── BaseCloudWatchExpectTest.java │ │ │ ├── options/ │ │ │ │ ├── GetMetricStatisticsOptionsTest.java │ │ │ │ ├── ListAlarmHistoryOptionsTest.java │ │ │ │ ├── ListAlarmsForMetricTest.java │ │ │ │ ├── ListAlarmsOptionsTest.java │ │ │ │ └── SaveAlarmOptionsTest.java │ │ │ └── xml/ │ │ │ ├── GetMetricStatisticsResponseHandlerTest.java │ │ │ ├── ListAlarmHistoryResponseHandlerTest.java │ │ │ ├── ListAlarmsForMetricResponseHandlerTest.java │ │ │ └── ListAlarmsResponseHandlerTest.java │ │ └── resources/ │ │ ├── DescribeAlarmHistoryResponse.xml │ │ ├── DescribeAlarmsForMetricResponse.xml │ │ ├── DescribeAlarmsResponse.xml │ │ ├── InvalidFormatResponse.xml │ │ ├── LimitExceededResponse.xml │ │ ├── VoidResponse.xml │ │ ├── get_metric_statistics.xml │ │ ├── list_metrics.xml │ │ ├── list_metrics_marker.xml │ │ └── log4j.xml │ ├── docker/ │ │ ├── README.md │ │ ├── bnd.bnd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── docker/ │ │ │ ├── DockerApi.java │ │ │ ├── DockerApiMetadata.java │ │ │ ├── compute/ │ │ │ │ ├── config/ │ │ │ │ │ ├── DockerComputeServiceContextModule.java │ │ │ │ │ └── LoginPortLookupModule.java │ │ │ │ ├── functions/ │ │ │ │ │ ├── ContainerToNodeMetadata.java │ │ │ │ │ ├── CustomLoginPortFromImage.java │ │ │ │ │ ├── ImageToImage.java │ │ │ │ │ ├── LoginPortForContainer.java │ │ │ │ │ ├── PublicPortForContainerPort.java │ │ │ │ │ └── StateToStatus.java │ │ │ │ ├── options/ │ │ │ │ │ └── DockerTemplateOptions.java │ │ │ │ └── strategy/ │ │ │ │ └── DockerComputeServiceAdapter.java │ │ │ ├── config/ │ │ │ │ ├── DockerHttpApiModule.java │ │ │ │ ├── DockerOkHttpClientSupplier.java │ │ │ │ └── DockerParserModule.java │ │ │ ├── domain/ │ │ │ │ ├── Config.java │ │ │ │ ├── Container.java │ │ │ │ ├── ContainerSummary.java │ │ │ │ ├── Exec.java │ │ │ │ ├── ExecCreateParams.java │ │ │ │ ├── ExecInspect.java │ │ │ │ ├── ExecStartParams.java │ │ │ │ ├── ExposedPorts.java │ │ │ │ ├── HostConfig.java │ │ │ │ ├── Image.java │ │ │ │ ├── ImageHistory.java │ │ │ │ ├── ImageSummary.java │ │ │ │ ├── Info.java │ │ │ │ ├── Network.java │ │ │ │ ├── NetworkSettings.java │ │ │ │ ├── Node.java │ │ │ │ ├── Port.java │ │ │ │ ├── Resource.java │ │ │ │ ├── State.java │ │ │ │ ├── StatusCode.java │ │ │ │ └── Version.java │ │ │ ├── features/ │ │ │ │ ├── ContainerApi.java │ │ │ │ ├── ImageApi.java │ │ │ │ ├── MiscApi.java │ │ │ │ └── NetworkApi.java │ │ │ ├── handlers/ │ │ │ │ └── DockerErrorHandler.java │ │ │ ├── internal/ │ │ │ │ └── NullSafeCopies.java │ │ │ ├── options/ │ │ │ │ ├── AttachOptions.java │ │ │ │ ├── BuildOptions.java │ │ │ │ ├── CommitOptions.java │ │ │ │ ├── CreateImageOptions.java │ │ │ │ ├── DeleteImageOptions.java │ │ │ │ ├── ListContainerOptions.java │ │ │ │ ├── ListImageOptions.java │ │ │ │ └── RemoveContainerOptions.java │ │ │ ├── suppliers/ │ │ │ │ ├── DockerSSLContextSupplier.java │ │ │ │ ├── DockerUntrustedSSLContextSupplier.java │ │ │ │ └── SSLContextBuilder.java │ │ │ └── util/ │ │ │ ├── DockerInputStream.java │ │ │ └── StdStreamData.java │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── docker/ │ │ │ ├── DockerApiMetadataTest.java │ │ │ ├── compute/ │ │ │ │ ├── BaseDockerApiLiveTest.java │ │ │ │ ├── DockerComputeServiceAdapterLiveTest.java │ │ │ │ ├── DockerComputeServiceLiveTest.java │ │ │ │ ├── SshToCustomPortLiveTest.java │ │ │ │ ├── functions/ │ │ │ │ │ ├── ContainerToNodeMetadataTest.java │ │ │ │ │ ├── CustomLoginPortFromImageTest.java │ │ │ │ │ ├── ImageToImageTest.java │ │ │ │ │ └── StateToStatusTest.java │ │ │ │ ├── options/ │ │ │ │ │ └── DockerTemplateOptionsTest.java │ │ │ │ └── strategy/ │ │ │ │ └── PredicateLocateImageByNameTest.java │ │ │ ├── config/ │ │ │ │ └── DockerParserModuleTest.java │ │ │ ├── domain/ │ │ │ │ ├── ConfigTest.java │ │ │ │ └── ContainerTest.java │ │ │ ├── features/ │ │ │ │ ├── ContainerApiLiveTest.java │ │ │ │ ├── ContainerApiMockTest.java │ │ │ │ ├── ImageApiLiveTest.java │ │ │ │ ├── ImageApiMockTest.java │ │ │ │ ├── MiscApiLiveTest.java │ │ │ │ ├── MiscApiMockTest.java │ │ │ │ ├── NetworkApiLiveTest.java │ │ │ │ └── NetworkApiMockTest.java │ │ │ ├── internal/ │ │ │ │ ├── BaseDockerMockTest.java │ │ │ │ ├── BaseDockerParseTest.java │ │ │ │ └── DockerTestUtils.java │ │ │ └── parse/ │ │ │ ├── ContainerParseTest.java │ │ │ ├── ContainerVersionMajor1Minor21.java │ │ │ ├── ContainersParseTest.java │ │ │ ├── HistoryParseTest.java │ │ │ ├── ImageParseTest.java │ │ │ ├── ImagesParseTest.java │ │ │ ├── Info2ParseTest.java │ │ │ ├── InfoParseTest.java │ │ │ ├── NetworkParseTest.java │ │ │ ├── NetworksParseTest.java │ │ │ └── VersionParseTest.java │ │ └── resources/ │ │ ├── Dockerfile │ │ ├── SimpleDockerfile │ │ ├── cert.pem │ │ ├── container-1.21-create.json │ │ ├── container-1.21-inspect.json │ │ ├── container-creation.json │ │ ├── container.json │ │ ├── containers.json │ │ ├── exec.json │ │ ├── exec.start │ │ ├── execInspect.json │ │ ├── history-apiver22.json │ │ ├── history.json │ │ ├── image.json │ │ ├── images.json │ │ ├── info.json │ │ ├── info2.json │ │ ├── key.pem │ │ ├── logback.xml │ │ ├── network-creation.json │ │ ├── network.json │ │ ├── networks.json │ │ └── version.json │ ├── ec2/ │ │ ├── README.txt │ │ ├── bnd.bnd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── ec2/ │ │ │ ├── EC2Api.java │ │ │ ├── EC2ApiMetadata.java │ │ │ ├── EC2Fallbacks.java │ │ │ ├── binders/ │ │ │ │ ├── BindBlockDeviceMappingToIndexedFormParams.java │ │ │ │ ├── BindBundleIdsToIndexedFormParams.java │ │ │ │ ├── BindFiltersToIndexedFormParams.java │ │ │ │ ├── BindGroupIdsToIndexedFormParams.java │ │ │ │ ├── BindGroupNamesToIndexedFormParams.java │ │ │ │ ├── BindInstanceIdsToIndexedFormParams.java │ │ │ │ ├── BindIpPermissionToIndexedFormParams.java │ │ │ │ ├── BindIpPermissionsToIndexedFormParams.java │ │ │ │ ├── BindKeyNamesToIndexedFormParams.java │ │ │ │ ├── BindProductCodesToIndexedFormParams.java │ │ │ │ ├── BindPublicIpsToIndexedFormParams.java │ │ │ │ ├── BindResourceIdsToIndexedFormParams.java │ │ │ │ ├── BindS3UploadPolicyAndSignature.java │ │ │ │ ├── BindSubnetIdsToIndexedFormParams.java │ │ │ │ ├── BindTagKeysToIndexedFormParams.java │ │ │ │ ├── BindTagsToIndexedFormParams.java │ │ │ │ ├── BindUserGroupsToIndexedFormParams.java │ │ │ │ ├── BindUserIdGroupPairToSourceSecurityGroupFormParams.java │ │ │ │ ├── BindUserIdsToIndexedFormParams.java │ │ │ │ ├── BindVolumeIdsToIndexedFormParams.java │ │ │ │ └── IfNotNullBindAvailabilityZoneToFormParam.java │ │ │ ├── compute/ │ │ │ │ ├── EC2ComputeService.java │ │ │ │ ├── EC2ComputeServiceContext.java │ │ │ │ ├── config/ │ │ │ │ │ ├── EC2BindComputeStrategiesByClass.java │ │ │ │ │ ├── EC2BindComputeSuppliersByClass.java │ │ │ │ │ ├── EC2ComputeServiceContextModule.java │ │ │ │ │ ├── EC2ComputeServiceDependenciesModule.java │ │ │ │ │ └── EC2ResolveImagesModule.java │ │ │ │ ├── domain/ │ │ │ │ │ ├── EC2HardwareBuilder.java │ │ │ │ │ ├── PasswordDataAndPrivateKey.java │ │ │ │ │ ├── RegionAndName.java │ │ │ │ │ └── RegionNameAndIngressRules.java │ │ │ │ ├── extensions/ │ │ │ │ │ ├── EC2ImageExtension.java │ │ │ │ │ └── EC2SecurityGroupExtension.java │ │ │ │ ├── functions/ │ │ │ │ │ ├── AddElasticIpsToNodemetadata.java │ │ │ │ │ ├── CreateUniqueKeyPair.java │ │ │ │ │ ├── CredentialsForInstance.java │ │ │ │ │ ├── EC2ImageParser.java │ │ │ │ │ ├── EC2SecurityGroupIdFromName.java │ │ │ │ │ ├── EC2SecurityGroupToSecurityGroup.java │ │ │ │ │ ├── ImagesToRegionAndIdMap.java │ │ │ │ │ ├── PasswordCredentialsFromWindowsInstance.java │ │ │ │ │ ├── PresentInstances.java │ │ │ │ │ ├── RunningInstanceToNodeMetadata.java │ │ │ │ │ └── WindowsLoginCredentialsFromEncryptedData.java │ │ │ │ ├── internal/ │ │ │ │ │ ├── EC2ComputeServiceContextImpl.java │ │ │ │ │ └── EC2TemplateBuilderImpl.java │ │ │ │ ├── loaders/ │ │ │ │ │ ├── CreateSecurityGroupIfNeeded.java │ │ │ │ │ ├── LoadAllocationIdForInstanceOrNull.java │ │ │ │ │ ├── LoadPublicIpForInstanceOrNull.java │ │ │ │ │ └── RegionAndIdToImage.java │ │ │ │ ├── options/ │ │ │ │ │ └── EC2TemplateOptions.java │ │ │ │ ├── predicates/ │ │ │ │ │ ├── EC2ImagePredicates.java │ │ │ │ │ └── SecurityGroupPresent.java │ │ │ │ ├── strategy/ │ │ │ │ │ ├── CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.java │ │ │ │ │ ├── DescribeImagesParallel.java │ │ │ │ │ ├── EC2CreateNodesInGroupThenAddToSet.java │ │ │ │ │ ├── EC2DestroyNodeStrategy.java │ │ │ │ │ ├── EC2GetImageStrategy.java │ │ │ │ │ ├── EC2GetNodeMetadataStrategy.java │ │ │ │ │ ├── EC2ListNodesStrategy.java │ │ │ │ │ ├── EC2PopulateDefaultLoginCredentialsForImageStrategy.java │ │ │ │ │ ├── EC2RebootNodeStrategy.java │ │ │ │ │ ├── EC2ResumeNodeStrategy.java │ │ │ │ │ ├── EC2SuspendNodeStrategy.java │ │ │ │ │ └── ReviseParsedImage.java │ │ │ │ ├── suppliers/ │ │ │ │ │ ├── EC2HardwareSupplier.java │ │ │ │ │ ├── EC2ImageSupplier.java │ │ │ │ │ └── RegionAndNameToImageSupplier.java │ │ │ │ └── util/ │ │ │ │ └── EC2ComputeUtils.java │ │ │ ├── config/ │ │ │ │ ├── BaseEC2HttpApiModule.java │ │ │ │ └── EC2HttpApiModule.java │ │ │ ├── domain/ │ │ │ │ ├── Attachment.java │ │ │ │ ├── AvailabilityZoneInfo.java │ │ │ │ ├── BlockDevice.java │ │ │ │ ├── BlockDeviceMapping.java │ │ │ │ ├── BundleInstanceS3Storage.java │ │ │ │ ├── BundleTask.java │ │ │ │ ├── Hypervisor.java │ │ │ │ ├── Image.java │ │ │ │ ├── ImageAttribute.java │ │ │ │ ├── InstanceState.java │ │ │ │ ├── InstanceStateChange.java │ │ │ │ ├── InstanceType.java │ │ │ │ ├── KeyPair.java │ │ │ │ ├── PasswordData.java │ │ │ │ ├── Permission.java │ │ │ │ ├── PublicIpInstanceIdPair.java │ │ │ │ ├── Reservation.java │ │ │ │ ├── ReservedInstancesOffering.java │ │ │ │ ├── RootDeviceType.java │ │ │ │ ├── RunningInstance.java │ │ │ │ ├── SecurityGroup.java │ │ │ │ ├── Snapshot.java │ │ │ │ ├── Subnet.java │ │ │ │ ├── Tag.java │ │ │ │ ├── UserIdGroupPair.java │ │ │ │ ├── VirtualizationType.java │ │ │ │ └── Volume.java │ │ │ ├── features/ │ │ │ │ ├── AMIApi.java │ │ │ │ ├── AvailabilityZoneAndRegionApi.java │ │ │ │ ├── ElasticBlockStoreApi.java │ │ │ │ ├── ElasticIPAddressApi.java │ │ │ │ ├── InstanceApi.java │ │ │ │ ├── KeyPairApi.java │ │ │ │ ├── SecurityGroupApi.java │ │ │ │ ├── SubnetApi.java │ │ │ │ ├── TagApi.java │ │ │ │ └── WindowsApi.java │ │ │ ├── functions/ │ │ │ │ ├── ConvertUnencodedBytesToBase64EncodedString.java │ │ │ │ └── EncodedRSAPublicKeyToBase64.java │ │ │ ├── options/ │ │ │ │ ├── BundleInstanceS3StorageOptions.java │ │ │ │ ├── CreateImageOptions.java │ │ │ │ ├── CreateSnapshotOptions.java │ │ │ │ ├── CreateVolumeOptions.java │ │ │ │ ├── DescribeAvailabilityZonesOptions.java │ │ │ │ ├── DescribeImagesOptions.java │ │ │ │ ├── DescribeRegionsOptions.java │ │ │ │ ├── DescribeSnapshotsOptions.java │ │ │ │ ├── DetachVolumeOptions.java │ │ │ │ ├── RegisterImageBackedByEbsOptions.java │ │ │ │ ├── RegisterImageOptions.java │ │ │ │ ├── RunInstancesOptions.java │ │ │ │ └── internal/ │ │ │ │ └── BaseEC2RequestOptions.java │ │ │ ├── predicates/ │ │ │ │ ├── InstanceHasIpAddress.java │ │ │ │ ├── InstanceStateRunning.java │ │ │ │ ├── InstanceStateStopped.java │ │ │ │ ├── InstanceStateTerminated.java │ │ │ │ ├── SnapshotCompleted.java │ │ │ │ ├── VolumeAttached.java │ │ │ │ ├── VolumeAvailable.java │ │ │ │ └── VolumeDetached.java │ │ │ ├── reference/ │ │ │ │ └── EC2Constants.java │ │ │ ├── suppliers/ │ │ │ │ ├── DescribeAvailabilityZonesInRegion.java │ │ │ │ └── DescribeRegionsForRegionURIs.java │ │ │ ├── util/ │ │ │ │ ├── IpPermissions.java │ │ │ │ ├── SubnetFilterBuilder.java │ │ │ │ ├── TagFilterBuilder.java │ │ │ │ └── Tags.java │ │ │ └── xml/ │ │ │ ├── AllocateAddressResponseHandler.java │ │ │ ├── AttachmentHandler.java │ │ │ ├── BaseReservationHandler.java │ │ │ ├── BlockDeviceMappingHandler.java │ │ │ ├── BooleanValueHandler.java │ │ │ ├── BundleTaskHandler.java │ │ │ ├── CreateVolumeResponseHandler.java │ │ │ ├── DescribeAddressesResponseHandler.java │ │ │ ├── DescribeAvailabilityZonesResponseHandler.java │ │ │ ├── DescribeBundleTasksResponseHandler.java │ │ │ ├── DescribeImagesResponseHandler.java │ │ │ ├── DescribeInstancesResponseHandler.java │ │ │ ├── DescribeKeyPairsResponseHandler.java │ │ │ ├── DescribeRegionsResponseHandler.java │ │ │ ├── DescribeSecurityGroupsResponseHandler.java │ │ │ ├── DescribeSnapshotsResponseHandler.java │ │ │ ├── DescribeSubnetsResponseHandler.java │ │ │ ├── DescribeTagsResponseHandler.java │ │ │ ├── DescribeVolumesResponseHandler.java │ │ │ ├── GetConsoleOutputResponseHandler.java │ │ │ ├── GetPasswordDataResponseHandler.java │ │ │ ├── ImageIdHandler.java │ │ │ ├── InstanceInitiatedShutdownBehaviorHandler.java │ │ │ ├── InstanceStateChangeHandler.java │ │ │ ├── InstanceTypeHandler.java │ │ │ ├── IpPermissionHandler.java │ │ │ ├── KeyPairResponseHandler.java │ │ │ ├── PermissionHandler.java │ │ │ ├── RunInstancesResponseHandler.java │ │ │ ├── SecurityGroupHandler.java │ │ │ ├── SnapshotHandler.java │ │ │ ├── StringValueHandler.java │ │ │ ├── SubnetHandler.java │ │ │ ├── TagHandler.java │ │ │ ├── TagSetHandler.java │ │ │ └── UnencodeStringValueHandler.java │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── ec2/ │ │ │ ├── CloudApplicationArchitecturesEC2ApiLiveTest.java │ │ │ ├── EBSBootEC2ApiLiveTest.java │ │ │ ├── EC2ApiMetadataTest.java │ │ │ ├── EC2ContextBuilderText.java │ │ │ ├── binders/ │ │ │ │ ├── BindBlockDeviceMappingToIndexedFormParamsTest.java │ │ │ │ ├── BindBundleIdsToIndexedFormParamsTest.java │ │ │ │ ├── BindFiltersToIndexedFormParamsTest.java │ │ │ │ ├── BindGroupNamesToIndexedFormParamsTest.java │ │ │ │ ├── BindInstanceIdsToIndexedFormParamsTest.java │ │ │ │ ├── BindKeyNamesToIndexedFormParamsTest.java │ │ │ │ ├── BindProductCodesToIndexedFormParamsTest.java │ │ │ │ ├── BindPublicIpsToIndexedFormParamsTest.java │ │ │ │ ├── BindResourceIdsToIndexedFormParamsTest.java │ │ │ │ ├── BindS3UploadPolicyAndSignatureTest.java │ │ │ │ ├── BindTagKeysToIndexedFormParamsTest.java │ │ │ │ ├── BindTagsToIndexedFormParamsTest.java │ │ │ │ ├── BindUserGroupsToIndexedFormParamsTest.java │ │ │ │ ├── BindUserIdGroupPairToSourceSecurityGroupFormParamsTest.java │ │ │ │ ├── BindUserIdsToIndexedFormParamsTest.java │ │ │ │ ├── BindVolumeIdsToIndexedFormParamsTest.java │ │ │ │ └── IfNotNullBindAvailabilityZoneToFormParamTest.java │ │ │ ├── compute/ │ │ │ │ ├── EC2ComputeServiceExpectTest.java │ │ │ │ ├── EC2ComputeServiceLiveTest.java │ │ │ │ ├── EC2TemplateBuilderLiveTest.java │ │ │ │ ├── EC2TemplateBuilderTest.java │ │ │ │ ├── TestCanRecreateGroupLiveTest.java │ │ │ │ ├── config/ │ │ │ │ │ └── EC2ComputeServiceContextModuleTest.java │ │ │ │ ├── extensions/ │ │ │ │ │ ├── EC2ImageExtensionExpectTest.java │ │ │ │ │ ├── EC2ImageExtensionLiveTest.java │ │ │ │ │ ├── EC2SecurityGroupExtensionExpectTest.java │ │ │ │ │ └── EC2SecurityGroupExtensionLiveTest.java │ │ │ │ ├── functions/ │ │ │ │ │ ├── AddElasticIpsToNodemetadataTest.java │ │ │ │ │ ├── CreateUniqueKeyPairTest.java │ │ │ │ │ ├── EC2ImageParserTest.java │ │ │ │ │ ├── EC2SecurityGroupToSecurityGroupTest.java │ │ │ │ │ ├── PresentInstancesTest.java │ │ │ │ │ ├── RunningInstanceToNodeMetadataTest.java │ │ │ │ │ └── WindowsLoginCredentialsFromEncryptedDataTest.java │ │ │ │ ├── internal/ │ │ │ │ │ ├── BaseEC2ComputeServiceContextExpectTest.java │ │ │ │ │ ├── BaseEC2ComputeServiceExpectTest.java │ │ │ │ │ └── EC2TemplateBuilderImplTest.java │ │ │ │ ├── loaders/ │ │ │ │ │ ├── CreateSecurityGroupIfNeededTest.java │ │ │ │ │ ├── LoadPublicIpForInstanceOrNullTest.java │ │ │ │ │ └── RegionAndIdToImageTest.java │ │ │ │ ├── options/ │ │ │ │ │ └── EC2TemplateOptionsTest.java │ │ │ │ └── strategy/ │ │ │ │ ├── CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java │ │ │ │ ├── EC2CreateNodesInGroupThenAddToSetTest.java │ │ │ │ └── EC2DestroyNodeStrategyTest.java │ │ │ ├── config/ │ │ │ │ └── EC2HttpApiModuleExpectTest.java │ │ │ ├── features/ │ │ │ │ ├── AMIApiExpectTest.java │ │ │ │ ├── AMIApiLiveTest.java │ │ │ │ ├── AMIApiTest.java │ │ │ │ ├── AvailabilityZoneAndRegionApiLiveTest.java │ │ │ │ ├── AvailabilityZoneAndRegionApiTest.java │ │ │ │ ├── BaseEC2ApiTest.java │ │ │ │ ├── EC2ElasticBlockStoreApiExpectTest.java │ │ │ │ ├── ElasticBlockStoreApiLiveTest.java │ │ │ │ ├── ElasticBlockStoreApiTest.java │ │ │ │ ├── ElasticIPAddressApiExpectTest.java │ │ │ │ ├── ElasticIPAddressApiLiveTest.java │ │ │ │ ├── ElasticIPAddressApiTest.java │ │ │ │ ├── InstanceApiExpectTest.java │ │ │ │ ├── InstanceApiLiveTest.java │ │ │ │ ├── InstanceApiTest.java │ │ │ │ ├── KeyPairApiExpectTest.java │ │ │ │ ├── KeyPairApiLiveTest.java │ │ │ │ ├── KeyPairApiTest.java │ │ │ │ ├── SecurityGroupApiExpectTest.java │ │ │ │ ├── SecurityGroupApiLiveTest.java │ │ │ │ ├── SecurityGroupApiTest.java │ │ │ │ ├── SubnetApiExpectTest.java │ │ │ │ ├── SubnetApiLiveTest.java │ │ │ │ ├── TagApiExpectTest.java │ │ │ │ ├── WindowsApiExpectTest.java │ │ │ │ ├── WindowsApiLiveTest.java │ │ │ │ ├── WindowsApiTest.java │ │ │ │ └── internal/ │ │ │ │ └── BaseTagApiLiveTest.java │ │ │ ├── functions/ │ │ │ │ ├── ConvertUnencodedBytesToBase64EncodedStringTest.java │ │ │ │ └── EncodedRSAPublicKeyToBase64Test.java │ │ │ ├── internal/ │ │ │ │ ├── BaseEC2ApiExpectTest.java │ │ │ │ ├── BaseEC2ApiLiveTest.java │ │ │ │ ├── BaseEC2ApiMockTest.java │ │ │ │ └── BaseEC2ExpectTest.java │ │ │ ├── options/ │ │ │ │ ├── BundleInstanceS3StorageOptionsTest.java │ │ │ │ ├── CreateImageOptionsTest.java │ │ │ │ ├── CreateSnapshotOptionsTest.java │ │ │ │ ├── CreateVolumeOptionsTest.java │ │ │ │ ├── DescribeImagesOptionsTest.java │ │ │ │ ├── DescribeSnapshotsOptionsTest.java │ │ │ │ ├── DetachVolumeOptionsTest.java │ │ │ │ ├── RegisterImageBackedByEbsOptionsTest.java │ │ │ │ ├── RegisterImageOptionsTest.java │ │ │ │ └── RunInstancesOptionsTest.java │ │ │ ├── parse/ │ │ │ │ ├── DescribeSubnetsResponseTest.java │ │ │ │ ├── DescribeTagsResponseTest.java │ │ │ │ └── GetPasswordDataResponseTest.java │ │ │ ├── predicates/ │ │ │ │ └── VolumeDetachedTest.java │ │ │ ├── suppliers/ │ │ │ │ ├── DescribeAvailabilityZonesInRegionMockTest.java │ │ │ │ └── DescribeRegionsForRegionURIsMockTest.java │ │ │ ├── util/ │ │ │ │ ├── IpPermissionsTest.java │ │ │ │ └── TagsTest.java │ │ │ └── xml/ │ │ │ ├── AllocateAddressResponseHandlerTest.java │ │ │ ├── AttachmentHandlerTest.java │ │ │ ├── BaseEC2HandlerTest.java │ │ │ ├── BlockDeviceMappingHandlerTest.java │ │ │ ├── BundleTaskHandlerTest.java │ │ │ ├── CreateVolumeResponseHandlerTest.java │ │ │ ├── DescribeAddressesResponseHandlerTest.java │ │ │ ├── DescribeAvailabilityZonesResponseHandlerTest.java │ │ │ ├── DescribeBundleTasksResponseHandlerTest.java │ │ │ ├── DescribeImagesResponseHandlerTest.java │ │ │ ├── DescribeInstanceAttributeTest.java │ │ │ ├── DescribeInstancesResponseHandlerTest.java │ │ │ ├── DescribeKeyPairsResponseHandlerTest.java │ │ │ ├── DescribeRegionsResponseHandlerTest.java │ │ │ ├── DescribeSecurityGroupsResponseHandlerTest.java │ │ │ ├── DescribeSnapshotsResponseHandlerTest.java │ │ │ ├── DescribeVolumesResponseHandlerTest.java │ │ │ ├── GetConsoleOutputResponseHandlerTest.java │ │ │ ├── InstanceStateChangeHandlerTest.java │ │ │ ├── KeyPairResponseHandlerTest.java │ │ │ ├── PermissionHandlerTest.java │ │ │ ├── RunInstancesResponseHandlerTest.java │ │ │ └── SnapshotHandlerTest.java │ │ └── resources/ │ │ ├── allocate_address.xml │ │ ├── amzn_images.xml │ │ ├── attach.xml │ │ ├── authorize_securitygroup_ingress_response.xml │ │ ├── availabilityZones-ap-northeast-1.xml │ │ ├── availabilityZones-ap-southeast-1.xml │ │ ├── availabilityZones-eu-west-1.xml │ │ ├── availabilityZones-sa-east-1.xml │ │ ├── availabilityZones-us-east-1.xml │ │ ├── availabilityZones-us-west-1.xml │ │ ├── availabilityZones-us-west-2.xml │ │ ├── availabilityZones.xml │ │ ├── bundle_instance.xml │ │ ├── cancel_bundle_task.xml │ │ ├── create_keypair.xml │ │ ├── created_securitygroup.xml │ │ ├── created_snapshot.xml │ │ ├── created_volume.xml │ │ ├── delete_keypair.xml │ │ ├── delete_placementgroup.xml │ │ ├── delete_securitygroup.xml │ │ ├── describe_addresses.xml │ │ ├── describe_addresses_single.xml │ │ ├── describe_addresses_with_tags.xml │ │ ├── describe_bundle_tasks.xml │ │ ├── describe_image_attribute_blockDeviceMapping.xml │ │ ├── describe_image_attribute_launchPermission.xml │ │ ├── describe_images.xml │ │ ├── describe_images_ebs.xml │ │ ├── describe_images_imageextension0.xml │ │ ├── describe_images_imageextension1.xml │ │ ├── describe_images_imageextension2.xml │ │ ├── describe_images_nova.xml │ │ ├── describe_images_tags.xml │ │ ├── describe_images_windows.xml │ │ ├── describe_instances.xml │ │ ├── describe_instances_ebs.xml │ │ ├── describe_instances_empty.xml │ │ ├── describe_instances_multiple.xml │ │ ├── describe_instances_running-1.xml │ │ ├── describe_instances_running-named.xml │ │ ├── describe_instances_running.xml │ │ ├── describe_instances_running_securitygroups.xml │ │ ├── describe_instances_three_ids.xml │ │ ├── describe_keypairs.xml │ │ ├── describe_keypairs_jcloudssingle.xml │ │ ├── describe_securitygroups.xml │ │ ├── describe_securitygroups_empty.xml │ │ ├── describe_securitygroups_extension_cidr.xml │ │ ├── describe_securitygroups_extension_group.xml │ │ ├── describe_securitygroups_extension_new.xml │ │ ├── describe_securitygroups_extension_single.xml │ │ ├── describe_snapshots.xml │ │ ├── describe_subnets.xml │ │ ├── describe_tags.xml │ │ ├── describe_volumes.xml │ │ ├── describe_volumes_single.xml │ │ ├── disableApiTermination.xml │ │ ├── get_console_output_response.xml │ │ ├── get_passworddata.xml │ │ ├── instanceInitiatedShutdownBehavior.xml │ │ ├── instanceType.xml │ │ ├── log4j.xml │ │ ├── new_instance.xml │ │ ├── new_securitygroup.xml │ │ ├── ramdisk.xml │ │ ├── regionEndpoints-additional.xml │ │ ├── regionEndpoints-all.xml │ │ ├── regionEndpoints.xml │ │ ├── run_instances.xml │ │ ├── run_instances_cloudbridge.xml │ │ ├── run_instances_three.xml │ │ ├── start_instances.xml │ │ ├── stop_instances.xml │ │ ├── terminate_instances.xml │ │ └── userData.xml │ ├── elasticstack/ │ │ ├── README.txt │ │ ├── bnd.bnd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── elasticstack/ │ │ │ ├── ElasticStackApi.java │ │ │ ├── ElasticStackApiMetadata.java │ │ │ ├── binders/ │ │ │ │ ├── BindDriveDataToPlainTextString.java │ │ │ │ ├── BindDriveToPlainTextString.java │ │ │ │ └── BindServerToPlainTextString.java │ │ │ ├── compute/ │ │ │ │ ├── ElasticStackComputeServiceAdapter.java │ │ │ │ ├── config/ │ │ │ │ │ └── ElasticStackComputeServiceContextModule.java │ │ │ │ └── functions/ │ │ │ │ ├── ServerInfoToNodeMetadata.java │ │ │ │ ├── StandardDriveToWellKnownImage.java │ │ │ │ └── WellKnownImageToImage.java │ │ │ ├── config/ │ │ │ │ └── ElasticStackHttpApiModule.java │ │ │ ├── domain/ │ │ │ │ ├── BlockDevice.java │ │ │ │ ├── ClaimType.java │ │ │ │ ├── CreateDriveRequest.java │ │ │ │ ├── Device.java │ │ │ │ ├── Drive.java │ │ │ │ ├── DriveData.java │ │ │ │ ├── DriveInfo.java │ │ │ │ ├── DriveMetrics.java │ │ │ │ ├── DriveStatus.java │ │ │ │ ├── IDEDevice.java │ │ │ │ ├── ImageConversionType.java │ │ │ │ ├── Item.java │ │ │ │ ├── MediaType.java │ │ │ │ ├── Model.java │ │ │ │ ├── NIC.java │ │ │ │ ├── SCSIDevice.java │ │ │ │ ├── Server.java │ │ │ │ ├── ServerInfo.java │ │ │ │ ├── ServerMetrics.java │ │ │ │ ├── ServerStatus.java │ │ │ │ ├── StandardDrive.java │ │ │ │ ├── VNC.java │ │ │ │ └── WellKnownImage.java │ │ │ ├── functions/ │ │ │ │ ├── BaseDriveToMap.java │ │ │ │ ├── CreateDriveRequestToMap.java │ │ │ │ ├── DriveDataToMap.java │ │ │ │ ├── KeyValuesDelimitedByBlankLinesToDriveInfo.java │ │ │ │ ├── KeyValuesDelimitedByBlankLinesToServerInfo.java │ │ │ │ ├── ListOfKeyValuesDelimitedByBlankLinesToDriveInfoSet.java │ │ │ │ ├── ListOfKeyValuesDelimitedByBlankLinesToListOfMaps.java │ │ │ │ ├── ListOfKeyValuesDelimitedByBlankLinesToServerInfoSet.java │ │ │ │ ├── ListOfKeyValuesDelimitedByBlankLinesToStandardDriveSet.java │ │ │ │ ├── ListOfMapsToListOfKeyValuesDelimitedByBlankLines.java │ │ │ │ ├── MapToDevices.java │ │ │ │ ├── MapToDriveInfo.java │ │ │ │ ├── MapToDriveMetrics.java │ │ │ │ ├── MapToNICs.java │ │ │ │ ├── MapToServerInfo.java │ │ │ │ ├── MapToServerMetrics.java │ │ │ │ ├── MapToStandardDrive.java │ │ │ │ ├── ReturnPayload.java │ │ │ │ ├── ServerToMap.java │ │ │ │ └── SplitNewlines.java │ │ │ ├── handlers/ │ │ │ │ └── ElasticStackErrorHandler.java │ │ │ ├── predicates/ │ │ │ │ └── DriveClaimed.java │ │ │ ├── reference/ │ │ │ │ └── ElasticStackConstants.java │ │ │ ├── suppliers/ │ │ │ │ ├── StandardDiskImageSupplier.java │ │ │ │ └── WellKnownImageSupplier.java │ │ │ └── util/ │ │ │ └── Servers.java │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── elasticstack/ │ │ │ ├── ElasticStackApiLiveTest.java │ │ │ ├── ElasticStackApiMetadataTest.java │ │ │ ├── ElasticStackApiTest.java │ │ │ ├── ElasticStackMockTest.java │ │ │ ├── binders/ │ │ │ │ ├── BindDriveDataToPlainTextStringTest.java │ │ │ │ ├── BindDriveToPlainTextStringTest.java │ │ │ │ └── BindServerToPlainTextStringTest.java │ │ │ ├── compute/ │ │ │ │ ├── ElasticStackComputeServiceAdapterTest.java │ │ │ │ ├── ElasticStackComputeServiceLiveTest.java │ │ │ │ └── functions/ │ │ │ │ ├── GetImageIdFromServerTest.java │ │ │ │ └── StandardDriveToWellKnownImageTest.java │ │ │ ├── functions/ │ │ │ │ ├── BaseDriveToMapTest.java │ │ │ │ ├── CreateDriveRequestToMapTest.java │ │ │ │ ├── DriveDataToMapTest.java │ │ │ │ ├── KeyValuesDelimitedByBlankLinesToDriveInfoTest.java │ │ │ │ ├── KeyValuesDelimitedByBlankLinesToServerInfoTest.java │ │ │ │ ├── ListOfKeyValuesDelimitedByBlankLinesToDriveInfoSetTest.java │ │ │ │ ├── ListOfKeyValuesDelimitedByBlankLinesToListOfMapsTest.java │ │ │ │ ├── ListOfKeyValuesDelimitedByBlankLinesToServerInfoSetTest.java │ │ │ │ ├── ListOfKeyValuesDelimitedByBlankLinesToStandardDriveSetTest.java │ │ │ │ ├── ListOfMapsToListOfKeyValuesDelimitedByBlankLinesTest.java │ │ │ │ ├── MapToDriveInfoTest.java │ │ │ │ ├── MapToServerInfoTest.java │ │ │ │ ├── MapToStandardDriveTest.java │ │ │ │ ├── ServerToMapTest.java │ │ │ │ └── SplitNewlinesTest.java │ │ │ ├── handlers/ │ │ │ │ └── ElasticStackErrorHandlerTest.java │ │ │ └── suppliers/ │ │ │ └── MockStandardDiskImageSupplier.java │ │ └── resources/ │ │ ├── create_drive.txt │ │ ├── create_server.txt │ │ ├── drive.txt │ │ ├── drive_data.txt │ │ ├── log4j.xml │ │ ├── new_server.txt │ │ ├── new_server2.txt │ │ ├── server2.txt │ │ ├── servers.txt │ │ ├── standard_drive.txt │ │ ├── standard_drives.txt │ │ ├── standard_drives_uuids.txt │ │ └── uuids.txt │ ├── filesystem/ │ │ ├── README.txt │ │ ├── bnd.bnd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── filesystem/ │ │ │ ├── FilesystemApiMetadata.java │ │ │ ├── config/ │ │ │ │ └── FilesystemBlobStoreContextModule.java │ │ │ ├── predicates/ │ │ │ │ └── validators/ │ │ │ │ ├── FilesystemBlobKeyValidator.java │ │ │ │ ├── FilesystemContainerNameValidator.java │ │ │ │ └── internal/ │ │ │ │ ├── FilesystemBlobKeyValidatorImpl.java │ │ │ │ └── FilesystemContainerNameValidatorImpl.java │ │ │ ├── reference/ │ │ │ │ └── FilesystemConstants.java │ │ │ ├── strategy/ │ │ │ │ └── internal/ │ │ │ │ └── FilesystemStorageStrategyImpl.java │ │ │ └── util/ │ │ │ ├── Utils.java │ │ │ └── internal/ │ │ │ └── FileSystemBlobUtilsImpl.java │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── filesystem/ │ │ │ ├── FilesystemApiMetadataTest.java │ │ │ ├── FilesystemBlobStoreTest.java │ │ │ ├── integration/ │ │ │ │ ├── FilesystemBlobIntegrationTest.java │ │ │ │ ├── FilesystemContainerIntegrationTest.java │ │ │ │ └── FilesystemServiceIntegrationTest.java │ │ │ ├── predicates/ │ │ │ │ └── validators/ │ │ │ │ └── internal/ │ │ │ │ ├── FilesystemBlobKeyValidatorTest.java │ │ │ │ └── FilesystemContainerNameValidatorTest.java │ │ │ ├── strategy/ │ │ │ │ └── internal/ │ │ │ │ └── FilesystemStorageStrategyImplTest.java │ │ │ └── utils/ │ │ │ └── TestUtils.java │ │ └── resources/ │ │ └── logging.properties │ ├── glacier/ │ │ ├── README.md │ │ ├── bnd.bnd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── glacier/ │ │ │ ├── GlacierApiMetadata.java │ │ │ ├── GlacierClient.java │ │ │ ├── GlacierResponseException.java │ │ │ ├── binders/ │ │ │ │ ├── BindArchiveOutputRangeToHeaders.java │ │ │ │ ├── BindArchiveSizeToHeaders.java │ │ │ │ ├── BindContentRangeToHeaders.java │ │ │ │ ├── BindDescriptionToHeaders.java │ │ │ │ ├── BindHashesToHeaders.java │ │ │ │ ├── BindJobRequestToJsonPayload.java │ │ │ │ ├── BindMultipartTreeHashToHeaders.java │ │ │ │ └── BindPartSizeToHeaders.java │ │ │ ├── blobstore/ │ │ │ │ ├── GlacierBlobStore.java │ │ │ │ ├── config/ │ │ │ │ │ └── GlacierBlobStoreContextModule.java │ │ │ │ ├── functions/ │ │ │ │ │ ├── ArchiveMetadataCollectionToStorageMetadata.java │ │ │ │ │ ├── ListContainerOptionsToInventoryRetrievalJobRequest.java │ │ │ │ │ ├── PaginatedVaultCollectionToStorageMetadata.java │ │ │ │ │ └── VaultMetadataToStorageMetadata.java │ │ │ │ └── strategy/ │ │ │ │ ├── MultipartUploadStrategy.java │ │ │ │ ├── PayloadSlice.java │ │ │ │ ├── PollingStrategy.java │ │ │ │ ├── SlicingStrategy.java │ │ │ │ └── internal/ │ │ │ │ ├── BasePollingStrategy.java │ │ │ │ ├── BaseSlicingStrategy.java │ │ │ │ ├── ClearVaultStrategy.java │ │ │ │ └── SequentialMultipartUploadStrategy.java │ │ │ ├── config/ │ │ │ │ ├── GlacierHttpApiModule.java │ │ │ │ └── GlacierParserModule.java │ │ │ ├── domain/ │ │ │ │ ├── ArchiveMetadata.java │ │ │ │ ├── ArchiveMetadataCollection.java │ │ │ │ ├── ArchiveRetrievalJobRequest.java │ │ │ │ ├── GlacierError.java │ │ │ │ ├── InventoryRetrievalJobRequest.java │ │ │ │ ├── InventoryRetrievalParameters.java │ │ │ │ ├── JobMetadata.java │ │ │ │ ├── JobRequest.java │ │ │ │ ├── JobStatus.java │ │ │ │ ├── MultipartUploadMetadata.java │ │ │ │ ├── PaginatedJobCollection.java │ │ │ │ ├── PaginatedMultipartUploadCollection.java │ │ │ │ ├── PaginatedVaultCollection.java │ │ │ │ ├── PartMetadata.java │ │ │ │ └── VaultMetadata.java │ │ │ ├── fallbacks/ │ │ │ │ └── FalseOnIllegalArgumentException.java │ │ │ ├── filters/ │ │ │ │ └── RequestAuthorizeSignature.java │ │ │ ├── functions/ │ │ │ │ ├── GetPayloadFromHttpContent.java │ │ │ │ ├── ParseArchiveIdHeader.java │ │ │ │ ├── ParseArchiveMetadataCollectionFromHttpContent.java │ │ │ │ ├── ParseJobIdHeader.java │ │ │ │ ├── ParseJobMetadataFromHttpContent.java │ │ │ │ ├── ParseJobMetadataListFromHttpContent.java │ │ │ │ ├── ParseMultipartUploadIdHeader.java │ │ │ │ ├── ParseMultipartUploadListFromHttpContent.java │ │ │ │ ├── ParseMultipartUploadPartListFromHttpContent.java │ │ │ │ ├── ParseMultipartUploadTreeHashHeader.java │ │ │ │ ├── ParseVaultMetadataFromHttpContent.java │ │ │ │ └── ParseVaultMetadataListFromHttpContent.java │ │ │ ├── handlers/ │ │ │ │ └── ParseGlacierErrorFromJsonContent.java │ │ │ ├── options/ │ │ │ │ └── PaginationOptions.java │ │ │ ├── predicates/ │ │ │ │ └── validators/ │ │ │ │ ├── DescriptionValidator.java │ │ │ │ ├── PartSizeValidator.java │ │ │ │ ├── PayloadValidator.java │ │ │ │ └── VaultNameValidator.java │ │ │ ├── reference/ │ │ │ │ └── GlacierHeaders.java │ │ │ └── util/ │ │ │ ├── AWSRequestSignerV4.java │ │ │ ├── ContentRange.java │ │ │ └── TreeHash.java │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── glacier/ │ │ │ ├── GlacierApiMetadataTest.java │ │ │ ├── GlacierClientLiveTest.java │ │ │ ├── GlacierClientLongLiveTest.java │ │ │ ├── GlacierClientMockTest.java │ │ │ ├── blobstore/ │ │ │ │ └── strategy/ │ │ │ │ └── internal/ │ │ │ │ ├── BaseSlicingStrategyTest.java │ │ │ │ └── MultipartUploadStrategyMockTest.java │ │ │ ├── predicates/ │ │ │ │ └── validators/ │ │ │ │ ├── DescriptionValidatorTest.java │ │ │ │ ├── PartSizeValidatorTest.java │ │ │ │ ├── PayloadValidatorTest.java │ │ │ │ └── VaultNameValidatorTest.java │ │ │ └── util/ │ │ │ ├── AWSRequestSignerV4Test.java │ │ │ ├── ContentRangeTest.java │ │ │ ├── TestUtils.java │ │ │ └── TreeHashTest.java │ │ └── resources/ │ │ ├── json/ │ │ │ ├── describeJobResponseBody.json │ │ │ ├── describeVaultResponseBody.json │ │ │ ├── getJobOutputResponseBody.json │ │ │ ├── listJobsResponseBody.json │ │ │ ├── listMultipartUploadsResponseBody.json │ │ │ ├── listMultipartUploadsWithEmptyListResponseBody.json │ │ │ ├── listPartsResponseBody.json │ │ │ ├── listVaultsResponseBody.json │ │ │ ├── listVaultsWithEmptyListResponseBody.json │ │ │ └── listVaultsWithQueryParamsResponseBody.json │ │ └── testng.xml │ ├── oauth/ │ │ ├── README │ │ ├── bnd.bnd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── oauth/ │ │ │ └── v2/ │ │ │ ├── AuthorizationApi.java │ │ │ ├── OAuthFallbacks.java │ │ │ ├── config/ │ │ │ │ ├── Authorization.java │ │ │ │ ├── CertificateFingerprintSupplier.java │ │ │ │ ├── CredentialType.java │ │ │ │ ├── OAuthConfigFactory.java │ │ │ │ ├── OAuthModule.java │ │ │ │ ├── OAuthProperties.java │ │ │ │ ├── OAuthScopes.java │ │ │ │ └── PrivateKeySupplier.java │ │ │ ├── domain/ │ │ │ │ ├── CertificateFingerprint.java │ │ │ │ ├── Claims.java │ │ │ │ ├── ClientCredentialsAuthArgs.java │ │ │ │ ├── ClientCredentialsClaims.java │ │ │ │ ├── ClientSecret.java │ │ │ │ └── Token.java │ │ │ ├── filters/ │ │ │ │ ├── BearerTokenFromCredentials.java │ │ │ │ ├── ClientCredentialsJWTBearerTokenFlow.java │ │ │ │ ├── ClientCredentialsSecretFlow.java │ │ │ │ ├── JWTBearerTokenFlow.java │ │ │ │ └── OAuthFilter.java │ │ │ └── functions/ │ │ │ ├── ClaimsToAssertion.java │ │ │ └── ClientCredentialsClaimsToAssertion.java │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── oauth/ │ │ │ └── v2/ │ │ │ ├── AuthorizationApiLiveTest.java │ │ │ ├── AuthorizationApiMockTest.java │ │ │ ├── OAuthTestUtils.java │ │ │ ├── config/ │ │ │ │ └── PrivateKeySupplierTest.java │ │ │ ├── filters/ │ │ │ │ └── TestJWTBearerTokenFlow.java │ │ │ └── functions/ │ │ │ └── ClaimsToAssertionTest.java │ │ └── resources/ │ │ ├── logback.xml │ │ ├── testcert.pem │ │ └── testpk.pem │ ├── openstack-cinder/ │ │ ├── bnd.bnd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── openstack/ │ │ │ └── cinder/ │ │ │ └── v1/ │ │ │ ├── CinderApi.java │ │ │ ├── CinderApiMetadata.java │ │ │ ├── config/ │ │ │ │ ├── CinderHttpApiModule.java │ │ │ │ └── CinderParserModule.java │ │ │ ├── domain/ │ │ │ │ ├── AvailabilityZone.java │ │ │ │ ├── Snapshot.java │ │ │ │ ├── SnapshotExtendedAttributes.java │ │ │ │ ├── Volume.java │ │ │ │ ├── VolumeAttachment.java │ │ │ │ ├── VolumeQuota.java │ │ │ │ ├── VolumeType.java │ │ │ │ └── ZoneState.java │ │ │ ├── extensions/ │ │ │ │ ├── AvailabilityZoneApi.java │ │ │ │ └── ExtensionNamespaces.java │ │ │ ├── features/ │ │ │ │ ├── QuotaApi.java │ │ │ │ ├── SnapshotApi.java │ │ │ │ ├── VolumeApi.java │ │ │ │ └── VolumeTypeApi.java │ │ │ ├── handlers/ │ │ │ │ └── CinderErrorHandler.java │ │ │ ├── options/ │ │ │ │ ├── CreateSnapshotOptions.java │ │ │ │ └── CreateVolumeOptions.java │ │ │ └── predicates/ │ │ │ ├── SnapshotPredicates.java │ │ │ └── VolumePredicates.java │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── openstack/ │ │ │ └── cinder/ │ │ │ └── v1/ │ │ │ ├── domain/ │ │ │ │ └── VolumeTest.java │ │ │ ├── features/ │ │ │ │ ├── AvailabilityZoneApiExpectTest.java │ │ │ │ ├── AvailabilityZoneApiLiveTest.java │ │ │ │ ├── QuotasApiExpectTest.java │ │ │ │ ├── QuotasApiLiveTest.java │ │ │ │ ├── SnapshotApiExpectTest.java │ │ │ │ ├── VolumeAndSnapshotApiLiveTest.java │ │ │ │ ├── VolumeApiExpectTest.java │ │ │ │ ├── VolumeTypeApiExpectTest.java │ │ │ │ └── VolumeTypeApiLiveTest.java │ │ │ └── internal/ │ │ │ ├── BaseCinderApiExpectTest.java │ │ │ ├── BaseCinderApiLiveTest.java │ │ │ └── BaseCinderExpectTest.java │ │ └── resources/ │ │ ├── availability_zones_list.json │ │ ├── quotas.json │ │ ├── snapshot_create.json │ │ ├── snapshot_create_response.json │ │ ├── snapshot_get.json │ │ ├── snapshot_list_details.json │ │ ├── snapshot_list_simple.json │ │ ├── volume_create.json │ │ ├── volume_create_response.json │ │ ├── volume_get.json │ │ ├── volume_list_details.json │ │ ├── volume_list_simple.json │ │ ├── volume_type_get.json │ │ └── volume_type_list_simple.json │ ├── openstack-keystone/ │ │ ├── bnd.bnd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── openstack/ │ │ │ ├── keystone/ │ │ │ │ ├── auth/ │ │ │ │ │ ├── AuthHeaders.java │ │ │ │ │ ├── AuthenticationApi.java │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── Authentication.java │ │ │ │ │ │ ├── AuthenticationModule.java │ │ │ │ │ │ ├── CredentialType.java │ │ │ │ │ │ └── CredentialTypes.java │ │ │ │ │ ├── domain/ │ │ │ │ │ │ ├── ApiAccessKeyCredentials.java │ │ │ │ │ │ ├── AuthInfo.java │ │ │ │ │ │ ├── PasswordCredentials.java │ │ │ │ │ │ ├── TenantOrDomainAndCredentials.java │ │ │ │ │ │ └── TokenCredentials.java │ │ │ │ │ ├── filters/ │ │ │ │ │ │ └── AuthenticateRequest.java │ │ │ │ │ ├── functions/ │ │ │ │ │ │ ├── AuthenticateApiAccessKeyCredentials.java │ │ │ │ │ │ ├── AuthenticatePasswordCredentials.java │ │ │ │ │ │ ├── AuthenticateTokenCredentials.java │ │ │ │ │ │ └── BaseAuthenticator.java │ │ │ │ │ └── handlers/ │ │ │ │ │ └── RetryOnRenew.java │ │ │ │ ├── catalog/ │ │ │ │ │ ├── ServiceEndpoint.java │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── InternalUrlModule.java │ │ │ │ │ │ ├── KeystoneAdminURLModule.java │ │ │ │ │ │ └── ServiceCatalogModule.java │ │ │ │ │ ├── functions/ │ │ │ │ │ │ ├── AdminEndpointResolutionStrategy.java │ │ │ │ │ │ ├── AdminURL.java │ │ │ │ │ │ ├── BaseEndpointResolutionStrategy.java │ │ │ │ │ │ ├── InternalURL.java │ │ │ │ │ │ ├── PublicURLOrInternal.java │ │ │ │ │ │ ├── ReturnRegionOrProvider.java │ │ │ │ │ │ ├── ServiceEndpointResolutionStrategy.java │ │ │ │ │ │ └── ServiceEndpointToRegion.java │ │ │ │ │ └── suppliers/ │ │ │ │ │ ├── LocationIdToURIFromServiceEndpointsForTypeAndVersion.java │ │ │ │ │ ├── RegionIdToAdminURIFromServiceEndpointsForTypeAndVersion.java │ │ │ │ │ ├── RegionIdToAdminURISupplier.java │ │ │ │ │ └── RegionIdToURIFromServiceEndpointsForTypeAndVersion.java │ │ │ │ ├── config/ │ │ │ │ │ └── KeystoneProperties.java │ │ │ │ ├── v2_0/ │ │ │ │ │ ├── KeystoneApi.java │ │ │ │ │ ├── KeystoneApiMetadata.java │ │ │ │ │ ├── KeystoneFallbacks.java │ │ │ │ │ ├── auth/ │ │ │ │ │ │ └── V2AuthenticationApi.java │ │ │ │ │ ├── binders/ │ │ │ │ │ │ └── BindAuthToJsonPayload.java │ │ │ │ │ ├── catalog/ │ │ │ │ │ │ └── V2ServiceCatalog.java │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── KeystoneHttpApiModule.java │ │ │ │ │ │ ├── KeystoneParserModule.java │ │ │ │ │ │ └── NamespaceAliases.java │ │ │ │ │ ├── domain/ │ │ │ │ │ │ ├── Access.java │ │ │ │ │ │ ├── ApiMetadata.java │ │ │ │ │ │ ├── Endpoint.java │ │ │ │ │ │ ├── MediaType.java │ │ │ │ │ │ ├── Role.java │ │ │ │ │ │ ├── Service.java │ │ │ │ │ │ ├── Tenant.java │ │ │ │ │ │ ├── Token.java │ │ │ │ │ │ └── User.java │ │ │ │ │ ├── extensions/ │ │ │ │ │ │ ├── ExtensionAliases.java │ │ │ │ │ │ ├── ExtensionNames.java │ │ │ │ │ │ ├── ExtensionNamespaces.java │ │ │ │ │ │ ├── RoleAdminApi.java │ │ │ │ │ │ ├── ServiceAdminApi.java │ │ │ │ │ │ ├── TenantAdminApi.java │ │ │ │ │ │ └── UserAdminApi.java │ │ │ │ │ ├── features/ │ │ │ │ │ │ ├── ServiceApi.java │ │ │ │ │ │ ├── TenantApi.java │ │ │ │ │ │ ├── TokenApi.java │ │ │ │ │ │ └── UserApi.java │ │ │ │ │ ├── functions/ │ │ │ │ │ │ └── internal/ │ │ │ │ │ │ ├── ParseServices.java │ │ │ │ │ │ ├── ParseTenants.java │ │ │ │ │ │ └── ParseUsers.java │ │ │ │ │ ├── handlers/ │ │ │ │ │ │ └── KeystoneErrorHandler.java │ │ │ │ │ └── options/ │ │ │ │ │ ├── CreateTenantOptions.java │ │ │ │ │ ├── CreateUserOptions.java │ │ │ │ │ ├── UpdateTenantOptions.java │ │ │ │ │ └── UpdateUserOptions.java │ │ │ │ └── v3/ │ │ │ │ ├── KeystoneApi.java │ │ │ │ ├── KeystoneApiMetadata.java │ │ │ │ ├── auth/ │ │ │ │ │ └── V3AuthenticationApi.java │ │ │ │ ├── binders/ │ │ │ │ │ ├── BindAccessKeyAuthToJsonPayload.java │ │ │ │ │ ├── BindAuthToJsonPayload.java │ │ │ │ │ ├── BindPasswordAuthToJsonPayload.java │ │ │ │ │ └── BindTokenAuthToJsonPayload.java │ │ │ │ ├── catalog/ │ │ │ │ │ └── V3ServiceCatalog.java │ │ │ │ ├── config/ │ │ │ │ │ └── KeystoneHttpApiModule.java │ │ │ │ ├── domain/ │ │ │ │ │ ├── Auth.java │ │ │ │ │ ├── Catalog.java │ │ │ │ │ ├── Endpoint.java │ │ │ │ │ ├── Group.java │ │ │ │ │ ├── Link.java │ │ │ │ │ ├── Project.java │ │ │ │ │ ├── Region.java │ │ │ │ │ ├── Token.java │ │ │ │ │ └── User.java │ │ │ │ ├── features/ │ │ │ │ │ ├── AuthApi.java │ │ │ │ │ ├── CatalogApi.java │ │ │ │ │ ├── ProjectApi.java │ │ │ │ │ ├── RegionApi.java │ │ │ │ │ └── UserApi.java │ │ │ │ └── parsers/ │ │ │ │ └── ParseTokenFromHttpResponse.java │ │ │ └── v2_0/ │ │ │ ├── ServiceType.java │ │ │ ├── domain/ │ │ │ │ ├── Extension.java │ │ │ │ ├── Limit.java │ │ │ │ ├── Limits.java │ │ │ │ ├── Link.java │ │ │ │ ├── PaginatedCollection.java │ │ │ │ ├── RateLimit.java │ │ │ │ └── Resource.java │ │ │ ├── features/ │ │ │ │ └── ExtensionApi.java │ │ │ ├── functions/ │ │ │ │ └── PresentWhenExtensionAnnotationMatchesExtensionSet.java │ │ │ ├── options/ │ │ │ │ └── PaginationOptions.java │ │ │ ├── predicates/ │ │ │ │ ├── ExtensionPredicates.java │ │ │ │ └── LinkPredicates.java │ │ │ └── services/ │ │ │ ├── Compute.java │ │ │ ├── Extension.java │ │ │ ├── Identity.java │ │ │ ├── Image.java │ │ │ └── ObjectStore.java │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── openstack/ │ │ │ ├── keystone/ │ │ │ │ ├── auth/ │ │ │ │ │ ├── config/ │ │ │ │ │ │ ├── CredentialTypesTest.java │ │ │ │ │ │ └── ProviderModuleExpectTest.java │ │ │ │ │ ├── handlers/ │ │ │ │ │ │ └── RetryOnRenewTest.java │ │ │ │ │ └── suppliers/ │ │ │ │ │ ├── LocationIdToURIFromAccessForTypeAndVersionTest.java │ │ │ │ │ ├── RegionIdToAdminURIFromAccessForTypeAndVersionTest.java │ │ │ │ │ └── RegionIdToURIFromAccessForTypeAndVersionTest.java │ │ │ │ ├── catalog/ │ │ │ │ │ └── functions/ │ │ │ │ │ ├── AdminURLTest.java │ │ │ │ │ ├── InternalURLTest.java │ │ │ │ │ ├── PublicURLOrInternalTest.java │ │ │ │ │ └── ReturnRegionOrProviderTest.java │ │ │ │ ├── v2_0/ │ │ │ │ │ ├── KeystoneApiExpectTest.java │ │ │ │ │ ├── KeystoneApiLiveTest.java │ │ │ │ │ ├── extensions/ │ │ │ │ │ │ ├── RoleAdminApiLiveTest.java │ │ │ │ │ │ ├── RoleAdminApiMockTest.java │ │ │ │ │ │ ├── ServiceAdminApiLiveTest.java │ │ │ │ │ │ ├── ServiceAdminApiMockTest.java │ │ │ │ │ │ ├── TenantAdminApiLiveTest.java │ │ │ │ │ │ ├── TenantAdminApiMockTest.java │ │ │ │ │ │ ├── UserAdminApiLiveTest.java │ │ │ │ │ │ └── UserAdminApiMockTest.java │ │ │ │ │ ├── features/ │ │ │ │ │ │ ├── ServiceApiExpectTest.java │ │ │ │ │ │ ├── ServiceApiLiveTest.java │ │ │ │ │ │ ├── TenantApiExpectTest.java │ │ │ │ │ │ ├── TenantApiLiveTest.java │ │ │ │ │ │ ├── TokenApiExpectTest.java │ │ │ │ │ │ ├── TokenApiLiveTest.java │ │ │ │ │ │ ├── UserApiExpectTest.java │ │ │ │ │ │ └── UserApiLiveTest.java │ │ │ │ │ ├── functions/ │ │ │ │ │ │ └── internal/ │ │ │ │ │ │ └── ParseUsersTest.java │ │ │ │ │ ├── internal/ │ │ │ │ │ │ ├── BaseKeystoneApiLiveTest.java │ │ │ │ │ │ ├── BaseKeystoneRestApiExpectTest.java │ │ │ │ │ │ └── KeystoneFixture.java │ │ │ │ │ └── parse/ │ │ │ │ │ ├── ParseAccessTest.java │ │ │ │ │ ├── ParseAdminAccessTest.java │ │ │ │ │ ├── ParseDevstackApiMetadataTest.java │ │ │ │ │ ├── ParseMinimalAccessTest.java │ │ │ │ │ ├── ParseRackspaceAccessTest.java │ │ │ │ │ ├── ParseRackspaceApiMetadataTest.java │ │ │ │ │ ├── ParseRackspaceCryptoTokenAccessTest.java │ │ │ │ │ └── ParseRandomEndpointVersionAccessTest.java │ │ │ │ └── v3/ │ │ │ │ ├── auth/ │ │ │ │ │ ├── V3AuthenticationApiLiveTest.java │ │ │ │ │ └── V3AuthenticationApiMockTest.java │ │ │ │ ├── features/ │ │ │ │ │ ├── AuthApiLiveTest.java │ │ │ │ │ ├── AuthApiMockTest.java │ │ │ │ │ ├── CatalogApiLiveTest.java │ │ │ │ │ ├── CatalogApiMockTest.java │ │ │ │ │ ├── ProjectApiLiveTest.java │ │ │ │ │ ├── ProjectApiMockTest.java │ │ │ │ │ ├── RegionApiLiveTest.java │ │ │ │ │ ├── RegionApiMockTest.java │ │ │ │ │ ├── UserApiLiveTest.java │ │ │ │ │ └── UserApiMockTest.java │ │ │ │ └── internal/ │ │ │ │ ├── BaseV3KeystoneApiLiveTest.java │ │ │ │ └── BaseV3KeystoneApiMockTest.java │ │ │ └── v2_0/ │ │ │ ├── functions/ │ │ │ │ └── PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSetTest.java │ │ │ ├── internal/ │ │ │ │ └── BaseOpenStackMockTest.java │ │ │ ├── options/ │ │ │ │ └── PaginationOptionsTest.java │ │ │ └── predicates/ │ │ │ ├── ExtensionPredicatesTest.java │ │ │ └── LinkPredicatesTest.java │ │ └── resources/ │ │ ├── access_minimal.json │ │ ├── access_version_uids.json │ │ ├── adminAuth.json │ │ ├── admin_extensions.json │ │ ├── devstackVersion.json │ │ ├── keystoneAuthResponse.json │ │ ├── keystoneAuthResponse_openstack.json │ │ ├── logback.xml │ │ ├── raxAuth.json │ │ ├── raxCryptoAuth.json │ │ ├── raxVersion.json │ │ ├── role_create_response.json │ │ ├── role_list_response.json │ │ ├── service_create_response.json │ │ ├── service_list_response.json │ │ ├── tenant_create_response.json │ │ ├── tenant_details.json │ │ ├── tenant_list.json │ │ ├── tenant_list_att.json │ │ ├── tenant_update_response.json │ │ ├── token_details.json │ │ ├── user_create_response.json │ │ ├── user_details.json │ │ ├── user_endpoints.json │ │ ├── user_list.json │ │ ├── user_role_list.json │ │ ├── user_tenant_role_list.json │ │ ├── user_update_response.json │ │ └── v3/ │ │ ├── auth-accesskey.json │ │ ├── auth-password-project-scoped-id-domain-id.json │ │ ├── auth-password-project-scoped-id-domain-name.json │ │ ├── auth-password-project-scoped-name-domain-backwards-compat.json │ │ ├── auth-password-project-scoped-name-domain-id.json │ │ ├── auth-password-project-scoped-name-domain-name.json │ │ ├── auth-password-scoped.json │ │ ├── auth-password.json │ │ ├── auth-token-scoped.json │ │ ├── auth-token.json │ │ ├── endpoints.json │ │ ├── groups.json │ │ ├── project.json │ │ ├── projects.json │ │ ├── region.json │ │ ├── regions.json │ │ ├── token.json │ │ ├── user.json │ │ └── users.json │ ├── openstack-neutron/ │ │ ├── README.md │ │ ├── bnd.bnd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── openstack/ │ │ │ └── neutron/ │ │ │ └── v2/ │ │ │ ├── NeutronApi.java │ │ │ ├── NeutronApiMetadata.java │ │ │ ├── config/ │ │ │ │ └── NeutronHttpApiModule.java │ │ │ ├── domain/ │ │ │ │ ├── AddressPair.java │ │ │ │ ├── AllocationPool.java │ │ │ │ ├── CreateFirewall.java │ │ │ │ ├── CreateFirewallPolicy.java │ │ │ │ ├── CreateFirewallRule.java │ │ │ │ ├── ExternalGatewayInfo.java │ │ │ │ ├── ExtraDhcpOption.java │ │ │ │ ├── Firewall.java │ │ │ │ ├── FirewallPolicies.java │ │ │ │ ├── FirewallPolicy.java │ │ │ │ ├── FirewallRule.java │ │ │ │ ├── FirewallRules.java │ │ │ │ ├── Firewalls.java │ │ │ │ ├── FloatingIP.java │ │ │ │ ├── FloatingIPs.java │ │ │ │ ├── HostRoute.java │ │ │ │ ├── IP.java │ │ │ │ ├── IPv6DHCPMode.java │ │ │ │ ├── IpVersion.java │ │ │ │ ├── Network.java │ │ │ │ ├── NetworkSegment.java │ │ │ │ ├── NetworkStatus.java │ │ │ │ ├── NetworkType.java │ │ │ │ ├── Networks.java │ │ │ │ ├── Port.java │ │ │ │ ├── Ports.java │ │ │ │ ├── Router.java │ │ │ │ ├── RouterInterface.java │ │ │ │ ├── Routers.java │ │ │ │ ├── Rule.java │ │ │ │ ├── RuleDirection.java │ │ │ │ ├── RuleEthertype.java │ │ │ │ ├── RuleProtocol.java │ │ │ │ ├── Rules.java │ │ │ │ ├── SecurityGroup.java │ │ │ │ ├── SecurityGroups.java │ │ │ │ ├── Subnet.java │ │ │ │ ├── Subnets.java │ │ │ │ ├── UpdateFirewall.java │ │ │ │ ├── UpdateFirewallPolicy.java │ │ │ │ ├── UpdateFirewallRule.java │ │ │ │ ├── VIFType.java │ │ │ │ ├── VNICType.java │ │ │ │ └── lbaas/ │ │ │ │ └── v1/ │ │ │ │ ├── HealthMonitor.java │ │ │ │ ├── HealthMonitorStatus.java │ │ │ │ ├── HealthMonitors.java │ │ │ │ ├── HttpMethod.java │ │ │ │ ├── LBaaSStatus.java │ │ │ │ ├── Member.java │ │ │ │ ├── Members.java │ │ │ │ ├── Pool.java │ │ │ │ ├── PoolStatus.java │ │ │ │ ├── Pools.java │ │ │ │ ├── ProbeType.java │ │ │ │ ├── Protocol.java │ │ │ │ ├── SessionPersistence.java │ │ │ │ ├── VIP.java │ │ │ │ └── VIPs.java │ │ │ ├── extensions/ │ │ │ │ ├── ExtensionNamespaces.java │ │ │ │ ├── FWaaSApi.java │ │ │ │ ├── RouterApi.java │ │ │ │ └── lbaas/ │ │ │ │ └── v1/ │ │ │ │ └── LBaaSApi.java │ │ │ ├── fallbacks/ │ │ │ │ ├── EmptyFloatingIPsFallback.java │ │ │ │ ├── EmptyNetworksFallback.java │ │ │ │ ├── EmptyPortsFallback.java │ │ │ │ ├── EmptyRoutersFallback.java │ │ │ │ ├── EmptyRulesFallback.java │ │ │ │ ├── EmptySecurityGroupsFallback.java │ │ │ │ ├── EmptySubnetsFallback.java │ │ │ │ └── lbaas/ │ │ │ │ └── v1/ │ │ │ │ ├── EmptyHealthMonitorsFallback.java │ │ │ │ ├── EmptyMembersFallback.java │ │ │ │ ├── EmptyPoolsFallback.java │ │ │ │ └── EmptyVIPsFallback.java │ │ │ ├── features/ │ │ │ │ ├── FloatingIPApi.java │ │ │ │ ├── NetworkApi.java │ │ │ │ ├── PortApi.java │ │ │ │ ├── SecurityGroupApi.java │ │ │ │ └── SubnetApi.java │ │ │ ├── functions/ │ │ │ │ ├── FirewallPolicyToPagedIterable.java │ │ │ │ ├── FirewallRuleToPagedIterable.java │ │ │ │ ├── FirewallToPagedIterable.java │ │ │ │ ├── FloatingIPsToPagedIterable.java │ │ │ │ ├── NetworksToPagedIterable.java │ │ │ │ ├── ParseFirewallPolicies.java │ │ │ │ ├── ParseFirewallRules.java │ │ │ │ ├── ParseFirewalls.java │ │ │ │ ├── ParseFloatingIPs.java │ │ │ │ ├── ParseNetworks.java │ │ │ │ ├── ParsePorts.java │ │ │ │ ├── ParseRouters.java │ │ │ │ ├── ParseRules.java │ │ │ │ ├── ParseSecurityGroups.java │ │ │ │ ├── ParseSubnets.java │ │ │ │ ├── PortsToPagedIterable.java │ │ │ │ ├── RouterToPagedIterable.java │ │ │ │ ├── RulesToPagedIterable.java │ │ │ │ ├── SecurityGroupsToPagedIterable.java │ │ │ │ ├── SubnetsToPagedIterable.java │ │ │ │ ├── VersionAwareRegionToEndpoint.java │ │ │ │ └── lbaas/ │ │ │ │ └── v1/ │ │ │ │ ├── HealthMonitorsToPagedIterable.java │ │ │ │ ├── MembersToPagedIterable.java │ │ │ │ ├── ParseHealthMonitors.java │ │ │ │ ├── ParseMembers.java │ │ │ │ ├── ParsePools.java │ │ │ │ ├── ParseVIPs.java │ │ │ │ ├── PoolsToPagedIterable.java │ │ │ │ └── VIPsToPagedIterable.java │ │ │ ├── handlers/ │ │ │ │ └── NeutronErrorHandler.java │ │ │ └── options/ │ │ │ └── EmptyOptions.java │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── openstack/ │ │ │ └── neutron/ │ │ │ └── v2/ │ │ │ ├── NeutronApiMetadataTest.java │ │ │ ├── extensions/ │ │ │ │ ├── FWaaSApiLiveTest.java │ │ │ │ ├── FWaaSApiMockTest.java │ │ │ │ ├── RouterApiLiveTest.java │ │ │ │ ├── RouterApiMockTest.java │ │ │ │ └── lbaas/ │ │ │ │ └── v1/ │ │ │ │ ├── LBaaSApiLiveTest.java │ │ │ │ └── LBaaSApiMockTest.java │ │ │ ├── features/ │ │ │ │ ├── ExtensionApiLiveTest.java │ │ │ │ ├── ExtensionApiMockTest.java │ │ │ │ ├── FloatingIPApiLiveTest.java │ │ │ │ ├── FloatingIPApiMockTest.java │ │ │ │ ├── NetworkApiLiveTest.java │ │ │ │ ├── NetworkApiMockTest.java │ │ │ │ ├── PortApiLiveTest.java │ │ │ │ ├── PortApiMockTest.java │ │ │ │ ├── SecurityGroupApiLiveTest.java │ │ │ │ ├── SecurityGroupApiMockTest.java │ │ │ │ ├── SubnetApiLiveTest.java │ │ │ │ └── SubnetApiMockTest.java │ │ │ ├── internal/ │ │ │ │ ├── BaseNeutronApiLiveTest.java │ │ │ │ └── BaseNeutronApiMockTest.java │ │ │ └── util/ │ │ │ ├── ClassUtil.java │ │ │ └── PredicateUtil.java │ │ └── resources/ │ │ ├── access.json │ │ ├── extension_details.json │ │ ├── extension_list.json │ │ ├── extension_list_with_lbaas_v1_response.json │ │ ├── extension_list_without_lbaas_v1_response.json │ │ ├── firewall_create_request.json │ │ ├── firewall_create_response.json │ │ ├── firewall_get_response.json │ │ ├── firewall_list_response.json │ │ ├── firewall_policy_create_request.json │ │ ├── firewall_policy_create_response.json │ │ ├── firewall_policy_get_response.json │ │ ├── firewall_policy_insert_rule_request.json │ │ ├── firewall_policy_insert_rule_response.json │ │ ├── firewall_policy_list_response.json │ │ ├── firewall_rule_create_request.json │ │ ├── firewall_rule_create_response.json │ │ ├── firewall_rule_get_response.json │ │ ├── firewall_rule_update_request.json │ │ ├── firewall_rule_update_response.json │ │ ├── firewall_update_request.json │ │ ├── firewall_update_response.json │ │ ├── floatingip_create_request.json │ │ ├── floatingip_create_response.json │ │ ├── floatingip_get_response.json │ │ ├── floatingip_list_response.json │ │ ├── floatingip_list_response_paged1.json │ │ ├── floatingip_list_response_paged2.json │ │ ├── floatingip_update_dissociate_request.json │ │ ├── floatingip_update_dissociate_response.json │ │ ├── floatingip_update_request.json │ │ ├── floatingip_update_response.json │ │ ├── lbaas/ │ │ │ └── v1/ │ │ │ ├── health_monitor_create_request.json │ │ │ ├── health_monitor_create_response.json │ │ │ ├── health_monitor_get_response.json │ │ │ ├── health_monitor_list_response_paged1.json │ │ │ ├── health_monitor_list_response_paged2.json │ │ │ ├── health_monitor_update_request.json │ │ │ ├── health_monitor_update_response.json │ │ │ ├── member_create_request.json │ │ │ ├── member_create_response.json │ │ │ ├── member_get_response.json │ │ │ ├── member_list_response_paged1.json │ │ │ ├── member_list_response_paged2.json │ │ │ ├── member_update_request.json │ │ │ ├── member_update_response.json │ │ │ ├── pool_associate_health_monitor_request.json │ │ │ ├── pool_associate_health_monitor_response.json │ │ │ ├── pool_create_request.json │ │ │ ├── pool_create_response.json │ │ │ ├── pool_get_response.json │ │ │ ├── pool_list_response_paged1.json │ │ │ ├── pool_list_response_paged2.json │ │ │ ├── pool_update_request.json │ │ │ ├── pool_update_response.json │ │ │ ├── vip_create_request.json │ │ │ ├── vip_create_response.json │ │ │ ├── vip_get_response.json │ │ │ ├── vip_list_response_paged1.json │ │ │ ├── vip_list_response_paged2.json │ │ │ ├── vip_update_request.json │ │ │ └── vip_update_response.json │ │ ├── list_networks.json │ │ ├── list_ports.json │ │ ├── list_routers.json │ │ ├── list_subnets.json │ │ ├── logback.xml │ │ ├── network.json │ │ ├── network_bulk_create_request.json │ │ ├── network_bulk_create_response.json │ │ ├── network_create_request.json │ │ ├── network_create_response.json │ │ ├── network_get_response.json │ │ ├── network_list_response.json │ │ ├── network_list_response_paged1.json │ │ ├── network_list_response_paged2.json │ │ ├── network_update_request.json │ │ ├── network_update_response.json │ │ ├── port.json │ │ ├── port_create_bulk_request.json │ │ ├── port_create_bulk_response.json │ │ ├── port_create_request.json │ │ ├── port_create_response.json │ │ ├── port_get_response.json │ │ ├── port_list_response.json │ │ ├── port_list_response_paged1.json │ │ ├── port_list_response_paged2.json │ │ ├── port_update_request.json │ │ ├── port_update_response.json │ │ ├── router.json │ │ ├── router_add_interface_port_request.json │ │ ├── router_add_interface_request.json │ │ ├── router_add_interface_response.json │ │ ├── router_create_request.json │ │ ├── router_create_response.json │ │ ├── router_get_response.json │ │ ├── router_list_response.json │ │ ├── router_list_response_paged1.json │ │ ├── router_list_response_paged2.json │ │ ├── router_remove_interface_port_request.json │ │ ├── router_remove_interface_subnet_request.json │ │ ├── router_update_request.json │ │ ├── router_update_response.json │ │ ├── security_group_create_request.json │ │ ├── security_group_create_response.json │ │ ├── security_group_get_response.json │ │ ├── security_group_list_response.json │ │ ├── security_group_list_response_paged1.json │ │ ├── security_group_list_response_paged2.json │ │ ├── security_group_rule_create_request.json │ │ ├── security_group_rule_create_response.json │ │ ├── security_group_rule_get_response.json │ │ ├── security_group_rule_list_response.json │ │ ├── security_group_rule_list_response_paged1.json │ │ ├── security_group_rule_list_response_paged2.json │ │ ├── subnet.json │ │ ├── subnet_bulk_create_request.json │ │ ├── subnet_bulk_create_response.json │ │ ├── subnet_create_request.json │ │ ├── subnet_create_response.json │ │ ├── subnet_get_response.json │ │ ├── subnet_list_response.json │ │ ├── subnet_list_response_pages1.json │ │ ├── subnet_list_response_pages2.json │ │ ├── subnet_update_request.json │ │ └── subnet_update_response.json │ ├── openstack-nova/ │ │ ├── bnd.bnd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── openstack/ │ │ │ └── nova/ │ │ │ └── v2_0/ │ │ │ ├── NovaApi.java │ │ │ ├── NovaApiMetadata.java │ │ │ ├── binders/ │ │ │ │ ├── BindConsoleToJsonPayload.java │ │ │ │ ├── BindKeyPairToJsonPayload.java │ │ │ │ ├── BindMetadataToJsonPayload.java │ │ │ │ └── BindSecurityGroupRuleToJsonPayload.java │ │ │ ├── compute/ │ │ │ │ ├── NovaComputeService.java │ │ │ │ ├── NovaComputeServiceAdapter.java │ │ │ │ ├── config/ │ │ │ │ │ └── NovaComputeServiceContextModule.java │ │ │ │ ├── extensions/ │ │ │ │ │ ├── NeutronSecurityGroupExtension.java │ │ │ │ │ ├── NovaImageExtension.java │ │ │ │ │ └── NovaSecurityGroupExtension.java │ │ │ │ ├── functions/ │ │ │ │ │ ├── AllocateAndAddFloatingIpToNode.java │ │ │ │ │ ├── CleanupResources.java │ │ │ │ │ ├── CreateSecurityGroupIfNeeded.java │ │ │ │ │ ├── FlavorInRegionToHardware.java │ │ │ │ │ ├── ImageInRegionToImage.java │ │ │ │ │ ├── ImageToOperatingSystem.java │ │ │ │ │ ├── NeutronSecurityGroupToSecurityGroup.java │ │ │ │ │ ├── NovaSecurityGroupInRegionToSecurityGroup.java │ │ │ │ │ ├── NovaSecurityGroupToSecurityGroup.java │ │ │ │ │ ├── OrphanedGroupsByRegionId.java │ │ │ │ │ ├── RemoveFloatingIpFromNodeAndDeallocate.java │ │ │ │ │ └── ServerInRegionToNodeMetadata.java │ │ │ │ ├── loaders/ │ │ │ │ │ ├── FindSecurityGroupOrCreate.java │ │ │ │ │ └── LoadFloatingIpsForInstance.java │ │ │ │ ├── options/ │ │ │ │ │ ├── NodeAndNovaTemplateOptions.java │ │ │ │ │ └── NovaTemplateOptions.java │ │ │ │ ├── predicates/ │ │ │ │ │ └── AllNodesInGroupTerminated.java │ │ │ │ └── strategy/ │ │ │ │ └── ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java │ │ │ ├── config/ │ │ │ │ ├── NovaHttpApiModule.java │ │ │ │ ├── NovaParserModule.java │ │ │ │ └── NovaProperties.java │ │ │ ├── domain/ │ │ │ │ ├── Address.java │ │ │ │ ├── BackupType.java │ │ │ │ ├── BlockDeviceMapping.java │ │ │ │ ├── Console.java │ │ │ │ ├── FixedIP.java │ │ │ │ ├── Flavor.java │ │ │ │ ├── FloatingIP.java │ │ │ │ ├── FloatingIPPool.java │ │ │ │ ├── FloatingIpForServer.java │ │ │ │ ├── Host.java │ │ │ │ ├── HostAggregate.java │ │ │ │ ├── HostResourceUsage.java │ │ │ │ ├── Image.java │ │ │ │ ├── Ingress.java │ │ │ │ ├── InterfaceAttachment.java │ │ │ │ ├── KeyPair.java │ │ │ │ ├── Network.java │ │ │ │ ├── PortInterface.java │ │ │ │ ├── PortState.java │ │ │ │ ├── Quota.java │ │ │ │ ├── RebootType.java │ │ │ │ ├── SecurityGroup.java │ │ │ │ ├── SecurityGroupRule.java │ │ │ │ ├── Server.java │ │ │ │ ├── ServerCreated.java │ │ │ │ ├── ServerExtendedAttributes.java │ │ │ │ ├── ServerExtendedStatus.java │ │ │ │ ├── ServerWithSecurityGroups.java │ │ │ │ ├── SimpleServerUsage.java │ │ │ │ ├── SimpleTenantUsage.java │ │ │ │ ├── TenantIdAndName.java │ │ │ │ ├── VirtualInterface.java │ │ │ │ ├── Volume.java │ │ │ │ ├── VolumeAttachment.java │ │ │ │ ├── VolumeSnapshot.java │ │ │ │ ├── VolumeType.java │ │ │ │ ├── regionscoped/ │ │ │ │ │ ├── AvailabilityZone.java │ │ │ │ │ ├── AvailabilityZoneDetails.java │ │ │ │ │ ├── FlavorInRegion.java │ │ │ │ │ ├── Hypervisor.java │ │ │ │ │ ├── HypervisorDetails.java │ │ │ │ │ ├── ImageInRegion.java │ │ │ │ │ ├── NeutronSecurityGroupInRegion.java │ │ │ │ │ ├── RegionAndId.java │ │ │ │ │ ├── RegionAndName.java │ │ │ │ │ ├── RegionSecurityGroupNameAndPorts.java │ │ │ │ │ ├── SecurityGroupInRegion.java │ │ │ │ │ ├── ServerInRegion.java │ │ │ │ │ └── ZoneState.java │ │ │ │ └── zonescoped/ │ │ │ │ ├── AvailabilityZone.java │ │ │ │ ├── FlavorInRegion.java │ │ │ │ ├── ImageInRegion.java │ │ │ │ ├── RegionAndId.java │ │ │ │ ├── RegionAndName.java │ │ │ │ ├── RegionSecurityGroupNameAndPorts.java │ │ │ │ ├── SecurityGroupInRegion.java │ │ │ │ ├── ServerInRegion.java │ │ │ │ └── ZoneState.java │ │ │ ├── extensions/ │ │ │ │ ├── AttachInterfaceApi.java │ │ │ │ ├── AvailabilityZoneApi.java │ │ │ │ ├── ConsolesApi.java │ │ │ │ ├── ExtensionAliases.java │ │ │ │ ├── ExtensionNames.java │ │ │ │ ├── ExtensionNamespaces.java │ │ │ │ ├── FlavorExtraSpecsApi.java │ │ │ │ ├── FloatingIPApi.java │ │ │ │ ├── FloatingIPPoolApi.java │ │ │ │ ├── HostAdministrationApi.java │ │ │ │ ├── HostAggregateApi.java │ │ │ │ ├── HypervisorApi.java │ │ │ │ ├── KeyPairApi.java │ │ │ │ ├── QuotaApi.java │ │ │ │ ├── SecurityGroupApi.java │ │ │ │ ├── ServerAdminApi.java │ │ │ │ ├── ServerWithSecurityGroupsApi.java │ │ │ │ ├── SimpleTenantUsageApi.java │ │ │ │ ├── VirtualInterfaceApi.java │ │ │ │ ├── VolumeApi.java │ │ │ │ ├── VolumeAttachmentApi.java │ │ │ │ └── VolumeTypeApi.java │ │ │ ├── features/ │ │ │ │ ├── FlavorApi.java │ │ │ │ ├── ImageApi.java │ │ │ │ └── ServerApi.java │ │ │ ├── functions/ │ │ │ │ ├── FieldValueResponseParsers.java │ │ │ │ ├── OverLimitParser.java │ │ │ │ ├── ParseImageIdFromLocationHeader.java │ │ │ │ └── internal/ │ │ │ │ ├── OnlyMetadataValueOrNull.java │ │ │ │ ├── ParseDiagnostics.java │ │ │ │ ├── ParseFlavorDetails.java │ │ │ │ ├── ParseFlavors.java │ │ │ │ ├── ParseImageDetails.java │ │ │ │ ├── ParseImages.java │ │ │ │ ├── ParseKeyPairs.java │ │ │ │ ├── ParseServerDetails.java │ │ │ │ └── ParseServers.java │ │ │ ├── handlers/ │ │ │ │ └── NovaErrorHandler.java │ │ │ ├── options/ │ │ │ │ ├── CreateBackupOfServerOptions.java │ │ │ │ ├── CreateServerOptions.java │ │ │ │ ├── CreateVolumeOptions.java │ │ │ │ ├── CreateVolumeSnapshotOptions.java │ │ │ │ ├── CreateVolumeTypeOptions.java │ │ │ │ ├── ListOptions.java │ │ │ │ └── RebuildServerOptions.java │ │ │ └── predicates/ │ │ │ ├── FindSecurityGroupWithNameAndReturnTrue.java │ │ │ ├── ImagePredicates.java │ │ │ ├── KeyPairPredicates.java │ │ │ └── SecurityGroupPredicates.java │ │ └── test/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── openstack/ │ │ │ └── nova/ │ │ │ └── v2_0/ │ │ │ ├── AccessKeyAndSecretKeyAndTenantIdAuthenticationExpectTest.java │ │ │ ├── AccessKeyAndSecretKeyAndTenantNamePropertyAuthenticationExpectTest.java │ │ │ ├── AccessKeyAndSecretKeyAuthenticationExpectTest.java │ │ │ ├── EndpointIdIsRandomExpectTest.java │ │ │ ├── NovaApiMetadataTest.java │ │ │ ├── PasswordAuthenticationExpectTest.java │ │ │ ├── PasswordAuthenticationWithTenantNameExpectTest.java │ │ │ ├── compute/ │ │ │ │ ├── NovaComputeServiceAdapterExpectTest.java │ │ │ │ ├── NovaComputeServiceExpectTest.java │ │ │ │ ├── NovaComputeServiceLiveTest.java │ │ │ │ ├── NovaWithNeutronComputeServiceLiveTest.java │ │ │ │ ├── extensions/ │ │ │ │ │ ├── NeutronSecurityGroupExtensionLiveTest.java │ │ │ │ │ ├── NovaImageExtensionExpectTest.java │ │ │ │ │ ├── NovaImageExtensionLiveTest.java │ │ │ │ │ ├── NovaSecurityGroupExtensionExpectTest.java │ │ │ │ │ └── NovaSecurityGroupExtensionLiveTest.java │ │ │ │ ├── functions/ │ │ │ │ │ ├── AllocateAndAddFloatingIpToNodeExpectTest.java │ │ │ │ │ ├── FlavorInRegionToHardwareTest.java │ │ │ │ │ ├── ImageInRegionToImageTest.java │ │ │ │ │ ├── ImageToOperatingSystemTest.java │ │ │ │ │ ├── NovaSecurityGroupInRegionToSecurityGroupTest.java │ │ │ │ │ ├── OrphanedGroupsByRegionIdTest.java │ │ │ │ │ └── ServerInRegionToNodeMetadataTest.java │ │ │ │ ├── loaders/ │ │ │ │ │ ├── FindSecurityGroupInRegionOrCreateTest.java │ │ │ │ │ └── LoadFloatingIpsForInstanceTest.java │ │ │ │ └── options/ │ │ │ │ └── NovaTemplateOptionsTest.java │ │ │ ├── config/ │ │ │ │ └── ImageAdapterTest.java │ │ │ ├── extensions/ │ │ │ │ ├── AdminActionsApiExpectTest.java │ │ │ │ ├── AdminActionsApiLiveTest.java │ │ │ │ ├── AttachInterfaceApiExpectTest.java │ │ │ │ ├── AvailabilityZoneApiExpectTest.java │ │ │ │ ├── AvailabilityZonesApiLiveTest.java │ │ │ │ ├── ConsolesApiLiveTest.java │ │ │ │ ├── ConsolesApiMockTest.java │ │ │ │ ├── DeprecatedAvailabilityZoneApiExpectTest.java │ │ │ │ ├── DeprecatedAvailabilityZonesApiLiveTest.java │ │ │ │ ├── ExtendedAvailabilityZoneExpectTest.java │ │ │ │ ├── ExtendedAvailabilityZoneLiveTest.java │ │ │ │ ├── FlavorExtraSpecsApiExpectTest.java │ │ │ │ ├── FlavorExtraSpecsApiLiveTest.java │ │ │ │ ├── FloatingIPApiExpectTest.java │ │ │ │ ├── FloatingIPApiLiveTest.java │ │ │ │ ├── FloatingIPPoolApiExpectTest.java │ │ │ │ ├── FloatingIPPoolApiLiveTest.java │ │ │ │ ├── HostAdministrationApiExpectTest.java │ │ │ │ ├── HostAdministrationApiLiveTest.java │ │ │ │ ├── HostAggregateApiExpectTest.java │ │ │ │ ├── HostAggregateApiLiveTest.java │ │ │ │ ├── HypervisorApiLiveTest.java │ │ │ │ ├── HypervisorApiMockTest.java │ │ │ │ ├── KeyPairApiExpectTest.java │ │ │ │ ├── KeyPairApiLiveTest.java │ │ │ │ ├── QuotaApiExpectTest.java │ │ │ │ ├── QuotaApiLiveTest.java │ │ │ │ ├── SecurityGroupApiExpectTest.java │ │ │ │ ├── SecurityGroupApiLiveTest.java │ │ │ │ ├── ServerWithSecurityGroupsApiExpectTest.java │ │ │ │ ├── ServerWithSecurityGroupsApiLiveTest.java │ │ │ │ ├── SimpleTenantUsageApiExpectTest.java │ │ │ │ ├── SimpleTenantUsageApiLiveTest.java │ │ │ │ ├── VirtualInterfaceApiExpectTest.java │ │ │ │ ├── VirtualInterfaceApiLiveTest.java │ │ │ │ ├── VolumeApiExpectTest.java │ │ │ │ ├── VolumeApiLiveTest.java │ │ │ │ ├── VolumeAttachmentApiExpectTest.java │ │ │ │ ├── VolumeAttachmentApiLiveTest.java │ │ │ │ ├── VolumeTypeApiExpectTest.java │ │ │ │ └── VolumeTypeApiLiveTest.java │ │ │ ├── features/ │ │ │ │ ├── ExtensionApiExpectTest.java │ │ │ │ ├── ExtensionApiLiveTest.java │ │ │ │ ├── FlavorApiExpectTest.java │ │ │ │ ├── FlavorApiLiveTest.java │ │ │ │ ├── ImageApiExpectTest.java │ │ │ │ ├── ImageApiLiveTest.java │ │ │ │ ├── ImageApiMockTest.java │ │ │ │ ├── ServerApiExpectTest.java │ │ │ │ └── ServerApiLiveTest.java │ │ │ ├── functions/ │ │ │ │ ├── CreateSecurityGroupIfNeededTest.java │ │ │ │ ├── FindSecurityGroupWithNameAndReturnTrueExpectTest.java │ │ │ │ └── InternalURLLiveTest.java │ │ │ ├── handlers/ │ │ │ │ └── NovaErrorHandlerTest.java │ │ │ ├── internal/ │ │ │ │ ├── BaseNovaApiExpectTest.java │ │ │ │ ├── BaseNovaApiLiveTest.java │ │ │ │ ├── BaseNovaComputeServiceContextExpectTest.java │ │ │ │ ├── BaseNovaComputeServiceExpectTest.java │ │ │ │ └── BaseNovaExpectTest.java │ │ │ ├── options/ │ │ │ │ ├── CreateServerOptionsTest.java │ │ │ │ └── ListOptionsTest.java │ │ │ ├── parse/ │ │ │ │ ├── ParseComputeServiceTypicalSecurityGroupTest.java │ │ │ │ ├── ParseCreateFlavorTest.java │ │ │ │ ├── ParseCreatedServerTest.java │ │ │ │ ├── ParseExtensionListNormalTest.java │ │ │ │ ├── ParseExtensionListTest.java │ │ │ │ ├── ParseExtensionTest.java │ │ │ │ ├── ParseFlavorListTest.java │ │ │ │ ├── ParseFlavorTest.java │ │ │ │ ├── ParseFloatingIPListTest.java │ │ │ │ ├── ParseFloatingIPPoolListTest.java │ │ │ │ ├── ParseFloatingIPTest.java │ │ │ │ ├── ParseImageListTest.java │ │ │ │ ├── ParseImageTest.java │ │ │ │ ├── ParseKeyPairListTest.java │ │ │ │ ├── ParseKeyPairTest.java │ │ │ │ ├── ParseMetadataItemTest.java │ │ │ │ ├── ParseMetadataListTest.java │ │ │ │ ├── ParseMetadataUpdateTest.java │ │ │ │ ├── ParseNOVNCConsoleTest.java │ │ │ │ ├── ParseRDPConsoleTest.java │ │ │ │ ├── ParseSPICEConsoleTest.java │ │ │ │ ├── ParseSecurityGroupListTest.java │ │ │ │ ├── ParseSecurityGroupTest.java │ │ │ │ ├── ParseServerDetailsEssexTest.java │ │ │ │ ├── ParseServerDetailsStatesTest.java │ │ │ │ ├── ParseServerDiagnostics.java │ │ │ │ ├── ParseServerListTest.java │ │ │ │ ├── ParseServerTest.java │ │ │ │ ├── ParseServerWithAddressExtensionsTest.java │ │ │ │ ├── ParseServerWithAllExtensionsTest.java │ │ │ │ ├── ParseServerWithInternetAddressesTest.java │ │ │ │ ├── ParseServerWithoutImageTest.java │ │ │ │ ├── ParseXVPVNCConsoleTest.java │ │ │ │ └── PublicIpsInPrivateAddressBlockExpectTest.java │ │ │ └── predicates/ │ │ │ ├── ImagePredicatesTest.java │ │ │ └── SecurityGroupPredicatesTest.java │ │ └── resources/ │ │ ├── access.json │ │ ├── attach_interface_details.json │ │ ├── attach_interfaces_list.json │ │ ├── attachment_details.json │ │ ├── attachment_list.json │ │ ├── availability_zone_list.json │ │ ├── extension_details.json │ │ ├── extension_list.json │ │ ├── extension_list_full.json │ │ ├── extension_list_full_no_namespaces.json │ │ ├── extension_list_normal.json │ │ ├── extension_list_openstack.json │ │ ├── flavor_details.json │ │ ├── flavor_list.json │ │ ├── flavor_list_detail.json │ │ ├── flavor_list_detail_openstack.json │ │ ├── flavor_new.json │ │ ├── floatingip_details.json │ │ ├── floatingip_list.json │ │ ├── floatingippool_list.json │ │ ├── host.json │ │ ├── host_aggregate_details.json │ │ ├── host_aggregate_list.json │ │ ├── host_aggregate_with_host_details.json │ │ ├── hosts_list.json │ │ ├── hypervisor_details.json │ │ ├── hypervisor_list.json │ │ ├── image_active.json │ │ ├── image_details.json │ │ ├── image_details_with_block_device_mapping.json │ │ ├── image_details_without_metadata.json │ │ ├── image_list.json │ │ ├── image_list_detail.json │ │ ├── image_list_detail_imageextension.json │ │ ├── image_list_detail_openstack.json │ │ ├── image_list_with_block_device_mapping.json │ │ ├── keypair_created_computeservice.json │ │ ├── keypair_details.json │ │ ├── keypair_list.json │ │ ├── listAvailabilityZones.json │ │ ├── logback-test.xml │ │ ├── metadata_item.json │ │ ├── metadata_list.json │ │ ├── metadata_updated.json │ │ ├── new_server.json │ │ ├── new_server_config_drive.json │ │ ├── new_server_disk_config_auto.json │ │ ├── new_server_disk_config_manual.json │ │ ├── new_server_in_zone.json │ │ ├── new_server_networks_response.json │ │ ├── new_server_no_adminpass.json │ │ ├── new_server_nova_networks.json │ │ ├── novnc_console.json │ │ ├── quotas.json │ │ ├── rdp_console.json │ │ ├── securitygroup_created.json │ │ ├── securitygroup_details.json │ │ ├── securitygroup_details_computeservice_typical.json │ │ ├── securitygroup_details_extension.json │ │ ├── securitygroup_details_extension_norules.json │ │ ├── securitygroup_details_port22.json │ │ ├── securitygroup_list.json │ │ ├── securitygroup_list_details_computeservice_typical.json │ │ ├── securitygroup_list_extension.json │ │ ├── securitygrouprule_created.json │ │ ├── securitygrouprule_created_cidr.json │ │ ├── securitygrouprule_created_group.json │ │ ├── server_details.json │ │ ├── server_details_devstack.json │ │ ├── server_details_openstack.json │ │ ├── server_details_suspended.json │ │ ├── server_details_with_address_ext.json │ │ ├── server_details_without_image.json │ │ ├── server_diagnostics.json │ │ ├── server_list.json │ │ ├── server_list_details.json │ │ ├── server_list_details_essex.json │ │ ├── server_list_details_states.json │ │ ├── server_public_ip_in_private.json │ │ ├── server_with_security_groups.json │ │ ├── server_with_security_groups_extension.json │ │ ├── simple_tenant_usage.json │ │ ├── simple_tenant_usages.json │ │ ├── snapshot_details.json │ │ ├── snapshot_list.json │ │ ├── snapshot_list_detail.json │ │ ├── spice_console.json │ │ ├── virtual_interfaces_list.json │ │ ├── volume_details.json │ │ ├── volume_list.json │ │ ├── volume_list_detail.json │ │ ├── volume_type.json │ │ ├── volume_type_extra_specs.json │ │ ├── volume_type_list.json │ │ └── xvpvnc_console.json │ ├── openstack-nova-ec2/ │ │ ├── bnd.bnd │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── org/ │ │ │ └── jclouds/ │ │ │ └── openstack/ │ │ │ └── nova/ │ │ │ └── ec2/ │ │ │ ├── NovaEC2Api.java │ │ │ ├── NovaEC2ApiMetadata.java │ │ │ ├── config/ │ │ │ │ ├── HyphenToNullIso8601Module.java │ │ │ │ ├── NovaEC2ComputeServiceContextModule.java │ │ │ │ └── NovaEC2HttpApiModule.java │ │ │ ├── features/ │ │ │ │ └── NovaEC2KeyPairApi.java │ │ │ ├── internal/ │ │ │ │ └── HyphenToNullIso8601Codec.java │ │ │ ├── loaders/ │ │ │ │ └── NovaCreateSecurityGroupIfNeeded.java │ │ │ ├── strategy/ │ │ │ │ └── NovaReviseParsedImage.java │ │ │ └── xml/ │ │ │
Showing preview only (4,559K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (52330 symbols across 5779 files)
FILE: apis/atmos/src/main/java/org/jclouds/atmos/AtmosApiMetadata.java
class AtmosApiMetadata (line 37) | @AutoService(ApiMetadata.class)
method builder (line 40) | private static Builder builder() {
method toBuilder (line 44) | @Override
method AtmosApiMetadata (line 49) | public AtmosApiMetadata() {
method AtmosApiMetadata (line 53) | protected AtmosApiMetadata(Builder builder) {
method defaultProperties (line 57) | public static Properties defaultProperties() {
class Builder (line 65) | public static class Builder extends BaseHttpApiMetadata.Builder<AtmosC...
method Builder (line 66) | protected Builder() {
method build (line 80) | @Override
method self (line 85) | @Override
FILE: apis/atmos/src/main/java/org/jclouds/atmos/AtmosClient.java
type AtmosClient (line 71) | @RequestFilters(SignRequest.class)
method newObject (line 75) | @Provides
method listDirectories (line 78) | @Named("ListDirectory")
method listDirectory (line 85) | @Named("ListDirectory")
method createDirectory (line 95) | @Named("CreateDirectory")
method createFile (line 103) | @Nullable
method updateFile (line 113) | @Named("UpdateObject")
method readFile (line 122) | @Named("ReadObject")
method headFile (line 130) | @Named("GetObjectMetadata")
method getSystemMetadata (line 138) | @Named("GetSystemMetadata")
method getUserMetadata (line 147) | @Named("GetUserMetadata")
method deletePath (line 156) | @Named("DeleteObject")
method pathExists (line 163) | @Named("GetObjectMetadata")
method isPublic (line 170) | @Named("GetObjectMetadata")
method setGroupAcl (line 178) | @Named("SetObjectMetadata")
FILE: apis/atmos/src/main/java/org/jclouds/atmos/AtmosResponseException.java
class AtmosResponseException (line 31) | public class AtmosResponseException extends HttpResponseException {
method AtmosResponseException (line 35) | public AtmosResponseException(HttpCommand command, HttpResponse response,
method AtmosResponseException (line 43) | public AtmosResponseException(HttpCommand command, HttpResponse response,
method AtmosResponseException (line 51) | public AtmosResponseException(String message, HttpCommand command, Htt...
method AtmosResponseException (line 58) | public AtmosResponseException(String message, HttpCommand command, Htt...
method setError (line 65) | public void setError(AtmosError error) {
method getError (line 69) | @Nullable
FILE: apis/atmos/src/main/java/org/jclouds/atmos/binders/BindMetadataToHeaders.java
class BindMetadataToHeaders (line 32) | @Singleton
method BindMetadataToHeaders (line 36) | @Inject
method bindToRequest (line 41) | @Override
FILE: apis/atmos/src/main/java/org/jclouds/atmos/binders/BindUserMetadataToHeaders.java
class BindUserMetadataToHeaders (line 36) | @Singleton
method bindToRequest (line 39) | @SuppressWarnings("unchecked")
method apply (line 48) | @Override
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSigner.java
class AtmosBlobRequestSigner (line 51) | @Singleton
method AtmosBlobRequestSigner (line 69) | @Inject
method signGetBlob (line 89) | @Override
method signGetBlob (line 94) | @Override
method signPutBlob (line 101) | @Override
method signPutBlob (line 109) | @Override
method getPath (line 114) | private String getPath(String container, String name) {
method signGetBlob (line 118) | @Override
method sign (line 126) | private HttpRequest sign(String method, String path, long timeInSecond...
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java
class AtmosBlobStore (line 66) | @Singleton
method AtmosBlobStore (line 79) | @Inject
method blobMetadata (line 104) | @Override
method deleteAndVerifyContainerGone (line 113) | protected boolean deleteAndVerifyContainerGone(final String container) {
method createContainerInLocation (line 126) | @Override
method getContainerAccess (line 131) | @Override
method setContainerAccess (line 140) | @Override
method createDirectory (line 157) | @Override
method deleteDirectory (line 165) | @Override
method containerExists (line 173) | @Override
method directoryExists (line 181) | @Override
method blobExists (line 194) | @Override
method getBlob (line 202) | @Override
method list (line 211) | @Override
method list (line 219) | @Override
method putBlob (line 243) | @Override
method putBlob (line 253) | @Override
method removeBlob (line 276) | @Override
method getBlobAccess (line 281) | @Override
method setBlobAccess (line 290) | @Override
method createContainerInLocation (line 301) | @Override
method initiateMultipartUpload (line 309) | @Override
method abortMultipartUpload (line 314) | @Override
method completeMultipartUpload (line 319) | @Override
method uploadMultipartPart (line 324) | @Override
method listMultipartUpload (line 329) | @Override
method listMultipartUploads (line 334) | @Override
method getMinimumMultipartPartSize (line 339) | @Override
method getMaximumMultipartPartSize (line 344) | @Override
method getMaximumNumberOfParts (line 349) | @Override
method streamBlob (line 354) | @Override
method copyBlob (line 359) | @Override
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/config/AtmosBlobStoreContextModule.java
class AtmosBlobStoreContextModule (line 37) | public class AtmosBlobStoreContextModule extends AbstractModule {
method configure (line 39) | @Override
method isPublic (line 46) | @Provides
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobMetadataToObject.java
class BlobMetadataToObject (line 30) | @Singleton
method BlobMetadataToObject (line 36) | @Inject
method apply (line 44) | public AtmosObject apply(BlobMetadata from) {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobStoreListOptionsToListOptions.java
class BlobStoreListOptionsToListOptions (line 28) | @Singleton
method apply (line 31) | @Override
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobToContentMetadata.java
class BlobToContentMetadata (line 29) | @Singleton
method apply (line 31) | public MutableContentMetadata apply(BlobMetadata base) {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobToObject.java
class BlobToObject (line 29) | @Singleton
method BlobToObject (line 33) | @Inject
method apply (line 38) | public AtmosObject apply(Blob from) {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobToSystemMetadata.java
class BlobToSystemMetadata (line 27) | @Singleton
method apply (line 29) | public SystemMetadata apply(BlobMetadata base) {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/DirectoryEntryListToResourceMetadataList.java
class DirectoryEntryListToResourceMetadataList (line 40) | @Singleton
method DirectoryEntryListToResourceMetadataList (line 45) | @Inject
method apply (line 50) | public PageSet<? extends StorageMetadata> apply(BoundedSet<? extends D...
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/ObjectToBlob.java
class ObjectToBlob (line 31) | @Singleton
method ObjectToBlob (line 36) | @Inject
method apply (line 42) | public Blob apply(AtmosObject from) {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/ObjectToBlobMetadata.java
class ObjectToBlobMetadata (line 42) | @Singleton
method ObjectToBlobMetadata (line 50) | @Inject
method apply (line 57) | public MutableBlobMetadata apply(AtmosObject from) {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosHttpApiModule.java
class AtmosHttpApiModule (line 47) | @ConfiguresHttpApi
method configure (line 50) | @Override
method guiceProvideTimeStamp (line 57) | @Provides
method provideTimeStamp (line 63) | protected String provideTimeStamp(@TimeStamp Supplier<String> cache) {
method provideTimeStampCache (line 70) | @Provides
method provideShareableUrlTimeout (line 82) | @Provides
method bindErrorHandlers (line 88) | @Override
method bindRetryHandlers (line 95) | @Override
FILE: apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosObjectModule.java
class AtmosObjectModule (line 29) | public class AtmosObjectModule extends AbstractModule {
method configure (line 35) | @Override
method provideAtmosObject (line 41) | @Provides
FILE: apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosParserModule.java
class AtmosParserModule (line 24) | public class AtmosParserModule extends AbstractModule {
method configure (line 26) | @Override
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/AtmosError.java
class AtmosError (line 24) | public class AtmosError {
method toString (line 29) | @Override
method AtmosError (line 35) | public AtmosError(int code, String message) {
method getCode (line 40) | public int getCode() {
method getMessage (line 44) | public String getMessage() {
method setStringSigned (line 48) | public void setStringSigned(String stringSigned) {
method getStringSigned (line 55) | public String getStringSigned() {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/AtmosObject.java
type AtmosObject (line 26) | public interface AtmosObject extends PayloadEnclosing, Comparable<AtmosO...
type Factory (line 27) | @ImplementedBy(AtmosObjectFactory.class)
method create (line 29) | AtmosObject create(@Nullable MutableContentMetadata contentMetadata);
method create (line 31) | AtmosObject create(SystemMetadata systemMetadata, UserMetadata userM...
method create (line 33) | AtmosObject create(MutableContentMetadata contentMetadata, SystemMet...
method getContentMetadata (line 38) | MutableContentMetadata getContentMetadata();
method getSystemMetadata (line 43) | SystemMetadata getSystemMetadata();
method getUserMetadata (line 45) | UserMetadata getUserMetadata();
method getAllHeaders (line 47) | Multimap<String, String> getAllHeaders();
method setAllHeaders (line 49) | void setAllHeaders(Multimap<String, String> allHeaders);
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/BoundedSet.java
type BoundedSet (line 26) | @ImplementedBy(BoundedLinkedHashSet.class)
method getToken (line 29) | @Nullable
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/DirectoryEntry.java
class DirectoryEntry (line 28) | public class DirectoryEntry implements Comparable<DirectoryEntry> {
method DirectoryEntry (line 35) | @Deprecated
method DirectoryEntry (line 40) | public DirectoryEntry(String objectid, FileType type, String objname, ...
method getObjectID (line 48) | public String getObjectID() {
method getObjectName (line 52) | public String getObjectName() {
method getType (line 56) | public FileType getType() {
method getSize (line 60) | public long getSize() {
method getModifiedTime (line 64) | public Date getModifiedTime() {
method compareTo (line 68) | public int compareTo(DirectoryEntry o) {
method hashCode (line 74) | @Override
method equals (line 79) | @Override
method toString (line 94) | @Override
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/FileType.java
type FileType (line 19) | public enum FileType {
method value (line 23) | public String value() {
method fromValue (line 27) | public static FileType fromValue(String v) {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/MutableContentMetadata.java
type MutableContentMetadata (line 28) | @ImplementedBy(DelegatingMutableContentMetadata.class)
method getName (line 31) | String getName();
method setName (line 33) | void setName(String name);
method getUri (line 35) | URI getUri();
method setUri (line 37) | void setUri(URI uri);
method getPath (line 39) | String getPath();
method setPath (line 41) | void setPath(String path);
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/SystemMetadata.java
class SystemMetadata (line 26) | public class SystemMetadata extends DirectoryEntry {
method SystemMetadata (line 39) | public SystemMetadata(@Nullable byte [] contentmd5, Date atime, Date c...
method getGroupID (line 54) | public String getGroupID() {
method getHardLinkCount (line 58) | public int getHardLinkCount() {
method getInceptionTime (line 62) | public Date getInceptionTime() {
method getLastAccessTime (line 66) | public Date getLastAccessTime() {
method getLastMetadataModification (line 70) | public Date getLastMetadataModification() {
method getLastUserDataModification (line 74) | public Date getLastUserDataModification() {
method getPolicyName (line 78) | public String getPolicyName() {
method getSize (line 82) | public long getSize() {
method getUserID (line 86) | public String getUserID() {
method getContentMD5 (line 90) | public byte[] getContentMD5() {
method hashCode (line 94) | @Override
method equals (line 110) | @Override
method toString (line 161) | @Override
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/UploadInfo.java
class UploadInfo (line 21) | public class UploadInfo {
method UploadInfo (line 25) | public UploadInfo(String token, URI host) {
method getToken (line 30) | public String getToken() {
method getHost (line 34) | public URI getHost() {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/UserMetadata.java
class UserMetadata (line 30) | public class UserMetadata {
method UserMetadata (line 36) | public UserMetadata(Map<String, String> metadata, Map<String, String> ...
method UserMetadata (line 44) | public UserMetadata() {
method getMetadata (line 51) | public Map<String, String> getMetadata() {
method getListableMetadata (line 55) | public Map<String, String> getListableMetadata() {
method getTags (line 59) | public Set<String> getTags() {
method getListableTags (line 63) | public Set<String> getListableTags() {
method toString (line 67) | @Override
method hashCode (line 73) | @Override
method equals (line 84) | @Override
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/internal/AtmosObjectImpl.java
class AtmosObjectImpl (line 38) | public class AtmosObjectImpl extends PayloadEnclosingImpl implements Atm...
class AtmosObjectFactory (line 39) | @Singleton
method create (line 45) | public AtmosObject create(MutableContentMetadata contentMetadata) {
method create (line 49) | public AtmosObject create(SystemMetadata systemMetadata, UserMetadat...
method create (line 53) | public AtmosObject create(MutableContentMetadata contentMetadata, Sy...
method getSystemMetadata (line 62) | public SystemMetadata getSystemMetadata() {
method getUserMetadata (line 66) | public UserMetadata getUserMetadata() {
method AtmosObjectImpl (line 73) | public AtmosObjectImpl(MutableContentMetadata contentMetadata, SystemM...
method AtmosObjectImpl (line 80) | @Inject
method getContentMetadata (line 88) | @Override
method getAllHeaders (line 96) | @Override
method setAllHeaders (line 104) | @Override
method compareTo (line 112) | @Override
method hashCode (line 119) | @Override
method equals (line 129) | @Override
method toString (line 156) | @Override
method setPayload (line 161) | @Override
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/internal/BoundedLinkedHashSet.java
class BoundedLinkedHashSet (line 28) | public class BoundedLinkedHashSet<T> extends LinkedHashSet<T> implements...
method BoundedLinkedHashSet (line 32) | public BoundedLinkedHashSet(Iterable<T> contents, @Nullable String tok...
method getToken (line 37) | @Nullable
method hashCode (line 42) | @Override
method equals (line 50) | @Override
method toString (line 67) | @Override
FILE: apis/atmos/src/main/java/org/jclouds/atmos/domain/internal/DelegatingMutableContentMetadata.java
class DelegatingMutableContentMetadata (line 28) | public class DelegatingMutableContentMetadata implements MutableContentM...
method DelegatingMutableContentMetadata (line 34) | public DelegatingMutableContentMetadata() {
method DelegatingMutableContentMetadata (line 38) | public DelegatingMutableContentMetadata(URI uri, String name, String p...
method getContentLength (line 46) | @Override
method getContentMD5 (line 52) | @Deprecated
method getContentMD5AsHashCode (line 58) | @Override
method getContentType (line 63) | @Override
method getName (line 68) | @Override
method setContentLength (line 73) | @Override
method setContentMD5 (line 79) | @Deprecated
method setContentMD5 (line 85) | @Override
method setContentType (line 90) | @Override
method setName (line 95) | @Override
method equals (line 100) | @Override
method hashCode (line 117) | @Override
method toString (line 125) | @Override
method getDelegate (line 130) | public org.jclouds.io.MutableContentMetadata getDelegate() {
method setCacheControl (line 134) | @Override
method setContentDisposition (line 139) | @Override
method setContentEncoding (line 144) | @Override
method setContentLanguage (line 149) | @Override
method getCacheControl (line 154) | @Override
method getContentDisposition (line 159) | @Override
method getContentEncoding (line 164) | @Override
method getContentLanguage (line 169) | @Override
method setExpires (line 174) | @Override
method getExpires (line 179) | @Override
method toBuilder (line 184) | @Override
method getUri (line 189) | @Override
method setUri (line 194) | @Override
method getPath (line 199) | @Override
method setPath (line 204) | @Override
FILE: apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExists.java
class EndpointIfAlreadyExists (line 32) | public class EndpointIfAlreadyExists implements Fallback<URI>, Invocatio...
method createOrPropagate (line 36) | @Override
method setContext (line 44) | @Override
method setEndpoint (line 49) | @VisibleForTesting
FILE: apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/TrueOn404FalseOnPathNotEmpty.java
class TrueOn404FalseOnPathNotEmpty (line 27) | public final class TrueOn404FalseOnPathNotEmpty implements Fallback<Bool...
method createOrPropagate (line 28) | @Override
FILE: apis/atmos/src/main/java/org/jclouds/atmos/filters/ShareUrl.java
class ShareUrl (line 53) | @Singleton
method ShareUrl (line 68) | @Inject
method apply (line 77) | @Override
method createStringToSign (line 87) | public String createStringToSign(String requestedResource, String expi...
method signString (line 96) | public String signString(String toSign) {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/filters/SignRequest.java
class SignRequest (line 61) | @Singleton
method SignRequest (line 77) | @Inject
method filter (line 87) | @Override
method createStringToSign (line 102) | public String createStringToSign(HttpRequest request) {
method calculateSignature (line 116) | public String calculateSignature(String toSign) {
method signString (line 123) | public String signString(String toSign) {
method appendMethod (line 132) | private void appendMethod(HttpRequest request, StringBuilder toSign) {
method appendCanonicalizedHeaders (line 136) | private void appendCanonicalizedHeaders(HttpRequest request, StringBui...
method appendPayloadMetadata (line 162) | private void appendPayloadMetadata(HttpRequest request, StringBuilder ...
method appendHttpHeaders (line 168) | @VisibleForTesting
method appendCanonicalizedResource (line 177) | @VisibleForTesting
FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/AtmosObjectName.java
class AtmosObjectName (line 28) | @Singleton
method apply (line 30) | @Override
FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseDirectoryListFromContentAndHeaders.java
class ParseDirectoryListFromContentAndHeaders (line 39) | @Singleton
method ParseDirectoryListFromContentAndHeaders (line 45) | @Inject
method apply (line 54) | public BoundedSet<DirectoryEntry> apply(HttpResponse from) {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseObjectFromHeadersAndHttpContent.java
class ParseObjectFromHeadersAndHttpContent (line 39) | public class ParseObjectFromHeadersAndHttpContent implements Function<Ht...
method ParseObjectFromHeadersAndHttpContent (line 48) | @Inject
method apply (line 64) | public AtmosObject apply(HttpResponse from) {
method setContext (line 77) | @Override
method setPath (line 83) | private ParseObjectFromHeadersAndHttpContent setPath(String path) {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseSystemMetadataFromHeaders.java
class ParseSystemMetadataFromHeaders (line 36) | @Singleton
method ParseSystemMetadataFromHeaders (line 40) | @Inject
method apply (line 45) | public SystemMetadata apply(HttpResponse from) {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseUserMetadataFromHeaders.java
class ParseUserMetadataFromHeaders (line 37) | @Singleton
method apply (line 44) | public UserMetadata apply(HttpResponse from) {
method getMetaMap (line 63) | private static Map<String, String> getMetaMap(String meta) {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/functions/ReturnTrueIfGroupACLIsOtherRead.java
class ReturnTrueIfGroupACLIsOtherRead (line 27) | @Singleton
method apply (line 30) | public Boolean apply(HttpResponse from) {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/handlers/AtmosClientErrorRetryHandler.java
class AtmosClientErrorRetryHandler (line 41) | public class AtmosClientErrorRetryHandler implements HttpRetryHandler {
method AtmosClientErrorRetryHandler (line 45) | @Inject
method shouldRetryRequest (line 58) | public boolean shouldRetryRequest(HttpCommand command, HttpResponse re...
FILE: apis/atmos/src/main/java/org/jclouds/atmos/handlers/AtmosServerErrorRetryHandler.java
class AtmosServerErrorRetryHandler (line 41) | public class AtmosServerErrorRetryHandler implements HttpRetryHandler {
method AtmosServerErrorRetryHandler (line 45) | @Inject
method shouldRetryRequest (line 58) | public boolean shouldRetryRequest(HttpCommand command, HttpResponse re...
FILE: apis/atmos/src/main/java/org/jclouds/atmos/handlers/ParseAtmosErrorFromXmlContent.java
class ParseAtmosErrorFromXmlContent (line 50) | @Singleton
method ParseAtmosErrorFromXmlContent (line 57) | @Inject
method handleError (line 65) | public void handleError(HttpCommand command, HttpResponse response) {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/options/ListOptions.java
class ListOptions (line 31) | public class ListOptions extends BaseHttpRequestOptions {
method token (line 40) | public ListOptions token(String token) {
method getToken (line 45) | public String getToken() {
method limit (line 53) | public ListOptions limit(int maxresults) {
method includeMeta (line 64) | public ListOptions includeMeta() {
method metaIncluded (line 69) | public boolean metaIncluded() {
method getLimit (line 74) | public Integer getLimit() {
class Builder (line 79) | public static class Builder {
method token (line 84) | public static ListOptions token(String token) {
method includeMeta (line 92) | public static ListOptions includeMeta() {
method limit (line 100) | public static ListOptions limit(int maxKeys) {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/options/PutOptions.java
class PutOptions (line 37) | public class PutOptions extends BaseHttpRequestOptions {
method publicRead (line 44) | public PutOptions publicRead() {
method publicNone (line 50) | public PutOptions publicNone() {
method overwrite (line 61) | public PutOptions overwrite() {
class Builder (line 66) | public static class Builder {
method publicRead (line 71) | public static PutOptions publicRead() {
method publicNone (line 76) | public static PutOptions publicNone() {
method overwrite (line 81) | public static PutOptions overwrite() {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/reference/AtmosErrorCode.java
type AtmosErrorCode (line 21) | public enum AtmosErrorCode {
method AtmosErrorCode (line 37) | private AtmosErrorCode(int code) {
method getCode (line 41) | public int getCode() {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/reference/AtmosHeaders.java
class AtmosHeaders (line 24) | public final class AtmosHeaders {
method AtmosHeaders (line 38) | private AtmosHeaders() {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/util/AtmosUtils.java
class AtmosUtils (line 51) | public class AtmosUtils {
method parseAtmosErrorFromContent (line 62) | public AtmosError parseAtmosErrorFromContent(HttpCommand command, Http...
method putBlob (line 72) | public static String putBlob(final AtmosClient sync, Crypto crypto, Bl...
method deletePathAndEnsureGone (line 92) | public static void deletePathAndEnsureGone(final AtmosClient sync, Str...
method parseAtmosErrorFromContent (line 105) | public AtmosError parseAtmosErrorFromContent(HttpCommand command, Http...
method adjustContainerIfDirOptionPresent (line 110) | public static String adjustContainerIfDirOptionPresent(String container,
FILE: apis/atmos/src/main/java/org/jclouds/atmos/xml/ErrorHandler.java
class ErrorHandler (line 25) | public class ErrorHandler extends ParseSax.HandlerWithResult<AtmosError> {
method getResult (line 31) | public AtmosError getResult() {
method endElement (line 35) | public void endElement(String uri, String name, String qName) {
method characters (line 45) | public void characters(char[] ch, int start, int length) {
FILE: apis/atmos/src/main/java/org/jclouds/atmos/xml/ListDirectoryResponseHandler.java
class ListDirectoryResponseHandler (line 37) | public class ListDirectoryResponseHandler extends ParseSax.HandlerWithRe...
method ListDirectoryResponseHandler (line 53) | @Inject
method getResult (line 58) | public Set<DirectoryEntry> getResult() {
method endElement (line 62) | public void endElement(String uri, String name, String qName) {
method characters (line 85) | public void characters(char[] ch, int start, int length) {
FILE: apis/atmos/src/test/java/org/jclouds/atmos/AtmosApiMetadataTest.java
class AtmosApiMetadataTest (line 22) | @Test(groups = "unit", testName = "AtmosApiMetadataTest")
method AtmosApiMetadataTest (line 25) | public AtmosApiMetadataTest() {
FILE: apis/atmos/src/test/java/org/jclouds/atmos/AtmosClientLiveTest.java
class AtmosClientLiveTest (line 58) | @Test(groups = "live", singleThreaded = true)
method AtmosClientLiveTest (line 60) | public AtmosClientLiveTest() {
method getApi (line 64) | public AtmosClient getApi() {
class HeadMatches (line 68) | private static final class HeadMatches implements Runnable {
method HeadMatches (line 73) | private HeadMatches(AtmosClient connection, String name, String meta...
method run (line 79) | public void run() {
class ObjectMatches (line 88) | private static final class ObjectMatches implements Runnable {
method ObjectMatches (line 94) | private ObjectMatches(AtmosClient connection, String name, String me...
method run (line 101) | public void run() {
method testListDirectorys (line 116) | @Test
method testCreateDirectory (line 125) | @Test(timeOut = 5 * 60 * 1000)
method testListOptions (line 148) | @Test(timeOut = 5 * 60 * 1000, dependsOnMethods = { "testCreateDirecto...
method testFileOperations (line 165) | @Test(timeOut = 5 * 60 * 1000, dependsOnMethods = { "testListOptions" })
method testPutZeroLengthBlob (line 191) | @Test(timeOut = 5 * 60 * 1000, dependsOnMethods = { "testFileOperation...
method createOrUpdateWithErrorLoop (line 201) | private void createOrUpdateWithErrorLoop(boolean stream, String data, ...
method makeData (line 206) | Object makeData(String in, boolean stream) {
method createOrReplaceObject (line 210) | private void createOrReplaceObject(String name, Object data, HashCode ...
method assertEventually (line 226) | protected static void assertEventually(Runnable assertion) throws Inte...
method assertEventuallyObjectMatches (line 246) | protected void assertEventuallyObjectMatches(final String name, final ...
method assertEventuallyHeadMatches (line 251) | protected void assertEventuallyHeadMatches(final String name, final St...
method verifyHeadObject (line 256) | private static void verifyHeadObject(AtmosClient connection, String pa...
method verifyObject (line 263) | private static void verifyObject(AtmosClient connection, String path, ...
method verifyMetadata (line 270) | private static void verifyMetadata(String metadataValue, AtmosObject g...
method replaceObject (line 289) | private void replaceObject(AtmosObject object) throws Exception {
method alwaysDeleteFirstReplaceStrategy (line 295) | private void alwaysDeleteFirstReplaceStrategy(AtmosObject object) thro...
method deleteConfirmed (line 311) | private void deleteConfirmed(final String path) throws InterruptedExce...
method deleteImmediateAndVerifyWithHead (line 317) | protected void deleteImmediateAndVerifyWithHead(final String path) thr...
method deleteConsistencyAware (line 330) | protected void deleteConsistencyAware(String path) throws InterruptedE...
method retryAndCheckSystemMetadataAndPutIfPresentReplaceStrategy (line 347) | protected void retryAndCheckSystemMetadataAndPutIfPresentReplaceStrate...
method checkSystemMetadataAndPutIfPresentReplaceStrategy (line 366) | private void checkSystemMetadataAndPutIfPresentReplaceStrategy(AtmosOb...
FILE: apis/atmos/src/test/java/org/jclouds/atmos/AtmosClientTest.java
class AtmosClientTest (line 60) | @Test(groups = "unit", testName = "AtmosClientTest")
method testListDirectories (line 65) | public void testListDirectories() throws SecurityException, NoSuchMeth...
method testListDirectory (line 80) | public void testListDirectory() throws SecurityException, NoSuchMethod...
method testListDirectoriesOptions (line 95) | public void testListDirectoriesOptions() throws SecurityException, NoS...
method testListDirectoryOptions (line 110) | public void testListDirectoryOptions() throws SecurityException, NoSuc...
method testCreateDirectory (line 125) | public void testCreateDirectory() throws SecurityException, NoSuchMeth...
method testCreateDirectoryOptions (line 140) | public void testCreateDirectoryOptions() throws SecurityException, NoS...
method testCreateFile (line 156) | public void testCreateFile() throws SecurityException, NoSuchMethodExc...
method testCreateFileOptions (line 173) | public void testCreateFileOptions() throws SecurityException, NoSuchMe...
method testUpdateFile (line 191) | public void testUpdateFile() throws SecurityException, NoSuchMethodExc...
method testUpdateFileOptions (line 208) | public void testUpdateFileOptions() throws SecurityException, NoSuchMe...
method testReadFile (line 226) | public void testReadFile() throws SecurityException, NoSuchMethodExcep...
method testGetSystemMetadata (line 241) | public void testGetSystemMetadata() throws SecurityException, NoSuchMe...
method testDeletePath (line 256) | public void testDeletePath() throws SecurityException, NoSuchMethodExc...
method testIsPublic (line 271) | public void testIsPublic() throws SecurityException, NoSuchMethodExcep...
method testNewObject (line 286) | public void testNewObject() throws SecurityException, NoSuchMethodExce...
method checkFilters (line 291) | @Override
method setupFactory (line 297) | @BeforeClass
method createModule (line 304) | @Override
class TestAtmosHttpApiModule (line 309) | @ConfiguresHttpApi
method configure (line 311) | @Override
method provideTimeStamp (line 316) | @Override
method createApiMetadata (line 324) | @Override
FILE: apis/atmos/src/test/java/org/jclouds/atmos/binders/BindMetadataToHeadersTest.java
class BindMetadataToHeadersTest (line 35) | @Test(groups = "unit")
method testGood (line 40) | public void testGood() {
method testMustBeAtmosObject (line 51) | @Test(expectedExceptions = IllegalArgumentException.class)
method testNullIsBad (line 57) | @Test(expectedExceptions = NullPointerException.class)
method testNullPayloadIsBad (line 63) | @Test(expectedExceptions = NullPointerException.class)
method testNullContentLengthIllegal (line 70) | @Test(expectedExceptions = IllegalArgumentException.class)
FILE: apis/atmos/src/test/java/org/jclouds/atmos/binders/BindUserMetadataToHeadersTest.java
class BindUserMetadataToHeadersTest (line 33) | @Test(groups = "unit")
method testMeta (line 38) | public void testMeta() {
method testListableMeta (line 47) | public void testListableMeta() {
method testTags (line 56) | public void testTags() {
method testListableTags (line 65) | public void testListableTags() {
method testMustBeUserMetadata (line 74) | @Test(expectedExceptions = IllegalArgumentException.class)
method testNullIsBad (line 80) | @Test(expectedExceptions = { NullPointerException.class, IllegalStateE...
FILE: apis/atmos/src/test/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSignerTest.java
class AtmosBlobRequestSignerTest (line 47) | @Test(groups = "unit", testName = "AtmosBlobRequestSignerTest")
method AtmosBlobRequestSignerTest (line 50) | public AtmosBlobRequestSignerTest() {
method testSignGetBlob (line 58) | public void testSignGetBlob() throws ArrayIndexOutOfBoundsException, S...
method testSignPutBlob (line 69) | public void testSignPutBlob() throws ArrayIndexOutOfBoundsException, S...
method setupFactory (line 98) | @BeforeClass
method checkFilters (line 105) | @Override
method createModule (line 111) | @Override
class TestAtmosHttpApiModule (line 116) | @ConfiguresHttpApi
method configure (line 118) | @Override
method provideTimeStamp (line 123) | @Override
method createApiMetadata (line 129) | @Override
FILE: apis/atmos/src/test/java/org/jclouds/atmos/blobstore/functions/ListOptionsToBlobStoreListOptions.java
class ListOptionsToBlobStoreListOptions (line 25) | @Singleton
method apply (line 28) | public ListContainerOptions apply(org.jclouds.atmos.options.ListOption...
FILE: apis/atmos/src/test/java/org/jclouds/atmos/blobstore/functions/ResourceMetadataListToDirectoryEntryList.java
class ResourceMetadataListToDirectoryEntryList (line 31) | @Singleton
method apply (line 36) | public BoundedSet<DirectoryEntry> apply(
FILE: apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosBlobSignerLiveTest.java
class AtmosBlobSignerLiveTest (line 25) | @Test(groups = { "live" })
method AtmosBlobSignerLiveTest (line 27) | public AtmosBlobSignerLiveTest() {
method testSignPutUrlWithTime (line 31) | @Test
method testSignPutUrlWithTimeExpired (line 41) | @Test
FILE: apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosContainerIntegrationLiveTest.java
class AtmosContainerIntegrationLiveTest (line 23) | @Test(groups = "live")
method AtmosContainerIntegrationLiveTest (line 25) | public AtmosContainerIntegrationLiveTest() {
method testDelimiter (line 29) | @Override
method testListMarkerAfterLastKey (line 34) | @Override
method testListMarkerPrefix (line 39) | @Override
method testListContainerWithZeroMaxResults (line 44) | @Override
method testContainerListWithPrefix (line 49) | @Override
method testDelimiterList (line 54) | @Override
FILE: apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosContainerLiveTest.java
class AtmosContainerLiveTest (line 22) | @Test(groups = { "live" })
method AtmosContainerLiveTest (line 24) | public AtmosContainerLiveTest() {
FILE: apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosIntegrationLiveTest.java
class AtmosIntegrationLiveTest (line 38) | @Test(groups = { "integration", "live" })
method AtmosIntegrationLiveTest (line 40) | public AtmosIntegrationLiveTest() {
method createData (line 43) | @DataProvider(name = "delete")
method testGetTwoRanges (line 50) | @Override
method checkCacheControl (line 56) | @Override
method checkContentDisposition (line 63) | @Override
method checkContentEncoding (line 70) | @Override
method checkContentLanguage (line 77) | @Override
method testPutObjectStream (line 83) | @Override
method testCreateBlobWithExpiry (line 89) | @Override
method testMultipartUploadNoPartsAbort (line 94) | @Override
method testMultipartUploadSinglePart (line 99) | @Override
method testMultipartUploadMultipleParts (line 104) | @Override
method testListMultipartUploads (line 109) | @Override
method testPutMultipartByteSource (line 118) | @Override
method testPutMultipartInputStream (line 123) | @Override
method testPutBlobAccessMultipart (line 128) | @Override
method testCopyIfMatch (line 134) | @Override
method testCopyIfMatchNegative (line 140) | @Override
method testCopyIfNoneMatch (line 146) | @Override
method testCopyIfNoneMatchNegative (line 152) | @Override
method testPutBlobTierStandardMultipart (line 158) | @Test(groups = { "integration", "live" })
method testPutBlobTierInfrequentMultipart (line 168) | @Test(groups = { "integration", "live" })
method testPutBlobTierArchiveMultipart (line 178) | @Test(groups = { "integration", "live" })
method checkTier (line 188) | @Override
method testETag (line 195) | @Test(groups = { "integration", "live" })
FILE: apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosLiveTest.java
class AtmosLiveTest (line 22) | @Test(groups = { "live" })
method AtmosLiveTest (line 24) | public AtmosLiveTest() {
FILE: apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosServiceIntegrationLiveTest.java
class AtmosServiceIntegrationLiveTest (line 22) | @Test(groups = "live")
method AtmosServiceIntegrationLiveTest (line 24) | public AtmosServiceIntegrationLiveTest() {
FILE: apis/atmos/src/test/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExistsTest.java
class EndpointIfAlreadyExistsTest (line 27) | @Test(groups = "unit")
method testFoundIsNullWhenEndpointNotSet (line 30) | @Test
method testFoundIsEndpointWhenSet (line 35) | @Test
method testNotFoundPropagates (line 42) | @Test(expectedExceptions = RuntimeException.class)
method testNullIsBad (line 47) | @Test(expectedExceptions = NullPointerException.class)
FILE: apis/atmos/src/test/java/org/jclouds/atmos/filters/SignRequestTest.java
class SignRequestTest (line 48) | @Test(groups = "unit")
method testCreateStringToSign (line 58) | @Test
method testSignString (line 66) | @Test
method testFilter (line 74) | @Test
method testFilterReplacesOldValues (line 81) | @Test
method createFilter (line 90) | @BeforeClass
class TestAtmosHttpApiModule (line 103) | @ConfiguresHttpApi
method configure (line 106) | @Override
method provideTimeStamp (line 111) | @Override
method newRequest (line 117) | public HttpRequest newRequest(Multimap<String, String> headers) {
method preconstructedHeaders (line 128) | protected Builder<String, String> preconstructedHeaders() {
method inputHeaders (line 135) | protected Builder<String, String> inputHeaders() {
FILE: apis/atmos/src/test/java/org/jclouds/atmos/functions/AtmosObjectNameTest.java
class AtmosObjectNameTest (line 31) | @Test(groups = "unit")
method testCorrectContentMetadataName (line 36) | @Test
method testCorrectSystemMetadataObjectName (line 45) | @Test
method testMustBeAtmosObject (line 53) | @Test(expectedExceptions = IllegalArgumentException.class)
method testNullIsBad (line 58) | @Test(expectedExceptions = { NullPointerException.class, IllegalStateE...
FILE: apis/atmos/src/test/java/org/jclouds/atmos/functions/ParseDirectoryListFromContentAndHeadersTest.java
class ParseDirectoryListFromContentAndHeadersTest (line 41) | @Test(groups = "unit", testName = "ParseDirectoryListFromContentAndHeade...
method createFn (line 44) | Function<HttpResponse, BoundedSet<DirectoryEntry>> createFn() {
method testWithToken (line 48) | public void testWithToken() {
method testWithoutToken (line 60) | public void testWithoutToken() {
method values (line 72) | protected Set<DirectoryEntry> values() {
FILE: apis/atmos/src/test/java/org/jclouds/atmos/functions/ParseObjectFromHeadersAndHttpContentTest.java
class ParseObjectFromHeadersAndHttpContentTest (line 32) | @Test(groups = "unit", testName = "ParseObjectFromHeadersAndHttpContentT...
method test (line 57) | public void test() {
FILE: apis/atmos/src/test/java/org/jclouds/atmos/functions/ParseSystemMetadataFromHeadersTest.java
class ParseSystemMetadataFromHeadersTest (line 33) | @Test(groups = "unit")
method test (line 46) | public void test() {
FILE: apis/atmos/src/test/java/org/jclouds/atmos/functions/ParseUserMetadataFromHeadersTest.java
class ParseUserMetadataFromHeadersTest (line 31) | @Test(groups = "unit")
method test (line 37) | public void test() {
FILE: apis/atmos/src/test/java/org/jclouds/atmos/handlers/AtmosServerErrorRetryHandlerTest.java
class AtmosServerErrorRetryHandlerTest (line 36) | @Test(groups = "unit")
method testGet500WithoutError (line 45) | @Test
method testGet500WithError1040 (line 63) | @Test
FILE: apis/atmos/src/test/java/org/jclouds/atmos/options/ListOptionsTest.java
class ListOptionsTest (line 28) | @Test(groups = "unit")
method testToken (line 31) | public void testToken() {
method testTokenStatic (line 36) | public void testTokenStatic() {
method testLimit (line 41) | public void testLimit() {
method testLimitStatic (line 47) | public void testLimitStatic() {
method testNoMeta (line 53) | public void testNoMeta() {
method testMeta (line 58) | public void testMeta() {
method testMetaStatic (line 64) | public void testMetaStatic() {
FILE: apis/atmos/src/test/java/org/jclouds/atmos/xml/ErrorHandlerTest.java
class ErrorHandlerTest (line 33) | @Test(groups = "unit", testName = "ErrorHandlerTest")
method createParser (line 36) | ParseSax<AtmosError> createParser() {
method testApplyInputStream (line 42) | public void testApplyInputStream() {
FILE: apis/atmos/src/test/java/org/jclouds/atmos/xml/ListDirectoryResponseHandlerTest.java
class ListDirectoryResponseHandlerTest (line 36) | @Test(groups = "unit", testName = "ListDirectoryResponseHandlerTest")
method createParser (line 39) | ParseSax<Set<DirectoryEntry>> createParser() {
method testApplyInputStreamBase (line 45) | public void testApplyInputStreamBase() {
FILE: apis/byon/src/main/java/org/jclouds/byon/BYONApiMetadata.java
class BYONApiMetadata (line 40) | @AutoService(ApiMetadata.class)
method toBuilder (line 43) | @Override
method BYONApiMetadata (line 48) | public BYONApiMetadata() {
method BYONApiMetadata (line 52) | protected BYONApiMetadata(Builder builder) {
class Builder (line 56) | public static class Builder extends BaseApiMetadata.Builder<Builder> {
method Builder (line 58) | protected Builder() {
method build (line 72) | @Override
method self (line 77) | @Override
FILE: apis/byon/src/main/java/org/jclouds/byon/Node.java
class Node (line 30) | public class Node {
method builder (line 31) | public static Builder builder() {
class Builder (line 35) | public static class Builder {
method id (line 55) | public Builder id(String id) {
method name (line 60) | public Builder name(String name) {
method description (line 65) | public Builder description(String description) {
method hostname (line 70) | public Builder hostname(String hostname) {
method loginPort (line 75) | public Builder loginPort(int loginPort) {
method locationId (line 80) | public Builder locationId(String locationId) {
method osArch (line 85) | public Builder osArch(String osArch) {
method osFamily (line 90) | public Builder osFamily(String osFamily) {
method osDescription (line 95) | public Builder osDescription(String osDescription) {
method osVersion (line 100) | public Builder osVersion(String osVersion) {
method os64Bit (line 105) | public Builder os64Bit(boolean os64Bit) {
method group (line 110) | public Builder group(String group) {
method tags (line 115) | public Builder tags(Iterable<String> tags) {
method metadata (line 120) | public Builder metadata(Map<String, String> metadata) {
method username (line 125) | public Builder username(String username) {
method credential (line 130) | public Builder credential(String credential) {
method credentialUrl (line 135) | public Builder credentialUrl(URI credentialUrl) {
method sudoPassword (line 140) | public Builder sudoPassword(String sudoPassword) {
method build (line 145) | public Node build() {
method Node (line 151) | public Node(String id, String name, String description, String hostnam...
method getId (line 194) | public String getId() {
method getLocationId (line 198) | public String getLocationId() {
method getName (line 202) | public String getName() {
method getDescription (line 206) | public String getDescription() {
method getGroup (line 210) | public String getGroup() {
method getHostname (line 214) | public String getHostname() {
method getOsArch (line 218) | public String getOsArch() {
method getOsFamily (line 222) | public String getOsFamily() {
method getOsDescription (line 226) | public String getOsDescription() {
method getOsVersion (line 230) | public String getOsVersion() {
method isOs64Bit (line 234) | public boolean isOs64Bit() {
method getLoginPort (line 238) | public int getLoginPort() {
method getTags (line 242) | public Set<String> getTags() {
method getMetadata (line 249) | public Map<String, String> getMetadata() {
method getUsername (line 253) | public String getUsername() {
method getCredential (line 257) | public String getCredential() {
method getCredentialUrl (line 261) | public URI getCredentialUrl() {
method getSudoPassword (line 265) | public String getSudoPassword() {
method hashCode (line 269) | @Override
method equals (line 274) | @Override
method toString (line 301) | @Override
FILE: apis/byon/src/main/java/org/jclouds/byon/config/BYONComputeServiceContextModule.java
class BYONComputeServiceContextModule (line 36) | @SingleThreaded
method BYONComputeServiceContextModule (line 39) | public BYONComputeServiceContextModule() {
method configure (line 43) | @Override
FILE: apis/byon/src/main/java/org/jclouds/byon/config/CacheNodeStoreModule.java
class CacheNodeStoreModule (line 35) | @ConfiguresNodeStore
method CacheNodeStoreModule (line 40) | public CacheNodeStoreModule(LoadingCache<String, Node> backing) {
method CacheNodeStoreModule (line 44) | public CacheNodeStoreModule(Map<String, Node> backing) {
method configure (line 50) | @Override
FILE: apis/byon/src/main/java/org/jclouds/byon/config/YamlNodeStoreModule.java
class YamlNodeStoreModule (line 44) | @ConfiguresNodeStore
method YamlNodeStoreModule (line 50) | public YamlNodeStoreModule(Map<String, ByteSource> backing) {
method YamlNodeStoreModule (line 54) | public YamlNodeStoreModule() {
method configure (line 58) | @Override
method provideNodeStore (line 82) | @Provides
method provideYamlStore (line 89) | @Provides
FILE: apis/byon/src/main/java/org/jclouds/byon/domain/YamlNode.java
class YamlNode (line 69) | public class YamlNode {
method apply (line 90) | @Override
method toNode (line 103) | public Node toNode() {
method apply (line 108) | @Override
method fromYaml (line 124) | public static YamlNode fromYaml(ByteSource in) {
method apply (line 129) | @Override
method toYaml (line 176) | public ByteSource toYaml() {
method fromNode (line 180) | public static YamlNode fromNode(Node in) {
method apply (line 185) | @Override
FILE: apis/byon/src/main/java/org/jclouds/byon/functions/NodeToNodeMetadata.java
class NodeToNodeMetadata (line 54) | @Singleton
method NodeToNodeMetadata (line 65) | @Inject
method apply (line 74) | @Override
method findLocationWithId (line 114) | private Location findLocationWithId(final String locationId) {
FILE: apis/byon/src/main/java/org/jclouds/byon/functions/NodesFromYamlStream.java
class NodesFromYamlStream (line 70) | @Singleton
class Config (line 77) | public static class Config {
method apply (line 81) | @Override
FILE: apis/byon/src/main/java/org/jclouds/byon/internal/BYONComputeServiceAdapter.java
class BYONComputeServiceAdapter (line 50) | @Singleton
method BYONComputeServiceAdapter (line 56) | @Inject
method createNodeWithGroupEncodedIntoName (line 64) | @Override
method listHardwareProfiles (line 69) | @Override
method listImages (line 74) | @Override
method listNodes (line 79) | @Override
method listNodesByIds (line 84) | @Override
method listLocations (line 89) | @Override
method getNode (line 111) | @Override
method getImage (line 123) | @Override
method destroyNode (line 128) | @Override
method rebootNode (line 133) | @Override
method resumeNode (line 138) | @Override
method suspendNode (line 143) | @Override
FILE: apis/byon/src/main/java/org/jclouds/byon/suppliers/NodesParsedFromSupplier.java
class NodesParsedFromSupplier (line 35) | @Singleton
method NodesParsedFromSupplier (line 43) | @Inject
method get (line 49) | @Override
FILE: apis/byon/src/main/java/org/jclouds/byon/suppliers/SupplyFromProviderURIOrNodesProperty.java
class SupplyFromProviderURIOrNodesProperty (line 40) | public class SupplyFromProviderURIOrNodesProperty extends ByteSource imp...
method SupplyFromProviderURIOrNodesProperty (line 50) | @VisibleForTesting
method SupplyFromProviderURIOrNodesProperty (line 55) | @Inject
method openStream (line 60) | @Override
method toString (line 67) | @Override
method apply (line 72) | @Override
FILE: apis/byon/src/test/java/org/jclouds/byon/BYONApiMetadataTest.java
class BYONApiMetadataTest (line 22) | @Test(groups = "unit", testName = "BYONApiMetadataTest")
method BYONApiMetadataTest (line 25) | public BYONApiMetadataTest() {
FILE: apis/byon/src/test/java/org/jclouds/byon/BYONComputeServiceLiveTest.java
class BYONComputeServiceLiveTest (line 43) | @Test(groups = "live")
method setup (line 48) | @BeforeClass(groups = "live")
method testCanRunCommandAsCurrentUser (line 74) | public void testCanRunCommandAsCurrentUser() throws Exception {
method close (line 83) | @AfterClass(groups = "live")
FILE: apis/byon/src/test/java/org/jclouds/byon/BYONComputeServiceTest.java
class BYONComputeServiceTest (line 43) | @Test(singleThreaded = true, testName = "BYONComputeServiceTest")
method testNodesParseNodeMap (line 46) | @Test
method testNodesParseWithFileUrl (line 56) | @Test
method testNodesParseWithClasspathUrl (line 62) | @Test
method assertNodesParse (line 68) | private void assertNodesParse(String endpoint, ComputeServiceContext c...
method testNodesWithLocations (line 87) | public void testNodesWithLocations() {
method supplier (line 131) | private Supplier<LoadingCache<String, Node>> supplier(ComputeServiceCo...
FILE: apis/byon/src/test/java/org/jclouds/byon/config/CacheNodeStoreModuleTest.java
class CacheNodeStoreModuleTest (line 44) | @Test(groups = "unit", singleThreaded = true, testName = "CacheNodeStore...
method createData (line 47) | @DataProvider(name = "names")
method testProvidedMapWithValue (line 53) | public void testProvidedMapWithValue() throws IOException {
method testProvidedConsistentAcrossRepeatedWrites (line 63) | public void testProvidedConsistentAcrossRepeatedWrites() throws IOExce...
method testProvidedConsistentAcrossMultipleInjectors (line 76) | public void testProvidedConsistentAcrossMultipleInjectors() throws IOE...
method testProvidedCacheConsistentAcrossMultipleInjectors (line 86) | public void testProvidedCacheConsistentAcrossMultipleInjectors() throw...
method getStore (line 98) | private LoadingCache<String, Node> getStore(Injector injector) {
method createInjectorWithProvidedMap (line 103) | private Injector createInjectorWithProvidedMap(Map<String, Node> map) {
method createInjectorWithProvidedCache (line 114) | private Injector createInjectorWithProvidedCache(LoadingCache<String, ...
method check (line 125) | private void check(Map<String, Node> map, LoadingCache<String, Node> s...
method remove (line 132) | private void remove(Map<String, Node> map, LoadingCache<String, Node> ...
method checkConsistent (line 146) | private void checkConsistent(Map<String, Node> map, LoadingCache<Strin...
method put (line 157) | private void put(Map<String, Node> map, LoadingCache<String, Node> sto...
FILE: apis/byon/src/test/java/org/jclouds/byon/config/YamlNodeStoreModuleTest.java
class YamlNodeStoreModuleTest (line 44) | @Test(groups = "unit", singleThreaded = true)
method createData (line 48) | @DataProvider(name = "names")
method deleteObject (line 54) | @Test(dataProvider = "names")
method testProvidedMapWithValue (line 61) | public void testProvidedMapWithValue() throws IOException {
method testProvidedConsistentAcrossRepeatedWrites (line 72) | public void testProvidedConsistentAcrossRepeatedWrites() throws IOExce...
method testProvidedConsistentAcrossMultipleInjectors (line 86) | public void testProvidedConsistentAcrossMultipleInjectors() throws IOE...
method testDefaultConsistentAcrossMultipleInjectors (line 97) | public void testDefaultConsistentAcrossMultipleInjectors() throws IOEx...
method getStore (line 108) | protected LoadingCache<String, Node> getStore(Injector injector) {
method getMap (line 113) | protected Map<String, ByteSource> getMap(Injector injector) {
method createInjectorWithProvidedMap (line 118) | protected Injector createInjectorWithProvidedMap(Map<String, ByteSourc...
method createInjector (line 129) | protected Injector createInjector() {
method check (line 140) | protected void check(Map<String, ByteSource> map, LoadingCache<String,...
method remove (line 147) | protected void remove(Map<String, ByteSource> map, LoadingCache<String...
method checkConsistent (line 161) | protected void checkConsistent(Map<String, ByteSource> map, LoadingCac...
method checkToYaml (line 175) | protected void checkToYaml(Map<String, ByteSource> map, String key, St...
method put (line 179) | protected void put(Map<String, ByteSource> map, LoadingCache<String, N...
FILE: apis/byon/src/test/java/org/jclouds/byon/functions/NodeToNodeMetadataTest.java
class NodeToNodeMetadataTest (line 43) | @Test(singleThreaded = true, testName = "NodeToNodeMetadataTest")
method expectedProviderLocationFromResource (line 45) | public static Location expectedProviderLocationFromResource(String res...
method zoneCalled (line 49) | public static Location zoneCalled(String zone, Location parent) {
method expectedNodeMetadataFromResource (line 63) | public static NodeMetadata expectedNodeMetadataFromResource(String res...
method expectedNodeMetadataFromResource (line 67) | public static NodeMetadata expectedNodeMetadataFromResource(String res...
method expectedNodeMetadataFromResource (line 71) | public static NodeMetadata expectedNodeMetadataFromResource(int id, St...
method expectedNodeMetadataFromResource (line 75) | public static NodeMetadata expectedNodeMetadataFromResource(int id, St...
method testNodesParse (line 95) | @Test
method testNodesParseLocation (line 101) | @Test
method testNodesParseLoginPort (line 108) | @Test
FILE: apis/byon/src/test/java/org/jclouds/byon/functions/NodesFromYamlTest.java
class NodesFromYamlTest (line 29) | public class NodesFromYamlTest {
method testNodesParse (line 48) | @Test
method testNodesParseLocation (line 57) | @Test
method testNodesParseWhenCredentialInUrl (line 66) | @Test
method testMustParseSomething (line 75) | @Test(expectedExceptions = IllegalStateException.class)
FILE: apis/byon/src/test/java/org/jclouds/byon/suppliers/NodesParsedFromSupplierTest.java
class NodesParsedFromSupplierTest (line 25) | public class NodesParsedFromSupplierTest {
method testMustParseSomething (line 27) | @Test(expectedExceptions = IllegalStateException.class)
FILE: apis/byon/src/test/java/org/jclouds/byon/suppliers/SupplyFromProviderURIOrNodesPropertyTest.java
class SupplyFromProviderURIOrNodesPropertyTest (line 28) | public class SupplyFromProviderURIOrNodesPropertyTest {
method testFromURI (line 30) | @Test
method testFromURIClasspath (line 42) | @Test
method testFromProperty (line 53) | @Test
method testSupplyMultipleTimes (line 64) | @Test
FILE: apis/chef/src/main/java/org/jclouds/chef/ChefApi.java
type ChefApi (line 96) | @RequestFilters(SignedHeaderAuth.class)
method chefService (line 104) | @Provides
method organizationApi (line 110) | @Delegate
method listClients (line 120) | @Named("client:list")
method getClient (line 133) | @Named("client:get")
method createClient (line 146) | @Named("client:create")
method createClient (line 160) | @Named("client:create")
method generateKeyForClient (line 173) | @Named("client:generatekey")
method deleteClient (line 185) | @Named("client:delete")
method listCookbooks (line 198) | @Named("cookbook:list")
method listCookbooksInEnvironment (line 213) | @SinceApiVersion("0.10.0")
method listCookbooksInEnvironment (line 232) | @SinceApiVersion("0.10.0")
method listVersionsOfCookbook (line 247) | @Named("cookbook:versions")
method getCookbook (line 262) | @Named("cookbook:get")
method getCookbookInEnvironment (line 276) | @SinceApiVersion("0.10.0")
method getCookbookInEnvironment (line 294) | @SinceApiVersion("0.10.0")
method listRecipesInEnvironment (line 308) | @SinceApiVersion("0.10.0")
method updateCookbook (line 323) | @Named("cookbook:update")
method deleteCookbook (line 336) | @Named("cookbook:delete")
method listDatabags (line 349) | @Named("databag:list")
method createDatabag (line 361) | @Named("databag:create")
method deleteDatabag (line 371) | @Named("databag:delete")
method listDatabagItems (line 383) | @Named("databag:listitems")
method getDatabagItem (line 397) | @Named("databag:getitem")
method createDatabagItem (line 411) | @Named("databag:createitem")
method updateDatabagItem (line 424) | @Named("databag:updateitem")
method deleteDatabagItem (line 438) | @Named("databag:deleteitem")
method listEnvironments (line 453) | @SinceApiVersion("0.10.0")
method getEnvironment (line 467) | @SinceApiVersion("0.10.0")
method createEnvironment (line 479) | @SinceApiVersion("0.10.0")
method updateEnvironment (line 491) | @SinceApiVersion("0.10.0")
method deleteEnvironment (line 504) | @SinceApiVersion("0.10.0")
method listNodes (line 518) | @Named("node:list")
method listNodesInEnvironment (line 531) | @SinceApiVersion("0.10.0")
method getNode (line 545) | @Named("node:get")
method createNode (line 556) | @Named("node:create")
method updateNode (line 567) | @Named("node:update")
method deleteNode (line 578) | @Named("node:delete")
method listRoles (line 591) | @Named("role:list")
method getRole (line 604) | @Named("role:get")
method createRole (line 615) | @Named("role:create")
method updateRole (line 626) | @Named("role:update")
method deleteRole (line 637) | @Named("role:delete")
method createUploadSandboxForChecksums (line 656) | @Named("sandbox:upload")
method uploadContent (line 670) | @Named("content:upload")
method getResourceContents (line 681) | @Named("content:get")
method commitSandbox (line 696) | @Named("sandbox:commit")
method listSearchIndexes (line 715) | @Named("search:indexes")
method searchClients (line 732) | @Named("search:clients")
method searchClients (line 745) | @Named("search:clients")
method searchDatabagItems (line 761) | @Named("search:databag")
method searchDatabagItems (line 774) | @Named("search:databag")
method searchEnvironments (line 791) | @SinceApiVersion("0.10.0")
method searchEnvironments (line 805) | @SinceApiVersion("0.10.0")
method searchNodes (line 822) | @Named("search:nodes")
method searchNodes (line 835) | @Named("search:nodes")
method searchRoles (line 851) | @Named("search:roles")
method searchRoles (line 864) | @Named("search:roles")
FILE: apis/chef/src/main/java/org/jclouds/chef/ChefApiMetadata.java
class ChefApiMetadata (line 45) | @AutoService(ApiMetadata.class)
method toBuilder (line 53) | @Override
method ChefApiMetadata (line 58) | public ChefApiMetadata() {
method ChefApiMetadata (line 62) | protected ChefApiMetadata(Builder builder) {
method defaultProperties (line 66) | public static Properties defaultProperties() {
class Builder (line 85) | public static class Builder extends BaseHttpApiMetadata.Builder<ChefAp...
method Builder (line 87) | protected Builder() {
method build (line 101) | @Override
method self (line 106) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/ChefService.java
type ChefService (line 41) | @ImplementedBy(BaseChefService.class)
method encrypt (line 53) | byte[] encrypt(InputStream input) throws IOException;
method decrypt (line 62) | byte[] decrypt(InputStream input) throws IOException;
method createBootstrapScriptForGroup (line 74) | Statement createBootstrapScriptForGroup(String group);
method createBootstrapScriptForGroup (line 85) | Statement createBootstrapScriptForGroup(String group, @Nullable String...
method updateBootstrapConfigForGroup (line 95) | void updateBootstrapConfigForGroup(String group, BootstrapConfig boots...
method getBootstrapConfigForGroup (line 103) | BootstrapConfig getBootstrapConfigForGroup(String group);
method createNodeAndPopulateAutomaticAttributes (line 116) | Node createNodeAndPopulateAutomaticAttributes(String nodeName, Iterabl...
method updateAutomaticAttributesOnNode (line 123) | void updateAutomaticAttributesOnNode(String nodeName);
method cleanupStaleNodesAndClients (line 133) | void cleanupStaleNodesAndClients(String prefix, int secondsStale);
method deleteAllNodesInList (line 140) | void deleteAllNodesInList(Iterable<String> names);
method deleteAllClientsInList (line 147) | void deleteAllClientsInList(Iterable<String> names);
method listNodes (line 154) | Iterable<? extends Node> listNodes();
method listNodes (line 161) | Iterable<? extends Node> listNodes(ExecutorService executorService);
method listNodesInEnvironment (line 169) | @SinceApiVersion("0.10.0")
method listNodesInEnvironment (line 179) | @SinceApiVersion("0.10.0")
method listClients (line 187) | Iterable<? extends Client> listClients();
method listClients (line 194) | Iterable<? extends Client> listClients(ExecutorService executorService);
method listCookbookVersions (line 201) | Iterable<? extends CookbookVersion> listCookbookVersions();
method listCookbookVersions (line 208) | Iterable<? extends CookbookVersion> listCookbookVersions(ExecutorServi...
method listCookbookVersionsInEnvironment (line 216) | Iterable<? extends CookbookVersion> listCookbookVersionsInEnvironment(...
method listCookbookVersionsInEnvironment (line 225) | Iterable<? extends CookbookVersion> listCookbookVersionsInEnvironment(...
method listCookbookVersionsInEnvironment (line 236) | Iterable<? extends CookbookVersion> listCookbookVersionsInEnvironment(...
method listCookbookVersionsInEnvironment (line 248) | Iterable<? extends CookbookVersion> listCookbookVersionsInEnvironment(...
method listEnvironments (line 255) | @SinceApiVersion("0.10.0")
FILE: apis/chef/src/main/java/org/jclouds/chef/binders/BindChecksumsToJsonPayload.java
class BindChecksumsToJsonPayload (line 33) | @Singleton
method bindToRequest (line 36) | @SuppressWarnings("unchecked")
FILE: apis/chef/src/main/java/org/jclouds/chef/binders/BindCreateClientOptionsToJsonPayload.java
class BindCreateClientOptionsToJsonPayload (line 39) | public class BindCreateClientOptionsToJsonPayload extends BindToJsonPayl...
method BindCreateClientOptionsToJsonPayload (line 40) | @Inject
method bindToRequest (line 45) | @Override
class CreateClientParams (line 59) | @SuppressWarnings("unused")
method CreateClientParams (line 65) | public CreateClientParams(String name, CreateClientOptions options) {
FILE: apis/chef/src/main/java/org/jclouds/chef/binders/BindGenerateKeyForClientToJsonPayload.java
class BindGenerateKeyForClientToJsonPayload (line 25) | @Singleton
method bindToRequest (line 28) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/binders/BindGroupToUpdateRequestJsonPayload.java
class BindGroupToUpdateRequestJsonPayload (line 36) | @Singleton
method BindGroupToUpdateRequestJsonPayload (line 39) | @Inject
method bindToRequest (line 44) | @Override
class GroupUpdateRequest (line 51) | @SuppressWarnings("unused")
method GroupUpdateRequest (line 58) | public GroupUpdateRequest(Group group) {
class ActorConfiguration (line 66) | @SuppressWarnings("unused")
method ActorConfiguration (line 72) | public ActorConfiguration(Group group) {
FILE: apis/chef/src/main/java/org/jclouds/chef/binders/DatabagItemId.java
class DatabagItemId (line 25) | @Singleton
method apply (line 28) | public String apply(Object from) {
FILE: apis/chef/src/main/java/org/jclouds/chef/binders/EnvironmentName.java
class EnvironmentName (line 24) | @Singleton
method apply (line 27) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/binders/GroupName.java
class GroupName (line 30) | @Singleton
method apply (line 33) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/binders/NodeName.java
class NodeName (line 25) | @Singleton
method apply (line 28) | public String apply(Object from) {
FILE: apis/chef/src/main/java/org/jclouds/chef/binders/RoleName.java
class RoleName (line 25) | @Singleton
method apply (line 28) | public String apply(Object from) {
FILE: apis/chef/src/main/java/org/jclouds/chef/config/ChefBootstrapModule.java
class ChefBootstrapModule (line 43) | public class ChefBootstrapModule extends AbstractModule {
method installChefGems (line 45) | @Provides
method installChefUsingOmnibus (line 60) | @Provides
method installChef (line 69) | @Provides
class BootstrapProperties (line 77) | @Singleton
method chefVersion (line 99) | public Optional<String> chefVersion() {
method gemSystemVersion (line 103) | public Optional<String> gemSystemVersion() {
method updateGemSystem (line 107) | public boolean updateGemSystem() {
method updateGems (line 111) | public boolean updateGems() {
method useOmnibus (line 115) | public boolean useOmnibus() {
method configure (line 120) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/config/ChefHttpApiModule.java
class ChefHttpApiModule (line 74) | @ConfiguresHttpApi
method guiceProvideTimeStamp (line 77) | @Provides
method provideTimeStamp (line 83) | protected String provideTimeStamp(@TimeStamp Supplier<String> cache) {
method provideTimeStampCache (line 90) | @Provides
method supplyKey (line 103) | @Provides
method privateKeyCache (line 115) | @Provides
class PrivateKeyForCredentials (line 127) | @VisibleForTesting
method PrivateKeyForCredentials (line 132) | @Inject
method load (line 137) | @Override
method provideValidatorName (line 150) | @Provides
method provideValidatorCredential (line 164) | @Provides
method bootstrapConfigForGroup (line 182) | @Provides
method groupToClient (line 188) | @Provides
method bindErrorHandlers (line 194) | @Override
method bindRetryHandlers (line 201) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/config/ChefParserModule.java
class ChefParserModule (line 63) | public class ChefParserModule extends AbstractModule {
type PrivateKeyAdapter (line 64) | @ImplementedBy(PrivateKeyAdapterImpl.class)
class PrivateKeyAdapterImpl (line 69) | @Singleton
method PrivateKeyAdapterImpl (line 73) | @Inject
method deserialize (line 78) | @Override
type PublicKeyAdapter (line 98) | @ImplementedBy(PublicKeyAdapterImpl.class)
class PublicKeyAdapterImpl (line 103) | @Singleton
method PublicKeyAdapterImpl (line 107) | @Inject
method deserialize (line 112) | @Override
type X509CertificateAdapter (line 132) | @ImplementedBy(X509CertificateAdapterImpl.class)
class X509CertificateAdapterImpl (line 137) | @Singleton
method X509CertificateAdapterImpl (line 141) | @Inject
method deserialize (line 146) | @Override
class DataBagItemAdapter (line 169) | @Singleton
method createJsonLiteralFromRawJson (line 173) | @Override
method toString (line 182) | @Override
class IdHolder (line 202) | private static class IdHolder {
class KeepLastRepeatedKeyMapTypeAdapter (line 206) | private static final class KeepLastRepeatedKeyMapTypeAdapter<K, V>
method KeepLastRepeatedKeyMapTypeAdapter (line 209) | protected KeepLastRepeatedKeyMapTypeAdapter(TypeAdapter<K> keyAdapte...
method read (line 213) | @Override
class KeepLastRepeatedKeyMapTypeAdapterFactory (line 236) | public static class KeepLastRepeatedKeyMapTypeAdapterFactory extends M...
method KeepLastRepeatedKeyMapTypeAdapterFactory (line 238) | public KeepLastRepeatedKeyMapTypeAdapterFactory() {
method newAdapter (line 242) | @SuppressWarnings("unchecked")
method provideCustomAdapterBindings (line 249) | @Provides
method configure (line 257) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/config/ChefProperties.java
class ChefProperties (line 23) | public final class ChefProperties {
method ChefProperties (line 110) | private ChefProperties() {
FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Attribute.java
class Attribute (line 36) | public class Attribute {
method builder (line 37) | public static Builder builder() {
class Builder (line 41) | public static class Builder {
method required (line 51) | public Builder required(String required) {
method calculated (line 56) | public Builder calculated(boolean calculated) {
method choice (line 61) | public Builder choice(String choice) {
method choices (line 66) | public Builder choices(Iterable<String> choices) {
method defaultValue (line 71) | public Builder defaultValue(JsonBall defaultValue) {
method type (line 76) | public Builder type(String type) {
method recipe (line 81) | public Builder recipe(String recipe) {
method recipes (line 86) | public Builder recipes(Iterable<String> recipes) {
method displayName (line 91) | public Builder displayName(String displayName) {
method description (line 96) | public Builder description(String description) {
method build (line 101) | public Attribute build() {
method Attribute (line 118) | @ConstructorProperties({ "required", "calculated", "choice", "default"...
method getRequired (line 132) | public String getRequired() {
method isCalculated (line 136) | public boolean isCalculated() {
method getChoice (line 140) | public Set<String> getChoice() {
method getDefaultValue (line 144) | public JsonBall getDefaultValue() {
method getType (line 148) | public String getType() {
method getRecipes (line 152) | public List<String> getRecipes() {
method getDisplayName (line 156) | public String getDisplayName() {
method getDescription (line 160) | public String getDescription() {
method hashCode (line 164) | @Override
method equals (line 179) | @Override
method toString (line 228) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/domain/BootstrapConfig.java
class BootstrapConfig (line 35) | public class BootstrapConfig {
type SSLVerifyMode (line 37) | public static enum SSLVerifyMode {
method toString (line 40) | @Override
method fromValue (line 45) | public static SSLVerifyMode fromValue(String value) {
method builder (line 50) | public static Builder builder() {
class Builder (line 54) | public static class Builder {
method runList (line 66) | public Builder runList(Iterable<String> runList) {
method environment (line 74) | public Builder environment(String environment) {
method attributes (line 82) | public Builder attributes(JsonBall attributes) {
method sslCAFile (line 91) | public Builder sslCAFile(String sslCAFile) {
method sslCAPath (line 100) | public Builder sslCAPath(String sslCAPath) {
method sslVerifyMode (line 113) | public Builder sslVerifyMode(SSLVerifyMode sslVerifyMode) {
method verifyApiCert (line 123) | public Builder verifyApiCert(boolean verifyApiCert) {
method build (line 128) | public BootstrapConfig build() {
method BootstrapConfig (line 153) | @ConstructorProperties({ "run_list", "environment", "attributes", "ssl...
method getRunList (line 167) | public List<String> getRunList() {
method getEnvironment (line 171) | @Nullable
method getAttributes (line 176) | @Nullable
method getSslCAFile (line 181) | @Nullable
method getSslCAPath (line 186) | @Nullable
method getSslVerifyMode (line 191) | @Nullable
method getVerifyApiCert (line 196) | @Nullable
FILE: apis/chef/src/main/java/org/jclouds/chef/domain/ChecksumStatus.java
class ChecksumStatus (line 28) | public class ChecksumStatus {
method builder (line 29) | public static Builder builder() {
class Builder (line 33) | public static class Builder {
method url (line 37) | public Builder url(URI url) {
method needsUpload (line 42) | public Builder needsUpload(boolean needsUpload) {
method build (line 47) | public ChecksumStatus build() {
method ChecksumStatus (line 56) | @ConstructorProperties({ "url", "needs_upload" })
method getUrl (line 62) | public URI getUrl() {
method needsUpload (line 66) | public boolean needsUpload() {
method hashCode (line 70) | @Override
method equals (line 79) | @Override
method toString (line 98) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Client.java
class Client (line 33) | public class Client {
method builder (line 34) | public static Builder builder() {
class Builder (line 38) | public static class Builder {
method certificate (line 47) | public Builder certificate(X509Certificate certificate) {
method privateKey (line 52) | public Builder privateKey(PrivateKey privateKey) {
method publicKey (line 57) | public Builder publicKey(PublicKey publicKey) {
method orgname (line 62) | public Builder orgname(String orgname) {
method clientname (line 67) | public Builder clientname(String clientname) {
method name (line 72) | public Builder name(String name) {
method isValidator (line 77) | public Builder isValidator(boolean validator) {
method build (line 82) | public Client build() {
method Client (line 97) | @ConstructorProperties({ "certificate", "orgname", "clientname", "name...
method getPublicKey (line 109) | public PublicKey getPublicKey() {
method getPrivateKey (line 113) | public PrivateKey getPrivateKey() {
method getCertificate (line 117) | public X509Certificate getCertificate() {
method getOrgname (line 121) | public String getOrgname() {
method getClientname (line 125) | public String getClientname() {
method getName (line 129) | public String getName() {
method isValidator (line 133) | public boolean isValidator() {
method hashCode (line 137) | @Override
method equals (line 151) | @Override
method toString (line 195) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/domain/CookbookDefinition.java
class CookbookDefinition (line 33) | public class CookbookDefinition {
method builder (line 34) | public static Builder builder() {
class Builder (line 38) | public static class Builder {
method name (line 43) | public Builder name(String name) {
method url (line 48) | public Builder url(URI url) {
method version (line 53) | public Builder version(Version version) {
method versions (line 58) | public Builder versions(Iterable<Version> versions) {
method from (line 63) | public Builder from(CookbookDefinition def) {
method build (line 70) | public CookbookDefinition build() {
method CookbookDefinition (line 79) | @ConstructorProperties({"name", "url", "versions" })
method getName (line 86) | public String getName() {
method getUrl (line 90) | public URI getUrl() {
method getVersions (line 94) | public Set<Version> getVersions() {
method hashCode (line 98) | @Override
method equals (line 108) | @Override
method toString (line 135) | @Override
class Version (line 140) | public static class Version {
method builder (line 141) | public static Builder builder() {
class Builder (line 145) | public static class Builder {
method url (line 149) | public Builder url(URI url) {
method version (line 154) | public Builder version(String version) {
method build (line 159) | public Version build() {
method Version (line 167) | @ConstructorProperties({ "url", "version" })
method getUrl (line 173) | public URI getUrl() {
method getVersion (line 177) | public String getVersion() {
method hashCode (line 181) | @Override
method equals (line 190) | @Override
method toString (line 212) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/domain/CookbookVersion.java
class CookbookVersion (line 33) | public class CookbookVersion {
method builder (line 34) | public static Builder builder(String name, String version) {
class Builder (line 38) | public static class Builder {
method Builder (line 52) | public Builder(String name, String version) {
method cookbookName (line 57) | public Builder cookbookName(String cookbookName) {
method definition (line 62) | public Builder definition(Resource definition) {
method definitions (line 67) | public Builder definitions(Iterable<Resource> definitions) {
method attribute (line 72) | public Builder attribute(Resource attribute) {
method attributes (line 77) | public Builder attributes(Iterable<Resource> attributes) {
method file (line 82) | public Builder file(Resource file) {
method files (line 87) | public Builder files(Iterable<Resource> files) {
method metadata (line 92) | public Builder metadata(Metadata metadata) {
method provider (line 97) | public Builder provider(Resource provider) {
method providers (line 102) | public Builder providers(Iterable<Resource> providers) {
method resource (line 107) | public Builder resource(Resource resource) {
method resources (line 112) | public Builder resources(Iterable<Resource> resources) {
method template (line 117) | public Builder template(Resource template) {
method templates (line 122) | public Builder templates(Iterable<Resource> templates) {
method library (line 127) | public Builder library(Resource library) {
method libraries (line 132) | public Builder libraries(Iterable<Resource> libraries) {
method version (line 137) | public Builder version(String version) {
method recipe (line 142) | public Builder recipe(Resource recipe) {
method recipes (line 147) | public Builder recipes(Iterable<Resource> recipes) {
method rootFile (line 152) | public Builder rootFile(Resource rootFile) {
method rootFiles (line 157) | public Builder rootFiles(Iterable<Resource> rootFiles) {
method build (line 162) | public CookbookVersion build() {
method CookbookVersion (line 191) | @ConstructorProperties({ "name", "definitions", "attributes", "files",...
method getName (line 212) | public String getName() {
method getDefinitions (line 216) | public Set<Resource> getDefinitions() {
method getAttributes (line 220) | public Set<Resource> getAttributes() {
method getFiles (line 224) | public Set<Resource> getFiles() {
method getMetadata (line 228) | public Metadata getMetadata() {
method getSuppliers (line 232) | public Set<Resource> getSuppliers() {
method getCookbookName (line 236) | public String getCookbookName() {
method getResources (line 240) | public Set<Resource> getResources() {
method getTemplates (line 244) | public Set<Resource> getTemplates() {
method getLibraries (line 248) | public Set<Resource> getLibraries() {
method getVersion (line 252) | public String getVersion() {
method getRecipes (line 256) | public Set<Resource> getRecipes() {
method getRootFiles (line 260) | public Set<Resource> getRootFiles() {
method hashCode (line 264) | @Override
method equals (line 284) | @Override
method toString (line 361) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/domain/DatabagItem.java
class DatabagItem (line 26) | public class DatabagItem extends JsonBall {
method DatabagItem (line 30) | public DatabagItem(String id, String value) {
method hashCode (line 35) | @Override
method equals (line 43) | @Override
method getId (line 60) | public String getId() {
FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Environment.java
class Environment (line 34) | public class Environment {
method builder (line 35) | public static Builder builder() {
class Builder (line 39) | public static class Builder {
method name (line 46) | public Builder name(String name) {
method attribute (line 51) | public Builder attribute(String key, JsonBall value) {
method attributes (line 56) | public Builder attributes(Map<String, JsonBall> attributes) {
method overrideAttribute (line 61) | public Builder overrideAttribute(String key, JsonBall value) {
method overrideAttributes (line 66) | public Builder overrideAttributes(Map<String, JsonBall> overrideAttr...
method cookbookVersion (line 71) | public Builder cookbookVersion(String key, String version) {
method cookbookVersions (line 76) | public Builder cookbookVersions(Map<String, String> cookbookVersions) {
method description (line 81) | public Builder description(String description) {
method build (line 86) | public Environment build() {
method Environment (line 107) | @ConstructorProperties({ "name", "default_attributes", "override_attri...
method getName (line 118) | public String getName() {
method getAttributes (line 122) | public Map<String, JsonBall> getAttributes() {
method getOverrideAttributes (line 126) | public Map<String, JsonBall> getOverrideAttributes() {
method getDescription (line 130) | public String getDescription() {
method getCookbookVersions (line 134) | public Map<String, String> getCookbookVersions() {
method equals (line 138) | @Override
method hashCode (line 162) | @Override
method toString (line 172) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Group.java
class Group (line 32) | public class Group {
method builder (line 33) | public static Builder builder(String groupname) {
class Builder (line 37) | public static class Builder {
method Builder (line 46) | public Builder(String groupname) {
method name (line 50) | public Builder name(String name) {
method groupname (line 55) | public Builder groupname(String groupname) {
method orgname (line 60) | public Builder orgname(String orgname) {
method actor (line 65) | public Builder actor(String actor) {
method actors (line 70) | public Builder actors(Iterable<String> actors) {
method client (line 75) | public Builder client(String client) {
method clients (line 80) | public Builder clients(Iterable<String> clients) {
method group (line 85) | public Builder group(String group) {
method groups (line 90) | public Builder groups(Iterable<String> groups) {
method user (line 95) | public Builder user(String user) {
method users (line 100) | public Builder users(Iterable<String> users) {
method build (line 105) | public Group build() {
method Group (line 119) | @ConstructorProperties({ "name", "groupname", "orgname", "actors", "cl...
method getName (line 131) | public String getName() {
method getGroupname (line 135) | public String getGroupname() {
method getOrgname (line 139) | public String getOrgname() {
method getActors (line 143) | public Set<String> getActors() {
method getClients (line 147) | public Set<String> getClients() {
method getGroups (line 151) | public Set<String> getGroups() {
method getUsers (line 155) | public Set<String> getUsers() {
method hashCode (line 159) | @Override
method equals (line 169) | @Override
method toString (line 205) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Grouping.java
class Grouping (line 26) | public class Grouping {
method builder (line 27) | public static Builder builder() {
class Builder (line 31) | public static class Builder {
method title (line 35) | public Builder title(String title) {
method description (line 40) | public Builder description(String description) {
method build (line 45) | public Grouping build() {
method Grouping (line 53) | @ConstructorProperties({ "title", "description" })
method getTitle (line 59) | public String getTitle() {
method getDescription (line 63) | public String getDescription() {
method hashCode (line 67) | @Override
method equals (line 76) | @Override
method toString (line 98) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Metadata.java
class Metadata (line 33) | public class Metadata {
method builder (line 34) | public static Builder builder() {
class Builder (line 38) | public static class Builder {
method license (line 57) | public Builder license(String license) {
method maintainer (line 62) | public Builder maintainer(String maintainer) {
method suggestion (line 67) | public Builder suggestion(String key, String value) {
method suggestions (line 72) | public Builder suggestions(Map<String, String> suggestions) {
method dependency (line 77) | public Builder dependency(String key, String value) {
method dependencies (line 82) | public Builder dependencies(Map<String, String> dependencies) {
method maintainerEmail (line 87) | public Builder maintainerEmail(String maintainerEmail) {
method conflicting (line 92) | public Builder conflicting(String key, String value) {
method conflicting (line 97) | public Builder conflicting(Map<String, String> conflicting) {
method description (line 102) | public Builder description(String description) {
method providing (line 107) | public Builder providing(String key, String value) {
method providing (line 112) | public Builder providing(Map<String, String> providing) {
method platform (line 117) | public Builder platform(String key, String value) {
method platforms (line 122) | public Builder platforms(Map<String, String> platforms) {
method version (line 127) | public Builder version(String version) {
method recipe (line 132) | public Builder recipe(String key, String value) {
method recipes (line 137) | public Builder recipes(Map<String, String> recipes) {
method replacing (line 142) | public Builder replacing(String key, String value) {
method replacing (line 147) | public Builder replacing(Map<String, String> replacing) {
method name (line 152) | public Builder name(String name) {
method grouping (line 157) | public Builder grouping(String key, Grouping value) {
method grouping (line 162) | public Builder grouping(Map<String, Grouping> groupings) {
method longDescription (line 167) | public Builder longDescription(String longDescription) {
method attribute (line 172) | public Builder attribute(String key, Attribute value) {
method attributes (line 177) | public Builder attributes(Map<String, Attribute> attributes) {
method recommendation (line 182) | public Builder recommendation(String key, String value) {
method recommendations (line 187) | public Builder recommendations(Map<String, String> recommendations) {
method build (line 192) | public Metadata build() {
method Metadata (line 220) | @ConstructorProperties({ "license", "maintainer", "suggestions", "depe...
method getLicense (line 248) | public String getLicense() {
method getMaintainer (line 252) | public String getMaintainer() {
method getSuggestions (line 256) | public Map<String, String> getSuggestions() {
method getDependencies (line 260) | public Map<String, String> getDependencies() {
method getMaintainerEmail (line 264) | public String getMaintainerEmail() {
method getConflicting (line 268) | public Map<String, String> getConflicting() {
method getDescription (line 272) | public String getDescription() {
method getProviding (line 276) | public Map<String, String> getProviding() {
method getPlatforms (line 280) | public Map<String, String> getPlatforms() {
method getVersion (line 284) | public String getVersion() {
method getRecipes (line 288) | public Map<String, String> getRecipes() {
method getReplacing (line 292) | public Map<String, String> getReplacing() {
method getName (line 296) | public String getName() {
method getGroupings (line 300) | public Map<String, Grouping> getGroupings() {
method getLongDescription (line 304) | public String getLongDescription() {
method getAttributes (line 308) | public Map<String, Attribute> getAttributes() {
method getRecommendations (line 312) | public Map<String, String> getRecommendations() {
method hashCode (line 316) | @Override
method equals (line 340) | @Override
method toString (line 437) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Node.java
class Node (line 36) | public class Node {
method builder (line 37) | public static Builder builder() {
class Builder (line 41) | public static class Builder {
method name (line 50) | public Builder name(String name) {
method normalAttribute (line 55) | public Builder normalAttribute(String key, JsonBall value) {
method normalAttributes (line 60) | public Builder normalAttributes(Map<String, JsonBall> normalAttribut...
method overrideAttribute (line 65) | public Builder overrideAttribute(String key, JsonBall value) {
method overrideAttributes (line 70) | public Builder overrideAttributes(Map<String, JsonBall> overrideAttr...
method defaultAttribute (line 75) | public Builder defaultAttribute(String key, JsonBall value) {
method defaultAttributes (line 80) | public Builder defaultAttributes(Map<String, JsonBall> defaultAttrib...
method automaticAttribute (line 85) | public Builder automaticAttribute(String key, JsonBall value) {
method automaticAttributes (line 90) | public Builder automaticAttributes(Map<String, JsonBall> automaticAt...
method runListElement (line 95) | public Builder runListElement(String element) {
method runList (line 100) | public Builder runList(Iterable<String> runList) {
method environment (line 108) | public Builder environment(String environment) {
method build (line 113) | public Node build() {
method Node (line 139) | @ConstructorProperties({ "name", "normal", "override", "default", "aut...
method getName (line 152) | public String getName() {
method getNormalAttributes (line 156) | public Map<String, JsonBall> getNormalAttributes() {
method getOverrideAttributes (line 160) | public Map<String, JsonBall> getOverrideAttributes() {
method getDefaultAttributes (line 164) | public Map<String, JsonBall> getDefaultAttributes() {
method getAutomaticAttributes (line 168) | public Map<String, JsonBall> getAutomaticAttributes() {
method getRunList (line 172) | public List<String> getRunList() {
method getEnvironment (line 179) | public String getEnvironment() {
method hashCode (line 183) | @Override
method equals (line 199) | @Override
method toString (line 256) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Resource.java
class Resource (line 32) | public class Resource {
method builder (line 33) | public static Builder builder() {
class Builder (line 37) | public static class Builder {
method name (line 44) | public Builder name(String name) {
method url (line 49) | public Builder url(URI url) {
method checksum (line 54) | public Builder checksum(byte[] checksum) {
method path (line 59) | public Builder path(String path) {
method specificity (line 64) | public Builder specificity(String specificity) {
method fromPayload (line 69) | public Builder fromPayload(FilePayload payload) {
method build (line 77) | public Resource build() {
method Resource (line 88) | @ConstructorProperties({ "name", "url", "checksum", "path", "specifici...
method getName (line 97) | public String getName() {
method getUrl (line 101) | public URI getUrl() {
method getChecksum (line 105) | public byte[] getChecksum() {
method getPath (line 109) | public String getPath() {
method getSpecificity (line 113) | public String getSpecificity() {
method hashCode (line 117) | @Override
method equals (line 129) | @Override
method toString (line 163) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Role.java
class Role (line 40) | public class Role {
method builder (line 41) | public static Builder builder() {
class Builder (line 45) | public static class Builder {
method name (line 56) | public Builder name(String name) {
method description (line 61) | public Builder description(String description) {
method overrideAttribute (line 66) | public Builder overrideAttribute(String key, JsonBall value) {
method overrideAttributes (line 71) | public Builder overrideAttributes(Map<String, JsonBall> overrideAttr...
method defaultAttribute (line 76) | public Builder defaultAttribute(String key, JsonBall value) {
method defaultAttributes (line 81) | public Builder defaultAttributes(Map<String, JsonBall> defaultAttrib...
method runListElement (line 86) | public Builder runListElement(String element) {
method runList (line 91) | public Builder runList(Iterable<String> runList) {
method envRunList (line 96) | public Builder envRunList(Map<String, List<String>> envRunList) {
method envRunList (line 101) | public Builder envRunList(String name, List<String> runList) {
method envRunListElement (line 106) | public Builder envRunListElement(String name, String value) {
method build (line 118) | public Role build() {
method Role (line 150) | @ConstructorProperties({ "name", "description", "default_attributes", ...
method getName (line 163) | public String getName() {
method getDescription (line 167) | public String getDescription() {
method getOverrideAttributes (line 171) | public Map<String, JsonBall> getOverrideAttributes() {
method getDefaultAttributes (line 175) | public Map<String, JsonBall> getDefaultAttributes() {
method getRunList (line 179) | public List<String> getRunList() {
method getEnvRunList (line 183) | public Map<String, List<String>> getEnvRunList() {
method hashCode (line 187) | @Override
method equals (line 202) | @Override
method toString (line 254) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/domain/Sandbox.java
class Sandbox (line 34) | public class Sandbox {
method builder (line 35) | public static Builder builder() {
class Builder (line 39) | public static class Builder {
method rev (line 47) | public Builder rev(String rev) {
method isCompleted (line 52) | public Builder isCompleted(boolean isCompleted) {
method createTime (line 57) | public Builder createTime(Date createTime) {
method checksum (line 62) | public Builder checksum(String checksum) {
method checksums (line 67) | public Builder checksums(Iterable<String> checksums) {
method name (line 72) | public Builder name(String name) {
method guid (line 77) | public Builder guid(String guid) {
method build (line 82) | public Sandbox build() {
method Sandbox (line 103) | @ConstructorProperties({ "_rev", "is_completed", "create_time", "check...
method getRev (line 114) | public String getRev() {
method isCompleted (line 118) | public boolean isCompleted() {
method getCreateTime (line 122) | public Date getCreateTime() {
method getChecksums (line 126) | public Set<String> getChecksums() {
method getName (line 130) | public String getName() {
method getGuid (line 134) | public String getGuid() {
method hashCode (line 138) | @Override
method equals (line 151) | @Override
method toString (line 190) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/domain/SearchResult.java
class SearchResult (line 26) | public class SearchResult<T> extends LinkedHashSet<T> {
method SearchResult (line 30) | SearchResult() {
method SearchResult (line 33) | public SearchResult(long start, Iterable<T> results) {
method getStart (line 42) | long getStart() {
FILE: apis/chef/src/main/java/org/jclouds/chef/domain/UploadSandbox.java
class UploadSandbox (line 35) | public class UploadSandbox {
method builder (line 36) | public static Builder builder() {
class Builder (line 40) | public static class Builder {
method uri (line 45) | public Builder uri(URI uri) {
method checksum (line 50) | public Builder checksum(List<Byte> key, ChecksumStatus value) {
method checksums (line 55) | public Builder checksums(Map<List<Byte>, ChecksumStatus> checksums) {
method sandboxId (line 60) | public Builder sandboxId(String sandboxId) {
method build (line 65) | public UploadSandbox build() {
method UploadSandbox (line 75) | @ConstructorProperties({ "uri", "checksums", "sandbox_id" })
method getUri (line 82) | public URI getUri() {
method getChecksums (line 86) | public Map<List<Byte>, ChecksumStatus> getChecksums() {
method getSandboxId (line 90) | public String getSandboxId() {
method hashCode (line 94) | @Override
method equals (line 104) | @Override
method toString (line 131) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/domain/User.java
class User (line 29) | public class User {
method builder (line 30) | public static Builder builder() {
class Builder (line 34) | public static class Builder {
method username (line 43) | public Builder username(String username) {
method firstName (line 48) | public Builder firstName(String firstName) {
method middleName (line 53) | public Builder middleName(String middleName) {
method lastName (line 58) | public Builder lastName(String lastName) {
method displayName (line 63) | public Builder displayName(String displayName) {
method email (line 68) | public Builder email(String email) {
method publicKey (line 73) | public Builder publicKey(PublicKey publicKey) {
method build (line 78) | public User build() {
method User (line 96) | @ConstructorProperties({ "username", "first_name", "middle_name", "las...
method getUsername (line 108) | public String getUsername() {
method getFirstName (line 112) | public String getFirstName() {
method getMiddleName (line 116) | public String getMiddleName() {
method getLastName (line 120) | public String getLastName() {
method getDisplayName (line 124) | public String getDisplayName() {
method getEmail (line 128) | public String getEmail() {
method getPublicKey (line 132) | public PublicKey getPublicKey() {
method hashCode (line 136) | @Override
method equals (line 150) | @Override
method toString (line 214) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/features/OrganizationApi.java
type OrganizationApi (line 52) | @RequestFilters(SignedHeaderAuth.class)
method getUser (line 64) | @Named("user:get")
method listGroups (line 75) | @Named("group:list")
method getGroup (line 88) | @Named("group:get")
method createGroup (line 100) | @Named("group:create")
method updateGroup (line 113) | @Named("group:update")
method deleteGroup (line 125) | @Named("group:delete")
FILE: apis/chef/src/main/java/org/jclouds/chef/filters/SignedHeaderAuth.java
class SignedHeaderAuth (line 68) | @Singleton
method SignedHeaderAuth (line 84) | @Inject
method filter (line 96) | public HttpRequest filter(HttpRequest input) throws HttpException {
method calculateAndReplaceAuthorizationHeaders (line 113) | @VisibleForTesting
method createStringToSign (line 127) | public String createStringToSign(String request, String hashedPath, St...
method hashPath (line 136) | @VisibleForTesting
method canonicalPath (line 150) | @VisibleForTesting
method hashBody (line 156) | @VisibleForTesting
method useTheFilePartIfForm (line 171) | private Payload useTheFilePartIfForm(Payload payload) {
method sign (line 190) | public String sign(String toSign) {
FILE: apis/chef/src/main/java/org/jclouds/chef/functions/BootstrapConfigForGroup.java
class BootstrapConfigForGroup (line 36) | @Singleton
method BootstrapConfigForGroup (line 43) | @Inject
method apply (line 50) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ClientForGroup.java
class ClientForGroup (line 36) | @Singleton
method ClientForGroup (line 40) | @Inject
method apply (line 45) | @Override
method findNextClientName (line 58) | private static String findNextClientName(Set<String> clients, String p...
FILE: apis/chef/src/main/java/org/jclouds/chef/functions/GroupToBootScript.java
class GroupToBootScript (line 54) | @Singleton
method GroupToBootScript (line 64) | @Inject
method apply (line 75) | public Statement apply(String group, @Nullable String nodeName) {
method createClientRbFile (line 102) | private Statement createClientRbFile(String clientRbFile, String group...
method createAttributesFile (line 123) | private Statement createAttributesFile(String chefBootFile, BootstrapC...
method addIfPresent (line 147) | private void addIfPresent(ImmutableList.Builder<String> lines, String ...
FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseCookbookDefinitionFromJson.java
class ParseCookbookDefinitionFromJson (line 31) | @Singleton
method ParseCookbookDefinitionFromJson (line 37) | @Inject
method apply (line 42) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseCookbookDefinitionListFromJson.java
class ParseCookbookDefinitionListFromJson (line 35) | @Singleton
method ParseCookbookDefinitionListFromJson (line 43) | @Inject
method apply (line 48) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseCookbookNamesFromJson.java
class ParseCookbookNamesFromJson (line 35) | @Singleton
method ParseCookbookNamesFromJson (line 41) | @Inject
method apply (line 46) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseCookbookVersionsFromJson.java
class ParseCookbookVersionsFromJson (line 38) | @Singleton
method ParseCookbookVersionsFromJson (line 44) | @Inject
method apply (line 49) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseErrorFromJsonOrReturnBody.java
class ParseErrorFromJsonOrReturnBody (line 30) | @Singleton
method ParseErrorFromJsonOrReturnBody (line 35) | @Inject
method apply (line 40) | @Override
method parse (line 48) | public String parse(String in) {
FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseKeySetFromJson.java
class ParseKeySetFromJson (line 30) | @Singleton
method ParseKeySetFromJson (line 35) | @Inject
method apply (line 40) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchClientsFromJson.java
class ParseSearchClientsFromJson (line 25) | @Singleton
method ParseSearchClientsFromJson (line 30) | @Inject
FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchDatabagFromJson.java
class ParseSearchDatabagFromJson (line 41) | @Singleton
class Row (line 48) | static class Row {
class Response (line 53) | static class Response {
method ParseSearchDatabagFromJson (line 58) | @Inject
method apply (line 64) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchEnvironmentsFromJson.java
class ParseSearchEnvironmentsFromJson (line 25) | @Singleton
method ParseSearchEnvironmentsFromJson (line 30) | @Inject
FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchNodesFromJson.java
class ParseSearchNodesFromJson (line 25) | @Singleton
method ParseSearchNodesFromJson (line 30) | @Inject
FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchResultFromJson.java
class ParseSearchResultFromJson (line 30) | @Singleton
class Response (line 35) | static class Response<T> {
method ParseSearchResultFromJson (line 40) | @Inject
method apply (line 45) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchRolesFromJson.java
class ParseSearchRolesFromJson (line 25) | @Singleton
method ParseSearchRolesFromJson (line 30) | @Inject
FILE: apis/chef/src/main/java/org/jclouds/chef/functions/UriForResource.java
class UriForResource (line 33) | @Singleton
method apply (line 36) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/handlers/ChefApiErrorRetryHandler.java
class ChefApiErrorRetryHandler (line 36) | public class ChefApiErrorRetryHandler implements HttpRetryHandler {
method ChefApiErrorRetryHandler (line 47) | @Inject
method shouldRetryRequest (line 52) | public boolean shouldRetryRequest(HttpCommand command, HttpResponse re...
FILE: apis/chef/src/main/java/org/jclouds/chef/handlers/ChefErrorHandler.java
class ChefErrorHandler (line 37) | @Singleton
method ChefErrorHandler (line 43) | @Inject
method handleError (line 48) | public void handleError(HttpCommand command, HttpResponse response) {
FILE: apis/chef/src/main/java/org/jclouds/chef/internal/BaseChefService.java
class BaseChefService (line 68) | @Singleton
method BaseChefService (line 94) | @Inject
method encrypt (line 124) | @Override
method decrypt (line 131) | @Override
method createBootstrapScriptForGroup (line 138) | @Override
method createBootstrapScriptForGroup (line 143) | @Override
method updateBootstrapConfigForGroup (line 148) | @Override
method buildBootstrapConfiguration (line 167) | @VisibleForTesting
method getBootstrapConfigForGroup (line 172) | @Override
method cleanupStaleNodesAndClients (line 177) | @Override
method createNodeAndPopulateAutomaticAttributes (line 182) | @Override
method updateAutomaticAttributesOnNode (line 187) | @Override
method deleteAllNodesInList (line 192) | @Override
method deleteAllClientsInList (line 197) | @Override
method listNodes (line 202) | @Override
method listNodes (line 207) | @Override
method listClients (line 212) | @Override
method listClients (line 217) | @Override
method listCookbookVersions (line 222) | @Override
method listCookbookVersions (line 227) | @Override
method listCookbookVersionsInEnvironment (line 232) | @Override
method listCookbookVersionsInEnvironment (line 237) | @Override
method listCookbookVersionsInEnvironment (line 243) | @Override
method listCookbookVersionsInEnvironment (line 249) | @Override
method listEnvironments (line 255) | @Override
method listNodesInEnvironment (line 260) | @Override
method listNodesInEnvironment (line 265) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/options/CreateClientOptions.java
class CreateClientOptions (line 22) | public class CreateClientOptions implements Cloneable {
method CreateClientOptions (line 26) | public CreateClientOptions() {
method CreateClientOptions (line 29) | CreateClientOptions(final boolean admin) {
method isAdmin (line 34) | public boolean isAdmin() {
method admin (line 38) | public CreateClientOptions admin() {
method clone (line 43) | @Override
method toString (line 48) | @Override
class Builder (line 53) | public static class Builder {
method admin (line 57) | public static CreateClientOptions admin() {
FILE: apis/chef/src/main/java/org/jclouds/chef/options/SearchOptions.java
class SearchOptions (line 26) | public class SearchOptions extends BaseHttpRequestOptions {
method query (line 31) | public SearchOptions query(String query) {
method sort (line 39) | public SearchOptions sort(String sort) {
method rows (line 47) | public SearchOptions rows(int rows) {
method start (line 55) | public SearchOptions start(int start) {
class Builder (line 60) | public static class Builder {
method query (line 65) | public static SearchOptions query(String query) {
method start (line 73) | public static SearchOptions start(String start) {
method rows (line 81) | public static SearchOptions rows(int rows) {
method start (line 89) | public static SearchOptions start(int start) {
FILE: apis/chef/src/main/java/org/jclouds/chef/predicates/CookbookVersionPredicates.java
class CookbookVersionPredicates (line 37) | public class CookbookVersionPredicates {
method containsRecipe (line 41) | public static Predicate<CookbookVersion> containsRecipe(String recipe) {
method containsRecipes (line 55) | public static Predicate<CookbookVersion> containsRecipes(String... rec...
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/CleanupStaleNodesAndClients.java
type CleanupStaleNodesAndClients (line 27) | @ImplementedBy(CleanupStaleNodesAndClientsImpl.class)
method execute (line 30) | void execute(String prefix, int secondsStale);
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/CreateNodeAndPopulateAutomaticAttributes.java
type CreateNodeAndPopulateAutomaticAttributes (line 28) | @ImplementedBy(CreateNodeAndPopulateAutomaticAttributesImpl.class)
method execute (line 30) | Node execute(Node node);
method execute (line 32) | Node execute(String nodeName, Iterable<String> runList);
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/DeleteAllClientsInList.java
type DeleteAllClientsInList (line 27) | @ImplementedBy(DeleteAllClientsInListImpl.class)
method execute (line 30) | void execute(Iterable<String> names);
method execute (line 32) | void execute(ListeningExecutorService executor, Iterable<String> names);
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/DeleteAllNodesInList.java
type DeleteAllNodesInList (line 24) | @ImplementedBy(DeleteAllNodesInListImpl.class)
method execute (line 27) | void execute(Iterable<String> names);
method execute (line 29) | void execute(ListeningExecutorService executor, Iterable<String> names);
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/ListClients.java
type ListClients (line 25) | @ImplementedBy(ListClientsImpl.class)
method execute (line 28) | Iterable<? extends Client> execute();
method execute (line 30) | Iterable<? extends Client> execute(ExecutorService executor);
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/ListCookbookVersions.java
type ListCookbookVersions (line 25) | @ImplementedBy(ListCookbookVersionsImpl.class)
method execute (line 28) | Iterable<? extends CookbookVersion> execute();
method execute (line 30) | Iterable<? extends CookbookVersion> execute(ExecutorService executor);
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/ListCookbookVersionsInEnvironment.java
type ListCookbookVersionsInEnvironment (line 25) | @ImplementedBy(ListCookbookVersionsInEnvironmentImpl.class)
method execute (line 28) | Iterable<? extends CookbookVersion> execute(String environmentName);
method execute (line 30) | Iterable<? extends CookbookVersion> execute(String environmentName, St...
method execute (line 32) | Iterable<? extends CookbookVersion> execute(ExecutorService executor, ...
method execute (line 34) | Iterable<? extends CookbookVersion> execute(ExecutorService executor, ...
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/ListEnvironments.java
type ListEnvironments (line 25) | @ImplementedBy(ListEnvironmentsImpl.class)
method execute (line 28) | Iterable<? extends Environment> execute();
method execute (line 30) | Iterable<? extends Environment> execute(ExecutorService executor);
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/ListNodes.java
type ListNodes (line 25) | @ImplementedBy(ListNodesImpl.class)
method execute (line 28) | Iterable<? extends Node> execute();
method execute (line 30) | Iterable<? extends Node> execute(ExecutorService executor);
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/ListNodesInEnvironment.java
type ListNodesInEnvironment (line 25) | @ImplementedBy(ListNodesInEnvironmentImpl.class)
method execute (line 28) | Iterable<? extends Node> execute(String environmentName);
method execute (line 30) | Iterable<? extends Node> execute(ExecutorService executor, String envi...
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/UpdateAutomaticAttributesOnNode.java
type UpdateAutomaticAttributesOnNode (line 27) | @ImplementedBy(UpdateAutomaticAttributesOnNodeImpl.class)
method execute (line 30) | void execute(String nodeName);
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/BaseListCookbookVersionsImpl.java
class BaseListCookbookVersionsImpl (line 36) | public abstract class BaseListCookbookVersionsImpl {
method BaseListCookbookVersionsImpl (line 42) | BaseListCookbookVersionsImpl(ChefApi api) {
method execute (line 46) | protected Iterable<? extends CookbookVersion> execute(Iterable<String>...
method executeConcurrently (line 69) | protected Iterable<? extends CookbookVersion> executeConcurrently(fina...
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/BaseListNodesImpl.java
class BaseListNodesImpl (line 35) | public abstract class BaseListNodesImpl {
method BaseListNodesImpl (line 41) | BaseListNodesImpl(ChefApi api) {
method execute (line 45) | protected Iterable<? extends Node> execute(Iterable<String> toGet) {
method executeConcurrently (line 59) | protected Iterable<? extends Node> executeConcurrently(final Listening...
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/CleanupStaleNodesAndClientsImpl.java
class CleanupStaleNodesAndClientsImpl (line 50) | @Singleton
method CleanupStaleNodesAndClientsImpl (line 60) | @Inject
method execute (line 68) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/CreateNodeAndPopulateAutomaticAttributesImpl.java
class CreateNodeAndPopulateAutomaticAttributesImpl (line 42) | @Singleton
method CreateNodeAndPopulateAutomaticAttributesImpl (line 52) | @Inject
method execute (line 59) | @Override
method execute (line 79) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/DeleteAllClientsInListImpl.java
class DeleteAllClientsInListImpl (line 47) | @Singleton
method DeleteAllClientsInListImpl (line 56) | @Inject
method execute (line 62) | @Override
method execute (line 67) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/DeleteAllNodesInListImpl.java
class DeleteAllNodesInListImpl (line 44) | @Singleton
method DeleteAllNodesInListImpl (line 53) | @Inject
method execute (line 59) | @Override
method execute (line 64) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/ListClientsImpl.java
class ListClientsImpl (line 46) | @Singleton
method ListClientsImpl (line 54) | @Inject
method execute (line 59) | @Override
method execute (line 79) | @Override
method execute (line 85) | private Iterable<? extends Client> execute(ListeningExecutorService li...
method executeConcurrently (line 89) | private Iterable<? extends Client> executeConcurrently(final Listening...
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/ListCookbookVersionsImpl.java
class ListCookbookVersionsImpl (line 33) | @Singleton
method ListCookbookVersionsImpl (line 40) | @Inject
method execute (line 45) | @Override
method execute (line 50) | @Override
method executeConcurrently (line 56) | private Iterable<? extends CookbookVersion> executeConcurrently(Listen...
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/ListCookbookVersionsInEnvironmentImpl.java
class ListCookbookVersionsInEnvironmentImpl (line 38) | @Singleton
method ListCookbookVersionsInEnvironmentImpl (line 46) | @Inject
method execute (line 51) | @Override
method execute (line 64) | @Override
method execute (line 77) | @Override
method execute (line 83) | @Override
method executeConcurrently (line 90) | private Iterable<? extends CookbookVersion> executeConcurrently(Listen...
method executeConcurrently (line 104) | private Iterable<? extends CookbookVersion> executeConcurrently(Listen...
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/ListEnvironmentsImpl.java
class ListEnvironmentsImpl (line 50) | @Singleton
method ListEnvironmentsImpl (line 59) | @Inject
method execute (line 65) | @Override
method execute (line 70) | @Override
method execute (line 75) | private Iterable<? extends Environment> execute(ListeningExecutorServi...
method execute (line 79) | private Iterable<? extends Environment> execute(final ListeningExecuto...
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/ListNodesImpl.java
class ListNodesImpl (line 34) | @Singleton
method ListNodesImpl (line 42) | @Inject
method execute (line 47) | @Override
method execute (line 52) | @Override
method executeConcurrently (line 58) | private Iterable<? extends Node> executeConcurrently(ListeningExecutor...
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/ListNodesInEnvironmentImpl.java
class ListNodesInEnvironmentImpl (line 34) | @Singleton
method ListNodesInEnvironmentImpl (line 41) | @Inject
method execute (line 46) | @Override
method execute (line 51) | @Override
method executeConcurrently (line 57) | private Iterable<? extends Node> executeConcurrently(ListeningExecutor...
FILE: apis/chef/src/main/java/org/jclouds/chef/strategy/internal/UpdateAutomaticAttributesOnNodeImpl.java
class UpdateAutomaticAttributesOnNodeImpl (line 42) | @Singleton
method UpdateAutomaticAttributesOnNodeImpl (line 52) | @Inject
method execute (line 58) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/suppliers/ChefVersionSupplier.java
class ChefVersionSupplier (line 39) | @Singleton
method ChefVersionSupplier (line 52) | @Inject
method get (line 57) | @Override
FILE: apis/chef/src/main/java/org/jclouds/chef/util/ChefUtils.java
class ChefUtils (line 36) | public class ChefUtils {
method fromOhaiTime (line 38) | public static Date fromOhaiTime(JsonBall ohaiDate) {
method toOhaiTime (line 42) | public static JsonBall toOhaiTime(long millis) {
method ohaiAutomaticAttributeBinder (line 46) | public static MapBinder<String, Supplier<JsonBall>> ohaiAutomaticAttri...
method findRoleInRunList (line 57) | public static String findRoleInRunList(List<String> runList) {
FILE: apis/chef/src/main/java/org/jclouds/chef/util/CollectionUtils.java
class CollectionUtils (line 32) | public class CollectionUtils {
method copyOfOrEmpty (line 42) | public static <T> ImmutableList<T> copyOfOrEmpty(@Nullable List<T> inp...
method copyOfOrEmpty (line 54) | public static <T> ImmutableSet<T> copyOfOrEmpty(@Nullable Set<T> input) {
method copyOfOrEmpty (line 66) | public static <K, V> ImmutableMap<K, V> copyOfOrEmpty(@Nullable Map<K,...
FILE: apis/chef/src/main/java/org/jclouds/chef/util/RunListBuilder.java
class RunListBuilder (line 33) | public class RunListBuilder {
method addRecipe (line 39) | public RunListBuilder addRecipe(String recipe) {
method addRecipes (line 46) | public RunListBuilder addRecipes(String... recipes) {
method addRole (line 61) | public RunListBuilder addRole(String role) {
method addRoles (line 68) | public RunListBuilder addRoles(String... roles) {
method build (line 80) | public List<String> build() {
FILE: apis/chef/src/main/java/org/jclouds/ohai/AutomaticSupplier.java
class AutomaticSupplier (line 32) | @Singleton
method AutomaticSupplier (line 37) | @Inject
method get (line 43) | @Override
FILE: apis/chef/src/main/java/org/jclouds/ohai/config/JMXOhaiModule.java
class JMXOhaiModule (line 34) | @ConfiguresOhai
method guiceProvideRuntimeMXBean (line 37) | @Provides
method provideRuntimeMXBean (line 43) | protected RuntimeMXBean provideRuntimeMXBean() {
method bindOhai (line 47) | @Override
FILE: apis/chef/src/main/java/org/jclouds/ohai/config/OhaiModule.java
class OhaiModule (line 50) | @ConfiguresOhai
method configure (line 53) | @Override
method guiceProvideAutomatic (line 61) | @Provides
method provideAutomatic (line 67) | protected Supplier<Map<String, JsonBall>> provideAutomatic(AutomaticSu...
method provideAutomatic (line 71) | @Provides
method provideSystemProperties (line 79) | @Named("systemProperties")
method systemProperties (line 85) | protected Properties systemProperties() {
method bindOhai (line 89) | public MapBinder<String, Supplier<JsonBall>> bindOhai() {
class OhaiTimeProvider (line 99) | @Singleton
method OhaiTimeProvider (line 103) | @Inject
method get (line 108) | @Override
method provideMillis (line 115) | @Provides
method millis (line 121) | protected Long millis() {
class SystemPropertiesProvider (line 125) | @Singleton
method SystemPropertiesProvider (line 131) | @Inject
method get (line 137) | @Override
class PlatformProvider (line 144) | @Singleton
method PlatformProvider (line 147) | @Inject
method get (line 152) | @Override
class PlatformVersionProvider (line 160) | @Singleton
method PlatformVersionProvider (line 163) | @Inject
class CurrentUserProvider (line 170) | @Singleton
method CurrentUserProvider (line 173) | @Inject
class SystemPropertyProvider (line 180) | public static class SystemPropertyProvider implements Supplier<JsonBal...
method SystemPropertyProvider (line 184) | @Inject
method get (line 190) | @Override
FILE: apis/chef/src/main/java/org/jclouds/ohai/functions/ByteArrayToMacAddress.java
class ByteArrayToMacAddress (line 36) | @Singleton
method apply (line 39) | @Override
FILE: apis/chef/src/main/java/org/jclouds/ohai/functions/MapSetToMultimap.java
class MapSetToMultimap (line 29) | @Singleton
method apply (line 32) | @Override
FILE: apis/chef/src/main/java/org/jclouds/ohai/functions/NestSlashKeys.java
class NestSlashKeys (line 45) | @Singleton
method NestSlashKeys (line 50) | @Inject
method apply (line 55) | @Override
method mergeSameKeys (line 82) | private Map<String, JsonBall> mergeSameKeys(Multimap<String, Supplier<...
method mergeAsPeer (line 94) | @VisibleForTesting
method putUnderContext (line 126) | void putUnderContext(List<String> keyParts, JsonBall toInsert, Map<Str...
FILE: apis/chef/src/main/java/org/jclouds/ohai/suppliers/UptimeSecondsSupplier.java
class UptimeSecondsSupplier (line 28) | @Singleton
method UptimeSecondsSupplier (line 31) | @Inject
method get (line 38) | @Override
FILE: apis/chef/src/test/java/org/jclouds/chef/BaseChefApiExpectTest.java
class BaseChefApiExpectTest (line 30) | public abstract class BaseChefApiExpectTest<S> extends BaseRestApiExpect...
method BaseChefApiExpectTest (line 35) | public BaseChefApiExpectTest() {
method signed (line 42) | protected HttpRequest signed(HttpRequest input) {
FILE: apis/chef/src/test/java/org/jclouds/chef/ChefApiDelegationTest.java
class ChefApiDelegationTest (line 27) | @Test(groups = "unit", testName = "ChefApiDelegationTest")
method testOrganizationApiNotAvailableInOldVersions (line 30) | public void testOrganizationApiNotAvailableInOldVersions() throws IOEx...
method testOrganizationApiPresentInRecentVersions (line 43) | public void testOrganizationApiPresentInRecentVersions() throws IOExce...
FILE: apis/chef/src/test/java/org/jclouds/chef/ChefApiExpectTest.java
class ChefApiExpectTest (line 43) | @Test(groups = "unit", testName = "ChefApiExpectTest")
method getHttpRequestBuilder (line 46) | private HttpRequest.Builder<?> getHttpRequestBuilder(String method, St...
method testListClientsReturnsValidSet (line 54) | public void testListClientsReturnsValidSet() {
method testListClientsReturnsEmptySetOn404 (line 65) | public void testListClientsReturnsEmptySetOn404() {
method testListNodesReturnsValidSet (line 74) | public void testListNodesReturnsValidSet() {
method testListNodesReturnsEmptySetOn404 (line 85) | public void testListNodesReturnsEmptySetOn404() {
method testListRecipesInEnvironmentReturnsValidSet (line 93) | public void testListRecipesInEnvironmentReturnsValidSet() {
method testListRecipesInEnvironmentReturnsEmptySetOn404 (line 104) | public void testListRecipesInEnvironmentReturnsEmptySetOn404() {
method testListNodesInEnvironmentReturnsValidSet (line 112) | public void testListNodesInEnvironmentReturnsValidSet() {
method testListNodesInEnvironmentReturnsEmptySetOn404 (line 123) | public void testListNodesInEnvironmentReturnsEmptySetOn404() {
method testListCookbooksReturnsValidSet (line 131) | public void testListCookbooksReturnsValidSet() {
method testListCookbooksReturnsEmptySetOn404 (line 142) | public void testListCookbooksReturnsEmptySetOn404() {
method testListCookbooksInEnvironmentReturnsValidSet (line 150) | public void testListCookbooksInEnvironmentReturnsValidSet() {
method testListCookbooksInEnvironmentReturnsEmptySetOn404 (line 160) | public void testListCookbooksInEnvironmentReturnsEmptySetOn404() {
method testListCookbooksInEnvironmentWithNumVersionReturnsEmptySetOn404 (line 168) | public void testListCookbooksInEnvironmentWithNumVersionReturnsEmptySe...
method testSearchRolesReturnsValidResult (line 176) | public void testSearchRolesReturnsValidResult() {
method testSearchRolesReturnsEmptyResult (line 187) | public void testSearchRolesReturnsEmptyResult() {
method testSearchRolesWithOptionsReturnsValidResult (line 197) | public void testSearchRolesWithOptionsReturnsValidResult() {
method testSearchRolesWithOptionsReturnsEmptyResult (line 209) | public void testSearchRolesWithOptionsReturnsEmptyResult() {
method testListRolesReturnsValidSet (line 220) | public void testListRolesReturnsValidSet() {
method testListRolesReturnsEmptySetOn404 (line 231) | public void testListRolesReturnsEmptySetOn404() {
method testListDatabagsReturnsValidSet (line 239) | public void testListDatabagsReturnsValidSet() {
method testListDatabagsReturnsEmptySetOn404 (line 250) | public void testListDatabagsReturnsEmptySetOn404() {
method createModule (line 258) | @Override
class TestChefHttpApiModule (line 263) | @ConfiguresHttpApi
method provideTimeStamp (line 265) | @Override
method createApiMetadata (line 271) | @Override
FILE: apis/chef/src/test/java/org/jclouds/chef/ChefApiLiveTest.java
class ChefApiLiveTest (line 75) | @Test(groups = { "live", "integration" })
method testCreateNewCookbook (line 87) | public void testCreateNewCookbook() throws Exception {
method uploadAndGetFilePayload (line 113) | private FilePayload uploadAndGetFilePayload(File file) throws IOExcept...
method testListCookbooks (line 143) | public void testListCookbooks() throws Exception {
method testListCookbookVersionsWithChefService (line 158) | @Test(dependsOnMethods = "testListCookbooks")
method testDownloadCookbooks (line 164) | @Test(dependsOnMethods = "testListCookbookVersionsWithChefService")
method testUpdateCookbook (line 182) | @Test(dependsOnMethods = "testCreateNewCookbook")
method testDeleteCookbook (line 189) | @Test(dependsOnMethods = { "testCreateNewCookbook", "testUpdateCookboo...
method testCreateClient (line 194) | @Test
method testCreateAdminClient (line 201) | @Test
method testGenerateKeyForClient (line 208) | @Test(dependsOnMethods = "testCreateClient")
method testListNodes (line 214) | @Test
method testCreateNode (line 220) | @Test(dependsOnMethods = "testCreateRole")
method testUpdateNode (line 231) | @Test(dependsOnMethods = "testCreateNode")
method testListRoles (line 239) | @Test
method testCreateRole (line 245) | @Test
method testUpdateRole (line 270) | @Test(dependsOnMethods = "testCreateRole")
method testListDatabags (line 278) | @Test
method testCreateDatabag (line 284) | @Test
method testListDatabagItems (line 290) | @Test(dependsOnMethods = "testCreateDatabagItem")
method testCreateDatabagItem (line 296) | @Test(dependsOnMethods = "testCreateDatabag")
method testUpdateDatabagItem (line 315) | @Test(dependsOnMethods = "testCreateDatabagItem")
method testDeleteDatabagItem (line 323) | @Test(dependsOnMethods = "testSearchDatabagWithOptions")
method testListSearchIndexes (line 333) | @Test
method testSearchNodes (line 342) | @Test
method testSearchNodesWithOptions (line 348) | @Test(dependsOnMethods = { "testListSearchIndexes", "testCreateNode" })
method testSearchClients (line 370) | @Test
method testSearchClientsWithOptions (line 376) | @Test(dependsOnMethods = { "testListSearchIndexes", "testCreateClient" })
method testSearchRoles (line 398) | @Test
method testSearchRolesWithOptions (line 404) | @Test(dependsOnMethods = { "testListSearchIndexes", "testCreateRole" })
method testSearchDatabag (line 426) | @Test(dependsOnMethods = { "testListSearchIndexes", "testCreateDatabag...
method testSearchDatabagWithOptions (line 432) | @Test(dependsOnMethods = { "testListSearchIndexes", "testCreateDatabag...
method testSearchDatabagNotFound (line 454) | @Test(expectedExceptions = ResourceNotFoundException.class, dependsOnM...
method testCreateEnvironment (line 460) | @Test
method testListEnvironment (line 470) | @Test(dependsOnMethods = "testCreateEnvironment")
method testSearchEnvironments (line 477) | @Test(dependsOnMethods = "testCreateEnvironment")
method testSearchEnvironmentsWithOptions (line 483) | @Test(dependsOnMethods = { "testListSearchIndexes", "testCreateEnviron...
method testListRecipesInEnvironment (line 505) | @Test(dependsOnMethods = "testCreateEnvironment")
method testListNodesInEnvironment (line 511) | @Test(dependsOnMethods = "testCreateEnvironment")
method testListCookbooksInEnvironment (line 521) | @Test(dependsOnMethods = "testCreateNewCookbook")
method tearDown (line 531) | @AfterClass(groups = { "live", "integration" })
method assertClientCreated (line 544) | private void assertClientCreated(String identity, String credential) {
FILE: apis/chef/src/test/java/org/jclouds/chef/ChefApiMetadataTest.java
class ChefApiMetadataTest (line 26) | @Test(groups = "unit", testName = "ChefApiMetadataTest")
method ChefApiMetadataTest (line 30) | public ChefApiMetadataTest() {
FILE: apis/chef/src/test/java/org/jclouds/chef/ChefApiTest.java
class ChefApiTest (line 73) | @Test(groups = { "unit" })
method testCommitSandbox (line 76) | public void testCommitSandbox() throws SecurityException, NoSuchMethod...
method testCreateUploadSandboxForChecksums (line 95) | public void testCreateUploadSandboxForChecksums() throws SecurityExcep...
method testUploadContent (line 115) | public void testUploadContent() throws SecurityException, NoSuchMethod...
method testGetCookbook (line 132) | public void testGetCookbook() throws SecurityException, NoSuchMethodEx...
method testDeleteCookbook (line 149) | public void testDeleteCookbook() throws SecurityException, NoSuchMetho...
method testUpdateCookbook (line 166) | public void testUpdateCookbook() throws SecurityException, NoSuchMetho...
method testListVersionsOfCookbook (line 192) | public void testListVersionsOfCookbook() throws SecurityException, NoS...
method testDeleteClient (line 210) | public void testDeleteClient() throws SecurityException, NoSuchMethodE...
method testCreateApi (line 227) | public void testCreateApi() throws SecurityException, NoSuchMethodExce...
method testCreateAdminApi (line 244) | public void testCreateAdminApi() throws SecurityException, NoSuchMetho...
method testGenerateKeyForClient (line 262) | public void testGenerateKeyForClient() throws SecurityException, NoSuc...
method testDeleteNode (line 279) | public void testDeleteNode() throws SecurityException, NoSuchMethodExc...
method testCreateNode (line 295) | public void testCreateNode() throws SecurityException, NoSuchMethodExc...
method testUpdateNode (line 318) | public void testUpdateNode() throws SecurityException, NoSuchMethodExc...
method testDeleteRole (line 341) | public void testDeleteRole() throws SecurityException, NoSuchMethodExc...
method testCreateRole (line 357) | public void testCreateRole() throws SecurityException, NoSuchMethodExc...
method testUpdateRole (line 382) | public void testUpdateRole() throws SecurityException, NoSuchMethodExc...
method testDeleteDatabag (line 407) | public void testDeleteDatabag() throws SecurityException, NoSuchMethod...
method testCreateDatabag (line 424) | public void testCreateDatabag() throws SecurityException, NoSuchMethod...
method testDeleteDatabagItem (line 441) | public void testDeleteDatabagItem() throws SecurityException, NoSuchMe...
method testCreateDatabagItemThrowsIllegalArgumentOnPrimitive (line 457) | @Test(expectedExceptions = IllegalArgumentException.class)
method testCreateDatabagItemThrowsIllegalArgumentOnWrongId (line 481) | @Test(expectedExceptions = IllegalArgumentException.class)
method testCreateDatabagItem (line 505) | public void testCreateDatabagItem() throws SecurityException, NoSuchMe...
method testCreateDatabagItemEvenWhenUserForgotId (line 523) | public void testCreateDatabagItemEvenWhenUserForgotId() throws Securit...
method testUpdateDatabagItem (line 541) | public void testUpdateDatabagItem() throws SecurityException, NoSuchMe...
method testListDatabagItems (line 560) | public void testListDatabagItems() throws SecurityException, NoSuchMet...
method testListSearchIndexes (line 577) | public void testListSearchIndexes() throws SecurityException, NoSuchMe...
method testSearchClients (line 595) | public void testSearchClients() throws SecurityException, NoSuchMethod...
method testSearchClientsWithOptions (line 612) | public void testSearchClientsWithOptions() throws SecurityException, N...
method testSearchNodes (line 630) | public void testSearchNodes() throws SecurityException, NoSuchMethodEx...
method testSearchNodesWithOptions (line 647) | public void testSearchNodesWithOptions() throws SecurityException, NoS...
method testSearchDatabagItems (line 665) | public void testSearchDatabagItems() throws SecurityException, NoSuchM...
method testSearchDatabagItemsWithOptions (line 682) | public void testSearchDatabagItemsWithOptions() throws SecurityExcepti...
method testGetResourceContents (line 700) | public void testGetResourceContents() throws SecurityException, NoSuch...
method checkFilters (line 718) | @Override
method createModule (line 724) | @Override
method setupProperties (line 729) | @Override
class TestChefHttpApiModule (line 736) | @ConfiguresHttpApi
method provideTimeStamp (line 738) | @Override
method createApiMetadata (line 744) | @Override
FILE: apis/chef/src/test/java/org/jclouds/chef/binders/BindGroupToUpdateRequestJsonPayloadTest.java
class BindGroupToUpdateRequestJsonPayloadTest (line 40) | @Test(groups = "unit", testName = "BindGroupToUpdateRequestJsonPayloadTe...
method configure (line 44) | @Override
method testInvalidNullInput (line 52) | @Test(expectedExceptions = NullPointerException.class)
method testInvalidTypeInput (line 58) | @Test(expectedExceptions = IllegalArgumentException.class)
method testBindOnlyName (line 64) | public void testBindOnlyName() throws IOException {
method testBindNameAndLists (line 72) | public void testBindNameAndLists() throws IOException {
FILE: apis/chef/src/test/java/org/jclouds/chef/binders/BindHexEncodedMD5sToJsonPayloadTest.java
class BindHexEncodedMD5sToJsonPayloadTest (line 39) | @Test(groups = { "unit" })
method configure (line 43) | @Override
method testMustBeIterable (line 51) | @Test(expectedExceptions = IllegalArgumentException.class)
method testCorrect (line 57) | public void testCorrect() {
method testNullIsBad (line 64) | @Test(expectedExceptions = { NullPointerException.class, IllegalStateE...
FILE: apis/chef/src/test/java/org/jclouds/chef/binders/GroupNameTest.java
class GroupNameTest (line 29) | @Test(groups = "unit", testName = "GroupNameTest")
method testInvalidNullInput (line 32) | @Test(expectedExceptions = NullPointerException.class)
method testApplyGroupName (line 37) | public void testApplyGroupName() throws IOException {
FILE: apis/chef/src/test/java/org/jclouds/chef/config/ChefParserModuleTest.java
class ChefParserModuleTest (line 40) | @Test(groups = "unit", testName = "ChefParserModuleTest")
class KeyValue (line 43) | private static class KeyValue {
method KeyValue (line 47) | private KeyValue(String key, String value) {
method hashCode (line 52) | @Override
method equals (line 57) | @Override
method testKeepLastRepeatedKeyMapTypeAdapter (line 77) | public void testKeepLastRepeatedKeyMapTypeAdapter() {
method testListInMap (line 103) | public void testListInMap() {
FILE: apis/chef/src/test/java/org/jclouds/chef/domain/RoleTest.java
class RoleTest (line 34) | @Test(groups = { "unit" })
method canNotAddEnvRunListMapThatIsNull (line 36) | @Test(expectedExceptions = NullPointerException.class)
method canNotAddRunListForEnvironmentThatIsNull (line 41) | @Test(expectedExceptions = NullPointerException.class)
method canNotUseNullEnvNameWhenAddingEnvRunListEntry (line 46) | @Test(expectedExceptions = NullPointerException.class)
method canNotUseNullEntryWhenAddingEnvRunListEntry (line 51) | @Test(expectedExceptions = NullPointerException.class)
method multipleEnvRunListsCanBePopulated (line 56) | public void multipleEnvRunListsCanBePopulated() {
method envRunListOnNewlyBuiltRoleIsImmutable (line 72) | @Test(expectedExceptions = UnsupportedOperationException.class)
method envRunListEntriesOnNewlyBuiltRoleIsImmutable (line 79) | @Test(expectedExceptions = UnsupportedOperationException.class)
method rolesWithSameEnvRunListAreEqual (line 86) | public void rolesWithSameEnvRunListAreEqual() {
method rolesWithDifferentEnvRunListAreNotEqual (line 98) | public void rolesWithDifferentEnvRunListAreNotEqual() {
method verifyRunListForEnvironment (line 110) | @Test(enabled = false)
FILE: apis/chef/src/test/java/org/jclouds/chef/features/OrganizationApiExpectTest.java
class OrganizationApiExpectTest (line 48) | @Test(groups = "unit", testName = "OrganizationApiExpectTest")
method testGetUserReturns2xx (line 51) | public void testGetUserReturns2xx() {
method testGetUserReturns404 (line 67) | public void testGetUserReturns404() {
method testListGroups (line 79) | public void testListGroups() {
method testGetGroupReturns2xx (line 95) | public void testGetGroupReturns2xx() {
method testGetGroupReturns404 (line 111) | public void testGetGroupReturns404() {
method testCreateGroupReturns2xx (line 123) | public void testCreateGroupReturns2xx() {
method testDeleteGroupReturns2xx (line 136) | public void testDeleteGroupReturns2xx() {
method testDeleteGroupFailsOn404 (line 148) | @Test(expectedExceptions = HttpResponseException.class)
method testUpdateGroupReturns2xx (line 161) | public void testUpdateGroupReturns2xx() {
method testUpdateGroupFailsOn404 (line 175) | @Test(expectedExceptions = ResourceNotFoundException.class)
method createModule (line 190) | @Override
class TestChefHttpApiModule (line 195) | @ConfiguresHttpApi
method provideTimeStamp (line 197) | @Override
method createApiMetadata (line 203) | @Override
FILE: apis/chef/src/test/java/org/jclouds/chef/features/OrganizationApiLiveTest.java
class OrganizationApiLiveTest (line 39) | @Test(groups = "live", singleThreaded = true, testName = "OrganizationAp...
method skipIfApiNotAvailable (line 45) | @BeforeMethod
method testGetUser (line 54) | public void testGetUser() {
method testGetUnexistingUser (line 60) | public void testGetUnexistingUser() {
method testListGroups (line 65) | public void testListGroups() {
method testGetUnexistingGroup (line 71) | public void testGetUnexistingGroup() {
method testCreateGroup (line 76) | public void testCreateGroup() {
method testUpdateGroup (line 83) | @Test(dependsOnMethods = "testCreateGroup")
method testUpdateUnexistingGroup (line 103) | @Test(expectedExceptions = ResourceNotFoundException.class)
method testDeleteGroup (line 108) | @Test(dependsOnMethods = "testUpdateGroup", alwaysRun = true)
method testDeleteUnexistingGroup (line 115) | @Test(expectedExceptions = ResourceNotFoundException.class)
FILE: apis/chef/src/test/java/org/jclouds/chef/filters/SignedHeaderAuthTest.java
class SignedHeaderAuthTest (line 56) | @Test(groups = { "unit" })
method canonicalizedPathRemovesMultipleSlashes (line 118) | @Test
method canonicalizedPathRemovesTrailingSlash (line 123) | @Test
method shouldGenerateTheCorrectStringToSignAndSignature (line 128) | @Test
method shouldGenerateTheCorrectStringToSignAndSignatureWithNoBody (line 149) | @Test
method shouldNotChokeWhenSigningARequestForAResourceWithALongName (line 161) | @Test
method shouldReplacePercentage3FWithQuestionMarkAtUrl (line 172) | @Test
method createFilter (line 190) | @BeforeClass
FILE: apis/chef/src/test/java/org/jclouds/chef/functions/BootstrapConfigForGroupTest.java
class BootstrapConfigForGroupTest (line 40) | @Test(groups = "unit", testName = "BootstrapConfigForGroupTest")
method setup (line 45) | @BeforeClass
method testWhenNoDatabagItem (line 51) | @Test(expectedExceptions = IllegalStateException.class)
method testReturnsItem (line 66) | @Test
FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ClientForGroupTest.java
class ClientForGroupTest (line 34) | @Test(groups = "unit", testName = "ClientForGroupTest")
method testWhenNoClientsInList (line 37) | public void testWhenNoClientsInList() throws IOException {
method testWhenClientsInListAddsToEnd (line 60) | public void testWhenClientsInListAddsToEnd() throws IOException {
method testWhenClientsInListReplacesMissing (line 84) | public void testWhenClientsInListReplacesMissing() throws IOException {
FILE: apis/chef/src/test/java/org/jclouds/chef/functions/GroupToBootScriptTest.java
class GroupToBootScriptTest (line 62) | @Test(groups = "unit", testName = "GroupToBootScriptTest")
method setup (line 69) | @BeforeClass
method testMustHaveValidatorName (line 96) | @Test(expectedExceptions = IllegalStateException.class)
method testMustHaveValidatorCredential (line 105) | @Test(expectedExceptions = IllegalStateException.class)
method testMustHaveRunScriptsName (line 113) | @Test(expectedExceptions = IllegalArgumentException.class, expectedExc...
method testMustHaveRunScriptsValue (line 122) | @Test(expectedExceptions = NullPointerException.class, expectedExcepti...
method testOneRecipe (line 131) | public void testOneRecipe() throws IOException {
method testOneRecipeAndEnvironment (line 151) | public void testOneRecipeAndEnvironment() throws IOException {
method testOneRecipeOmnibus (line 171) | public void testOneRecipeOmnibus() throws IOException {
method testOneRecipeAndEnvironmentOmnibus (line 189) | public void testOneRecipeAndEnvironmentOmnibus() throws IOException {
method testNoAttribtues (line 207) | public void testNoAttribtues() throws IOException {
method testCustomNodeName (line 225) | public void testCustomNodeName() throws IOException {
method testCustomSecurityOptions (line 243) | public void testCustomSecurityOptions() throws IOException {
method exitInsteadOfReturn (line 263) | private static String exitInsteadOfReturn(OsFamily family, String inpu...
method groupToBootScriptFor (line 267) | private GroupToBootScript groupToBootScriptFor(BootstrapConfig config,...
method readContent (line 274) | private static String readContent(String resource) throws IOException {
FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseClientFromJsonTest.java
class ParseClientFromJsonTest (line 60) | @Test(groups = { "unit" })
method setUpInjector (line 71) | @BeforeTest
method testClientWithPubKey (line 91) | public void testClientWithPubKey() throws IOException, CertificateExce...
method testClientWithoutPubKey (line 101) | public void testClientWithoutPubKey() throws IOException, CertificateE...
method testEncryptionWithClientPriv (line 111) | @SuppressWarnings("resource")
FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseCookbookDefinitionFromJsonTest.java
class ParseCookbookDefinitionFromJsonTest (line 38) | @Test(groups = { "unit" }, singleThreaded = true)
method setUpInjector (line 44) | @BeforeTest
method testCookbokDefinitionParsing (line 56) | public void testCookbokDefinitionParsing() throws URISyntaxException {
FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseCookbookDefinitionListFromJsonTest.java
class ParseCookbookDefinitionListFromJsonTest (line 39) | @Test(groups = {"unit"}, singleThreaded = true)
method setUpInjector (line 44) | @BeforeTest
method testCookbokDefinitionListParsing (line 56) | public void testCookbokDefinitionListParsing() throws URISyntaxExcepti...
FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseCookbookNamesFromJsonTest.java
class ParseCookbookNamesFromJsonTest (line 39) | @Test(groups = { "unit" }, singleThreaded = true)
method setUpInjector (line 44) | @BeforeTest
method testParse010Response (line 56) | public void testParse010Response() {
FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseCookbookVersionFromJsonTest.java
class ParseCookbookVersionFromJsonTest (line 48) | @Test(groups = { "unit" }, singleThreaded = true)
method setUpInjector (line 55) | @BeforeTest
method testBrew (line 69) | public void testBrew() throws IOException {
method testTomcat (line 77) | public void testTomcat() {
method testMysql (line 85) | public void testMysql() throws IOException {
method testApache (line 93) | public void testApache() {
FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseCookbookVersionsFromJsonTest.java
class ParseCookbookVersionsFromJsonTest (line 39) | @Test(groups = { "unit" }, singleThreaded = true)
method setUpInjector (line 44) | @BeforeTest
method testRegex (line 56) | public void testRegex() {
FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseDataBagItemFromJsonTest.java
class ParseDataBagItemFromJsonTest (line 40) | @Test(groups = { "unit" })
method setUpInjector (line 45) | @BeforeTest
method test1 (line 59) | public void test1() {
FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseErrorFromJsonOrReturnBodyTest.java
class ParseErrorFromJsonOrReturnBodyTest (line 29) | @Test(groups = { "unit" })
method testApplyInputStreamDetails (line 32) | @Test
FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseKeySetFromJsonTest.java
class ParseKeySetFromJsonTest (line 39) | @Test(groups = { "unit" }, singleThreaded = true)
method setUpInjector (line 44) | @BeforeTest
method testRegex (line 56) | public void testRegex() {
FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseNodeFromJsonTest.java
class ParseNodeFromJsonTest (line 43) | @Test(groups = { "unit" }, singleThreaded = true)
method setUpInjector (line 48) | @BeforeTest
method test (line 61) | public void test() {
FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseSandboxFromJsonTest.java
class ParseSandboxFromJsonTest (line 43) | @Test(groups = { "unit" }, singleThreaded = true)
method setUpInjector (line 49) | @BeforeTest
method test (line 63) | public void test() {
FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseSearchDataBagItemFromJsonTest.java
class ParseSearchDataBagItemFromJsonTest (line 37) | @Test(groups = { "unit" })
method setUpInjector (line 41) | @BeforeTest
method test1 (line 53) | public void test1() {
FILE: apis/chef/src/test/java/org/jclouds/chef/functions/ParseUploadSandboxFromJsonTest.java
class ParseUploadSandboxFromJsonTest (line 46) | @Test(groups = { "unit" }, singleThreaded = true)
method setUpInjector (line 52) | @BeforeTest
method test (line 65) | public void test() {
FILE: apis/chef/src/test/java/org/jclouds/chef/functions/UriForResourceTest.java
class UriForResourceTest (line 31) | @Test(groups = { "unit" })
method testWithNullInput (line 34) | @Test(expectedExceptions = NullPointerException.class)
method testWithInvalidInput (line 40) | @Test(expectedExceptions = IllegalArgumentException.class)
method testWithValidResource (line 46) | @Test
FILE: apis/chef/src/test/java/org/jclouds/chef/handlers/ChefApiErrorRetryHandlerTest.java
class ChefApiErrorRetryHandlerTest (line 33) | @Test(groups = { "unit" })
method test401DoesNotRetry (line 35) | @Test
method test400DoesNotRetry (line 59) | @Test
method testRetryOn400PutSandbox (line 83) | @Test
FILE: apis/chef/src/test/java/org/jclouds/chef/internal/BaseChefLiveTest.java
class BaseChefLiveTest (line 35) | @Test(groups = "live")
method BaseChefLiveTest (line 42) | protected BaseChefLiveTest() {
method setupProperties (line 49) | @Override
method initialize (line 56) | @Override
method create (line 63) | @Override
method setCredentialFromPemFile (line 69) | protected String setCredentialFromPemFile(Properties overrides, String...
FILE: apis/chef/src/test/java/org/jclouds/chef/internal/BaseChefServiceTest.java
class BaseChefServiceTest (line 42) | @Test(groups = "unit", testName = "BaseChefServiceTest")
method setup (line 47) | @BeforeClass
method testBuildBootstrapConfigurationWithEmptyRunlist (line 56) | public void testBuildBootstrapConfigurationWithEmptyRunlist() {
method testBuildBootstrapConfigurationWithRunlist (line 62) | public void testBuildBootstrapConfigurationWithRunlist() {
method testBuildBootstrapConfigurationWithRunlistAndEmptyAttributes (line 69) | public void testBuildBootstrapConfigurationWithRunlistAndEmptyAttribut...
method testBuildBootstrapConfigurationWithRunlistAndAttributes (line 77) | public void testBuildBootstrapConfigurationWithRunlistAndAttributes() {
method testBuildBootstrapConfigurationWithRunlistAndAttributesAndEnvironment (line 86) | public void testBuildBootstrapConfigurationWithRunlistAndAttributesAnd...
FILE: apis/chef/src/test/java/org/jclouds/chef/strategy/internal/CleanupStaleNodesAndClientsImplLiveTest.java
class CleanupStaleNodesAndClientsImplLiveTest (line 30) | @Test(groups = "live", testName = "CleanupStaleNodesAndClientsImplLiveTe...
method initialize (line 36) | @Override
method testExecute (line 44) | @Test
FILE: apis/chef/src/test/java/org/jclouds/chef/strategy/internal/CreateNodeAndPopulateAutomaticAttributesImplLiveTest.java
class CreateNodeAndPopulateAutomaticAttributesImplLiveTest (line 34) | @Test(groups = "live", testName = "CreateNodeAndPopulateAutomaticAttribu...
method initialize (line 40) | @Override
method testExecute (line 48) | @Test
FILE: apis/chef/src/test/java/org/jclouds/chef/strategy/internal/CreateNodeAndPopulateAutomaticAttributesImplTest.java
class CreateNodeAndPopulateAutomaticAttributesImplTest (line 38) | @Test(groups = "unit", testName = "CreateNodeAndPopulateAutomaticAttribu...
method testWithNoRunlist (line 41) | @Test
FILE: apis/chef/src/test/java/org/jclouds/chef/strategy/internal/DeleteAllApisAndNodesInListImplLiveTest.java
class DeleteAllApisAndNodesInListImplLiveTest (line 30) | @Test(groups = "live", testName = "DeleteAllApisAndNodesInListImplLiveTe...
method initialize (line 36) | @Override
method testExecute (line 44) | @Test
FILE: apis/chef/src/test/java/org/jclouds/chef/strategy/internal/ListCookbookVersionsInEnvironmentImplLiveTest.java
class ListCookbookVersionsInEnvironmentImplLiveTest (line 50) | @Test(groups = "live", testName = "ListCookbookVersionsInEnvironmentImpl...
method initialize (line 58) | @Override
method tearDown (line 74) | @AfterClass(groups = { "integration", "live" })
method testExecute (line 88) | @Test
method testExecuteConcurrentlyWithExecutorService (line 93) | @Test
method testExecuteConcurrentlyWithListeningExecutorService (line 99) | @Test
method testExecuteWithNumVersions (line 105) | @Test
method testExecuteConcurrentlyWithNumVersionsAndExecutorService (line 110) | @Test
method testExecuteConcurrentlyWithNumVersionsAndListeningExecutorService (line 116) | @Test
method testExecuteWithNumVersionsAll (line 122) | @Test
method testExecuteConcurrentlyWithNumVersionsAllAndExecutorService (line 127) | @Test
method testExecuteConcurrentlyWithNumVersionsAllAndListeningExecutorService (line 133) | @Test
method uploadContent (line 139) | private FilePayload uploadContent(String fileName) throws Exception {
method createCookbooksWithMultipleVersions (line 172) | private void createCookbooksWithMultipleVersions(String cookbookName) ...
FILE: apis/chef/src/test/java/org/jclouds/chef/strategy/internal/ListNodesImplLiveTest.java
class ListNodesImplLiveTest (line 36) | @Test(groups = "live", testName = "ListNodesImplLiveTest")
method initialize (line 45) | @Override
method tearDown (line 57) | @AfterClass(groups = { "integration", "live" })
method testExecute (line 69) | @Test
method testExecuteConcurrentlyWithExecutorService (line 74) | public void testExecuteConcurrentlyWithExecutorService() {
method testExecuteConcurrentlyWithListeningExecutorService (line 78) | public void testExecuteConcurrentlyWithListeningExecutorService() {
FILE: apis/chef/src/test/java/org/jclouds/chef/strategy/internal/ListNodesInEnvironmentImplLiveTest.java
class ListNodesInEnvironmentImplLiveTest (line 36) | @Test(groups = "live", testName = "ListNodesInEnvironmentImplLiveTest")
method initialize (line 45) | @Override
method tearDown (line 58) | @AfterClass(groups = { "integration", "live" })
method testExecute (line 70) | @Test
method testExecuteConcurrentlyWithExecutorService (line 75) | @Test
method testExecuteConcurrentlyWithListeningExecutorService (line 81) | @Test
FILE: apis/chef/src/test/java/org/jclouds/chef/strategy/internal/UpdateAutomaticAttributesOnNodeImplLiveTest.java
class UpdateAutomaticAttributesOnNodeImplLiveTest (line 33) | @Test(groups = "live", testName = "UpdateAutomaticAttributesOnNodeImplLi...
method initialize (line 39) | @Override
method testExecute (line 47) | @Test
FILE: apis/chef/src/test/java/org/jclouds/chef/strategy/internal/UpdateAutomaticAttributesOnNodeImplTest.java
class UpdateAutomaticAttributesOnNodeImplTest (line 38) | @Test(groups = { "unit" })
method test (line 41) | @Test
FILE: apis/chef/src/test/java/org/jclouds/chef/suppliers/ChefVersionSupplierTest.java
class ChefVersionSupplierTest (line 27) | @Test(groups = "unit", testName = "ChefVersionSupplierTest")
method testReturnsDefaultVersion (line 30) | public void testReturnsDefaultVersion() {
method testReturnsMajorVersionIfNotZero (line 36) | public void testReturnsMajorVersionIfNotZero() {
method testReturnsMinorVersionIfMajorIsZero (line 42) | public void testReturnsMinorVersionIfMajorIsZero() {
FILE: apis/chef/src/test/java/org/jclouds/chef/util/ChefUtilsTest.java
class ChefUtilsTest (line 32) | @Test(groups = { "unit" }, singleThreaded = true)
method testToOhaiTime (line 38) | public void testToOhaiTime() {
method testFromOhaiTime (line 42) | public void testFromOhaiTime() {
method testFindRoleInRunListThrowsNoSuchElementOnRecipe (line 47) | @Test(expectedExceptions = NoSuchElementException.class)
method testFindRoleInRunList (line 52) | public void testFindRoleInRunList() {
FILE: apis/chef/src/test/java/org/jclouds/chef/util/RunListBuilderTest.java
class RunListBuilderTest (line 28) | public class RunListBuilderTest {
method testRecipeAndRole (line 30) | @Test
method testRecipe (line 37) | @Test
method testRecipes (line 44) | @Test
method testRole (line 51) | @Test
method testRoles (line 58) | @Test
method testNoneRecipe (line 65) | @Test
FILE: apis/chef/src/test/java/org/jclouds/ohai/config/JMXTest.java
class JMXTest (line 46) | @Test(groups = { "unit" })
method test (line 49) | @Test
class Ohai (line 74) | static class Ohai {
method Ohai (line 77) | @Inject
FILE: apis/chef/src/test/java/org/jclouds/ohai/config/OhaiModuleTest.java
class OhaiModuleTest (line 49) | @Test(groups = { "unit" })
method test (line 52) | @Test
method test2modules (line 87) | public void test2modules() throws SocketException {
class Ohai (line 139) | static class Ohai {
method Ohai (line 142) | @Inject
FILE: apis/chef/src/test/java/org/jclouds/ohai/functions/ByteArrayToMacAddressTest.java
class ByteArrayToMacAddressTest (line 27) | @Test(groups = { "unit" }, singleThreaded = true)
method test (line 30) | public void test() {
FILE: apis/chef/src/test/java/org/jclouds/ohai/functions/NestSlashKeysTest.java
class NestSlashKeysTest (line 42) | @Test(groups = "unit", testName = "NestSlashKeysTest")
method setUpInjector (line 48) | @BeforeTest
method testBase (line 60) | @Test
method testIllegal (line 67) | @Test(expectedExceptions = IllegalArgumentException.class)
method testOne (line 73) | @Test
method testOneDuplicate (line 82) | @Test
method testMerge (line 91) | @Test
method testMergeNestedTwice (line 100) | @Test
method testReplaceList (line 109) | @Test
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/AsyncJobException.java
class AsyncJobException (line 19) | public class AsyncJobException extends RuntimeException {
method AsyncJobException (line 21) | public AsyncJobException() {
method AsyncJobException (line 24) | public AsyncJobException(String s) {
method AsyncJobException (line 28) | public AsyncJobException(String s, Throwable throwable) {
method AsyncJobException (line 32) | public AsyncJobException(Throwable throwable) {
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/CloudStackApi.java
type CloudStackApi (line 54) | public interface CloudStackApi extends Closeable {
method getZoneApi (line 58) | @Delegate
method getTemplateApi (line 64) | @Delegate
method getOfferingApi (line 71) | @Delegate
method getNetworkApi (line 77) | @Delegate
method getVirtualMachineApi (line 83) | @Delegate
method getSecurityGroupApi (line 89) | @Delegate
method getAsyncJobApi (line 95) | @Delegate
method getAddressApi (line 101) | @Delegate
method getNATApi (line 107) | @Delegate
method getFirewallApi (line 113) | @Delegate
method getLoadBalancerApi (line 119) | @Delegate
method getGuestOSApi (line 125) | @Delegate
method getHypervisorApi (line 131) | @Delegate
method getConfigurationApi (line 137) | @Delegate
method getAccountApi (line 143) | @Delegate
method getSSHKeyPairApi (line 149) | @Delegate
method getVMGroupApi (line 155) | @Delegate
method getEventApi (line 161) | @Delegate
method getLimitApi (line 167) | @Delegate
method getISOApi (line 173) | @Delegate
method getVolumeApi (line 179) | @Delegate
method getSnapshotApi (line 185) | @Delegate
method getSessionApi (line 191) | @Delegate
method getProjectApi (line 197) | @Delegate
method getTagApi (line 203) | @Delegate
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/CloudStackApiMetadata.java
class CloudStackApiMetadata (line 36) | @AutoService(ApiMetadata.class)
method toBuilder (line 39) | @Override
method CloudStackApiMetadata (line 44) | public CloudStackApiMetadata() {
method CloudStackApiMetadata (line 48) | protected CloudStackApiMetadata(Builder builder) {
method defaultProperties (line 52) | public static Properties defaultProperties() {
class Builder (line 60) | public static class Builder extends BaseHttpApiMetadata.Builder<CloudS...
method Builder (line 62) | @SuppressWarnings("deprecation")
method build (line 79) | @Override
method self (line 84) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/CloudStackContext.java
type CloudStackContext (line 24) | @ImplementedBy(CloudStackContextImpl.class)
method getApi (line 27) | CloudStackApi getApi();
method getDomainApi (line 29) | CloudStackDomainApi getDomainApi();
method getGlobalApi (line 31) | CloudStackGlobalApi getGlobalApi();
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/CloudStackDomainApi.java
type CloudStackDomainApi (line 33) | public interface CloudStackDomainApi extends CloudStackApi {
method getLimitApi (line 38) | @Delegate
method getAccountApi (line 45) | @Delegate
method getUserClient (line 52) | @Delegate
method getDomainClient (line 58) | @Delegate
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/CloudStackGlobalApi.java
type CloudStackGlobalApi (line 42) | public interface CloudStackGlobalApi extends CloudStackDomainApi {
method getAccountApi (line 47) | @Delegate
method getUserClient (line 54) | @Delegate
method getAlertClient (line 61) | @Delegate
method getCapacityClient (line 67) | @Delegate
method getOfferingApi (line 73) | @Delegate
method getHostClient (line 80) | @Delegate
method getStoragePoolClient (line 86) | @Delegate
method getUsageClient (line 92) | @Delegate
method getConfigurationApi (line 98) | @Delegate
method getDomainClient (line 105) | @Delegate
method getZoneApi (line 112) | @Delegate
method getPodClient (line 119) | @Delegate
method getVlanClient (line 125) | @Delegate
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindAccountSecurityGroupPairsToIndexedQueryParams.java
class BindAccountSecurityGroupPairsToIndexedQueryParams (line 36) | @Singleton
method bindToRequest (line 39) | @SuppressWarnings("unchecked")
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindCIDRsToCommaDelimitedQueryParam.java
class BindCIDRsToCommaDelimitedQueryParam (line 30) | @Singleton
method bindToRequest (line 33) | @SuppressWarnings("unchecked")
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindIdListToCommaDelimitedQueryParam.java
class BindIdListToCommaDelimitedQueryParam (line 30) | @Singleton
method bindToRequest (line 33) | @SuppressWarnings("unchecked")
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindSnapshotPolicyScheduleToQueryParam.java
class BindSnapshotPolicyScheduleToQueryParam (line 30) | @Singleton
method bindToRequest (line 33) | @SuppressWarnings("unchecked")
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindTemplateMetadataToQueryParams.java
class BindTemplateMetadataToQueryParams (line 28) | public class BindTemplateMetadataToQueryParams implements Binder {
method bindToRequest (line 30) | @SuppressWarnings("unchecked")
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/ResourceLimitToQueryParams.java
class ResourceLimitToQueryParams (line 34) | public class ResourceLimitToQueryParams implements Binder {
method bindToRequest (line 36) | @SuppressWarnings("unchecked")
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/CloudStackComputeService.java
class CloudStackComputeService (line 80) | @Singleton
method CloudStackComputeService (line 89) | @Inject
method cleanUpIncidentalResourcesOfDeadNodes (line 123) | @Override
method cleanOrphanedGroupsInZone (line 131) | protected void cleanOrphanedGroupsInZone(Set<String> groups, String zo...
method cleanupOrphanedSecurityGroupsInZone (line 136) | private void cleanupOrphanedSecurityGroupsInZone(Set<String> groups, S...
method cleanupOrphanedKeyPairsInZone (line 154) | private void cleanupOrphanedKeyPairsInZone(Set<String> groups, String ...
method templateOptions (line 171) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/config/CloudStackComputeServiceContextModule.java
class CloudStackComputeServiceContextModule (line 107) | public class CloudStackComputeServiceContextModule extends
method configure (line 110) | @Override
method provideTemplateOptions (line 159) | @Override
method listOSCategories (line 166) | @Provides
method listOSTypes (line 185) | @Provides
method listNetworks (line 210) | @Provides
method listProjects (line 219) | @Provides
method getCurrentUser (line 228) | @Provides
method jobComplete (line 237) | @Provides
method keyPairMap (line 243) | @Provides
method securityGroupMap (line 250) | @Provides
method getIPForwardingRulesByVirtualMachine (line 257) | @Provides
method getFirewallRulesByVirtualMachine (line 265) | @Provides
method optionsConverters (line 272) | @Provides
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/extensions/CloudStackImageExtension.java
class CloudStackImageExtension (line 68) | @Singleton
method CloudStackImageExtension (line 82) | @Inject
method buildImageTemplateFromNode (line 98) | @Override
method createImage (line 107) | @Override
method deleteImage (line 149) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/extensions/CloudStackSecurityGroupExtension.java
class CloudStackSecurityGroupExtension (line 56) | public class CloudStackSecurityGroupExtension implements SecurityGroupEx...
method CloudStackSecurityGroupExtension (line 65) | @Inject
method listSecurityGroups (line 83) | @Override
method listSecurityGroupsInLocation (line 99) | @Override
method listSecurityGroupsForNode (line 104) | @Override
method getSecurityGroupById (line 117) | @Override
method createSecurityGroup (line 131) | @Override
method removeSecurityGroup (line 146) | @Override
method invalidateCache (line 168) | private void invalidateCache(String id) {
method addIpPermission (line 177) | @Override
method addIpPermission (line 202) | @Override
method removeIpPermission (line 218) | @Override
method removeIpPermission (line 250) | @Override
method supportsTenantIdGroupNamePairs (line 266) | @Override
method supportsTenantIdGroupIdPairs (line 271) | @Override
method supportsGroupIds (line 276) | @Override
method supportsPortRangesForGroups (line 281) | @Override
method supportsExclusionCidrBlocks (line 286) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/CloudStackSecurityGroupToSecurityGroup.java
class CloudStackSecurityGroupToSecurityGroup (line 41) | @Singleton
method CloudStackSecurityGroupToSecurityGroup (line 49) | @Inject
method apply (line 54) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/IngressRuleToIpPermission.java
class IngressRuleToIpPermission (line 35) | public class IngressRuleToIpPermission implements Function<IngressRule, ...
method IngressRuleToIpPermission (line 40) | public IngressRuleToIpPermission() {
method apply (line 43) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/OrphanedGroupsByZoneId.java
class OrphanedGroupsByZoneId (line 42) | public class OrphanedGroupsByZoneId implements Function<Set<? extends No...
method OrphanedGroupsByZoneId (line 45) | @Inject
method OrphanedGroupsByZoneId (line 50) | @VisibleForTesting
method apply (line 55) | public Multimap<String, String> apply(Set<? extends NodeMetadata> dead...
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/ServiceOfferingToHardware.java
class ServiceOfferingToHardware (line 29) | @Singleton
method apply (line 32) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/TemplateToImage.java
class TemplateToImage (line 39) | @Singleton
method TemplateToImage (line 44) | @Inject
method apply (line 51) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/TemplateToOperatingSystem.java
class TemplateToOperatingSystem (line 43) | @Singleton
method TemplateToOperatingSystem (line 56) | @Inject
method apply (line 64) | public OperatingSystem apply(Template from) {
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/VirtualMachineToNodeMetadata.java
class VirtualMachineToNodeMetadata (line 60) | @Singleton
method VirtualMachineToNodeMetadata (line 80) | @Inject
method apply (line 92) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/functions/ZoneToLocation.java
class ZoneToLocation (line 36) | public class ZoneToLocation implements Function<Zone, Location> {
method ZoneToLocation (line 40) | @Inject
method apply (line 45) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/loaders/CreateUniqueKeyPair.java
class CreateUniqueKeyPair (line 34) | @Singleton
method CreateUniqueKeyPair (line 41) | @Inject
method load (line 46) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/loaders/FindSecurityGroupOrCreate.java
class FindSecurityGroupOrCreate (line 36) | public class FindSecurityGroupOrCreate extends CacheLoader<ZoneAndName, ...
method FindSecurityGroupOrCreate (line 43) | @Inject
method load (line 50) | @Override
method createNewSecurityGroup (line 60) | private SecurityGroup createNewSecurityGroup(ZoneAndName in) {
method toString (line 69) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/options/CloudStackTemplateOptions.java
class CloudStackTemplateOptions (line 57) | public class CloudStackTemplateOptions extends TemplateOptions implement...
method securityGroupIds (line 72) | public CloudStackTemplateOptions securityGroupIds(Iterable<String> sec...
method ipsToNetworks (line 77) | public CloudStackTemplateOptions ipsToNetworks(Map<String, String> ips...
method ipOnDefaultNetwork (line 82) | public CloudStackTemplateOptions ipOnDefaultNetwork(String ipOnDefault...
method keyPair (line 87) | public CloudStackTemplateOptions keyPair(String keyPair) {
method setupStaticNat (line 92) | public CloudStackTemplateOptions setupStaticNat(boolean setupStaticNat) {
method account (line 97) | public CloudStackTemplateOptions account(String account) {
method domainId (line 102) | public CloudStackTemplateOptions domainId(String domainId) {
method generateKeyPair (line 107) | public CloudStackTemplateOptions generateKeyPair(boolean generateKeyPa...
method generateSecurityGroup (line 112) | public CloudStackTemplateOptions generateSecurityGroup(boolean generat...
method diskOfferingId (line 117) | public CloudStackTemplateOptions diskOfferingId(String diskOfferingId) {
method dataDiskSize (line 122) | public CloudStackTemplateOptions dataDiskSize(int dataDiskSize) {
method userData (line 127) | public CloudStackTemplateOptions userData(byte[] userData) {
method userData (line 132) | public CloudStackTemplateOptions userData(String userData) {
method userData (line 137) | public CloudStackTemplateOptions userData(URL userDataUrl) throws IOEx...
method getSecurityGroupIds (line 142) | public Set<String> getSecurityGroupIds() {
method getIpsToNetworks (line 146) | public Map<String, String> getIpsToNetworks() {
method getIpOnDefaultNetwork (line 150) | public String getIpOnDefaultNetwork() {
method getKeyPair (line 154) | public String getKeyPair() {
method shouldSetupStaticNat (line 158) | public boolean shouldSetupStaticNat() {
method getAccount (line 162) | public String getAccount() {
method getDomainId (line 166) | public String getDomainId() {
method shouldGenerateKeyPair (line 170) | public boolean shouldGenerateKeyPair() {
method shouldGenerateSecurityGroup (line 174) | public boolean shouldGenerateSecurityGroup() {
method getDiskOfferingId (line 178) | public String getDiskOfferingId() {
method getDataDiskSize (line 182) | public int getDataDiskSize() {
method getUserData (line 186) | public byte[] getUserData() {
method clone (line 190) | @Override
method copyTo (line 197) | @Override
method equals (line 217) | @Override
method hashCode (line 237) | @Override
method toString (line 242) | @Override
class Builder (line 260) | public static class Builder {
method securityGroupIds (line 265) | public static CloudStackTemplateOptions securityGroupIds(Iterable<St...
method ipsToNetworks (line 273) | public static CloudStackTemplateOptions ipsToNetworks(Map<String, St...
method ipOnDefaultNetwork (line 281) | public static CloudStackTemplateOptions ipOnDefaultNetwork(String ip...
method keyPair (line 289) | public static CloudStackTemplateOptions keyPair(String keyPair) {
method setupStaticNat (line 297) | public static CloudStackTemplateOptions setupStaticNat(boolean setup...
method account (line 305) | public static CloudStackTemplateOptions account(String account) {
method domainId (line 313) | public static CloudStackTemplateOptions domainId(String domainId) {
method generateKeyPair (line 321) | public static CloudStackTemplateOptions generateKeyPair(boolean enab...
method generateSecurityGroup (line 328) | public static CloudStackTemplateOptions generateSecurityGroup(boolea...
method diskOfferingId (line 335) | public static CloudStackTemplateOptions diskOfferingId(String diskOf...
method dataDiskSize (line 343) | public static CloudStackTemplateOptions dataDiskSize(int dataDiskSiz...
method userData (line 351) | public static CloudStackTemplateOptions userData(byte[] userData) {
method blockOnPort (line 363) | @Override
method inboundPorts (line 371) | @Override
method authorizePublicKey (line 379) | @Override
method installPrivateKey (line 387) | @Override
method blockUntilRunning (line 395) | @Override
method dontAuthorizePublicKey (line 403) | @Override
method nameTask (line 411) | @Override
method runAsRoot (line 419) | @Override
method runScript (line 427) | @Override
method overrideLoginCredentials (line 435) | @Override
method overrideLoginPassword (line 443) | @Override
method overrideLoginPrivateKey (line 451) | @Override
method overrideLoginUser (line 459) | @Override
method overrideAuthenticateSudo (line 467) | @Override
method userMetadata (line 475) | @Override
method userMetadata (line 483) | @Override
method nodeNames (line 491) | @Override
method networks (line 499) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/predicates/AllNodesInGroupTerminated.java
class AllNodesInGroupTerminated (line 35) | public class AllNodesInGroupTerminated implements Predicate<ZoneAndName> {
method AllNodesInGroupTerminated (line 40) | @Inject
method apply (line 45) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/AdvancedNetworkOptionsConverter.java
class AdvancedNetworkOptionsConverter (line 36) | public class AdvancedNetworkOptionsConverter implements OptionsConverter {
method apply (line 37) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/BasicNetworkOptionsConverter.java
class BasicNetworkOptionsConverter (line 28) | public class BasicNetworkOptionsConverter implements OptionsConverter {
method apply (line 29) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java
class CloudStackComputeServiceAdapter (line 91) | @Singleton
method CloudStackComputeServiceAdapter (line 116) | @Inject
method createNodeWithGroupEncodedIntoName (line 151) | @Override
method listHardwareProfiles (line 314) | @Override
method listImages (line 320) | @Override
method getImage (line 332) | @Override
method listNodes (line 337) | @Override
method listNodesByIds (line 342) | @Override
method listLocations (line 353) | @Override
method getNode (line 359) | @Override
method destroyNode (line 365) | @Override
method disassociateIPAddresses (line 397) | public void disassociateIPAddresses(Set<String> ipAddresses) {
method destroyVirtualMachine (line 404) | public void destroyVirtualMachine(String virtualMachineId) {
method disableStaticNATOnIPAddresses (line 416) | public void disableStaticNATOnIPAddresses(Set<String> ipAddresses) {
method deleteIPForwardingRulesForVMAndReturnDistinctIPs (line 428) | public Set<String> deleteIPForwardingRulesForVMAndReturnDistinctIPs(St...
method deleteFirewallRulesForVMAndReturnDistinctIPs (line 450) | public Set<String> deleteFirewallRulesForVMAndReturnDistinctIPs(String...
method awaitCompletion (line 470) | public void awaitCompletion(Iterable<String> jobs) {
method awaitCompletion (line 477) | public void awaitCompletion(String job) {
method rebootNode (line 482) | @Override
method resumeNode (line 492) | @Override
method suspendNode (line 502) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/OptionsConverter.java
type OptionsConverter (line 30) | public interface OptionsConverter {
method apply (line 41) | DeployVirtualMachineOptions apply(CloudStackTemplateOptions templateOp...
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/config/CloudStackHttpApiModule.java
class CloudStackHttpApiModule (line 62) | @ConfiguresHttpApi
method configure (line 65) | @Override
method installLocations (line 83) | @Override
method bindErrorHandlers (line 89) | @Override
class CredentialTypeFromPropertyOrDefault (line 96) | @Singleton
method get (line 106) | @Override
method authenticationFilterForCredentialType (line 118) | @Provides
method provideLoginResponseCache (line 133) | @Provides
method provideLoginResponseSupplier (line 143) | @Provides
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/config/CloudStackParserModule.java
class CloudStackParserModule (line 39) | public class CloudStackParserModule extends AbstractModule {
method configure (line 41) | @Override
class CloudStackDateAdapter (line 54) | public static class CloudStackDateAdapter extends Iso8601DateAdapter {
method CloudStackDateAdapter (line 56) | @Inject
method read (line 61) | public Date read(JsonReader reader) throws IOException {
class CommaDelimitedOKIterableTypeAdapterFactory (line 71) | public static class CommaDelimitedOKIterableTypeAdapterFactory extends...
method newAdapter (line 73) | @Override
class Adapter (line 79) | public static final class Adapter<E> extends TypeAdapter<Iterable<E>> {
method Adapter (line 83) | public Adapter(TypeAdapter<E> elementAdapter) {
method write (line 88) | public void write(JsonWriter out, Iterable<E> value) throws IOExce...
method read (line 92) | @SuppressWarnings("unchecked")
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/config/CloudStackProperties.java
class CloudStackProperties (line 23) | public final class CloudStackProperties {
method CloudStackProperties (line 49) | private CloudStackProperties() {
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/config/CredentialType.java
type CredentialType (line 26) | public enum CredentialType {
method toString (line 32) | @Override
method fromValue (line 37) | public static CredentialType fromValue(String credentialType) {
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/domain/Account.java
class Account (line 39) | public class Account extends ForwardingSet<User> {
type State (line 43) | public static enum State {
method toString (line 46) | @Override
method fromValue (line 51) | public static State fromValue(String state) {
type Type (line 63) | public static enum Type {
method apply (line 86) | @Override
method Type (line 93) | Type(int code) {
method toString (line 97) | @Override
method fromValue (line 102) | public static Type fromValue(String type) {
method builder (line 109) | public static Builder<?> builder() {
method toBuilder (line 113) | public Builder<?> toBuilder() {
class Builder (line 117) | public abstract static class Builder<T extends Builder<T>> {
method self (line 118) | protected abstract T self();
method id (line 152) | public T id(String id) {
method type (line 160) | public T type(Account.Type type) {
method networkDomain (line 168) | public T networkDomain(String networkDomain) {
method domain (line 176) | public T domain(String domain) {
method domainId (line 184) | public T domainId(String domainId) {
method IPsAvailable (line 192) | public T IPsAvailable(Long IPsAvailable) {
method IPLimit (line 200) | public T IPLimit(Long IPLimit) {
method IPs (line 208) | public T IPs(long IPs) {
method cleanupRequired (line 216) | public T cleanupRequired(boolean cleanupRequired) {
method name (line 224) | public T name(String name) {
method receivedBytes (line 232) | public T receivedBytes(long receivedBytes) {
method sentBytes (line 240) | public T sentBytes(long sentBytes) {
method snapshotsAvailable (line 248) | public T snapshotsAvailable(Long snapshotsAvailable) {
method snapshotLimit (line 256) | public T snapshotLimit(Long snapshotLimit) {
method snapshots (line 264) | public T snapshots(long snapshots) {
method state (line 272) | public T state(Account.State state) {
method templatesAvailable (line 280) | public T templatesAvailable(Long templatesAvailable) {
method templateLimit (line 288) | public T templateLimit(Long templateLimit) {
method templates (line 296) | public T templates(long templates) {
method VMsAvailable (line 304) | public T VMsAvailable(Long VMsAvailable) {
method VMLimit (line 312) | public T VMLimit(Long VMLimit) {
method VMsRunning (line 320) | public T VMsRunning(long VMsRunning) {
method VMsStopped (line 328) | public T VMsStopped(long VMsStopped) {
method VMs (line 336) | public T VMs(long VMs) {
method volumesAvailable (line 344) | public T volumesAvailable(Long volumesAvailable) {
method volumeLimit (line 352) | public T volumeLimit(Long volumeLimit) {
method volumes (line 360) | public T volumes(long volumes) {
method users (line 368) | public T users(Set<User> users) {
method users (line 373) | public T users(User... in) {
method build (line 377) | public Account build() {
method fromAccount (line 381) | public T fromAccount(Account in) {
class ConcreteBuilder (line 414) | private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
method self (line 415) | @Override
method Account (line 450) | @ConstructorProperties({
method toLongNullIfUnlimited (line 471) | private static Long toLongNullIfUnlimited(String in) {
method Account (line 475) | protected Account(String id, @Nullable Account.Type type, @Nullable St...
method getId (line 515) | public String getId() {
method getType (line 522) | @Nullable
method getNetworkDomain (line 530) | @Nullable
method getDomain (line 538) | @Nullable
method getDomainId (line 546) | @Nullable
method getIPsAvailable (line 555) | @Nullable
method getIPLimit (line 564) | @Nullable
method getIPs (line 572) | public long getIPs() {
method isCleanupRequired (line 579) | public boolean isCleanupRequired() {
method getName (line 586) | @Nullable
method getReceivedBytes (line 594) | public long getReceivedBytes() {
method getSentBytes (line 601) | public long getSentBytes() {
method getSnapshotsAvailable (line 609) | @Nullable
method getSnapshotLimit (line 618) | @Nullable
method getSnapshots (line 626) | public long getSnapshots() {
method getState (line 633) | @Nullable
method getTemplatesAvailable (line 642) | @Nullable
method getTemplateLimit (line 651) | @Nullable
method getTemplates (line 660) | public long getTemplates() {
method getVMsAvailable (line 668) | @Nullable
method getVMLimit (line 677) | @Nullable
method getVMsRunning (line 685) | public long getVMsRunning() {
method getVMsStopped (line 692) | public long getVMsStopped() {
method getVMs (line 699) | public long getVMs() {
method getVolumesAvailable (line 706) | @Nullable
method getVolumeLimit (line 715) | @Nullable
method getVolumes (line 723) | public long getVolumes() {
method getUsers (line 730) | public Set<User> getUsers() {
method delegate (line 734) | @Override
method hashCode (line 739) | @Override
method equals (line 744) | @Override
method string (line 779) | protected ToStringHelper string() {
method toString (line 784) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/domain/Alert.java
class Alert (line 33) | public class Alert {
method builder (line 35) | public static Builder<?> builder() {
method toBuilder (line 39) | public Builder<?> toBuilder() {
class Builder (line 43) | public abstract static class Builder<T extends Builder<T>> {
method self (line 44) | protected abstract T self();
method id (line 54) | public T id(String id) {
method description (line 62) | public T description(String description) {
method sent (line 70) | public T sent(Date sent) {
method type (line 78) | public T type(String type) {
method build (line 83) | public Alert build() {
method fromAlert (line 87) | public T fromAlert(Alert in) {
class ConcreteBuilder (line 96) | private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
method self (line 97) | @Override
method Alert (line 108) | @ConstructorProperties({
method getId (line 118) | public String getId() {
method getDescription (line 122) | @Nullable
method getSent (line 127) | @Nullable
method getType (line 132) | @Nullable
method hashCode (line 137) | @Override
method equals (line 142) | @Override
method string (line 153) | protected ToStringHelper string() {
method toString (line 158) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/domain/AllocationState.java
type AllocationState (line 25) | public enum AllocationState {
method fromValue (line 30) | public static AllocationState fromValue(String value) {
method toString (line 38) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/domain/ApiKeyPair.java
class ApiKeyPair (line 30) | public class ApiKeyPair {
method builder (line 32) | public static Builder<?> builder() {
method toBuilder (line 36) | public Builder<?> toBuilder() {
class Builder (line 40) | public abstract static class Builder<T extends Builder<T>> {
method self (line 41) | protected abstract T self();
method apiKey (line 49) | public T apiKey(String apiKey) {
method secretKey (line 57) | public T secretKey(String secretKey) {
method build (line 62) | public ApiKeyPair build() {
method fromApiKeyPair (line 66) | public T fromApiKeyPair(ApiKeyPair in) {
class ConcreteBuilder (line 73) | private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
method self (line 74) | @Override
method ApiKeyPair (line 83) | @ConstructorProperties({
method getApiKey (line 91) | @Nullable
method getSecretKey (line 96) | @Nullable
method hashCode (line 101) | @Override
method equals (line 106) | @Override
method string (line 115) | protected ToStringHelper string() {
method toString (line 120) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/domain/AsyncCreateResponse.java
class AsyncCreateResponse (line 30) | public class AsyncCreateResponse {
method builder (line 33) | public static Builder<?> builder() {
method toBuilder (line 37) | public Builder<?> toBuilder() {
class Builder (line 41) | public abstract static class Builder<T extends Builder<T>> {
method self (line 42) | protected abstract T self();
method id (line 50) | public T id(String id) {
method jobId (line 58) | public T jobId(String jobId) {
method build (line 63) | public AsyncCreateResponse build() {
method fromAsyncCreateResponse (line 67) | public T fromAsyncCreateResponse(AsyncCreateResponse in) {
class ConcreteBuilder (line 74) | private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
method self (line 75) | @Override
method AsyncCreateResponse (line 84) | @ConstructorProperties({
method getId (line 95) | @Nullable
method getJobId (line 103) | @Nullable
method hashCode (line 108) | @Override
method equals (line 113) | @Override
method string (line 122) | protected ToStringHelper string() {
method toString (line 127) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/domain/AsyncJob.java
class AsyncJob (line 33) | public class AsyncJob<S> {
type ResultCode (line 38) | public static enum ResultCode {
method ResultCode (line 45) | private ResultCode(int code) {
method code (line 49) | public int code() {
method fromValue (line 53) | public static ResultCode fromValue(String value) {
type Status (line 73) | public static enum Status {
method Status (line 81) | private Status(int code) {
method code (line 85) | public int code() {
method fromValue (line 89) | public static Status fromValue(String value) {
method builder (line 108) | public static <T> Builder<?, T> builder() {
method toBuilder (line 112) | public Builder toBuilder() {
class Builder (line 116) | public abstract static class Builder<T extends Builder<T, S>, S> {
method self (line 117) | protected abstract T self();
method accountId (line 136) | public T accountId(String accountId) {
method cmd (line 144) | public T cmd(String cmd) {
method created (line 152) | public T created(Date created) {
method id (line 160) | public T id(String id) {
method instanceId (line 168) | public T instanceId(String instanceId) {
method instanceType (line 176) | public T instanceType(String instanceType) {
method progress (line 184) | public T progress(int progress) {
method result (line 192) | public T result(S result) {
method resultCode (line 200) | public T resultCode(AsyncJob.ResultCode resultCode) {
method resultType (line 208) | public T resultType(String resultType) {
method status (line 216) | public T status(AsyncJob.Status status) {
method userId (line 224) | public T userId(String userId) {
method error (line 232) | public T error(AsyncJobError error) {
method build (line 237) | public AsyncJob build() {
method fromAsyncJob (line 242) | public T fromAsyncJob(AsyncJob<S> in) {
method fromAsyncJobUntyped (line 259) | public static Builder<?, Object> fromAsyncJobUntyped(AsyncJob<?> in) {
class ConcreteBuilder (line 264) | private static class ConcreteBuilder<T> extends Builder<ConcreteBuilde...
method self (line 265) | @Override
method AsyncJob (line 285) | @ConstructorProperties({
method getAccountId (line 311) | @Nullable
method getCmd (line 319) | @Nullable
method getCreated (line 327) | @Nullable
method getId (line 335) | public String getId() {
method getInstanceId (line 342) | @Nullable
method getInstanceType (line 350) | @Nullable
method getProgress (line 358) | public int getProgress() {
method getResult (line 365) | @Nullable
method getResultCode (line 373) | @Nullable
method getResultType (line 381) | @Nullable
method getStatus (line 389) | @Nullable
method getUserId (line 397) | @Nullable
method getError (line 406) | @Nullable
method hasFailed (line 411) | public boolean hasFailed() {
method hasSucceed (line 415) | public boolean hasSucceed() {
method hashCode (line 419) | @Override
method equals (line 424) | @Override
method string (line 444) | protected ToStringHelper string() {
method toString (line 451) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/domain/AsyncJobError.java
class AsyncJobError (line 27) | public class AsyncJobError {
type ErrorCode (line 32) | public static enum ErrorCode {
method ErrorCode (line 45) | private ErrorCode(int code) {
method code (line 49) | public int code() {
method fromValue (line 53) | public static ErrorCode fromValue(String value) {
method builder (line 69) | public static Builder<?> builder() {
method toBuilder (line 73) | public Builder<?> toBuilder() {
class Builder (line 77) | public abstract static class Builder<T extends Builder<T>> {
method self (line 78) | protected abstract T self();
method errorCode (line 86) | public T errorCode(ErrorCode errorCode) {
method errorText (line 94) | public T errorText(String errorText) {
method build (line 99) | public AsyncJobError build() {
method fromAsyncJobError (line 103) | public T fromAsyncJobError(AsyncJobError in) {
class ConcreteBuilder (line 110) | private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
method self (line 111) | @Override
method AsyncJobError (line 120) | @ConstructorProperties({
method getErrorCode (line 128) | @Nullable
method getErrorText (line 133) | @Nullable
method hashCode (line 138) | @Override
method equals (line 143) | @Override
method string (line 152) | protected ToStringHelper string() {
method toString (line 157) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/domain/Capabilities.java
class Capabilities (line 30) | public class Capabilities {
method builder (line 32) | public static Builder<?> builder() {
method toBuilder (line 36) | public Builder<?> toBuilder() {
class Builder (line 40) | public abstract static class Builder<T extends Builder<T>> {
method self (line 41) | protected abstract T self();
method cloudStackVersion (line 52) | public T cloudStackVersion(String cloudStackVersion) {
method securityGroupsEnabled (line 60) | public T securityGroupsEnabled(boolean securityGroupsEnabled) {
method canShareTemplates (line 68) | public T canShareTemplates(boolean canShareTemplates) {
method firewallRuleUiEnabled (line 76) | public T firewallRuleUiEnabled(boolean firewallRuleUiEnabled) {
method supportELB (line 84) | public T supportELB(boolean supportELB) {
method build (line 89) | public Capabilities build() {
method fromCapabilities (line 93) | public T fromCapabilities(Capabilities in) {
class ConcreteBuilder (line 103) | private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
method self (line 104) | @Override
method Capabilities (line 116) | @ConstructorProperties({
method getCloudStackVersion (line 131) | @Nullable
method isSecurityGroupsEnabled (line 139) | public boolean isSecurityGroupsEnabled() {
method canShareTemplates (line 143) | public boolean canShareTemplates() {
method isFirewallRuleUiEnabled (line 150) | public boolean isFirewallRuleUiEnabled() {
method isSupportELB (line 157) | public boolean isSupportELB() {
method hashCode (line 161) | @Override
method equals (line 166) | @Override
method string (line 178) | protected ToStringHelper string() {
method toString (line 183) | @Override
FILE: apis/cloudstack/src/main/java/org/jclouds/cloudstack/domain/Capacity.java
class Capacity (line 36) | public class Capacity implements Comparable<Capacity> {
type Type (line 40) | public static enum Type {
method apply (line 58) | @Override
method Type (line 65) | Type(int code) {
method toString (line 69) | @Override
method fromValue (line 74) | public static Type fromValue(String type) {
method builder (line 80) | public static Builder<?> builder() {
method toBuilder (line 84) | public Builder<?> toBuilder() {
class Builder (line 88) | public abstract static class Builder<T extends Builder<T>> {
method self (line 89) | protected abstract T self();
method capacityTotal (line 103) | public T capacityTotal(long capacityTotal) {
method capacityUsed (line 111) | public T capacityUsed(long capacityUsed) {
method percentUsed (line 119) | public T percentUsed(double percentUsed) {
method podId (line 127) | public T podId(String podId) {
method podName (line 135) | public T podName(String podName) {
method type (line 143) | public T type(Capacity.Type type) {
method zoneId (line 151) | public T zoneId(String zoneId) {
method zoneName (line 159) | public T zoneName(String zoneName) {
method build (line 164) | public Capacity build() {
method f
Copy disabled (too large)
Download .json
Condensed preview — 7733 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (30,474K chars).
[
{
"path": ".asf.yaml",
"chars": 1342,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements. See the NOTICE f"
},
{
"path": ".dir-locals.el",
"chars": 852,
"preview": ";; Licensed to the Apache Software Foundation (ASF) under one or more\n;; contributor license agreements. See the NO"
},
{
"path": ".gitattributes",
"chars": 27,
"preview": "* text eol=lf\n*.cmd binary\n"
},
{
"path": ".github/workflows/ci.yaml",
"chars": 1235,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements. See the NOTICE f"
},
{
"path": ".gitignore",
"chars": 340,
"preview": "# use glob syntax.\nsyntax: glob\ntarget/\ntest-output/\nbin/\n.settings/\n.classpath\n.project\n.idea/\n*.iml\n*.eml\n*.ipr\n*.iws\n"
},
{
"path": ".mailmap",
"chars": 1477,
"preview": "Adrian Cole <acole@.eng.vmware.com>\nAdrian Cole <acole@twitter.com>\nAdrian Cole <adrian.f.cole@3d8758e0-26b5-11de-8745-d"
},
{
"path": "CONTRIBUTING.md",
"chars": 381,
"preview": "Please review the [How to Contribute](https://cwiki.apache.org/confluence/display/JCLOUDS/Contribute) page for informati"
},
{
"path": "README.md",
"chars": 495,
"preview": "jclouds\n======\n\nApache jclouds is an open source multi-cloud toolkit for the Java platform that gives you the freedom to"
},
{
"path": "all/pom.xml",
"chars": 4807,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n\n Licensed to the Apache Software Foundation (ASF) under one or more\n "
},
{
"path": "allblobstore/pom.xml",
"chars": 3154,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n\n Licensed to the Apache Software Foundation (ASF) under one or more\n "
},
{
"path": "allcompute/pom.xml",
"chars": 5644,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n\n Licensed to the Apache Software Foundation (ASF) under one or more\n "
},
{
"path": "allloadbalancer/pom.xml",
"chars": 1818,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n\n Licensed to the Apache Software Foundation (ASF) under one or more\n "
},
{
"path": "apis/atmos/README.txt",
"chars": 161,
"preview": "#\n# The jclouds API for EMC's Atmos Online Storage (http://www.emccis.com/).\n#\n# TODO: Implementation status.\n# TODO: Su"
},
{
"path": "apis/atmos/bnd.bnd",
"chars": 87,
"preview": "Export-Package: \\\n org.jclouds.atmos.*;version=\"${project.version}\";-noimport:=true\n"
},
{
"path": "apis/atmos/pom.xml",
"chars": 4368,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n\n Licensed to the Apache Software Foundation (ASF) under one or more\n "
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/AtmosApiMetadata.java",
"chars": 3272,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/AtmosClient.java",
"chars": 7061,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/AtmosResponseException.java",
"chars": 2529,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/binders/BindMetadataToHeaders.java",
"chars": 2398,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/binders/BindUserMetadataToHeaders.java",
"chars": 2792,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSigner.java",
"chars": 6022,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/AtmosBlobStore.java",
"chars": 14276,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/config/AtmosBlobStoreContextModule.java",
"chars": 2275,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobMetadataToObject.java",
"chars": 2104,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobStoreListOptionsToListOptions.java",
"chars": 1837,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobToContentMetadata.java",
"chars": 1705,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobToObject.java",
"chars": 1665,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/BlobToSystemMetadata.java",
"chars": 1551,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/DirectoryEntryListToResourceMetadataList.java",
"chars": 3432,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/ObjectToBlob.java",
"chars": 1927,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/blobstore/functions/ObjectToBlobMetadata.java",
"chars": 3770,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosHttpApiModule.java",
"chars": 3640,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosObjectModule.java",
"chars": 1678,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/config/AtmosParserModule.java",
"chars": 1167,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/AtmosError.java",
"chars": 1801,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/AtmosObject.java",
"chars": 1856,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/BoundedSet.java",
"chars": 1141,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/DirectoryEntry.java",
"chars": 2984,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/FileType.java",
"chars": 1160,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/MutableContentMetadata.java",
"chars": 1305,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/SystemMetadata.java",
"chars": 4874,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/UploadInfo.java",
"chars": 1156,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/UserMetadata.java",
"chars": 3935,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/internal/AtmosObjectImpl.java",
"chars": 5515,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/internal/BoundedLinkedHashSet.java",
"chars": 2243,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/domain/internal/DelegatingMutableContentMetadata.java",
"chars": 5249,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExists.java",
"chars": 1920,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/fallbacks/TrueOn404FalseOnPathNotEmpty.java",
"chars": 1637,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/filters/ShareUrl.java",
"chars": 3963,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/filters/SignRequest.java",
"chars": 7682,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/functions/AtmosObjectName.java",
"chars": 1610,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseDirectoryListFromContentAndHeaders.java",
"chars": 2485,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseObjectFromHeadersAndHttpContent.java",
"chars": 3653,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseSystemMetadataFromHeaders.java",
"chars": 3259,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/functions/ParseUserMetadataFromHeaders.java",
"chars": 2882,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/functions/ReturnTrueIfGroupACLIsOtherRead.java",
"chars": 1295,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/handlers/AtmosClientErrorRetryHandler.java",
"chars": 3420,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/handlers/AtmosServerErrorRetryHandler.java",
"chars": 3244,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/handlers/ParseAtmosErrorFromXmlContent.java",
"chars": 4887,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/options/ListOptions.java",
"chars": 3405,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/options/PutOptions.java",
"chars": 2745,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/reference/AtmosErrorCode.java",
"chars": 1653,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/reference/AtmosHeaders.java",
"chars": 1736,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/util/AtmosUtils.java",
"chars": 4592,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/xml/ErrorHandler.java",
"chars": 1692,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/main/java/org/jclouds/atmos/xml/ListDirectoryResponseHandler.java",
"chars": 3156,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/AtmosApiMetadataTest.java",
"chars": 1146,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/AtmosClientLiveTest.java",
"chars": 16255,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/AtmosClientTest.java",
"chars": 16671,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/binders/BindMetadataToHeadersTest.java",
"chars": 3381,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/binders/BindUserMetadataToHeadersTest.java",
"chars": 3640,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/blobstore/AtmosBlobRequestSignerTest.java",
"chars": 5163,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/blobstore/functions/ListOptionsToBlobStoreListOptions.java",
"chars": 1701,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/blobstore/functions/ResourceMetadataListToDirectoryEntryList.java",
"chars": 2195,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosBlobSignerLiveTest.java",
"chars": 1755,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosContainerIntegrationLiveTest.java",
"chars": 2097,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosContainerLiveTest.java",
"chars": 1127,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosIntegrationLiveTest.java",
"chars": 8076,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosLiveTest.java",
"chars": 1099,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/blobstore/integration/AtmosServiceIntegrationLiveTest.java",
"chars": 1151,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/fallbacks/EndpointIfAlreadyExistsTest.java",
"chars": 1934,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/filters/SignRequestTest.java",
"chars": 5800,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/functions/AtmosObjectNameTest.java",
"chars": 2273,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/functions/ParseDirectoryListFromContentAndHeadersTest.java",
"chars": 3548,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/functions/ParseObjectFromHeadersAndHttpContentTest.java",
"chars": 3027,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/functions/ParseSystemMetadataFromHeadersTest.java",
"chars": 2269,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/functions/ParseUserMetadataFromHeadersTest.java",
"chars": 1808,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/handlers/AtmosServerErrorRetryHandlerTest.java",
"chars": 3565,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/options/ListOptionsTest.java",
"chars": 2475,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/xml/ErrorHandlerTest.java",
"chars": 1854,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/java/org/jclouds/atmos/xml/ListDirectoryResponseHandlerTest.java",
"chars": 2352,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/atmos/src/test/resources/error.xml",
"chars": 133,
"preview": "<?xml version='1.0' encoding='UTF-8'?> \n<Error> \n<Code>1003</Code> \n<Message>The requested object was not found.</Messag"
},
{
"path": "apis/atmos/src/test/resources/hashstring.txt",
"chars": 298,
"preview": "POST\napplication/octet-stream\n\nThu, 05 Jun 2008 16:38:19 GMT\n/rest/objects\nx-emc-date:Thu, 05 Jun 2008 16:38:19 GMT\nx-em"
},
{
"path": "apis/atmos/src/test/resources/list_basic.xml",
"chars": 543,
"preview": "<?xml version='1.0' encoding='UTF-8'?>\n<ListDirectoryResponse xmlns='http://www.emc.com/cos/'>\n\t<DirectoryList>\n\t<Direct"
},
{
"path": "apis/atmos/src/test/resources/list_meta.xml",
"chars": 2218,
"preview": "<?xml version='1.0' encoding='UTF-8'?>\n<ListObjectsResponse xmlns='http://www.emc.com/cos/'>\n <Object>\n <Objec"
},
{
"path": "apis/atmos/src/test/resources/log4j.xml",
"chars": 4140,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE log4j:configuration SYSTEM \"log4j.dtd\">\n\n <!--\n For more conf"
},
{
"path": "apis/byon/README.txt",
"chars": 4079,
"preview": "= Bring Your Own Nodes to the jclouds ComputeService =\nThe bring your own node provider (byon) allows you to specify a s"
},
{
"path": "apis/byon/bnd.bnd",
"chars": 86,
"preview": "Export-Package: \\\n org.jclouds.byon.*;version=\"${project.version}\";-noimport:=true\n"
},
{
"path": "apis/byon/pom.xml",
"chars": 3821,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n\n Licensed to the Apache Software Foundation (ASF) under one or more\n "
},
{
"path": "apis/byon/src/main/java/org/jclouds/byon/BYONApiMetadata.java",
"chars": 2785,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/main/java/org/jclouds/byon/Node.java",
"chars": 9127,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/main/java/org/jclouds/byon/config/BYONComputeServiceContextModule.java",
"chars": 2222,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/main/java/org/jclouds/byon/config/CacheNodeStoreModule.java",
"chars": 2152,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/main/java/org/jclouds/byon/config/ConfiguresNodeStore.java",
"chars": 1234,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/main/java/org/jclouds/byon/config/YamlNodeStoreModule.java",
"chars": 3949,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/main/java/org/jclouds/byon/domain/YamlNode.java",
"chars": 8008,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/main/java/org/jclouds/byon/functions/NodeToNodeMetadata.java",
"chars": 5235,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/main/java/org/jclouds/byon/functions/NodesFromYamlStream.java",
"chars": 4041,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/main/java/org/jclouds/byon/internal/BYONComputeServiceAdapter.java",
"chars": 5128,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/main/java/org/jclouds/byon/suppliers/NodesParsedFromSupplier.java",
"chars": 2100,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/main/java/org/jclouds/byon/suppliers/SupplyFromProviderURIOrNodesProperty.java",
"chars": 2690,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/test/java/org/jclouds/byon/BYONApiMetadataTest.java",
"chars": 1149,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/test/java/org/jclouds/byon/BYONComputeServiceLiveTest.java",
"chars": 3985,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/test/java/org/jclouds/byon/BYONComputeServiceTest.java",
"chars": 6565,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/test/java/org/jclouds/byon/config/CacheNodeStoreModuleTest.java",
"chars": 6632,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/test/java/org/jclouds/byon/config/YamlNodeStoreModuleTest.java",
"chars": 7422,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/test/java/org/jclouds/byon/functions/NodeToNodeMetadataTest.java",
"chars": 5053,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/test/java/org/jclouds/byon/functions/NodesFromYamlTest.java",
"chars": 3693,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/test/java/org/jclouds/byon/suppliers/NodesParsedFromSupplierTest.java",
"chars": 1305,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/test/java/org/jclouds/byon/suppliers/SupplyFromProviderURIOrNodesPropertyTest.java",
"chars": 2819,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/byon/src/test/resources/log4j.xml",
"chars": 3983,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE log4j:configuration SYSTEM \"log4j.dtd\">\n\n <!--\n For more conf"
},
{
"path": "apis/byon/src/test/resources/test1.yaml",
"chars": 1515,
"preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE"
},
{
"path": "apis/byon/src/test/resources/test_location.yaml",
"chars": 2342,
"preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE"
},
{
"path": "apis/byon/src/test/resources/test_with_url.yaml",
"chars": 1217,
"preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE"
},
{
"path": "apis/byon/src/test/resources/testkey.txt",
"chars": 244,
"preview": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAuzaE6azgUxwESX1rCGdJ5xpdrc1XC311bOGZBCE8NA+CpFh2\nu01Vfv68NC4u6LFgdXSY1vQ"
},
{
"path": "apis/chef/bnd.bnd",
"chars": 156,
"preview": "Export-Package: \\\n org.jclouds.chef.*;version=\"${project.version}\";-noimport:=true, \\\n org.jclouds.ohai.*;version="
},
{
"path": "apis/chef/pom.xml",
"chars": 4527,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n\n Licensed to the Apache Software Foundation (ASF) under one or more\n "
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/ChefApi.java",
"chars": 29530,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/ChefApiMetadata.java",
"chars": 4703,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/ChefService.java",
"chars": 9387,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/binders/BindChecksumsToJsonPayload.java",
"chars": 2123,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/binders/BindCreateClientOptionsToJsonPayload.java",
"chars": 2734,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/binders/BindGenerateKeyForClientToJsonPayload.java",
"chars": 1410,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/binders/BindGroupToUpdateRequestJsonPayload.java",
"chars": 2681,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/binders/DatabagItemId.java",
"chars": 1123,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/binders/EnvironmentName.java",
"chars": 1140,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/binders/GroupName.java",
"chars": 1252,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/binders/NodeName.java",
"chars": 1106,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/binders/RoleName.java",
"chars": 1106,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/config/ChefBootstrapModule.java",
"chars": 4414,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/config/ChefHttpApiModule.java",
"chars": 7589,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/config/ChefParserModule.java",
"chars": 9456,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/config/ChefProperties.java",
"chars": 4059,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/config/InstallChef.java",
"chars": 1332,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/config/Validator.java",
"chars": 1487,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/domain/Attribute.java",
"chars": 7555,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/domain/BootstrapConfig.java",
"chars": 6084,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/domain/ChecksumStatus.java",
"chars": 2875,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/domain/Client.java",
"chars": 6349,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/domain/CookbookDefinition.java",
"chars": 6160,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/domain/CookbookVersion.java",
"chars": 12989,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/domain/DatabagItem.java",
"chars": 1839,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/domain/Environment.java",
"chars": 6447,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/domain/Group.java",
"chars": 6178,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/domain/Grouping.java",
"chars": 2935,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/domain/Metadata.java",
"chars": 16619,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/domain/Node.java",
"chars": 9740,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/domain/Resource.java",
"chars": 4902,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/domain/Role.java",
"chars": 9631,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/domain/Sandbox.java",
"chars": 5831,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/domain/SearchResult.java",
"chars": 1379,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/domain/UploadSandbox.java",
"chars": 4195,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/domain/User.java",
"chars": 6518,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/features/OrganizationApi.java",
"chars": 4005,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/filters/SignedHeaderAuth.java",
"chars": 8090,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/functions/BootstrapConfigForGroup.java",
"chars": 2110,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/functions/ClientForGroup.java",
"chars": 2280,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/functions/GroupToBootScript.java",
"chars": 6614,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseCookbookDefinitionFromJson.java",
"chars": 1952,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseCookbookDefinitionListFromJson.java",
"chars": 2416,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseCookbookNamesFromJson.java",
"chars": 1698,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseCookbookVersionsFromJson.java",
"chars": 2169,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseErrorFromJsonOrReturnBody.java",
"chars": 1837,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseKeySetFromJson.java",
"chars": 1443,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchClientsFromJson.java",
"chars": 1233,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchDatabagFromJson.java",
"chars": 2491,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchEnvironmentsFromJson.java",
"chars": 1258,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchNodesFromJson.java",
"chars": 1223,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchResultFromJson.java",
"chars": 1622,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/functions/ParseSearchRolesFromJson.java",
"chars": 1223,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/functions/UriForResource.java",
"chars": 1488,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/handlers/ChefApiErrorRetryHandler.java",
"chars": 2505,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/handlers/ChefErrorHandler.java",
"chars": 2675,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/internal/BaseChefService.java",
"chars": 10656,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/options/CreateClientOptions.java",
"chars": 1792,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/options/SearchOptions.java",
"chars": 2695,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/predicates/CookbookVersionPredicates.java",
"chars": 3581,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/strategy/CleanupStaleNodesAndClients.java",
"chars": 1192,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/strategy/CreateNodeAndPopulateAutomaticAttributes.java",
"chars": 1284,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/strategy/DeleteAllClientsInList.java",
"chars": 1278,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/strategy/DeleteAllNodesInList.java",
"chars": 1224,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/strategy/ListClients.java",
"chars": 1203,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/strategy/ListCookbookVersions.java",
"chars": 1257,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/strategy/ListCookbookVersionsInEnvironment.java",
"chars": 1555,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/strategy/ListEnvironments.java",
"chars": 1232,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/strategy/ListNodes.java",
"chars": 1191,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/strategy/ListNodesInEnvironment.java",
"chars": 1276,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/strategy/UpdateAutomaticAttributesOnNode.java",
"chars": 1164,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/strategy/internal/BaseListCookbookVersionsImpl.java",
"chars": 4085,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "apis/chef/src/main/java/org/jclouds/chef/strategy/internal/BaseListNodesImpl.java",
"chars": 2829,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
}
]
// ... and 7533 more files (download for full content)
About this extraction
This page contains the full source code of the apache/jclouds GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 7733 files (27.2 MB), approximately 7.6M tokens, and a symbol index with 52330 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.