diff --git a/.DS_Store b/.DS_Store index 9bd0c3cad..6fdf9f278 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/Documentation/devhandbook.md b/Documentation/devhandbook.md index 325c73d8c..aef79d8e5 100644 --- a/Documentation/devhandbook.md +++ b/Documentation/devhandbook.md @@ -35,7 +35,7 @@ Build dokcer image by running `docker build -t /alluxio-operato * Example: ```shell - docker buildx build --platform linux/amd64 -t kshou433/alluxio-operator:withAPIServer_v5.1 -f dev/build/Dockerfile . + docker buildx build --platform linux/amd64 -t kshou433/alluxio-operator:withAPIServer_v6.0 -f dev/build/Dockerfile . ``` ### Step 3 @@ -43,7 +43,7 @@ Push image to docker hub : `docker push /alluxio-operator: * Example: ```shell - docker push kshou433/alluxio-operator:withAPIServer_v5.1 + docker push kshou433/alluxio-operator:withAPIServer_v6.0 ``` ### Step 4 @@ -67,4 +67,8 @@ Update image url and tage in ```operator-config.yaml``` ### Access API Server Port `kubectl port-forward -n alluxio-operator 5220:5220` -Then use `curl` to do REST API Request. \ No newline at end of file +Then use `curl` to do REST API Request. + + +# User Interface +### Copy files under `build` folder in React to `gui` folder under `api_server' \ No newline at end of file diff --git a/cmd/api_server/.DS_Store b/cmd/api_server/.DS_Store new file mode 100644 index 000000000..7c0ead07f Binary files /dev/null and b/cmd/api_server/.DS_Store differ diff --git a/cmd/api_server/api_server/.DS_Store b/cmd/api_server/api_server/.DS_Store index de22d07b9..bd34b40c6 100644 Binary files a/cmd/api_server/api_server/.DS_Store and b/cmd/api_server/api_server/.DS_Store differ diff --git a/cmd/api_server/api_server/endpoints/alluxio_cluster.go b/cmd/api_server/api_server/endpoints/alluxio_cluster.go index 1b7c60888..66a2a2aef 100644 --- a/cmd/api_server/api_server/endpoints/alluxio_cluster.go +++ b/cmd/api_server/api_server/endpoints/alluxio_cluster.go @@ -60,7 +60,6 @@ func (alluxioClusterEndpoint *AlluxioClusterEndpoint) show(request *restful.Requ }) } } - logger.Infof("Get Alluxio Clusters Successfully") } func (alluxioClusterEndpoint *AlluxioClusterEndpoint) create(request *restful.Request, response *restful.Response) { @@ -132,7 +131,7 @@ func (alluxioClusterEndpoint *AlluxioClusterEndpoint) delete(request *restful.Re Details: fmt.Sprintf("Could not Delete dataset: %s", err), }) } - logger.Infof("DELETE Dataset: %s Successfully", alluxioClusterObj.ObjectMeta.Name) + logger.Infof("DELETE Alluxio Cluster: %s Successfully", alluxioClusterObj.ObjectMeta.Name) } func (alluxioClusterEndpoint *AlluxioClusterEndpoint) update(request *restful.Request, response *restful.Response) { diff --git a/cmd/api_server/api_server/gui/asset-manifest.json b/cmd/api_server/api_server/gui/asset-manifest.json new file mode 100644 index 000000000..113ae5ae7 --- /dev/null +++ b/cmd/api_server/api_server/gui/asset-manifest.json @@ -0,0 +1,13 @@ +{ + "files": { + "main.css": "/static/css/main.15468a32.css", + "main.js": "/static/js/main.0e4f4206.js", + "index.html": "/index.html", + "main.15468a32.css.map": "/static/css/main.15468a32.css.map", + "main.0e4f4206.js.map": "/static/js/main.0e4f4206.js.map" + }, + "entrypoints": [ + "static/css/main.15468a32.css", + "static/js/main.0e4f4206.js" + ] +} \ No newline at end of file diff --git a/cmd/api_server/api_server/gui/favicon.ico b/cmd/api_server/api_server/gui/favicon.ico new file mode 100644 index 000000000..a11777cc4 Binary files /dev/null and b/cmd/api_server/api_server/gui/favicon.ico differ diff --git a/cmd/api_server/api_server/gui/index.html b/cmd/api_server/api_server/gui/index.html new file mode 100644 index 000000000..532ebae59 --- /dev/null +++ b/cmd/api_server/api_server/gui/index.html @@ -0,0 +1 @@ +React App
\ No newline at end of file diff --git a/cmd/api_server/api_server/gui/logo192.png b/cmd/api_server/api_server/gui/logo192.png new file mode 100644 index 000000000..fc44b0a37 Binary files /dev/null and b/cmd/api_server/api_server/gui/logo192.png differ diff --git a/cmd/api_server/api_server/gui/logo512.png b/cmd/api_server/api_server/gui/logo512.png new file mode 100644 index 000000000..a4e47a654 Binary files /dev/null and b/cmd/api_server/api_server/gui/logo512.png differ diff --git a/cmd/api_server/api_server/gui/manifest.json b/cmd/api_server/api_server/gui/manifest.json new file mode 100644 index 000000000..080d6c77a --- /dev/null +++ b/cmd/api_server/api_server/gui/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/cmd/api_server/api_server/gui/robots.txt b/cmd/api_server/api_server/gui/robots.txt new file mode 100644 index 000000000..e9e57dc4d --- /dev/null +++ b/cmd/api_server/api_server/gui/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/cmd/api_server/api_server/gui/static/css/main.15468a32.css b/cmd/api_server/api_server/gui/static/css/main.15468a32.css new file mode 100644 index 000000000..c49b00de2 --- /dev/null +++ b/cmd/api_server/api_server/gui/static/css/main.15468a32.css @@ -0,0 +1,2 @@ +body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.split-screen{display:flex;height:100vh;width:100%}.component{display:flex;flex:1 1} +/*# sourceMappingURL=main.15468a32.css.map*/ \ No newline at end of file diff --git a/cmd/api_server/api_server/gui/static/css/main.15468a32.css.map b/cmd/api_server/api_server/gui/static/css/main.15468a32.css.map new file mode 100644 index 000000000..4117e0374 --- /dev/null +++ b/cmd/api_server/api_server/gui/static/css/main.15468a32.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/main.15468a32.css","mappings":"AAAA,KAKE,kCAAmC,CACnC,iCAAkC,CAJlC,mIAEY,CAHZ,QAMF,CAEA,KACE,uEAEF,CCZA,cACI,YAAa,CAEb,YAAa,CADb,UAEJ,CAEA,WAEI,YAAa,CADb,QAIJ","sources":["index.css","App.css"],"sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n",".split-screen {\n display: flex;\n width: 100%;\n height: 100vh; /* Full height of the viewport */\n}\n\n.component {\n flex: 1; /* Each component takes up half of the container */\n display: flex;\n /*align-items: center; !* Center content vertically *!*/\n /*justify-content: center; !* Center content horizontally *!*/\n}\n\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/cmd/api_server/api_server/gui/static/js/main.0e4f4206.js b/cmd/api_server/api_server/gui/static/js/main.0e4f4206.js new file mode 100644 index 000000000..5b5fbaa63 --- /dev/null +++ b/cmd/api_server/api_server/gui/static/js/main.0e4f4206.js @@ -0,0 +1,3 @@ +/*! For license information please see main.0e4f4206.js.LICENSE.txt */ +(()=>{var e={110:(e,t,n)=>{"use strict";var r=n(309),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!==typeof n){if(h){var o=p(n);o&&o!==h&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=l(t),m=l(n),g=0;g{"use strict";var n="function"===typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,l=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,h=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,k=n?Symbol.for("react.scope"):60119;function w(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case a:case s:case i:case p:return e;default:switch(e=e&&e.$$typeof){case c:case f:case g:case m:case l:return e;default:return t}}case o:return t}}}function x(e){return w(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=l,t.Element=r,t.ForwardRef=f,t.Fragment=a,t.Lazy=g,t.Memo=m,t.Portal=o,t.Profiler=s,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return x(e)||w(e)===u},t.isConcurrentMode=x,t.isContextConsumer=function(e){return w(e)===c},t.isContextProvider=function(e){return w(e)===l},t.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return w(e)===f},t.isFragment=function(e){return w(e)===a},t.isLazy=function(e){return w(e)===g},t.isMemo=function(e){return w(e)===m},t.isPortal=function(e){return w(e)===o},t.isProfiler=function(e){return w(e)===s},t.isStrictMode=function(e){return w(e)===i},t.isSuspense=function(e){return w(e)===p},t.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===a||e===d||e===s||e===i||e===p||e===h||"object"===typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===m||e.$$typeof===l||e.$$typeof===c||e.$$typeof===f||e.$$typeof===v||e.$$typeof===y||e.$$typeof===k||e.$$typeof===b)},t.typeOf=w},309:(e,t,n)=>{"use strict";e.exports=n(746)},463:(e,t,n)=>{"use strict";var r=n(791),o=n(296);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n