<a id="compute-rule"></a>

# compute-rule

## compute-rule action

**Usage**

```none
  usage: symp compute-rule action
[-f {adaptive_table,csv,json,table,value,yaml}]
                                  [-c COLUMN] [--max-width <integer>]
                                  [--fit-width] [--print-empty] [--noindent]
                                  [--quote {all,minimal,none,nonnumeric}]
                                  [-m [NAME=VALUE [NAME=VALUE ...]]]
                                  [--sort-column SORT_COLUMN] [--kill-vms]
                                  action compute_rule
```

**Description**

Perform an action related to this compute rule.

**Returns**

Returns list: List of affected VMs

**Mandatory**

```none
positional arguments:
  action                Must be 'apply' or 'simulate'
  compute_rule          ID of compute rule
```

**Optional**

```none
optional arguments:
  -h, --help            show this help message and exit
  --kill-vms            If false, never kill VMs, even if they do not comply with a hard rule
```

## compute-rule create

**Usage**

```none
  usage: symp compute-rule create
[-f {adaptive_table,json,shell,table,value,yaml}]
                                  [-c COLUMN] [--max-width <integer>]
                                  [--fit-width] [--print-empty] [--noindent]
                                  [--prefix PREFIX]
                                  [-m [NAME=VALUE [NAME=VALUE ...]]]
                                  [--description DESCRIPTION]
                                  [--compute-tags [COMPUTE_TAGS [COMPUTE_TAGS ...]]]
                                  [--node-tag NODE_TAG] [--enabled]
                                  [--project-id PROJECT_ID]
                                  type
```

**Description**

Create a new compute rule. It defines a relation between compute
tags or a compute tag and a node tag. The relation impacts the
placement of the compute entities marked by the tag.

The relation between the entities can be affinity,
anti_affinity, soft_affinity, soft_anti_affinity and taint. The soft
prefix means that the compute resource will be placed even if
attempts to meet the rule have failed.

**Returns**

Returns dict: Compute rule

**Mandatory**

```none
positional arguments:
  type                  Type of compute rule (affinity, anti_affinity, soft_affinity, soft_anti_affinity or taint)
```

**Optional**

```none
optional arguments:
  -h, --help            show this help message and exit
  --description DESCRIPTION
                        Description of the rule
  --compute-tags [COMPUTE_TAGS [COMPUTE_TAGS ...]]
                        Compute tags for the rule
  --node-tag NODE_TAG   Node tag for the rule
  --enabled             Indicates whether or not the rule will be applied
  --project-id PROJECT_ID
                        ID of project for the rule
```

## compute-rule get

**Usage**

```none
  usage: symp compute-rule get
[-f {adaptive_table,json,shell,table,value,yaml}]
                               [-c COLUMN] [--max-width <integer>] [--fit-width]
                               [--print-empty] [--noindent] [--prefix PREFIX]
                               [-m [NAME=VALUE [NAME=VALUE ...]]]
                               compute_rule
```

**Description**

Get the details of a compute rule.

**Returns**

Returns dict: Details of compute rule

**Mandatory**

```none
positional arguments:
  compute_rule          ID of compute rule
```

**Optional**

```none
optional arguments:
  -h, --help            show this help message and exit
```

## compute-rule human-readable

**Usage**

```none
  usage: symp compute-rule human-readable
[-f {adaptive_table,csv,json,table,value,yaml}]
                                          [-c COLUMN] [--max-width <integer>]
                                          [--fit-width] [--print-empty]
                                          [--noindent]
                                          [--quote {all,minimal,none,nonnumeric}]
                                          [-m [NAME=VALUE [NAME=VALUE ...]]]
                                          [--sort-column SORT_COLUMN]
                                          [--type TYPE]
                                          [--project-id PROJECT_ID]
                                          [--node-tags [NODE_TAGS [NODE_TAGS ...]]]
                                          [--compute-tags [COMPUTE_TAGS [COMPUTE_TAGS ...]]]
```

**Description**

Get the list of compute rules in a human-readable format.

**Returns**

Returns list: Compute rules

**Optional**

```none
optional arguments:
  -h, --help            show this help message and exit
  --type TYPE           Type of compute rule (affinity, anti_affinity, soft_affinity, soft_anti_affinity or taint)
  --project-id PROJECT_ID
                        Filter list of rules by project ID
  --node-tags [NODE_TAGS [NODE_TAGS ...]]
                        Filter list of rules by node tags (list only rules with any of the tags as their node tags)
  --compute-tags [COMPUTE_TAGS [COMPUTE_TAGS ...]]
                        Filter list of rules by compute tags (list only rules with any of the tags in their compute tags)
```

## compute-rule list

**Usage**

```none
  usage: symp compute-rule list
[-f {adaptive_table,csv,json,table,value,yaml}]
                                [-c COLUMN] [--max-width <integer>]
                                [--fit-width] [--print-empty] [--noindent]
                                [--quote {all,minimal,none,nonnumeric}]
                                [-m [NAME=VALUE [NAME=VALUE ...]]]
                                [--sort-column SORT_COLUMN] [--type TYPE]
                                [--project-id PROJECT_ID]
                                [--node-tags [NODE_TAGS [NODE_TAGS ...]]]
                                [--compute-tags [COMPUTE_TAGS [COMPUTE_TAGS ...]]]
```

**Description**

Get the list of compute rules.

**Returns**

Returns list: Compute rules

**Optional**

```none
optional arguments:
  -h, --help            show this help message and exit
  --type TYPE           Type of compute rule (affinity, anti_affinity, soft_affinity, soft_anti_affinity or taint)
  --project-id PROJECT_ID
                        Filter list of rules by project ID
  --node-tags [NODE_TAGS [NODE_TAGS ...]]
                        Filter list of rules by node tags (list only rules with any of the tags as their node tags)
  --compute-tags [COMPUTE_TAGS [COMPUTE_TAGS ...]]
                        Filter list of rules by compute tags (list only rules with any of the tags in their compute tags)
```

## compute-rule remove

**Usage**

```none
  usage: symp compute-rule remove
[-f {adaptive_table,json,shell,table,value,yaml}]
                                  [-c COLUMN] [--max-width <integer>]
                                  [--fit-width] [--print-empty] [--noindent]
                                  [--prefix PREFIX]
                                  [-m [NAME=VALUE [NAME=VALUE ...]]]
                                  compute_rule
```

**Description**

Delete a compute rule.

**Mandatory**

```none
positional arguments:
  compute_rule          ID of compute rule
```

**Optional**

```none
optional arguments:
  -h, --help            show this help message and exit
```

## compute-rule update

**Usage**

```none
  usage: symp compute-rule update
[-f {adaptive_table,json,shell,table,value,yaml}]
                                  [-c COLUMN] [--max-width <integer>]
                                  [--fit-width] [--print-empty] [--noindent]
                                  [--prefix PREFIX]
                                  [-m [NAME=VALUE [NAME=VALUE ...]]]
                                  [--description DESCRIPTION]
                                  [--enabled ENABLED]
                                  compute_rule
```

**Description**

Update the description of a compute rule.

**Mandatory**

```none
positional arguments:
  compute_rule          ID of compute rule
```

**Optional**

```none
optional arguments:
  -h, --help            show this help message and exit
  --description DESCRIPTION
                        New description for the compute rule
  --enabled ENABLED     True: enable the compute rule; False: disable the rule
```

## compute-rule-checker check

**Usage**

```none
  usage: symp compute-rule-checker check
[-f {adaptive_table,json,shell,table,value,yaml}]
                                         [-c COLUMN] [--max-width <integer>]
                                         [--fit-width] [--print-empty]
                                         [--noindent] [--prefix PREFIX]
                                         [-m [NAME=VALUE [NAME=VALUE ...]]]
                                         [--node-tag NODE_TAG]
                                         [--project-id PROJECT_ID]
                                         rule_type compute_tags
```

**Description**

Precheck whether a compute rule can be created.

**Returns**

Returns dict: Result

**Mandatory**

```none
positional arguments:
  rule_type             Type of rule
  compute_tags          A comma-seperated list of compute tags
```

**Optional**

```none
optional arguments:
  -h, --help            show this help message and exit
  --node-tag NODE_TAG   A node tag
  --project-id PROJECT_ID
                        The rule's project ID
```
