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)
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', ], )