deviant mutator

Command: deviant mutator

View information about your system's mutators.

A mutator is a well-described mutation actuator - it enacts mutations, and it is described by various attributes.

This command's functionality is exposed via subcommands:

# deviant mutator inspect

Command: deviant mutator inspect

Print out the information about a particular mutator.

# Example

$ deviant mutator inspect 7b8b756b-1378-4a20-b913-0fe259c45f6c

  Mutator 'TempSensorFixer' [7b8b756b-1378-4a20-b913-0fe259c45f6c] (Available)
  Attributes:
    mutator.description = "Make the temperature sensor reports a particular value until further notice."
    mutator.layer = "implementational"
    mutator.group = "drone"
    mutator.operation = "set_to_value"
    mutator.statefulness = "permanent"
    mutator.params.set_to_value.name = "set_to_value"
    mutator.params.set_to_value.description = "the magnitude of temperature to set"
    mutator.params.set_to_value.value_type = "Integer"
    mutator.params.set_to_value.value_min = -500
    mutator.params.set_to_value.value_max = 2500
    mutator.params.set_to_value.default_value = 40
    mutator.params.degrees.name = "degrees"
    mutator.params.degrees.description = "which temperature measurement scale to use"
    mutator.params.degrees.value_type = "String"
    mutator.params.degrees.default_value = "celsius"
    mutator.params.degrees.value_distribution.kind = "discrete"
    mutator.params.degrees.value_distribution.option_set.celsius = "celsius"
    mutator.params.degrees.value_distribution.option_set.fahrenheit = "fahrenheit"
    mutator.params.degrees.value_distribution.option_set.kelvin = "kelvin"

# Options

<mutator id> - Required argument. The id of the mutator to target.

-f, --format <text | json> - The printed output format, defaults to text.

# deviant mutator list

Command: deviant mutator list

Print out a list of mutators and some of their details. By default this only shows mutators that are currently available.

# Example

$ deviant mutator list

Available Mutators: 2
  Group: drone
    Mutator 'TempSensorFixer' [7b8b756b-1378-4a20-b913-0fe259c45f6c] (Available)
    
  Group: environment
    Mutator 'Wind Gust Generator' [3c3ad0a3-0081-410c-ae66-01fc4d11afcf] (Available)

When you request unavailable mutators, they show up in distinct groups

$ deviant mutator list --show-unavailable

Available Mutators: 2
  Group: drone
    Mutator 'TempSensorFixer' [7b8b756b-1378-4a20-b913-0fe259c45f6c] (Available)
    
  Group: environment
    Mutator 'Wind Gust Generator' [3c3ad0a3-0081-410c-ae66-01fc4d11afcf] (Available)

Retired Mutators: 2
  Group: drone
    Mutator 'Message bus corruptor' [9a87fd00-8f0f-4320-83f1-ccd2c21c6928] (Retired)

  Group: environment
    Mutator 'Solar flare pulse' [1caead9d-8b88-43a0-8dbe-3f050a8b07c5] (Retired)

You can add mutator attributes with the --with-mutator-attributes flag, and use --mutator-filter to limit the mutators shown to those whose attributes match the expression.

$ deviant mutator list --mutator-filter='_.statefulness = "permanent"' \
    --with-mutator-attributes

Available Mutators: 1
  Group: drone
    Mutator 'TempSensorFixer' [7b8b756b-1378-4a20-b913-0fe259c45f6c] (Available)
    Attributes:
      mutator.description = "Make the temperature sensor reports a particular value until further notice."
      mutator.layer = "implementational"
      mutator.group = "drone"
      mutator.operation = "set_to_value"
      mutator.statefulness = "permanent"
      mutator.params.set_to_value.name = "set_to_value"
      mutator.params.set_to_value.description = "the magnitude of temperature to set"
        ...

# Options

-f, --format <text | json> - The printed output format, defaults to text.

--show-unavailable - If this optional flag is present, also show mutators that aren't currently available to create mutations.

--with-mutator-attributes - In addition to mutator identity information, also list out the attributes of each mutator.

--mutator-filter <mutator predicate> - An optional logical expression that specifies which mutators should be shown.