Andrew Bayer
7923009eb5
JCLOUDS-37. Fix RAT violations in incubator-jclouds, master branch
2013-05-13 19:17:50 -07:00
Andrew Bayer
446ac67884
JCLOUDS-30. Switch to 2 space indents for POM files.
2013-05-13 12:04:43 -07:00
Andrew Bayer
259b04ff1c
JCLOUDS-16. Switch groupId to org.apache.jclouds, change parent POM, remove old distributionManagement content, add ASF repos.
2013-05-13 12:04:42 -07:00
Andrew Gaul
04fad88fd3
Remove duplicate Utils getters
...
Rename callers as required.
2013-04-12 16:24:37 -07:00
adriancole
fbe9f945e7
rename bindMappedApi -> bindSyncToAsyncApi
2013-04-10 08:57:32 -07:00
adriancole
61067d3683
Deprecated remaining code related to RestContext, RestApiMetadata, and RestClientModule for ApiContext, HttpApiMetadata, HttpApiModule
2013-04-09 22:07:43 -07:00
adriancole
f56da43db1
deprecated blobstore interfaces that imply complex internal code
2013-04-09 14:37:34 -07:00
Andrew Gaul
648e6c2a8a
Remove InputSuppliers.of(InputStream)
...
This method breaks the contract of an InputSupplier since every call
to getInput returns the same InputStream instance. This is
particularly dangerous when one of the callers mutates or closes the
InputStream which causes all others callers to fail.
2013-04-03 13:19:42 -07:00
Andrew Gaul
15f4d041b4
Parameterize max errors for clear container
...
Also use setter injection for max request time.
2013-03-29 13:36:57 -07:00
Andrew Gaul
371db8d18f
Address Xlint warnings
2013-03-13 22:23:19 -07:00
Adrian Cole
fb69ae0fa9
bump master to 1.7.0-SNAPSHOT
2013-03-08 23:02:40 -08:00
adriancole
c31145e42e
[maven-release-plugin] prepare for next development iteration
2013-03-04 06:13:59 -08:00
adriancole
0eb3ee8091
[maven-release-plugin] prepare release jclouds-1.6.0-alpha.4
2013-03-04 06:13:57 -08:00
Adrian Cole
941612ad09
add name to blobs in BlobMap tests
2013-03-02 09:16:26 -08:00
Andrew Gaul
faf6b2f39e
Prohibit null and empty blob names in BlobBuilder
2013-02-27 11:36:29 -08:00
Andrew Gaul
ec4cdfda05
Address FindBugs complaints
2013-02-22 09:29:22 -08:00
Andrew Gaul
b51ce5994a
Expose resource creation date
2013-02-18 11:26:44 -08:00
Andrew Gaul
3734fe8100
Replace unneeded Function with imperative approach
...
The latter is more concise, faster, and compact. .class size in bytes
before:
LocalAsyncBlobStore$5.class 1883
LocalAsyncBlobStore.class 20743
and after:
LocalAsyncBlobStore.class 21041
2013-02-05 10:20:24 -08:00
adriancole
89fda8ee28
[maven-release-plugin] prepare for next development iteration
2013-02-04 17:30:46 -08:00
adriancole
2b0ad28f26
[maven-release-plugin] prepare release jclouds-1.6.0-alpha.2
2013-02-04 17:30:44 -08:00
adriancole
267069755e
[maven-release-plugin] prepare for next development iteration
2013-02-02 08:41:53 -08:00
adriancole
7c924b312f
[maven-release-plugin] prepare release jclouds-1.6.0-alpha.1
2013-02-02 08:41:51 -08:00
adriancole
40d9f8bfe7
changes that facilitate synchronous fallbacks and http invocation
2013-01-29 04:09:45 -08:00
Andrew Gaul
60a7d1b4f8
Call BlobUtils.clearContainer directly
...
BaseAsyncBlobStore.clearContainer returns a Future which we previously
did not manage correctly, hanging when deleting non-existent
containers. Call BlobUtils.clearContainer directly to address this.
2013-01-23 22:27:18 -08:00
Andrew Gaul
bd7300ad92
Dynamically generate base blobstore input
...
This removes a single large image from the source tree.
2013-01-22 10:57:14 -08:00
Andrew Gaul
af963df92d
Use Map.entrySet where possible
...
Improves run-time efficiency and addresses FindBugs warnings.
2013-01-21 23:59:42 -08:00
Adrian Cole
b890e1d36b
Merge pull request #1218 from maginatics/delete-container-skip-exponential-backoff
...
Skip exponential backoff if we exceed maxErrors
2013-01-21 19:59:44 -08:00
Andrew Gaul
25b012587d
Skip exponential backoff if we exceed maxErrors
2013-01-21 18:22:41 -08:00
Adrian Cole
37e587ee51
changes related to centralizing construction of invokables
2013-01-19 17:17:30 -08:00
Adrian Cole
4980367991
centralize TypeToken creation
2013-01-19 11:31:55 -08:00
adriancole
dc4ca1efbd
removed deprecated methods which were easy to do
2013-01-19 08:32:45 -08:00
adriancole
04fe89b75a
update to guava 14.0-rc2
2013-01-18 16:02:25 -08:00
Adrian Cole
a49a060152
There can be only one retryable predicate; use Predicates2.retry decorator
2013-01-13 20:30:34 -08:00
Adrian Cole
3962b30808
updated to use standard guava Futures and ListenableFuture
2013-01-13 09:31:10 -08:00
Adrian Cole
015fbf22a2
removed redundant retrying assertion code
2013-01-12 14:04:47 -08:00
Adrian Cole
47c215c63c
removed custom guava code for scoped binding and type params
2013-01-08 22:48:10 -08:00
Adrian Cole
2480481835
dependent changes on tests and internal classes
2013-01-08 00:32:45 -08:00
Adrian Cole
3089111621
refactored internal code and tests to use FunctionalReflection
2013-01-07 00:36:31 -08:00
Adrian Cole
42c7037a59
removed unused code or duplicated code; moved code only used once to where its used
2013-01-01 00:08:34 -08:00
Adrian Cole
9745e9dc2f
fixed covariance and warnings on ApiMetadata subclasses
2012-12-31 19:40:49 -08:00
Adrian Cole
bb953c981e
fix issue #1101 : Move to Guava 14 BaseEncoding and Hashing
2012-12-31 14:48:31 -08:00
Adrian Cole
cddd35bc51
removed unnecessary generic types and made RestAnnotationProcessor immutable
2012-12-30 23:18:59 -08:00
Adrian Cole
2523ab54ac
removed use of static fields to share type mapping info
2012-12-30 17:22:03 -08:00
Adrian Cole
13d8b9c402
replaced @Timeout w/explicit properties
2012-12-30 12:31:43 -08:00
Adrian Cole
9b1872c6ff
removed custom code that duplicates functionality of guava fallbacks
2012-12-27 16:54:31 -08:00
Andrew Gaul
60d61ceb91
Add more logging to DeleteAllKeysInList
...
This allows monitoring of progress of long deletes via debug logs.
2012-12-26 21:27:13 -08:00
Adrian Cole
20c3426fc8
replaced jersey w/Uris & UriTemplates; removed complexity in url encoding and edge cases like matrix params
2012-12-24 14:32:59 -08:00
Everett Toews
3d83d788af
Fixed issue where an Accept header is required when doing HEAD requests to Cloud Files.
2012-12-14 16:50:47 -06:00
Adrian Cole
878ec1bcab
undid Serializable and added checkstyle InterfaceIsType:allowMarkerInterfaces=false
2012-11-18 09:23:44 -08:00
Andrew Gaul
b16ca139a4
Honor PROPERTY_REQUEST_TIMEOUT in clearContainer
2012-11-13 13:27:18 -08:00
Andrew Gaul
3ad36d25d5
Enforce no unnecessary parentheses via Checkstyle
2012-11-10 13:22:12 -08:00
Adrian Cole
c7c27e12e2
improved javadoc including where to look for alternative syntax
2012-11-07 12:02:52 -03:00
Andrew Gaul
3d191253ec
Enforce use of Collection helpers via Checkstyle
...
This ensures that we do not repeat the type name. Some instances remain
due to auto-generated code in dmtf/cim/Cim*.
2012-11-04 20:45:49 -08:00
Adrian Cole
beb36eac75
Merge pull request #940 from andrewgaul/checkstyle-misc
...
Miscellaneous Checkstyle fixes
2012-11-04 08:50:47 -08:00
Andrew Gaul
38b95f5ad9
Miscellaneous Checkstyle fixes
...
Nothing can extend a byte[] and remove a previous hidden unused import.
2012-11-01 19:11:59 -07:00
Andrew Gaul
76a5538229
Cancel Futures in clearContainer
...
This prevents Futures from hanging around on exceptional code paths like
interrupts and timeouts.
2012-11-01 17:18:38 -07:00
Adrian Cole
5da5161485
Merge pull request #909 from andrewgaul/clear-container-timeout-exception
...
Throw TimeoutException from awaitCompletion
2012-10-30 08:57:20 -07:00
Andrew Gaul
93d69ece2b
Enforce newline at end of file via Checkstyle
...
Also address all warnings, via:
find -name \*.java | while read i; do if [ x`tail -c 1 $i` != x"" ]; then echo >> $i; fi; done
2012-10-29 22:12:44 -07:00
Andrew Gaul
709ca69a2d
Enforce that all imports are used via Checkstyle
...
Also remove all unused imports, via:
mvn checkstyle:checkstyle -Dcheckstyle.output.file=/dev/stdout -Dcheckstyle.output.format=plain | tac | awk -v FS=: '/warning/{print "sed -i " $2 "d " $1}' | while read i; do $i; done
2012-10-29 17:11:08 -07:00
Andrew Gaul
336ccfa2e6
Throw TimeoutException from awaitCompletion
...
This is a common error that callers should interpret correctly. For
DeleteAllKeysInList, we integrate into its retry and backoff logic,
and for other callers, we continue to propagate RuntimeException.
2012-10-25 13:50:29 -07:00
Andrew Gaul
28d7a6f143
Prefer immutable over empty collections
...
The former does not create an object when calling iterator(), as
discussed here:
https://groups.google.com/d/msg/jclouds-dev/l7BviKDXreA/mP6Ow_RYxIgJ
2012-10-20 15:35:29 -07:00
Adrian Cole
9e8b4756c2
Merge pull request #894 from andrewgaul/files-tostring
...
Prefer Files.toString over FileInputStream
2012-10-11 02:05:46 -07:00
Andrew Gaul
2b8b72758f
Prefer Files.toString over FileInputStream
2012-10-10 21:33:22 -07:00
Andrew Gaul
331c3be2e8
Retry each operation up to maxErrors times
...
Previously we only allowed maxErrors per directory, which tended to
fail with large directories. Also rename counter to something more
intuitive.
2012-10-10 17:54:38 -07:00
Adrian Cole
ffa9cd3bb0
corrected guice bindings for swift-based blob signatures and backfilled expect tests
2012-10-10 12:03:23 +02:00
Andrew Gaul
9f6b9d4d8a
Rename to LocalBlobRequestSigner
...
Missing commit from the Filesystem and Transient unification.
2012-10-07 22:54:03 -07:00
Adrian Cole
a77a80f030
Issue 1092: fix hostname when path-based buckets are used in non-default location
2012-09-25 21:22:17 -07:00
Andrew Gaul
ad87c596d9
Avoid Futures.getUnchecked in DeleteAllKeysInList
...
This masks InterruptedException. We should rework the logic in
execute to unwind the stack on errors; currently we only return from
the leaf method.
2012-09-19 15:54:31 -07:00
Adrian Cole
28d766b9df
bumped to 1.6.0-SNAPSHOT
2012-09-17 01:43:52 -07:00
Andrei Savu
080d142ae1
Generic support for Swift TempUrl middleware
2012-09-16 21:46:51 +03:00
Andrei Savu
327066acd7
Added @Beta annotations on the new methods in BlobRequestSigner
2012-09-11 23:55:21 +03:00
Andrei Savu
49bde19fa0
Add support for Swift TempURL Middleware
2012-09-10 13:45:55 +03:00
Adrian Cole
c7f35d3bb1
removed invalid @Nullable usage and also usage of javax package usage
2012-08-11 20:59:16 -07:00
Andrew Gaul
8ed0e28e68
Spelling corrections
2012-07-26 22:39:35 -07:00
Adrian Cole
92f9cc4c0c
Merge pull request #756 from andrewgaul/reorder-strategy
...
Shuffle strategy methods into consistent order
2012-07-26 17:04:39 -07:00
Andrew Gaul
f5548f3a94
Shuffle strategy methods into consistent order
...
Group by container, blob, and miscellaneous methods. Within these
groups, sort by by exists, getter, setter, and remove. Code movement
only; no functional changes.
2012-07-26 13:52:23 -07:00
Andrew Gaul
ead8748199
Avoid unneeded branch in LocalAsyncBlobStore
2012-07-26 13:44:14 -07:00
Andrew Gaul
6b8a2a73d4
Add missing @Override in TransientStorageStrategy
2012-07-23 13:31:21 -07:00
Andrew Gaul
562f8277d3
Introduce LocalAsyncBlobStore
...
This commit unifies the filesystem and transient blobstores.
2012-07-23 09:20:41 -07:00
Andrew Gaul
756e46333f
Miscellaneous local blobstore cleanups
...
There are no more functional differences between the filesystem and
transient blobstores. This is the last commit before introducing a
unified LocalAsyncBlobStore class.
2012-07-23 08:06:36 -07:00
Adrian Cole
b890765e9e
Merge pull request #738 from andrewgaul/local-blobstore-move-helper-method
...
Move helper method to TransientStorageStrategy
2012-07-23 07:37:30 -07:00
Adrian Cole
d5f9bb3172
Merge pull request #739 from andrewgaul/prefer-valueof
...
Prefer valueOf over explicit object creation
2012-07-22 22:00:09 -07:00
Andrew Gaul
985cccff9a
Prefer valueOf over explicit object creation
...
This allows use of cached values. Patched with:
find -name \*.java | xargs sed -i 's/new Boolean(false)/Boolean.FALSE/g'
find -name \*.java | xargs sed -i 's/new Boolean(true)/Boolean.TRUE/g'
find -name \*.java | xargs sed -i 's/new Boolean(/Boolean.valueOf(/g'
find -name \*.java | xargs sed -i 's/new Integer(/Integer.valueOf(/g'
find -name \*.java | xargs sed -i 's/new Long(/Long.valueOf(/g'
2012-07-22 21:01:46 -07:00
Andrew Gaul
22da88d2ae
Move helper method to TransientStorageStrategy
...
Also move etag generation since we cannot reuse Payloads in the
general case.
2012-07-22 20:02:59 -07:00
Andrew Gaul
0bc5c69a4f
Move copy(MutableBlobMetadata) to BlobStoreUtils
2012-07-22 17:37:18 -07:00
Andrew Gaul
870ed0cdb3
Shuffle blobstore parameters to match superclass
...
Also remove unused injected parameter.
2012-07-19 07:17:02 -07:00
Adrian Cole
70fa74df1a
Merge pull request #731 from andrewgaul/input-supplier
...
Prefer InputSupplier helpers
2012-07-19 04:34:25 -07:00
Andrew Gaul
a40983a39d
Prefer InputSupplier helpers
...
These ensure that inputs are closed properly.
Updated with: find -name \*.java | xargs sed -i
's/toStringAndClose(\(.*\)\.getInput())/toString(\1)/'
2012-07-18 17:42:48 -07:00
Andrew Gaul
a2d5a48f3f
Inject TransientStorageStrategy
...
Remove some unneeded checkNotNull as Guice does not inject null
parameters.
2012-07-18 16:02:07 -07:00
Andrew Gaul
8a9265f015
Tie up odds and ends from LocalStorageStrategy
...
Use LocalStorageStrategy instead of TransientStorageStrategy and
handle IOExceptions. Aso use dummy location in filesystem blobstore.
2012-07-18 09:45:23 -07:00
Andrew Gaul
c30c2c4809
Introduce LocalStorageStrategy
...
This commit will allow eventual unification of the filesystem and
transient blobstores. No functional changes -- rename
FilesystemStorageStrategy to LocalStorageStrategy and implement it in
FilesystemStorageStrategyImpl and TransientStorageStrategy.
2012-07-17 23:11:10 -07:00
Adrian Cole
007eba6d7c
Merge pull request #723 from andrewgaul/filesystem-transient-input-supplier
...
Ensure we close streams via InputSupplier methods
2012-07-17 15:23:47 -07:00
Andrew Gaul
bd5bf0dad2
Ensure we close streams via InputSupplier methods
2012-07-17 11:46:10 -07:00
Andrew Gaul
d89153ed1f
Reduce filesystem and transient differences
2012-07-17 09:50:47 -07:00
Andrew Gaul
02203afb07
Harmonize filesystem and transient putBlob
2012-07-16 22:02:00 -07:00
Adrian Cole
05fd64af44
cleaned up http builders and expect tests
2012-07-15 01:50:38 -07:00
Adrian Cole
74b404eab8
Issue 1008:aws-s3 could not get location for region eu-west-1 error
2012-07-07 17:28:44 -07:00
Andrew Gaul
932b738026
Eliminate unlikely transient blobstore TOCTOU bug
2012-06-19 15:20:39 -07:00
Andrew Gaul
227dbf777a
Correct spelled from delimeter to delimiter
2012-06-14 10:05:13 -04:00
Adrian Cole
92d1f1b471
moved to explicitly adding clojure projects
2012-06-03 17:28:56 -07:00
Ioannis Canellos
b078adc3ce
Removed fragments and dynamic imports. Added centralized control of the maven-bundle-plugin.
2012-06-03 19:41:54 +03:00
Aled Sage
ffe783d92b
Issue 936: fixes async multi-part upload of small blob
...
Previously, the upload did not start...
2012-05-21 15:39:27 +01:00
Aled Sage
cd9c830c5a
Issue 647: store Expires as Date; added ContentMetadataCodec for converting to/from HTTP headers
2012-05-17 11:24:50 +01:00
Aled Sage
9aedf7b6f6
Issue 647: added "Expires" header for ContentMetadata
2012-05-17 11:24:45 +01:00
Aled Sage
1b2eb74604
Issue 656: failing test, demonstrating failures when non-default aws-s3 location is specified
2012-05-14 23:18:30 -07:00
Andrew Gaul
f55231d607
Tolerate oversized ranges in getBlob
2012-05-14 15:16:32 -07:00
Andrew Gaul
a30aad05ed
Harmonize filesystem and transient getBlob
...
This commit also simplifies HTTP range logic calculations, sets the
correct Content-Length, and avoids an unneeded copy.
2012-05-14 11:02:03 -07:00
Andrew Phillips
29e7e7e85e
Revert "Merge pull request #617 from andrewgaul/filesystem-transient-remove-copy"
...
This reverts commit 0fe120d659
, reversing
changes made to 5033b98252
.
2012-05-08 23:37:19 -07:00
Andrew Gaul
d13e8aec4a
Remove unused copy method
...
Also make second copy method private access.
2012-05-08 21:08:03 -07:00
Adrian Cole
5033b98252
NPE guard
2012-05-08 17:50:07 -07:00
Andrew Gaul
4ac7629f44
Delegate blob storage to TransientStorageStrategy
...
This further minimizes the drift between the filesystem and transient
blobstores. We also now require that users keep the BlobStoreContext
open instead of using ConcurrentMap singletons. Finally we remove the
"stub" container.
2012-05-08 14:11:32 -07:00
Andrew Gaul
442c51eb3c
Introduce TransientStorageStrategy
...
This allows code from the filesystem blobstore to be more similar to
the transient blobstore. This commit also corrects a bug where
blobExists did not throw an exception when the container did not
exist.
2012-05-07 16:52:31 -07:00
Andrew Gaul
3a0c15b345
Reduce filesystem and transient differences
...
These providers have a similar lineage but many gratuitous
differences. This commit reduces the diff between them and is a
prerequisite for upcoming changes to make them more similar to each
other and real providers. Some future commit might unify these in
some smarter way, e.g., having a TransientStrategy to match
FilesystemStrategy.
2012-05-07 15:55:05 -07:00
Adrian Cole
19390ea87d
Merge pull request #602 from andrewgaul/propagate-or-null
...
Eliminate Throwables2.propagateOrNull
2012-05-02 15:21:30 -07:00
Andrew Gaul
74440a7a87
Eliminate Throwables2.propagateOrNull
...
Throwables.propagate always propagates the Throwable; there is no need
to return null.
2012-05-02 13:51:36 -07:00
Andrew Gaul
646f8d8b13
Improve use of Throwables.propagate
...
Throwing the return value removes some unneeded asserts and return
statements. Also remove some useless and misspelled propogate
wrappers.
2012-05-02 11:05:22 -07:00
Andrew Gaul
755d51ad27
Remove unused transient blobstore methods
...
Also make some helpers private. Generally, make the transient
blobstore more similar to others.
2012-05-01 22:37:01 -07:00
Adrian Cole
09e8ff1d8e
Merge pull request #597 from andrewgaul/simplify-transient-blobstore
...
Simplify transient blobstore logic
2012-05-01 18:48:39 -07:00
Andrew Gaul
253fd1f608
Simplify transient blobstore logic
...
Many more simplifications remain.
2012-05-01 14:17:00 -07:00
Andrew Gaul
519a3ac193
Recurse in subdirectories before deleting blobs
...
This ensures that we have at most one PageSet of Futures awaiting
completion.
2012-05-01 11:18:24 -07:00
Adrian Cole
8ab9904481
added tests
2012-05-01 08:22:56 -07:00
Andrew Gaul
c7dc1213f0
Do not set member until we completely validate it
2012-04-30 15:09:37 -07:00
Andrew Gaul
e4514240e0
Optimize clearContainer for large folders
...
Previously we built up a list of all blobs then executed removeBlob on
all of them simultaneously. For sufficiently large folders this would
cause an OutOfMemoryError. There are cleaner ways to write this but
this approach mimimizes the patch. I will continue working on this in
subsequent commits, including optimizing for deep subdirectories.
This commit also fixes a bug in the transient blobstore where deleting
elements while reading a directory resulted in NoSuchElementException.
2012-04-28 17:11:13 -07:00
Adrian Cole
ba7ba36d20
switched to buildView
2012-04-24 12:26:37 -07:00
Adrian Cole
df7d2acbb4
wrapper -> view
2012-04-23 19:14:36 -07:00
Adrian Cole
886d2cafb9
created base Context class with ProviderMetadata and Identity
2012-04-23 16:16:51 -07:00
Adrian Cole
5ea29cbbb7
Merge pull request #560 from danikov/covariant-future-iterables
...
covariant compatible version of futureIterables
2012-04-18 07:35:23 -07:00
danikov
fff1c7dc2d
make FutureIterables covariant compatible + update tests
2012-04-18 13:06:54 +01:00
Adrian Cole
0b59dea073
removed ContextBuilder subclasses; added unwrap; undid generic params
2012-04-16 00:44:20 -07:00
Adrian Cole
c56c2d2f72
Issue 897: moved clojure off Factory -> Builder
2012-04-12 17:07:13 -06:00
Adrian Cole
23cb01f977
refactor PropertiesBuilder and related types into ApiMetadata and ProviderMetadata, and update all usage
2012-04-11 19:47:09 -06:00
Andrew Gaul
b47860afc1
Use inference to elide duplicated type parameters
...
Found with:
grep 'Builder.*<.*>.*Immutable.*<.*>.*builder();'
2012-04-08 22:32:04 -07:00
Adrian Cole
764e0907f7
Issue 657:ApiMetadata
2012-04-01 18:43:31 -07:00
Adrian Cole
5c6ce9f081
organize imports
2012-03-28 03:37:48 -04:00
Ioannis Canellos
5490b3068c
[842] Added required import packages to cloudfiles api bundle. Improved import packages in all bundles.
2012-02-17 00:49:39 +02:00
Adrian Cole
ed7b8895e6
Issue 840:remove compute.clj and blobstore.clj
2012-02-15 14:55:26 +01:00
Adrian Cole
fe4d148528
updated current version to 1.5.0-SNAPSHOT
2012-02-04 11:06:07 -08:00
Adrian Cole
c388fc41b4
Issue 826: removed eager supplier of @Provider endpoint
2012-02-03 13:51:26 -08:00
Adrian Cole
bdd739ad04
Issue 826:support api-generated location metadata across service types, note this ensures authenticationexceptions propagate even after context creation
2012-02-03 00:27:29 -08:00
Adrian Cole
3df052565f
updated current version to 1.4.0-SNAPSHOT
2012-01-16 13:08:32 -08:00
Adrian Cole
2dfdbb4b56
fixed url for blobstore copy and improved code
2012-01-15 14:31:05 -08:00
Adrian Cole
2bff310db2
fixed thread safety in test
2012-01-11 20:12:44 -08:00
Aled Sage
86929f91f6
Issue-572: added @Beta to ListAllOptions
2012-01-12 00:39:27 +00:00
Adrian Cole
8f5b46d50a
Merge pull request #310 from aledsage/Issue-572-BlobStore-listAll-Options
...
Issue-572: added ListAllOptions for configuring BlobStores.listAll as eager
2012-01-11 16:06:38 -08:00
Aled Sage
657c268db7
Issue-572: added ListAllOptions for configuring BlobStores.listAll as eager
2012-01-11 21:00:03 +00:00
andreisavu
f90a2bd039
Issue 681. Enhance jcloud to support aws-s3 Reduce Redundancy Storage (RRS)
2012-01-11 22:18:28 +02:00
Adrian Cole
e46ee9fbc4
Issue 807:update license headers
2012-01-09 10:54:57 -08:00
Adrian Cole
add431a329
missing build property commit
2012-01-08 00:04:04 -08:00
Adrian Cole
f390f314ee
Issue 803: changes needed when guice is in production mode
2012-01-07 06:08:32 -08:00
Adrian Cole
f06e6982eb
Issue 800:introduce property for build version
2012-01-05 17:51:55 -08:00
Adrian Cole
42137677da
Issue 801:fix inconsistency in test property test.provider.apiversion set in pom.xml -> api-version
2012-01-05 13:09:45 -08:00
Adrian Cole
43d15301c3
removed deprecated newBlob
2011-12-18 18:35:18 -08:00
Adrian Cole
9899372737
Merge pull request #247 from aledsage/Issue-572-BlobStore-listAll
...
Issue 572: added BlobStores.listAll for a lazy iterable
2011-12-15 11:38:17 -08:00
Aled Sage
82bfcbfbfa
Issue 572: added BlobStores.listAll for a lazy iterable
2011-12-15 18:12:14 +00:00
Aled Sage
80ed183ca4
Issue 572: ListContainerOptions.equals/hashCode to aid testing with mocks
2011-12-14 23:47:43 +00:00
Andrew Gaul
4c7637bcac
Clean up DeleteAllKeysInList.execute
...
Simplify control flow and execute getResourcesToDelete after
imposeBackoffExponentialDelay. Impose backoff only on unexceptional
path. Do not concatenate exceptions with toDelete since
getResourcesToDelete will pick these up. Prefer isEmpty over size.
2011-12-14 13:40:58 -08:00
Mattias Holmqvist
9865616c2c
Issue 772: Fix clojure tests when running with Clojure 1.3.0. Added ^:dynamic to Vars to support Clojure 1.3.0. Also cleaned up tests a bit, not using earmuffs when inappropriate.
2011-12-08 01:12:52 +01:00
Ioannis Canellos
70bb4a17e2
Updated fragment declarations so that they can comply with OSGi 4.3 specification.
2011-11-23 19:03:51 +02:00
Adrian Cole
69467b04e3
Issue 752:move off deprecated systemProperties to systemPropertyVariables in surefire
2011-11-14 19:25:45 +02:00
Andrew Gaul
665d5df938
Propagate exceptions
...
Caught TransientAsyncBlobStore errors by visual inspection, the rest
with grep.
2011-11-09 18:21:00 -08:00
Adrian Cole
5d252e6fd5
removed throws clauses to UnsupportedEncodingException where they aren't thrown
2011-10-28 15:00:56 +02:00
Adrian Cole
552242e863
moved to 1.3.0-SNAPSHOT
2011-10-16 12:26:31 -07:00
Andrew Gaul
48ee511275
Fix createContainerInLocation return value.
...
Previously it always returned true. Addresses issue 629.
2011-10-11 11:26:40 -07:00
Andrew Gaul
49d07239d2
Configurable endpoint for transient blobstore
...
Fixes issue 569.
2011-10-10 11:35:29 -07:00
Alex Heneveld
9d30fde375
issue 704, clojure 1.3 compatibility: removed uses of clojure-contrib, bringing in preferred modular dependencies where needed (tools.logging and core.incubator), adding the map-str function (that is all that was missing from clojure-contrib string), changing uses of "condition" to be java.lang.Exception, and changing the reference to private type byte-array-type to be the class directly in its own extend-protocol block since private type isn't liked under clojure 1.3; also removed clojure 1.1 build profile
2011-10-03 11:17:16 +01:00
Guillaume Nodet
87dd23551c
Avoid using a non official jsr and use our own annotations
2011-09-16 17:52:12 +02:00
Adrian Cole
2a4e89912b
Merge branch 'master' of git://github.com/castlabs/jclouds
...
* 'master' of git://github.com/castlabs/jclouds:
added test for range requests with filesystem backend and corrected behavior
Improve Range handling. * allowing to GET last n bytes. * start from GET range now spec conform (to field empty instead of Long.MAX_VALUE)
2011-08-19 14:38:21 -07:00
Adrian Cole
960bfe709f
Issue 663:Update license headers to jclouds, Inc. and setup NOTICE file
2011-08-16 18:14:30 -07:00
Sebastian Annies
173592f7d5
added test for range requests with filesystem backend and corrected behavior
2011-08-12 13:48:32 +02:00
Sebastian Annies
5843d5fee9
Improve Range handling.
...
* allowing to GET last n bytes.
* start from GET range now spec conform (to field empty instead of Long.MAX_VALUE)
2011-08-09 16:15:54 +02:00
Adrian Cole
0a8f38b90e
bumped snapshot version to 1.2.0-SNAPSHOT
2011-08-05 04:09:23 +01:00
Ben Mabey
19339b807a
fixes clojure's blobstore clear-container wrapper fn
2011-07-12 16:46:54 -06:00
Ben Mabey
98ffa9c4b5
fixes typo in clj blobstores to allow for blob-last-modified accessors
2011-06-17 09:35:52 -06:00
Andrew Phillips
7d2fb23119
Master version is now 1.1.0-SNAPSHOT (= next feature version) now that 1.0.0 is out
2011-06-05 11:17:43 +04:00
Adrian Cole
1f535ebb6f
Issue 80: public acl for atmos
2011-06-03 02:07:12 -07:00
Dmitri Babaev
e1f0cdcfa5
Merge commit '6d187ed9baaad1e00dbe65b36ea2989c951a5a28', ssh client patch is reverted due to massive changes in code
...
Conflicts:
drivers/jsch/src/main/java/org/jclouds/ssh/jsch/JschSshClient.java
2011-06-03 03:50:47 +04:00
Adrian Cole
a68640351f
better error when last-modified header not found
2011-06-02 13:51:49 -07:00
Dmitri Babaev
0fedf6e467
Merge commit '7d0248c5dd972287e51ad1971d61a6ddc8bdcdf5'
2011-06-01 20:37:49 +04:00
Gustavo Morozowski
557c0d75fe
moved maven-bundle-plugin instructions to top project pom
2011-05-16 09:14:12 -03:00
Adrian Cole
ddc514d602
Issue 42: added osgi fragment plugin to poms
2011-05-15 12:08:53 -07:00
David Santiago
6a3ce93d26
Clean up a comment on the blobstore2/blob function. For realsies.
2011-04-21 14:05:51 -05:00
David Santiago
29744fddda
Clean up a comment on the blobstore2/blob function.
2011-04-21 11:36:47 -05:00
David Santiago
6152de91c5
Small enhancements to blobstore2_test.
...
Made each test clause insert a uniquely named blob, to reduce risk that an
earlier correct result masquerades as a success in a later clause.
2011-04-21 11:32:42 -05:00
David Santiago
cea0e7d7ad
Update blobstore2 to have a convenience protocol for building blob payloads.
...
* Added PayloadSource protocol with a number of implementations, including
all currently covered classes.
* Added implementation for clojure.lang.IFn, so that you can pass in a closure.
* Updated blob function to pass the :payload argument through the payload
protocol function.
* Added some tests for the payload protocol.
2011-04-21 04:03:58 -05:00
Adrian Cole
9e94fc6fc9
updated license headers
2011-04-09 03:20:17 -07:00
Adrian Cole
8d26999bc2
updated to surefire 2.8, and revised test annotations to be compatible with testng 5.14.10
2011-04-09 01:09:35 -07:00
Adrian Cole
5f43dbb6fa
updated tests to include containercount parameter
2011-04-08 15:03:14 -07:00
Adrian Cole
25eb1581ea
added parallel file upload test to blobstore
2011-04-07 12:26:47 -07:00
David Santiago
a9f99f1b4e
Update put-blob to new multipart API and add test.
...
How to do multipart on a put changed after the previous commit.
2011-04-06 02:53:19 -05:00
David Santiago
27189fba21
Add multipart? option to put-blob.
2011-04-06 00:29:22 -05:00
David Santiago
aa89a53b86
Merge remote branch 'upstream/master'
2011-04-06 00:26:42 -05:00
David Santiago
ee339e109b
Update create-container to take more options.
...
* location is now optional, given through the :location keyword.
* public-read? option, can be set to true to create a publically readable
container.
2011-04-05 18:57:28 -05:00
Adrian Cole
2bfc84beeb
Issue 430: PutOptions.multipart()
2011-04-05 12:26:16 -07:00
David Santiago
793740b9be
Merge remote branch 'upstream/master'
2011-04-05 02:48:48 -05:00
David Santiago
ed90e29d68
Further refinements to blobstore2 in response to feedback on Github and IRC.
...
* Removed redundant functions, made others delegate to others instead
of calling right into Java.
* Fixed typos, removed unused dependency references.
* Better naming for key functions: list-container -> blobs, list-blobs ->
container-seq.
* Made blob fn no longer require a blobstore argument.
* Better comments, updated tests.
2011-04-05 02:42:45 -05:00
Adrian Cole
b9f0cbcb89
crypto tuning
2011-04-04 23:37:00 -07:00
David Santiago
3011ffad23
Merge remote branch 'upstream/master'
2011-04-05 01:34:25 -05:00
Adrian Cole
d69d31a5d2
expose constructor for blobbuilderimpl
2011-04-04 22:35:22 -07:00
David Santiago
1239e1a7c9
Merge remote branch 'upstream/master'
...
Conflicts:
blobstore/src/test/clojure/org/jclouds/blobstore_test.clj
2011-04-04 19:04:46 -05:00
David Santiago
33150c40a2
Reduce the number of blobs to test in large-container-list-test.
2011-04-04 19:02:24 -05:00
Adrian Cole
ab8a7e452c
tuning so that we can reliably test multiple page lists in clj
2011-04-04 17:00:28 -07:00
David Santiago
c85a7f7693
Merge remote branch 'upstream/master'
...
Conflicts:
blobstore/src/test/clojure/org/jclouds/blobstore_test.clj
2011-04-04 17:27:15 -05:00
David Santiago
3d7033ad3d
New Clojure blobstore API in blobstore2.clj
...
Updates to API include more regular function arguments, fewer compound
functions, and fewer arities of dubious quality. Tests also ported.
2011-04-04 17:23:56 -05:00
Adrian Cole
c0a261334b
added large container list test in clj
2011-04-04 14:37:46 -07:00
David Santiago
57f0dcaf15
Add another arity to list-blobs so that it can be called without the blobstore argument. Also add some basic tests for list-blobs-test.
2011-04-04 15:54:35 -05:00
Adrian Cole
53c735fdff
enforced blobs must have uri, container, and can have publicAccess
2011-04-03 18:15:09 -07:00
Adrian Cole
fc8bb96363
Merge branch 'master' of https://github.com/davidsantiago/jclouds
...
* 'master' of https://github.com/davidsantiago/jclouds :
Additional refinements to blobstore.clj updates.
Updates to improve blobstore.clj.
2011-04-02 00:34:14 -07:00
Adrian Cole
e4b85db4b5
added md5 test
2011-04-02 00:30:57 -07:00
Adrian Cole
a3a9bc3948
fixed usage statement
2011-04-02 00:30:49 -07:00
David Santiago
3459df3653
Additional refinements to blobstore.clj updates.
...
* Added an option to conditionally call calculateMD5() in blob2.
* Fixed a bug in md5-blob (which predated these changes).
* Added a direct test for blob2 and calculateMD5.
2011-04-02 02:26:45 -05:00
David Santiago
85d0474068
Merge remote branch 'upstream/master'
2011-04-02 02:26:15 -05:00
Adrian Cole
82d84b1ca1
added getoptions to blob request signer
2011-04-01 21:38:53 -07:00
David Santiago
2c74c70b1f
Updates to improve blobstore.clj.
...
* New function blob2 exposes many more options for creating blobs.
* Updated functions that use blob to use blob2.
* New functions sign-get, sign-put, and sign-delete replace the
functionality of sign-blob-request.
* Added tests.
* Deprecation metadata added to blob and sign-blob-request.
2011-04-01 23:32:07 -05:00
Adrian Cole
54ea98ba49
fixed typo in blob builder
2011-04-01 14:43:08 -07:00
Adrian Cole
ddbd6fc1d8
allow usermetadata to be null
2011-04-01 13:52:43 -07:00
Adrian Cole
5ddf9aabca
added forSigning to blobBuilder
2011-04-01 11:38:10 -07:00
Adrian Cole
c352895ae2
Merge branch 'fix-list-blobs' of https://github.com/joodie/jclouds
...
* 'fix-list-blobs' of https://github.com/joodie/jclouds :
make prefix optional for blobstore/list-blobs
make blobstore/list-blobs actually lazy
2011-03-31 10:03:52 -07:00
Adrian Cole
15d8aecdac
Issue 488:add support for ninefold storage
2011-03-29 14:03:21 -07:00
Adrian Cole
5fd7e559f4
fixed so that you can pass properties into blobstore
2011-03-29 13:05:24 -07:00
Joost Diepenmaat
23e988ef5a
make prefix optional for blobstore/list-blobs
2011-03-15 15:49:00 +01:00
Joost Diepenmaat
5983eb0402
make blobstore/list-blobs actually lazy
2011-03-15 15:34:54 +01:00
Adrian Cole
f5fa2d983b
added toString to common functions so that they are easier to see when debugging
2011-03-14 01:39:59 -07:00
Adrian Cole
9bdd97340b
Issue 506:support hosteurope blobstore; break out scality-rs2
2011-03-12 12:14:11 -08:00
Adrian Cole
e5af84ef0e
Issue 486: moved netty to a driver and created a base payload slicer
2011-03-07 09:54:25 +01:00
Tibor Kiss
ed27cbc7c0
AWS S3 sequential Multipart Upload strategy
2011-03-07 09:54:25 +01:00
Adrian Cole
897dc000d5
made blobmetadata parser name accessible for testing
2011-02-26 21:48:51 -08:00
Adrian Cole
f38c8d5e56
Issue 475: removed builtin providers for ec2, s3, cloudservers, cloudfiles, and vcloudexpress
2011-02-15 17:51:40 +01:00
Adrian Cole
20c23e7962
Issue 462: corrected semantics of BlobMap when using inDirectory and added BlobBuilder
2011-02-13 22:32:31 +01:00
Adrian Cole
30ed6fd848
promote scaleup-storage
2011-01-31 10:20:17 -08:00
Adrian Cole
c93186ef9d
S3 acls are not portable, so let's not make them enums
2011-01-31 10:05:23 -08:00
Adrian Cole
675563c96a
Issue 418: updated location object to include metadata and iso3166codes
2011-01-31 01:00:20 -08:00
Adrian Cole
b62a6309be
workaround to walrus not having NextMarker in bucket listing
2011-01-30 02:32:00 -08:00
Adrian Cole
142aec45cb
walrus: workaroud date parse issue, more intelligently deduce containernotfoundexception when s3 is in 'path' mode, and adjust base test classes
2011-01-28 10:41:40 -08:00
Adrian Cole
094ed5c25c
fixed integration test classes and demoted scaleup-storage to sandbox
2011-01-26 23:52:26 -08:00
Adrian Cole
02fffda058
fixed date parser when there's a wrong date format specified
2011-01-26 19:23:22 -08:00
Adrian Cole
1df15209ec
fixed built-in http client
2011-01-25 10:23:58 -08:00
Adrian Cole
a5211f523e
switched to use eucalyptus partnercloud as community cloud hasn't enough resources to complete testing
2011-01-24 08:12:14 -08:00
Adrian Cole
e00b465c78
Issue 440, 429: decoupled openstack swift from cloudfiles
2011-01-09 11:49:59 -08:00
Adrian Cole
3ca278723d
Issue 440: added cloudservers and cloudfiles us and uk providers
2011-01-08 15:59:48 -08:00
Adrian Cole
2e436741bd
Issue 440: split Eucalyptus Community Cloud (ecc-s3) into a provider, and moved walrus to be an api
2011-01-05 11:27:17 +01:00
Adrian Cole
90c5c40fbd
moved provider agnostic location code to core
2011-01-02 12:58:35 +01:00
Adrian Cole
60b6b68556
code cleanup: http request immutability (except payload), builders, test backfill
2010-12-30 23:40:23 +01:00
Adrian Cole
9ff54e5956
worked around case problem in scaleup-storage
2010-11-30 16:06:06 +00:00
Adrian Cole
53ac4751f5
Issue 414: fixed length problem on string payload by eagerly encoding to UTF-8
2010-11-30 11:46:25 +00:00
Adrian Cole
f4870b547c
bad method mapping for count-blobs
2010-11-25 15:18:16 +01:00
Adrian Cole
9f51726239
Issue 413: removed use of guice internal @Nullable annotations
2010-11-24 10:43:54 +01:00
Adrian Cole
0c690f686f
Issue 396: added peer1-storage provider
2010-11-06 09:44:05 +01:00
Adrian Cole
fb93e81301
refactored to create typed contextspec objects
2010-10-24 22:59:01 -05:00
Adrian Cole
49b88183d2
refactored compute provider implementation
2010-10-17 18:17:24 -07:00
Adrian Cole
a9de959146
Issue 377: refactored value classes and tests so that we could test and implement credential storage
2010-10-16 22:24:22 -07:00
Adrian Cole
0f0710e2f9
beta-7 regressions
2010-09-19 21:30:07 -07:00
Adrian Cole
1981b15837
regressions for beta-7
2010-09-19 19:12:44 -07:00
Adrian Cole
53f4bec356
Issue 361: normalize test properties
2010-09-19 13:30:11 -07:00
Hugo Duncan
af094f6ffe
Added sign-blob-request overload for default get request
2010-09-19 11:15:22 -04:00
Hugo Duncan
b7307add04
added new header methods to sign-blob-request, and enabled sign-blob-request-test
2010-09-19 10:28:10 -04:00
Adrian Cole
226179869a
Issue 353: updated and tested through s3, azureblob, cloudfiles, and synaptic
2010-09-19 03:37:41 -07:00
Adrian Cole
3639af0f12
Issue 353: refactored payload/blob so that contentMetadata is a type.
2010-09-19 02:15:03 -07:00
Adrian Cole
ac9a642cd3
Issue 353: added disposition, encoding, language to blob and transient blobstore
2010-09-18 19:38:14 -07:00
Rainbowbreeze
4c2ff1ea63
Added futher implementation for content disposition
2010-09-17 18:05:13 +02:00
Adrian Cole
15c878c1bf
updated pom and examples to include filesystem provider
2010-09-14 10:04:05 -07:00
Adrian Cole
0e5823afad
Issue 352: added transient blob signing
2010-09-13 22:41:19 -07:00
Hugo Duncan
8088bdc1a1
Comment failing (new) tests
2010-09-13 23:43:04 -04:00
Hugo Duncan
754a511ec2
Added sign-blob-request method, and some tests (broken)
2010-09-13 23:30:13 -04:00
Adrian Cole
f068a06354
Issue 352: refactored request signing
2010-09-13 18:24:16 -07:00
Adrian Cole
198eeec3d9
added volume to hardware object, added signed blob support, added example of how to use signed blobs with computeservice
2010-09-12 02:27:42 -07:00
Adrian Cole
462a6e5617
Issue 335: took initialization code out of injection providers and into memoized suppliers, this will allow us to tune caching and speed up injection as guice is single-threaded; fixed broken windows along the way
2010-08-17 02:08:39 -07:00
Adrian Cole
4b76982261
Issue 191: added in-memory chef-client; use provider: transientchef
2010-08-12 18:53:51 -07:00
Adrian Cole
420503d32e
updated and corrected license headers
2010-08-12 16:04:26 -07:00
Adrian Cole
60908bfb6e
Issue 191: added databag support
2010-08-11 18:34:50 -07:00
Adrian Cole
7a593a1630
added WriteTo interface for streaming puts
2010-08-11 02:13:28 -07:00
Adrian Cole
25bc2c0691
added get-blob-stream helper and corresponding test
2010-08-10 10:37:17 -07:00
Adrian Cole
6f180ddb4e
Issu 301: refactored utilities that depend on guava. introduced Crypto, CryptoStreams, and more Payloads to help deal with encrypted payloads and headers
2010-08-01 02:07:53 -07:00
Adrian Cole
a9a0c53fb2
Issue 191: added RSA PEM parsing to encryptionUtils
2010-07-30 23:58:31 -07:00
Adrian Cole
34518f54ba
Issue 325: massive refactor in order to stop serializing native async http client requests
2010-07-30 01:26:55 -07:00
Andrew Phillips
e1f5369243
Removed 1,000,000 redundant .gitignores (they're inherited)
2010-07-28 14:38:28 +02:00
Adrian Cole
ca247efaed
Issue 324: added properties for (jclouds|provider).modules, (jclouds|provider).credential.resource, and (jclouds|provider).credential.file in order to support rewiring jclouds http and other components via properties files, and extract out where credentials are obtained from
2010-07-28 00:41:13 -07:00
Adrian Cole
7c3518f7ff
Issue 191: changed encryption service so that it can decode a PEM key. updated chef to work in google appengine
2010-07-22 15:35:03 -07:00
Adrian Cole
887bb7adfe
Issue 316: refactored ssh to use Payload object; deprecated non-payload methods
2010-07-19 13:08:12 -07:00
Adrian Cole
1d0949dec5
Issue 315: added auto-deserialization of json into java objects and new @Unwrap annotation; Issue 311: fixed template parsing for new cluster instance in ec2; Issue 191: started adding node support to chef
2010-07-17 01:30:37 -05:00
Phil Hagelberg
328679799b
Missed a layer of nesting.
2010-07-13 17:18:21 -07:00
Phil Hagelberg
3db58174bd
Fix formatting of generateMD5BufferingIfNotRepeatable call.
2010-07-13 17:00:49 -07:00
Phil Hagelberg
2ad5df1d3c
Use blobstore argument in md5-blob instead of dynamically-bound var.
2010-07-13 17:00:49 -07:00
Adrian Cole
41e3ec6709
Issue 27: got eucalyptus and walrus working, after refactoring error handling
2010-07-11 01:26:56 -07:00
Adrian Cole
e8d0a11cda
Issue 301: refactored http payload and rewrote crufty tests
2010-07-09 21:13:11 -07:00
Adrian Cole
31d2da3c6f
Issue 301: removed encryption service dependency from blob and added helper methods to blobstore.clj
2010-07-08 10:42:18 -07:00
Adrian Cole
da3baf523c
Issue 301: refactored http payload data from blob -> core, added content length, type, md5; fixed length bug in ec2 and added more tests to ensure this doesn't happen again
2010-07-08 03:46:34 -07:00
Adrian Cole
204c093753
refactored encryption service and exposed sha256 routine
2010-07-06 18:21:11 -07:00
Adrian Cole
8703c4a7a4
Issue 199: ning examples
2010-07-06 14:37:40 -07:00
Adrian Cole
e90857d7a4
added toString hashCode and equals to context objects
2010-07-06 13:32:13 -07:00
Adrian Cole
85b5bd48f1
loosened dependency on the GeneratedHttpRequest class
2010-07-02 16:47:46 -07:00
Adrian Cole
9bac52d315
Issue 298: fixed regression on authorizationexception not propagating, and also missing gogrid file
2010-07-02 12:05:41 -07:00
Adrian Cole
714a459796
Issue 297: exposed utilities like encryption, logging, date, threads, and ssh to context objects
2010-06-29 15:45:59 -07:00
Adrian Cole
7e28286dd0
Issue 293: normalized on provider vocab
2010-06-28 12:03:35 -07:00
Adrian Cole
caceae90bd
Issue 293: normalized on identity/credential vocab
2010-06-28 11:33:41 -07:00
Adrian Cole
27f4f69b4c
Issue 293: refactored code to provide for api versions and coherent properties for authorization
2010-06-28 05:07:36 -07:00
Adrian Cole
055c56dc08
Issue 292: added simple http client
2010-06-25 10:45:15 -07:00
Adrian Cole
b2141b0d59
Issue 271 updated to support google storage and eucalyptus
2010-06-15 17:05:55 -04:00
Adrian Cole
518b453c6d
Issue 271 updated to support google storage
2010-06-15 17:04:01 -04:00
Adrian Cole
cba3f660fb
Issue 27: added 'walrus' blobstore and 'eucalyptus' compute providers
2010-06-15 15:22:32 -04:00
Adrian Cole
f25100fe9b
Issue 191: corrected multipart form and added cookbook signing to chef client
2010-06-12 17:17:42 -07:00