Add Compass to Aggregator
by Tomas Sedovic
This patch moves the stylesheets away from vanila CSS towards the Compass
framework and the SASS indented syntax (similar to HAML).
Right now it's just a backend change -- the UI should stay the same. There's
not much point in doing UI changes when it's still prone to big changes.
After you apply this, run `rake gems:install` to install the missing gem
(compass). More details in the commit message.
Thomas
13 years, 11 months
Contribute Page: Buzilla?
by Martyn Taylor
Guys,
The contribute page http://deltacloud.org/contribute.html, shows this:
# Bugs
We track bugs in Red Hat Bugzilla. You can view open bugs or file a new one there.
Since we're not using the Bugzilla we should remove this from the website. Unless this is due to change?
Someone was asking about this on IRC
Cheers
13 years, 11 months
[PATCH aggregator] Added missing require to condormatic
by Jan Provazník
From: Jan Provaznik <jprovazn(a)redhat.com>
Condormatic uses REXML::Document, make sure this lib is loaded.
---
src/app/util/condormatic.rb | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/src/app/util/condormatic.rb b/src/app/util/condormatic.rb
index 81cf2b9..155fa7d 100644
--- a/src/app/util/condormatic.rb
+++ b/src/app/util/condormatic.rb
@@ -17,6 +17,8 @@
# MA 02110-1301, USA. A copy of the GNU General Public License is
# also available at http://www.gnu.org/copyleft/gpl.html.
+require 'rexml/document'
+
def condormatic_instance_create(task)
begin
--
1.7.0.1
13 years, 11 months
QOS Graphing/DataService Patches
by Martyn Taylor
This Series of Patches implements the DataService and GraphService Methods to provide functions to create the QOS Graphs
13 years, 11 months
[PATCH aggregator] Add Condor logs files to .gitignore.
by Tomas Sedovic
From: Tomas Sedovic <tsedovic(a)redhat.com>
The move to Condor brought us new log files -- one for each new instance. This
fix hides them from git.
---
.gitignore | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/.gitignore b/.gitignore
index 0444368..3e3194a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,6 @@ database.yml
development.sqlite3
production.sqlite3
test.sqlite3
+
+# Condor log for created instances
+src/*.log
--
1.7.1.1
13 years, 11 months
Cloud Storage and Image upload - Instance snapshot via deltacloud core API
by marios@redhat.com
Task:
"Implement Cloud Storage via the Deltacloud API where available, in
order to ultimately enable custom Image upload. In addition and where
image upload is not (yet) supported, implement 'Instance Snapshot'
functionality, where available. "
Hi All,
David, Michal and myself had a discussion last week about how we might
implement cloud storage via the deltacloud api with the ultimate goal of
allowing custom image upload to cloud storage. Only Amazon S3 and
Rackspace CloudFiles offer this type of generic 'upload an object' type
service (and only EC2 currently uses this storage for custom Images).
However, EC2,Rackspace and Gogrid do expose a 'snapshot a running server
and save as an Image' type function via their API, whilst Terremark and
Rimuhosting allow you to clone a running server but only to produce
another running server (i.e. cant save as an Image for later instantiation).
I think there are two independent subtasks here:
**Work out the operations for the generic cloud storage (i.e.
s3/cloudfiles) and implement 'Blob Management'. This will appear as a
top level collection (like Instances, Images etc, 'Blobs' or somesuch
name 'Objects'?) - to appear obviously only for those drivers that
support it, Amazon AWS and Rackspace.
**Implement the Instance snapshot function for those clouds where it
makes sense (e.g. do we want to implement the 'clone this Instance' type
functionality offered by Terremark and Rimuhosting?). This could be
exposed as an Instance 'action' (like stop, start, reboot) ?
I have just finished a review of the various APIs to see what each
exposes in terms of cloud storage and/or instance 'snapshotting'. I am
currently getting a list of operations together for the cloud storage
functions (s3/cloudfiles) and will start to implement this as an
'Object-Store' top level collection.
The Instance snapshot function still needs some thought/discussion about
how/where we will implement this. I share my notes below for reference,
please share your comments and thoughts on this if you are interested
and get involved,
all the best, marios
========== NOTES ==========
=====================================================
Q. Which of our currently supported clouds offers a generic 'upload
data/blob/object to our storage service and access from anywhere even
from machines outside our cloud' - type storage?
=====================================================
--i--> Amazon Web Services (AWS) offers the Simple Storage Service (S3)
[1] - not to be confused with S4 [2]
--ii-> Rackspace offers CloudFiles [3]
** The services are very similar.
** Create 'buckets' in S3 and 'containers' is CloudFiles, and place
'objects' within these.
** Each S3 account is limited to 100 buckets, each holding an
unlimited number of objects with each at most 5 GBytes.
** A CloudFiles account can have unlimited buckets and objects;
again each object must be < 5 GBytes.
=====================================================
Q. Which of our currently supported clouds allows 'register custom Image
from cloud storage', or, 'save/snapshot an Instance as a new Image'
=====================================================
--i--> Amazon AWS allows you to register an object in S3 as an Image in
EC2 [4] (Rackspace 'coming soon' [5])
** The process of 'save this Instance as an Image in S3' is termed
'bundling'
** PROBLEM: different procedure for Windose vs Linux images [6].
-- For Windows you use the AWS REST API 'BundleInstance' call where you
specify the S3 bucket to upload to (amongst other things).
-- For Linux you must install the 'AMI Tools' command-line utilities
[7] on the Instance you wish to bundle and then 'ec2-bundle-image'.
Confusingly the actual upload is done with 'ec2-upload-bundle' which
takes the S3 bucket name as a parameter.
** In both cases and after bundling is complete you register the
newly created S3 object as an Image for EC2 using the REST API
'RegisterImage' call.
=====================================================
--ii-> Rackspace allows you to snapshot a running Instance [5]
** This is done through a REST API call (POST /images) where you
specify the serverid (Instance) that is to be saved.
** Here there is no seperation between 'make snapshot' and 'upload
to cloud storage' - i.e. cannot export a server image [8].
** Snapshots stay 'attached to the server' [9] (i.e. saved locally?).
** Once process complete the image is available for booting a server
[5].
** 'Custom Image Upload' is in the Cloud Server API Roadmap [5].
=====================================================
-iii-> Gogrid allows you to save a 'MyGSI - Gogrid Server Image' from
your own, preconfigured 'sandbox server'
** You create a MyGSI from a configured, running 'image sandbox
server' and the new image is added to Gogrid's cloud storage [11]
** Weirdly this cloud storage is not exposed at all via the API
** The API call is grid.image.save [12] - you create a new 'image
sandbox server' using 'grid.server.add', configure it and run the 'prep
scripts' and then call the save. Once complete the new MyGSI is
available in your list of images.
=====================================================
--iv-> Rimuhosting allows you to clone an existing server and deploy a
new server from that [10]
** However, the clone must be deployed straight away - you cannot
save as an image for later instantiation.
** A chat with support confirmed this - you *can* save an image for
later use but only by submitting a support ticket (i.e. nothing in the
api or the web 'management console' to support this).
=====================================================
--v--> Terremark VCloud Express allows you to 'clone' an existing server
(a 'vapp') [13] but you cannot save this as an Image (a 'vapp template').
** Similar to the rimuhosting situation - can clone an existing
server as another server, but not as an Image
** POST https://{Terremark URI}/vdc/{vDC ID}/action/clonevapp - you
specify the vApp id to be cloned within the request body.
=====================================================
AWS:
[1] http://aws.amazon.com/documentation/s3/
[2] http://www.supersimplestorageservice.com/
[4] http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/
[6]
http://developer.amazonwebservices.com/connect/thread.jspa?messageID=1078...
[7]
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=368&...
RACKSPACE:
[3] http://www.rackspacecloud.com/cloud_hosting_products/files/api
[5] http://docs.rackspacecloud.com/servers/api/cs-devguide-latest.pdf
[8] http://www.rackspacecloud.com/cloud_hosting_products/servers/faq
[9] http://www.rackspacecloud.com/cloud_hosting_products/servers/pricing
RIMUHOSTING:
[10]
http://apidocs.rimuhosting.com/jaxbdocs/com/rimuhosting/jaxrsorders/JAXRS...
GOGRID:
[11] http://wiki.gogrid.com/wiki/index.php/Cloud_Storage:Cloud_Storage
[12] http://wiki.gogrid.com/wiki/index.php/API:grid.image.save
TERREMARK:
[13]
https://community.vcloudexpress.terremark.com/en-us/product_docs/w/wiki/6...
13 years, 11 months
[PATCH aggregator] Adds provider test
by Jan Provazník
From: Jan Provaznik <jprovazn(a)redhat.com>
This test tries to create provider which was previously destroyed.
It fails for now because frontend hardware profiles are not
destroyed when destroing provider.
---
src/spec/models/provider_spec.rb | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/src/spec/models/provider_spec.rb b/src/spec/models/provider_spec.rb
index aa61cd5..b15b40c 100644
--- a/src/spec/models/provider_spec.rb
+++ b/src/spec/models/provider_spec.rb
@@ -72,6 +72,15 @@ describe Provider do
@provider.url = "http://invalid.provider/url"
@provider.connect.should be_nil
end
+
+ it "should allow to recreate provider with same name" do
+ prov = Factory :mock_provider
+ prov.save!
+ prov.populate_hardware_profiles
+ prov.destroy
+ prov.save!
+ prov.populate_hardware_profiles
+ end
end
end
--
1.7.0.1
13 years, 11 months
[PATCH aggregator] Unhook the cucumber tests from a running core server.
by jason.guiditta
We may want (and probably do) a truly full stack test
that has all external components running, but that is not
the goal with the cucumber tests. External dependencies
should be tested in the 3rd-party library, so for our
acceptance testing, just assume those kinds of things
work as advertised.
Again, a full 'integrated' test suite should probably be
incorporated at some point as well.
---
src/features/support/custom.rb | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/src/features/support/custom.rb b/src/features/support/custom.rb
index 010e81b..e8801ba 100644
--- a/src/features/support/custom.rb
+++ b/src/features/support/custom.rb
@@ -3,3 +3,18 @@ Fixtures.reset_cache
fixtures_folder = File.join(Rails.root, 'spec', 'fixtures')
fixtures = Dir[File.join(fixtures_folder, '*.yml')].map {|f| File.basename(f, '.yml') }
Fixtures.create_fixtures(fixtures_folder, fixtures)
+
+# We can't stub out these methods properly in cucumber, and we don't want to
+# couple these tests to require the core server be running (connections should be tested
+# in the client code), so override the methods for tests here.
+Provider.class_eval do
+ def valid_framework?
+ true
+ end
+end
+
+CloudAccount.class_eval do
+ def valid_credentials?
+ true
+ end
+end
\ No newline at end of file
--
1.7.1.1
13 years, 11 months