[][src]Crate spurs_util

This is a library containing a bunch of routines that I have found useful for setting up and running experiments remotely.

Some of these utilities execute a sequence of steps. They require a shell as input and actually run a command remotely.

The rest only construct a command that can be executed and return it to the caller without executing anything.

There are also some utilities that don't construct or run commands. They are just useful functions for constructing commands.

The centos and ubuntu submodules contain routines specifically useful for those platforms.

Modules

centos

Functionality specific to Centos, RHEL, Amazon Linux, and other related distros.

ubuntu

Functionality specific to Ubuntu.

Functions

add_to_group

Add the executing user to the given group. Requires sudo permissions.

create_partition

Create a new partition on the given device. Requires sudo permissions.

escape_for_bash

Given a string, encode all single quotes so that the whole string can be passed correctly as a single argument to a bash command.

format_partition_as_ext4

Formats and mounts the given device as ext4 at the given mountpoint owned by the given user. The given partition and mountpoint are assumed to be valid (we don't check). We will assume quite a few things for simplicity:

get_dev_sizes

Returns the human-readable size of the devices devs. For example, ["477G", "500M"].

get_host_ip

Given a host:ip address, return (host, ip).

get_mounted_devs

Returns the list of devices mounted and their mountpoints. For example, [("sda2", "/")].

get_partitions

Returns a list of partitions of the given device. For example, ["sda1", "sda2"].

get_unpartitioned_devs

Returns a list of devices with no partitions. For example, ["sda", "sdb"].

reboot

Reboot and wait for the remote machine to come back up again. Requires sudo.

set_cpu_scaling_governor

Sets the CPU scaling governor to the given governor. This requires

swapoff

Turn off the swap device. Requires sudo permissions.

swapon

Turn on the swap device. Requires sudo permissions. Assumes the device is already formatted as a swap device (i.e. with mkswap).

write_gpt

Write a new general partition table (GPT) on the given device. Requires sudo permissions.