@@ -34,7 +34,7 @@ qx.Class.define("osparc.workbench.DiskUsageController", {
3434 this . __socket . on ( "serviceDiskUsage" , data => {
3535 if ( data [ "node_id" ] && this . __callbacks [ data [ "node_id" ] ] ) {
3636 // notify
37- this . setDiskUsageNotificationToUI ( data ) ;
37+ this . __evaluateDisplayMessage ( data ) ;
3838 this . __callbacks [ data [ "node_id" ] ] . forEach ( cb => {
3939 cb ( data ) ;
4040 } )
@@ -65,7 +65,7 @@ qx.Class.define("osparc.workbench.DiskUsageController", {
6565 }
6666 } ,
6767
68- getDiskUsage : function ( freeSpace ) {
68+ __getWarningLevel : function ( freeSpace ) {
6969 const lowDiskSpacePreferencesSettings = osparc . Preferences . getInstance ( ) ;
7070 this . __lowDiskThreshold = lowDiskSpacePreferencesSettings . getLowDiskSpaceThreshold ( ) ;
7171 const warningSize = osparc . utils . Utils . gBToBytes ( this . __lowDiskThreshold ) ; // 5 GB Default
@@ -81,13 +81,12 @@ qx.Class.define("osparc.workbench.DiskUsageController", {
8181 return warningLevel
8282 } ,
8383
84- setDiskUsageNotificationToUI : function ( data ) {
84+ __evaluateDisplayMessage : function ( data ) {
8585 const id = data [ "node_id" ] ;
8686 if ( ! this . __callbacks [ id ] ) {
8787 return ;
8888 }
8989
90- const diskUsage = data . usage [ "HOST" ]
9190 function isMatchingNodeId ( { nodeId} ) {
9291 return nodeId === id ;
9392 }
@@ -96,31 +95,41 @@ qx.Class.define("osparc.workbench.DiskUsageController", {
9695 }
9796
9897 let prevDiskUsageState = this . __prevDiskUsageStateList . find ( isMatchingNodeId ) ;
99-
100- const warningLevel = this . getDiskUsage ( diskUsage . free ) ;
10198 if ( prevDiskUsageState === undefined ) {
99+ // Initialize it
102100 this . __prevDiskUsageStateList . push ( {
103101 nodeId : id ,
104102 state : "NORMAL"
105103 } )
106104 }
107- const freeSpace = osparc . utils . Utils . bytesToSize ( diskUsage . free ) ;
108105
109106 const store = osparc . store . Store . getInstance ( ) ;
110107 const currentStudy = store . getCurrentStudy ( ) ;
111108 if ( ! currentStudy ) {
112109 return ;
113110 }
114- const node = currentStudy . getWorkbench ( ) . getNode ( id ) ;
115111
112+ const node = currentStudy . getWorkbench ( ) . getNode ( id ) ;
116113 const nodeName = node ? node . getLabel ( ) : null ;
117114 if ( nodeName === null ) {
118115 return ;
119116 }
120117
121- let message ;
118+ const diskHostUsage = data . usage [ "HOST" ]
119+ let freeSpace = osparc . utils . Utils . bytesToSize ( diskHostUsage . free ) ;
120+ let warningLevel = this . __getWarningLevel ( diskHostUsage . free ) ;
121+
122+ if ( "STATE_VOLUMES" in data . usage ) {
123+ const diskVolsUsage = data . usage [ "STATE_VOLUMES" ] ;
124+ if ( diskVolsUsage [ "used_percent" ] > diskHostUsage [ "used_percent" ] ) {
125+ // "STATE_VOLUMES" is more critical so it takes over
126+ freeSpace = osparc . utils . Utils . bytesToSize ( diskVolsUsage . free ) ;
127+ warningLevel = this . __getWarningLevel ( diskVolsUsage . free ) ;
128+ }
129+ }
122130
123131 const objIndex = this . __prevDiskUsageStateList . findIndex ( ( obj => obj . nodeId === id ) ) ;
132+ let message ;
124133 switch ( warningLevel ) {
125134 case "CRITICAL" :
126135 if ( shouldDisplayMessage ( prevDiskUsageState , warningLevel ) ) {
0 commit comments