modules/mu/cloud.rb in cloud-mu-2.0.0.pre.beta2 vs modules/mu/cloud.rb in cloud-mu-2.0.0.pre.beta3

- old
+ new

@@ -124,14 +124,48 @@ end # Stub base class; real implementations generated at runtime class NoSQLDB; end + # Denotes a resource implementation which is missing significant + # functionality or is largely untested. + ALPHA = "This implementation is **ALPHA** quality. It is experimental, may be missing significant functionality, and has not been widely tested." + + # Denotes a resource implementation which supports most or all key API + # functionality and has seen at least some non-trivial testing. + BETA = "This implementation is **BETA** quality. It is substantially complete, but may be missing some functionality or have some features which are untested." + + # Denotes a resource implementation which supports all key API functionality + # and has been substantially tested on real-world applications. + RELEASE = "This implementation is considered **RELEASE** quality. It covers all major API features and has been tested with real-world applications." + # The types of cloud resources we can create, as class objects. Include # methods a class implementing this resource type must support to be # considered valid. @@resource_types = { + :Folder => { + :has_multiples => false, + :can_live_in_vpc => false, + :cfg_name => "folder", + :cfg_plural => "folders", + :interface => self.const_get("Folder"), + :deps_wait_on_my_creation => true, + :waits_on_parent_completion => true, + :class => generic_class_methods, + :instance => generic_instance_methods + }, + :Habitat => { + :has_multiples => false, + :can_live_in_vpc => false, + :cfg_name => "habitat", + :cfg_plural => "habitats", + :interface => self.const_get("Habitat"), + :deps_wait_on_my_creation => true, + :waits_on_parent_completion => true, + :class => generic_class_methods, + :instance => generic_instance_methods + [:groom] + }, :Collection => { :has_multiples => false, :can_live_in_vpc => false, :cfg_name => "collection", :cfg_plural => "collections", @@ -326,32 +360,10 @@ :deps_wait_on_my_creation => true, :waits_on_parent_completion => true, :class => generic_class_methods, :instance => generic_instance_methods + [:groom] }, - :Habitat => { - :has_multiples => false, - :can_live_in_vpc => false, - :cfg_name => "habitat", - :cfg_plural => "habitats", - :interface => self.const_get("Habitat"), - :deps_wait_on_my_creation => true, - :waits_on_parent_completion => true, - :class => generic_class_methods, - :instance => generic_instance_methods - }, - :Folder => { - :has_multiples => false, - :can_live_in_vpc => false, - :cfg_name => "folder", - :cfg_plural => "folders", - :interface => self.const_get("Folder"), - :deps_wait_on_my_creation => true, - :waits_on_parent_completion => true, - :class => generic_class_methods, - :instance => generic_instance_methods - }, :User => { :has_multiples => false, :can_live_in_vpc => false, :cfg_name => "user", :cfg_plural => "users", @@ -1024,9 +1036,15 @@ end } end return [@dependencies, @vpc, @loadbalancers] + end + + # Defaults any resources that don't declare their release-readiness to + # ALPHA. That'll learn 'em. + def self.quality + MU::Cloud::ALPHA end def self.find(*flags) allfound = {}