Skip to content

Commit 1114c30

Browse files
author
Jongmin Kim
authored
Merge pull request #82 from whdalsrnt/master
Refactor Page Schema and Metadata
2 parents 584ef64 + eaf90c8 commit 1114c30

File tree

8 files changed

+56
-52
lines changed

8 files changed

+56
-52
lines changed

src/controllers/add-ons/page-schema/inventoryCloudService/admin-schema/details.json

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,7 @@
131131
"type": "badge",
132132
"options": {
133133
"translation_id": "PAGE_SCHEMA.SERVICE_ACCOUNT",
134-
"outline_color": "violet.500",
135-
"delimiter": " "
134+
"outline_color": "violet.500"
136135
},
137136
"reference": {
138137
"resource_type": "identity.ServiceAccount",
@@ -145,8 +144,7 @@
145144
"type": "badge",
146145
"options": {
147146
"translation_id": "PAGE_SCHEMA.SECRET",
148-
"outline_color": "violet.500",
149-
"delimiter": " "
147+
"outline_color": "violet.500"
150148
},
151149
"reference": {
152150
"resource_type": "secret.Secret",
@@ -159,8 +157,7 @@
159157
"type": "badge",
160158
"options": {
161159
"translation_id": "PAGE_SCHEMA.COLLECTOR",
162-
"outline_color": "violet.500",
163-
"delimiter": " "
160+
"outline_color": "violet.500"
164161
},
165162
"reference": {
166163
"resource_type": "inventory.Collector",

src/controllers/add-ons/page-schema/inventoryCloudService/admin-schema/details_multiple.json

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,7 @@
9292
"name": "Service Accounts",
9393
"type": "badge",
9494
"options": {
95-
"outline_color": "violet.500",
96-
"delimiter": " "
95+
"outline_color": "violet.500"
9796
},
9897
"reference": {
9998
"resource_type": "identity.ServiceAccount",
@@ -105,8 +104,7 @@
105104
"name": "Secrets",
106105
"type": "badge",
107106
"options": {
108-
"outline_color": "violet.500",
109-
"delimiter": " "
107+
"outline_color": "violet.500"
110108
},
111109
"reference": {
112110
"resource_type": "secret.Secret",
@@ -118,8 +116,7 @@
118116
"name": "Collectors",
119117
"type": "badge",
120118
"options": {
121-
"outline_color": "violet.500",
122-
"delimiter": " "
119+
"outline_color": "violet.500"
123120
},
124121
"reference": {
125122
"resource_type": "inventory.Collector",

src/controllers/add-ons/page-schema/inventoryCloudService/default-schema/details.json

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,7 @@
131131
"type": "badge",
132132
"options": {
133133
"translation_id": "PAGE_SCHEMA.SERVICE_ACCOUNT",
134-
"outline_color": "violet.500",
135-
"delimiter": " "
134+
"outline_color": "violet.500"
136135
},
137136
"reference": {
138137
"resource_type": "identity.ServiceAccount",
@@ -145,8 +144,7 @@
145144
"type": "badge",
146145
"options": {
147146
"translation_id": "PAGE_SCHEMA.SECRET",
148-
"outline_color": "violet.500",
149-
"delimiter": " "
147+
"outline_color": "violet.500"
150148
},
151149
"reference": {
152150
"resource_type": "secret.Secret",
@@ -159,8 +157,7 @@
159157
"type": "badge",
160158
"options": {
161159
"translation_id": "PAGE_SCHEMA.COLLECTOR",
162-
"outline_color": "violet.500",
163-
"delimiter": " "
160+
"outline_color": "violet.500"
164161
},
165162
"reference": {
166163
"resource_type": "inventory.Collector",

src/controllers/add-ons/page-schema/inventoryCloudService/default-schema/details_multiple.json

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,7 @@
9292
"name": "Service Accounts",
9393
"type": "badge",
9494
"options": {
95-
"outline_color": "violet.500",
96-
"delimiter": " "
95+
"outline_color": "violet.500"
9796
},
9897
"reference": {
9998
"resource_type": "identity.ServiceAccount",
@@ -105,8 +104,7 @@
105104
"name": "Secrets",
106105
"type": "badge",
107106
"options": {
108-
"outline_color": "violet.500",
109-
"delimiter": " "
107+
"outline_color": "violet.500"
110108
},
111109
"reference": {
112110
"resource_type": "secret.Secret",
@@ -118,8 +116,7 @@
118116
"name": "Collectors",
119117
"type": "badge",
120118
"options": {
121-
"outline_color": "violet.500",
122-
"delimiter": " "
119+
"outline_color": "violet.500"
123120
},
124121
"reference": {
125122
"resource_type": "inventory.Collector",

src/controllers/add-ons/page-schema/inventoryServer/admin-schema/details.json

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,7 @@
138138
"type": "badge",
139139
"options": {
140140
"translation_id": "PAGE_SCHEMA.SERVICE_ACCOUNT",
141-
"outline_color": "violet.500",
142-
"delimiter": " "
141+
"outline_color": "violet.500"
143142
},
144143
"reference": {
145144
"resource_type": "identity.ServiceAccount",
@@ -152,8 +151,7 @@
152151
"type": "badge",
153152
"options": {
154153
"translation_id": "PAGE_SCHEMA.SECRET",
155-
"outline_color": "violet.500",
156-
"delimiter": " "
154+
"outline_color": "violet.500"
157155
},
158156
"reference": {
159157
"resource_type": "secret.Secret",
@@ -166,8 +164,7 @@
166164
"type": "badge",
167165
"options": {
168166
"translation_id": "PAGE_SCHEMA.COLLECTOR",
169-
"outline_color": "violet.500",
170-
"delimiter": " "
167+
"outline_color": "violet.500"
171168
},
172169
"reference": {
173170
"resource_type": "inventory.Collector",

src/controllers/add-ons/page-schema/inventoryServer/default-schema/details.json

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,7 @@
138138
"type": "badge",
139139
"options": {
140140
"translation_id": "PAGE_SCHEMA.SERVICE_ACCOUNT",
141-
"outline_color": "violet.500",
142-
"delimiter": " "
141+
"outline_color": "violet.500"
143142
},
144143
"reference": {
145144
"resource_type": "identity.ServiceAccount",
@@ -152,8 +151,7 @@
152151
"type": "badge",
153152
"options": {
154153
"translation_id": "PAGE_SCHEMA.SECRET",
155-
"outline_color": "violet.500",
156-
"delimiter": " "
154+
"outline_color": "violet.500"
157155
},
158156
"reference": {
159157
"resource_type": "secret.Secret",
@@ -166,8 +164,7 @@
166164
"type": "badge",
167165
"options": {
168166
"translation_id": "PAGE_SCHEMA.COLLECTOR",
169-
"outline_color": "violet.500",
170-
"delimiter": " "
167+
"outline_color": "violet.500"
171168
},
172169
"reference": {
173170
"resource_type": "inventory.Collector",

src/controllers/add-ons/page-schema/inventoryServer/index.ts

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,16 +141,53 @@ const convertTableSchema = (schemas: any) => {
141141
return convertedSchema;
142142
};
143143

144+
const getCloudServiceTypeInfo = async (options: Options) => {
145+
const service = 'inventory';
146+
const resource = 'CloudServiceType';
147+
const client = await getClient(service);
148+
const response = await client[resource].list({
149+
provider: options.provider,
150+
group: options.cloud_service_group,
151+
name: options.cloud_service_type,
152+
query: {
153+
only: ['metadata']
154+
}
155+
156+
});
157+
158+
if (response.total_count === 0) {
159+
throw new Error(`Cloud service type not exists. (provider = ${options.provider}, cloud_service_group = ${options.cloud_service_group}, cloud_service_type = ${options.cloud_service_type})`);
160+
}
161+
162+
return response.results[0];
163+
};
164+
144165
const getSchema = async ({ schema, resource_type, options = {} }: GetSchemaParams) => {
145166
const includeWorkspaceInfo = options.include_workspace_info || false;
146167
if (schema === 'details') {
147168
const serverInfo = await getServerInfo(options);
169+
170+
let cloudServiceTypeSubDataLayouts = [] as any;
171+
const subDataReferences = getMetadataSchema(serverInfo.metadata, 'view.sub_data.reference', true);
172+
for(const subDataReference of subDataReferences) {
173+
const options = subDataReference.options || {};
174+
175+
if (options.provider && options.cloud_service_group && options.cloud_service_type) {
176+
const cloudServiceTypeInfo = await getCloudServiceTypeInfo(options);
177+
const subDataLayout = getMetadataSchema(cloudServiceTypeInfo.metadata, 'view.sub_data.layouts', false);
178+
cloudServiceTypeSubDataLayouts = [...cloudServiceTypeSubDataLayouts, ...subDataLayout];
179+
}
180+
}
181+
148182
const subDataLayouts = getMetadataSchema(serverInfo.metadata, 'view.sub_data.layouts', true);
149183

150184
return {
151185
details: [
152186
(includeWorkspaceInfo)? adminDetailsSchema : detailsSchema,
153-
...convertTableSchema(subDataLayouts),
187+
...convertTableSchema([
188+
...cloudServiceTypeSubDataLayouts,
189+
...subDataLayouts
190+
]),
154191
{
155192
name: 'Raw Data',
156193
type: 'raw',

src/controllers/statistics/topic/service-account-summary.ts

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,6 @@ const getDefaultQuery = () => {
4646
],
4747
query: {
4848
aggregate: [
49-
{
50-
unwind: {
51-
path: 'collection_info'
52-
}
53-
},
5449
{
5550
group: {
5651
keys: [
@@ -91,11 +86,6 @@ const getDefaultQuery = () => {
9186
],
9287
query: {
9388
aggregate: [
94-
{
95-
unwind: {
96-
path: 'collection_info'
97-
}
98-
},
9989
{
10090
group: {
10191
keys: [
@@ -136,11 +126,6 @@ const getDefaultQuery = () => {
136126
],
137127
query: {
138128
aggregate: [
139-
{
140-
unwind: {
141-
path: 'collection_info'
142-
}
143-
},
144129
{
145130
group: {
146131
keys: [

0 commit comments

Comments
 (0)