Exemplo n.º 1
0
 def add_features(self, features):
     """Adds a list of feature classes."""
     logger.debug("node: {} add features: {}".format(self.name, features))
     classes = module_classes(node_features)
     for feature in features:
         feature_class = classes[feature](self)
         self.features.append(feature_class)
Exemplo n.º 2
0
 def add_features(self, features):
     """Adds a dictionary of features to deployment.
     :param features: dictionary of features {"monitoring": "default", ...}
     :type features: dict
     """
     # stringify and lowercase classes in deployment features
     classes = module_classes(deployment_features)
     for feature, rpcs_feature in features.items():
         logger.debug("feature: {0}, "
                      "rpcs_feature: {1}".format(feature, rpcs_feature))
         self.features.append(classes[feature](self, rpcs_feature))
Exemplo n.º 3
0
def get_upgrade(deployment, branch_name):
    """This will return an instance of the correct upgrade class.
    :param branch_name: The name of the provisioner
    :type branch_name: str
    :rtype: monster.deployments.base.Deployment
    """

    # convert branch into a list of int strings
    word_b = [int2word(int(numeral))
              for numeral in
              branch_name.rstrip('rc').lstrip('v').split('.')]

    # convert list to class name
    up_class = "".join(word_b).replace(" ", "")
    up_class_module = "_".join(word_b).replace(" ", "")

    try:
        identifier = getattr(sys.modules['monster'].upgrades,
                             up_class_module)
    except AttributeError:
        raise NameError("{0} doesn't exist.".format(up_class_module))
    return module_classes(identifier)[up_class](deployment)