@dovetail-v2/refine 0.0.61 → 0.0.63-pod-exec.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. package/dist/{MonacoYamlDiffEditor-0413ec6d.js → MonacoYamlDiffEditor-79a8df0a.js} +1 -1
  2. package/dist/{index-ff0b07db.js → index-f192f242.js} +12945 -3897
  3. package/dist/refine.js +136 -134
  4. package/dist/refine.umd.cjs +12890 -3842
  5. package/dist/style.css +229 -11
  6. package/lib/src/components/Form/FormModal.d.ts +1 -0
  7. package/lib/src/components/ModalContextProvider/index.d.ts +12 -0
  8. package/lib/src/components/NetworkPolicyRulesTable/NetworkPolicyRulesTable.d.ts +2 -1
  9. package/lib/src/components/PodDropdown/index.d.ts +9 -0
  10. package/lib/src/components/PodShellModal/index.d.ts +7 -0
  11. package/lib/src/components/ResourceSelect/index.d.ts +12 -0
  12. package/lib/src/components/YamlForm/index.d.ts +4 -0
  13. package/lib/src/components/index.d.ts +1 -0
  14. package/lib/src/hooks/useEagleForm.d.ts +2 -1
  15. package/lib/src/hooks/useModal.d.ts +0 -0
  16. package/lib/src/hooks/useNamespaceFilter.d.ts +5 -0
  17. package/lib/src/i18n.d.ts +1 -0
  18. package/lib/src/locales/en-US/index.d.ts +1 -0
  19. package/lib/src/model/cronjob-model.d.ts +9 -0
  20. package/lib/src/model/index.d.ts +6 -0
  21. package/lib/src/model/job-model.d.ts +10 -0
  22. package/lib/src/model/pod-metrics-model.d.ts +7 -0
  23. package/lib/src/model/pod-model.d.ts +15 -0
  24. package/lib/src/model/resource-model.d.ts +17 -0
  25. package/lib/src/model/workload-model.d.ts +17 -0
  26. package/lib/src/models/node-model.d.ts +15 -0
  27. package/lib/src/models/persistent-volume-claim.d.ts +10 -0
  28. package/lib/src/models/persistent-volume.d.ts +10 -0
  29. package/lib/src/models/storage-class.d.ts +10 -0
  30. package/lib/src/pages/nodes/hooks/useNodeMetrics.d.ts +17 -0
  31. package/lib/src/pages/{pods/index.js → nodes/index.d.ts} +0 -1
  32. package/lib/src/pages/nodes/list/index.d.ts +3 -0
  33. package/lib/src/pages/nodes/show/index.d.ts +3 -0
  34. package/lib/src/pages/storageclasses/form/index.d.ts +9 -0
  35. package/lib/src/pages/storageclasses/index.d.ts +44 -0
  36. package/lib/src/pages/storageclasses/list/index.d.ts +3 -0
  37. package/lib/src/pages/storageclasses/show/index.d.ts +3 -0
  38. package/lib/src/types/metric.d.ts +25 -0
  39. package/lib/src/utils/shell.d.ts +16 -0
  40. package/package.json +6 -1
  41. package/lib/src/App.js +0 -91
  42. package/lib/src/Dovetail.js +0 -45
  43. package/lib/src/components/Breadcrumb/index.js +0 -20
  44. package/lib/src/components/ConditionsTable/ConditionsTable.js +0 -56
  45. package/lib/src/components/ConditionsTable/index.js +0 -1
  46. package/lib/src/components/CreateButton/index.js +0 -10
  47. package/lib/src/components/CronJobDropdown/index.js +0 -26
  48. package/lib/src/components/CronjobJobsTable/index.js +0 -49
  49. package/lib/src/components/DeleteButton/index.js +0 -13
  50. package/lib/src/components/DeleteManyButton/index.js +0 -16
  51. package/lib/src/components/DrawerShow/DrawerShow.js +0 -13
  52. package/lib/src/components/DrawerShow/index.js +0 -1
  53. package/lib/src/components/EditButton/index.js +0 -13
  54. package/lib/src/components/EditField/index.js +0 -47
  55. package/lib/src/components/ErrorContent/index.js +0 -36
  56. package/lib/src/components/EventsTable/EventsTable.js +0 -59
  57. package/lib/src/components/EventsTable/index.js +0 -1
  58. package/lib/src/components/Form/KeyValueListWidget.js +0 -56
  59. package/lib/src/components/Form/MetadataForm.js +0 -9
  60. package/lib/src/components/Form/NameInputWidget.js +0 -50
  61. package/lib/src/components/Form/NamespaceSelectWidget.js +0 -21
  62. package/lib/src/components/Form/index.js +0 -4
  63. package/lib/src/components/Form/widget.js +0 -1
  64. package/lib/src/components/FormErrorAlert/index.js +0 -8
  65. package/lib/src/components/FormLayout/index.js +0 -21
  66. package/lib/src/components/FormModal/index.js +0 -51
  67. package/lib/src/components/ImageNames/index.js +0 -14
  68. package/lib/src/components/IngressRulesComponent/index.js +0 -11
  69. package/lib/src/components/IngressRulesTable/IngressRulesTable.js +0 -51
  70. package/lib/src/components/IngressRulesTable/index.js +0 -1
  71. package/lib/src/components/K8sDropdown/index.js +0 -31
  72. package/lib/src/components/KeyValue/KeyValue.js +0 -27
  73. package/lib/src/components/KeyValue/index.js +0 -1
  74. package/lib/src/components/KeyValueData/index.js +0 -50
  75. package/lib/src/components/Layout/index.js +0 -39
  76. package/lib/src/components/ListPage/index.js +0 -25
  77. package/lib/src/components/Menu/index.js +0 -36
  78. package/lib/src/components/NamespacesFilter/index.js +0 -34
  79. package/lib/src/components/NetworkPolicyRulesTable/NetworkPolicyRulesTable.js +0 -77
  80. package/lib/src/components/NetworkPolicyRulesTable/index.js +0 -1
  81. package/lib/src/components/PageShow/PageShow.js +0 -11
  82. package/lib/src/components/PageShow/index.js +0 -1
  83. package/lib/src/components/PodContainersTable/PodContainersTable.js +0 -78
  84. package/lib/src/components/PodContainersTable/index.js +0 -1
  85. package/lib/src/components/PodLog/index.js +0 -136
  86. package/lib/src/components/ReferenceLink/index.js +0 -17
  87. package/lib/src/components/RefineForm/RefineFormContent.d.ts +0 -10
  88. package/lib/src/components/RefineForm/RefineFormModal.d.ts +0 -8
  89. package/lib/src/components/RefineForm/RefineFormPage.d.ts +0 -7
  90. package/lib/src/components/RefineForm/index.d.ts +0 -3
  91. package/lib/src/components/RefineForm/type.d.ts +0 -20
  92. package/lib/src/components/RefineForm/useRefineForm.d.ts +0 -10
  93. package/lib/src/components/ResourceCRUD/ResourceCRUD.js +0 -15
  94. package/lib/src/components/ResourceCRUD/create/index.js +0 -13
  95. package/lib/src/components/ResourceCRUD/index.js +0 -4
  96. package/lib/src/components/ResourceCRUD/list/index.js +0 -19
  97. package/lib/src/components/ResourceCRUD/show/index.js +0 -6
  98. package/lib/src/components/ResourceLink/index.js +0 -21
  99. package/lib/src/components/ResourceUsageBar/index.js +0 -81
  100. package/lib/src/components/Separator/index.js +0 -11
  101. package/lib/src/components/ShowContent/ShowContent.js +0 -157
  102. package/lib/src/components/ShowContent/fields.js +0 -157
  103. package/lib/src/components/ShowContent/index.js +0 -2
  104. package/lib/src/components/StateTag/StateTag.js +0 -22
  105. package/lib/src/components/StateTag/index.js +0 -1
  106. package/lib/src/components/Table/ErrorContent.js +0 -36
  107. package/lib/src/components/Table/TableToolBar.js +0 -14
  108. package/lib/src/components/Table/TableWidgets.js +0 -28
  109. package/lib/src/components/Table/index.js +0 -69
  110. package/lib/src/components/Tags/index.js +0 -22
  111. package/lib/src/components/Time/index.js +0 -14
  112. package/lib/src/components/WorkloadDropdown/index.js +0 -24
  113. package/lib/src/components/WorkloadPodsTable/WorkloadPodsTable.js +0 -39
  114. package/lib/src/components/WorkloadPodsTable/index.js +0 -1
  115. package/lib/src/components/WorkloadReplicas/index.js +0 -50
  116. package/lib/src/components/YamlEditor/MonacoYamlDiffEditor.js +0 -34
  117. package/lib/src/components/YamlEditor/MonacoYamlEditor.js +0 -149
  118. package/lib/src/components/YamlEditor/YamlEditorComponent.js +0 -90
  119. package/lib/src/components/YamlEditor/index.js +0 -1
  120. package/lib/src/components/YamlEditor/style.js +0 -102
  121. package/lib/src/components/YamlEditor/yaml.worker.js +0 -1
  122. package/lib/src/components/YamlForm/index.js +0 -61
  123. package/lib/src/components/index.js +0 -38
  124. package/lib/src/constants/index.js +0 -2
  125. package/lib/src/constants/k8s.js +0 -203
  126. package/lib/src/constants/state.js +0 -15
  127. package/lib/src/contexts/component.js +0 -3
  128. package/lib/src/contexts/configs.js +0 -3
  129. package/lib/src/contexts/global-store.js +0 -3
  130. package/lib/src/contexts/index.js +0 -3
  131. package/lib/src/hooks/index.js +0 -7
  132. package/lib/src/hooks/useDeleteModal/index.js +0 -1
  133. package/lib/src/hooks/useDeleteModal/useDeleteManyModal.js +0 -31
  134. package/lib/src/hooks/useDeleteModal/useDeleteModal.js +0 -38
  135. package/lib/src/hooks/useDownloadYAML.js +0 -10
  136. package/lib/src/hooks/useEagleForm.js +0 -177
  137. package/lib/src/hooks/useEagleTable/columns.js +0 -246
  138. package/lib/src/hooks/useEagleTable/index.js +0 -2
  139. package/lib/src/hooks/useEagleTable/useEagleTable.js +0 -63
  140. package/lib/src/hooks/useEdit.js +0 -19
  141. package/lib/src/hooks/useGlobalStore.js +0 -5
  142. package/lib/src/hooks/useK8sYamlEditor.js +0 -37
  143. package/lib/src/hooks/useOpenForm.js +0 -43
  144. package/lib/src/hooks/useSchema.js +0 -37
  145. package/lib/src/hooks/useSubmitForm.js +0 -42
  146. package/lib/src/i18n.js +0 -19
  147. package/lib/src/index.js +0 -13
  148. package/lib/src/locales/en-US/dovetail.json +0 -18
  149. package/lib/src/locales/en-US/index.js +0 -4
  150. package/lib/src/locales/index.js +0 -6
  151. package/lib/src/locales/zh-CN/dovetail.json +0 -91
  152. package/lib/src/locales/zh-CN/index.js +0 -4
  153. package/lib/src/main.js +0 -12
  154. package/lib/src/models/cronjob-model.js +0 -32
  155. package/lib/src/models/daemonset-model.js +0 -17
  156. package/lib/src/models/deployment-model.js +0 -17
  157. package/lib/src/models/event-model.js +0 -11
  158. package/lib/src/models/index.js +0 -14
  159. package/lib/src/models/ingress-model.js +0 -24
  160. package/lib/src/models/job-model.js +0 -56
  161. package/lib/src/models/network-policy-model.js +0 -10
  162. package/lib/src/models/pod-metrics-model.js +0 -34
  163. package/lib/src/models/pod-model.js +0 -78
  164. package/lib/src/models/resource-model.js +0 -34
  165. package/lib/src/models/server-instance-model.d.ts +0 -10
  166. package/lib/src/models/service-model.js +0 -17
  167. package/lib/src/models/statefulset-model.js +0 -17
  168. package/lib/src/models/types/index.js +0 -1
  169. package/lib/src/models/types/metric.js +0 -1
  170. package/lib/src/models/workload-base-model.js +0 -22
  171. package/lib/src/models/workload-model.js +0 -51
  172. package/lib/src/pages/configmaps/index.js +0 -15
  173. package/lib/src/pages/cronjobs/create/index.js +0 -6
  174. package/lib/src/pages/cronjobs/index.js +0 -3
  175. package/lib/src/pages/cronjobs/list/index.js +0 -42
  176. package/lib/src/pages/cronjobs/show/index.js +0 -16
  177. package/lib/src/pages/daemonsets/create/index.js +0 -6
  178. package/lib/src/pages/daemonsets/index.js +0 -3
  179. package/lib/src/pages/daemonsets/list/index.js +0 -32
  180. package/lib/src/pages/daemonsets/show/index.js +0 -16
  181. package/lib/src/pages/deployments/create/index.js +0 -7
  182. package/lib/src/pages/deployments/index.js +0 -3
  183. package/lib/src/pages/deployments/list/index.js +0 -26
  184. package/lib/src/pages/deployments/show/index.js +0 -16
  185. package/lib/src/pages/ingresses/index.js +0 -26
  186. package/lib/src/pages/jobs/index.js +0 -34
  187. package/lib/src/pages/networkPolicies/index.js +0 -67
  188. package/lib/src/pages/pods/create/index.js +0 -6
  189. package/lib/src/pages/pods/list/index.js +0 -81
  190. package/lib/src/pages/pods/show/index.js +0 -54
  191. package/lib/src/pages/secrets/index.js +0 -15
  192. package/lib/src/pages/services/index.js +0 -26
  193. package/lib/src/pages/statefulsets/create/index.js +0 -6
  194. package/lib/src/pages/statefulsets/index.js +0 -3
  195. package/lib/src/pages/statefulsets/list/index.js +0 -26
  196. package/lib/src/pages/statefulsets/show/index.js +0 -16
  197. package/lib/src/plugins/index.js +0 -3
  198. package/lib/src/plugins/model-plugin.js +0 -46
  199. package/lib/src/plugins/relation-plugin.js +0 -81
  200. package/lib/src/plugins/type.js +0 -1
  201. package/lib/src/providers/index.js +0 -1
  202. package/lib/src/providers/router-provider/index.js +0 -100
  203. package/lib/src/types/index.js +0 -1
  204. package/lib/src/types/resource.js +0 -12
  205. package/lib/src/utils/addId.js +0 -8
  206. package/lib/src/utils/download.js +0 -9
  207. package/lib/src/utils/error.js +0 -53
  208. package/lib/src/utils/form.js +0 -9
  209. package/lib/src/utils/k8s.js +0 -6
  210. package/lib/src/utils/labels.js +0 -15
  211. package/lib/src/utils/match-selector.js +0 -12
  212. package/lib/src/utils/openapi.js +0 -33
  213. package/lib/src/utils/schema.js +0 -117
  214. package/lib/src/utils/selector.js +0 -12
  215. package/lib/src/utils/string.js +0 -6
  216. package/lib/src/utils/time.js +0 -46
  217. package/lib/src/utils/unit.js +0 -69
  218. package/lib/src/utils/yaml.js +0 -44
  219. package/lib/vite.config.js +0 -60
@@ -1,43 +0,0 @@
1
- import { pushModal } from '@cloudtower/eagle';
2
- import { useResource, useGo, useNavigation, } from '@refinedev/core';
3
- import { useContext } from 'react';
4
- import FormModal from 'src/components/FormModal';
5
- import ConfigsContext from 'src/contexts/configs';
6
- import { useEdit } from 'src/hooks/useEdit';
7
- import { FormType } from 'src/types';
8
- import { getInitialValues } from 'src/utils/form';
9
- export function useOpenForm(options) {
10
- const { resource } = useResource();
11
- const configs = useContext(ConfigsContext);
12
- const { edit } = useEdit();
13
- const navigation = useNavigation();
14
- const go = useGo();
15
- return function openForm() {
16
- if (resource?.name) {
17
- const config = configs[resource.name];
18
- if (config.formType === undefined || config.formType === FormType.MODAL) {
19
- pushModal({
20
- component: config.FormModal || FormModal,
21
- props: {
22
- resource: resource.name,
23
- id: options?.id,
24
- formProps: {
25
- initialValues: getInitialValues(config),
26
- }
27
- }
28
- });
29
- }
30
- else if (options?.id) {
31
- edit(options.id);
32
- }
33
- else {
34
- go({
35
- to: navigation.createUrl(resource.name),
36
- options: {
37
- keepQuery: true,
38
- },
39
- });
40
- }
41
- }
42
- };
43
- }
@@ -1,37 +0,0 @@
1
- import { useResource } from '@refinedev/core';
2
- import { useState, useEffect, useMemo, useCallback } from 'react';
3
- import OpenAPI from 'src/utils/openapi';
4
- export function useSchema(options) {
5
- const [schema, setSchema] = useState(null);
6
- const [loading, setLoading] = useState(false);
7
- const [error, setError] = useState(null);
8
- const useResourceResult = useResource();
9
- const resource = options?.resource || useResourceResult.resource;
10
- const openapi = useMemo(() => new OpenAPI(resource?.meta?.resourceBasePath), [resource?.meta?.resourceBasePath]);
11
- const fetchSchema = useCallback(async () => {
12
- setLoading(true);
13
- setError(null);
14
- try {
15
- const schema = await openapi.findSchema(resource?.meta?.kind);
16
- setSchema(schema || null);
17
- setError(null);
18
- }
19
- catch (e) {
20
- setError(e);
21
- }
22
- finally {
23
- setLoading(false);
24
- }
25
- }, [resource, openapi]);
26
- useEffect(() => {
27
- if (options?.skip)
28
- return;
29
- fetchSchema();
30
- }, [fetchSchema]);
31
- return {
32
- schema,
33
- loading,
34
- error,
35
- fetchSchema,
36
- };
37
- }
@@ -1,42 +0,0 @@
1
- import { useState, useCallback } from 'react';
2
- import { getCommonErrors } from 'src/utils/error';
3
- import { useD2Translation } from '../i18n';
4
- export function useSubmitForm(options) {
5
- const { formRef, onSubmitSuccess } = options;
6
- const { i18n } = useD2Translation();
7
- const [submitting, setSubmitting] = useState(false);
8
- const [errorMsgs, setErrorMsgs] = useState([]);
9
- const reset = useCallback(() => {
10
- setSubmitting(false);
11
- setErrorMsgs([]);
12
- }, []);
13
- const onSubmit = useCallback(async () => {
14
- try {
15
- setSubmitting(true);
16
- await formRef.current?.submit();
17
- onSubmitSuccess?.();
18
- reset();
19
- }
20
- catch (error) {
21
- if (error instanceof Object) {
22
- if ('response' in error && error.response instanceof Response) {
23
- const response = error.response;
24
- const body = await response.json();
25
- setErrorMsgs(getCommonErrors(body, i18n));
26
- }
27
- else if ('message' in error && typeof error.message === 'string') {
28
- setErrorMsgs([error.message]);
29
- }
30
- }
31
- }
32
- finally {
33
- setSubmitting(false);
34
- }
35
- }, [formRef, i18n, reset, onSubmitSuccess]);
36
- return {
37
- submitting,
38
- errorMsgs,
39
- reset,
40
- onSubmit,
41
- };
42
- }
package/lib/src/i18n.js DELETED
@@ -1,19 +0,0 @@
1
- import i18n from 'i18next';
2
- import { initReactI18next, useTranslation } from 'react-i18next';
3
- import { D2Locales } from 'src/locales';
4
- export const resources = D2Locales;
5
- i18n.use(initReactI18next).init({
6
- supportedLngs: ['en-US', 'zh-CN'],
7
- resources,
8
- ns: Object.keys(resources['zh-CN']),
9
- defaultNS: 'dovetail',
10
- fallbackLng: ['en-US', 'zh-CN'],
11
- lng: 'zh-CN',
12
- nsSeparator: '.',
13
- });
14
- export const useD2Translation = () => {
15
- return useTranslation(undefined, {
16
- i18n,
17
- });
18
- };
19
- export default i18n;
package/lib/src/index.js DELETED
@@ -1,13 +0,0 @@
1
- import i18n from './i18n';
2
- export const dovetailRefineI18n = i18n;
3
- export { D2Locales } from './locales';
4
- export * from './providers';
5
- export * from './hooks';
6
- export * from './components';
7
- export * from './constants';
8
- export * from './hooks';
9
- export * from './Dovetail';
10
- export * from './types';
11
- export * from './contexts';
12
- export * from './models';
13
- export * from './plugins';
@@ -1,18 +0,0 @@
1
- {
2
- "copy": "Copy",
3
- "reset_arguments": "Reset",
4
- "view_changes": "Show Diff",
5
- "back_to_edit": "Edit",
6
- "configure_file": "Configuration",
7
- "yaml_format_wrong": "Configuration is in an invalid YAML format.",
8
- "yaml_value_wrong": "Configuration has invalid values.",
9
- "edit_yaml": "Edit YAML",
10
- "copied": "Copied",
11
- "already_reset": "Already reset",
12
- "fetch_schema_fail": "Failed to fetch schema.",
13
- "obtain_data_error": "Having trouble getting data.",
14
- "retry": "Retry",
15
- "create_resource": "Create {{resource}}",
16
- "edit_resource": "Edit {{resource}}",
17
- "status": "Status"
18
- }
@@ -1,4 +0,0 @@
1
- import dovetail from './dovetail.json';
2
- export default {
3
- dovetail,
4
- };
@@ -1,6 +0,0 @@
1
- import D2LocalesEN from './en-US';
2
- import D2LocalesZH from './zh-CN';
3
- export const D2Locales = {
4
- 'en-US': D2LocalesEN,
5
- 'zh-CN': D2LocalesZH,
6
- };
@@ -1,91 +0,0 @@
1
- {
2
- "copy": "复制",
3
- "reset_arguments": "重置",
4
- "view_changes": "查看改动",
5
- "back_to_edit": "编辑",
6
- "configure_file": "配置内容",
7
- "yaml_format_wrong": "配置内容不是有效的 yaml 格式。",
8
- "yaml_value_wrong": "配置内容中存在不合法的值。",
9
- "edit_yaml": "编辑 YAML",
10
- "copied": "已复制",
11
- "already_reset": "已重置",
12
- "cancel": "取消",
13
- "delete": "删除",
14
- "create": "创建",
15
- "confirm_delete_text": "确定要删除 {{target}} 吗?",
16
- "edit": "编辑",
17
- "namespace": "名字空间",
18
- "name": "名称",
19
- "state": "状态",
20
- "status": "状态",
21
- "phase": "状态",
22
- "image": "容器镜像",
23
- "replicas": "副本数",
24
- "created_time": "创建时间",
25
- "label": "标签",
26
- "annotation": "注释",
27
- "type": "类型",
28
- "event": "事件",
29
- "reason": "原因",
30
- "object": "对象",
31
- "note": "事件信息",
32
- "condition": "Condition",
33
- "download_yaml": "下载 YAML",
34
- "detail": "详情",
35
- "node_name": "主机名称",
36
- "restarts": "重启次数",
37
- "updated_time": "更新时间",
38
- "message": "消息",
39
- "save": "保存",
40
- "more": "更多",
41
- "workload": "工作负载",
42
- "all_namespaces": "所有名字空间",
43
- "empty": "无可显示的数据",
44
- "schedule": "调度时间表",
45
- "lastScheduleTime": "上次调度时间",
46
- "duration": "持续时间",
47
- "completions": "完成 Job 历史数",
48
- "started": "开始时间",
49
- "init_container": "初始化容器",
50
- "container": "容器",
51
- "redeploy": "重新部署",
52
- "data": "数据",
53
- "suspend": "暂停",
54
- "resume": "重新开始",
55
- "cluster": "集群",
56
- "storage": "存储",
57
- "network": "网络",
58
- "clusterIp": "集群 IP",
59
- "sessionAffinity": "会话保持",
60
- "log": "日志",
61
- "select_container": "选择容器",
62
- "wrap": "折叠",
63
- "resume_log": "继续",
64
- "log_new_lines": ",并展示 {{ count }} 行新日志",
65
- "fetch_schema_fail": "获取 schema 失败。",
66
- "obtain_data_error": "获取数据时遇到问题。",
67
- "retry": "重试",
68
- "ready": "就绪",
69
- "updating": "更新中",
70
- "completed": "完成",
71
- "failed": "异常",
72
- "suspended": "挂起",
73
- "running": "运行中",
74
- "terminating": "终止",
75
- "succeeded": "成功终止",
76
- "unknown": "未知",
77
- "pending": "待处理",
78
- "waiting": "等待中",
79
- "create_resource": "创建 {{resource}}",
80
- "edit_resource": "编辑 {{resource}}",
81
- "sec": "秒",
82
- "min": "分",
83
- "hr": "小时",
84
- "day": "天",
85
- "expand": "展开",
86
- "fold": "收起",
87
- "rule": "规则",
88
- "default_backend": "默认后端",
89
- "ingress_rule_type": "规则类型",
90
- "port": "端口"
91
- }
@@ -1,4 +0,0 @@
1
- import dovetail from './dovetail.json';
2
- export default {
3
- dovetail,
4
- };
package/lib/src/main.js DELETED
@@ -1,12 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { initParrotI18n } from '@cloudtower/eagle';
3
- import React from 'react';
4
- // eslint-disable-next-line react/no-deprecated
5
- import { render } from 'react-dom';
6
- import App from './App';
7
- import './i18n';
8
- import 'antd/dist/antd.css';
9
- import '@cloudtower/eagle/dist/style.css';
10
- initParrotI18n();
11
- const container = document.getElementById('root');
12
- render(_jsx(React.StrictMode, { children: _jsx(React.Suspense, { fallback: "loading", children: _jsx(App, {}) }) }), container);
@@ -1,32 +0,0 @@
1
- import { set, cloneDeep } from 'lodash';
2
- import { WorkloadState } from '../constants';
3
- import { WorkloadBaseModel } from './workload-base-model';
4
- export class CronJobModel extends WorkloadBaseModel {
5
- _rawYaml;
6
- _globalStore;
7
- constructor(_rawYaml, _globalStore) {
8
- super(_rawYaml, _globalStore);
9
- this._rawYaml = _rawYaml;
10
- this._globalStore = _globalStore;
11
- }
12
- get stateDisplay() {
13
- if (!this.spec?.suspend) {
14
- return WorkloadState.SUSPENDED;
15
- }
16
- return WorkloadState.RUNNING;
17
- }
18
- suspend() {
19
- const newOne = cloneDeep(this._rawYaml);
20
- if (this._rawYaml.kind === 'CronJob') {
21
- set(newOne, 'spec.suspend', true);
22
- }
23
- return newOne;
24
- }
25
- resume() {
26
- const newOne = cloneDeep(this._rawYaml);
27
- if (this._rawYaml.kind === 'CronJob') {
28
- set(newOne, 'spec.suspend', false);
29
- }
30
- return newOne;
31
- }
32
- }
@@ -1,17 +0,0 @@
1
- import { WorkloadState } from '../constants';
2
- import { WorkloadModel } from './workload-model';
3
- export class DaemonSetModel extends WorkloadModel {
4
- _rawYaml;
5
- _globalStore;
6
- constructor(_rawYaml, _globalStore) {
7
- super(_rawYaml, _globalStore);
8
- this._rawYaml = _rawYaml;
9
- this._globalStore = _globalStore;
10
- }
11
- get stateDisplay() {
12
- if (this.status?.desiredNumberScheduled !== this.status?.numberReady) {
13
- return WorkloadState.UPDATEING;
14
- }
15
- return WorkloadState.READY;
16
- }
17
- }
@@ -1,17 +0,0 @@
1
- import { WorkloadState } from '../constants';
2
- import { WorkloadModel } from './workload-model';
3
- export class DeploymentModel extends WorkloadModel {
4
- _rawYaml;
5
- _globalStore;
6
- constructor(_rawYaml, _globalStore) {
7
- super(_rawYaml, _globalStore);
8
- this._rawYaml = _rawYaml;
9
- this._globalStore = _globalStore;
10
- }
11
- get stateDisplay() {
12
- if (this.spec?.replicas !== this.status?.readyReplicas) {
13
- return WorkloadState.UPDATEING;
14
- }
15
- return WorkloadState.READY;
16
- }
17
- }
@@ -1,11 +0,0 @@
1
- import { ResourceModel } from './resource-model';
2
- export class EventModel extends ResourceModel {
3
- _rawYaml;
4
- _globalStore;
5
- constructor(_rawYaml, _globalStore) {
6
- super(_rawYaml, _globalStore);
7
- this._rawYaml = _rawYaml;
8
- this._globalStore = _globalStore;
9
- this.id = _rawYaml.metadata.uid || _rawYaml.id;
10
- }
11
- }
@@ -1,14 +0,0 @@
1
- export * from './ingress-model';
2
- export * from './network-policy-model';
3
- export * from './job-model';
4
- export * from './workload-model';
5
- export * from './workload-base-model';
6
- export * from './pod-model';
7
- export * from './pod-metrics-model';
8
- export * from './resource-model';
9
- export * from './workload-model';
10
- export * from './cronjob-model';
11
- export * from './event-model';
12
- export * from './deployment-model';
13
- export * from './daemonset-model';
14
- export * from './statefulset-model';
@@ -1,24 +0,0 @@
1
- import { ResourceModel } from './resource-model';
2
- export class IngressModel extends ResourceModel {
3
- _rawYaml;
4
- _globalStore;
5
- flattenedRules;
6
- constructor(_rawYaml, _globalStore) {
7
- super(_rawYaml, _globalStore);
8
- this._rawYaml = _rawYaml;
9
- this._globalStore = _globalStore;
10
- this.flattenedRules =
11
- this._rawYaml.spec.rules?.reduce((res, rule) => {
12
- const paths = rule.http?.paths.map(p => {
13
- return {
14
- serviceName: p.backend.service?.name || '',
15
- fullPath: rule.host ? `${rule.host}${p.path}` : p.path || '',
16
- pathType: p.pathType,
17
- servicePort: p.backend.service?.port?.number,
18
- host: rule.host,
19
- };
20
- });
21
- return [...res, ...(paths || [])];
22
- }, []) || [];
23
- }
24
- }
@@ -1,56 +0,0 @@
1
- import { sumBy } from 'lodash';
2
- import { WorkloadState } from '../constants';
3
- import { matchSelector } from '../utils/match-selector';
4
- import { getSecondsDiff } from '../utils/time';
5
- import { WorkloadBaseModel } from './workload-base-model';
6
- export class JobModel extends WorkloadBaseModel {
7
- _rawYaml;
8
- _globalStore;
9
- restarts = 0;
10
- constructor(_rawYaml, _globalStore) {
11
- super(_rawYaml, _globalStore);
12
- this._rawYaml = _rawYaml;
13
- this._globalStore = _globalStore;
14
- }
15
- async init() {
16
- await this.getRestarts();
17
- }
18
- async getRestarts() {
19
- const pods = (await this._globalStore.get('pods', {
20
- resourceBasePath: '/api/v1',
21
- kind: 'Pod',
22
- }));
23
- const myPods = pods.items.filter(p => this.spec?.selector ? matchSelector(p, this.spec?.selector) : false);
24
- const result = sumBy(myPods, 'restartCount');
25
- this.restarts = result;
26
- }
27
- get duration() {
28
- const completionTime = this._rawYaml.status?.completionTime;
29
- const startTime = this._rawYaml.status?.startTime;
30
- if (!completionTime && startTime) {
31
- return getSecondsDiff(startTime, Date.now().toString());
32
- }
33
- if (completionTime && startTime) {
34
- return getSecondsDiff(startTime, completionTime);
35
- }
36
- return 0;
37
- }
38
- get completionsDisplay() {
39
- return `${this._rawYaml.status?.succeeded || 0}/${this._rawYaml.spec?.completions}`;
40
- }
41
- get stateDisplay() {
42
- if (!this.spec?.completions && !this.status?.succeeded) {
43
- return WorkloadState.RUNNING;
44
- }
45
- if (this.spec?.completions === this.status?.succeeded) {
46
- return WorkloadState.COMPLETED;
47
- }
48
- if (this.status?.conditions?.some(c => c.type === 'Failed' && c.status === 'True')) {
49
- return WorkloadState.FAILED;
50
- }
51
- if (this.status?.conditions?.some(c => c.type === 'Suspended' && c.status === 'True')) {
52
- return WorkloadState.SUSPENDED;
53
- }
54
- return WorkloadState.RUNNING;
55
- }
56
- }
@@ -1,10 +0,0 @@
1
- import { ResourceModel } from './resource-model';
2
- export class NetworkPolicyModel extends ResourceModel {
3
- _rawYaml;
4
- _globalStore;
5
- constructor(_rawYaml, _globalStore) {
6
- super(_rawYaml, _globalStore);
7
- this._rawYaml = _rawYaml;
8
- this._globalStore = _globalStore;
9
- }
10
- }
@@ -1,34 +0,0 @@
1
- import { formatSi, parseSi } from '../utils/unit';
2
- import { ResourceModel } from './resource-model';
3
- export class PodMetricsModel extends ResourceModel {
4
- _rawYaml;
5
- _globalStore;
6
- usage;
7
- constructor(_rawYaml, _globalStore) {
8
- super(_rawYaml, _globalStore);
9
- this._rawYaml = _rawYaml;
10
- this._globalStore = _globalStore;
11
- let cpuUsageNum = 0;
12
- let memoryUsageNum = 0;
13
- for (const container of _rawYaml.containers) {
14
- cpuUsageNum += parseSi(container.usage.cpu || '0');
15
- memoryUsageNum += parseSi(container.usage.memory || '0');
16
- }
17
- this.usage = {
18
- cpu: {
19
- value: cpuUsageNum,
20
- si: formatSi(1000 * cpuUsageNum, {
21
- suffix: 'm',
22
- maxPrecision: 0,
23
- }),
24
- },
25
- memory: {
26
- value: memoryUsageNum,
27
- si: formatSi(memoryUsageNum, {
28
- suffix: 'i',
29
- maxPrecision: 0,
30
- }),
31
- },
32
- };
33
- }
34
- }
@@ -1,78 +0,0 @@
1
- import { WorkloadState } from '../constants';
2
- import { shortenedImage } from '../utils/string';
3
- import { formatSi, parseSi } from '../utils/unit';
4
- import { WorkloadBaseModel } from './workload-base-model';
5
- export class PodModel extends WorkloadBaseModel {
6
- _rawYaml;
7
- _globalStore;
8
- request;
9
- limit;
10
- constructor(_rawYaml, _globalStore) {
11
- super(_rawYaml, _globalStore);
12
- this._rawYaml = _rawYaml;
13
- this._globalStore = _globalStore;
14
- let cpuRequestNum = 0;
15
- let memoryRequestNum = 0;
16
- let cpuLimitNum = 0;
17
- let memoryLimitNum = 0;
18
- for (const container of _rawYaml.spec?.containers || []) {
19
- cpuRequestNum += parseSi(container.resources?.requests?.cpu || '0');
20
- memoryRequestNum += parseSi(container.resources?.requests?.memory || '0');
21
- cpuLimitNum += parseSi(container.resources?.limits?.cpu || '0');
22
- memoryLimitNum += parseSi(container.resources?.limits?.memory || '0');
23
- }
24
- this.request = {
25
- cpu: {
26
- value: cpuRequestNum,
27
- si: formatSi(cpuRequestNum, {
28
- suffix: 'm',
29
- }),
30
- },
31
- memory: {
32
- value: memoryRequestNum,
33
- si: formatSi(memoryRequestNum, {
34
- suffix: 'i',
35
- }),
36
- },
37
- };
38
- this.limit = {
39
- cpu: {
40
- value: cpuLimitNum,
41
- si: formatSi(cpuLimitNum, {
42
- suffix: 'm',
43
- }),
44
- },
45
- memory: {
46
- value: memoryLimitNum,
47
- si: formatSi(memoryLimitNum, {
48
- suffix: 'i',
49
- }),
50
- },
51
- };
52
- }
53
- get imageNames() {
54
- return (this._rawYaml.spec?.containers.map(container => shortenedImage(container.image || '')) || []);
55
- }
56
- get restartCount() {
57
- if (this._rawYaml.status?.containerStatuses) {
58
- return this._rawYaml.status?.containerStatuses[0].restartCount || 0;
59
- }
60
- return 0;
61
- }
62
- get readyDisplay() {
63
- return `${this._rawYaml.status?.containerStatuses?.filter(c => c.ready).length}/${this
64
- ._rawYaml.spec?.containers.length}`;
65
- }
66
- get readyContainerCount() {
67
- return this._rawYaml.status?.containerStatuses?.filter(c => c.ready).length;
68
- }
69
- get containerCount() {
70
- return this._rawYaml.spec?.containers.length;
71
- }
72
- get stateDisplay() {
73
- if (this.metadata.deletionTimestamp) {
74
- return WorkloadState.TERMINATING;
75
- }
76
- return this.status?.phase?.toLowerCase() || WorkloadState.UNKNOWN;
77
- }
78
- }
@@ -1,34 +0,0 @@
1
- export class ResourceModel {
2
- _rawYaml;
3
- _globalStore;
4
- id;
5
- apiVersion;
6
- kind;
7
- metadata;
8
- constructor(_rawYaml, _globalStore) {
9
- this._rawYaml = _rawYaml;
10
- this._globalStore = _globalStore;
11
- Object.keys(_rawYaml).forEach(key => {
12
- Object.defineProperty(this, key, {
13
- value: _rawYaml[key],
14
- });
15
- });
16
- }
17
- // eslint-disable-next-line @typescript-eslint/no-empty-function
18
- async init() { }
19
- get name() {
20
- return this._rawYaml.metadata?.name;
21
- }
22
- get namespace() {
23
- return this._rawYaml.metadata?.namespace;
24
- }
25
- get labels() {
26
- return this._rawYaml.metadata?.labels;
27
- }
28
- get annotations() {
29
- return this._rawYaml.metadata?.annotations;
30
- }
31
- restore() {
32
- return this._rawYaml;
33
- }
34
- }
@@ -1,10 +0,0 @@
1
- import { GlobalStore, Unstructured } from 'k8s-api-provider';
2
- import { ResourceModel } from './resource-model';
3
- type ServerInstanceTypes = Required<Unstructured>;
4
- export declare class ServerInstanceModel extends ResourceModel<ServerInstanceTypes> {
5
- _rawYaml: ServerInstanceTypes;
6
- _globalStore: GlobalStore;
7
- sshMethod: 'password' | 'privateKey';
8
- constructor(_rawYaml: ServerInstanceTypes, _globalStore: GlobalStore);
9
- }
10
- export {};