fix(console): v1.3.91 — deps сохраняются в аннотации и восстанавливаются при edit
- handleCreateFunction: deps → аннотация fission-console/deps - handleUpdateFunctionCode: deps → аннотация fission-console/deps (или удаление если пусто) - GET /functions/:name: возвращает deps из аннотации - openEdit: заполняет e-deps.value = fn.deps (вместо пустого поля)
This commit is contained in:
@@ -58,7 +58,7 @@ spec:
|
|||||||
serviceAccountName: fission-console
|
serviceAccountName: fission-console
|
||||||
containers:
|
containers:
|
||||||
- name: console
|
- name: console
|
||||||
image: naeel/fission-console:v1.3.90
|
image: naeel/fission-console:v1.3.91
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8090
|
- containerPort: 8090
|
||||||
|
|||||||
@@ -214,6 +214,9 @@ func (s *Server) handleCreateFunction(w http.ResponseWriter, r *http.Request) {
|
|||||||
now := time.Now().UTC()
|
now := time.Now().UTC()
|
||||||
fnAnnotations[functionCreatedAtAnnotation] = now.Format(time.RFC3339)
|
fnAnnotations[functionCreatedAtAnnotation] = now.Format(time.RFC3339)
|
||||||
fnAnnotations[functionUpdatedAtAnnotation] = now.Format(time.RFC3339)
|
fnAnnotations[functionUpdatedAtAnnotation] = now.Format(time.RFC3339)
|
||||||
|
if req.Deps != "" {
|
||||||
|
fnAnnotations["fission-console/deps"] = req.Deps
|
||||||
|
}
|
||||||
if req.TTL != "" {
|
if req.TTL != "" {
|
||||||
expiresAt, ttlErr := parseTTL(req.TTL)
|
expiresAt, ttlErr := parseTTL(req.TTL)
|
||||||
if ttlErr != nil {
|
if ttlErr != nil {
|
||||||
@@ -402,6 +405,11 @@ func (s *Server) handleUpdateFunctionCode(w http.ResponseWriter, r *http.Request
|
|||||||
}
|
}
|
||||||
fnAnnotations[functionCreatedAtAnnotation] = createdAt.UTC().Format(time.RFC3339)
|
fnAnnotations[functionCreatedAtAnnotation] = createdAt.UTC().Format(time.RFC3339)
|
||||||
fnAnnotations[functionUpdatedAtAnnotation] = now.Format(time.RFC3339)
|
fnAnnotations[functionUpdatedAtAnnotation] = now.Format(time.RFC3339)
|
||||||
|
if req.Deps != "" {
|
||||||
|
fnAnnotations["fission-console/deps"] = req.Deps
|
||||||
|
} else {
|
||||||
|
delete(fnAnnotations, "fission-console/deps")
|
||||||
|
}
|
||||||
fn.SetAnnotations(fnAnnotations)
|
fn.SetAnnotations(fnAnnotations)
|
||||||
if err := unstructured.SetNestedField(fn.Object, map[string]any{
|
if err := unstructured.SetNestedField(fn.Object, map[string]any{
|
||||||
"name": newPkgName,
|
"name": newPkgName,
|
||||||
|
|||||||
@@ -83,6 +83,7 @@ func (s *Server) handleGetFunction(w http.ResponseWriter, r *http.Request, name
|
|||||||
// Читаем source-type аннотацию (code / archive)
|
// Читаем source-type аннотацию (code / archive)
|
||||||
sourceType := "code"
|
sourceType := "code"
|
||||||
archiveFilename := ""
|
archiveFilename := ""
|
||||||
|
deps := ""
|
||||||
if ann := fn.GetAnnotations(); ann != nil {
|
if ann := fn.GetAnnotations(); ann != nil {
|
||||||
if v := ann[fissionSourceTypeAnnotation]; v != "" {
|
if v := ann[fissionSourceTypeAnnotation]; v != "" {
|
||||||
sourceType = v
|
sourceType = v
|
||||||
@@ -90,6 +91,9 @@ func (s *Server) handleGetFunction(w http.ResponseWriter, r *http.Request, name
|
|||||||
if v := ann["fission-console/archive-filename"]; v != "" {
|
if v := ann["fission-console/archive-filename"]; v != "" {
|
||||||
archiveFilename = v
|
archiveFilename = v
|
||||||
}
|
}
|
||||||
|
if v := ann["fission-console/deps"]; v != "" {
|
||||||
|
deps = v
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
writeAnyJSON(w, http.StatusOK, map[string]any{
|
writeAnyJSON(w, http.StatusOK, map[string]any{
|
||||||
@@ -102,6 +106,7 @@ func (s *Server) handleGetFunction(w http.ResponseWriter, r *http.Request, name
|
|||||||
"created_at": functionTimestampResponse(fn)["created_at"],
|
"created_at": functionTimestampResponse(fn)["created_at"],
|
||||||
"updated_at": functionTimestampResponse(fn)["updated_at"],
|
"updated_at": functionTimestampResponse(fn)["updated_at"],
|
||||||
"code": code,
|
"code": code,
|
||||||
|
"deps": deps,
|
||||||
"source_type": sourceType,
|
"source_type": sourceType,
|
||||||
"archive_filename": archiveFilename,
|
"archive_filename": archiveFilename,
|
||||||
"route": route,
|
"route": route,
|
||||||
|
|||||||
@@ -103,7 +103,7 @@
|
|||||||
<div class="nubes">NUBES</div>
|
<div class="nubes">NUBES</div>
|
||||||
<div class="product">FISSION CONSOLE</div>
|
<div class="product">FISSION CONSOLE</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="font-size:0.65rem; color:var(--text-secondary); margin-left:10px; align-self:center; opacity:0.7;">v1.3.90</div>
|
<div style="font-size:0.65rem; color:var(--text-secondary); margin-left:10px; align-self:center; opacity:0.7;">v1.3.91</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row" style="margin:0;">
|
<div class="row" style="margin:0;">
|
||||||
<button class="btn ghost" onclick="reloadAll()">Refresh</button>
|
<button class="btn ghost" onclick="reloadAll()">Refresh</button>
|
||||||
@@ -626,7 +626,7 @@ psycopg2-binary" style="width:100%; box-sizing:border-box; font-family:monospace
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="actions" style="justify-content:space-between; align-items:center;">
|
<div class="actions" style="justify-content:space-between; align-items:center;">
|
||||||
<span style="font-size:0.75rem; color:var(--text-secondary);">v1.3.90</span>
|
<span style="font-size:0.75rem; color:var(--text-secondary);">v1.3.91</span>
|
||||||
<button class="btn ghost" onclick="closeHelp()">Закрыть</button>
|
<button class="btn ghost" onclick="closeHelp()">Закрыть</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -194,7 +194,7 @@ async function openEdit(name) {
|
|||||||
var eDepsLabel = document.getElementById('e-deps-label');
|
var eDepsLabel = document.getElementById('e-deps-label');
|
||||||
var eDepsArea = document.getElementById('e-deps');
|
var eDepsArea = document.getElementById('e-deps');
|
||||||
if (eDepsLabel) eDepsLabel.textContent = depsLabels[lang] || 'Зависимости';
|
if (eDepsLabel) eDepsLabel.textContent = depsLabels[lang] || 'Зависимости';
|
||||||
if (eDepsArea) { eDepsArea.placeholder = depsPlaceholders[lang] || ''; eDepsArea.value = ''; }
|
if (eDepsArea) { eDepsArea.placeholder = depsPlaceholders[lang] || ''; eDepsArea.value = fn.deps || ''; }
|
||||||
var aiRes = document.getElementById('e-ai-result');
|
var aiRes = document.getElementById('e-ai-result');
|
||||||
if (aiRes) { aiRes.style.display = 'none'; aiRes.textContent = ''; }
|
if (aiRes) { aiRes.style.display = 'none'; aiRes.textContent = ''; }
|
||||||
var warnEl = document.getElementById('e-tf-warn');
|
var warnEl = document.getElementById('e-tf-warn');
|
||||||
|
|||||||
Reference in New Issue
Block a user