Пример #1
0
def scality_storage_policy(swift_user, sproxyd_endpoint):
    """
    Install a storage policy backed by Scality RING.

    :param swift_user: the user swift is running as
    :type swift_user: string
    :param sproxyd_endpoint: the sproxyd endpoint backing the storage policy
    :type sproxyd_endpoint: string
    """
    # Validate sproxyd endpoint connectivity.
    curl_cmd = run('curl --fail --connect-timeout 15 {0:s}/.conf'.format(
        sproxyd_endpoint),
                   warn_only=True)

    if curl_cmd.failed:
        raise Exception("Unable to establish a connection to sproxyd at "
                        "'{0:s}.'".format(sproxyd_endpoint))

    # Install dependencies.
    saio.install_scality_swift()

    # Add scality RING storage policy.
    content = {
        'sproxyd_endpoint': sproxyd_endpoint,
        'user': swift_user,
    }
    for path, _, filenames in os.walk('assets/saio/phase2/etc/swift'):
        utils.render(path, filenames, 'assets/saio/phase2', content)
    sudo('chown -R {0:s} /etc/swift'.format(swift_user))

    # Setup an additional object ring.
    sudo('mkdir -p /srv/scality/placeholder')
    sudo('chown -R {0:s}: /srv/scality'.format(swift_user))
    sudo('mkdir -p /var/cache/scality')
    sudo('chown {0:s}: /var/cache/scality'.format(swift_user))

    utils.render(
        directory='assets/saio/phase2/etc',
        filenames=['rc.local'],
        local_path_prefix='assets/saio/phase2',
        content={'user': swift_user},
    )
    sudo('chmod 755 /etc/rc.local')
    sudo('chown root: /etc/rc.local')

    utils.build_object_ring(
        swift_user=swift_user,
        name='object-1.builder',
        devices=[
            'r1z1-127.0.0.1:6050/placeholder',
        ],
        replicas=1,
    )

    saio.stop(swift_user)
    saio.start(swift_user)
Пример #2
0
def scality_storage_policy(swift_user, sproxyd_endpoint):
    """
    Install a storage policy backed by Scality RING.

    :param swift_user: the user swift is running as
    :type swift_user: string
    :param sproxyd_endpoint: the sproxyd endpoint backing the storage policy
    :type sproxyd_endpoint: string
    """
    # Validate sproxyd endpoint connectivity.
    curl_cmd = run('curl --fail --connect-timeout 15 {0:s}/.conf'.format(
                   sproxyd_endpoint), warn_only=True)

    if curl_cmd.failed:
        raise Exception("Unable to establish a connection to sproxyd at "
                        "'{0:s}.'".format(sproxyd_endpoint))

    # Install dependencies.
    saio.install_scality_swift()

    # Add scality RING storage policy.
    content = {
        'sproxyd_endpoint': sproxyd_endpoint,
        'user': swift_user,
    }
    for path, _, filenames in os.walk('assets/saio/phase2/etc/swift'):
        utils.render(path, filenames, 'assets/saio/phase2', content)
    sudo('chown -R {0:s} /etc/swift'.format(swift_user))

    # Setup an additional object ring.
    sudo('mkdir -p /srv/scality/placeholder')
    sudo('chown -R {0:s}: /srv/scality'.format(swift_user))
    sudo('mkdir -p /var/cache/scality')
    sudo('chown {0:s}: /var/cache/scality'.format(swift_user))

    utils.render(
        directory='assets/saio/phase2/etc',
        filenames=['rc.local'],
        local_path_prefix='assets/saio/phase2',
        content={'user': swift_user},
    )
    sudo('chmod 755 /etc/rc.local')
    sudo('chown root: /etc/rc.local')

    utils.build_object_ring(
        swift_user=swift_user,
        name='object-1.builder',
        devices=[
            'r1z1-127.0.0.1:6050/placeholder',
        ],
        replicas=1,
    )

    saio.stop(swift_user)
    saio.start(swift_user)
Пример #3
0
def build_rings(swift_user):
    # Account ring
    build_object_ring(
        swift_user=swift_user,
        name='account.builder',
        devices=[
            'r1z1-127.0.0.1:6012/sdb1',
            'r1z2-127.0.0.1:6022/sdb2',
            'r1z3-127.0.0.1:6032/sdb3',
            'r1z4-127.0.0.1:6042/sdb4',
        ],
    )

    # Container ring
    build_object_ring(
        swift_user=swift_user,
        name='container.builder',
        devices=[
            'r1z1-127.0.0.1:6011/sdb1',
            'r1z2-127.0.0.1:6021/sdb2',
            'r1z3-127.0.0.1:6031/sdb3',
            'r1z4-127.0.0.1:6041/sdb4',
        ],
    )

    # Object ring
    build_object_ring(
        swift_user=swift_user,
        name='object.builder',
        devices=[
            'r1z1-127.0.0.1:6010/sdb1',
            'r1z1-127.0.0.1:6010/sdb5',
            'r1z2-127.0.0.1:6020/sdb2',
            'r1z2-127.0.0.1:6020/sdb6',
            'r1z3-127.0.0.1:6030/sdb3',
            'r1z3-127.0.0.1:6030/sdb7',
            'r1z4-127.0.0.1:6040/sdb4',
            'r1z4-127.0.0.1:6040/sdb8',
        ],
    )
Пример #4
0
def build_rings(swift_user):
    # Account ring
    build_object_ring(
        swift_user=swift_user,
        name='account.builder',
        devices=[
            'r1z1-127.0.0.1:6012/sdb1',
            'r1z2-127.0.0.1:6022/sdb2',
            'r1z3-127.0.0.1:6032/sdb3',
            'r1z4-127.0.0.1:6042/sdb4',
        ],
    )

    # Container ring
    build_object_ring(
        swift_user=swift_user,
        name='container.builder',
        devices=[
            'r1z1-127.0.0.1:6011/sdb1',
            'r1z2-127.0.0.1:6021/sdb2',
            'r1z3-127.0.0.1:6031/sdb3',
            'r1z4-127.0.0.1:6041/sdb4',
        ],
    )

    # Object ring
    build_object_ring(
        swift_user=swift_user,
        name='object.builder',
        devices=[
            'r1z1-127.0.0.1:6010/sdb1',
            'r1z1-127.0.0.1:6010/sdb5',
            'r1z2-127.0.0.1:6020/sdb2',
            'r1z2-127.0.0.1:6020/sdb6',
            'r1z3-127.0.0.1:6030/sdb3',
            'r1z3-127.0.0.1:6030/sdb7',
            'r1z4-127.0.0.1:6040/sdb4',
            'r1z4-127.0.0.1:6040/sdb8',
        ],
    )