Skip to content

Commit

Permalink
fix: validate existence of limit api response objects (#17605)
Browse files Browse the repository at this point in the history
  • Loading branch information
drdelambre authored Apr 3, 2020
1 parent 39978aa commit 96321ff
Showing 1 changed file with 55 additions and 27 deletions.
82 changes: 55 additions & 27 deletions ui/src/cloud/reducers/limits.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,68 +66,96 @@ export const limitsReducer = (
case ActionTypes.SetLimits: {
const {limits} = action.payload

const {maxBuckets, maxRetentionDuration} = limits.bucket
const {maxDashboards} = limits.dashboard
const {maxTasks} = limits.task
const {maxChecks} = limits.check
const {
maxNotifications,
blockedNotificationRules,
} = limits.notificationRule
const {blockedNotificationEndpoints} = limits.notificationEndpoint

const {readKBs, writeKBs, cardinality} = limits.rate

draftState.buckets.maxAllowed = maxBuckets
draftState.buckets.maxRetentionSeconds = maxRetentionDuration / 1e9
draftState.dashboards.maxAllowed = maxDashboards
draftState.tasks.maxAllowed = maxTasks
draftState.checks.maxAllowed = maxChecks
draftState.rules.maxAllowed = maxNotifications
draftState.rules.blocked = blockedNotificationRules
.split(',')
.map(r => r.trim())
draftState.endpoints.blocked = blockedNotificationEndpoints
.split(',')
.map(r => r.trim())
draftState.rate.readKBs.maxAllowed = readKBs
draftState.rate.writeKBs.maxAllowed = writeKBs
draftState.rate.cardinality.maxAllowed = cardinality
if (limits.bucket) {
const {maxBuckets, maxRetentionDuration} = limits.bucket
draftState.buckets.maxAllowed = maxBuckets
draftState.buckets.maxRetentionSeconds = maxRetentionDuration / 1e9
}

if (limits.dashboard) {
const {maxDashboards} = limits.dashboard
draftState.dashboards.maxAllowed = maxDashboards
}

if (limits.task) {
const {maxTasks} = limits.task
draftState.tasks.maxAllowed = maxTasks
}

if (limits.check) {
const {maxChecks} = limits.check
draftState.checks.maxAllowed = maxChecks
}

if (limits.notificationRule) {
const {
maxNotifications,
blockedNotificationRules,
} = limits.notificationRule
draftState.rules.maxAllowed = maxNotifications
draftState.rules.blocked = blockedNotificationRules
.split(',')
.map(r => r.trim())
}

if (limits.notificationEndpoint) {
const {blockedNotificationEndpoints} = limits.notificationEndpoint
draftState.endpoints.blocked = blockedNotificationEndpoints
.split(',')
.map(r => r.trim())
}

if (limits.rate) {
const {readKBs, writeKBs, cardinality} = limits.rate

draftState.rate.readKBs.maxAllowed = readKBs
draftState.rate.writeKBs.maxAllowed = writeKBs
draftState.rate.cardinality.maxAllowed = cardinality
}

return
}

case ActionTypes.SetDashboardLimitStatus: {
draftState.dashboards.limitStatus = action.payload.limitStatus
return
}

case ActionTypes.SetBucketLimitStatus: {
draftState.buckets.limitStatus = action.payload.limitStatus
return
}

case ActionTypes.SetTaskLimitStatus: {
draftState.tasks.limitStatus = action.payload.limitStatus
return
}

case ActionTypes.SetChecksLimitStatus: {
draftState.checks.limitStatus = action.payload.limitStatus
return
}

case ActionTypes.SetRulesLimitStatus: {
draftState.rules.limitStatus = action.payload.limitStatus
return
}

case ActionTypes.SetEndpointsLimitStatus: {
draftState.endpoints.limitStatus = action.payload.limitStatus
return
}

case ActionTypes.SetReadRateLimitStatus: {
draftState.rate.readKBs.limitStatus = action.payload.limitStatus
return
}

case ActionTypes.SetWriteRateLimitStatus: {
draftState.rate.writeKBs.limitStatus = action.payload.limitStatus
return
}

case ActionTypes.SetCardinalityLimitStatus: {
draftState.rate.cardinality.limitStatus = action.payload.limitStatus
return
Expand Down

0 comments on commit 96321ff

Please sign in to comment.