Skip to content

Latest commit

 

History

History
384 lines (374 loc) · 21.2 KB

2-catalog-introduction.md

File metadata and controls

384 lines (374 loc) · 21.2 KB

简体中文 | English

一级目录简介

  • Gruntfile.js:用于收集 i18n
  • LICENSE: 该项目使用 Apache License
  • Makefile:
  • README-zh_CN.rst: 前端启动的简单中文说明,详细信息请参考 docs 文档
  • config目录: webpack 配置,其内包含公用、开发环境、测试环境、生成环境下的 webpack 配置
  • cypress.json: e2e 测试的配置文件
  • docker: 内含开发环境、生成环境、测试环境使用的 docker 配置
  • docs目录: 文档介绍,包含中文、英文、开发说明文档、测试说明文档
  • jest.config.js: 单元测试的配置文件
  • jsconfig.json: js 代码的配置文件
  • package.json: 安装包、命令等配置文件
  • yarn.lock: 包的版本锁定文件
  • .babelrc: babel 配置文件
  • .dockerignore: docker 忽略的文件配置
  • .eslintignore: eslint 忽略的文件配置
  • .eslint: eslint 配置
  • .gitignore: git 忽略的文件配置
  • .gitreview: gitreview 配置
  • .prettierignore: prettier 忽略的文件配置
  • .prettierrc: prettier 的配置
  • src目录: 开发代码所在文件夹!!!
  • test目录: 测试代码所在文件夹!!!包含 e2e 测试代码及单元测试的基础代码
  • tools目录: 其他工具文件夹,内含 git 工具

src 目录介绍

  • src/components目录:公共组件
  • src/api目录:API,暂未使用
  • src/asset目录:images, template 等静态文件
  • src/containers目录:
  • src/core目录:
    • index.js: 入口文件
    • routes.js: 按模块的路由配置
    • i18n.js
    • App.jsx
  • src/layouts目录:
    • 定义所有整体页面布局的组件
      • 空白布局 BlankLayout
      • 登录页使用的布局 UserLayout
      • 内容页使用的布局 BaseLayout(列表、详情、表单等使用)
    • menu.jsx: 控制台使用的菜单配置
    • admin-menu.jsx: 管理平台使用的菜单配置
  • src/locales目录: i18n
  • src/resources目录:
    • 定义各资源被公用的状态 / 搜索项
    • 定义各资源被公用的表格列
    • 定义各资源的复用函数
  • src/stores目录:
    • 对资源的数据获取、操作等
    • 按照资源名小写字母加连字符命名
    • 目录分为两级:例如 nova/instances.js, cinder/volume.js
  • src/utils目录:
    • 公共函数(时间处理、正则、cookie、localStorage、......)
    • 对应的单元测试,以 test.js 或 spec.js 结尾
  • src/styles目录: 基础样式、公用样式、样式变量等
  • src/pages目录:
    • 按照页面层级结构递进(按照:菜单项--二级菜单)
    • 所有目录命名均为小写加连字符命名, 目录包含两个文件夹 containersrouters, 一个文件 App.js
    • containers下存放二级目录对应的页面
    • routes用于配置路由

src/pages 目录介绍

  • 以一级、二级菜单划分目录,一级菜单列在src/pages下,其对应的二级菜单页面位于src/pages/xxx/containers下,以“计算-云主机”为例,“计算”对应于src/pages/compute目录,“云主机”对应于src/pages/compute/containers/Instance目录
  • src/pages/compute/containers/Instance/index.jsx: 云主机列表页,继承于BaseList 组件(带有 Tab 的页面,继承 TabBaseList 组件即可)
  • src/pages/compute/containers/Instance/Detail目录
  • src/pages/compute/containers/Instance/actions目录
  • src/pages/compute/routes目录:
    • index.js,配置路由
    • 约定以路由中是否含有“-admin”来判定是管理平台还是控制台

test 目录介绍

简体中文 | English

目录简介-图像版

.
├── Gruntfile.js (用于收集i18n)
├── LICENSE
├── Makefile
├── README.rst
├── config
│   ├── config.yaml (开发时 host, port, server 的默认配置)
│   ├── local_config.yaml (gitignore的文件,可配置实际开发时使用的 host/port/server,如实际使用的值与config.yaml中的默认值不一致,在该文件中修改即可)
│   ├── server.dev.js (读取开发时使用的自定义配置信息)
│   ├── utils.js
│   ├── theme.js
│   ├── webpack.common.js
│   ├── webpack.dev.js  (开发时使用的webpack配置)
│   ├── webpack.e2e.js  (e2e测试时使用的webpack配置,能生成用于检测覆盖率的包)
│   └── webpack.prod.js (生成环境使用的webpack打包配置)
├── cypress.json    (e2e的配置)
├── docker
│   ├── dev.dockerfile
│   ├── nginx.conf
│   ├── prod.dockerfile
│   └── test.dockerfile
├── docs    (文档)
├── jest.config.js  (单元测试配置)
├── jsconfig.json
├── package.json
├── src
│   ├── api (api汇总,暂未使用)
│   ├── asset
│   │   ├── image   (图片放置位置)
│   │   └── template
│   │       └── index.html
│   ├── components  (公用组件)
│   ├── containers
│   │   ├── Action
│   │   │   ├── ConfirmAction   (确认型的action基类)
│   │   │   ├── FormAction   (单页的action基类)
│   │   │   ├── ModalAction   (弹窗型的action基类)
│   │   │   ├── StepAction   (分多步的单页action,例如:创建云主机)
│   │   │   └── index.jsx
│   │   ├── BaseDetail  (带有详情信息的详情页基类)
│   │   ├── List    (列表页的基类,例如:云主机)
│   │   ├── TabDetail   (带有tab切换的详情页的基类,例如:云主机详情)
│   │   └── TabList (带有tab切换的列表页)
│   ├── core
│   │   ├── App.jsx
│   │   ├── i18n.js
│   │   ├── index.jsx   (入口)
│   │   └── routes.js   (按模块的路由配置)
│   ├── layouts
│   │   ├── Base    (登录后使用的布局)
│   │   ├── Blank    (空白布局)
│   │   ├── User    (登录使用的布局)
│   │   ├── admin-menu.jsx  (管理平台使用的菜单配置)
│   │   └── menu.jsx    (控制台使用的菜单配置)
│   ├── locales (翻译)
│   │   ├── en.json
│   │   ├── index.js
│   │   └── zh.json
│   ├── pages   (页面-目录结构按照:菜单项--二级菜单 分配,其中二级菜单的页面放在containers文件夹下)
│   │   ├── base
│   │   │   ├── App.jsx
│   │   │   ├── containers
│   │   │   │   ├── 404 (404页面)
│   │   │   │   │   └── index.jsx
│   │   │   │   ├── AdminOverview   (管理平台首页)
│   │   │   │   │   ├── components
│   │   │   │   │   │   ├── ComputeService.jsx
│   │   │   │   │   │   ├── NetworkService.jsx
│   │   │   │   │   │   ├── PlatformInfo.jsx
│   │   │   │   │   │   ├── ResourceOverview.jsx
│   │   │   │   │   │   └── VirtualResource.jsx
│   │   │   │   │   ├── index.jsx
│   │   │   │   │   └── style.less
│   │   │   │   └── Overview   (控制台首页)
│   │   │   │       ├── components
│   │   │   │       │   ├── ProjectInfo.jsx
│   │   │   │       │   ├── QuotaOverview.jsx
│   │   │   │       │   └── ResourceStatistic.jsx
│   │   │   │       ├── index.jsx
│   │   │   │       └── style.less
│   │   │   └── routes  (路由配置)
│   │   │       └── index.js
│   │   ├── compute
│   │   │   ├── App.jsx
│   │   │   ├── containers
│   │   │   │   ├── BareMetalNode   (裸机配置)
│   │   │   │   ├── Flavor  (云主机类型)
│   │   │   │   ├── HostAggregate   (主机集合)
│   │   │   │   │   ├── Aggregate   (主机集合)
│   │   │   │   │   ├── AvailabilityZone    (可用域)
│   │   │   │   │   └── index.jsx
│   │   │   │   ├── Hypervisors (虚拟机管理器)
│   │   │   │   │   ├── ComputeHost (计算节点)
│   │   │   │   │   ├── Hypervisor  (虚拟机管理器)
│   │   │   │   │   └── index.jsx
│   │   │   │   ├── Image   (镜像)
│   │   │   │   ├── Instance    (云主机)
│   │   │   │   │   ├── Detail  (详情页)
│   │   │   │   │   │   ├── BaseDetail  (基础信息)
│   │   │   │   │   │   ├── SecurityGroup   (安全组)
│   │   │   │   │   │   └── index.jsx
│   │   │   │   │   ├── actions (操作)
│   │   │   │   │   │   ├── AssociateFip.jsx    (绑定浮动IP)
│   │   │   │   │   │   ├── AttachInterface.jsx (挂载网卡)
│   │   │   │   │   │   ├── AttachIsoVolume.jsx (挂载ISO光盘)
│   │   │   │   │   │   ├── AttachVolume.jsx (挂载云硬盘)
│   │   │   │   │   │   ├── ChangePassword.jsx  (修改密码)
│   │   │   │   │   │   ├── Console.jsx (控制台)
│   │   │   │   │   │   ├── CreateImage.jsx (创建镜像)
│   │   │   │   │   │   ├── CreateIronic    (创建裸机-分步型Form)
│   │   │   │   │   │   │   ├── BaseStep
│   │   │   │   │   │   │   │   └── index.jsx
│   │   │   │   │   │   │   ├── ConfirmStep
│   │   │   │   │   │   │   │   └── index.jsx
│   │   │   │   │   │   │   ├── NetworkStep
│   │   │   │   │   │   │   │   └── index.jsx
│   │   │   │   │   │   │   ├── SystemStep
│   │   │   │   │   │   │   │   └── index.jsx
│   │   │   │   │   │   │   ├── index.jsx
│   │   │   │   │   │   │   └── index.less
│   │   │   │   │   │   ├── CreateSnapshot.jsx  (创建快照)
│   │   │   │   │   │   ├── Delete.jsx  (删除云主机)
│   │   │   │   │   │   ├── DeleteIronic.jsx    (删除裸机实例)
│   │   │   │   │   │   ├── DetachInterface.jsx (卸载网卡)
│   │   │   │   │   │   ├── DetachIsoVolume.jsx (卸载ISO镜像)
│   │   │   │   │   │   ├── DetachVolume.jsx    (卸载云硬盘)
│   │   │   │   │   │   ├── DisassociateFip.jsx (解绑浮动IP)
│   │   │   │   │   │   ├── Edit.jsx    (编辑云主机)
│   │   │   │   │   │   ├── ExtendRootVolume.jsx    (扩容根磁盘)
│   │   │   │   │   │   ├── LiveMigrate.jsx (热迁移)
│   │   │   │   │   │   ├── Lock.jsx    (锁定云主机)
│   │   │   │   │   │   ├── ManageSecurityGroup.jsx (管理安全组)
│   │   │   │   │   │   ├── Migrate.jsx (迁移)
│   │   │   │   │   │   ├── Pause.jsx   (暂停云主机)
│   │   │   │   │   │   ├── Reboot.jsx  (重启云主机)
│   │   │   │   │   │   ├── Rebuild.jsx (重建云主机)
│   │   │   │   │   │   ├── RebuildSelect.jsx   (选镜像重建云主机)
│   │   │   │   │   │   ├── Resize.jsx  (修改配置)
│   │   │   │   │   │   ├── ResizeOnline.jsx    (在线修改配置)
│   │   │   │   │   │   ├── Resume.jsx  (恢复云主机)
│   │   │   │   │   │   ├── Shelve.jsx  (归档云主机)
│   │   │   │   │   │   ├── SoftDelete.jsx  (软删除云主机)
│   │   │   │   │   │   ├── SoftReboot.jsx  (软重启云主机)
│   │   │   │   │   │   ├── Start.jsx   (启动云主机)
│   │   │   │   │   │   ├── StepCreate  (创建云主机-分步创建)
│   │   │   │   │   │   │   ├── BaseStep
│   │   │   │   │   │   │   │   └── index.jsx
│   │   │   │   │   │   │   ├── ConfirmStep
│   │   │   │   │   │   │   │   └── index.jsx
│   │   │   │   │   │   │   ├── NetworkStep
│   │   │   │   │   │   │   │   └── index.jsx
│   │   │   │   │   │   │   ├── SystemStep
│   │   │   │   │   │   │   │   └── index.jsx
│   │   │   │   │   │   │   ├── index.jsx
│   │   │   │   │   │   │   └── index.less
│   │   │   │   │   │   ├── Stop.jsx    (关闭云主机)
│   │   │   │   │   │   ├── Suspend.jsx (挂起云主机)
│   │   │   │   │   │   ├── Unlock.jsx  (解锁云主机)
│   │   │   │   │   │   ├── Unpause.jsx (恢复暂停的云主机)
│   │   │   │   │   │   ├── Unshelve.jsx    (恢复归档的云主机)
│   │   │   │   │   │   ├── index.jsx
│   │   │   │   │   │   └── index.less
│   │   │   │   │   ├── components  (组件)
│   │   │   │   │   │   ├── FlavorSelectTable.jsx
│   │   │   │   │   │   └── index.less
│   │   │   │   │   ├── index.jsx
│   │   │   │   │   └── index.less
│   │   │   │   ├── Keypair (密钥)
│   │   │   │   └── ServerGroup (云主机组)
│   │   │   └── routes  (计算菜单下的路由配置)
│   │   │       └── index.js
│   │   ├── configuration   (平台配置)
│   │   │   ├── App.jsx
│   │   │   ├── containers
│   │   │   │   ├── Metadata    (元数据定义)
│   │   │   │   ├── Setting (系统配置)
│   │   │   │   └── SystemInfo  (系统信息)
│   │   │   └── routes  (平台配置菜单下的路由配置)
│   │   │       └── index.js
│   │   ├── heat    (资源编排)
│   │   │   ├── App.jsx
│   │   │   ├── containers
│   │   │   │   └── Stack   (堆栈)
│   │   │   └── routes  (资源编排菜单下的路由配置)
│   │   │       └── index.js
│   │   ├── identity    (身份管理)
│   │   │   ├── App.jsx
│   │   │   ├── containers
│   │   │   │   ├── Domain  (域)
│   │   │   │   ├── Project (项目)
│   │   │   │   ├── Role    (角色)
│   │   │   │   ├── User    (用户)
│   │   │   │   └── UserGroup   (用户组)
│   │   │   └── routes  (路由配置)
│   │   │       └── index.js
│   │   ├── management  (运维管理)
│   │   │   ├── App.jsx
│   │   │   ├── containers
│   │   │   │   └── RecycleBin  (回收站)
│   │   │   └── routes  (路由配置)
│   │   │       └── index.js
│   │   ├── network (网络)
│   │   │   ├── App.jsx
│   │   │   ├── containers
│   │   │   │   ├── FloatingIp  (浮动IP)
│   │   │   │   ├── LoadBalancers   (负载均衡)
│   │   │   │   ├── Network (网络)
│   │   │   │   ├── QoSPolicy   (Qos策略)
│   │   │   │   ├── Router  (路由器)
│   │   │   │   ├── SecurityGroup   (安全组)
│   │   │   │   ├── Topology    (网络拓扑)
│   │   │   │   ├── VPN (VPN)
│   │   │   │   └── VirtualAdapter  (虚拟网卡)
│   │   │   └── routes  (路由配置)
│   │   │       └── index.js
│   │   ├── storage (存储)
│   │   │   ├── App.jsx
│   │   │   ├── containers
│   │   │   │   ├── Backup  (备份)
│   │   │   │   ├── Snapshot    (云硬盘快照)
│   │   │   │   ├── Storage (存储后端)
│   │   │   │   ├── Volume  (云硬盘)
│   │   │   │   └── VolumeType  (云硬盘类型)
│   │   │   │       ├── QosSpec (QoS)
│   │   │   │       ├── VolumeType  (云硬盘类型)
│   │   │   │       └── index.jsx
│   │   │   └── routes  ()
│   │   │       └── index.js
│   │   └── user    (登录页面)
│   │       ├── App.jsx
│   │       ├── containers
│   │       │   ├── ChangePassword  (修改密码--根据系统配置)
│   │       │   │   ├── index.jsx
│   │       │   │   └── index.less
│   │       │   └── Login   (登录)
│   │       │       ├── index.jsx
│   │       │       └── index.less
│   │       └── routes  (路由配置)
│   │           └── index.js
│   ├── resources   (存放各资源的自身使用的公用函数,状态等)
│   ├── stores  (数据处理,按资源类型划分文件夹)
│   │   ├── base-list.js    (列表数据的基类)
│   │   ├── base.js (数据操作的基类)
│   │   ├── cinder
│   │   ├── glance
│   │   ├── heat
│   │   ├── ironic
│   │   ├── keystone
│   │   ├── neutron
│   │   ├── nova
│   │   ├── octavia
│   │   ├── overview-admin.js
│   │   ├── project.js
│   │   ├── root.js
│   │   └── skyline
│   ├── styles  (公用样式)
│   │   ├── base.less
│   │   ├── main.less
│   │   ├── reset.less
│   │   └── variables.less
│   └── utils   (基础函数)
│       ├── RouterConfig.jsx
│       ├── constants.js
│       ├── cookie.js
│       ├── file.js
│       ├── file.spec.js
│       ├── index.js
│       ├── index.test.js   (单元测试)
│       ├── local-storage.js
│       ├── local-storage.spec.js   (单元测试)
│       ├── request.js
│       ├── table.jsx
│       ├── time.js
│       ├── time.spec.js
│       ├── translate.js
│       ├── translate.spec.js
│       ├── validate.js
│       ├── yaml.js
│       └── yaml.spec.js
├── test
│   ├── e2e (E2E测试)
│   └── unit (单元测试)
├── tools
│   └── git_config
│       └── commit_message.txt
└── yarn.lock