| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- import * as R from 'ramda'
- import i18n from '@/locales'
- import { getI18n } from '@/utils/i18n'
- export const isRequiredData = (data, keys) => {
- if (!data || R.type(data) !== 'Object' || R.isEmpty(data)) {
- return false
- }
- if (!keys || R.isEmpty(keys)) {
- return !!data
- }
- const fn = {
- Array: () => {
- for (let i = 0; i < keys.length; i++) {
- // 没有发现data中存在 当前循环中的k
- if (!data[keys[i]]) {
- return false
- }
- }
- return true
- },
- Object: () => {
- for (const k in keys) {
- const v = keys[k]
- // 没有发现data中存在 当前循环中的k
- if (!data[k]) {
- return false
- }
- // 没有发现data存在当前循环的k, 但是value不一致
- if (data[k] && data[k] !== v) {
- return false
- }
- }
- return true
- },
- }
- const keyType = R.type(keys)
- return fn[keyType] && fn[keyType]()
- }
- function isInstanceSupportSecgroup (obj, service, supportProviders) {
- const brand = obj.brand ? obj.brand : obj.hypervisor
- if (!supportProviders.includes(brand)) {
- return {
- validate: false,
- tooltip: i18n.t('db.action_diable_tooltip', [getI18n(`cloudPrvidersMap.${brand}`, brand)]),
- }
- }
- if (brand === 'Qcloud' && service === 'rds' && obj.category === 'basic') {
- return {
- validate: false,
- tooltip: i18n.t('db.secgroup.action_diable_tooltip', [getI18n(`cloudPrvidersMap.${brand}`, brand)]),
- }
- }
- return null
- }
- export const checkSecgroup = (val, service = 'rds', supportProviders = ['Huawei', 'Qcloud', 'Aliyun', 'HCS']) => {
- let objs = val
- if (!Array.isArray(val)) {
- objs = [val]
- }
- const errorMsgs = []
- objs.forEach(obj => {
- const ret = isInstanceSupportSecgroup(obj, service, supportProviders)
- if (ret) {
- errorMsgs.push(ret)
- }
- })
- if (errorMsgs.length > 0) {
- return errorMsgs[0]
- }
- return {
- validate: true,
- }
- }
|