5.02021-11-21T21:53:47ZTemplatesStornext QuotaStornext Quota## Overview
Template for get Quotas from Stornext 5 WebAPI
Just write macro values in host configuration.
{$USERNAME\_VALUE\_STORNEXT}
{$PASSWORD\_VALUE\_STORNEXT}
{$FSNAME\_VALUE\_STORNEXT}
Template have dependent items which use main item.
Dependent items will create by discovery process.
- Current Size in TB
- Grace Period in weeks
- Hard Limit in TB
- Soft Limit in TB
- Used Space in percents
Warning and average triggers by 5% and 0%
It use GET to
https://IP/sws/v2/quota/snquota?username=USER&password=PASSWORD&fsname=NAME&action=listall&format=json
## Author
Kirill Savin, Nikita Kuznetsov
TemplatesStorNext- Quota on all filesystemsHTTP_AGENTsnquotas.onfs.all30m7d0TEXTStorNextJSONPATH$.directoryQuotas[?(@.type == 'dir')]https://{HOST.IP}/sws/v2/quota/snquotausername{$USERNAME_VALUE_STORNEXT}password{$PASSWORD_VALUE_STORNEXT}fsname{$FSNAME_VALUE_STORNEXT}actionlistallformatjson
QuotasHTTP_AGENTsnquotas.discovery1h7dUsed space on fs {#SNQUOTAID}CALCULATEDsnquotas.onfs.curSize.percent.[calc,{#SNQUOTAID}]30m7d30dFLOAT%last("snquotas.onfs.curSize.[{#SNQUOTAID}]") / (last("snquotas.onfs.softLimit.[{#SNQUOTAID}]") / 100)StorNext{last()}>=100Free disk quota is less than 0% on fs {#SNQUOTAID}DISABLEDAVERAGEYES{last()}>=95Free disk quota is less than 5% on fs {#SNQUOTAID}DISABLEDWARNINGYESFree disk quota is less than 0% on fs {#SNQUOTAID}{Stornext Quota:snquotas.onfs.curSize.percent.[calc,{#SNQUOTAID}].last()}>=100Quota on fs {#SNQUOTAID} Current SizeDEPENDENTsnquotas.onfs.curSize.[{#SNQUOTAID}]07d30dFLOATTBStorNextJSONPATH$.[?(@.name=='{#SNQUOTAID}')].curSizeJAVASCRIPTwork_value = value.slice(0, -3).slice(2)
if_value = value.slice(-3).slice(0,-2)
if (if_value == 'T') {
return(work_value * 1024);
} else if (if_value == 'P') {
return(work_value * 1024 * 1024);
} else if (if_value == 'G') {
return(work_value);
} else if (if_value == 'M') {
return(work_value / 1024);
} else if (if_value == 'K') {
return(work_value / 1024 / 1024);
} else {
return(work_value / 1024 / 1024 / 1024);
}MULTIPLIER0.001snquotas.onfs.allQuota on fs {#SNQUOTAID} Grace PeriodDEPENDENTsnquotas.onfs.gracePeriod.[{#SNQUOTAID}]07d30ddaysStorNextJSONPATH$.[?(@.name=='{#SNQUOTAID}')].gracePeriodJAVASCRIPTwork_value = value.slice(0, -3).slice(2)
if_value = value.slice(-3).slice(0,-2)
if (if_value == 'w') {
return(work_value * 7);
} else if (if_value == 'y') {
return(work_value * 365);
} else if (if_value == 'd') {
return(work_value);
} else if (if_value == 'h') {
return(work_value / 24);
} else {
return(work_value / 1440);
}snquotas.onfs.allQuota on fs {#SNQUOTAID} Hard LimitDEPENDENTsnquotas.onfs.hardLimit.[{#SNQUOTAID}]07d30dFLOATTBStorNextJSONPATH$.[?(@.name=='{#SNQUOTAID}')].hardLimitJAVASCRIPTwork_value = value.slice(0, -3).slice(2)
if_value = value.slice(-3).slice(0,-2)
if (if_value == 'T') {
return(work_value * 1024);
} else if (if_value == 'P') {
return(work_value * 1024 * 1024);
} else if (if_value == 'G') {
return(work_value);
} else if (if_value == 'M') {
return(work_value / 1024);
} else if (if_value == 'K') {
return(work_value / 1024 / 1024);
} else {
return(work_value / 1024 / 1024 / 1024);
}MULTIPLIER0.001snquotas.onfs.allQuota on fs {#SNQUOTAID} Soft LimitDEPENDENTsnquotas.onfs.softLimit.[{#SNQUOTAID}]07d30dFLOATTBStorNextJSONPATH$.[?(@.name=='{#SNQUOTAID}')].softLimitJAVASCRIPTwork_value = value.slice(0, -3).slice(2)
if_value = value.slice(-3).slice(0,-2)
if (if_value == 'T') {
return(work_value * 1024);
} else if (if_value == 'P') {
return(work_value * 1024 * 1024);
} else if (if_value == 'G') {
return(work_value);
} else if (if_value == 'M') {
return(work_value / 1024);
} else if (if_value == 'K') {
return(work_value / 1024 / 1024);
} else {
return(work_value / 1024 / 1024 / 1024);
}MULTIPLIER0.001snquotas.onfs.allQuota on fs {#SNQUOTAID} Current SizeFIXED1A7C11- Stornext Quotasnquotas.onfs.curSize.[{#SNQUOTAID}]
Used space on fs {#SNQUOTAID}FIXED1A7C11ALL- Stornext Quotasnquotas.onfs.curSize.percent.[calc,{#SNQUOTAID}]
https://{HOST.IP}/sws/v2/quota/snquotausername{$USERNAME_VALUE_STORNEXT}password{$PASSWORD_VALUE_STORNEXT}fsname{$FSNAME_VALUE_STORNEXT}actionlistallformatjson{#SNQUOTAID}$.nameJSONPATH$.directoryQuotas[?(@.type == 'dir')]{$FSNAME_VALUE_STORNEXT}{$PASSWORD_VALUE_STORNEXT}{$USERNAME_VALUE_STORNEXT}