Compare commits
11 Commits
feature_se
...
snyk-fix-5
Author | SHA1 | Date | |
---|---|---|---|
|
6a2466ff2a | ||
|
6d490aec65 | ||
|
41f8f8553c | ||
|
bc1f8d0cfb | ||
|
a8e1bc89f0 | ||
|
5b5a480943 | ||
|
a190a214f1 | ||
|
54b7550e31 | ||
|
e4deeca506 | ||
|
365ad90adc | ||
|
2984880b6e |
3
.github/workflows/ci.yml
vendored
3
.github/workflows/ci.yml
vendored
@@ -41,8 +41,7 @@ jobs:
|
|||||||
run: cd build && cmake --build . --config Release
|
run: cd build && cmake --build . --config Release
|
||||||
- name: Build RPC (Debug)
|
- name: Build RPC (Debug)
|
||||||
run: cd build && cmake --build . --config Debug
|
run: cd build && cmake --build . --config Debug
|
||||||
|
|
||||||
|
|
||||||
build-linux:
|
build-linux:
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
|
29
.github/workflows/docker-ci.yml
vendored
Normal file
29
.github/workflows/docker-ci.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
#*********************************************************************
|
||||||
|
# Copyright (c) Intel Corporation 2020
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#*********************************************************************/
|
||||||
|
|
||||||
|
name: Docker Image CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Build the Docker image
|
||||||
|
run: docker build -f "Dockerfile" --tag vprodemo.azurecr.io/rpc:${{ github.sha }} --tag vprodemo.azurecr.io/rpc:latest .
|
||||||
|
- name: Docker Login
|
||||||
|
uses: docker/login-action@v1.6.0
|
||||||
|
with:
|
||||||
|
registry: vprodemo.azurecr.io
|
||||||
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
|
logout: true
|
||||||
|
- name: Push the Docker image to the registry
|
||||||
|
run: docker push vprodemo.azurecr.io/rpc:${{ github.sha }}
|
||||||
|
- name: Push the Docker image to the registry
|
||||||
|
run: docker push vprodemo.azurecr.io/rpc:latest
|
@@ -1,6 +1,6 @@
|
|||||||
cmake_minimum_required (VERSION 3.1)
|
cmake_minimum_required (VERSION 3.1)
|
||||||
|
|
||||||
project (rpc VERSION 1.1.0)
|
project (rpc VERSION 1.2.0)
|
||||||
|
|
||||||
set (CMAKE_CXX_STANDARD 11)
|
set (CMAKE_CXX_STANDARD 11)
|
||||||
|
|
||||||
@@ -98,6 +98,8 @@ add_executable (rpc
|
|||||||
commands.cpp
|
commands.cpp
|
||||||
activation.h
|
activation.h
|
||||||
activation.cpp
|
activation.cpp
|
||||||
|
heartbeat.h
|
||||||
|
heartbeat.cpp
|
||||||
lms.h
|
lms.h
|
||||||
lms.cpp
|
lms.cpp
|
||||||
main.cpp
|
main.cpp
|
||||||
|
37
Dockerfile
Normal file
37
Dockerfile
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
#*********************************************************************
|
||||||
|
# Copyright (c) Intel Corporation 2021
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#*********************************************************************/
|
||||||
|
|
||||||
|
FROM ubuntu:20.10 AS rpc-builder
|
||||||
|
|
||||||
|
WORKDIR /
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
RUN \
|
||||||
|
apt-get update -y -qq && \
|
||||||
|
apt install -y -qq \
|
||||||
|
git cmake build-essential libssl-dev zlib1g-dev \
|
||||||
|
curl unzip zip pkg-config
|
||||||
|
RUN git clone https://github.com/open-amt-cloud-toolkit/rpc.git
|
||||||
|
WORKDIR /rpc
|
||||||
|
RUN mkdir -p build
|
||||||
|
RUN git clone --branch 2020.11-1 https://github.com/microsoft/vcpkg.git
|
||||||
|
RUN cd vcpkg && ./bootstrap-vcpkg.sh
|
||||||
|
RUN ./vcpkg/vcpkg install cpprestsdk[websockets]
|
||||||
|
|
||||||
|
WORKDIR /rpc/build
|
||||||
|
RUN cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=/rpc/vcpkg/scripts/buildsystems/vcpkg.cmake ..
|
||||||
|
RUN cmake --build .
|
||||||
|
|
||||||
|
FROM ubuntu:20.10
|
||||||
|
|
||||||
|
LABEL license='SPDX-License-Identifier: Apache-2.0' \
|
||||||
|
copyright='Copyright (c) 2021: Intel'
|
||||||
|
|
||||||
|
WORKDIR /root
|
||||||
|
RUN \
|
||||||
|
apt-get update -y -qq && \
|
||||||
|
apt install -y -qq \
|
||||||
|
libssl-dev
|
||||||
|
COPY --from=rpc-builder /rpc/build/rpc .
|
||||||
|
ENTRYPOINT ["/root/rpc"]
|
@@ -236,7 +236,7 @@ bool act_create_request(std::string commands, std::string dns_suffix, std::strin
|
|||||||
utility::string_t tmp = utility::conversions::convertstring(commands);
|
utility::string_t tmp = utility::conversions::convertstring(commands);
|
||||||
msg[U("method")] = web::json::value::string(tmp);
|
msg[U("method")] = web::json::value::string(tmp);
|
||||||
|
|
||||||
tmp = utility::conversions::convertstring("key");
|
tmp = utility::conversions::convertstring("");
|
||||||
msg[U("apiKey")] = web::json::value::string(tmp);
|
msg[U("apiKey")] = web::json::value::string(tmp);
|
||||||
|
|
||||||
tmp = utility::conversions::convertstring(PROJECT_VER);
|
tmp = utility::conversions::convertstring(PROJECT_VER);
|
||||||
@@ -245,10 +245,10 @@ bool act_create_request(std::string commands, std::string dns_suffix, std::strin
|
|||||||
tmp = utility::conversions::convertstring(PROTOCOL_VERSION);
|
tmp = utility::conversions::convertstring(PROTOCOL_VERSION);
|
||||||
msg[U("protocolVersion")] = web::json::value::string(tmp);
|
msg[U("protocolVersion")] = web::json::value::string(tmp);
|
||||||
|
|
||||||
tmp = utility::conversions::convertstring("ok");
|
tmp = utility::conversions::convertstring("");
|
||||||
msg[U("status")] = web::json::value::string(tmp);
|
msg[U("status")] = web::json::value::string(tmp);
|
||||||
|
|
||||||
tmp = utility::conversions::convertstring("ok");
|
tmp = utility::conversions::convertstring("");
|
||||||
msg[U("message")] = web::json::value::string(tmp);
|
msg[U("message")] = web::json::value::string(tmp);
|
||||||
|
|
||||||
// get the activation payload
|
// get the activation payload
|
||||||
@@ -281,7 +281,7 @@ bool act_create_response(std::string payload, std::string& response)
|
|||||||
utility::string_t tmp = utility::conversions::convertstring("response");
|
utility::string_t tmp = utility::conversions::convertstring("response");
|
||||||
msg[U("method")] = web::json::value::string(tmp);
|
msg[U("method")] = web::json::value::string(tmp);
|
||||||
|
|
||||||
tmp = utility::conversions::convertstring("key");
|
tmp = utility::conversions::convertstring("");
|
||||||
msg[U("apiKey")] = web::json::value::string(tmp);
|
msg[U("apiKey")] = web::json::value::string(tmp);
|
||||||
|
|
||||||
tmp = utility::conversions::convertstring(PROJECT_VER);
|
tmp = utility::conversions::convertstring(PROJECT_VER);
|
||||||
@@ -290,10 +290,10 @@ bool act_create_response(std::string payload, std::string& response)
|
|||||||
tmp = utility::conversions::convertstring(PROTOCOL_VERSION);
|
tmp = utility::conversions::convertstring(PROTOCOL_VERSION);
|
||||||
msg[U("protocolVersion")] = web::json::value::string(tmp);
|
msg[U("protocolVersion")] = web::json::value::string(tmp);
|
||||||
|
|
||||||
tmp = utility::conversions::convertstring("ok");
|
tmp = utility::conversions::convertstring("");
|
||||||
msg[U("status")] = web::json::value::string(tmp);
|
msg[U("status")] = web::json::value::string(tmp);
|
||||||
|
|
||||||
tmp = utility::conversions::convertstring("ok");
|
tmp = utility::conversions::convertstring("");
|
||||||
msg[U("message")] = web::json::value::string(tmp);
|
msg[U("message")] = web::json::value::string(tmp);
|
||||||
|
|
||||||
tmp = utility::conversions::convertstring(util_encode_base64(payload));
|
tmp = utility::conversions::convertstring(util_encode_base64(payload));
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#define PROTOCOL_VERSION "3.0.0"
|
#define PROTOCOL_VERSION "4.0.0"
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#define convertstring to_utf16string
|
#define convertstring to_utf16string
|
||||||
|
48
heartbeat.cpp
Normal file
48
heartbeat.cpp
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
/*********************************************************************
|
||||||
|
* Copyright (c) Intel Corporation 2019 - 2020
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
**********************************************************************/
|
||||||
|
|
||||||
|
#include "heartbeat.h"
|
||||||
|
#include <cpprest/ws_client.h>
|
||||||
|
#include <cpprest/json.h>
|
||||||
|
#include <cpprest/streams.h>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include "activation.h"
|
||||||
|
#include "version.h"
|
||||||
|
#include "commands.h"
|
||||||
|
#include "network.h"
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
|
bool heartbeat_create_response(std::string& response)
|
||||||
|
{
|
||||||
|
web::json::value msg;
|
||||||
|
|
||||||
|
utility::string_t tmp = utility::conversions::convertstring("heartbeat_response");
|
||||||
|
msg[U("method")] = web::json::value::string(tmp);
|
||||||
|
|
||||||
|
tmp = utility::conversions::convertstring("");
|
||||||
|
msg[U("apiKey")] = web::json::value::string(tmp);
|
||||||
|
|
||||||
|
tmp = utility::conversions::convertstring(PROJECT_VER);
|
||||||
|
msg[U("appVersion")] = web::json::value::string(tmp);
|
||||||
|
|
||||||
|
tmp = utility::conversions::convertstring(PROTOCOL_VERSION);
|
||||||
|
msg[U("protocolVersion")] = web::json::value::string(tmp);
|
||||||
|
|
||||||
|
tmp = utility::conversions::convertstring("success");
|
||||||
|
msg[U("status")] = web::json::value::string(tmp);
|
||||||
|
|
||||||
|
tmp = utility::conversions::convertstring("");
|
||||||
|
msg[U("message")] = web::json::value::string(tmp);
|
||||||
|
|
||||||
|
// set empty payload
|
||||||
|
tmp = utility::conversions::convertstring("");
|
||||||
|
msg[U("payload")] = web::json::value::string(tmp);
|
||||||
|
|
||||||
|
// serialize the entire message
|
||||||
|
response = utility::conversions::to_utf8string(msg.serialize());
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
13
heartbeat.h
Normal file
13
heartbeat.h
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
/*********************************************************************
|
||||||
|
* Copyright (c) Intel Corporation 2019 - 2020
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
**********************************************************************/
|
||||||
|
|
||||||
|
#ifndef __HEARTBEAT_H__
|
||||||
|
#define __HEARTBEAT_H__
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
bool heartbeat_create_response(std::string& response);
|
||||||
|
|
||||||
|
#endif
|
20
main.cpp
20
main.cpp
@@ -11,6 +11,7 @@
|
|||||||
#include "lms.h"
|
#include "lms.h"
|
||||||
#include "commands.h"
|
#include "commands.h"
|
||||||
#include "activation.h"
|
#include "activation.h"
|
||||||
|
#include "heartbeat.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "usage.h"
|
#include "usage.h"
|
||||||
#include "args.h"
|
#include "args.h"
|
||||||
@@ -246,10 +247,25 @@ int main(int argc, char* argv[])
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (msgMethod.compare("heartbeat_request") == 0)
|
||||||
|
{
|
||||||
|
// create the response
|
||||||
|
std::string response;
|
||||||
|
if (!heartbeat_create_response(response)) return;
|
||||||
|
|
||||||
|
// send it
|
||||||
|
web::websockets::client::websocket_outgoing_message send_websocket_msg;
|
||||||
|
std::string send_websocket_buffer(response);
|
||||||
|
send_websocket_msg.set_utf8_message(send_websocket_buffer);
|
||||||
|
client.send(send_websocket_msg).wait();
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// process any messages we can
|
// process any messages we can
|
||||||
// - if success, done
|
// - if success, done
|
||||||
// - if error, get out
|
// - if error, get out
|
||||||
if (msgMethod.compare("success")==0)
|
if (msgStatus.compare("success")==0)
|
||||||
{
|
{
|
||||||
// cleanup
|
// cleanup
|
||||||
g_timeout_val = 0;
|
g_timeout_val = 0;
|
||||||
@@ -258,7 +274,7 @@ int main(int argc, char* argv[])
|
|||||||
std::cout << std::endl << msgMessage << std::endl;
|
std::cout << std::endl << msgMessage << std::endl;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (msgMethod.compare("error")==0)
|
else if (msgStatus.compare("failed")==0)
|
||||||
{
|
{
|
||||||
// cleanup
|
// cleanup
|
||||||
g_timeout_val = 0;
|
g_timeout_val = 0;
|
||||||
|
Reference in New Issue
Block a user