diff --git a/src/agent/docker/cluster.py b/src/agent/docker/cluster.py
index 60cc8056b..d76005c05 100644
--- a/src/agent/docker/cluster.py
+++ b/src/agent/docker/cluster.py
@@ -54,7 +54,7 @@ def create(self, cid, mapped_ports, host, user_id="",
# start compose project, failed then clean and return
logger.debug("Start compose project with name={}".format(cid))
containers = compose_up(name=cid, mapped_ports=mapped_ports, host=host,
- network_type=network_type, config=None)
+ network_type=network_type, config=config)
if not containers or len(containers) != config.size:
logger.warning("failed to create cluster, with container={}"
.format(containers))
diff --git a/src/agent/docker/docker_swarm.py b/src/agent/docker/docker_swarm.py
index 6e8eb1405..39d29fb75 100644
--- a/src/agent/docker/docker_swarm.py
+++ b/src/agent/docker/docker_swarm.py
@@ -21,7 +21,7 @@
CONSENSUS_PLUGINS, CONSENSUS_MODES, \
CLUSTER_LOG_TYPES, CLUSTER_LOG_LEVEL, \
NETWORK_SIZE_FABRIC_PRE_V1, \
- SERVICE_PORTS
+ SERVICE_PORTS, NETWORK_TYPE_FABRIC_PRE_V1
COMPOSE_FILE_PATH = os.getenv("COMPOSE_FILE_PATH",
"./agent/docker/_compose_files")
@@ -318,11 +318,11 @@ def _compose_set_env(name, worker_api, mapped_ports=SERVICE_PORTS,
log_type=CLUSTER_LOG_TYPES[0], log_server="",
config=None):
- if network_type == NETWORK_SIZE_FABRIC_PRE_V1:
+ if network_type == NETWORK_TYPE_FABRIC_PRE_V1:
envs = {
'DOCKER_HOST': worker_api,
'COMPOSE_PROJECT_NAME': name,
- 'COMPOSE_FILE': "cluster-{}.yml".format(config['_size']),
+ 'COMPOSE_FILE': "cluster-{}.yml".format(config['size']),
'VM_ENDPOINT': worker_api,
'VM_DOCKER_HOSTCONFIG_NETWORKMODE':
CLUSTER_NETWORK + "_{}".format(config['consensus_plugin']),
@@ -357,8 +357,10 @@ def compose_up(name, host, mapped_ports, network_type=NETWORK_TYPES[0],
"""
logger.debug(
- "Compose start: name={}, host={}, mapped_port={}, config={}".format(
- name, host.get("name"), mapped_ports, config.getdata()))
+ "Compose start: name={}, host={}, mapped_port={},"
+ "config={} network_type={}".format(
+ name, host.get("name"), mapped_ports,
+ config.get_data(), network_type))
worker_api, log_type, log_server, log_level = \
host.get("worker_api"), host.get("log_type"), host.get("log_server"), \
host.get("log_level")
@@ -366,14 +368,15 @@ def compose_up(name, host, mapped_ports, network_type=NETWORK_TYPES[0],
os.environ['SYSLOG_SERVER'] = log_server
_compose_set_env(name, worker_api, mapped_ports, network_type,
- config, log_level, log_type, log_server)
+ log_level, log_type, log_server, config)
try:
- project = get_project(COMPOSE_FILE_PATH +
- "/{}/".format(network_type) + log_type)
+ template_path = COMPOSE_FILE_PATH + "/{}/".\
+ format(network_type) + log_type
+ project = get_project(template_path)
containers = project.up(detached=True, timeout=timeout)
except Exception as e:
- logger.warning("Exception when compose start={}".format(e))
+ logger.warning("Exception when compose start={}".format(e.message))
return {}
if not containers or config['size'] != len(containers):
return {}
diff --git a/src/resources/cluster_api.py b/src/resources/cluster_api.py
index 7a33da9a8..43c6d94f5 100644
--- a/src/resources/cluster_api.py
+++ b/src/resources/cluster_api.py
@@ -220,17 +220,18 @@ def cluster_create():
logger.warning(error_msg)
return make_fail_resp(error=error_msg, data=r.form)
- name, host_id, network_type = \
- r.form['name'], r.form['host_id'], r.form['network_type']
+ name, host_id, network_type, size = \
+ r.form['name'], r.form['host_id'],\
+ r.form['network_type'], int(r.form['size'])
if network_type == NETWORK_TYPE_FABRIC_PRE_V1:
config = FabricPreNetworkConfig(
consensus_plugin=r.form['consensus_plugin'],
consensus_mode=r.form['consensus_mode'],
- size=r.form['size'])
+ size=size)
elif network_type == NETWORK_TYPE_FABRIC_V1:
config = FabricV1NetworkConfig(
- size=r.form['size']) # TODO: add more variables
+ size=size) # TODO: add more variables
else:
error_msg = "Unknown network_type={}".format(network_type)
logger.warning(error_msg)
diff --git a/src/themes/react/static/js/models/cluster.js b/src/themes/react/static/js/models/cluster.js
index edf947621..f83099a80 100644
--- a/src/themes/react/static/js/models/cluster.js
+++ b/src/themes/react/static/js/models/cluster.js
@@ -58,6 +58,7 @@ export default {
} else {
message.error('create chain failed')
}
+ yield call(payload.callback, false);
},
*deleteCluster({payload}, {call, put}) {
const data = yield call(deleteCluster, payload)
diff --git a/src/themes/react/static/js/models/host.js b/src/themes/react/static/js/models/host.js
index 08a2c6d24..da19d9efe 100644
--- a/src/themes/react/static/js/models/host.js
+++ b/src/themes/react/static/js/models/host.js
@@ -22,7 +22,7 @@ export default {
subscriptions: {
setup({dispatch, history}) {
history.listen(location => {
- if (location.pathname === '/hosts' || location.pathname === '/chains/active') {
+ if (location.pathname === '/hosts' || location.pathname === '/chains') {
dispatch({type: 'getHosts'})
}
})
diff --git a/src/themes/react/static/js/routes/cluster/active/ClusterModal.js b/src/themes/react/static/js/routes/cluster/active/ClusterModal.js
index cecf4b611..005d7f4e3 100644
--- a/src/themes/react/static/js/routes/cluster/active/ClusterModal.js
+++ b/src/themes/react/static/js/routes/cluster/active/ClusterModal.js
@@ -28,6 +28,11 @@ class ClusterModal extends React.Component {
pluginType: value
})
}
+ setPosting = (value) => {
+ this.setState({
+ posting: value
+ })
+ }
handleOk() {
const {
onOk,
@@ -44,8 +49,13 @@ class ClusterModal extends React.Component {
this.setState({
posting: true
});
- values.consensus_mode = "batch"
- onOk(values)
+ values.consensus_mode = "batch";
+ values.network_type = values.fabric_version;
+ const data = {
+ ...values,
+ callback: this.setPosting
+ }
+ onOk(data)
}
})
}
@@ -82,6 +92,11 @@ class ClusterModal extends React.Component {
const hostsOptions = hosts.map((host, i) =>
)
+ const defaultHostValue = hosts.length ? hosts[0].id : '';
+ const fabricVersions = ["fabric-0.6", "fabric-1.0"];
+ const fabricVersionOptions = fabricVersions.map((fabricVersion, i) =>
+
+ )
return (