geni.rspec.igext

class AddressPool(name, count=1, type='any', site_id=None)[source]

A pool of public dynamic IP addresses belonging to a slice.

Site(id)[source]
property name
class Blockstore(name, mount=None)[source]
property size
class Bridge(name, if0name='if0', if1name='if1')[source]
class Pipe[source]
getPipe(interface)[source]
class Desire(name, weight)[source]
class DockerContainer(client_id, component_id=None, exclusive=False)[source]

Docker-based container resource

Parameters
  • client_id (str) – Your name for this container. This must be unique within a single Request object.

  • component_id (Optional[str]) – The component_id of the site node you want to bind this container to

  • exclusive (Optional[bool]) – Request this container on an isolated host used only by your sliver.

cores

Number of CPU cores

Type

int

ram

Amount of memory in megabytes

Type

int

disk

Amount of disk space in gigabytes

Type

int

docker_ptype

Physical node type on which to instantiate the container. Types are AM-specific.

Type

str

docker_extimage

An external Docker image (repo:tag) to load on the container.

Type

str

docker_dockerfile

A URL that points to a Dockerfile from which an image for this node will be created.

Type

str

docker_tbaugmentation

The requested testbed augmentation level; may be either ‘full’, ‘buildenv’, ‘core’, ‘basic’, ‘none’. To augment a Docker image is to take the image and install some or all of the Emulab clientside and dependencies, and other generally useful networking packages, so that it works seamlessly in testbeds based on Emulab.

Type

str

docker_tbaugmentation_update

If the image has already been augmented, should we update it or not.

Type

bool

docker_ssh_style

Specify what happens when you ssh to your node; may be ‘direct’ or ‘exec’. If your container is augmented > basic, and you don’t specify this, it defaults to ‘direct’. If your container is not augmented to that level and you don’t specify this, it defaults to ‘exec’. ‘direct’ means that the container is running an sshd inside, and an incoming ssh connection will be handled by the container. ‘exec’ means that when you connection, sshd will exec a shell inside your container. You can change that shell by specifying the ‘docker_exec_shell’ value.

Type

str

docker_exec_shell

The shell to run if your ‘docker_ssh_style’ is ‘direct’; otherwise ignored.

Type

str

docker_entrypoint

the Docker entrypoint you want the container to run at boot (e.g., a replacement for the ENTRYPOINT specified in the image, if any). If your image is not augmented, this value is passed directly to Docker, and replaces the image’s ENTRYPOINT. If your image is augmented, a combination of entrypoint/cmd will be run as a service in the container; we emulate Docker entrypoint/cmd functionality, but your entrypoint/cmd will not be run as PID 1, etc.

Type

str

docker_cmd

the Docker command you want the container to run at boot (e.g., a replacement for the CMD specified in the image, if any). If your image is not augmented, this value is passed directly to Docker (and if the image the container is running has an entrypoint, this value will be combined with the entrypoint; else, it will be run as a service in the container). If your image is augmented, we emulate Docker entrypoint/cmd functionality, but your entrypoint/cmd will not be run as PID 1, etc.

Type

str

docker_env

either a newline-separated list of variable assignments, or one or more variable assignments on a single line. If the former, we do not support escaped newlines, unlike the Docker ENV instruction.

Type

str

docker_privileged

if True, this container should be privileged; defaults to False (unprivileged).

Type

bool

class Firewall(style)[source]
class Direction[source]
INCOMING = 'incoming'
OUTGOING = 'outgoing'
class Style[source]
BASIC = 'basic'
CLOSED = 'closed'
OPEN = 'open'
addException(port, direction, ip=None)[source]
class OFController(host, port=6633)[source]

OpenFlow controller specification to be used on a PG VLAN.

Add to link objects using the Link.addChild() method.

Note

This will have no effect if a trivial link is created by the aggregate. You need to make sure that a VLAN will be provisioned (typically by making sure that at least two interfaces on the link are on different physical hosts).

class ParameterData(parameters)[source]
class Password(name=None)[source]

A declaration for a randomly generated password.

The portal will generate the password, encrypt it, and pass on the encrypted value to the AM(s) and therefore the node(s).

class RemoteBlockstore(name, mount=None, ifacename='if0')[source]
property dataset
property interface
property mountpoint
property placement
property readonly
property rwclone
property size
class Site(id)[source]
class Tour[source]
Description(type, desc)[source]
Instructions(type, inst)[source]
MARKDOWN = 'markdown'
SPLIT_REGEX = re.compile('\\n+^\\w*instructions\\w*:?\\w*$\\n+', re.IGNORECASE|re.MULTILINE)
class Step(target, description, steptype=None, description_type='markdown')[source]
MARKDOWN = 'markdown'
TEXT = 'text'
TEXT = 'text'
addStep(step)[source]
useDocstring(module=None)[source]
class XenVM(client_id, component_id=None, exclusive=False)[source]

Xen-based Virtual Machine resource

Parameters
  • client_id (str) – Your name for this VM. This must be unique within a single Request object.

  • component_id (Optional[str]) – The component_id of the site node you want to bind this VM to

  • exclusive (Optional[bool]) – Request this VM on an isolated host used only by your sliver.

cores

Number of CPU cores

Type

int

ram

Amount of memory in megabytes

Type

int

disk

Amount of disk space in gigabytes

Type

int

xen_ptype

Physical node type on which to instantiate the VM. Types are AM-specific.

Type

str