def update_volumes(cls, instance): """Update volumes for Node instance. Adds pending "disks" changes for Cluster which Node belongs to :param instance: Node instance :returns: None """ attrs = instance.attributes if not attrs: attrs = cls.create_attributes(instance) try: attrs.volumes = instance.volume_manager.gen_volumes_info() except Exception as exc: msg = (u"Failed to generate volumes " u"info for node '{0}': '{1}'").format( instance.name or instance.mac or instance.id, str(exc) or "see logs for details") logger.warning(traceback.format_exc()) Notification.create({ "topic": "error", "message": msg, "node_id": instance.id }) if instance.cluster_id: Cluster.add_pending_changes(instance.cluster, "disks", node_id=instance.id) db().add(attrs) db().flush()
def update_volumes(cls, instance): attrs = instance.attributes if not attrs: attrs = cls.create_attributes(instance) try: attrs.volumes = instance.volume_manager.gen_volumes_info() except Exception as exc: msg = ( u"Failed to generate volumes " u"info for node '{0}': '{1}'" ).format( instance.name or instance.mac or instance.id, str(exc) or "see logs for details" ) logger.warning(traceback.format_exc()) Notification.create({ "topic": "error", "message": msg, "node_id": instance.id }) if instance.cluster_id: Cluster.add_pending_changes( instance.cluster, "disks", node_id=instance.id ) db().add(attrs) db().flush()
def add_pending_change(cls, instance, change): """Add pending change into Cluster. :param instance: Node instance :param change: string value of cluster change :returns: None """ if instance.cluster: Cluster.add_pending_changes(instance.cluster, change, node_id=instance.id)
def add_pending_change(cls, instance, change): """Add pending change into Cluster. :param instance: Node instance :param change: string value of cluster change :returns: None """ if instance.cluster: Cluster.add_pending_changes(instance.cluster, change, node_id=instance.id)
def update_volumes(cls, instance): """Update volumes for Node instance. Adds pending "disks" changes for Cluster which Node belongs to :param instance: Node instance :returns: None """ attrs = instance.attributes if not attrs: attrs = cls.create_attributes(instance) try: # TODO(eli): update volumes method should be moved # into an extension # Should be done as a part of blueprint: # https://blueprints.launchpad.net/fuel/+spec # /volume-manager-refactoring from nailgun.extensions.volume_manager.extension \ import VolumeManagerExtension VolumeManagerExtension.set_volumes( instance, instance.volume_manager.gen_volumes_info()) except Exception as exc: msg = ( u"Failed to generate volumes " u"info for node '{0}': '{1}'" ).format( instance.name or instance.mac or instance.id, str(exc) or "see logs for details" ) logger.warning(traceback.format_exc()) Notification.create({ "topic": "error", "message": msg, "node_id": instance.id }) if instance.cluster_id: Cluster.add_pending_changes( instance.cluster, "disks", node_id=instance.id ) db().add(attrs) db().flush()
def update_volumes(cls, instance): """Update volumes for Node instance. Adds pending "disks" changes for Cluster which Node belongs to :param instance: Node instance :returns: None """ attrs = instance.attributes if not attrs: attrs = cls.create_attributes(instance) try: # TODO(eli): update volumes method should be moved # into an extension # Should be done as a part of blueprint: # https://blueprints.launchpad.net/fuel/+spec # /volume-manager-refactoring from nailgun.extensions.volume_manager.extension \ import VolumeManagerExtension VolumeManagerExtension.set_volumes( instance, instance.volume_manager.gen_volumes_info()) except Exception as exc: msg = (u"Failed to generate volumes " u"info for node '{0}': '{1}'").format( instance.name or instance.mac or instance.id, str(exc) or "see logs for details") logger.warning(traceback.format_exc()) Notification.create({ "topic": "error", "message": msg, "node_id": instance.id }) if instance.cluster_id: Cluster.add_pending_changes(instance.cluster, "disks", node_id=instance.id) db().add(attrs) db().flush()
def update_networks(cls, cluster, network_configuration): if 'networks' in network_configuration: for ng in network_configuration['networks']: if ng['id'] == cls.get_admin_network_group_id(): continue ng_db = db().query(NetworkGroup).get(ng['id']) for key, value in ng.iteritems(): if key == "ip_ranges": cls._set_ip_ranges(ng['id'], value) else: if key == 'cidr' and \ ng_db.meta.get("notation") == "cidr": cls.update_range_mask_from_cidr(ng_db, value) if key != 'meta': setattr(ng_db, key, value) if ng_db.meta.get("notation"): cls.cleanup_network_group(ng_db) Cluster.add_pending_changes(ng_db.cluster, 'networks')