Skip to content

Commit

Permalink
fix: Fix some issues
Browse files Browse the repository at this point in the history
  • Loading branch information
leoliu committed Jul 5, 2020
1 parent 65d9d8e commit 1689ded
Show file tree
Hide file tree
Showing 26 changed files with 194 additions and 250 deletions.
2 changes: 1 addition & 1 deletion server/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,7 @@ client:

# preset infos
presetUsers: [admin, sonarqube]
presetGlobalRoles: [platform-admin, platform-regular, workspace-manager, user-manager]
presetGlobalRoles: [platform-admin, platform-regular, workspaces-manager, users-manager]
presetClusterRoles: [cluster-admin, cluster-viewer]
presetWorkspaceRoles: [admin, regular, viewer, self-provisioner]
presetDevOpsRoles: [admin, operator, viewer]
Expand Down
1 change: 0 additions & 1 deletion src/actions/resource.delete.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ export default {
'resource.batch.delete': {
on({ store, success, rowKey, ...props }) {
const { data, selectedRowKeys } = store.list

const selectNames = data
.filter(item => selectedRowKeys.includes(item[rowKey]))
.map(item => item.name)
Expand Down
35 changes: 34 additions & 1 deletion src/actions/service.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
* along with KubeSphere Console. If not, see <https://www.gnu.org/licenses/>.
*/

import { get, isEmpty } from 'lodash'
import { get, isEmpty, set } from 'lodash'
import { toJS } from 'mobx'
import { Modal, Notify } from 'components/Base'

Expand All @@ -26,6 +26,7 @@ import EditServiceModal from 'projects/components/Modals/ServiceSetting'
import EditGatewayModal from 'projects/components/Modals/ServiceGatewaySetting'
import DeleteModal from 'projects/components/Modals/ServiceDelete'
import { MODULE_KIND_MAP } from 'utils/constants'
import { getOverrides } from 'utils/cluster'
import formPersist from 'utils/form.persist'
import FORM_TEMPLATES from 'utils/form.templates'
import FORM_STEPS from 'configs/steps/services'
Expand Down Expand Up @@ -135,6 +136,38 @@ export default {
})
},
},
'fedservice.gateway.edit': {
on({ store, cluster, detail, resources, success, ...props }) {
const modal = Modal.open({
onOk: newObject => {
const { name, namespace, template, overrides } = detail
const data = {}
let override = overrides.find(od => od.clusterName === cluster)
if (!override) {
override = {
clusterName: cluster,
clusterOverrides: [],
}
overrides.push(override)
}

const keys = ['metadata.annotations', 'spec.type', 'spec.ports']
override.clusterOverrides = getOverrides(template, newObject, keys)
set(data, 'spec.overrides', overrides)

store.patch({ name, namespace }, data).then(() => {
Modal.close(modal)
Notify.success({ content: `${t('Updated Successfully')}!` })
success && success()
})
},
modal: EditGatewayModal,
detail: get(resources, `${cluster}._originData`),
store,
...props,
})
},
},
'service.delete': {
on({ store, detail, success, ...props }) {
const modal = Modal.open({
Expand Down
2 changes: 1 addition & 1 deletion src/components/Cards/RankTable/NodeTable/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ export default class NodeUsageRank extends React.Component {
<span className={styles.label}>Master</span>
)}
</h3>
<p>{get(node, 'node_ip', '-')}</p>
<p>{get(node, 'host_ip', '-')}</p>
</div>
),
},
Expand Down
32 changes: 20 additions & 12 deletions src/components/Forms/Service/AdvanceSettings/Metadata/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,27 +16,35 @@
* along with KubeSphere Console. If not, see <https://www.gnu.org/licenses/>.
*/

import { get, debounce, isEmpty, isUndefined } from 'lodash'
import { get, debounce, isEmpty, isUndefined, set } from 'lodash'
import React from 'react'
import { Form } from 'components/Base'
import { PropertiesInput } from 'components/Inputs'
import { isValidLabel, updateLabels } from 'utils'

export default class Metadata extends React.Component {
get fedFormTemplate() {
return get(
this.props.formTemplate.workload,
this.props.isFederated ? 'spec.template' : ''
)
}

get fedPreifx() {
get fedPrefix() {
return this.props.isFederated ? 'spec.template.' : ''
}

handleLabelsChange = debounce(value => {
const { module, onLabelsChange } = this.props
updateLabels(this.fedFormTemplate, module, value)
const {
module,
kind,
isFederated,
formTemplate,
onLabelsChange,
} = this.props

const template = isFederated
? get(formTemplate[kind], 'spec.template')
: formTemplate[kind]
updateLabels(template, module, value)

if (isFederated) {
set(formTemplate[kind], 'metadata.labels', value)
}

onLabelsChange && onLabelsChange(value)
}, 200)

Expand Down Expand Up @@ -78,7 +86,7 @@ export default class Metadata extends React.Component {
]}
>
<PropertiesInput
name={`${kind}.${this.fedPreifx}metadata.labels`}
name={`${kind}.${this.fedPrefix}metadata.labels`}
addText={t('Add Label')}
onChange={this.handleLabelsChange}
readOnlyKeys={['app']}
Expand Down
3 changes: 2 additions & 1 deletion src/components/Forms/Service/AdvanceSettings/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export default class AdvancedSettings extends React.Component {
return get(this.props.formTemplate, 'Service.metadata.namespace')
}

get fedPreifx() {
get fedPrefix() {
return this.props.isFederated ? 'spec.template.' : ''
}

Expand All @@ -46,6 +46,7 @@ export default class AdvancedSettings extends React.Component {
if (!noWorkload) {
set(formTemplate, `Service.${this.fedPrefix}spec.selector`, labels)
set(formTemplate, `Service.${this.fedPrefix}metadata.labels`, labels)
set(formTemplate, `Service.metadata.labels`, labels)
}
}

Expand Down
127 changes: 14 additions & 113 deletions src/components/Forms/Service/BaseInfo/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,11 @@
* along with KubeSphere Console. If not, see <https://www.gnu.org/licenses/>.
*/

import { get, set, debounce, isEmpty } from 'lodash'
import { get, set, debounce } from 'lodash'
import React from 'react'
import { observer } from 'mobx-react'
import { Columns, Column, Input, Select, TextArea } from '@pitrix/lego-ui'
import { Columns, Column, Input, TextArea } from '@pitrix/lego-ui'
import { Form } from 'components/Base'
import ToggleView from 'components/ToggleView'
import { updateLabels, updateFederatedAnnotations, generateId } from 'utils'
import { ProjectSelect } from 'components/Inputs'

Expand All @@ -32,25 +31,22 @@ import {
} from 'utils/constants'

import ServiceStore from 'stores/service'
import ApplicationStore from 'stores/application/crd'
import FederatedStore from 'stores/federated'

@observer
export default class ServiceBaseInfo extends React.Component {
store = new ServiceStore()
constructor(props) {
super(props)

appStore = new ApplicationStore()

state = {
showServiceMesh: false,
selectApp: {},
}
this.state = {
showServiceMesh: false,
selectApp: {},
}

componentDidMount() {
this.appStore.fetchList({
namespace: this.namespace,
cluster: this.props.cluster,
limit: Infinity,
})
this.store = new ServiceStore()
if (props.isFederated) {
this.store = new FederatedStore(this.store)
}
}

formTemplate = this.props.formTemplate.Service
Expand All @@ -75,20 +71,6 @@ export default class ServiceBaseInfo extends React.Component {
]
}

get applications() {
return [
{
label: t('Not Associate'),
value: '',
},
...this.appStore.list.data.map(app => ({
app,
label: app.name,
value: app.name,
})),
]
}

handleNameChange = value => {
const { isFederated, noWorkload } = this.props

Expand Down Expand Up @@ -174,32 +156,6 @@ export default class ServiceBaseInfo extends React.Component {
}
}, 200)

handleServiceMeshChange = value => {
const { formTemplate, noWorkload } = this.props

if (!noWorkload) {
set(
formTemplate[this.workloadKind],
'metadata.annotations["servicemesh.kubesphere.io/enabled"]',
value
)
if (this.props.isFederated) {
updateFederatedAnnotations(formTemplate[this.workloadKind])
}
}

if (this.props.isFederated) {
updateFederatedAnnotations(this.formTemplate)
}
}

handleAppChange = (value, option) => {
this.setState({
showServiceMesh: !!value,
selectApp: (option.find(item => item.value === value) || {}).app || {},
})
}

nameValidator = (rule, value, callback) => {
if (!value) {
return callback()
Expand All @@ -220,8 +176,7 @@ export default class ServiceBaseInfo extends React.Component {
}

render() {
const { formRef, noWorkload, noApp } = this.props
const { showServiceMesh, selectApp } = this.state
const { formRef } = this.props

return (
<Form data={this.formTemplate} ref={formRef}>
Expand Down Expand Up @@ -280,60 +235,6 @@ export default class ServiceBaseInfo extends React.Component {
</Form.Item>
</Column>
</Columns>
{!noApp && (
<ToggleView>
<div className="margin-t8">
<Columns>
<Column>
<Form.Item
label={t('Associated Application')}
desc={t('SERVICE_NAME_DESC')}
>
<Select
name="metadata.labels['app.kubernetes.io/name']"
onChange={this.handleAppChange}
options={this.applications}
loading={this.appStore.list.isLoading}
defaultValue=""
/>
</Form.Item>
</Column>
{!isEmpty(selectApp) && (
<Column>
<Form.Item label={t('Version')}>
<Input name="metadata.labels.version" defaultValue="v1" />
</Form.Item>
</Column>
)}
</Columns>
{!noWorkload && showServiceMesh && (
<Columns>
<Column>
<Form.Item
label={t('Service Mesh')}
desc={
!selectApp.serviceMeshEnable
? t('Application governance is not enabled')
: ''
}
>
<Select
name="metadata.annotations['servicemesh.kubesphere.io/enabled']"
options={this.serviceMeshOptions}
onChange={this.handleServiceMeshChange}
defaultValue={
selectApp.serviceMeshEnable ? 'true' : 'false'
}
disabled={!selectApp.serviceMeshEnable}
/>
</Form.Item>
</Column>
<Column />
</Columns>
)}
</div>
</ToggleView>
)}
</Form>
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
* along with KubeSphere Console. If not, see <https://www.gnu.org/licenses/>.
*/

import { isEmpty } from 'lodash'
import React from 'react'
import PropTypes from 'prop-types'
import classNames from 'classnames'
Expand Down Expand Up @@ -73,37 +72,6 @@ export default class ContaineForm extends React.Component {
)
}

handleSubmit = callback => {
const { onSave } = this.props
const form = this.formRef.current

form &&
form.validate(() => {
const data = form.getData()

if (data.args) {
data.args = data.args.filter(item => !isEmpty(item))
}

if (data.command) {
data.command = data.command.filter(item => !isEmpty(item))
}

if (data.env) {
data.env = data.env.filter(({ name }) => !isEmpty(name))
}

if (data.ports) {
data.ports = data.ports.filter(
item => !(!item.name && !item.containerPort && !item.hostPort)
)
}

onSave(data)
callback && callback()
})
}

render() {
const {
className,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,9 +156,7 @@ export default class ContainerSetting extends React.Component {
return (
<Form.Group
label={t('Container Settings')}
desc={t(
'Please set the container name and computing resources.'
)}
desc={t('Please set the container name and computing resources.')}
noWrapper
>
<Form.Item
Expand Down
Loading

0 comments on commit 1689ded

Please sign in to comment.