Protocols Vscan svm.uuid on-demand-policies endpoint overview
Overview
Vscan On-Demand scanning is used to check files for viruses on a schedule. For example, it can be used to run scans only in off-peak hours, or to scan very large files that are excluded from an on-access scan. Vscan On-Demand scanning can be used for any path in the SVM namespace.
Vscan On-Demand policy configurations define the scope of a Vscan On-Demand scan. The schedule parameter in the On-Demand policy configuration decides when to execute the task. Schedule can be created using the /api/clusters/schedule endpoint and can be assigned on policy create or policy modify. This API is used to retrieve and manage Vscan On-Demand policy configurations. It is also used to schedule the Vscan On-Demand scan.
Examples
Retrieving all fields for all policies of an SVM
# The API: /api/protocols/vscan/{svm.uuid}/on-demand-policies/ # The call: curl -X GET "https://<mgmt-ip>/api/protocols/vscan/{svm.uuid}/on-demand-policies?fields=*" -H "accept: application/hal+json" # The response: { "records": [ { "svm": { "uuid": "86fbc414-f140-11e8-8e22-0050568e0945", "name": "vs1", "_links": { "self": { "href": "/api/svm/svms/86fbc414-f140-11e8-8e22-0050568e0945" } } }, "name": "on-demand-policy1", "scan_paths": [ "/vol1/", "/vol2/cifs/" ], "log_path": "/vol0/report_dir", "schedule": { "uuid": "f6d0843e-f159-11e8-8e22-0050568e0945", "name": "schedule", "_links": { "self": { "href": "/api/cluster/schedules/f6d0843e-f159-11e8-8e22-0050568e0945" } } }, "scope": { "max_file_size": 10737418240, "exclude_paths": [ "/vol1/cold-files/", "/vol1/cifs/names" ], "include_extensions": [ "vmdk", "mp*" ], "exclude_extensions": [ "mp3", "mp4" ], "scan_without_extension": false }, "_links": { "self": { "href": "/api/protocols/vscan/86fbc414-f140-11e8-8e22-0050568e0945/on-demand-policies/policy1" } } }, { "svm": { "uuid": "86fbc414-f140-11e8-8e22-0050568e0945", "name": "vs1", "_links": { "self": { "href": "/api/svm/svms/86fbc414-f140-11e8-8e22-0050568e0945" } } }, "name": "on-demand-policy2", "scan_paths": [ "/vol1/", "/vol2/cifs/" ], "log_path": "/report", "scope": { "max_file_size": 10737418240, "include_extensions": [ "mp*" ], "scan_without_extension": true }, "_links": { "self": { "href": "/api/protocols/vscan/86fbc414-f140-11e8-8e22-0050568e0945/on-demand-policies/policy2" } } } ], "num_records": 2, "_links": { "self": { "href": "/api/protocols/vscan/86fbc414-f140-11e8-8e22-0050568e0945/on-demand-policies?fields=*" } } }
Retrieving a specific On-Demand policy associated with a specified SVM
# The API: /api/protocols/vscan/{svm.uuid}/on-demand-policies/{name} # The call: curl -X GET "https://<mgmt-ip>/api/protocols/vscan/86fbc414-f140-11e8-8e22-0050568e0945/on-demand-policies/on-demand-task" -H "accept: application/json" # The response: { "svm": { "uuid": "86fbc414-f140-11e8-8e22-0050568e0945", "name": "vs1", "_links": { "self": { "href": "/api/svm/svms/86fbc414-f140-11e8-8e22-0050568e0945" } } }, "name": "on-demand-policy", "scan_paths": [ "/vol1/cifs" ], "log_path": "/report", "scope": { "max_file_size": 10737418240, "include_extensions": [ "vmdk", "mp*" ], "scan_without_extension": true }, "_links": { "self": { "href": "/api/protocols/vscan/86fbc414-f140-11e8-8e22-0050568e0945/on-demand-policies/policy2" } } }
Creating a Vscan On-Demand policy
The Vscan On-Demand policy POST endpoint creates an On-Demand policy for the specified SVM. Specify the schedule parameter to schedule an On-Demand scan.
# The API: /api/protocols/vscan/{svm.uuid}/on-demand-policies # The call: curl -X POST "https://<mgmt-ip>/api/protocols/vscan/86fbc414-f140-11e8-8e22-0050568e0945/on-demand-policies?return_records=true" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"log_path\": \"/vol0/report_dir\", \"name\": \"on-demand-policy\", \"scan_paths\": [ \"/vol1/\", \"/vol2/cifs/\" ], \"schedule\": { \"name\": \"weekly\", \"uuid\": \"1cd8a442-86d1-11e0-ae1c-123478563412\" }, \"scope\": { \"exclude_extensions\": [ \"mp3\" ], \"exclude_paths\": [ \"/vol/cold-files/\" ], \"include_extensions\": [ \"vmdk\", \"mp*\" ], \"max_file_size\": 1073741824, \"scan_without_extension\": true }}" # The response: { "num_records": 1, "records": [ { "svm": { "name": "vs1" }, "name": "on-demand-policy", "scan_paths": [ "/vol1/", "/vol2/cifs/" ], "log_path": "/vol0/report_dir", "schedule": { "name": "weekly" }, "scope": { "max_file_size": 1073741824, "exclude_paths": [ "/vol/cold-files/" ], "include_extensions": [ "vmdk", "mp*" ], "exclude_extensions": [ "mp3" ], "scan_without_extension": true } } ] }
Creating a Vscan On-Demand policy where a number of optional fields are not specified
# The API: /api/protocols/vscan/{svm.uuid}/on-demand-policies # The call: curl -X POST "https://<mgmt-ip>/api/protocols/vscan/86fbc414-f140-11e8-8e22-0050568e0945/on-demand-policies?return_records=true" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"log_path\": \"/report\", \"name\": \"on-demand-policy\", \"scan_paths\": [ \"/vol1/cifs/\" ], \"scope\": { \"include_extensions\": [ \"mp*\" ], \"scan_without_extension\": true }}" # The response: { "num_records": 1, "records": [ { "svm": { "name": "vs1" }, "name": "on-demand-policy", "scan_paths": [ "vol1/cifs/" ], "log_path": "/report", "scope": { "max_file_size": 10737418240, "include_extensions": [ "vmdk", "mp*" ], "scan_without_extension": true } } ] }
Updating a Vscan On-Demand policy
The policy being modified is identified by the UUID of the SVM and the policy name.
# The API: /api/protocols/vscan/{svm.uuid}/on-demand-policies/{name} # The call: curl -X PATCH "https://<mgmt-ip>/api/protocols/vscan/86fbc414-f140-11e8-8e22-0050568e0945/on-demand-policies/on-demand-policy" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"schedule\": { \"name\": \"weekly\" }, \"scope\": { \"exclude_extensions\": [ \"mp3\" ], \"exclude_paths\": [ \"/vol/\" ], \"include_extensions\": [ \"vmdk\", \"mp3\" ], \"scan_without_extension\": true }}"
Deleting a Vscan On-Demand policy
The policy to be deleted is identified by the UUID of the SVM and the policy name.
# The API: /api/protocols/vscan/{svm.uuid}/on-demand-policies/{name} # The call: curl -X DELETE "https://<mgmt-ip>/api/protocols/vscan/86fbc414-f140-11e8-8e22-0050568e0945/on-demand-policies/on-demand-policy" -H "accept: application/hal+json"