feat(deployment): Implement Deployment and DeploymentManager classes with CRUD operations and service integration
This commit is contained in:
@@ -142,13 +142,21 @@ export const getAllDataAction = dataState.createAction(async (statePartArg) => {
|
||||
'/typedrequest',
|
||||
'getServices'
|
||||
);
|
||||
const responseServices = await trGetServices.fire({
|
||||
identity: loginStatePart.getState().identity,
|
||||
});
|
||||
currentState = {
|
||||
...currentState,
|
||||
services: responseServices.services,
|
||||
};
|
||||
try {
|
||||
const responseServices = await trGetServices.fire({
|
||||
identity: loginStatePart.getState().identity,
|
||||
});
|
||||
currentState = {
|
||||
...currentState,
|
||||
services: responseServices?.services || [],
|
||||
};
|
||||
} catch (error) {
|
||||
console.error('Failed to fetch services:', error);
|
||||
currentState = {
|
||||
...currentState,
|
||||
services: [],
|
||||
};
|
||||
}
|
||||
|
||||
// Deployments
|
||||
const trGetDeployments =
|
||||
@@ -156,13 +164,21 @@ export const getAllDataAction = dataState.createAction(async (statePartArg) => {
|
||||
'/typedrequest',
|
||||
'getDeployments'
|
||||
);
|
||||
const responseDeployments = await trGetDeployments.fire({
|
||||
identity: loginStatePart.getState().identity,
|
||||
});
|
||||
currentState = {
|
||||
...currentState,
|
||||
deployments: responseDeployments.deployments,
|
||||
};
|
||||
try {
|
||||
const responseDeployments = await trGetDeployments.fire({
|
||||
identity: loginStatePart.getState().identity,
|
||||
});
|
||||
currentState = {
|
||||
...currentState,
|
||||
deployments: responseDeployments?.deployments || [],
|
||||
};
|
||||
} catch (error) {
|
||||
console.error('Failed to fetch deployments:', error);
|
||||
currentState = {
|
||||
...currentState,
|
||||
deployments: [],
|
||||
};
|
||||
}
|
||||
|
||||
return currentState;
|
||||
});
|
||||
|
@@ -15,10 +15,7 @@ import * as appstate from '../appstate.js';
|
||||
@customElement('cloudly-view-clusters')
|
||||
export class CloudlyViewClusters extends DeesElement {
|
||||
@state()
|
||||
private data: appstate.IDataState = {
|
||||
secretGroups: [],
|
||||
secretBundles: [],
|
||||
};
|
||||
private data: appstate.IDataState = {};
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
|
@@ -15,10 +15,7 @@ import * as appstate from '../appstate.js';
|
||||
@customElement('cloudly-view-deployments')
|
||||
export class CloudlyViewDeployments extends DeesElement {
|
||||
@state()
|
||||
private data: appstate.IDataState = {
|
||||
secretGroups: [],
|
||||
secretBundles: [],
|
||||
};
|
||||
private data: appstate.IDataState = {};
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
|
@@ -8,10 +8,7 @@ import * as appstate from '../appstate.js';
|
||||
@customElement('cloudly-view-images')
|
||||
export class CloudlyViewImages extends DeesElement {
|
||||
@state()
|
||||
private data: appstate.IDataState = {
|
||||
secretGroups: [],
|
||||
secretBundles: [],
|
||||
};
|
||||
private data: appstate.IDataState = {};
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
|
@@ -15,10 +15,7 @@ import * as appstate from '../appstate.js';
|
||||
@customElement('cloudly-view-secretbundles')
|
||||
export class CloudlyViewSecretBundles extends DeesElement {
|
||||
@state()
|
||||
private data: appstate.IDataState = {
|
||||
secretGroups: [],
|
||||
secretBundles: [],
|
||||
};
|
||||
private data: appstate.IDataState = {};
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
@@ -44,7 +41,7 @@ export class CloudlyViewSecretBundles extends DeesElement {
|
||||
<dees-table
|
||||
.heading1=${'SecretBundles'}
|
||||
.heading2=${'decoded in client'}
|
||||
.data=${this.data.secretBundles}
|
||||
.data=${this.data.secretBundles || []}
|
||||
.displayFunction=${(itemArg: plugins.interfaces.data.ISecretBundle) => {
|
||||
return {
|
||||
name: itemArg.data.name,
|
||||
|
@@ -8,18 +8,16 @@ import * as appstate from '../appstate.js';
|
||||
@customElement('cloudly-view-secretsgroups')
|
||||
export class CloudlyViewSecretGroups extends DeesElement {
|
||||
@state()
|
||||
private data: appstate.IDataState = {
|
||||
secretGroups: [],
|
||||
secretBundles: [],
|
||||
};
|
||||
private data: appstate.IDataState = {};
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
appstate.dataState
|
||||
const subscription = appstate.dataState
|
||||
.select((stateArg) => stateArg)
|
||||
.subscribe((dataArg) => {
|
||||
this.data = dataArg;
|
||||
});
|
||||
this.rxSubscriptions.push(subscription);
|
||||
}
|
||||
|
||||
public static styles = [
|
||||
@@ -36,7 +34,7 @@ export class CloudlyViewSecretGroups extends DeesElement {
|
||||
<dees-table
|
||||
heading1="SecretGroups"
|
||||
heading2="decoded in client"
|
||||
.data=${this.data.secretGroups}
|
||||
.data=${this.data.secretGroups || []}
|
||||
.displayFunction=${(secretGroup: plugins.interfaces.data.ISecretGroup) => {
|
||||
return {
|
||||
name: secretGroup.data.name,
|
||||
|
@@ -15,10 +15,7 @@ import * as appstate from '../appstate.js';
|
||||
@customElement('cloudly-view-services')
|
||||
export class CloudlyViewServices extends DeesElement {
|
||||
@state()
|
||||
private data: appstate.IDataState = {
|
||||
secretGroups: [],
|
||||
secretBundles: [],
|
||||
};
|
||||
private data: appstate.IDataState = {};
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
|
Reference in New Issue
Block a user