mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Validate ClusterModel before trying to update or create a Cluster (#4515)
* Validate ClusterModel before trying to update or create a Cluster Signed-off-by: Sebastian Malton <sebastian@malton.name> * Fix tests Signed-off-by: Sebastian Malton <sebastian@malton.name> Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
1 parent
5263d9b5ec
commit
032e6d968c
2 files changed
+49
-3
No files matched your search
@@ -3,6 +3,8 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
|
||||
import Joi from "joi";
|
||||
|
||||
/**
|
||||
* JSON serializable metadata type
|
||||
*/
|
||||
@@ -27,6 +29,37 @@ export type ClusterId = string;
|
||||
*/
|
||||
export type UpdateClusterModel = Omit<ClusterModel, "id">;
|
||||
|
||||
/**
|
||||
* A type validator for `UpdateClusterModel` so that only expected types are present
|
||||
*/
|
||||
export const updateClusterModelChecker = Joi.object<UpdateClusterModel>({
|
||||
kubeConfigPath: Joi.string()
|
||||
.required()
|
||||
.min(1),
|
||||
contextName: Joi.string()
|
||||
.required()
|
||||
.min(1),
|
||||
workspace: Joi.string()
|
||||
.optional(),
|
||||
workspaces: Joi.array()
|
||||
.items(Joi.string()),
|
||||
preferences: Joi.object(),
|
||||
metadata: Joi.object(),
|
||||
accessibleNamespaces: Joi.array()
|
||||
.items(Joi.string()),
|
||||
labels: Joi.object().pattern(Joi.string(), Joi.string()),
|
||||
});
|
||||
|
||||
/**
|
||||
* A type validator for just the `id` fields of `ClusterModel`. The rest is
|
||||
* covered by `updateClusterModelChecker`
|
||||
*/
|
||||
export const clusterModelIdChecker = Joi.object<Pick<ClusterModel, "id">>({
|
||||
id: Joi.string()
|
||||
.required()
|
||||
.min(1),
|
||||
});
|
||||
|
||||
/**
|
||||
* The model for passing cluster data around, including to disk
|
||||
*/
|
||||
|
||||
Reference in new issue
Block a user