UNPKG

graphdb-workbench

Version:
2 lines 16.9 kB
export const __webpack_esm_id__=26325;export const __webpack_esm_ids__=[7661,13569,21466,26325,39198,40555,75138,83413,98248];export const __webpack_esm_modules__={7661(e,t,r){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.do((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.d(t,{DP:()=>a,Yn:()=>i,aV:()=>l,fe:()=>o,pw:()=>n,vu:()=>s});const n="updateCluster",o="deleteCluster",a="clickInView",s="nodeSelected",i="createCluster",l="modelUpdated"},26325(e,t,r){r(83413),r(98248),r(13569),r(75138),r(40555),r(39198);var n=r(98980),o=r(70962),a=r(21466),s=r(57154);function i(e,t,r,i,l,c,u,d,g,m,p,_,f,C,h,v,w,$){const b=(0,s.service)(s.AuthorizationService),S=(0,s.service)(s.AuthenticationService);let N;const L=[];e.loader=!0,e.isLeader=!1,e.currentNode=null,e.clusterModel={},e.NodeState=o.UY,e.leaderChanged=!1,e.currentLeader=null,e.showClusterConfigurationPanel=!1,e.clusterConfigurationPanelSize=void 0,e.onopen=()=>angular.noop(),e.onclose=()=>{$.hideClusterConfigurationPanel()},e.isAdmin=()=>S.isAuthenticated()&&b.isAdmin(),e.openClusterConfigurationPanel=()=>{e.showClusterConfigurationPanel=!0,$.showClusterConfigurationPanel()},e.setLoader=(t,r)=>{_.cancel(e.loaderTimeout),t?(e.loaderMessage=r,e.loaderTimeout=_(()=>{e.loader=t},50)):e.loader=!1},e.getLoaderMessage=()=>e.loaderMessage||h.instant("common.loading"),e.showUpdateClusterGroupDialog=()=>{e.setLoader(!0),k().then(()=>(e.setLoader(!1),c.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?E(e):y(e)}).catch(()=>{e.setLoader(!1),D(!0)}).finally(()=>{k()})},e.getClusterConfiguration=()=>f.getClusterConfig().then(t=>{if(e.clusterConfiguration=t.data,!e.currentNode)return e.getCurrentNodeStatus()}).catch(()=>{e.clusterConfiguration=null}),e.getClusterStatus=()=>f.getClusterStatus().then(t=>{const r=t.data.slice(),n=r.find(e=>e.nodeState===o.UY.LEADER);V(e.currentLeader,n)&&(e.currentLeader=n,e.leaderChanged=!0),e.currentNode=r.find(t=>e.currentNode&&t.address===e.currentNode.address);const a=M(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=()=>f.getNodeStatus().then(t=>{e.leaderChanged=!1,e.currentNode=t.data}).catch(t=>{e.currentNode=t.data,e.clusterModel.hasCluster=!1}).then(()=>k());const y=t=>(e.setLoader(!0,h.instant("cluster_management.cluster_page.creating_cluster_loader")),f.createCluster(t).then(()=>{i.success(h.instant("cluster_management.cluster_page.notifications.create_success"))}).catch(e=>{T(e.data,e.status)}).finally(()=>{e.setLoader(!1)})),E=t=>{const r=h.instant("cluster_management.cluster_page.updating_cluster_loader");e.setLoader(!0,r);const n={addNodes:t.addNodes,removeNodes:t.removeNodes};f.replaceNodesInCluster(n).then(()=>{const e=h.instant("cluster_management.cluster_page.notifications.update_success");P(e)}).catch(e=>{const t=h.instant("cluster_management.cluster_page.notifications.update_failed");T(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),D(!0)})},M=(e,t)=>{const r=[];return e&&Object.keys(e.syncStatus).forEach(n=>{const a=e.syncStatus[n];if(a!==o.gC.NO_CONNECTION&&(r.push({id:`${e.address}-${n}`,source:e.address,target:n,status:a}),a===o.gC.OUT_OF_SYNC)){const e=t.find(e=>e.address===n);let a;if(e.recoveryStatus.state===o.vQ.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.gC.RECEIVING_SNAPSHOT})}}}),r},A=t=>{e.selectedNode!==t?e.selectedNode=t:e.selectedNode=null,e.$apply()},D=t=>{N||(N=e.getClusterStatus().then(()=>{if(t||!e.clusterConfiguration)return e.getClusterConfiguration()}).then(()=>{if(!e.currentNode||e.leaderChanged)return e.getCurrentNodeStatus()}).finally(()=>{N=null,e.$broadcast(a.aV)}))},V=(e,t)=>!t||!e||e.address!==t.address,k=()=>v.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}),P=t=>{i.success(t),e.getClusterConfiguration()},T=(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>`,"")),i.error(o,r,{allowHtml:!0})},I=()=>{e.clusterConfigurationPanelSize=.25*window.innerWidth+"px"};e.$on("$destroy",function(){L.forEach(e=>e())}),L.push($.onShowClusterConfigurationPanel(t=>{I(),e.showClusterConfigurationPanel=t})),L.push(e.$on(a.pw,(e,t)=>{D(t.force)})),L.push(e.$on(a.fe,(t,r)=>{(t=>{const r=h.instant("cluster_management.delete_cluster_dialog.loader_message");e.setLoader(!0,r),f.deleteCluster(t).then(t=>{if(Object.values(t.data).every(e=>"Cluster was deleted on this node."===e)){const e=h.instant("cluster_management.delete_cluster_dialog.notifications.success_delete");i.success(e)}else{const e=h.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>`,"");i.warning(r,e,{allowHtml:!0})}e.getClusterConfiguration()}).catch(e=>{const t=h.instant("cluster_management.delete_cluster_dialog.notifications.fail_delete");T(e.data,e.status,t)}).finally(()=>{e.setLoader(!1),D(!0),w.$broadcast("reloadLocations")})})(r.force)})),L.push(e.$on(a.DP,(t,r)=>{!function(t){const r=document.getElementById("nodeTooltip");e.selectedNode&&r!==t&&!r.contains(t)&&A(null)}(r)})),L.push(e.$on(a.vu,(e,t)=>{A(t)})),L.push(e.$on(a.Yn,()=>{e.showUpdateClusterGroupDialog()})),I(),e.showClusterConfigurationPanel=$.getShowClusterConfigurationPanel(),(e.loader=!0,e.getCurrentNodeStatus().then(()=>e.getClusterConfiguration()).then(()=>e.getClusterStatus()).finally(()=>{e.setLoader(!1)})).finally(()=>{const t=m(function(){D()},1e3);e.$on("$destroy",function(){m.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",i),i.$inject=["$scope","$http","$q","toastr","$repositories","$uibModal","$sce","$jwtAuth","$window","$interval","ModalService","$timeout","ClusterRestService","$location","$translate","RemoteLocationsService","$rootScope","ClusterViewContextService"]},39198(e,t,r){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(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(807),angular.module("graphdb.framework.clustermanagement.services.remote-locations",[]).factory("RemoteLocationsService",n),n.$inject=["$http","toastr","$uibModal","LocationsRestService","$translate"]}}; //# sourceMappingURL=26325.3e006974360360d0807b.bundle.js.map