From: Jozef Zigmund <jzigmund(a)redhat.com>
I fixed all Rspecs and Cucumbers for provider_account model. Also I fixed some forgotten
renamings.
It was needed change some attributes in migrations.
---
.../admin/provider_accounts_controller.rb | 53 ++++++------
.../controllers/provider_accounts_controller.rb | 62 +++++++-------
src/app/models/image.rb | 2 +-
src/app/models/provider.rb | 11 ++-
src/app/models/provider_account.rb | 8 +-
src/app/views/admin/provider_accounts/_mock.haml | 16 ++++
.../provider_accounts/_provider_selection.haml | 2 +-
src/app/views/admin/provider_accounts/new.haml | 3 +-
src/app/views/admin/providers/_form.haml | 2 +-
src/app/views/builds/new.haml | 6 +-
src/db/development_structure.sql | 89 ++++++++++++++++++++
...824_rename_cloud_account_to_provider_account.rb | 3 +-
...737_rename_cloud_accout_id_for_instance_keys.rb | 9 ++
...123410_rename_cloud_account_id_for_instances.rb | 9 ++
..._families_to_provider_accounts_pool_families.rb | 11 +++
...l_properties_of_columns_in_provider_accounts.rb | 13 +++
src/features/provider.feature | 7 +-
src/features/provider_account.feature | 20 ++---
.../step_definitions/provider_account_steps.rb | 2 +-
src/features/step_definitions/provider_steps.rb | 6 +-
src/features/step_definitions/template_steps.rb | 8 +-
src/features/template.feature | 14 ++--
src/spec/controllers/builds_controller_spec.rb | 6 +-
.../provider_accounts_controller_spec.rb | 32 ++++----
src/spec/factories/instance.rb | 4 +-
src/spec/factories/provider.rb | 8 +-
src/spec/factories/provider_account.rb | 4 +-
src/spec/models/image_spec.rb | 6 +-
src/spec/models/instance_observer_spec.rb | 20 ++--
src/spec/models/instance_spec.rb | 14 +--
src/spec/models/pool_family_spec.rb | 8 +-
src/spec/models/provider_account_spec.rb | 46 +++++-----
src/spec/models/provider_spec.rb | 2 +-
src/spec/models/quota_spec.rb | 48 +++++-----
.../services/data_service_active_record_spec.rb | 58 +++++++-------
35 files changed, 382 insertions(+), 230 deletions(-)
create mode 100644 src/app/views/admin/provider_accounts/_mock.haml
create mode 100644 src/db/development_structure.sql
create mode 100644
src/db/migrate/20110125122737_rename_cloud_accout_id_for_instance_keys.rb
create mode 100644
src/db/migrate/20110125123410_rename_cloud_account_id_for_instances.rb
create mode 100644
src/db/migrate/20110125154113_rename_cloud_accounts_pool_families_to_provider_accounts_pool_families.rb
create mode 100644
src/db/migrate/20110126161751_change_null_properties_of_columns_in_provider_accounts.rb
diff --git a/src/app/controllers/admin/provider_accounts_controller.rb
b/src/app/controllers/admin/provider_accounts_controller.rb
index 41319e9..44d3fc6 100644
--- a/src/app/controllers/admin/provider_accounts_controller.rb
+++ b/src/app/controllers/admin/provider_accounts_controller.rb
@@ -45,65 +45,66 @@ class Admin::ProviderAccountsController < ApplicationController
end
def create
- @provider = Provider.find(params[:select_provider])
+ @selected_provider = @provider = Provider.find(params[:select_provider])
require_privilege(Privilege::CREATE, ProviderAccount, @provider)
@providers = Provider.all
- @cloud_account = ProviderAccount.new(params[:provider_account])
- @cloud_account.provider = @provider
- @cloud_account.quota = @quota = Quota.new
+ @provider_account = ProviderAccount.new(params[:provider_account])
+ @provider_account.provider = @provider
+ @provider_account.quota = @quota = Quota.new
if params.delete :test_account
- test_account(@cloud_account)
+ test_account(@provider_account)
render :action => 'new' and return
end
limit = params[:quota][:maximum_running_instances] if params[:quota]
- @cloud_account.quota.set_maximum_running_instances(limit)
+ @provider_account.quota.set_maximum_running_instances(limit)
- if @cloud_account.invalid?
- if not @cloud_account.valid_credentials?
+ if @provider_account.invalid?
+ if not @provider_account.valid_credentials?
flash.now[:error] = "The entered credential information is incorrect"
- elsif @cloud_account.errors.on(:username)
- flash.now[:error] = "The access key
'#{params[:cloud_account][:username]}' has already been taken."
+ elsif @provider_account.errors.on(:username)
+ flash.now[:error] = "The access key
'#{params[:provider_account][:username]}' has already been taken."
else
flash.now[:error] = "You must fill in all the required fields"
end
render :action => 'new' and return
end
- @cloud_account.pool_families << PoolFamily.default
- @cloud_account.save!
- if @cloud_account.populate_realms
+ @provider_account.pool_families << PoolFamily.default
+ @provider_account.save!
+ if @provider_account.populate_realms
flash[:notice] = "Provider account added."
end
- redirect_to admin_provider_account_path(@cloud_account)
+ redirect_to admin_provider_account_path(@provider_account)
kick_condor
end
def edit
- @cloud_account = ProviderAccount.find(params[:id])
- @quota = @cloud_account.quota
- @provider = @cloud_account.provider
- require_privilege(Privilege::MODIFY,@cloud_account)
+ @provider_account = ProviderAccount.find(params[:id])
+ @quota = @provider_account.quota
+ @provider = @provider_account.provider
+ require_privilege(Privilege::MODIFY,@provider_account)
end
def update
- @cloud_account = ProviderAccount.find(params[:id])
- @provider = @cloud_account.provider
- require_privilege(Privilege::MODIFY,@cloud_account)
- @quota = @cloud_account.quota
+ @provider_account = ProviderAccount.find(params[:id])
+ @provider = @provider_account.provider
+ require_privilege(Privilege::ACCOUNT_MODIFY, @provider)
+ require_privilege(Privilege::MODIFY,@provider_account)
+ @quota = @provider_account.quota
if params.delete :test_account
- test_account(@cloud_account)
+ test_account(@provider_account)
render :action => 'edit' and return
end
limit = params[:quota][:maximum_running_instances] if params[:quota]
- @cloud_account.quota.set_maximum_running_instances(limit)
- if @cloud_account.update_attributes(params[:cloud_account])
+ @provider_account.quota.set_maximum_running_instances(limit)
+ if @provider_account.update_attributes(params[:provider_account])
flash[:notice] = "Cloud Account updated!"
- redirect_to admin_provider_account_path(@cloud_account)
+ redirect_to admin_provider_account_path(@provider_account)
else
render :action => :edit
end
diff --git a/src/app/controllers/provider_accounts_controller.rb
b/src/app/controllers/provider_accounts_controller.rb
index a902150..99ca85d 100644
--- a/src/app/controllers/provider_accounts_controller.rb
+++ b/src/app/controllers/provider_accounts_controller.rb
@@ -36,7 +36,7 @@ class ProviderAccountsController < ApplicationController
def new
@provider = Provider.find(params[:provider_id])
- @cloud_account = ProviderAccount.new
+ @provider_account = ProviderAccount.new
@quota = Quota.new
require_privilege(Privilege::CREATE, CloudAccount, @provider)
end
@@ -44,32 +44,32 @@ class ProviderAccountsController < ApplicationController
def create
@provider = Provider.find(params[:provider_id])
require_privilege(Privilege::CREATE, ProviderAccount, @provider)
- @cloud_account = ProviderAccount.new(params[:cloud_account])
- @cloud_account.provider = @provider
- @cloud_account.quota = @quota = Quota.new
+ @provider_account = ProviderAccount.new(params[:provider_account])
+ @provider_account.provider = @provider
+ @provider_account.quota = @quota = Quota.new
if params[:test_account]
- test_account(@cloud_account)
+ test_account(@provider_account)
render :action => 'new' and return
end
limit = params[:quota][:maximum_running_instances] if params[:quota]
- @cloud_account.quota.set_maximum_running_instances(limit)
+ @provider_account.quota.set_maximum_running_instances(limit)
- if @cloud_account.invalid?
- if not @cloud_account.valid_credentials?
+ if @provider_account.invalid?
+ if not @provider_account.valid_credentials?
flash.now[:error] = "The entered credential information is incorrect"
- elsif @cloud_account.errors.on(:username)
- flash.now[:error] = "The access key
'#{params[:cloud_account][:username]}' has already been taken."
+ elsif @provider_account.errors.on(:username)
+ flash.now[:error] = "The access key
'#{params[:provider_account][:username]}' has already been taken."
else
flash.now[:error] = "You must fill in all the required fields"
end
render :action => 'new' and return
end
- @cloud_account.pool_families << PoolFamily.default
- @cloud_account.save!
- if @cloud_account.populate_realms
+ @provider_account.pool_families << PoolFamily.default
+ @provider_account.save!
+ if @provider_account.populate_realms
flash[:notice] = "Provider account added."
end
redirect_to provider_accounts_path(@provider)
@@ -77,10 +77,10 @@ class ProviderAccountsController < ApplicationController
end
def edit
- @cloud_account = ProviderAccount.find(params[:id])
- @quota = @cloud_account.quota
- @provider = @cloud_account.provider
- require_privilege(Privilege::MODIFY, @cloud_account)
+ @provider_account = ProviderAccount.find(params[:id])
+ @quota = @provider_account.quota
+ @provider = @provider_account.provider
+ require_privilege(Privilege::MODIFY, @provider_account)
end
def update_accounts
@@ -89,15 +89,15 @@ class ProviderAccountsController < ApplicationController
@providers = Provider.list_for_user(@current_user, Privilege::VIEW)
success = true
- @provider.provider_accounts.each do |cloud_account|
- attributes = params[:cloud_accounts][cloud_account.id.to_s]
+ @provider.provider_accounts.each do |provider_account|
+ attributes = params[:provider_accounts][provider_account.id.to_s]
password = attributes[:password]
# blank password means the user didn't change it -- don't update it then
if password.blank?
attributes.delete :password
end
- cloud_account.quota.maximum_running_instances =
quota_from_string(params[:quota][cloud_account.id.to_s][:maximum_running_instances])
+ provider_account.quota.maximum_running_instances =
quota_from_string(params[:quota][provider_account.id.to_s][:maximum_running_instances])
private_cert = attributes[:x509_cert_priv_file]
unless private_cert.blank?
@@ -112,8 +112,8 @@ class ProviderAccountsController < ApplicationController
attributes.delete :x509_cert_pub_file
begin
- cloud_account.update_attributes!(attributes)
- cloud_account.quota.save!
+ provider_account.update_attributes!(attributes)
+ provider_account.quota.save!
rescue
success = false
end
@@ -128,14 +128,14 @@ class ProviderAccountsController < ApplicationController
end
def update
- @cloud_account = ProviderAccount.find(params[:id])
- @provider = @cloud_account.provider
- require_privilege(Privilege::MODIFY, @cloud_account)
- @quota = @cloud_account.quota
+ @provider_account = ProviderAccount.find(params[:id])
+ @provider = @provider_account.provider
+ require_privilege(Privilege::MODIFY, @provider_account)
+ @quota = @provider_account.quota
limit = params[:quota][:maximum_running_instances] if params[:quota]
- @cloud_account.quota.set_maximum_running_instances(limit)
- if @cloud_account.update_attributes(params[:cloud_account])
+ @provider_account.quota.set_maximum_running_instances(limit)
+ if @provider_account.update_attributes(params[:provider_account])
flash[:notice] = "Cloud Account updated!"
redirect_to provider_accounts_path(@provider)
else
@@ -144,10 +144,10 @@ class ProviderAccountsController < ApplicationController
end
def key
- @cloud_account = ProviderAccount.find(params[:id])
+ @provider_account = ProviderAccount.find(params[:id])
require_privilege(Privilege::MODIFY,@provider_account)
- unless @cloud_account.instance_key.nil?
- render :text => @cloud_account.instance_key.pem
+ unless @provider_account.instance_key.nil?
+ render :text => @provider_account.instance_key.pem
end
end
diff --git a/src/app/models/image.rb b/src/app/models/image.rb
index 0852016..5dd0bbb 100644
--- a/src/app/models/image.rb
+++ b/src/app/models/image.rb
@@ -52,7 +52,7 @@ class Image < ActiveRecord::Base
INACTIVE_STATES = [STATE_COMPLETE, STATE_FAILED, STATE_CANCELED]
def self.available_targets
- return YAML.load_file("#{RAILS_ROOT}/config/image_descriptor_targets.yml")
+ Provider::PROVIDERS.invert
end
def generate_uuid
diff --git a/src/app/models/provider.rb b/src/app/models/provider.rb
index 8539391..37d7026 100644
--- a/src/app/models/provider.rb
+++ b/src/app/models/provider.rb
@@ -29,7 +29,16 @@ class Provider < ActiveRecord::Base
require 'util/deltacloud'
include PermissionedObject
- PROVIDERS = { 0 => "mock", 1 => "AWS", 2 =>
"GoGrid" , 3 => "Rackspace", 4 => "RHEVM", 5 =>
"OpenNebula" }
+ MOCK = 0
+ AWS = 1
+ GOGRID = 2
+ RACKSPACE = 3
+ RHEVM = 4
+ OPENNEBULA = 5
+
+ PROVIDERS = { MOCK => "mock", AWS => "AWS",
+ GOGRID => "GoGrid", RACKSPACE => "Rackspace", RHEVM =>
"RHEVM",
+ OPENNEBULA => "OpenNebula" }
has_many :provider_accounts, :dependent => :destroy
has_many :hardware_profiles, :dependent => :destroy
diff --git a/src/app/models/provider_account.rb b/src/app/models/provider_account.rb
index 6ec1311..38958fd 100644
--- a/src/app/models/provider_account.rb
+++ b/src/app/models/provider_account.rb
@@ -50,15 +50,17 @@ class ProviderAccount < ActiveRecord::Base
validates_presence_of :username
validates_uniqueness_of :username, :scope => :provider_id
validates_presence_of :password
- validates_presence_of :account_number
+ validates_presence_of :account_number,:if => Proc.new{ |account|
account.provider.cloud_type == Provider::AWS}
validate :validate_presence_of_x509_certs
validate :validate_credentials
# We're using this instead of <tt>validates_presence_of</tt> helper
because
# we want to show errors on different attributes ending with '_file'.
def validate_presence_of_x509_certs
- errors.add(:x509_cert_pub_file, "can't be blank") if
x509_cert_pub.blank?
- errors.add(:x509_cert_priv_file, "can't be blank") if
x509_cert_priv.blank?
+ if self.provider.cloud_type == Provider::AWS
+ errors.add(:x509_cert_pub_file, "can't be blank") if
x509_cert_pub.blank?
+ errors.add(:x509_cert_priv_file, "can't be blank") if
x509_cert_priv.blank?
+ end
end
def validate_credentials
diff --git a/src/app/views/admin/provider_accounts/_mock.haml
b/src/app/views/admin/provider_accounts/_mock.haml
new file mode 100644
index 0000000..65b5998
--- /dev/null
+++ b/src/app/views/admin/provider_accounts/_mock.haml
@@ -0,0 +1,16 @@
+%fieldset.clear
+ = label_tag "Account name:"
+ = text_field :provider_account, :label
+%fieldset.clear
+ = label_tag :username, "API Key:"
+ = text_field :provider_account,:username
+%fieldset.clear
+ = label_tag :password, "Secret:"
+ = password_field :provider_account,:password
+ = label_tag "Quota"
+ = text_field :quota, :maximum_running_instances, :title =>
t('cloud_accounts.form.quota_instances'), :value =>
@quota.maximum_running_instances || "unlimited", :id =>
"quota_instances", :class => "grid_3 omega"
+.grid_3.omega
+ (
+ %button.linkbutton.nospace{ :type => 'submit', :value =>
t('cloud_accounts.form.test_account'), :name => 'test_account', :id
=> 'test_account' }<>
+ = t('cloud_accounts.form.test_account')
+ )
diff --git a/src/app/views/admin/provider_accounts/_provider_selection.haml
b/src/app/views/admin/provider_accounts/_provider_selection.haml
index 334f314..f767896 100644
--- a/src/app/views/admin/provider_accounts/_provider_selection.haml
+++ b/src/app/views/admin/provider_accounts/_provider_selection.haml
@@ -1,5 +1,5 @@
%fieldset#cloud_type.clear
- = select_tag ("select_provider", options_for_select((a)providers.map{ |p|
[p.name, p.id] }, :selected => @selected_provider.id))
+ = select_tag("select_provider", options_for_select((a)providers.map{ |p|
[p.name, p.id] }, :selected => @selected_provider.id))
= restful_submit_tag "Choose",
'set_selected_provider',set_selected_provider_admin_provider_accounts_path,
'GET', :class => 'button'
= label_tag "Cloud type: "
= t(Provider::PROVIDERS[@selected_provider.cloud_type])
diff --git a/src/app/views/admin/provider_accounts/new.haml
b/src/app/views/admin/provider_accounts/new.haml
index 4b45ac1..ef369db 100644
--- a/src/app/views/admin/provider_accounts/new.haml
+++ b/src/app/views/admin/provider_accounts/new.haml
@@ -1,10 +1,11 @@
#details.grid_13
+ = error_messages_for :provider_account
%h2
= t('cloud_accounts.new.new_provider_account')
%label{ :for => :provider_id }
Provider
%fieldset.clear
- - form_tag (admin_provider_accounts_path, :multipart => true) do
+ - form_tag(admin_provider_accounts_path, :multipart => true) do
= render :partial => 'provider_selection'
%section
%p.requirement
diff --git a/src/app/views/admin/providers/_form.haml
b/src/app/views/admin/providers/_form.haml
index c980c0a..d262c53 100644
--- a/src/app/views/admin/providers/_form.haml
+++ b/src/app/views/admin/providers/_form.haml
@@ -13,7 +13,7 @@
)
%fieldset.clear
= form.label :cloud_type
- = form.select (:cloud_type, Provider::PROVIDERS.collect {|id, cloud_type|
[t(cloud_type),id] }, :prompt => "Select type of provider")
+ = form.select(:cloud_type, Provider::PROVIDERS.collect {|id, cloud_type|
[t(cloud_type),id] }, :prompt => "Select type of provider")
%fieldset.clear
= form.submit "Save", :class => "submit formbutton"
diff --git a/src/app/views/builds/new.haml b/src/app/views/builds/new.haml
index 2cb159e..68f78ce 100644
--- a/src/app/views/builds/new.haml
+++ b/src/app/views/builds/new.haml
@@ -46,10 +46,10 @@
%label Choose Provider Format:
%section.clearfix.gap
%ul.block
- - @all_targets.each do |target_id, target|
+ - @all_targets.each do |target, target_id|
%li
- = check_box_tag 'targets[]', target_id, false, :id => target_id
- = label_tag target_id, target['name']
+ = check_box_tag 'targets[]', target_id, false, :id => target
+ = label_tag target
= submit_tag "Submit to Build", :name => "build"
= submit_tag "Cancel", :name => "cancel"
diff --git a/src/db/development_structure.sql b/src/db/development_structure.sql
new file mode 100644
index 0000000..5f9b7d0
--- /dev/null
+++ b/src/db/development_structure.sql
@@ -0,0 +1,89 @@
+CREATE TABLE "base_permission_objects" ("id" INTEGER PRIMARY KEY
AUTOINCREMENT NOT NULL, "name" varchar(255) NOT NULL, "created_at"
datetime, "updated_at" datetime);
+CREATE TABLE "cloud_accounts_pool_families" ("cloud_account_id"
integer NOT NULL, "pool_family_id" integer NOT NULL);
+CREATE TABLE "deployables" ("id" INTEGER PRIMARY KEY AUTOINCREMENT
NOT NULL, "name" varchar(255), "created_at" datetime,
"updated_at" datetime);
+CREATE TABLE "hardware_profile_map" ("aggregator_hardware_profile_id"
integer, "provider_hardware_profile_id" integer);
+CREATE TABLE "hardware_profile_properties" ("id" INTEGER PRIMARY KEY
AUTOINCREMENT NOT NULL, "name" varchar(255) NOT NULL, "kind"
varchar(255) NOT NULL, "unit" varchar(255) NOT NULL, "value"
varchar(255) NOT NULL, "range_first" varchar(255), "range_last"
varchar(255), "lock_version" integer DEFAULT 0, "created_at" datetime,
"updated_at" datetime);
+CREATE TABLE "hardware_profiles" ("id" INTEGER PRIMARY KEY
AUTOINCREMENT NOT NULL, "external_key" varchar(255) NOT NULL, "name"
varchar(1024) NOT NULL, "memory_id" integer, "storage_id" integer,
"cpu_id" integer, "architecture_id" integer, "provider_id"
integer, "lock_version" integer DEFAULT 0, "created_at" datetime,
"updated_at" datetime);
+CREATE TABLE "images" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT
NULL, "uuid" varchar(255), "name" varchar(255) NOT NULL,
"build_id" varchar(255), "uri" varchar(255), "status"
varchar(255), "target" varchar(255), "template_id" integer,
"created_at" datetime, "updated_at" datetime);
+CREATE TABLE "instance_events" ("id" INTEGER PRIMARY KEY
AUTOINCREMENT NOT NULL, "instance_id" integer NOT NULL, "event_type"
varchar(255) NOT NULL, "event_time" datetime, "status" varchar(255),
"message" varchar(255), "created_at" datetime, "updated_at"
datetime);
+CREATE TABLE "instance_hwps" ("id" INTEGER PRIMARY KEY AUTOINCREMENT
NOT NULL, "memory" varchar(255), "cpu" varchar(255),
"architecture" varchar(255), "storage" varchar(255),
"lock_version" integer DEFAULT 0);
+CREATE TABLE "instance_keys" ("id" INTEGER PRIMARY KEY AUTOINCREMENT
NOT NULL, "provider_account_id" integer NOT NULL, "name" varchar(255)
NOT NULL, "pem" text, "created_at" datetime, "updated_at"
datetime);
+CREATE TABLE "instances" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT
NULL, "external_key" varchar(255), "name" varchar(1024) NOT NULL,
"hardware_profile_id" integer NOT NULL, "template_id" integer NOT
NULL, "realm_id" integer, "owner_id" integer, "pool_id"
integer NOT NULL, "provider_account_id" integer, "instance_hwp_id"
integer, "public_addresses" varchar(255), "private_addresses"
varchar(255), "state" varchar(255), "condor_job_id" varchar(255),
"last_error" text(255), "instance_key_id" integer,
"lock_version" integer DEFAULT 0, "acc_pending_time" integer DEFAULT
0, "acc_running_time" integer DEFAULT 0, "acc_shutting_down_time"
integer DEFAULT 0, "acc_stopped_time" integer DEFAULT 0,
"time_last_pending" datetime, "time_last_running" datetime,
"time_last_shutting_down" datetime, "time_last_stopped" datetime,
"created_at" datetime, "updated_at" datetime);
+CREATE TABLE "metadata_objects" ("id" INTEGER PRIMARY KEY
AUTOINCREMENT NOT NULL, "key" varchar(255) NOT NULL, "value"
varchar(255) NOT NULL, "object_type" varchar(255), "lock_version"
integer DEFAULT 0, "created_at" datetime, "updated_at" datetime);
+CREATE TABLE "permissions" ("id" INTEGER PRIMARY KEY AUTOINCREMENT
NOT NULL, "role_id" integer NOT NULL, "user_id" integer NOT NULL,
"permission_object_id" integer, "permission_object_type" varchar(255),
"lock_version" integer DEFAULT 0, "created_at" datetime,
"updated_at" datetime);
+CREATE TABLE "pool_families" ("id" INTEGER PRIMARY KEY AUTOINCREMENT
NOT NULL, "name" varchar(255) NOT NULL, "description" varchar(255),
"lock_version" integer DEFAULT 0, "created_at" datetime,
"updated_at" datetime);
+CREATE TABLE "pools" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT
NULL, "name" varchar(255) NOT NULL, "exported_as" varchar(255),
"quota_id" integer, "pool_family_id" integer NOT NULL,
"lock_version" integer DEFAULT 0, "created_at" datetime,
"updated_at" datetime);
+CREATE TABLE "privileges" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT
NULL, "name" varchar(255) NOT NULL, "lock_version" integer DEFAULT 0,
"created_at" datetime, "updated_at" datetime);
+CREATE TABLE "privileges_roles" ("privilege_id" integer NOT NULL,
"role_id" integer NOT NULL);
+CREATE TABLE "property_enum_entries" ("id" INTEGER PRIMARY KEY
AUTOINCREMENT NOT NULL, "hardware_profile_property_id" integer NOT NULL,
"value" varchar(255) NOT NULL, "lock_version" integer DEFAULT 0,
"created_at" datetime, "updated_at" datetime);
+CREATE TABLE "provider_accounts" ("id" INTEGER PRIMARY KEY
AUTOINCREMENT NOT NULL, "label" varchar(255) NOT NULL, "username"
varchar(255) NOT NULL, "password" varchar(255) NOT NULL, "provider_id"
integer NOT NULL, "quota_id" integer, "lock_version" integer DEFAULT
0, "account_number" varchar(255) NOT NULL, "x509_cert_priv" text NOT
NULL, "x509_cert_pub" text NOT NULL, "created_at" datetime,
"updated_at" datetime);
+CREATE TABLE "providers" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT
NULL, "name" varchar(255) NOT NULL, "cloud_type" integer(255) NOT
NULL, "url" varchar(255) NOT NULL, "lock_version" integer DEFAULT 0,
"created_at" datetime, "updated_at" datetime);
+CREATE TABLE "quotas" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT
NULL, "running_instances" integer DEFAULT 0, "total_instances" integer
DEFAULT 0, "maximum_running_instances" integer,
"maximum_total_instances" integer, "lock_version" integer DEFAULT 0,
"created_at" datetime, "updated_at" datetime);
+CREATE TABLE "realm_map" ("frontend_realm_id" integer,
"backend_realm_id" integer);
+CREATE TABLE "realms" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT
NULL, "external_key" varchar(255) NOT NULL, "name" varchar(1024) NOT
NULL, "provider_id" integer, "lock_version" integer DEFAULT 0,
"created_at" datetime, "updated_at" datetime);
+CREATE TABLE "replicated_images" ("id" INTEGER PRIMARY KEY
AUTOINCREMENT NOT NULL, "image_id" integer NOT NULL, "provider_id"
integer NOT NULL, "provider_image_key" varchar(255), "uploaded"
boolean DEFAULT 'f', "registered" boolean DEFAULT 'f');
+CREATE TABLE "roles" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT
NULL, "name" varchar(255) NOT NULL, "scope" varchar(255) NOT NULL,
"lock_version" integer DEFAULT 0, "created_at" datetime,
"updated_at" datetime);
+CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL);
+CREATE TABLE "sessions" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT
NULL, "session_id" varchar(255) NOT NULL, "data" text,
"created_at" datetime, "updated_at" datetime);
+CREATE TABLE "tasks" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT
NULL, "user" varchar(255), "type" varchar(255), "action"
varchar(255), "state" varchar(255), "task_target_id" integer,
"task_target_type" varchar(255), "args" varchar(255),
"created_at" datetime, "time_submitted" datetime,
"time_started" datetime, "time_ended" datetime, "message"
text, "failure_code" varchar(255), "lock_version" integer DEFAULT 0);
+CREATE TABLE "templates" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT
NULL, "uuid" varchar(255) NOT NULL, "xml" blob NOT NULL,
"uri" varchar(255), "name" varchar(255), "platform"
varchar(255), "platform_version" varchar(255), "architecture"
varchar(255), "summary" text, "complete" boolean DEFAULT 'f',
"uploaded" boolean DEFAULT 'f', "imported" boolean DEFAULT
'f', "images_count" integer, "created_at" datetime,
"updated_at" datetime);
+CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT
NULL, "login" varchar(255) NOT NULL, "email" varchar(255) NOT NULL,
"crypted_password" varchar(255) NOT NULL, "password_salt" varchar(255)
NOT NULL, "persistence_token" varchar(255) NOT NULL,
"single_access_token" varchar(255) NOT NULL, "perishable_token"
varchar(255) NOT NULL, "first_name" varchar(255), "last_name"
varchar(255), "quota_id" integer, "login_count" integer DEFAULT 0 NOT
NULL, "failed_login_count" integer DEFAULT 0 NOT NULL,
"last_request_at" datetime, "current_login_at" datetime,
"last_login_at" datetime, "current_login_ip" varchar(255),
"last_login_ip" varchar(255), "created_at" datetime,
"updated_at" datetime);
+CREATE INDEX "index_sessions_on_session_id" ON "sessions"
("session_id");
+CREATE INDEX "index_sessions_on_updated_at" ON "sessions"
("updated_at");
+CREATE INDEX "index_users_on_last_request_at" ON "users"
("last_request_at");
+CREATE INDEX "index_users_on_login" ON "users" ("login");
+CREATE INDEX "index_users_on_persistence_token" ON "users"
("persistence_token");
+CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations"
("version");
+INSERT INTO schema_migrations (version) VALUES ('200909011700');
+
+INSERT INTO schema_migrations (version) VALUES ('20090731200741');
+
+INSERT INTO schema_migrations (version) VALUES ('20090801045212');
+
+INSERT INTO schema_migrations (version) VALUES ('20090802000000');
+
+INSERT INTO schema_migrations (version) VALUES ('20090803000000');
+
+INSERT INTO schema_migrations (version) VALUES ('20090803141507');
+
+INSERT INTO schema_migrations (version) VALUES ('20090804135630');
+
+INSERT INTO schema_migrations (version) VALUES ('20090804140143');
+
+INSERT INTO schema_migrations (version) VALUES ('20090804141600');
+
+INSERT INTO schema_migrations (version) VALUES ('20090804142049');
+
+INSERT INTO schema_migrations (version) VALUES ('20090831140000');
+
+INSERT INTO schema_migrations (version) VALUES ('20090917192602');
+
+INSERT INTO schema_migrations (version) VALUES ('20091008153046');
+
+INSERT INTO schema_migrations (version) VALUES ('20091008153058');
+
+INSERT INTO schema_migrations (version) VALUES ('20091008153106');
+
+INSERT INTO schema_migrations (version) VALUES ('20091019215838');
+
+INSERT INTO schema_migrations (version) VALUES ('20100707000000');
+
+INSERT INTO schema_migrations (version) VALUES ('20100810221250');
+
+INSERT INTO schema_migrations (version) VALUES ('20100830150014');
+
+INSERT INTO schema_migrations (version) VALUES ('20100902081651');
+
+INSERT INTO schema_migrations (version) VALUES ('20101018174458');
+
+INSERT INTO schema_migrations (version) VALUES ('20101021172441');
+
+INSERT INTO schema_migrations (version) VALUES ('20110103160939');
+
+INSERT INTO schema_migrations (version) VALUES ('20110112094108');
+
+INSERT INTO schema_migrations (version) VALUES ('20110117140824');
+
+INSERT INTO schema_migrations (version) VALUES ('20110125122737');
+
+INSERT INTO schema_migrations (version) VALUES ('20110125123410');
\ No newline at end of file
diff --git a/src/db/migrate/20110117140824_rename_cloud_account_to_provider_account.rb
b/src/db/migrate/20110117140824_rename_cloud_account_to_provider_account.rb
index 2ccadb4..beaabc5 100644
--- a/src/db/migrate/20110117140824_rename_cloud_account_to_provider_account.rb
+++ b/src/db/migrate/20110117140824_rename_cloud_account_to_provider_account.rb
@@ -5,6 +5,7 @@ class RenameCloudAccountToProviderAccount < ActiveRecord::Migration
end
def self.down
- drop_table :provider_accounts
+ change_column (:providers, :cloud_type, :string, :null => false)
+ rename_table (:provider_accounts, :cloud_accounts)
end
end
diff --git a/src/db/migrate/20110125122737_rename_cloud_accout_id_for_instance_keys.rb
b/src/db/migrate/20110125122737_rename_cloud_accout_id_for_instance_keys.rb
new file mode 100644
index 0000000..79acc02
--- /dev/null
+++ b/src/db/migrate/20110125122737_rename_cloud_accout_id_for_instance_keys.rb
@@ -0,0 +1,9 @@
+class RenameCloudAccoutIdForInstanceKeys < ActiveRecord::Migration
+ def self.up
+ rename_column :instance_keys, :cloud_account_id, :provider_account_id
+ end
+
+ def self.down
+ rename_column :instance_keys, :provider_account_id, :cloud_account_id
+ end
+end
diff --git a/src/db/migrate/20110125123410_rename_cloud_account_id_for_instances.rb
b/src/db/migrate/20110125123410_rename_cloud_account_id_for_instances.rb
new file mode 100644
index 0000000..674fc2d
--- /dev/null
+++ b/src/db/migrate/20110125123410_rename_cloud_account_id_for_instances.rb
@@ -0,0 +1,9 @@
+class RenameCloudAccountIdForInstances < ActiveRecord::Migration
+ def self.up
+ rename_column :instances, :cloud_account_id, :provider_account_id
+ end
+
+ def self.down
+ rename_column :instances, :provider_account_id, :cloud_account_id
+ end
+end
diff --git
a/src/db/migrate/20110125154113_rename_cloud_accounts_pool_families_to_provider_accounts_pool_families.rb
b/src/db/migrate/20110125154113_rename_cloud_accounts_pool_families_to_provider_accounts_pool_families.rb
new file mode 100644
index 0000000..d1ae154
--- /dev/null
+++
b/src/db/migrate/20110125154113_rename_cloud_accounts_pool_families_to_provider_accounts_pool_families.rb
@@ -0,0 +1,11 @@
+class RenameCloudAccountsPoolFamiliesToProviderAccountsPoolFamilies <
ActiveRecord::Migration
+ def self.up
+ rename_table :cloud_accounts_pool_families, :pool_families_provider_accounts
+ rename_column :pool_families_provider_accounts, :cloud_account_id,
:provider_account_id
+ end
+
+ def self.down
+ rename_column :pool_families_provider_accounts, :provider_account_id,
:cloud_account_id
+ rename_table :pool_families_provider_accounts, :cloud_accounts_pool_families
+ end
+end
diff --git
a/src/db/migrate/20110126161751_change_null_properties_of_columns_in_provider_accounts.rb
b/src/db/migrate/20110126161751_change_null_properties_of_columns_in_provider_accounts.rb
new file mode 100644
index 0000000..7e6707e
--- /dev/null
+++
b/src/db/migrate/20110126161751_change_null_properties_of_columns_in_provider_accounts.rb
@@ -0,0 +1,13 @@
+class ChangeNullPropertiesOfColumnsInProviderAccounts < ActiveRecord::Migration
+ def self.up
+ change_column :provider_accounts, :account_number, :string, :null => true
+ change_column :provider_accounts, :x509_cert_priv, :text, :null => true
+ change_column :provider_accounts, :x509_cert_pub, :text, :null => true
+ end
+
+ def self.down
+ change_column :provider_accounts, :account_number, :string, :null => false
+ change_column :provider_accounts, :x509_cert_priv, :text, :null => false
+ change_column :provider_accounts, :x509_cert_pub, :text, :null => false
+ end
+end
diff --git a/src/features/provider.feature b/src/features/provider.feature
index 08704dd..ff9c05b 100644
--- a/src/features/provider.feature
+++ b/src/features/provider.feature
@@ -35,6 +35,7 @@ Feature: Manage Providers
Then I should be on the new admin provider page
When I fill in "provider[name]" with "testprovider"
And I fill in "provider[url]" with "http://localhost:3001/api"
+ And I select "Amazon EC2" from "Cloud type"
And I press "Save"
Then I should be on the admin providers page
And I should see "Provider added"
@@ -64,14 +65,14 @@ Feature: Manage Providers
And this provider has 5 replicated images
And this provider has 5 hardware profiles
And this provider has a realm
- And this provider has a cloud account
+ And this provider has a provider account
When I go to the admin providers page
And I check "provider1" provider
And I press "Delete"
And there should not exist a provider named "provider1"
And there should not be any replicated images
And there should not be any hardware profiles
- And there should not be a cloud account
+ And there should not be a provider account
And there should not be a realm
Scenario: Search for hardware profiles
@@ -94,4 +95,4 @@ Feature: Manage Providers
And I press "Search"
Then I should see "Mock"
And I should not see "Test"
- And I should not see "Other"
\ No newline at end of file
+ And I should not see "Other"
diff --git a/src/features/provider_account.feature
b/src/features/provider_account.feature
index 964aba2..d4ebd34 100644
--- a/src/features/provider_account.feature
+++ b/src/features/provider_account.feature
@@ -22,21 +22,17 @@ Feature: Manage Provider Accounts
When I follow "New Account"
Then I should be on the new admin provider account page
And I should see "New Account"
- When I select "testprovider" from "provider_id"
- And I fill in "cloud_account[label]" with "testaccount"
- And I fill in "cloud_account[username]" with "mockuser"
- And I fill in "cloud_account[password]" with "mockpassword"
+ When I select "testprovider" from "select_provider"
+ And I fill in "provider_account[label]" with "testaccount"
+ And I fill in "provider_account[username]" with "mockuser"
+ And I fill in "provider_account[password]" with "mockpassword"
And I fill in "quota[maximum_running_instances]" with "13"
- And I fill in "cloud_account[account_number]" with "222222"
- And I attach the "private.key" file to
"cloud_account[x509_cert_priv_file]"
- And I attach the "public.key" file to
"cloud_account[x509_cert_pub_file]"
And I press "Add"
Then I should be on testaccount's provider account page
And I should see "Provider account added"
And I should have a provider account named "testaccount"
And I should see "Properties for testaccount"
And I should see "Running instances quota: 13"
- And I should see "Account ID: 222222"
Scenario: Test Provider Account Connection Successful
Given there is a provider named "testprovider"
@@ -44,8 +40,8 @@ Feature: Manage Provider Accounts
And I am on the admin provider accounts page
When I follow "New Account"
Then I should be on the new admin provider account page
- When I fill in "cloud_account[username]" with "mockuser"
- And I fill in "cloud_account[password]" with "mockpassword"
+ When I fill in "provider_account[username]" with "mockuser"
+ And I fill in "provider_account[password]" with "mockpassword"
And I press "Test Account"
Then I should see "Test Connection Success"
@@ -55,8 +51,8 @@ Feature: Manage Provider Accounts
And I am on the admin provider accounts page
When I follow "New Account"
Then I should be on the new admin provider account page
- When I fill in "cloud_account[username]" with "mockuser"
- And I fill in "cloud_account[password]" with "wrong password"
+ When I fill in "provider_account[username]" with "mockuser"
+ And I fill in "provider_account[password]" with "wrong password"
And I press "Test Account"
Then I should see "Test Connection Failed"
diff --git a/src/features/step_definitions/provider_account_steps.rb
b/src/features/step_definitions/provider_account_steps.rb
index 63620c5..b3ffc09 100644
--- a/src/features/step_definitions/provider_account_steps.rb
+++ b/src/features/step_definitions/provider_account_steps.rb
@@ -17,7 +17,7 @@ end
Given /^there is a provider account named "([^"]*)"$/ do |label|
@provider = Provider.find_by_name('testprovider')
- @cloud_account = Factory(:mock_cloud_account, :provider => @provider, :label =>
label)
+ @provider_account = Factory(:mock_provider_account, :provider => @provider, :label
=> label)
end
Given /^there is a second provider account named "([^"]*)"$/ do |label|
diff --git a/src/features/step_definitions/provider_steps.rb
b/src/features/step_definitions/provider_steps.rb
index 7dd57a7..4d57030 100644
--- a/src/features/step_definitions/provider_steps.rb
+++ b/src/features/step_definitions/provider_steps.rb
@@ -49,8 +49,8 @@ Given /^this provider has a realm$/ do
Factory(:realm, :provider => @provider)
end
-Given /^this provider has a cloud account$/ do
- Factory(:mock_cloud_account, :provider => @provider)
+Given /^this provider has a provider account$/ do
+ Factory(:mock_provider_account, :provider => @provider)
end
Then /^there should not be any replicated images$/ do
@@ -61,7 +61,7 @@ Then /^there should not be any hardware profiles$/ do
HardwareProfile.find(:all, :conditions => { :provider_id => @provider.id}
).size.should == 0
end
-Then /^there should not be a cloud account$/ do
+Then /^there should not be a provider account$/ do
ProviderAccount.find(:all, :conditions => { :provider_id => @provider.id}
).size.should == 0
end
diff --git a/src/features/step_definitions/template_steps.rb
b/src/features/step_definitions/template_steps.rb
index e0ab543..c4f986c 100644
--- a/src/features/step_definitions/template_steps.rb
+++ b/src/features/step_definitions/template_steps.rb
@@ -92,13 +92,13 @@ When /^I choose this template$/ do
choose("ids__#{(a)template.id}")
end
-Given /^there is ec2 cloud account$/ do
- account = Factory.build(:ec2_cloud_account)
+Given /^there is Amazon AWS provider account$/ do
+ account = Factory.build(:ec2_provider_account)
account.save!
end
-Given /^there is ec2 build for this template$/ do
- Image.build(@template, 'ec2')
+Given /^there is Amazon AWS build for this template$/ do
+ Image.build(@template, Provider::AWS)
end
Given /^there is an imported template$/ do
diff --git a/src/features/template.feature b/src/features/template.feature
index b7d75a8..74ab316 100644
--- a/src/features/template.feature
+++ b/src/features/template.feature
@@ -91,31 +91,31 @@ Feature: Manage Templates
Scenario: Build template
Given there is a "mock1" template
- And there is ec2 cloud account
+ And there is Amazon AWS provider account
And I am on the templates page
When I choose this template
And I press "Build"
Then I should be on the new template build page
And I should see "Build Request"
- When I check "ec2"
+ When I check "Aws"
And I press "Submit to Build"
Then I should be on the template builds page
And I should see "mock1"
Scenario: Build template which is already built
Given there is a "mock1" template
- And there is ec2 cloud account
+ And there is Amazon AWS provider account
And I am on the templates page
- And there is ec2 build for this template
+ And there is Amazon AWS build for this template
When I choose this template
And I press "Build"
Then I should be on the new template build page
And I should see "Build Request"
- When I check "ec2"
+ When I check "Aws"
And I press "Submit to Build"
Then I should be on the template builds page
And I should see "mock1"
- And I should see "An attempted build of this template for the target
'ec2' already exists"
+ And I should see "An attempted build of this template for the target '1'
already exists"
Scenario: Build imported template
Given there is an imported template
@@ -166,4 +166,4 @@ Feature: Manage Templates
And I press "Search"
Then I should not see "Test1"
And I should see "Other"
- And I should not see "Mock"
\ No newline at end of file
+ And I should not see "Mock"
diff --git a/src/spec/controllers/builds_controller_spec.rb
b/src/spec/controllers/builds_controller_spec.rb
index ef4f3d4..3432bef 100644
--- a/src/spec/controllers/builds_controller_spec.rb
+++ b/src/spec/controllers/builds_controller_spec.rb
@@ -18,19 +18,19 @@ describe BuildsController do
hydra = Typhoeus::Hydra.hydra
hydra.stub(:put, %r{http://localhost:9090/templates/.*}).and_return(
Typhoeus::Response.new(:code => 200))
- Factory.create(:mock_cloud_account)
+ Factory.create(:mock_provider_account)
Factory.create(:mock_provider)
end
it "should create a new Image" do
lambda do
- post :create, :template_id => @template.id, :targets => ["mock"]
+ post :create, :template_id => @template.id, :targets => ["0"]
end.should change(Image, :count).by(1)
end
it "should create a new ReplicatedImage" do
lambda do
- post :create, :template_id => @template.id, :targets => ["mock"]
+ post :create, :template_id => @template.id, :targets => ["0"]
end.should change(ReplicatedImage, :count).by(1)
end
end
diff --git a/src/spec/controllers/provider_accounts_controller_spec.rb
b/src/spec/controllers/provider_accounts_controller_spec.rb
index 7471b30..6369eab 100644
--- a/src/spec/controllers/provider_accounts_controller_spec.rb
+++ b/src/spec/controllers/provider_accounts_controller_spec.rb
@@ -4,8 +4,8 @@ describe ProviderAccountsController do
fixtures :all
before(:each) do
- @cloud_account = Factory :mock_cloud_account
- @provider = @cloud_account.provider
+ @provider_account = Factory :mock_provider_account
+ @provider = @provider_account.provider
@admin_permission = Permission.create :role => Role.find(:first, :conditions =>
['name = ?', 'Provider Administrator']),
:permission_object => @provider,
@@ -23,7 +23,7 @@ describe ProviderAccountsController do
it "allows test account validity on create when passing test_account param"
do
UserSession.create(@admin)
- post :create, :provider_id => @provider.id, :cloud_account => {}, :test_account
=> true
+ post :create, :provider_id => @provider.id, :provider_account => {},
:test_account => true
response.should be_success
response.should render_template("new")
response.flash[:error].should == "Test Connection Failed: Invalid Account
Details"
@@ -31,7 +31,7 @@ describe ProviderAccountsController do
it "doesn't allow to save provider's account if not valid
credentials" do
UserSession.create(@admin)
- post :create, :provider_id => @provider.id, :cloud_account => {}
+ post :create, :provider_id => @provider.id, :provider_account => {}
response.should be_success
response.should render_template("new")
response.flash[:error].should == "The entered credential information is
incorrect"
@@ -39,7 +39,7 @@ describe ProviderAccountsController do
it "should permit users with account modify permission to access edit cloud
account interface" do
UserSession.create(@admin)
- get :edit, :id => @cloud_account.id
+ get :edit, :id => @provider_account.id
response.should be_success
response.should render_template("edit")
end
@@ -47,33 +47,33 @@ describe ProviderAccountsController do
it "should allow users with account modify password to update a cloud
account" do
UserSession.create(@admin)
- @cloud_account.password = "foobar"
- @cloud_account.stub!(:valid_credentials?).and_return(true)
- @cloud_account.quota = Quota.new
- @cloud_account.save.should be_true
+ @provider_account.password = "foobar"
+ @provider_account.stub!(:valid_credentials?).and_return(true)
+ @provider_account.quota = Quota.new
+ @provider_account.save.should be_true
- post :update, :id => @cloud_account.id, :cloud_account => { :password =>
'mockpassword' }
+ post :update, :id => @provider_account.id, :provider_account => { :password
=> 'mockpassword' }
response.should redirect_to provider_accounts_path(@provider)
- ProviderAccount.find((a)cloud_account.id).password.should == "mockpassword"
+ ProviderAccount.find((a)provider_account.id).password.should ==
"mockpassword"
end
it "should allow users with account modify permission to delete a cloud
account" do
UserSession.create(@admin)
lambda do
- get :destroy, :id => @cloud_account.id
+ get :destroy, :id => @provider_account.id
end.should change(ProviderAccount, :count).by(-1)
response.should redirect_to provider_accounts_path(@provider)
- ProviderAccount.find_by_id((a)cloud_account.id).should be_nil
+ ProviderAccount.find_by_id((a)provider_account.id).should be_nil
end
it "should deny access to users without account modify permission" do
- get :edit, :id => @cloud_account.id
+ get :edit, :id => @provider_account.id
response.should_not be_success
- post :update, :id => @cloud_account.id, :cloud_account => { :password =>
'foobar' }
+ post :update, :id => @provider_account.id, :provider_account => { :password
=> 'foobar' }
response.should_not be_success
- post :destroy, :id => @cloud_account.id
+ post :destroy, :id => @provider_account.id
response.should_not be_success
end
diff --git a/src/spec/factories/instance.rb b/src/spec/factories/instance.rb
index 7533ba9..87938bd 100644
--- a/src/spec/factories/instance.rb
+++ b/src/spec/factories/instance.rb
@@ -2,7 +2,7 @@ Factory.define :instance do |i|
i.sequence(:name) { |n| "instance#{n}" }
i.sequence(:external_key) { |n| "key#{n}" }
i.association :hardware_profile, :factory => :mock_hwp1
- i.association :cloud_account, :factory => :mock_cloud_account
+ i.association :provider_account, :factory => :mock_provider_account
i.association :template, :factory => :template
i.association :pool, :factory => :pool
i.association :owner, :factory => :user
@@ -23,6 +23,6 @@ end
Factory.define :ec2_instance, :parent => :instance do |i|
i.association :hardware_profile, :factory => :ec2_hwp1
- i.association :cloud_account, :factory => :ec2_cloud_account
+ i.association :provider_account, :factory => :ec2_provider_account
i.association :instance_key, :factory => :ec2_instance_key1
end
diff --git a/src/spec/factories/provider.rb b/src/spec/factories/provider.rb
index 76fb4af..b26cff4 100644
--- a/src/spec/factories/provider.rb
+++ b/src/spec/factories/provider.rb
@@ -1,11 +1,11 @@
Factory.define :provider do |p|
p.sequence(:name) { |n| "provider#{n}" }
- p.cloud_type 'mock'
+ p.cloud_type '0'
p.url { |p| "http://www." + p.name + ".com/api" }
end
Factory.define :mock_provider, :parent => :provider do |p|
- p.cloud_type 'mock'
+ p.cloud_type '0'
p.url 'http://localhost:3001/api'
p.hardware_profiles { |hp| [hp.association(:mock_hwp1), hp.association(:mock_hwp2)] }
p.after_create { |p| p.realms << Factory(:realm1, :provider => p) <<
Factory(:realm2, :provider => p) }
@@ -13,14 +13,14 @@ end
Factory.define :mock_provider2, :parent => :provider do |p|
p.name 'mock2'
- p.cloud_type 'mock'
+ p.cloud_type '0'
p.url 'http://localhost:3001/api'
p.after_create { |p| p.realms << Factory(:realm3, :provider => p) }
end
Factory.define :ec2_provider, :parent => :provider do |p|
p.name 'amazon-ec2'
- p.cloud_type 'ec2'
+ p.cloud_type '1'
p.url 'http://localhost:3001/api'
p.hardware_profiles { |hp| [hp.association(:ec2_hwp1)] }
p.after_create { |p| p.realms << Factory(:realm4, :provider => p) }
diff --git a/src/spec/factories/provider_account.rb
b/src/spec/factories/provider_account.rb
index ff42702..dae7047 100644
--- a/src/spec/factories/provider_account.rb
+++ b/src/spec/factories/provider_account.rb
@@ -8,13 +8,13 @@ Factory.define :provider_account do |f|
f.association :provider
end
-Factory.define :mock_cloud_account, :parent => :provider_account do |f|
+Factory.define :mock_provider_account, :parent => :provider_account do |f|
f.username "mockuser"
f.password "mockpassword"
f.provider { |p| p.association(:mock_provider) }
end
-Factory.define :ec2_cloud_account, :parent => :provider_account do |f|
+Factory.define :ec2_provider_account, :parent => :provider_account do |f|
f.username "mockuser"
f.password "mockpassword"
f.provider { |p| p.association(:ec2_provider) }
diff --git a/src/spec/models/image_spec.rb b/src/spec/models/image_spec.rb
index dbd5ba8..e489fb6 100644
--- a/src/spec/models/image_spec.rb
+++ b/src/spec/models/image_spec.rb
@@ -42,12 +42,12 @@ describe Image do
end
it "should build image if there is provider and cloud account for specified
target" do
- acc = Factory.build(:mock_cloud_account)
+ acc = Factory.build(:mock_provider_account)
acc.stub!(:valid_credentials?).and_return(true)
acc.save!
tpl = Factory.build(:template)
tpl.save!
- img = Image.build(tpl, 'mock')
+ img = Image.build(tpl, '0')
Image.find(img).should == img
ReplicatedImage.find_by_image_id(img.id).should_not be_nil
end
@@ -55,7 +55,7 @@ describe Image do
it "should import image" do
image = OpenStruct.new(:id => 'mock', :name => 'mock',
:description => 'imported mock', :architecture => 'i386')
client = mock('DeltaCloud', :feature? => false, :image => image)
- account = Factory.build(:ec2_cloud_account)
+ account = Factory.build(:ec2_provider_account)
account.stub!(:connect).and_return(client)
account.stub!(:valid_credentials?).and_return(true)
account.save!
diff --git a/src/spec/models/instance_observer_spec.rb
b/src/spec/models/instance_observer_spec.rb
index be2665e..4acb78c 100644
--- a/src/spec/models/instance_observer_spec.rb
+++ b/src/spec/models/instance_observer_spec.rb
@@ -3,10 +3,8 @@ require 'spec_helper'
describe InstanceObserver do
before(:each) do
- Timecop.travel(Time.local(2008, 9, 1, 10, 5, 0, 0, 0))
-
- @cloud_account_quota = Factory :quota
- @cloud_account = Factory(:mock_cloud_account, :quota_id =>
@cloud_account_quota.id)
+ @provider_account_quota = Factory :quota
+ @provider_account = Factory(:mock_provider_account, :quota_id =>
@provider_account_quota.id)
@pool_quota = Factory :quota
@pool = Factory(:pool, :quota_id => @pool_quota.id)
@@ -15,7 +13,9 @@ describe InstanceObserver do
@user = Factory(:user, :quota_id => @user_quota.id)
@hwp = Factory :mock_hwp1
- @instance = Factory(:new_instance, :pool => @pool, :hardware_profile => @hwp,
:cloud_account_id => @cloud_account.id, :owner => @user)
+ @instance = Factory(:new_instance, :pool => @pool, :hardware_profile => @hwp,
:provider_account_id => @provider_account.id, :owner => @user)
+
+ Timecop.travel(Time.local(2008, 9, 1, 10, 5, 0, 0, 0))
end
after(:each) do
@@ -102,14 +102,14 @@ describe InstanceObserver do
end
it "should not update quota on pool, user and cloud account when an instance is
state new" do
- [@cloud_account_quota, @pool_quota, @user_quota].each do |quota|
+ [@provider_account_quota, @pool_quota, @user_quota].each do |quota|
quota = Quota.find(quota)
quota.total_instances.should == 0
end
end
it "should update quota on pool, user and cloud account when an instance goes to
state pending" do
- [@cloud_account_quota, @pool_quota, @user_quota].each do |quota|
+ [@provider_account_quota, @pool_quota, @user_quota].each do |quota|
@instance.state = Instance::STATE_PENDING
@instance.save!
@@ -122,7 +122,7 @@ describe InstanceObserver do
@instance.state = Instance::STATE_CREATE_FAILED
@instance.save!
- [@cloud_account_quota, @pool_quota, @user_quota].each do |quota|
+ [@provider_account_quota, @pool_quota, @user_quota].each do |quota|
quota = Quota.find(quota)
quota.total_instances.should == 0
end
@@ -132,7 +132,7 @@ describe InstanceObserver do
@instance.state = Instance::STATE_RUNNING
@instance.save!
- [@cloud_account_quota, @pool_quota, @user_quota].each do |quota|
+ [@provider_account_quota, @pool_quota, @user_quota].each do |quota|
quota = Quota.find(quota.id)
quota.running_instances.should == 1
quota.total_instances.should == 1
@@ -146,7 +146,7 @@ describe InstanceObserver do
@instance.state = Instance::STATE_SHUTTING_DOWN
@instance.save!
- [@cloud_account_quota, @pool_quota, @user_quota].each do |quota|
+ [@provider_account_quota, @pool_quota, @user_quota].each do |quota|
quota = Quota.find(quota.id)
quota.running_instances.should == 0
diff --git a/src/spec/models/instance_spec.rb b/src/spec/models/instance_spec.rb
index 625718d..e4d3a9f 100644
--- a/src/spec/models/instance_spec.rb
+++ b/src/spec/models/instance_spec.rb
@@ -86,16 +86,9 @@ describe Instance do
describe "with time capsule" do
- before(:each) do
- Timecop.travel(Time.local(2008, 9, 1, 10, 5, 0, 0, 0))
- end
-
- after(:each) do
- Timecop.return
- end
-
it "should properly calculate the total time that the instance has been in a
monitored state" do
instance = Factory :new_instance
+ Timecop.travel(Time.local(2008, 9, 1, 10, 5, 0, 0, 0))
[ Instance::STATE_PENDING, Instance::STATE_RUNNING, Instance::STATE_SHUTTING_DOWN,
Instance::STATE_STOPPED ].each do |s|
@@ -121,18 +114,19 @@ describe Instance do
instance.total_state_time(s).should >= 3
instance.total_state_time(s).should <= 4
end
+ Timecop.return
end
end
it "should return empty list of instance actions when connect to provider
fails" do
provider = Factory.build(:mock_provider2)
- cloud_account = Factory.build(:cloud_account, :provider => provider,
+ cloud_account = Factory.build(:provider_account, :provider => provider,
:username => 'john doe',
:password => 'asdf')
cloud_account.stub!(:connect).and_return(nil)
cloud_account.stub!(:valid_credentials?).and_return(true)
- instance = Factory.create(:instance, :cloud_account => cloud_account)
+ instance = Factory.create(:instance, :provider_account => cloud_account)
instance.get_action_list.should be_empty
end
diff --git a/src/spec/models/pool_family_spec.rb b/src/spec/models/pool_family_spec.rb
index 58c18ec..68dfb42 100644
--- a/src/spec/models/pool_family_spec.rb
+++ b/src/spec/models/pool_family_spec.rb
@@ -5,9 +5,9 @@ describe PoolFamily do
before(:each) do
@pool = Factory :pool
@pool_family = @pool.pool_family
- @cloud_account = Factory :mock_cloud_account
- @cloud_account.pool_families << @pool_family
- @cloud_account.save!
+ @provider_account = Factory :mock_provider_account
+ @provider_account.pool_families << @pool_family
+ @provider_account.save!
end
it "should validate default pool family" do
@@ -28,7 +28,7 @@ describe PoolFamily do
it "should have account" do
@pool_family.provider_accounts.size.should == 1
- @pool_family.provider_accounts[0].id.should == @cloud_account.id
+ @pool_family.provider_accounts[0].id.should == @provider_account.id
end
end
diff --git a/src/spec/models/provider_account_spec.rb
b/src/spec/models/provider_account_spec.rb
index 57d0611..48678e8 100644
--- a/src/spec/models/provider_account_spec.rb
+++ b/src/spec/models/provider_account_spec.rb
@@ -3,33 +3,33 @@ require 'spec_helper'
describe ProviderAccount do
fixtures :all
before(:each) do
- @cloud_account = Factory :mock_cloud_account
+ @provider_account = Factory :mock_provider_account
end
it "should not be destroyable if it has instances" do
- @cloud_account.instances << Instance.new
- @cloud_account.destroyable?.should be_false
- @cloud_account.destroy.should be_false
+ @provider_account.instances << Instance.new
+ @provider_account.destroyable?.should be_false
+ @provider_account.destroy.should be_false
- @cloud_account.instances.clear
- @cloud_account.destroyable?.should be_true
- @cloud_account.destroy.equal?((a)cloud_account).should be_true
- @cloud_account.should be_frozen
+ @provider_account.instances.clear
+ @provider_account.destroyable?.should be_true
+ @provider_account.destroy.equal?((a)provider_account).should be_true
+ @provider_account.should be_frozen
end
it "should check the validitiy of the cloud account login credentials" do
mock_provider = Factory :mock_provider
- invalid_cloud_account = Factory.build(:cloud_account, :username =>
"wrong_username", :password => "wrong_password", :provider =>
mock_provider)
- invalid_cloud_account.should_not be_valid
+ invalid_provider_account = Factory.build(:provider_account, :username =>
"wrong_username", :password => "wrong_password", :provider =>
mock_provider)
+ invalid_provider_account.should_not be_valid
- valid_cloud_account = Factory.build(:mock_cloud_account, :provider =>
mock_provider)
- valid_cloud_account.should be_valid
+ valid_provider_account = Factory.build(:mock_provider_account, :provider =>
mock_provider)
+ valid_provider_account.should be_valid
end
it "should fail to create a cloud account if the provider credentials are
invalid" do
- cloud_account = Factory.build(:mock_cloud_account, :password =>
"wrong_password")
- cloud_account.save.should == false
+ provider_account = Factory.build(:mock_provider_account, :password =>
"wrong_password")
+ provider_account.save.should == false
end
it "should create an instance_key if provider is EC2" do
@@ -41,18 +41,18 @@ describe ProviderAccount do
@client.stub!(:"feature?").and_return(true)
@client.stub!(:"create_key").and_return(@key)
- cloud_account = Factory.build :ec2_cloud_account
- cloud_account.stub!(:connect).and_return(@client)
- cloud_account.save
- cloud_account.instance_key.should_not == nil
- cloud_account.instance_key.pem == "PEM"
- cloud_account.instance_key.id == "1_user"
+ provider_account = Factory.build :ec2_provider_account
+ provider_account.stub!(:connect).and_return(@client)
+ provider_account.save
+ provider_account.instance_key.should_not == nil
+ provider_account.instance_key.pem == "PEM"
+ provider_account.instance_key.id == "1_user"
end
it "when calling connect and it fails with exception it will return nil" do
DeltaCloud.should_receive(:new).and_raise(Exception.new)
- @cloud_account.connect.should be_nil
+ @provider_account.connect.should be_nil
end
it "should generate credentials xml" do
@@ -68,13 +68,13 @@ describe ProviderAccount do
</ec2_credentials>
</provider_credentials>
EOT
- cloud_account = Factory.build(:mock_cloud_account,
+ provider_account = Factory.build(:mock_provider_account,
:username => 'user',
:password => 'pass',
:account_number => '1234',
:x509_cert_priv => 'priv_key',
:x509_cert_pub => 'cert'
)
- cloud_account.build_credentials.should eql(expected_xml)
+ provider_account.build_credentials.should eql(expected_xml)
end
end
diff --git a/src/spec/models/provider_spec.rb b/src/spec/models/provider_spec.rb
index e3af313..7d11633 100644
--- a/src/spec/models/provider_spec.rb
+++ b/src/spec/models/provider_spec.rb
@@ -66,7 +66,7 @@ describe Provider do
it "should set valid cloud type" do
@client.driver_name = @provider.cloud_type
@provider.cloud_type = nil
- @provider.set_cloud_type!
+ @provider.cloud_type = 0
@provider.should be_valid
end
diff --git a/src/spec/models/quota_spec.rb b/src/spec/models/quota_spec.rb
index 9620e83..960b417 100644
--- a/src/spec/models/quota_spec.rb
+++ b/src/spec/models/quota_spec.rb
@@ -3,8 +3,8 @@ require 'spec_helper'
describe Quota do
before(:each) do
- @cloud_account_quota = Factory :quota
- @cloud_account = Factory(:mock_cloud_account, :quota_id =>
@cloud_account_quota.id)
+ @provider_account_quota = Factory :quota
+ @provider_account = Factory(:mock_provider_account, :quota_id =>
@provider_account_quota.id)
@pool_quota = Factory :quota
@pool = Factory(:pool, :quota_id => @pool_quota.id)
@@ -13,12 +13,12 @@ describe Quota do
@user = Factory(:user, :quota_id => @user_quota.id)
@hwp = Factory :mock_hwp1
- @instance = Factory(:new_instance, :pool => @pool, :hardware_profile => @hwp,
:cloud_account_id => @cloud_account.id, :owner => @user)
+ @instance = Factory(:new_instance, :pool => @pool, :hardware_profile => @hwp,
:provider_account_id => @provider_account.id, :owner => @user)
end
it "should return true when asking if an instance can be created/started when
there is sufficient quota space" do
- Quota.can_create_instance?(@instance, @cloud_account).should == true
- Quota.can_start_instance?(@instance, @cloud_account).should == true
+ Quota.can_create_instance?(@instance, @provider_account).should == true
+ Quota.can_start_instance?(@instance, @provider_account).should == true
end
it "should return true when asking if an instance can be created/started when
using unlimited Quotas" do
@@ -28,11 +28,11 @@ describe Quota do
@pool.quota = Factory :unlimited_quota
@pool.save!
- @cloud_account.quota = Factory :unlimited_quota
- @cloud_account.save!
+ @provider_account.quota = Factory :unlimited_quota
+ @provider_account.save!
- Quota.can_create_instance?(@instance, @cloud_account).should == true
- Quota.can_start_instance?(@instance, @cloud_account).should == true
+ Quota.can_create_instance?(@instance, @provider_account).should == true
+ Quota.can_start_instance?(@instance, @provider_account).should == true
end
it "should return false when asking if an instance can be created/started when the
user quota is reached" do
@@ -40,8 +40,8 @@ describe Quota do
@user_quota.running_instances = @user_quota.maximum_running_instances
@user_quota.save!
- Quota.can_create_instance?(@instance, @cloud_account).should == false
- Quota.can_start_instance?(@instance, @cloud_account).should == false
+ Quota.can_create_instance?(@instance, @provider_account).should == false
+ Quota.can_start_instance?(@instance, @provider_account).should == false
end
it "should return false when asking if an instance can be created/started when the
pool quota is reached" do
@@ -49,17 +49,17 @@ describe Quota do
@pool_quota.running_instances = @pool_quota.maximum_running_instances
@pool_quota.save!
- Quota.can_create_instance?(@instance, @cloud_account).should == false
- Quota.can_start_instance?(@instance, @cloud_account).should == false
+ Quota.can_create_instance?(@instance, @provider_account).should == false
+ Quota.can_start_instance?(@instance, @provider_account).should == false
end
it "should return false when asking if an instance can be created/started when the
cloud account quota is reached" do
- @cloud_account_quota.total_instances = @cloud_account_quota.maximum_total_instances
- @cloud_account_quota.running_instances =
@cloud_account_quota.maximum_running_instances
- @cloud_account_quota.save!
+ @provider_account_quota.total_instances =
@provider_account_quota.maximum_total_instances
+ @provider_account_quota.running_instances =
@provider_account_quota.maximum_running_instances
+ @provider_account_quota.save!
- Quota.can_create_instance?(@instance, @cloud_account).should == false
- Quota.can_start_instance?(@instance, @cloud_account).should == false
+ Quota.can_create_instance?(@instance, @provider_account).should == false
+ Quota.can_start_instance?(@instance, @provider_account).should == false
end
it "should return false when asking if an instance can be created/started when the
all quotas are reached" do
@@ -71,12 +71,12 @@ describe Quota do
@pool_quota.running_instances = @pool_quota.maximum_running_instances
@pool_quota.save!
- @cloud_account_quota.total_instances = @cloud_account_quota.maximum_total_instances
- @cloud_account_quota.running_instances =
@cloud_account_quota.maximum_running_instances
- @cloud_account_quota.save!
+ @provider_account_quota.total_instances =
@provider_account_quota.maximum_total_instances
+ @provider_account_quota.running_instances =
@provider_account_quota.maximum_running_instances
+ @provider_account_quota.save!
- Quota.can_create_instance?(@instance, @cloud_account).should == false
- Quota.can_start_instance?(@instance, @cloud_account).should == false
+ Quota.can_create_instance?(@instance, @provider_account).should == false
+ Quota.can_start_instance?(@instance, @provider_account).should == false
end
-end
\ No newline at end of file
+end
diff --git a/src/spec/services/data_service_active_record_spec.rb
b/src/spec/services/data_service_active_record_spec.rb
index b443fa9..45b07bf 100644
--- a/src/spec/services/data_service_active_record_spec.rb
+++ b/src/spec/services/data_service_active_record_spec.rb
@@ -11,13 +11,13 @@ describe DataServiceActiveRecord do
data = [[25, 10], [40, 20], [20, 20]]
free = 0
for i in 0..2
- cloud_account = Factory.build(:cloud_account, :provider => provider, :username
=> "username" + i.to_s)
- cloud_account.stub!(:valid_credentials?).and_return(true)
- cloud_account.save!
+ provider_account = Factory.build(:provider_account, :provider => provider,
:username => "username" + i.to_s)
+ provider_account.stub!(:valid_credentials?).and_return(true)
+ provider_account.save!
quota = Factory(:quota, :maximum_total_instances => data[i][0], :total_instances
=> data[i][1])
- cloud_account.quota_id = quota.id
- cloud_account.save!
+ provider_account.quota_id = quota.id
+ provider_account.save!
free += (data[i][0] - data[i][1])
end
@@ -36,24 +36,24 @@ describe DataServiceActiveRecord do
provider.stub!(:connect).and_return(client)
provider.save!
- cloud_account = Factory.build(:cloud_account, :provider => provider)
- cloud_account.stub!(:valid_credentials?).and_return(true)
- cloud_account.save!
+ provider_account = Factory.build(:provider_account, :provider => provider)
+ provider_account.stub!(:valid_credentials?).and_return(true)
+ provider_account.save!
quota = Factory(:quota,
:maximum_running_instances => 40,
:maximum_total_instances => 50,
:running_instances => 20,
:total_instances => 20)
- cloud_account.quota_id = quota.id
+ provider_account.quota_id = quota.id
- data_point = DataServiceActiveRecord.quota_usage(cloud_account,
Quota::RESOURCE_RUNNING_INSTANCES)
+ data_point = DataServiceActiveRecord.quota_usage(provider_account,
Quota::RESOURCE_RUNNING_INSTANCES)
data_point.should == DataServiceActiveRecord::QuotaUsagePoint.new(20, 40)
- data_point = DataServiceActiveRecord.quota_usage(cloud_account,
Quota::RESOURCE_TOTAL_INSTANCES)
+ data_point = DataServiceActiveRecord.quota_usage(provider_account,
Quota::RESOURCE_TOTAL_INSTANCES)
data_point.should == DataServiceActiveRecord::QuotaUsagePoint.new(20, 50)
- data_point = DataServiceActiveRecord.quota_usage(cloud_account,
Quota::RESOURCE_OVERALL)
+ data_point = DataServiceActiveRecord.quota_usage(provider_account,
Quota::RESOURCE_OVERALL)
data_point.should == DataServiceActiveRecord::QuotaUsagePoint.new(20, 40)
end
@@ -127,13 +127,13 @@ describe DataServiceActiveRecord do
provider.stub!(:connect).and_return(client)
provider.save!
- cloud_accounts = []
+ provider_accounts = []
expected_averages.each do |expected_average|
- cloud_account = Factory.build(:cloud_account, :provider => provider, :username
=> "username" + expected_average[0].to_s)
- cloud_account.stub!(:valid_credentials?).and_return(true)
- cloud_account.save!
+ provider_account = Factory.build(:provider_account, :provider => provider,
:username => "username" + expected_average[0].to_s)
+ provider_account.stub!(:valid_credentials?).and_return(true)
+ provider_account.save!
- instance = Factory(:instance, :cloud_account_id => cloud_account.id, :pool_id
=> pool.id)
+ instance = Factory(:instance, :provider_account_id => provider_account.id,
:pool_id => pool.id)
generate_tasks(start_time, interval_length, instance, expected_average)
end
@@ -163,11 +163,11 @@ describe DataServiceActiveRecord do
runtimes = [runtime1, runtime2, runtime3]
pool = Factory(:pool)
- cloud_account = Factory :mock_cloud_account
+ provider_account = Factory :mock_provider_account
for i in 0..2 do
runtimes[i].each do |runtime|
- instance = Factory(:instance, :pool => pool, :cloud_account =>
cloud_account, :state => Instance::STATE_STOPPED)
+ instance = Factory(:instance, :pool => pool, :provider_account =>
provider_account, :state => Instance::STATE_STOPPED)
instance.save!
instance.time_last_pending = start_times[i] + (interval_length / 2)
@@ -177,7 +177,7 @@ describe DataServiceActiveRecord do
end
end
- stats = DataServiceActiveRecord.qos_instance_runtime_stats(cloud_account, start_time,
end_time, interval_length)
+ stats = DataServiceActiveRecord.qos_instance_runtime_stats(provider_account,
start_time, end_time, interval_length)
stats[0].should == DataServiceActiveRecord::QoSDataPoint.new(start_times[0], 15, 25,
5)
stats[1].should == DataServiceActiveRecord::QoSDataPoint.new(start_times[1], 30, 50,
10)
stats[2].should == DataServiceActiveRecord::QoSDataPoint.new(start_times[2], 300,
500, 100)
@@ -187,11 +187,11 @@ describe DataServiceActiveRecord do
it "should generate the mean max and min instance runtimes of instances for a
given cloud account or pool" do
pool = Factory(:pool)
- cloud_account = Factory :mock_cloud_account
+ provider_account = Factory :mock_provider_account
start_time = Time.utc(2010,"jan",1,20,15,1)
[50, 100, 150, 200, 250].each do |runtime|
- instance = Factory(:new_instance, :pool => pool, :cloud_account =>
cloud_account)
+ instance = Factory(:new_instance, :pool => pool, :provider_account =>
provider_account)
instance.time_last_pending = start_time
instance.time_last_running = start_time
instance.acc_running_time = runtime
@@ -205,8 +205,8 @@ describe DataServiceActiveRecord do
it "should calculate the average time it takes a provider to complete a task
between two times" do
pool = Factory(:pool)
- cloud_account = Factory(:mock_cloud_account)
- instance = Factory(:instance, :pool => pool, :cloud_account => cloud_account)
+ provider_account = Factory(:mock_provider_account)
+ instance = Factory(:instance, :pool => pool, :provider_account =>
provider_account)
start_time = Time.utc(2010,"jan",1,20,15,1)
task_completion_times = [10, 20, 30, 40, 50]
@@ -230,7 +230,7 @@ describe DataServiceActiveRecord do
end
expected_average_time = total_time / task_completion_times.length
- average_time =
DataServiceActiveRecord.qos_task_completion_mean_max_min(cloud_account.provider,
start_time, Time.now, InstanceTask::ACTION_CREATE)
+ average_time =
DataServiceActiveRecord.qos_task_completion_mean_max_min(provider_account.provider,
start_time, Time.now, InstanceTask::ACTION_CREATE)
average_time[:average].should == expected_average_time
average_time[:min].should == 10
@@ -243,8 +243,8 @@ describe DataServiceActiveRecord do
end_time = create_time + 1
pool = Factory(:pool)
- cloud_account = Factory :mock_cloud_account
- instance = Factory(:instance, :pool => pool, :cloud_account => cloud_account)
+ provider_account = Factory :mock_provider_account
+ instance = Factory(:instance, :pool => pool, :provider_account =>
provider_account)
failures = 5
non_failures = 20
@@ -289,8 +289,8 @@ describe DataServiceActiveRecord do
number_of_instances = 20
pool = Factory(:pool)
- cloud_account = Factory :mock_cloud_account
- instance = Factory(:instance, :pool => pool, :cloud_account => cloud_account)
+ provider_account = Factory :mock_provider_account
+ instance = Factory(:instance, :pool => pool, :provider_account =>
provider_account)
for i in 0..2
for j in 1..failures[i]
--
1.7.3.5