|
@@ -1,5 +1,5 @@
|
|
|
import React, {Component} from 'react';
|
|
import React, {Component} from 'react';
|
|
|
-import { Link } from 'react-router-dom';
|
|
|
|
|
|
|
+import {Link} from 'react-router-dom';
|
|
|
import {deployAll, graphqlUrl, storeFile} from "../../../config";
|
|
import {deployAll, graphqlUrl, storeFile} from "../../../config";
|
|
|
import {ADD_APIGROUP, ADD_APIGWPATH, ADD_DEPLOY, ADD_PROJECT, SHOW_CLOUD} from "../../../gql";
|
|
import {ADD_APIGROUP, ADD_APIGWPATH, ADD_DEPLOY, ADD_PROJECT, SHOW_CLOUD} from "../../../gql";
|
|
|
import {CloudConfig} from "../../../login/CloudConfig";
|
|
import {CloudConfig} from "../../../login/CloudConfig";
|
|
@@ -24,6 +24,7 @@ class UserCustom extends Component {
|
|
|
dbKind: 'fc-db', // mongodb fc-db
|
|
dbKind: 'fc-db', // mongodb fc-db
|
|
|
check: 0,
|
|
check: 0,
|
|
|
disableDeployButton: false,
|
|
disableDeployButton: false,
|
|
|
|
|
+ deployFailed: false
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
this.cloudState = {
|
|
this.cloudState = {
|
|
@@ -196,6 +197,9 @@ class UserCustom extends Component {
|
|
|
});
|
|
});
|
|
|
} else {
|
|
} else {
|
|
|
console.log('deployAll 失败');
|
|
console.log('deployAll 失败');
|
|
|
|
|
+ _this.setState({
|
|
|
|
|
+ deployFailed: true
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
})
|
|
})
|
|
@@ -214,7 +218,7 @@ class UserCustom extends Component {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
render() {
|
|
render() {
|
|
|
- let {cloudName, customName, disableDeployButton, userID, check, dbKind, bucketName} = this.state;
|
|
|
|
|
|
|
+ let {cloudName, customName, disableDeployButton, userID, check, dbKind, bucketName, deployFailed} = this.state;
|
|
|
let {appId, secretID, secretKey} = this.cloudState;
|
|
let {appId, secretID, secretKey} = this.cloudState;
|
|
|
return (
|
|
return (
|
|
|
<div>
|
|
<div>
|
|
@@ -240,6 +244,7 @@ class UserCustom extends Component {
|
|
|
<div style={{marginTop: 20}}>
|
|
<div style={{marginTop: 20}}>
|
|
|
<div className={'schema-name'}><FormattedMessage id='Cloud Setting'/></div>
|
|
<div className={'schema-name'}><FormattedMessage id='Cloud Setting'/></div>
|
|
|
<p><Link to="/common/communication">阿里云、华为云、亚马逊请联系我们</Link></p>
|
|
<p><Link to="/common/communication">阿里云、华为云、亚马逊请联系我们</Link></p>
|
|
|
|
|
+ <p style={{color: 'red'}}>该项配置填写错误将导致部署失败,你也可以忽略此项配置!</p>
|
|
|
<br/>
|
|
<br/>
|
|
|
<RadioGroup
|
|
<RadioGroup
|
|
|
onChange={(e) => {
|
|
onChange={(e) => {
|
|
@@ -274,27 +279,102 @@ class UserCustom extends Component {
|
|
|
{/*<Radio value='mongodb'>mongodb</Radio>*/}
|
|
{/*<Radio value='mongodb'>mongodb</Radio>*/}
|
|
|
</RadioGroup>
|
|
</RadioGroup>
|
|
|
</div>
|
|
</div>
|
|
|
- {
|
|
|
|
|
- disableDeployButton ?
|
|
|
|
|
- <Spin tip="部署大约需要几分钟..."/>
|
|
|
|
|
- :
|
|
|
|
|
- <Button style={{margin: '20px 0'}} type='primary' onClick={() => {
|
|
|
|
|
- if (appId && secretID && secretKey) {
|
|
|
|
|
|
|
+ <div>
|
|
|
|
|
+ {
|
|
|
|
|
+ deployFailed?
|
|
|
|
|
+ '部署失败!'
|
|
|
|
|
+ :
|
|
|
|
|
+ ''
|
|
|
|
|
+ }
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ {
|
|
|
|
|
+ disableDeployButton ?
|
|
|
|
|
+ <Spin tip="部署大约需要几分钟..."/>
|
|
|
|
|
+ :
|
|
|
|
|
+ <Button style={{margin: '20px 0'}} type='primary' onClick={() => {
|
|
|
|
|
+ // if (appId && secretID && secretKey) {
|
|
|
|
|
+ // this.setState({
|
|
|
|
|
+ // disableDeployButton: true
|
|
|
|
|
+ // });
|
|
|
|
|
+ //
|
|
|
|
|
+ // // store *.edn to cos
|
|
|
|
|
+ // let deployConf = dbKind === 'mongodb' ?
|
|
|
|
|
+ // ` {:secretId "${secretID}"\n` +
|
|
|
|
|
+ // ` :secretKey "${secretKey}"\n` +
|
|
|
|
|
+ // ` :appId "${appId}"\n` +
|
|
|
|
|
+ // ' :region "ap-beijing" \n' +
|
|
|
|
|
+ // ' }\n'
|
|
|
|
|
+ // :
|
|
|
|
|
+ // ` {:secretId "${secretID}"\n` +
|
|
|
|
|
+ // ` :secretKey "${secretKey}"\n` +
|
|
|
|
|
+ // ` :appId "${appId}"\n` +
|
|
|
|
|
+ // ' :region "ap-beijing"\n' +
|
|
|
|
|
+ // ' :bucket "fc-db"\n' +
|
|
|
|
|
+ // ' :trustStore "/etc/ssl/certs/java/cacerts"\n' +
|
|
|
|
|
+ // ` :fc-db-store "save/${bucketName}.dat"\n` +
|
|
|
|
|
+ // ' :fc-db-dir "fc-db"\n' +
|
|
|
|
|
+ // ' :graphql-url "http://orderfcdb.ioobot.cn/graphql"\n' +
|
|
|
|
|
+ // ' :local-tmp-dir "/tmp"\n' +
|
|
|
|
|
+ // ' :local-db-file "fcdb.dat"\n' +
|
|
|
|
|
+ // ' :update-tx? true \n' +
|
|
|
|
|
+ // ' :force-down? true\n' +
|
|
|
|
|
+ // ' }';
|
|
|
|
|
+ //
|
|
|
|
|
+ // let a = axios.post(storeFile, {
|
|
|
|
|
+ // 'file-name': `${bucketName}/${dbKind}/${userID}/deploy-conf.edn`,
|
|
|
|
|
+ // bucket: 'case',
|
|
|
|
|
+ // cont: deployConf
|
|
|
|
|
+ // });
|
|
|
|
|
+ //
|
|
|
|
|
+ // let cont = '{:uri {\n' +
|
|
|
|
|
+ // ':auth {:admin-db "order"\n' +
|
|
|
|
|
+ // ' :u "ly"\n' +
|
|
|
|
|
+ // ' :p "autorunC1705"\n' +
|
|
|
|
|
+ // ' :host "119.27.174.13"}}\n' +
|
|
|
|
|
+ // ' :db-name "order"}';
|
|
|
|
|
+ //
|
|
|
|
|
+ // let b = dbKind === 'mongodb' ?
|
|
|
|
|
+ // axios.post(storeFile, {
|
|
|
|
|
+ // 'file-name': `${bucketName}/${dbKind}/${userID}/mongo-config.edn`,
|
|
|
|
|
+ // bucket: 'case',
|
|
|
|
|
+ // cont
|
|
|
|
|
+ // })
|
|
|
|
|
+ // :
|
|
|
|
|
+ // Promise.resolve({status: 200});
|
|
|
|
|
+ //
|
|
|
|
|
+ // Promise.all([a, b]).then(value => {
|
|
|
|
|
+ // if (value.every(res => res.status === 200)) {
|
|
|
|
|
+ // console.log('store file success , start deploying');
|
|
|
|
|
+ // this.deploy();
|
|
|
|
|
+ // }
|
|
|
|
|
+ // });
|
|
|
|
|
+ // } else {
|
|
|
|
|
+ // notification['warning']({
|
|
|
|
|
+ // message: '需要填写配置',
|
|
|
|
|
+ // description: '后续使用,需要先填写配置',
|
|
|
|
|
+ // });
|
|
|
|
|
+ //
|
|
|
|
|
+ // this.props.history.push({
|
|
|
|
|
+ // pathname: `/login/cloud`
|
|
|
|
|
+ // })
|
|
|
|
|
+ // }
|
|
|
|
|
+
|
|
|
this.setState({
|
|
this.setState({
|
|
|
disableDeployButton: true
|
|
disableDeployButton: true
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
// store *.edn to cos
|
|
// store *.edn to cos
|
|
|
let deployConf = dbKind === 'mongodb' ?
|
|
let deployConf = dbKind === 'mongodb' ?
|
|
|
- ` {:secretId "${secretID}"\n` +
|
|
|
|
|
- ` :secretKey "${secretKey}"\n` +
|
|
|
|
|
|
|
+ ` {:secretId "${secretID ? secretID : 'AKIDkYBvY0LOJ2bzCDmnMjz4xgFertmVJlVE'}"\n` +
|
|
|
|
|
+ ` :secretKey "${secretKey ? secretKey : 'zwjKk29TdcYP8g2FG5kCSWmz3wcH92lN'}"\n` +
|
|
|
` :appId "${appId}"\n` +
|
|
` :appId "${appId}"\n` +
|
|
|
' :region "ap-beijing" \n' +
|
|
' :region "ap-beijing" \n' +
|
|
|
' }\n'
|
|
' }\n'
|
|
|
:
|
|
:
|
|
|
- ` {:secretId "${secretID}"\n` +
|
|
|
|
|
- ` :secretKey "${secretKey}"\n` +
|
|
|
|
|
- ` :appId "${appId}"\n` +
|
|
|
|
|
|
|
+ ` {:secretId "${secretID ? secretID : 'AKIDkYBvY0LOJ2bzCDmnMjz4xgFertmVJlVE'}"\n` +
|
|
|
|
|
+ ` :secretKey "${secretKey ? secretKey : 'zwjKk29TdcYP8g2FG5kCSWmz3wcH92lN'}"\n` +
|
|
|
|
|
+ ` :appId "${appId ? appId : '1254337200'}"\n` +
|
|
|
' :region "ap-beijing"\n' +
|
|
' :region "ap-beijing"\n' +
|
|
|
' :bucket "fc-db"\n' +
|
|
' :bucket "fc-db"\n' +
|
|
|
' :trustStore "/etc/ssl/certs/java/cacerts"\n' +
|
|
' :trustStore "/etc/ssl/certs/java/cacerts"\n' +
|
|
@@ -335,18 +415,9 @@ class UserCustom extends Component {
|
|
|
this.deploy();
|
|
this.deploy();
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
- } else {
|
|
|
|
|
- notification['warning']({
|
|
|
|
|
- message: '需要填写配置',
|
|
|
|
|
- description: '后续使用,需要先填写配置',
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
- this.props.history.push({
|
|
|
|
|
- pathname: `/login/cloud`
|
|
|
|
|
- })
|
|
|
|
|
- }
|
|
|
|
|
- }}>部署</Button>
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ }}>部署</Button>
|
|
|
|
|
+ }
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
)
|
|
)
|
|
|
}
|
|
}
|
|
@@ -364,7 +435,7 @@ class CloudQueryAndConfig extends Component {
|
|
|
secretID: '',
|
|
secretID: '',
|
|
|
secretKey: '',
|
|
secretKey: '',
|
|
|
appId: '',
|
|
appId: '',
|
|
|
- showCloudConfigTip: false,
|
|
|
|
|
|
|
+ exitCloudInfo: false,
|
|
|
|
|
|
|
|
visible: false,
|
|
visible: false,
|
|
|
confirmLoading: false,
|
|
confirmLoading: false,
|
|
@@ -381,22 +452,22 @@ class CloudQueryAndConfig extends Component {
|
|
|
if (clouds.length === 1) {
|
|
if (clouds.length === 1) {
|
|
|
let cloud = clouds[0];
|
|
let cloud = clouds[0];
|
|
|
let {id, secretId, secretKey, appId} = cloud;
|
|
let {id, secretId, secretKey, appId} = cloud;
|
|
|
- if(this._isMounted) {
|
|
|
|
|
|
|
+ if (this._isMounted) {
|
|
|
this.setState({
|
|
this.setState({
|
|
|
cloudID: id,
|
|
cloudID: id,
|
|
|
secretID: secretId,
|
|
secretID: secretId,
|
|
|
secretKey,
|
|
secretKey,
|
|
|
appId,
|
|
appId,
|
|
|
- showCloudConfigTip: false
|
|
|
|
|
|
|
+ exitCloudInfo: false
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
this.props.getCloudDetail(id, secretId, secretKey, appId);
|
|
this.props.getCloudDetail(id, secretId, secretKey, appId);
|
|
|
} else if (clouds.length > 1) {
|
|
} else if (clouds.length > 1) {
|
|
|
console.log('数据库有多个同一云服务商的 key');
|
|
console.log('数据库有多个同一云服务商的 key');
|
|
|
} else {
|
|
} else {
|
|
|
- if(this._isMounted) {
|
|
|
|
|
|
|
+ if (this._isMounted) {
|
|
|
this.setState({
|
|
this.setState({
|
|
|
- showCloudConfigTip: true
|
|
|
|
|
|
|
+ exitCloudInfo: true
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -434,27 +505,34 @@ class CloudQueryAndConfig extends Component {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
render() {
|
|
render() {
|
|
|
- let {showCloudConfigTip, visible, confirmLoading, cloudName} = this.state;
|
|
|
|
|
|
|
+ let {exitCloudInfo, visible, confirmLoading, cloudName} = this.state;
|
|
|
return (
|
|
return (
|
|
|
<div>
|
|
<div>
|
|
|
{
|
|
{
|
|
|
- showCloudConfigTip ?
|
|
|
|
|
- <div>
|
|
|
|
|
- <Button type="danger" size="small" onClick={this.showModal}>
|
|
|
|
|
- <FormattedMessage id='no this cloud, click to save'/>
|
|
|
|
|
- </Button>
|
|
|
|
|
- <Modal
|
|
|
|
|
- title="设置 cloud"
|
|
|
|
|
- visible={visible}
|
|
|
|
|
- confirmLoading={confirmLoading}
|
|
|
|
|
- footer={null}
|
|
|
|
|
- onCancel={this.handleCancel}
|
|
|
|
|
- >
|
|
|
|
|
- <CloudConfig cloudName={cloudName}/>
|
|
|
|
|
- </Modal>
|
|
|
|
|
- </div>
|
|
|
|
|
- :
|
|
|
|
|
- ''
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <div>
|
|
|
|
|
+ {
|
|
|
|
|
+ exitCloudInfo ?
|
|
|
|
|
+ <Button type="danger" size="small" onClick={this.showModal}>
|
|
|
|
|
+ <FormattedMessage id='no this cloud, click to save'/>
|
|
|
|
|
+ </Button>
|
|
|
|
|
+ :
|
|
|
|
|
+ <Button size="small" onClick={this.showModal}>
|
|
|
|
|
+ <FormattedMessage id='there is this cloud, click to check'/>
|
|
|
|
|
+ </Button>
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ <Modal
|
|
|
|
|
+ title="设置 cloud"
|
|
|
|
|
+ visible={visible}
|
|
|
|
|
+ confirmLoading={confirmLoading}
|
|
|
|
|
+ footer={null}
|
|
|
|
|
+ onCancel={this.handleCancel}
|
|
|
|
|
+ >
|
|
|
|
|
+ <CloudConfig cloudName={cloudName}/>
|
|
|
|
|
+ </Modal>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
</div>
|
|
</div>
|
|
|
)
|
|
)
|