UNPKG

graphdb-workbench

Version:
2 lines 17.1 kB
export const __webpack_id__=26325;export const __webpack_ids__=[7661,13569,21466,26325,39198,40555,75138,83413,98248];export const __webpack_modules__={7661:(e,t,r)=>{r.r(t),r.d(t,{ClusterEventName:()=>s});var n=r(98980),o=r(24508);function a(e){let t,r,a=!1;const i=()=>t,l=()=>a,c=e=>{if(!e)throw new Error("Invalid location");t.addToCluster(e),d()},u=e=>{if(!e)throw new Error("Invalid node");t.deleteFromCluster(e),d()},d=()=>{g(s.CLUSTER_VIEW_UPDATED,i())},g=(t,r)=>{e.emitSync(t,r)},m=(t,r)=>e.subscribeSync(t,e=>r(e));return{emit:g,subscribe:m,getClusterView:i,onClusterViewChanged:e=>(t&&angular.isFunction(e)&&e(i()),m(s.CLUSTER_VIEW_UPDATED,t=>e(t))),setClusterView:e=>{if(!e)return t=void 0,a=!1,void(r=void 0);t=new o.ClusterViewModel((0,n.cloneDeep)(e)),d()},addLocation:c,updateClusterValidity:e=>{a=e,g(s.CLUSTER_VALID_UPDATED,l())},isValid:l,onClusterValidityChanged:e=>(t&&angular.isFunction(e)&&e(l()),m(s.CLUSTER_VALID_UPDATED,t=>e(t))),emitUpdateClusterView:d,deleteFromCluster:u,restoreNode:e=>{if(!e)throw new Error("Invalid node");t.restoreFromDeletion(e),d()},replace:(e,t)=>{u(e),c(t)},setPendingReplace:e=>{r=(0,n.cloneDeep)(e)},getPendingReplace:()=>r,getDeleteFromCluster:()=>t.getDeleteFromCluster(),getAvailable:()=>t.getAvailable(),getAvailableNodeEndpoints:()=>t.getAvailableNodeEndpoints(),getAttached:()=>t.getAttached(),hasValidNodesCount:()=>t.hasValidNodesCount(),canDeleteNode:()=>t.canDeleteNode(),findByEndpoint:(e,r)=>t.findByEndpoint(e,r),getLocalNode:()=>t.getLocalNode(),getViewModel:()=>t.getViewModel(),hasCluster:()=>t.hasCluster(),getClusterConfiguration:()=>t.getClusterConfiguration(),isChanged:()=>t.isChanged()}}angular.module("graphdb.framework.clustermanagement.services.cluster-context",[]).factory("ClusterContextService",a),a.$inject=["EventEmitterService"];const s={CLUSTER_VIEW_UPDATED:"cluster_view_updated",CLUSTER_VALID_UPDATED:"cluster_valid_updated"}},13569:()=>{function e(e){let t,r=!1;function n(){return r}function o(t){r=t,e.emit("showClusterConfigurationPanel",n())}function a(){return t}return{updateClusterViewD3Container:function(r){t=r,e.emit("clusterViewD3ContainerChanged",a())},getClusterViewD3Container:a,onClusterViewD3ContainerUpdated:function(t){return e.subscribe("clusterViewD3ContainerChanged",()=>t(a()))},getShowClusterConfigurationPanel:n,setShowClusterConfigurationPanel:o,showClusterConfigurationPanel:function(){o(!0)},hideClusterConfigurationPanel:function(){o(!1)},onShowClusterConfigurationPanel:function(t){return e.subscribe("showClusterConfigurationPanel",()=>t(n()))}}}angular.module("graphdb.framework.clustermanagement.services.cluster-view-context-service",[]).factory("ClusterViewContextService",e),e.$inject=["EventEmitterService"]},21466:(e,t,r)=>{r.r(t),r.d(t,{CLICK_IN_VIEW:()=>a,CREATE_CLUSTER:()=>i,DELETE_CLUSTER:()=>o,MODEL_UPDATED:()=>l,NODE_SELECTED:()=>s,UPDATE_CLUSTER:()=>n});const n="updateCluster",o="deleteCluster",a="clickInView",s="nodeSelected",i="createCluster",l="modelUpdated"},26325:(e,t,r)=>{r.r(t),r(83413),r(98248),r(13569),r(75138),r(40555),r(39198);var n=r(98980),o=r(70962),a=r(21466);function s(e,t,r,s,i,l,c,u,d,g,m,p,_,C,f,h,v,E){let w;const S=[];e.loader=!0,e.isLeader=!1,e.currentNode=null,e.clusterModel={},e.NodeState=o.NodeState,e.leaderChanged=!1,e.currentLeader=null,e.showClusterConfigurationPanel=!1,e.clusterConfigurationPanelSize=void 0,e.onopen=()=>angular.noop(),e.onclose=()=>{E.hideClusterConfigurationPanel()},e.isAdmin=()=>u.isAuthenticated()&&u.isAdmin(),e.openClusterConfigurationPanel=()=>{e.showClusterConfigurationPanel=!0,E.showClusterConfigurationPanel()},e.setLoader=(t,r)=>{p.cancel(e.loaderTimeout),t?(e.loaderMessage=r,e.loaderTimeout=p(()=>{e.loader=t},50)):e.loader=!1},e.getLoaderMessage=()=>e.loaderMessage||f.instant("common.loading"),e.showUpdateClusterGroupDialog=()=>{e.setLoader(!0),M().then(()=>(e.setLoader(!1),l.open({templateUrl:"js/angular/clustermanagement/templates/modal/edit-cluster-nodes-modal.html",controller:"EditClusterNodesModalController",size:"lg",backdrop:"static",keyboard:!1,resolve:{data:()=>({clusterModel:e.clusterModel})}}).result)).then(e=>{e.addNodes||e.removeNodes?b(e):$(e)}).catch(()=>{e.setLoader(!1),D(!0)}).finally(()=>{M()})},e.getClusterConfiguration=()=>_.getClusterConfig().then(t=>{if(e.clusterConfiguration=t.data,!e.currentNode)return e.getCurrentNodeStatus()}).catch(()=>{e.clusterConfiguration=null}),e.getClusterStatus=()=>_.getClusterStatus().then(t=>{const r=t.data.slice(),n=r.find(e=>e.nodeState===o.NodeState.LEADER);y(e.currentLeader,n)&&(e.currentLeader=n,e.leaderChanged=!0),e.currentNode=r.find(t=>e.currentNode&&t.address===e.currentNode.address);const a=L(n,r);e.clusterModel.hasCluster=!0,e.clusterModel.nodes=r,e.clusterModel.links=a}).catch(t=>{if(404===t.status)return e.clusterModel.hasCluster=!1,e.clusterModel.nodes=[],e.clusterModel.links=[],e.clusterConfiguration=null,Promise.reject(t)}),e.getCurrentNodeStatus=()=>_.getNodeStatus().then(t=>{e.leaderChanged=!1,e.currentNode=t.data}).catch(t=>{e.currentNode=t.data,e.clusterModel.hasCluster=!1}).then(()=>M());const $=t=>(e.setLoader(!0,f.instant("cluster_management.cluster_page.creating_cluster_loader")),_.createCluster(t).then(()=>{s.success(f.instant("cluster_management.cluster_page.notifications.create_success"))}).catch(e=>{A(e.data,e.status)}).finally(()=>{e.setLoader(!1)})),b=t=>{const r=f.instant("cluster_management.cluster_page.updating_cluster_loader");e.setLoader(!0,r);const n={addNodes:t.addNodes,removeNodes:t.removeNodes};_.replaceNodesInCluster(n).then(()=>{const e=f.instant("cluster_management.cluster_page.notifications.update_success");T(e)}).catch(e=>{const t=f.instant("cluster_management.cluster_page.notifications.update_failed");A(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),D(!0)})},L=(e,t)=>{const r=[];return e&&Object.keys(e.syncStatus).forEach(n=>{const a=e.syncStatus[n];if(a!==o.LinkState.NO_CONNECTION&&(r.push({id:`${e.address}-${n}`,source:e.address,target:n,status:a}),a===o.LinkState.OUT_OF_SYNC)){const e=t.find(e=>e.address===n);let a;if(e.recoveryStatus.state===o.RecoveryState.RECEIVING_SNAPSHOT&&(a=e.recoveryStatus.affectedNodes[0]),e&&a){const n=t.find(e=>e.endpoint===a);r.push({id:`${e.address}-${n.address}`,source:n.address,target:e.address,status:o.LinkState.RECEIVING_SNAPSHOT})}}}),r},N=t=>{e.selectedNode!==t?e.selectedNode=t:e.selectedNode=null,e.$apply()},D=t=>{w||(w=e.getClusterStatus().then(()=>{if(t||!e.clusterConfiguration)return e.getClusterConfiguration()}).then(()=>{if(!e.currentNode||e.leaderChanged)return e.getCurrentNodeStatus()}).finally(()=>{w=null,e.$broadcast(a.MODEL_UPDATED)}))},y=(e,t)=>!t||!e||e.address!==t.address,M=()=>h.getLocationsWithRpcAddresses().then(t=>{const r=t.find(e=>e.isLocal);r&&(r.endpoint=e.currentNode.endpoint,r.rpcAddress=e.currentNode.address),e.clusterModel.locations=t}),T=t=>{s.success(t),e.getClusterConfiguration()},A=(e,t,r)=>{let o=e.message||e;400===t&&Array.isArray(e)?o=e.reduce((e,t)=>e+`<div>${t}</div>`,""):412!==t||(0,n.isString)(e)||(o=Object.keys(e).reduce((t,r)=>t+`<div>${r} - ${e[r]}</div>`,"")),s.error(o,r,{allowHtml:!0})},V=()=>{e.clusterConfigurationPanelSize=.25*window.innerWidth+"px"};e.$on("$destroy",function(){S.forEach(e=>e())}),S.push(E.onShowClusterConfigurationPanel(t=>{V(),e.showClusterConfigurationPanel=t})),S.push(e.$on(a.UPDATE_CLUSTER,(e,t)=>{D(t.force)})),S.push(e.$on(a.DELETE_CLUSTER,(t,r)=>{(t=>{const r=f.instant("cluster_management.delete_cluster_dialog.loader_message");e.setLoader(!0,r),_.deleteCluster(t).then(t=>{if(Object.values(t.data).every(e=>"Cluster was deleted on this node."===e)){const e=f.instant("cluster_management.delete_cluster_dialog.notifications.success_delete");s.success(e)}else{const e=f.instant("cluster_management.delete_cluster_dialog.notifications.success_delete_partial"),r=Object.keys(t.data).reduce((e,r)=>e+`<div>${r} - ${t.data[r]}</div>`,"");s.warning(r,e,{allowHtml:!0})}e.getClusterConfiguration()}).catch(e=>{const t=f.instant("cluster_management.delete_cluster_dialog.notifications.fail_delete");A(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),D(!0),v.$broadcast("reloadLocations")})})(r.force)})),S.push(e.$on(a.CLICK_IN_VIEW,(t,r)=>{!function(t){const r=document.getElementById("nodeTooltip");e.selectedNode&&r!==t&&!r.contains(t)&&N(null)}(r)})),S.push(e.$on(a.NODE_SELECTED,(e,t)=>{N(t)})),S.push(e.$on(a.CREATE_CLUSTER,()=>{e.showUpdateClusterGroupDialog()})),V(),e.showClusterConfigurationPanel=E.getShowClusterConfigurationPanel(),(e.loader=!0,e.getCurrentNodeStatus().then(()=>e.getClusterConfiguration()).then(()=>e.getClusterStatus()).finally(()=>{e.setLoader(!1)})).finally(()=>{const t=g(function(){D()},1e3);e.$on("$destroy",function(){g.cancel(t)})})}angular.module("graphdb.framework.clustermanagement.controllers.cluster-management",["ui.bootstrap","graphdb.framework.core.services.repositories","graphdb.framework.rest.repositories.service","graphdb.framework.rest.cluster.service","graphdb.framework.clustermanagement.services.cluster-view-context-service","graphdb.framework.clustermanagement.services.remote-locations","graphdb.framework.clustermanagement.controllers.edit-cluster","graphdb.framework.clustermanagement.controllers.delete-cluster","graphdb.framework.clustermanagement.controllers.edit-cluster-nodes-modal","toastr","pageslide-directive"]).controller("ClusterManagementCtrl",s),s.$inject=["$scope","$http","$q","toastr","$repositories","$uibModal","$sce","$jwtAuth","$window","$interval","ModalService","$timeout","ClusterRestService","$location","$translate","RemoteLocationsService","$rootScope","ClusterViewContextService"]},39198:(e,t,r)=>{r.r(t),r(7661);var n=r(98980);function o(e,t,r,o,a,s){const i=[];e.isValid=a.isValid(),e.ok=()=>{const e=a.getClusterView();e.hasCluster()?t.close((0,n.cloneDeep)(e.getUpdateActions())):t.close((0,n.cloneDeep)(e.getUpdateActions().clusterConfiguration))},e.cancel=()=>{e.isChanged?s.openSimpleModal({title:r.instant("common.warning"),message:r.instant("page.leave.pristine.warning"),warning:!0}).result.then(()=>{t.dismiss("cancel")}):t.dismiss("cancel")};i.push(a.onClusterValidityChanged(t=>{e.isValid=t})),i.push(a.onClusterViewChanged(()=>{if(!e.hasCluster&&0===a.getAttached().length){const e=a.getLocalNode();a.addLocation(e)}e.isChanged=a.isChanged()})),e.$on("$destroy",()=>{i.forEach(e=>e()),a.setClusterView(void 0)}),a.setClusterView(o.clusterModel),e.hasCluster=o.clusterModel.hasCluster}angular.module("graphdb.framework.clustermanagement.controllers.edit-cluster-nodes-modal",["graphdb.framework.clustermanagement.services.cluster-context"]).controller("EditClusterNodesModalController",o),o.$inject=["$scope","$uibModalInstance","$translate","data","ClusterContextService","ModalService"]},40555:()=>{function e(e,t){e.forceDelete=!1,e.ok=()=>{t.close(e.forceDelete)},e.cancel=()=>{t.dismiss("cancel")},e.onClick=e=>{e.stopPropagation()}}angular.module("graphdb.framework.clustermanagement.controllers.delete-cluster",[]).controller("DeleteClusterCtrl",e),e.$inject=["$scope","$uibModalInstance"]},75138:(e,t,r)=>{function n(e,t,r,n,o,a,s){e.pageTitle=a.instant("cluster_management.cluster_page.edit_page_title"),e.errors=[],e.clusterConfiguration=_.cloneDeep(s.clusterConfiguration),e.loader=!1,e.configFields=[{id:"election-minimum-timeout",name:"electionMinTimeout",label:"cluster_management.cluster_configuration_properties.election_min_timeout",tooltip:"cluster_management.cluster_configuration_properties.election_min_timeout_tooltip",errorMsg:"cluster_management.cluster_page.errors.only_positive_integers"},{id:"election-range-timeout",name:"electionRangeTimeout",label:"cluster_management.cluster_configuration_properties.election_range_timeout",tooltip:"cluster_management.cluster_configuration_properties.election_range_timeout_tooltip",errorMsg:"cluster_management.cluster_page.errors.only_positive_integers"},{id:"heartbeat-interval",name:"heartbeatInterval",label:"cluster_management.cluster_configuration_properties.heartbeat_interval",tooltip:"cluster_management.cluster_configuration_properties.heartbeat_interval_tooltip",errorMsg:"cluster_management.cluster_page.errors.only_positive_integers"},{id:"message-size",name:"messageSizeKB",label:"cluster_management.cluster_configuration_properties.message_size_kb",tooltip:"cluster_management.cluster_configuration_properties.message_size_kb_tooltip",errorMsg:"cluster_management.cluster_page.errors.only_positive_integers"},{id:"verification-timeout",name:"verificationTimeout",label:"cluster_management.cluster_configuration_properties.verification_timeout",tooltip:"cluster_management.cluster_configuration_properties.verification_timeout_tooltip",errorMsg:"cluster_management.cluster_page.errors.only_positive_integers"},{id:"transaction-log-max-size",name:"transactionLogMaximumSizeGB",label:"cluster_management.cluster_configuration_properties.transaction_log_maximum_size_gb",tooltip:"cluster_management.cluster_configuration_properties.transaction_log_maximum_size_gb_tooltip",pattern:"-?[1-9][0-9]*(\\.[0-9]+)?",errorMsg:"cluster_management.cluster_page.errors.small_transaction_log_max_size"},{id:"batch-update-interval",name:"batchUpdateInterval",label:"cluster_management.cluster_configuration_properties.batch_update_interval",tooltip:"cluster_management.cluster_configuration_properties.batch_update_interval_tooltip",errorMsg:"cluster_management.cluster_page.errors.only_positive_integers"}],e.updateClusterConfiguration=()=>(e.setLoader(!0,a.instant("cluster_management.cluster_page.updating_cluster_loader")),n.updateClusterConfiguration(e.clusterConfiguration).then(()=>{o.success(a.instant("cluster_management.cluster_page.notifications.update_success")),t.close()}).catch(function(e){i(e.data,e.status)}).finally(()=>e.setLoader(!1))),e.isClusterConfigurationValid=()=>!e.clusterConfigurationForm.$invalid,e.setLoader=(t,n)=>{r.cancel(e.loaderTimeout),t?e.loaderTimeout=r(()=>{e.loader=t,e.loaderMessage=n},300):e.loader=!1},e.ok=()=>{e.isClusterConfigurationValid()?e.updateClusterConfiguration():o.warning(a.instant("cluster_management.cluster_page.notifications.form_invalid"))},e.cancel=()=>{t.dismiss("cancel")},e.onClick=e=>{e.stopPropagation()};const i=(t,r)=>{delete e.preconditionErrors,o.error(a.instant("cluster_management.cluster_page.notifications.update_failed")),e.errors.splice(0),409===r||"string"==typeof t?e.errors.push(t):412===r?e.preconditionErrors=Object.keys(t).map(e=>`${e} - ${t[e]}`):400===r&&e.errors.push(...t)}}r.r(t),r(83413),angular.module("graphdb.framework.clustermanagement.controllers.edit-cluster",[]).controller("EditClusterCtrl",n),n.$inject=["$scope","$uibModalInstance","$timeout","ClusterRestService","toastr","$translate","data"]},83413:()=>{angular.module("graphdb.framework.rest.cluster.service",[]).factory("ClusterRestService",t),t.$inject=["$http"];const e="rest/cluster";function t(t){return{getClusterConfig:function(){return t.get(`${e}/config`)},createCluster:function(r){return t.post(`${e}/httpConfig`,r)},updateClusterConfiguration:function(r){return r.nodes&&delete r.nodes,t.patch(`${e}/config`,r)},deleteCluster:function(r){const n=$.param({force:r});return t.delete(`${e}/config?${n}`)},replaceNodesInCluster:function(r){return t.patch(`${e}/httpConfig`,r)},getClusterStatus:function(){return t.get(`${e}/group/status`)},getNodeStatus:function(){return t.get(`${e}/node/status`)},addCusterTag:function(r){return t.post(`${e}/config/tag`,r)},deleteClusterTag:function(r){return t({method:"DELETE",url:`${e}/config/tag`,data:{tag:r},headers:{"Content-type":"application/json;charset=utf-8"}})},disableSecondaryMode:function(){return t.delete(`${e}/config/secondary-mode`)},enableSecondaryMode:function(r){return t.post(`${e}/config/secondary-mode`,r)}}}},98248:(e,t,r)=>{function n(e,t,r,n,o){return{addLocationHttp:function(e){let r;return n.addLocation(e).catch(e=>{const r=getError(e.data,e.status);return t.error(r,o.instant("common.error")),!1}).then(e=>!!e&&a()).then(t=>{if(!1!==t)return r=t.find(t=>t.endpoint===e.uri),r})},getLocationsWithRpcAddresses:a,createNewLocation:function(e){return{uri:e,authType:"signature",username:"",password:"",active:!1,clusterMode:!0,isLocal:!1}},isInCluster:function(e,t){return e.some(e=>t.rpcAddress===e.address)}};function a(){return n.getLocations().then(function(e){return e.data.map(e=>({isLocal:e.local,endpoint:e.uri,rpcAddress:e.rpcAddress||"",error:e.errorMsg}))}).catch(function(e){const r=getError(e.data,e.status);t.error(r,o.instant("common.error"))}).then(e=>{if(e)return function(e){const t=e.filter(e=>!e.isLocal&&!e.error).map(e=>function(e){return n.getLocationRpcAddress(e.endpoint)}(e).then(t=>(e.rpcAddress=t.data,e.isAvailable=!0,e)).catch(t=>{e.isAvailable=!1,e.error=getError(t.data,t.status)}));return Promise.allSettled(t).then(()=>e)}(e)})}}r.r(t),r(807),angular.module("graphdb.framework.clustermanagement.services.remote-locations",[]).factory("RemoteLocationsService",n),n.$inject=["$http","toastr","$uibModal","LocationsRestService","$translate"]}}; //# sourceMappingURL=26325.19b341d5712023e8c396.bundle.js.map