def save_config_from_message(step, config_group, message, serv_as):
    server = getattr(world, serv_as)
    node = world.cloud.get_node(server)
    LOG.info("Get messages from server %s" % server.id)
    messages = world.get_szr_messages(node)
    msg_id = filter(lambda x: x["name"] == message, messages)[0]["id"]
    LOG.info("Message id for %s is %s" % (message, msg_id))
    message_details = json.loads(node.run("szradm message-details %s --json" % msg_id)[0])["body"]
    LOG.info("Message details is %s" % message_details)
    LOG.info("Save message part %s" % config_group)
    setattr(world, "%s_%s_%s" % (serv_as, message.lower(), config_group), message_details[config_group])
Example #2
0
def save_config_from_message(step, config_group, message, serv_as):
    server = getattr(world, serv_as)
    node = world.cloud.get_node(server)
    LOG.info('Get messages from server %s' % server.id)
    messages = world.get_szr_messages(node)
    msg_id = filter(lambda x: x['name'] == message, messages)[0]['id']
    LOG.info('Message id for %s is %s' % (message, msg_id))
    message_details = json.loads(
        node.run('szradm message-details %s --json' % msg_id)[0])['body']
    LOG.info('Message details is %s' % message_details)
    LOG.info('Save message part %s' % config_group)
    setattr(world, '%s_%s_%s' % (serv_as, message.lower(), config_group),
            message_details[config_group])
def check_message_config(step, config_group, message, serv_as):
    server = getattr(world, serv_as)
    node = world.cloud.get_node(server)
    LOG.info("Get messages from server %s" % server.id)
    messages = world.get_szr_messages(node)
    msg_id = filter(lambda x: x["name"] == message, messages)[0]["id"]
    LOG.info("Message id for %s is %s" % (message, msg_id))
    message_details = json.loads(node.run("szradm message-details %s --json" % msg_id)[0])["body"]
    LOG.info("Message details is %s" % message_details)
    old_details = getattr(world, "%s_%s_%s" % (serv_as, message.lower(), config_group), "")
    if not config_group in message_details or old_details == message_details[config_group]:
        LOG.error("New and old details is not equal: %s\n %s" % (old_details, message_details[config_group]))
        raise AssertionError("New and old details is not equal")
Example #4
0
def save_config_from_message(step, config_group, message, serv_as):
    # NOTE: migrated
    server = getattr(world, serv_as)
    node = world.cloud.get_node(server)
    LOG.info('Get messages from server %s' % server.id)
    messages = world.get_szr_messages(node)
    msg_id = filter(lambda x: x['name'] == message, messages)[0]['id']
    LOG.info('Message id for %s is %s' % (message, msg_id))
    cmd = 'szradm message-details %s --json' % msg_id
    if CONF.feature.dist.id == 'coreos':
        cmd = "/opt/bin/" + cmd
    message_details = json.loads(node.run(cmd).std_out)['body']
    LOG.info('Message details is %s' % message_details)
    LOG.info('Save message part %s' % config_group)
    setattr(world, '%s_%s_%s' % (serv_as, message.lower(), config_group), message_details[config_group])
Example #5
0
def check_message_config(step, config_group, message, serv_as):
    server = getattr(world, serv_as)
    node = world.cloud.get_node(server)
    LOG.info('Get messages from server %s' % server.id)
    messages = world.get_szr_messages(node)
    msg_id = filter(lambda x: x['name'] == message, messages)[0]['id']
    LOG.info('Message id for %s is %s' % (message, msg_id))
    message_details = json.loads(
        node.run('szradm message-details %s --json' % msg_id)[0])['body']
    LOG.info('Message details is %s' % message_details)
    old_details = getattr(
        world, '%s_%s_%s' % (serv_as, message.lower(), config_group), '')
    if not config_group in message_details or old_details == message_details[
            config_group]:
        LOG.error('New and old details is not equal: %s\n %s' %
                  (old_details, message_details[config_group]))
        raise AssertionError('New and old details is not equal')
Example #6
0
def check_message_config(step, config_group, message, serv_as):
    # NOTE: migrated
    server = getattr(world, serv_as)
    node = world.cloud.get_node(server)
    LOG.info('Get messages from server %s' % server.id)
    messages = world.get_szr_messages(node)
    msg_id = filter(lambda x: x['name'] == message, messages)[0]['id']
    LOG.info('Message id for %s is %s' % (message, msg_id))
    cmd = 'szradm message-details %s --json' % msg_id
    if CONF.feature.dist.id == 'coreos':
        cmd = "/opt/bin/" + cmd
    message_details = json.loads(node.run(cmd).std_out)['body']
    LOG.info('Message details is %s' % message_details)
    old_details = getattr(world, '%s_%s_%s' % (serv_as, message.lower(), config_group), '')
    if not config_group in message_details or old_details == message_details[config_group]:
        LOG.error('New and old details is not equal: %s\n %s' % (old_details, message_details[config_group]))
        raise AssertionError('New and old details is not equal')
Example #7
0
def wait_unstored_message(servers, message_name, message_type='out', find_in_all=False, timeout=1000):
    # NOTE: migrated
    if not isinstance(servers, (list, tuple)):
        servers = [servers]
    delivered_to = []
    message_type = 'in' if message_type.strip() in ('sends', 'out') else 'out'
    start_time = time.time()
    while time.time() - start_time < timeout:
        if delivered_to == servers:
            LOG.info('All servers has message: %s / %s' % (message_type, message_name))
            break
        for server in servers:
            if server in delivered_to:
                continue
            LOG.info('Searching message "%s/%s" on %s node' % (message_type, message_name, server.id))
            node = world.cloud.get_node(server)
            lookup_messages = getattr(world, '_server_%s_lookup_messages' % server.id, [])
            node_messages = reversed(world.get_szr_messages(node, convert=True))
            message = filter(lambda m:
                             m.name == message_name
                             and m.direction == message_type
                             and m.id not in lookup_messages
                             and strtobool(m.handled), node_messages)

            if message:
                LOG.info('Message found: %s' % message[0].id)
                lookup_messages.append(message[0].id)
                setattr(world,
                        '_server_%s_lookup_messages' % server.id,
                        lookup_messages)
                if find_in_all:
                    LOG.info('Message %s delivered to the server %s' % (message_name, server.id))
                    delivered_to.append(server)
                    continue
                return server
        time.sleep(30)
    else:
        raise MessageNotFounded('%s/%s was not finding' % (message_type, message_name))