modules/mu/config.rb in cloud-mu-2.0.0.pre.alpha2 vs modules/mu/config.rb in cloud-mu-2.0.0.pre.alpha3
- old
+ new
@@ -31,20 +31,27 @@
# Exception class for deploy parameter (mu-deploy -p foo=bar) errors
class DeployParamError < MuError
end
# The default cloud provider for new resources. Must exist in MU.supportedClouds
+ # return [String]
def self.defaultCloud
- begin
- MU.myCloud
- rescue NoMethodError
- "AWS"
- end
-# XXX this can be more generic (loop through supportedClouds and try this)
- if MU::Cloud::Google.hosted?
- "Google"
- elsif MU::Cloud::AWS.hosted?
- "AWS"
+ configured = {}
+ MU::Cloud.supportedClouds.each { |cloud|
+ cloudclass = Object.const_get("MU").const_get("Cloud").const_get(cloud)
+ if $MU_CFG[cloud.downcase] and !$MU_CFG[cloud.downcase].empty?
+ configured[cloud] = $MU_CFG[cloud.downcase].size
+ configured[cloud] += 0.5 if cloudclass.hosted? # tiebreaker
+ elsif cloudclass.hosted?
+ configured[cloud] = 1
+ end
+ }
+ if configured.size > 0
+ return configured.keys.sort { |a, b|
+ configured[b] <=> configured[a]
+ }.first
+ else
+ return MU::Cloud.supportedClouds.first
end
end
# The default grooming agent for new resources. Must exist in MU.supportedGroomers.
def self.defaultGroomer