diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fa481b00..855623e3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,6 +40,23 @@ jobs: -DCMAKE_BUILD_TYPE=Release -DDISABLE_UT=ON make -j4 + - name: get ui version + id: get_ui_version + run: echo "::set-output name=version::$(cat ui_version)" + + - name: fetch dashboard + uses: dsaltares/fetch-gh-release-asset@master + with: + repo: "emqx/neuron-dashboard-src" + version: "tags/${{ steps.get_ui_version.outputs.version }}" + file: "neuron-dashboard.zip" + target: "neuron-dashboard.zip" + token: ${{ secrets.ci_git_token }} + + - name: unpack dashboard + run: | + unzip neuron-dashboard.zip -d ./build + - name: Create neuron sdk package run: | ./package-sdk.sh -p ${{ matrix.arch[5] }} -n neuron-sdk-${{ steps.get_version.outputs.version }} diff --git a/include/neuron/adapter.h b/include/neuron/adapter.h index edfa097e..3b3aff43 100644 --- a/include/neuron/adapter.h +++ b/include/neuron/adapter.h @@ -26,8 +26,6 @@ extern "C" { #include -#include - #include "define.h" #include "tag.h" #include "type.h" @@ -386,152 +384,7 @@ typedef struct { neu_resp_tag_value_t tags[]; } neu_reqresp_trans_data_t; -inline static nng_msg *neu_msg_gen(neu_reqresp_head_t *header, void *data) -{ - nng_msg *msg = NULL; - void * body = NULL; - size_t data_size = 0; - - switch (header->type) { - case NEU_REQ_NODE_INIT: - case NEU_REQ_NODE_UNINIT: - case NEU_RESP_NODE_UNINIT: - data_size = sizeof(neu_req_node_init_t); - break; - case NEU_RESP_ERROR: - data_size = sizeof(neu_resp_error_t); - break; - case NEU_REQ_ADD_PLUGIN: - data_size = sizeof(neu_req_add_plugin_t); - break; - case NEU_REQ_DEL_PLUGIN: - data_size = sizeof(neu_req_del_plugin_t); - break; - case NEU_REQ_GET_PLUGIN: - data_size = sizeof(neu_req_get_plugin_t); - break; - case NEU_RESP_GET_PLUGIN: - data_size = sizeof(neu_resp_get_plugin_t); - break; - case NEU_REQ_ADD_NODE: - data_size = sizeof(neu_req_add_node_t); - break; - case NEU_REQ_DEL_NODE: - data_size = sizeof(neu_req_del_node_t); - break; - case NEU_REQ_GET_NODE: - data_size = sizeof(neu_req_get_node_t); - break; - case NEU_RESP_GET_NODE: - data_size = sizeof(neu_resp_get_node_t); - break; - case NEU_REQ_ADD_GROUP: - case NEU_REQ_UPDATE_GROUP: - data_size = sizeof(neu_req_add_group_t); - break; - case NEU_REQ_DEL_GROUP: - data_size = sizeof(neu_req_del_group_t); - break; - case NEU_REQ_GET_GROUP: - data_size = sizeof(neu_req_get_group_t); - break; - case NEU_RESP_GET_GROUP: - data_size = sizeof(neu_resp_get_group_t); - break; - case NEU_REQ_ADD_TAG: - data_size = sizeof(neu_req_add_tag_t); - break; - case NEU_RESP_ADD_TAG: - data_size = sizeof(neu_resp_add_tag_t); - break; - case NEU_RESP_UPDATE_TAG: - data_size = sizeof(neu_resp_update_tag_t); - break; - case NEU_REQ_UPDATE_TAG: - data_size = sizeof(neu_req_update_tag_t); - break; - case NEU_REQ_DEL_TAG: - data_size = sizeof(neu_req_del_tag_t); - break; - case NEU_REQ_GET_TAG: - data_size = sizeof(neu_req_get_tag_t); - break; - case NEU_RESP_GET_TAG: - data_size = sizeof(neu_resp_get_tag_t); - break; - case NEU_REQ_SUBSCRIBE_GROUP: - data_size = sizeof(neu_req_subscribe_t); - break; - case NEU_REQ_UNSUBSCRIBE_GROUP: - data_size = sizeof(neu_req_unsubscribe_t); - break; - case NEU_REQ_GET_SUBSCRIBE_GROUP: - data_size = sizeof(neu_req_get_subscribe_group_t); - break; - case NEU_RESP_GET_SUBSCRIBE_GROUP: - data_size = sizeof(neu_resp_get_subscribe_group_t); - break; - case NEU_REQ_NODE_SETTING: - data_size = sizeof(neu_req_node_setting_t); - break; - case NEU_REQ_GET_NODE_SETTING: - data_size = sizeof(neu_req_get_node_setting_t); - break; - case NEU_RESP_GET_NODE_SETTING: - data_size = sizeof(neu_resp_get_node_setting_t); - break; - case NEU_REQ_NODE_CTL: - data_size = sizeof(neu_req_node_ctl_t); - break; - case NEU_REQ_GET_NODE_STATE: - data_size = sizeof(neu_req_get_node_state_t); - break; - case NEU_RESP_GET_NODE_STATE: - data_size = sizeof(neu_resp_get_node_state_t); - break; - case NEU_REQ_GET_NODES_STATE: - data_size = sizeof(neu_req_get_nodes_state_t); - break; - case NEU_REQRESP_NODES_STATE: - case NEU_RESP_GET_NODES_STATE: - data_size = sizeof(neu_resp_get_nodes_state_t); - break; - case NEU_REQ_READ_GROUP: - data_size = sizeof(neu_req_read_group_t); - break; - case NEU_REQ_WRITE_TAG: - data_size = sizeof(neu_req_write_tag_t); - break; - case NEU_RESP_READ_GROUP: - data_size = sizeof(neu_resp_read_group_t); - break; - case NEU_REQRESP_TRANS_DATA: { - neu_reqresp_trans_data_t *trans = (neu_reqresp_trans_data_t *) data; - data_size = sizeof(neu_reqresp_trans_data_t) + - trans->n_tag * sizeof(neu_resp_tag_value_t); - break; - } - case NEU_REQ_UPDATE_LICENSE: - data_size = sizeof(neu_req_update_license_t); - break; - case NEU_RESP_APP_SUBSCRIBE_GROUP: - data_size = sizeof(neu_resp_app_subscribe_group_t); - break; - case NEU_REQ_APP_SUBSCRIBE_GROUP: - case NEU_REQ_APP_UNSUBSCRIBE_GROUP: - data_size = sizeof(neu_req_app_unsubscribe_group_t); - break; - default: - assert(false); - break; - } - - nng_msg_alloc(&msg, sizeof(neu_reqresp_head_t) + data_size); - body = nng_msg_body(msg); - memcpy(body, header, sizeof(neu_reqresp_head_t)); - memcpy((uint8_t *) body + sizeof(neu_reqresp_head_t), data, data_size); - return msg; -} +void *neu_msg_gen(neu_reqresp_head_t *header, void *data); inline static void neu_msg_exchange(neu_reqresp_head_t *header) { diff --git a/package-sdk.sh b/package-sdk.sh index 6f87b255..2f2ef022 100755 --- a/package-sdk.sh +++ b/package-sdk.sh @@ -35,10 +35,13 @@ mkdir -p $package_name/lib mkdir -p $package_name/config mkdir -p $package_name/plugins/schema +cp sdk-install.sh ${package_name}/ cp neuron.conf ${package_name}/ cp cmake/neuron-config.cmake ${package_name}/ cp -r include/* ${package_name}/include/ +cp -r build/dist ${package_name}/ + cp build/neuron ${package_name} cp build/libneuron-base.so ${package_name}/lib cp zlog/src/libzlog.so.1.2 ${package_name}/lib @@ -46,10 +49,12 @@ cp zlog/src/libzlog.so.1.2 ${package_name}/lib cp -r persistence ${package_name}/ cp migrate.py ${package_name}/ +cp sdk-zlog.conf ${package_name}/config/ cp zlog.conf ${package_name}/config/ cp dev.conf ${package_name}/config/ cp neuron.key ${package_name}/config/ cp neuron.pem ${package_name}/config/ +cp default_plugins.json ${package_name}/config/ cp build/plugins/schema/ekuiper.json \ build/plugins/schema/mqtt.json \ diff --git a/sdk-install.sh b/sdk-install.sh new file mode 100755 index 00000000..7a1c5ba1 --- /dev/null +++ b/sdk-install.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +set -e + +neuron_bin="/usr/local/bin/neuron" +neuron_include="/usr/local/include/neuron" +neuron_lib="/usr/local/lib/neuron" + +cp neuron.conf /etc/ld.so.conf.d/ + +mkdir -p /usr/local/lib/cmake/neuron/ +cp neuron-config.cmake /usr/local/lib/cmake/neuron/ + +mkdir -p ${neuron_include} +cp -r include/neuron/* ${neuron_include}/ + +mkdir -p ${neuron_lib} +cp lib/* ${neuron_lib}/ + +mkdir -p ${neuron_bin} +mkdir -p ${neuron_bin}/config +mkdir -p ${neuron_bin}/persistence +mkdir -p ${neuron_bin}/plugins + +cp ./neuron ${neuron_bin}/ +cp config/sdk-zlog.conf ${neuron_bin}/config/zlog.conf +cp config/dev.conf ${neuron_bin}/config/ +cp config/neuron.key ${neuron_bin}/config/ +cp config/neuron.pem ${neuron_bin}/config/ + +cp config/default_plugins.json ${neuron_bin}/persistence/plugins.json +cp persistence/* ${neuron_bin}/persistence/ +cp -r plugins/* ${neuron_bin}/plugins/ + +cp -r dist ${neuron_bin}/ + +ldconfig \ No newline at end of file diff --git a/sdk-zlog.conf b/sdk-zlog.conf new file mode 100644 index 00000000..933e90fe --- /dev/null +++ b/sdk-zlog.conf @@ -0,0 +1,12 @@ +[global] + +reload conf period = 60 +file perms = 666 + +[formats] + +simple = "%d [%V] %f:%L %m%n" + +[rules] + +*.INFO "/var/log/neuron/%c.log", 10MB * 3 ~ "/var/log/neuron/%c-%d(%Y%m%d).#2s.log"; simple diff --git a/src/adapter/adapter.c b/src/adapter/adapter.c index d0959c22..30325115 100644 --- a/src/adapter/adapter.c +++ b/src/adapter/adapter.c @@ -776,4 +776,151 @@ static int update_timestamp(void *usr_data) neu_plugin_to_plugin_common(adapter->plugin)->timestamp = timestamp; return 0; +} + +void *neu_msg_gen(neu_reqresp_head_t *header, void *data) +{ + nng_msg *msg = NULL; + void * body = NULL; + size_t data_size = 0; + + switch (header->type) { + case NEU_REQ_NODE_INIT: + case NEU_REQ_NODE_UNINIT: + case NEU_RESP_NODE_UNINIT: + data_size = sizeof(neu_req_node_init_t); + break; + case NEU_RESP_ERROR: + data_size = sizeof(neu_resp_error_t); + break; + case NEU_REQ_ADD_PLUGIN: + data_size = sizeof(neu_req_add_plugin_t); + break; + case NEU_REQ_DEL_PLUGIN: + data_size = sizeof(neu_req_del_plugin_t); + break; + case NEU_REQ_GET_PLUGIN: + data_size = sizeof(neu_req_get_plugin_t); + break; + case NEU_RESP_GET_PLUGIN: + data_size = sizeof(neu_resp_get_plugin_t); + break; + case NEU_REQ_ADD_NODE: + data_size = sizeof(neu_req_add_node_t); + break; + case NEU_REQ_DEL_NODE: + data_size = sizeof(neu_req_del_node_t); + break; + case NEU_REQ_GET_NODE: + data_size = sizeof(neu_req_get_node_t); + break; + case NEU_RESP_GET_NODE: + data_size = sizeof(neu_resp_get_node_t); + break; + case NEU_REQ_ADD_GROUP: + case NEU_REQ_UPDATE_GROUP: + data_size = sizeof(neu_req_add_group_t); + break; + case NEU_REQ_DEL_GROUP: + data_size = sizeof(neu_req_del_group_t); + break; + case NEU_REQ_GET_GROUP: + data_size = sizeof(neu_req_get_group_t); + break; + case NEU_RESP_GET_GROUP: + data_size = sizeof(neu_resp_get_group_t); + break; + case NEU_REQ_ADD_TAG: + data_size = sizeof(neu_req_add_tag_t); + break; + case NEU_RESP_ADD_TAG: + data_size = sizeof(neu_resp_add_tag_t); + break; + case NEU_RESP_UPDATE_TAG: + data_size = sizeof(neu_resp_update_tag_t); + break; + case NEU_REQ_UPDATE_TAG: + data_size = sizeof(neu_req_update_tag_t); + break; + case NEU_REQ_DEL_TAG: + data_size = sizeof(neu_req_del_tag_t); + break; + case NEU_REQ_GET_TAG: + data_size = sizeof(neu_req_get_tag_t); + break; + case NEU_RESP_GET_TAG: + data_size = sizeof(neu_resp_get_tag_t); + break; + case NEU_REQ_SUBSCRIBE_GROUP: + data_size = sizeof(neu_req_subscribe_t); + break; + case NEU_REQ_UNSUBSCRIBE_GROUP: + data_size = sizeof(neu_req_unsubscribe_t); + break; + case NEU_REQ_GET_SUBSCRIBE_GROUP: + data_size = sizeof(neu_req_get_subscribe_group_t); + break; + case NEU_RESP_GET_SUBSCRIBE_GROUP: + data_size = sizeof(neu_resp_get_subscribe_group_t); + break; + case NEU_REQ_NODE_SETTING: + data_size = sizeof(neu_req_node_setting_t); + break; + case NEU_REQ_GET_NODE_SETTING: + data_size = sizeof(neu_req_get_node_setting_t); + break; + case NEU_RESP_GET_NODE_SETTING: + data_size = sizeof(neu_resp_get_node_setting_t); + break; + case NEU_REQ_NODE_CTL: + data_size = sizeof(neu_req_node_ctl_t); + break; + case NEU_REQ_GET_NODE_STATE: + data_size = sizeof(neu_req_get_node_state_t); + break; + case NEU_RESP_GET_NODE_STATE: + data_size = sizeof(neu_resp_get_node_state_t); + break; + case NEU_REQ_GET_NODES_STATE: + data_size = sizeof(neu_req_get_nodes_state_t); + break; + case NEU_REQRESP_NODES_STATE: + case NEU_RESP_GET_NODES_STATE: + data_size = sizeof(neu_resp_get_nodes_state_t); + break; + case NEU_REQ_READ_GROUP: + data_size = sizeof(neu_req_read_group_t); + break; + case NEU_REQ_WRITE_TAG: + data_size = sizeof(neu_req_write_tag_t); + break; + case NEU_RESP_READ_GROUP: + data_size = sizeof(neu_resp_read_group_t); + break; + case NEU_REQRESP_TRANS_DATA: { + neu_reqresp_trans_data_t *trans = (neu_reqresp_trans_data_t *) data; + data_size = sizeof(neu_reqresp_trans_data_t) + + trans->n_tag * sizeof(neu_resp_tag_value_t); + break; + } + case NEU_REQ_UPDATE_LICENSE: + data_size = sizeof(neu_req_update_license_t); + break; + case NEU_RESP_APP_SUBSCRIBE_GROUP: + data_size = sizeof(neu_resp_app_subscribe_group_t); + break; + case NEU_REQ_APP_SUBSCRIBE_GROUP: + case NEU_REQ_APP_UNSUBSCRIBE_GROUP: + data_size = sizeof(neu_req_app_unsubscribe_group_t); + break; + default: + assert(false); + break; + } + + nng_msg_alloc(&msg, sizeof(neu_reqresp_head_t) + data_size); + body = nng_msg_body(msg); + memcpy(body, header, sizeof(neu_reqresp_head_t)); + memcpy((uint8_t *) body + sizeof(neu_reqresp_head_t), data, data_size); + return msg; } \ No newline at end of file diff --git a/ui_version b/ui_version new file mode 100644 index 00000000..8f9174b4 --- /dev/null +++ b/ui_version @@ -0,0 +1 @@ +2.1.2 \ No newline at end of file