def token_server_groups(server_id, tokens_obj): """ Handle server group subscriptions for the registration token """ assert(isinstance(tokens_obj, ActivationTokens)) h = rhnSQL.prepare(_query_token_server_groups) server_groups = {} for token in tokens_obj.tokens: token_id = token['token_id'] h.execute(token_id=token_id) while 1: row = h.fetchone_dict() if not row: break server_group_id = row['server_group_id'] server_groups[server_group_id] = row # Now try to subscribe server to group ret = [] for server_group_id, sg in server_groups.items(): log_debug(4, "token server group", sg) try: join_server_group(server_id, server_group_id) except rhnSQL.SQLError, e: log_error("Failed to add server to group", server_id, server_group_id, sg["name"]) raise rhnFault(80, _("Failed to add server to group %s") % sg["name"]), None, sys.exc_info()[2] else: ret.append("Subscribed to server group '%s'" % sg["name"])
def join_groups(self): """ For a new server, join server groups """ # Sanity check - we should always have a user if not self.user: raise rhnException("User not specified") server_id = self.getid() user_id = self.user.getid() h = rhnSQL.prepare( """ select system_group_id from rhnUserDefaultSystemGroups where user_id = :user_id """ ) h.execute(user_id=user_id) while 1: row = h.fetchone_dict() if not row: break server_group_id = row["system_group_id"] log_debug(5, "Subscribing server to group %s" % server_group_id) server_lib.join_server_group(server_id, server_group_id)
def join_groups(self): """ For a new server, join server groups """ # Sanity check - we should always have a user if not self.user: raise rhnException("User not specified") server_id = self.getid() user_id = self.user.getid() h = rhnSQL.prepare(""" select system_group_id from rhnUserDefaultSystemGroups where user_id = :user_id """) h.execute(user_id=user_id) while 1: row = h.fetchone_dict() if not row: break server_group_id = row['system_group_id'] log_debug(5, "Subscribing server to group %s" % server_group_id) server_lib.join_server_group(server_id, server_group_id)