From 2760f486da3941953ef2bfa81bea3115d5a1caa7 Mon Sep 17 00:00:00 2001 From: Peeeekay <15133250+Peeeekay@users.noreply.github.com> Date: Thu, 31 Aug 2023 09:48:03 -0400 Subject: [PATCH] fix: add create enclave name and production mode for enclaves (#1211) --- .../api_container_service.pb.go | 2 +- .../api_container_service_grpc.pb.go | 2 +- .../engine_service.pb.go | 2 +- .../engine_service_grpc.pb.go | 2 +- .../api_container_service_grpc_web_pb.js | 2 +- .../api_container_service_pb.js | 8 ++++- .../engine_service_grpc_web_pb.js | 2 +- .../engine_service_pb.js | 8 ++++- engine/frontend/src/api/api.js | 8 +++-- engine/frontend/src/api/enclave.js | 5 ++- .../frontend/src/component/CreateEnclave.js | 10 ++++-- .../src/component/CreateEnclaveModal.js | 32 ++++++++++++----- .../frontend/src/component/PackageCatalog.js | 2 +- .../src/component/PackageCatalogForm.js | 36 +++++++++++++++---- .../src/component/PackageCatalogOption.js | 8 ++--- .../src/component/PackageCatalogRouter.js | 4 +-- engine/server/webapp/asset-manifest.json | 12 +++---- engine/server/webapp/index.html | 2 +- .../{main.36b0e1c8.css => main.57000d71.css} | 4 +-- ...36b0e1c8.css.map => main.57000d71.css.map} | 2 +- .../server/webapp/static/js/main.ae44d0f7.js | 3 -- .../webapp/static/js/main.ae44d0f7.js.map | 1 - .../server/webapp/static/js/main.bfca3041.js | 3 ++ ...CENSE.txt => main.bfca3041.js.LICENSE.txt} | 0 .../webapp/static/js/main.bfca3041.js.map | 1 + 25 files changed, 110 insertions(+), 51 deletions(-) rename engine/server/webapp/static/css/{main.36b0e1c8.css => main.57000d71.css} (54%) rename engine/server/webapp/static/css/{main.36b0e1c8.css.map => main.57000d71.css.map} (56%) delete mode 100644 engine/server/webapp/static/js/main.ae44d0f7.js delete mode 100644 engine/server/webapp/static/js/main.ae44d0f7.js.map create mode 100644 engine/server/webapp/static/js/main.bfca3041.js rename engine/server/webapp/static/js/{main.ae44d0f7.js.LICENSE.txt => main.bfca3041.js.LICENSE.txt} (100%) create mode 100644 engine/server/webapp/static/js/main.bfca3041.js.map diff --git a/api/golang/core/kurtosis_core_rpc_api_bindings/api_container_service.pb.go b/api/golang/core/kurtosis_core_rpc_api_bindings/api_container_service.pb.go index e5137e4aa1..04e0d34cba 100644 --- a/api/golang/core/kurtosis_core_rpc_api_bindings/api_container_service.pb.go +++ b/api/golang/core/kurtosis_core_rpc_api_bindings/api_container_service.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.2 +// protoc v4.23.4 // source: api_container_service.proto package kurtosis_core_rpc_api_bindings diff --git a/api/golang/core/kurtosis_core_rpc_api_bindings/api_container_service_grpc.pb.go b/api/golang/core/kurtosis_core_rpc_api_bindings/api_container_service_grpc.pb.go index cecfc39e3d..cfe2d04f90 100644 --- a/api/golang/core/kurtosis_core_rpc_api_bindings/api_container_service_grpc.pb.go +++ b/api/golang/core/kurtosis_core_rpc_api_bindings/api_container_service_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v4.23.2 +// - protoc v4.23.4 // source: api_container_service.proto package kurtosis_core_rpc_api_bindings diff --git a/api/golang/engine/kurtosis_engine_rpc_api_bindings/engine_service.pb.go b/api/golang/engine/kurtosis_engine_rpc_api_bindings/engine_service.pb.go index eea6b96a96..2ab363c9b7 100644 --- a/api/golang/engine/kurtosis_engine_rpc_api_bindings/engine_service.pb.go +++ b/api/golang/engine/kurtosis_engine_rpc_api_bindings/engine_service.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.2 +// protoc v4.23.4 // source: engine_service.proto package kurtosis_engine_rpc_api_bindings diff --git a/api/golang/engine/kurtosis_engine_rpc_api_bindings/engine_service_grpc.pb.go b/api/golang/engine/kurtosis_engine_rpc_api_bindings/engine_service_grpc.pb.go index 653f1c2702..62d8e61495 100644 --- a/api/golang/engine/kurtosis_engine_rpc_api_bindings/engine_service_grpc.pb.go +++ b/api/golang/engine/kurtosis_engine_rpc_api_bindings/engine_service_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v4.23.2 +// - protoc v4.23.4 // source: engine_service.proto package kurtosis_engine_rpc_api_bindings diff --git a/api/typescript/src/core/kurtosis_core_rpc_api_bindings/api_container_service_grpc_web_pb.js b/api/typescript/src/core/kurtosis_core_rpc_api_bindings/api_container_service_grpc_web_pb.js index 8766d95983..0cb88608a9 100644 --- a/api/typescript/src/core/kurtosis_core_rpc_api_bindings/api_container_service_grpc_web_pb.js +++ b/api/typescript/src/core/kurtosis_core_rpc_api_bindings/api_container_service_grpc_web_pb.js @@ -7,7 +7,7 @@ // Code generated by protoc-gen-grpc-web. DO NOT EDIT. // versions: // protoc-gen-grpc-web v1.4.2 -// protoc v3.15.6 +// protoc v3.19.1 // source: api_container_service.proto diff --git a/api/typescript/src/core/kurtosis_core_rpc_api_bindings/api_container_service_pb.js b/api/typescript/src/core/kurtosis_core_rpc_api_bindings/api_container_service_pb.js index 6f303205f9..8f7d11d078 100644 --- a/api/typescript/src/core/kurtosis_core_rpc_api_bindings/api_container_service_pb.js +++ b/api/typescript/src/core/kurtosis_core_rpc_api_bindings/api_container_service_pb.js @@ -13,7 +13,13 @@ var jspb = require('google-protobuf'); var goog = jspb; -var global = Function('return this')(); +var global = (function() { + if (this) { return this; } + if (typeof window !== 'undefined') { return window; } + if (typeof global !== 'undefined') { return global; } + if (typeof self !== 'undefined') { return self; } + return Function('return this')(); +}.call(null)); var google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js'); goog.object.extend(proto, google_protobuf_empty_pb); diff --git a/api/typescript/src/engine/kurtosis_engine_rpc_api_bindings/engine_service_grpc_web_pb.js b/api/typescript/src/engine/kurtosis_engine_rpc_api_bindings/engine_service_grpc_web_pb.js index e2db64053b..6a18e31707 100644 --- a/api/typescript/src/engine/kurtosis_engine_rpc_api_bindings/engine_service_grpc_web_pb.js +++ b/api/typescript/src/engine/kurtosis_engine_rpc_api_bindings/engine_service_grpc_web_pb.js @@ -7,7 +7,7 @@ // Code generated by protoc-gen-grpc-web. DO NOT EDIT. // versions: // protoc-gen-grpc-web v1.4.2 -// protoc v3.15.6 +// protoc v3.19.1 // source: engine_service.proto diff --git a/api/typescript/src/engine/kurtosis_engine_rpc_api_bindings/engine_service_pb.js b/api/typescript/src/engine/kurtosis_engine_rpc_api_bindings/engine_service_pb.js index e55ee18e13..0b755f7b33 100644 --- a/api/typescript/src/engine/kurtosis_engine_rpc_api_bindings/engine_service_pb.js +++ b/api/typescript/src/engine/kurtosis_engine_rpc_api_bindings/engine_service_pb.js @@ -13,7 +13,13 @@ var jspb = require('google-protobuf'); var goog = jspb; -var global = Function('return this')(); +var global = (function() { + if (this) { return this; } + if (typeof window !== 'undefined') { return window; } + if (typeof global !== 'undefined') { return global; } + if (typeof self !== 'undefined') { return self; } + return Function('return this')(); +}.call(null)); var google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js'); goog.object.extend(proto, google_protobuf_empty_pb); diff --git a/engine/frontend/src/api/api.js b/engine/frontend/src/api/api.js index 59e9d9affb..7b0c9fbcf3 100644 --- a/engine/frontend/src/api/api.js +++ b/engine/frontend/src/api/api.js @@ -7,7 +7,7 @@ import { InspectFilesArtifactContentsRequest, RunStarlarkPackageRequest } from "enclave-manager-sdk/build/kurtosis_enclave_manager_api_pb"; -import {CreateEnclaveArgs} from "enclave-manager-sdk/build/engine_service_pb"; +import {CreateEnclaveArgs, EnclaveMode} from "enclave-manager-sdk/build/engine_service_pb"; import {RunStarlarkPackageArgs} from "enclave-manager-sdk/build/api_container_service_pb"; export const createClient = (apiHost) => { @@ -68,16 +68,18 @@ export const inspectFilesArtifactContentsFromEnclaveManager = async (host, port, return enclaveManagerClient.inspectFilesArtifactContents(request, createHeaderOptionsWithToken(token)); } - -export const createEnclaveFromEnclaveManager = async (enclaveName, logLevel, versionTag, token, apiHost) => { +export const createEnclaveFromEnclaveManager = async (enclaveName, logLevel, versionTag, token, apiHost, productionMode) => { const enclaveManagerClient = createClient(apiHost); + const mode = productionMode ? EnclaveMode.PRODUCTION : EnclaveMode.TEST; const request = new CreateEnclaveArgs( { "enclaveName": enclaveName, "apiContainerVersionTag": versionTag, "apiContainerLogLevel": logLevel, + "mode": mode, } ); + console.log("Sending Create Enclave Request with Args", request) return enclaveManagerClient.createEnclave(request, createHeaderOptionsWithToken(token)); } diff --git a/engine/frontend/src/api/enclave.js b/engine/frontend/src/api/enclave.js index 3a8849cb39..8a87f791ee 100644 --- a/engine/frontend/src/api/enclave.js +++ b/engine/frontend/src/api/enclave.js @@ -19,11 +19,10 @@ export const getEnclavesFromKurtosis = async (token, apiHost) => { return [] } -export const createEnclave = async (token, apiHost) => { - const enclaveName = ""; // TODO We could make this input from the UI +export const createEnclave = async (token, apiHost, enclaveName, productionMode) => { const apiContainerVersionTag = ""; const apiContainerLogLevel = "info"; - const response = await createEnclaveFromEnclaveManager(enclaveName, apiContainerLogLevel, apiContainerVersionTag, token, apiHost) + const response = await createEnclaveFromEnclaveManager(enclaveName, apiContainerLogLevel, apiContainerVersionTag, token, apiHost, productionMode) const enclave = response.enclaveInfo; return { diff --git a/engine/frontend/src/component/CreateEnclave.js b/engine/frontend/src/component/CreateEnclave.js index dc616640d1..490b7f2cfb 100644 --- a/engine/frontend/src/component/CreateEnclave.js +++ b/engine/frontend/src/component/CreateEnclave.js @@ -7,9 +7,12 @@ import {useAppContext} from "../context/AppState"; const CreateEnclave = ({addEnclave}) => { const navigate = useNavigate() + const [enclaveName, setEnclaveName] = useState("") const [name, setName] = useState(''); const [args, setArgs] = useState('{}') const [enclave, setEnlave] = useState(null); + const [productionMode, setProductionMode] = useState(false) + const {appData} = useAppContext() const handleModalSubmit = (enclave) => { @@ -21,10 +24,13 @@ const CreateEnclave = ({addEnclave}) => {
}/> + apiHost={appData.apiHost} + productionMode={productionMode} + setProductionMode={setProductionMode} + />}/> }/>
diff --git a/engine/frontend/src/component/CreateEnclaveModal.js b/engine/frontend/src/component/CreateEnclaveModal.js index cd0165ee09..c38014d624 100644 --- a/engine/frontend/src/component/CreateEnclaveModal.js +++ b/engine/frontend/src/component/CreateEnclaveModal.js @@ -1,9 +1,9 @@ import React, {useState}from 'react'; import { useNavigate } from 'react-router'; import {createEnclave} from "../api/enclave"; -import {Button} from "@chakra-ui/react"; +import {Button, Checkbox} from "@chakra-ui/react"; -export const CreateEnclaveModal = ({handleSubmit, name, setName, args, setArgs, addEnclave, token, apiHost}) => { +export const CreateEnclaveModal = ({enclaveName, handleSubmit, name, setName, args, setArgs, addEnclave, token, apiHost, setEnclaveName, productionMode, setProductionMode}) => { const [jsonError, setJsonError] = useState("") const navigate = useNavigate(); const [runningPackage, setRunningPackage] = useState(false) @@ -11,7 +11,7 @@ export const CreateEnclaveModal = ({handleSubmit, name, setName, args, setArgs, const handleFormSubmit = (e) => { e.preventDefault(); const fetch = async () => { - const enclave = await createEnclave(token, apiHost); + const enclave = await createEnclave(token, apiHost, enclaveName, productionMode); addEnclave(enclave) handleSubmit(enclave); } @@ -30,16 +30,32 @@ export const CreateEnclaveModal = ({handleSubmit, name, setName, args, setArgs,
-