Ejemplo n.º 1
0
def assert_check_replicaset(step, slaves, shard_index, port):
    world.farm.servers.reload()
    db_role = world.get_role()
    shard_index = int(shard_index) - 1
    # Set credentials
    credentials = {'port': int(port), 'readPreference': 'secondary'}
    # mongod replicaSet status command
    command = {'replSetGetStatus': 1}
    # Get random server from shard
    for server in world.farm.servers:
        if server.status == 'Running' and server.role_id == db_role.role_id:
            if int(server.cluster_position[0]) == shard_index:
                server = server
                LOG.info('Found server %s with cluster position %s' %
                         (server.id, server.cluster_position))
                break
    else:
        raise AssertionError('No servers found in shard: #%s' % shard_index)
    shard_members = slaves.split(',')
    # Run command
    res = db_role.db.run_admin_command(server,
                                       command,
                                       credentials=credentials)
    LOG.info('Obtained replica set status from: %s\n%s' % (server.id, res))
    # Check result
    members = set([
        member['name'].split('mongo')[1].split(':')[0][1:]
        for member in res['members']
    ])
    LOG.info('Members in replicaSet %s are %s' %
             (shard_index, ','.join(members)))
    for shard_member in shard_members:
        world.assert_not_in(
            shard_member, members, 'Member %s not in replicaset. Members: %s' %
            (shard_member, members))
def assert_check_replicaset(step, slaves, shard_index, port):
    world.farm.servers.reload()
    db_role = world.get_role()
    shard_index = int(shard_index) - 1
    # Set credentials
    credentials = {'port': int(port), 'readPreference': 'secondary'}
    # mongod replicaSet status command
    command = {'replSetGetStatus': 1}
    # Get random server from shard
    for server in world.farm.servers:
        if server.status == 'Running' and server.role_id == db_role.role_id:
            if int(server.cluster_position[0]) == shard_index:
                server = server
                LOG.info('Found server %s with cluster position %s' % (server.id, server.cluster_position))
                break
    else:
        raise AssertionError('No servers found in shard: #%s' % shard_index)
    shard_members = slaves.split(',')
    # Run command
    res = db_role.db.run_admin_command(server, command, credentials=credentials)
    LOG.info('Obtained replica set status from: %s\n%s' % (server.id, res))
    # Check result
    members = set([member['name'].split('mongo')[1].split(':')[0][1:] for member in res['members']])
    LOG.info('Members in replicaSet %s are %s' % (shard_index, ','.join(members)))
    for shard_member in shard_members:
        world.assert_not_in(shard_member, members, 'Member %s not in replicaset. Members: %s' % (shard_member, members))
Ejemplo n.º 3
0
def assert_cf_work(step, serv_as):
    time.sleep(180)
    server = getattr(world, serv_as)
    cloud = Cloud()
    cloud_serv = cloud.node_from_server(server)
    out = cloud_serv.run("/bin/bash -c 'source /usr/local/rvm/scripts/rvm; vmc info'")[0]
    world.assert_not_in("VMware's Cloud Application Platform", out, 'CF client not work, message: %s' % out)
Ejemplo n.º 4
0
def add_test_app(step, serv_as):
    server = getattr(world, serv_as)
    cloud = Cloud()
    node = cloud.node_from_server(server)
    node.run('mkdir env')
    cont = resources('scripts/env.rb')
    node.put(path='/root/env/env.rb', content=cont.get())
    out = node.run("/bin/bash -c 'source /usr/local/rvm/scripts/rvm; vmc login --email [email protected] --passwd password; echo Y | vmc push testapp --url %s --mem 64 --path /root/env/'" % world.D1)[0]
    world.assert_not_in('Starting Application: OK', out, 'Application is not starting: %s' % out)
Ejemplo n.º 5
0
def check_cp(step):
    LOG.info('Check control panel work')
    detail = wait_until(world.wait_rabbitmq_cp_url, timeout=1000, error_text="Not see detail to rabbitmq panel")
    req = urllib2.Request(detail['url'].replace('\\', ''))
    code = base64.encodestring('%s:%s' % ('scalr', detail['password']))[:-1]
    req.add_header("Authorization", "Basic %s" % code)
    p = urllib2.urlopen(req)
    page = p.read()
    LOG.debug('Control panel page content: %s' % page)
    world.assert_not_in('RabbitMQ Management', page, 'Control panel not work')
Ejemplo n.º 6
0
def check_cp(step):
    LOG.info('Check control panel work')
    detail = wait_until(world.wait_rabbitmq_cp_url,
                        timeout=1000,
                        error_text="Not see detail to rabbitmq panel")
    req = urllib2.Request(detail['url'].replace('\\', ''))
    code = base64.encodestring('%s:%s' % ('scalr', detail['password']))[:-1]
    req.add_header("Authorization", "Basic %s" % code)
    p = urllib2.urlopen(req)
    page = p.read()
    LOG.debug('Control panel page content: %s' % page)
    world.assert_not_in('RabbitMQ Management', page, 'Control panel not work')
Ejemplo n.º 7
0
def assert_check_node_type(step, serv_as, node_type):
    server = getattr(world, serv_as)
    node = world.cloud.get_node(server)
    out = node.run('rabbitmqctl cluster_status')
    LOG.info('Rabbitmq serverer %s status: %s' % (server.id, out))
    disks = re.findall(r'disc,\[(.+)\]},', out[0])[0]
    disks = re.findall("'((?:[a-z0-9@-]+)\@(?:[a-z0-9@-]+))+'", disks)
    LOG.info('Rabbitmq serverer %s status disks: %s' % (server.id, disks))
    rams = re.findall(r"{ram,\[(.+)\]}]},", out[0])
    if rams:
        rams = re.findall(r"'((?:[a-z0-9@-]+)\@(?:[a-z0-9@-]+))+'", rams[0])
        LOG.info('Rabbitmq serverer %s status rams: %s' % (server.id, rams))
    if node_type == 'hdd':
        world.assert_not_in('rabbit@rabbit-%s' % server.index, disks, 'server %s is not %s node' % (server.id, node_type))
    elif node_type == 'ram':
        world.assert_not_in('rabbit@rabbit-%s' % server.index, rams, 'server %s is not %s node' % (server.id, node_type))
Ejemplo n.º 8
0
def assert_check_replicaset(step, slaves, serv_ind):
    world.farm.servers.reload()
    server = None
    serv_ind = int(serv_ind) - 1
    for serv in world.farm.servers:
        if serv.status == 'Running' and serv.role_id == world.mongodb_role.role_id:
            if int(serv.cluster_position[0]) == serv_ind:
                server = serv
                LOG.info('Found server %s with cluster position %s' % (server.id, serv.cluster_position))
                break
    world.assert_not_exist(server, 'Not find shard server %s' % serv_ind)
    slaves = slaves.split(',')
    mongo = pymongo.Connection(server.public_ip, 27018, read_preference=pymongo.ReadPreference.SECONDARY)
    mongo.admin.authenticate('scalr', world.farm.db_info('mongodb')['password'])
    members = [member['name'].split('mongo')[1].split(':')[0][1:] for member in mongo.admin.command('replSetGetStatus')['members']]
    LOG.info('Members in replicaset %s are %s' % (serv_ind, ','.join(members)))
    for s in slaves:
        world.assert_not_in(s, members, 'Member %s not in replicaset, all members: %s' % (s, members))
Ejemplo n.º 9
0
def assert_check_node_type(step, serv_as, node_type):
    server = getattr(world, serv_as)
    node = world.cloud.get_node(server)
    out = node.run('rabbitmqctl cluster_status')
    LOG.info('Rabbitmq serverer %s status: %s' % (server.id, out))
    disks = re.findall(r'disc,\[(.+)\]},', out[0])[0]
    disks = re.findall("'((?:[a-z0-9@-]+)\@(?:[a-z0-9@-]+))+'", disks)
    LOG.info('Rabbitmq serverer %s status disks: %s' % (server.id, disks))
    rams = re.findall(r"{ram,\[(.+)\]}]},", out[0])
    if rams:
        rams = re.findall(r"'((?:[a-z0-9@-]+)\@(?:[a-z0-9@-]+))+'", rams[0])
        LOG.info('Rabbitmq serverer %s status rams: %s' % (server.id, rams))
    if node_type == 'hdd':
        world.assert_not_in(
            'rabbit@rabbit-%s' % server.index, disks,
            'server %s is not %s node' % (server.id, node_type))
    elif node_type == 'ram':
        world.assert_not_in(
            'rabbit@rabbit-%s' % server.index, rams,
            'server %s is not %s node' % (server.id, node_type))
Ejemplo n.º 10
0
def assert_check_objects(step, obj, serv_as):
    serv = getattr(world, serv_as)
    node = world.cloud.get_node(serv)
    password = getattr(world, 'rabbitmq_password')
    if obj == 'user':
        LOG.info('Check user in rabbitmq')
        out = node.run('rabbitmqctl list_users')[0]
        world.assert_not_in('scalr', out, 'Not user scalr in list_users: %s' % out)
        #if not 'scalr' in out[0]:
        #       raise AssertionError('Not user guest in list_users: %s' % out[0])
    elif obj == 'vhost':
        LOG.info('Check vhost in rabbitmq')
        out = node.run('rabbitmqctl list_vhosts')[0]
        world.assert_not_in('testvhost', out, 'Not vhost testvhost in list_vhosts: %s' % out)
        #if not 'testvhost' in out[0]:
        #       raise AssertionError('Not vhost testvhost in list_vhosts: %s' % out[0])
    elif obj == 'queue':
        LOG.info('Check queue in rabbitmq')
        out = node.run('rabbitmqctl list_queues')[0]
        world.assert_not_in('test_queue', out, 'Not queue test_queue in list_queues: %s' % out)
        #if not 'test_queue' in out[0]:
        #       raise AssertionError('Not queue test_queue in list_queues: %s' % out[0])
    elif obj == 'message':
        LOG.info('Check  message in rabbitmq')
        credentials = pika.PlainCredentials('scalr', password)
        connection = pika.BlockingConnection(pika.ConnectionParameters(credentials=credentials, host=str(serv.public_ip)))
        channel = connection.channel()
        try:
            m = channel.basic_get(queue='test_queue')
            LOG.info('Give message in queue "test_queue"')
            world.assert_not_equal(m[2], 'super test message', 'Message is not our, I\'m get: %s' % m[2])
            #if not m[2] == 'super test message':
            #       raise AssertionError('Message is not our, I\'m get: %s' % m)
        except pika.exceptions.AMQPChannelError:
            raise AssertionError('Queue is not work')
Ejemplo n.º 11
0
def assert_check_objects(step, obj, serv_as):
    """
    Verify RabbitMQ object exists
    """
    serv = getattr(world, serv_as)
    node = world.cloud.get_node(serv)
    password = getattr(world, 'rabbitmq_password')
    port = 5672
    if CONF.feature.driver.current_cloud in [
            Platform.IDCF, Platform.CLOUDSTACK
    ]:
        port = world.cloud.open_port(node, port)
    if obj == 'user':
        LOG.info('Check user in rabbitmq')
        out = node.run('rabbitmqctl list_users')[0]
        world.assert_not_in('scalr', out,
                            'Not user scalr in list_users: %s' % out)
        #if not 'scalr' in out[0]:
        #       raise AssertionError('Not user guest in list_users: %s' % out[0])
    elif obj == 'vhost':
        LOG.info('Check vhost in rabbitmq')
        out = node.run('rabbitmqctl list_vhosts')[0]
        world.assert_not_in('testvhost', out,
                            'Not vhost testvhost in list_vhosts: %s' % out)
        #if not 'testvhost' in out[0]:
        #       raise AssertionError('Not vhost testvhost in list_vhosts: %s' % out[0])
    elif obj == 'queue':
        LOG.info('Check queue in rabbitmq')
        out = node.run('rabbitmqctl list_queues')[0]
        world.assert_not_in('test_queue', out,
                            'Not queue test_queue in list_queues: %s' % out)
        #if not 'test_queue' in out[0]:
        #       raise AssertionError('Not queue test_queue in list_queues: %s' % out[0])
    elif obj == 'message':
        LOG.info('Check  message in rabbitmq')
        credentials = pika.PlainCredentials('scalr', password)
        connection = pika.BlockingConnection(
            pika.ConnectionParameters(credentials=credentials,
                                      host=str(serv.public_ip),
                                      port=int(port)))
        channel = connection.channel()
        try:
            m = channel.basic_get(queue='test_queue')
            LOG.info('Give message in queue "test_queue"')
            world.assert_not_equal(m[2], 'super test message',
                                   'Message is not our, I\'m get: %s' % m[2])
            #if not m[2] == 'super test message':
            #       raise AssertionError('Message is not our, I\'m get: %s' % m)
        except pika.exceptions.AMQPChannelError:
            raise AssertionError('Queue is not work')
Ejemplo n.º 12
0
def add_user(step, serv_as):
    server = getattr(world, serv_as)
    cloud = Cloud()
    node = cloud.node_from_server(server)
    out = node.run("/bin/bash -c 'source /usr/local/rvm/scripts/rvm; vmc register --email [email protected] --passwd password'")[0]
    world.assert_not_in('Creating New User: OK', out, 'Error in user creation: %s' % out)