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)
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))
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)