Skip to content

Commit 3569de4

Browse files
committed
ECOPROJECT-4214 | feat: persist cluster requirements inputs with upsert and add GET endpoint for PDF reuse
Signed-off-by: Ronen Avraham <ravraham@redhat.com>
1 parent 093b9bb commit 3569de4

19 files changed

Lines changed: 1417 additions & 282 deletions

api/v1alpha1/openapi.yaml

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -662,6 +662,63 @@ paths:
662662
application/json:
663663
schema:
664664
$ref: "#/components/schemas/Error"
665+
/api/v1/assessments/{id}/cluster-requirements/stored-input:
666+
get:
667+
tags:
668+
- assessment
669+
description: Get stored cluster requirements input for an assessment cluster
670+
operationId: getAssessmentClusterRequirementsStoredInput
671+
parameters:
672+
- name: id
673+
in: path
674+
description: ID of the assessment
675+
required: true
676+
schema:
677+
type: string
678+
format: uuid
679+
- name: clusterId
680+
in: query
681+
description: ID of the VMware cluster
682+
required: true
683+
schema:
684+
type: string
685+
responses:
686+
"200":
687+
description: Stored cluster requirements input found
688+
content:
689+
application/json:
690+
schema:
691+
$ref: "#/components/schemas/ClusterRequirementsStoredInput"
692+
"400":
693+
description: Bad Request
694+
content:
695+
application/json:
696+
schema:
697+
$ref: "#/components/schemas/Error"
698+
"401":
699+
description: Unauthorized
700+
content:
701+
application/json:
702+
schema:
703+
$ref: "#/components/schemas/Error"
704+
"403":
705+
description: Forbidden
706+
content:
707+
application/json:
708+
schema:
709+
$ref: "#/components/schemas/Error"
710+
"404":
711+
description: Assessment or cluster requirements input not found
712+
content:
713+
application/json:
714+
schema:
715+
$ref: "#/components/schemas/Error"
716+
"500":
717+
description: Internal error
718+
content:
719+
application/json:
720+
schema:
721+
$ref: "#/components/schemas/Error"
665722
/api/v1/assessments/{id}/migration-estimation:
666723
post:
667724
tags:
@@ -2801,6 +2858,49 @@ components:
28012858
- workerNodeCPU
28022859
- workerNodeMemory
28032860

2861+
ClusterRequirementsStoredInput:
2862+
type: object
2863+
description: Stored cluster requirements payload for a cluster
2864+
properties:
2865+
clusterId:
2866+
type: string
2867+
description: ID of the cluster
2868+
cpuOverCommitRatio:
2869+
type: string
2870+
enum: ["1:1", "1:2", "1:4", "1:6"]
2871+
description: CPU over-commit ratio (e.g., "1:4")
2872+
memoryOverCommitRatio:
2873+
type: string
2874+
enum: ["1:1", "1:2", "1:4"]
2875+
description: Memory over-commit ratio (e.g., "1:2")
2876+
workerNodeCPU:
2877+
type: integer
2878+
description: CPU cores per worker node
2879+
workerNodeMemory:
2880+
type: integer
2881+
description: Memory (GB) per worker node
2882+
workerNodeThreads:
2883+
type: integer
2884+
description: Number of CPU threads per worker node
2885+
controlPlaneSchedulable:
2886+
type: boolean
2887+
description: Allow workload scheduling on control plane nodes
2888+
controlPlaneCPU:
2889+
type: integer
2890+
description: CPU cores per control plane node
2891+
controlPlaneMemory:
2892+
type: integer
2893+
description: Memory in GB per control plane node
2894+
controlPlaneNodeCount:
2895+
type: integer
2896+
enum: [1, 3]
2897+
description: Number of control plane nodes
2898+
hostedControlPlane:
2899+
type: boolean
2900+
description: If true, control plane is hosted externally
2901+
required:
2902+
- clusterId
2903+
28042904
ClusterRequirementsResponse:
28052905
type: object
28062906
description: Cluster requirements calculation results

api/v1alpha1/spec.gen.go

Lines changed: 152 additions & 150 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/v1alpha1/types.gen.go

Lines changed: 74 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)