var app = angular.module('sentinelDashboardApp'); app.controller('SentinelClusterAppTokenClientListController', ['$scope', '$stateParams', 'ngDialog', 'MachineService', 'ClusterStateService', function ($scope, $stateParams, ngDialog, MachineService, ClusterStateService) { $scope.app = $stateParams.app; const UNSUPPORTED_CODE = 4041; const CLUSTER_MODE_CLIENT = 0; const CLUSTER_MODE_SERVER = 1; function processClientData(clientVO) { } $scope.modifyClientConfigDialog = (clientVO) => { if (!clientVO) { return; } $scope.ccDialogData = { ip: clientVO.ip, commandPort: clientVO.commandPort, clientId: clientVO.id, serverHost: clientVO.state.clientConfig.serverHost, serverPort: clientVO.state.clientConfig.serverPort, requestTimeout: clientVO.state.clientConfig.requestTimeout, }; $scope.ccDialog = ngDialog.open({ template: '/app/views/dialog/cluster/cluster-client-config-dialog.html', width: 700, overlay: true, scope: $scope }); }; function checkValidClientConfig(config) { if (!config.serverHost || config.serverHost.trim() == '') { alert('请输入有效的 Token Server IP'); return false; } if (config.serverPort === undefined || config.serverPort <= 0 || config.serverPort > 65535) { alert('请输入有效的 Token Server 端口'); return false; } if (config.requestTimeout === undefined || config.requestTimeout <= 0) { alert('请输入有效的请求超时时长'); return false; } return true; } $scope.doModifyClientConfig = () => { if (!checkValidClientConfig($scope.ccDialogData)) { return; } let id = $scope.ccDialogData.id; let request = { app: $scope.app, ip: $scope.ccDialogData.ip, port: $scope.ccDialogData.commandPort, mode: CLUSTER_MODE_CLIENT, clientConfig: { serverHost: $scope.ccDialogData.serverHost, serverPort: $scope.ccDialogData.serverPort, requestTimeout: $scope.ccDialogData.requestTimeout, } }; ClusterStateService.modifyClusterConfig(request).success((data) => { if (data.code === 0 && data.data) { alert('修改 Token Client 配置成功'); window.location.reload(); } else { if (data.code === UNSUPPORTED_CODE) { alert('机器 ' + id + ' 的 Sentinel 没有引入集群限流客户端,请升级至 1.4.0 以上版本并引入相关依赖。'); } else { alert('修改失败:' + data.msg); } } }).error((data, header, config, status) => { alert('未知错误'); }); }; function retrieveClusterTokenClientInfo() { ClusterStateService.fetchClusterClientStateOfApp($scope.app) .success((data) => { if (data.code === 0 && data.data) { $scope.loadError = undefined; $scope.clientVOList = data.data; $scope.clientVOList.forEach(processClientData); } else { $scope.clientVOList = []; if (data.code === UNSUPPORTED_CODE) { $scope.loadError = {message: '该应用的 Sentinel 客户端不支持集群限流,请升级至 1.4.0 以上版本并引入相关依赖。'} } else { $scope.loadError = {message: data.msg}; } } }) .error(() => { $scope.loadError = {message: '未知错误'}; }); } retrieveClusterTokenClientInfo(); $scope.macsInputConfig = { searchField: ['text', 'value'], persist: true, create: false, maxItems: 1, render: { item: function (data, escape) { return '
' + escape(data.text) + '
'; } }, onChange: function (value, oldValue) { $scope.macInputModel = value; } }; }]);