Lago module

lago

class lago.Prefix(prefix)[source]

Bases: object

_add_nic_to_mapping(net, dom, nic)[source]
_allocate_ips_to_nics(conf)[source]
_allocate_subnets(conf)[source]
_check_predefined_subnets(conf)[source]
_config_net_topology(conf)[source]
_create_disk(name, spec, template_repo=None, template_store=None)[source]
_create_paths()[source]
_create_ssh_keys()[source]
_create_virt_env()[source]
_get_metadata()[source]
_init_net_specs(conf)[source]
_register_preallocated_ips(conf)[source]
_save_metadata()[source]
_use_prototype(spec, conf)[source]
cleanup()[source]
create_snapshots(name)[source]
initialize()[source]
paths
revert_snapshots(name)[source]
save()[source]
start()[source]
stop()[source]
virt_conf(conf, template_repo=None, template_store=None)[source]
virt_env
lago._create_ip(subnet, index)[source]
lago._ip_in_subnet(subnet, ip)[source]

lago.brctl

lago.brctl._brctl(command, *args)[source]
lago.brctl.create(name, stp=True)[source]
lago.brctl.destroy(name)[source]
lago.brctl.exists(name)[source]

lago.config

lago.config._get_environ()[source]
lago.config._get_from_dir(path, key)[source]
lago.config._get_from_env(key)[source]
lago.config._get_from_files(paths, key)[source]
lago.config._get_providers()[source]
lago.config.get(key, default=<object object>)[source]

lago.constants

lago.dirlock

lago.dirlock._lock_path(path)[source]
lago.dirlock.lock(path, excl, key_path)[source]
lago.dirlock.trylock(path, excl, key_path)[source]
lago.dirlock.unlock(path, key_path)[source]

lago.paths

class lago.paths.Paths(prefix)[source]

Bases: object

_prefixed(*args)[source]
images(*path)[source]
logs()[source]
metadata()[source]
prefix()[source]
ssh_id_rsa()[source]
ssh_id_rsa_pub()[source]
uuid()[source]
virt(*path)[source]

lago.subnet_lease

lago.subnet_lease._acquire(*args, **kwargs)[source]
lago.subnet_lease._lease_owned(path, current_uuid_path)[source]
lago.subnet_lease._lease_valid(path)[source]
lago.subnet_lease._locked(func)[source]
lago.subnet_lease._release(*args, **kwargs)[source]
lago.subnet_lease._take_lease(path, uuid_path)[source]
lago.subnet_lease._validate_lease_dir_present(func)[source]
lago.subnet_lease.acquire(uuid_path)[source]
lago.subnet_lease.is_leasable_subnet(subnet)[source]
lago.subnet_lease.release(subnet)[source]

lago.sysprep

lago.sysprep._config_net_interface(iface, **kwargs)[source]
lago.sysprep._upload_file(local_path, remote_path)[source]
lago.sysprep._write_file(path, content)[source]
lago.sysprep.add_ssh_key(key)[source]
lago.sysprep.config_net_interface_dhcp(iface, hwaddr)[source]
lago.sysprep.set_hostname(hostname)[source]
lago.sysprep.set_iscsi_initiator_name(name)[source]
lago.sysprep.set_root_password(password)[source]
lago.sysprep.set_selinux_mode(mode)[source]
lago.sysprep.sysprep(disk, mods)[source]

lago.templates

class lago.templates.FileSystemTemplateProvider(root)[source]
_prefixed(*path)[source]
download_image(handle, dest)[source]
get_hash(handle)[source]
get_metadata(handle)[source]
class lago.templates.HttpTemplateProvider(baseurl)[source]
download_image(handle, dest)[source]
get_hash(handle)[source]
get_metadata(handle)[source]
class lago.templates.Template(name, versions)[source]
get_latest_version()[source]
get_version(ver_name=None)[source]
class lago.templates.TemplateRepository(dom)[source]
_get_provider(spec)[source]
classmethod from_file(path)[source]
get_by_name(name)[source]
name
class lago.templates.TemplateStore(path)[source]
_init_users(temp_ver)[source]
_prefixed(*path)[source]
download(temp_ver, store_metadata=True)[source]
get_path(temp_ver)[source]
get_stored_hash(temp_ver)[source]
get_stored_metadata(temp_ver)[source]
mark_used(temp_ver, key_path)[source]
class lago.templates.TemplateVersion(name, source, handle, timestamp)[source]
download(destination)[source]
get_hash()[source]
get_metadata()[source]
timestamp()[source]
lago.templates._locked(func)[source]
lago.templates.find_repo_by_name(name, repo_dir=None)[source]

lago.utils

class lago.utils.CommandStatus[source]

Bases: lago.utils.CommandStatus

class lago.utils.EggTimer(timeout)[source]
elapsed()[source]
class lago.utils.RollbackContext(*args)[source]

Bases: object

A context manager for recording and playing rollback. The first exception will be remembered and re-raised after rollback

Sample usage: > with RollbackContext() as rollback: > step1() > rollback.prependDefer(lambda: undo step1) > def undoStep2(arg): pass > step2() > rollback.prependDefer(undoStep2, arg)

More examples see tests/utilsTests.py @ vdsm code

clear()[source]
defer(func, *args, **kwargs)[source]
prependDefer(func, *args, **kwargs)[source]
class lago.utils.VectorThread(targets)[source]
join_all(raise_exceptions=True)[source]
start_all()[source]
lago.utils._CommandStatus

alias of CommandStatus

lago.utils._read_nonblocking(f)[source]
lago.utils._ret_via_queue(func, queue)[source]
lago.utils.drain_ssh_channel(chan, stdin=None, stdout=<open file '<stdout>', mode 'w'>, stderr=<open file '<stderr>', mode 'w'>)[source]
lago.utils.func_vector(target, args_sequence)[source]
lago.utils.interactive_ssh_channel(chan, command=None, stdin=<open file '<stdin>', mode 'r'>)[source]
lago.utils.invoke_in_parallel(func, *args_sequences)[source]
lago.utils.json_dump(obj, f)[source]
lago.utils.run_command(command, input_data=None, env=None, **kwargs)[source]
lago.utils.service_is_enabled(name)[source]
lago.utils.setup_logging(logdir)[source]

lago.virt

class lago.virt.BridgeNetwork(env, spec)[source]

Bases: lago.virt.Network

_libvirt_xml()[source]
start()[source]
stop()[source]
class lago.virt.NATNetwork(env, spec)[source]

Bases: lago.virt.Network

_libvirt_xml()[source]
class lago.virt.Network(env, spec)[source]

Bases: object

_libvirt_name()[source]
add_mapping(name, ip, save=True)[source]
add_mappings(mappings)[source]
alive()[source]
gw()[source]
is_management()[source]
name()[source]
resolve(name)[source]
save()[source]
start()[source]
stop()[source]
class lago.virt.ServiceState[source]
ACTIVE = 2
INACTIVE = 1
MISSING = 0
class lago.virt.VM(env, spec)[source]

Bases: object

VM properties: * name * cpus * memory * disks * metadata * network/mac addr

_check_alive(func)[source]
_create_dead_snapshot(name)[source]
_create_live_snapshot(name)[source]
_detect_service_manager()[source]
_get_ssh_client(*args, **kwargs)[source]
_libvirt_name()[source]
_libvirt_xml()[source]
classmethod _normalize_spec(spec)[source]
_open_ssh_client()[source]
_reclaim_disk(path)[source]
_reclaim_disks()[source]
_sftp(*args, **kwds)[source]
_template_metadata()[source]
alive()[source]
bootstrap()[source]
copy_from(remote_path, local_path)[source]
copy_to(local_path, remote_path)[source]
create_snapshot(name)[source]
distro()[source]
extract_paths(paths)[source]
guest_agent()[source]
interactive_ssh(*args, **kwargs)[source]
ip()[source]
iscsi_name()[source]
metadata
name()[source]
nics()[source]
revert_snapshot(name)[source]
root_password()[source]
save(path=None)[source]
service(*args, **kwargs)[source]
ssh(command, data=None, show_output=True)[source]
ssh_script(path, show_output=True)[source]
start()[source]
stop()[source]
virt_env()[source]
vnc_port(*args, **kwargs)[source]
wait_for_ssh(connect_retries=50)[source]
class lago.virt.VirtEnv(prefix, vm_specs, net_specs)[source]

Bases: object

Env properties: * prefix * vms * net

  • libvirt_con
_create_net(net_spec)[source]
_create_vm(vm_spec)[source]
bootstrap()[source]
create_snapshots(name)[source]
classmethod from_prefix(prefix)[source]
get_net(name=None)[source]
get_nets()[source]
get_vm(name)[source]
get_vms()[source]
libvirt_con
prefixed_name(unprefixed_name)[source]
revert_snapshots(name)[source]
save()[source]
start()[source]
stop()[source]
virt_path(*args)[source]
class lago.virt._Service(vm, name)[source]
alive()[source]
exists()[source]
classmethod is_supported(vm)[source]
start()[source]
stop()[source]
class lago.virt._SysVInitService(vm, name)[source]

Bases: lago.virt._Service

BIN_PATH = '/sbin/service'
_request_start()[source]
_request_stop()[source]
state()[source]
class lago.virt._SystemdContainerService(vm, name)[source]

Bases: lago.virt._Service

BIN_PATH = '/usr/bin/docker'
HOST_BIN_PATH = '/usr/bin/systemctl'
_request_start()[source]
_request_stop()[source]
state()[source]
class lago.virt._SystemdService(vm, name)[source]

Bases: lago.virt._Service

BIN_PATH = '/usr/bin/systemctl'
_request_start()[source]
_request_stop()[source]
state()[source]
lago.virt._gen_ssh_command_id()[source]
lago.virt._guestfs_copy_path(g, guest_path, host_path)[source]
lago.virt._ip_to_mac(ip)[source]
lago.virt._path_to_xml(basename)[source]