@@ -37,8 +37,6 @@ import {
37
37
XAxis ,
38
38
YAxis ,
39
39
} from "recharts" ;
40
- import api from "../../../common/api" ;
41
- import { ErrorResponseHandler } from "../../../common/types" ;
42
40
import { hasPermission } from "../../../common/SecureComponent" ;
43
41
import {
44
42
CONSOLE_UI_RESOURCE ,
@@ -49,12 +47,16 @@ import { useAppDispatch } from "../../../store";
49
47
import LabelWithIcon from "../Buckets/BucketDetails/SummaryItems/LabelWithIcon" ;
50
48
import PageHeaderWrapper from "../Common/PageHeaderWrapper/PageHeaderWrapper" ;
51
49
import HelpMenu from "../HelpMenu" ;
50
+ import { api } from "api" ;
51
+ import { KmsStatusResponse } from "api/consoleApi" ;
52
+ import { errorToHandler } from "api/errors" ;
52
53
53
54
const Status = ( ) => {
54
55
const dispatch = useAppDispatch ( ) ;
55
56
const [ curTab , setCurTab ] = useState < string > ( "simple-tab-0" ) ;
56
57
57
- const [ status , setStatus ] = useState < any | null > ( null ) ;
58
+ const [ isKMSSecretKey , setIsKMSSecretKey ] = useState < boolean > ( true ) ;
59
+ const [ status , setStatus ] = useState < KmsStatusResponse | null > ( null ) ;
58
60
const [ loadingStatus , setLoadingStatus ] = useState < boolean > ( true ) ;
59
61
const [ metrics , setMetrics ] = useState < any | null > ( null ) ;
60
62
const [ loadingMetrics , setLoadingMetrics ] = useState < boolean > ( true ) ;
@@ -66,105 +68,84 @@ const Status = () => {
66
68
const displayStatus = hasPermission ( CONSOLE_UI_RESOURCE , [
67
69
IAM_SCOPES . KMS_STATUS ,
68
70
] ) ;
69
- const displayMetrics = hasPermission ( CONSOLE_UI_RESOURCE , [
70
- IAM_SCOPES . KMS_METRICS ,
71
- ] ) ;
72
- const displayAPIs = hasPermission ( CONSOLE_UI_RESOURCE , [ IAM_SCOPES . KMS_APIS ] ) ;
73
- const displayVersion = hasPermission ( CONSOLE_UI_RESOURCE , [
74
- IAM_SCOPES . KMS_Version ,
75
- ] ) ;
71
+ const displayMetrics =
72
+ hasPermission ( CONSOLE_UI_RESOURCE , [ IAM_SCOPES . KMS_METRICS ] ) &&
73
+ ! isKMSSecretKey ;
74
+ const displayAPIs =
75
+ hasPermission ( CONSOLE_UI_RESOURCE , [ IAM_SCOPES . KMS_APIS ] ) &&
76
+ ! isKMSSecretKey ;
77
+ const displayVersion =
78
+ hasPermission ( CONSOLE_UI_RESOURCE , [ IAM_SCOPES . KMS_Version ] ) &&
79
+ ! isKMSSecretKey ;
76
80
77
81
useEffect ( ( ) => {
78
- setLoadingStatus ( true ) ;
79
- } , [ ] ) ;
82
+ const loadStatus = ( ) => {
83
+ api . kms
84
+ . kmsStatus ( )
85
+ . then ( ( result ) => {
86
+ if ( result . data ) {
87
+ setStatus ( result . data ) ;
88
+ setIsKMSSecretKey ( result . data . name === "SecretKey" ) ;
89
+ }
90
+ } )
91
+ . catch ( ( err ) => {
92
+ dispatch ( setErrorSnackMessage ( errorToHandler ( err . error ) ) ) ;
93
+ } )
94
+ . finally ( ( ) => setLoadingStatus ( false ) ) ;
95
+ } ;
80
96
81
- useEffect ( ( ) => {
82
97
const loadMetrics = ( ) => {
83
- if ( displayMetrics ) {
84
- api
85
- . invoke ( "GET" , `/api/v1/kms/metrics` )
86
- . then ( ( result : any ) => {
87
- if ( result ) {
88
- setMetrics ( result ) ;
89
- }
90
- setLoadingMetrics ( false ) ;
91
- } )
92
- . catch ( ( err : ErrorResponseHandler ) => {
93
- dispatch ( setErrorSnackMessage ( err ) ) ;
94
- setLoadingMetrics ( false ) ;
95
- } ) ;
96
- } else {
97
- setLoadingMetrics ( false ) ;
98
- }
98
+ api . kms
99
+ . kmsMetrics ( )
100
+ . then ( ( result ) => {
101
+ if ( result . data ) {
102
+ setMetrics ( result . data ) ;
103
+ }
104
+ } )
105
+ . catch ( ( err ) => {
106
+ dispatch ( setErrorSnackMessage ( errorToHandler ( err . error ) ) ) ;
107
+ } )
108
+ . finally ( ( ) => setLoadingMetrics ( false ) ) ;
99
109
} ;
100
110
101
111
const loadAPIs = ( ) => {
102
- if ( displayAPIs ) {
103
- api
104
- . invoke ( "GET" , `/api/v1/kms/apis` )
105
- . then ( ( result : any ) => {
106
- if ( result ) {
107
- setAPIs ( result ) ;
108
- }
109
- setLoadingAPIs ( false ) ;
110
- } )
111
- . catch ( ( err : ErrorResponseHandler ) => {
112
- dispatch ( setErrorSnackMessage ( err ) ) ;
113
- setLoadingAPIs ( false ) ;
114
- } ) ;
115
- } else {
116
- setLoadingAPIs ( false ) ;
117
- }
112
+ api . kms
113
+ . kmsapIs ( )
114
+ . then ( ( result : any ) => {
115
+ if ( result . data ) {
116
+ setAPIs ( result . data ) ;
117
+ }
118
+ } )
119
+ . catch ( ( err ) => {
120
+ dispatch ( setErrorSnackMessage ( errorToHandler ( err . error ) ) ) ;
121
+ } )
122
+ . finally ( ( ) => setLoadingAPIs ( false ) ) ;
118
123
} ;
119
124
120
125
const loadVersion = ( ) => {
121
- if ( displayVersion ) {
122
- api
123
- . invoke ( "GET" , `/api/v1/kms/version` )
124
- . then ( ( result : any ) => {
125
- if ( result ) {
126
- setVersion ( result ) ;
127
- }
128
- setLoadingVersion ( false ) ;
129
- } )
130
- . catch ( ( err : ErrorResponseHandler ) => {
131
- dispatch ( setErrorSnackMessage ( err ) ) ;
132
- setLoadingVersion ( false ) ;
133
- } ) ;
134
- } else {
135
- setLoadingVersion ( false ) ;
136
- }
137
- } ;
138
-
139
- const loadStatus = ( ) => {
140
- if ( displayStatus ) {
141
- api
142
- . invoke ( "GET" , `/api/v1/kms/status` )
143
- . then ( ( result : any ) => {
144
- if ( result ) {
145
- setStatus ( result ) ;
146
- }
147
- setLoadingStatus ( false ) ;
148
- } )
149
- . catch ( ( err : ErrorResponseHandler ) => {
150
- dispatch ( setErrorSnackMessage ( err ) ) ;
151
- setLoadingStatus ( false ) ;
152
- } ) ;
153
- } else {
154
- setLoadingStatus ( false ) ;
155
- }
126
+ api . kms
127
+ . kmsVersion ( )
128
+ . then ( ( result : any ) => {
129
+ if ( result . data ) {
130
+ setVersion ( result . data ) ;
131
+ }
132
+ } )
133
+ . catch ( ( err ) => {
134
+ dispatch ( setErrorSnackMessage ( errorToHandler ( err . error ) ) ) ;
135
+ } )
136
+ . finally ( ( ) => setLoadingVersion ( false ) ) ;
156
137
} ;
157
138
158
- if ( loadingStatus ) {
139
+ if ( displayStatus && loadingStatus ) {
159
140
loadStatus ( ) ;
160
141
}
161
- if ( loadingMetrics ) {
142
+ if ( displayMetrics && loadingMetrics ) {
162
143
loadMetrics ( ) ;
163
144
}
164
- if ( loadingAPIs ) {
145
+ if ( displayAPIs && loadingAPIs ) {
165
146
loadAPIs ( ) ;
166
147
}
167
- if ( loadingVersion ) {
148
+ if ( displayVersion && loadingVersion ) {
168
149
loadVersion ( ) ;
169
150
}
170
151
} , [
@@ -395,7 +376,11 @@ const Status = () => {
395
376
) ,
396
377
} ,
397
378
{
398
- tabConfig : { label : "APIs" , id : "simple-tab-1" } ,
379
+ tabConfig : {
380
+ label : "APIs" ,
381
+ id : "simple-tab-1" ,
382
+ disabled : ! displayAPIs ,
383
+ } ,
399
384
content : (
400
385
< Box
401
386
withBorders
@@ -410,7 +395,11 @@ const Status = () => {
410
395
) ,
411
396
} ,
412
397
{
413
- tabConfig : { label : "Metrics" , id : "simple-tab-2" } ,
398
+ tabConfig : {
399
+ label : "Metrics" ,
400
+ id : "simple-tab-2" ,
401
+ disabled : ! displayMetrics ,
402
+ } ,
414
403
content : (
415
404
< Box
416
405
withBorders
0 commit comments