tree 8f91577973757bb2436f96481e9fc9983f1b7223
parent fef7bab24ea4cef65445aca8410d1ba59ce1a2e4
parent b0a12bf3030616ce460baea34d7bf45724d569c7
author Adrian Cole <adrian@jclouds.org> 1347217163 -0700
committer Adrian Cole <adrian@jclouds.org> 1347217163 -0700

Merge branch 'master' of https://github.com/jclouds/jclouds into 1.5.x

* 'master' of https://github.com/jclouds/jclouds: (25 commits)
  Moved HP Storage Container Metadata parsing to Swift since it's a standard Swift feature. Moved HP Storage createContainer(String, CreateContainerOptions) to CommonSwiftClient since it's a standard Swift feature. Added support for setting Swift Container Metadata. Added support for deleting Swift Container Metadata. Added copy object feature to Swift. Removed unnecessary TODO comment. Changed DeleteContainerMetadataOptions to just be a List. Changed CopyObjectOptions to be just be a String. Changed CommonSwiftClient.setContainerMetadata() to use just a Map for metadata. Added ExpectTests. Changed setContainerMetadata() to use Iterable instead of List for more generic type goodness. Changed copyObject() to use 4 String params instead of 2 String params to be similar to other such methods in jclouds.
  issue 830: added systemadmin package; more tests fixed
  CDMI: adding support for 1) query parameters 2) non-cdmi content data object operations
  Javadoc update for CloudStack Template.getStatus()
  CloudStack template status parsing update
  merge
  azure management base implementation
  Update parsing of Status in CloudStack Template
  default region endpoint for rackspace legacy apis
  issue 830: fixed VAppTemplateApiLiveTest.deleteVAppTemplate
  Issue 1075:switch to use jetty for java install/web service tests
  nslookup on CentOS 6.2 doesn't set error code when failing, so grep expected output instead
  review addressed
  issue 830: keypair
  Added test descriptions and dependencies to basic Nova live tests
  Configure duplicates plugin to ignore .gitattributes
  decrufted metadataapi
  configure .gitattributes to not convert shell scripts to CRLF on Windows
  Correct typo
  issue 830: more LiveTests fixed on query, vapp, vapptemplate and vdc features
  ...
