| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- /**
- * Parameter flow control service.
- *
- * @author Eric Zhao
- */
- angular.module('sentinelDashboardApp').service('ParamFlowService', ['$http', function ($http) {
- this.queryMachineRules = function(app, ip, port) {
- var param = {
- app: app,
- ip: ip,
- port: port
- };
- return $http({
- url: '/paramFlow/rules',
- params: param,
- method: 'GET'
- });
- };
- this.addNewRule = function(rule) {
- return $http({
- url: '/paramFlow/rule',
- data: rule,
- method: 'POST'
- });
- };
- this.saveRule = function (entity) {
- return $http({
- url: '/paramFlow/rule/' + entity.id,
- data: entity,
- method: 'PUT'
- });
- };
- this.deleteRule = function (entity) {
- return $http({
- url: '/paramFlow/rule/' + entity.id,
- method: 'DELETE'
- });
- };
- function isNumberClass(classType) {
- return classType === 'int' || classType === 'double' ||
- classType === 'float' || classType === 'long' || classType === 'short';
- }
- function isByteClass(classType) {
- return classType === 'byte';
- }
- function notNumberAtLeastZero(num) {
- return num === undefined || num === '' || isNaN(num) || num < 0;
- }
- function notGoodNumber(num) {
- return num === undefined || num === '' || isNaN(num);
- }
- function notGoodNumberBetweenExclusive(num, l ,r) {
- return num === undefined || num === '' || isNaN(num) || num < l || num > r;
- }
- function notValidParamItem(curExItem) {
- if (isNumberClass(curExItem.classType) && notGoodNumber(curExItem.object)) {
- return true;
- }
- if (isByteClass(curExItem.classType) && notGoodNumberBetweenExclusive(curExItem.object, -128, 127)) {
- return true;
- }
- return curExItem.object === undefined || curExItem.classType === undefined ||
- notNumberAtLeastZero(curExItem.count);
- }
- this.checkRuleValid = function (rule) {
- if (!rule.resource || rule.resource === '') {
- alert('资源名称不能为空');
- return false;
- }
- if (rule.grade != 1) {
- alert('未知的限流模式');
- return false;
- }
- if (rule.count < 0) {
- alert('限流阈值必须大于等于 0');
- return false;
- }
- if (rule.paramIdx === undefined || rule.paramIdx === '' || isNaN(rule.paramIdx) || rule.paramIdx < 0) {
- alert('热点参数索引必须大于等于 0');
- return false;
- }
- if (rule.paramFlowItemList !== undefined) {
- for (var i = 0; i < rule.paramFlowItemList.length; i++) {
- var item = rule.paramFlowItemList[i];
- if (notValidParamItem(item)) {
- alert('热点参数例外项不合法,请检查值和类型是否正确:参数为 ' + item.object + ', 类型为 ' +
- item.classType + ', 限流阈值为 ' + item.count);
- return false;
- }
- }
- }
- return true;
- };
- }]);
|