.. _vol.action.compliance.compliance_fix:

:cmd:`om vol compliance fix`
----------------------------

Run compliance fixes.

:opt:`--attach`
+++++++++++++++

	Attach the modulesets specified in a compliance run.

:opt:`--color=<string>`
+++++++++++++++++++++++

	Colorize output. Possible values are:
	
	* auto: guess based on tty presence
	* always|yes: always colorize
	* never|no: never colorize

:opt:`--daemon`
+++++++++++++++

	A flag inhibiting the command daemonization. Set by the daemonization routine.

:opt:`--debug`
++++++++++++++

	Increase stream and file log verbosity up to the debug level.

:opt:`--env`
++++++++++++

	Export the uppercased variable in the os environment.
	
	With the create action only, set a env section parameter in the service configuration file. Multiple ``--env <key>=<val>`` can be specified. For all other actions.

:opt:`--local`
++++++++++++++

	Execute the service action on the local service instances only, ignoring cluster-wide considerations.

:opt:`--module=<string>`
++++++++++++++++++++++++

	Specify the modules to limit the run to. The modules must be in already attached modulesets.

:opt:`--moduleset=<string>`
+++++++++++++++++++++++++++

	Specify the modulesets to limit the action to. The special value ``all`` can be used in conjonction with detach.

:opt:`--namespace=<string>`
+++++++++++++++++++++++++++

	The namespace to switch to for the action. Namespaces are cluster partitions. A default namespace can be set for the session setting the OSVC_NAMESPACE environment variable.

:opt:`--node=<string>`
++++++++++++++++++++++

	The node to send a request to. If not specified the local node is targeted.

:opt:`--ruleset-date=<string>`
++++++++++++++++++++++++++++++

	Use an historical ruleset, specified by its date.

:opt:`--status=<string>`
++++++++++++++++++++++++

	Operate only on service with a local instance in the specified availability status (up, down, warn, ...).

:opt:`--waitlock=<string>`
++++++++++++++++++++++++++

	A duration expression like ``5s``. The maximum wait time when acquiring the service action lock.

:opt:`-f, --force`
++++++++++++++++++

	Force action, ignore sanity checks.

:opt:`-h, --help`
+++++++++++++++++

	Show this help message and exit.

:opt:`-p, --parallel`
+++++++++++++++++++++

	Start actions on specified services in parallel. :kw:`max_parallel` in node.conf limits the number of parallel running subprocesses.

:opt:`-s, VAL, --service=<string>`
++++++++++++++++++++++++++++++++++

	A service selector expression ``[!]<expr>[<sep>[!]<expr>]`` where:
	
	- ``!`` is the expression negation operator
	
	- ``<sep>`` can be:
	
	  - ``,`` OR expressions
	
	  - ``+`` AND expressions
	
	- ``<expr>`` can be:
	
	  - a shell glob on service names
	
	  - ``<param><op><value>`` where:
	
	    - ``<param>`` can be:
	
	      - ``<rid>:``
	
	      - ``<group>:``
	
	      - ``<rid>.<key>``
	
	      - ``<group>.<key>``
	
	      - ``<single value jsonpath expression on the $.monitor.services.<path> dictionary extended under the 'nodes' key by each instance 'status' and 'config' data>``
	
	    - ``<op>`` can be:
	
	      - ``<``  ``>``  ``<=``  ``>=``  ``=``
	
	      - ``~`` the string or any list element matches the regexp value
	
	      - ``~=`` the string matches regexp value or any list element is the value
	
	Examples:
	
	- ``*dns,ha*+app.timeout>1``
	
	- ``ip:+task:``
	
	- ``!*excluded``
	
	- ``$.avail=warn``
	
	- ``$.nodes.*.status.avail=warn``
	
	Note:
	
	- ``!`` usage requires single quoting the expression to prevent shell history expansion