def mount_target(uuid, pacemaker_ha_operation): # This is called by the Target RA from corosync info = _get_target_config(uuid) import_retries = 60 succeeded = False for i in xrange(import_retries): # This loop is needed due pools not being immediately importable during # STONITH operations. Track: https://github.com/zfsonlinux/zfs/issues/6727 result = import_target(info['device_type'], info['bdev'], pacemaker_ha_operation) succeeded = agent_result_is_ok(result) if succeeded: break elif (not pacemaker_ha_operation) or (info['device_type'] != 'zfs'): exit(-1) time.sleep(1) if succeeded is False: exit(-1) filesystem = FileSystem(info['backfstype'], info['bdev']) filesystem.mount(info['mntpt'])
def mount_target(uuid, pacemaker_ha_operation): # This is called by the Target RA from corosync info = _get_target_config(uuid) import_retries = 60 succeeded = False while import_retries > 0: # This loop is needed due pools not being immediately importable during # STONITH operations. Track: https://github.com/zfsonlinux/zfs/issues/6727 result = import_target(info['device_type'], info['bdev'], pacemaker_ha_operation) succeeded = agent_result_is_ok(result) if succeeded: break elif (not pacemaker_ha_operation) or (info['device_type'] != 'zfs'): exit(-1) time.sleep(1) import_retries -= 1 if succeeded is False: exit(-1) filesystem = FileSystem(info['backfstype'], info['bdev']) try: filesystem.mount(info['mntpt']) except RuntimeError, err: # Make sure we export any pools when a mount fails export_target(info['device_type'], info['bdev']) raise err
def register_target(device_path, mount_point, backfstype): filesystem = FileSystem(backfstype, device_path) _mkdir_p_concurrent(mount_point) filesystem.mount(mount_point) filesystem.umount() return {'label': filesystem.label}
def mount_target(uuid, pacemaker_ha_operation): # This is called by the Target RA from corosync info = _get_target_config(uuid) if agent_result_is_error( import_target(info['device_type'], info['bdev'], pacemaker_ha_operation)): exit(-1) filesystem = FileSystem(info['backfstype'], info['bdev']) filesystem.mount(info['mntpt'])
def register_target(device_path, mount_point, backfstype): """ Mount/unmount target so it registers with MGS """ filesystem = FileSystem(backfstype, device_path) _mkdir_p_concurrent(mount_point) filesystem.mount(mount_point) filesystem.umount() return {"label": filesystem.label}