From 601b88e2c5dabaa7fe2035c7e433d2da5b860c4b Mon Sep 17 00:00:00 2001 From: "Sridhar K. N. Rao" Date: Wed, 2 Oct 2019 17:50:23 +0530 Subject: Tools: Deployment and TestControl Containers This patch add containerization of VSPERF support. The patch facilitates creation of 4 containers: 1. Interactive Deployment 2. Auto Deployment 3. Interactive TestControl 4. Auto TestControl. The patch also includes a minimal client to work with interactive containers. The docs folder provides detailed documentation. Fixed pylint errors in libs folder. Removed proto built python files, and added the build process in prepare.sh. Stability improvements for Auto versions of deployment and testcontrol. Enhance client with 'mode' feature, where client can run either to do only deploy/only test or both. Add sample configuration file for client Fixed few typos - as suggested by AL. JIRA: VSPERF-594 Signed-off-by: Sridhar K. N. Rao Change-Id: Id40b02960f71a7f9183d9a53955e2483117fb9e2 --- tools/docker/libs/proto/__init__.py | 1 + tools/docker/libs/proto/vsperf.proto | 109 +++++++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 tools/docker/libs/proto/__init__.py create mode 100755 tools/docker/libs/proto/vsperf.proto (limited to 'tools/docker/libs/proto') diff --git a/tools/docker/libs/proto/__init__.py b/tools/docker/libs/proto/__init__.py new file mode 100644 index 00000000..ad0ebec3 --- /dev/null +++ b/tools/docker/libs/proto/__init__.py @@ -0,0 +1 @@ +#### Empty diff --git a/tools/docker/libs/proto/vsperf.proto b/tools/docker/libs/proto/vsperf.proto new file mode 100755 index 00000000..0fc45df3 --- /dev/null +++ b/tools/docker/libs/proto/vsperf.proto @@ -0,0 +1,109 @@ +// Copyright 2018-2019 . +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +syntax = "proto3"; +package vsperf; + +service Controller { + rpc HostConnect (HostInfo) returns (StatusReply) {} + rpc VsperfInstall (HostInfo) returns (StatusReply) {} + rpc TGenHostConnect (HostInfo) returns (StatusReply) {} + rpc TGenInstall (HostVerInfo) returns (StatusReply) {} + rpc TGenUploadConfigFile (stream ConfFile) returns (UploadStatus) {} + rpc CollectdInstall (HostInfo) returns (StatusReply) {} + rpc CollectdUploadConfig (stream ConfFile) returns (UploadStatus) {} + rpc DutHugepageConfig (HugepConf) returns (StatusReply) {} + rpc CheckDependecies (HostInfo) returns (StatusReply) {} + rpc UploadConfigFile (ConfFileTest) returns (UploadStatus) {} + rpc StartTest (ControlVsperf) returns (StatusReply) {} + rpc TestStatus (StatusQuery) returns (StatusReply) {} + rpc StartTGen (ControlTGen) returns (StatusReply) {} + rpc StartBeats (HostInfo) returns (StatusReply) {} + rpc RemoveVsperf (HostInfo) returns (StatusReply) {} + rpc RemoveResultFolder (HostInfo) returns (StatusReply) {} + rpc RemoveUploadedConfig (HostInfo) returns (StatusReply) {} + rpc RemoveCollectd (HostInfo) returns (StatusReply) {} + rpc RemoveEverything (HostInfo) returns (StatusReply) {} + rpc TerminateVsperf (HostInfo) returns (StatusReply) {} + rpc SanityNICCheck (HostInfo) returns (StatusReply) {} + rpc SanityCollectdCheck (HostInfo) returns (StatusReply) {} + rpc SanityVNFpath (HostInfo) returns (StatusReply) {} + rpc SanityVSPERFCheck (HostInfo) returns (StatusReply) {} + rpc SanityTgenConnDUTCheck (HostInfo) returns (StatusReply) {} + rpc SanityCPUAllocationCheck (HostInfo) returns (StatusReply) {} + rpc DUTvsperfTestAvailability (HostInfo) returns (StatusReply) {} + rpc GetVSPERFConffromDUT (HostInfo) returns (StatusReply) {} +} + +message ControlVsperf { + string testtype = 1; + string conffile = 2; +} + +message ControlTGen { + string params = 1; + string conffile = 2; +} + +message LogDir { + string directory = 1; +} + +message ConfFile { + bytes Content = 1; +} + +message ConfFileTest { + string Content = 1; + string Filename = 2; +} + +message HostInfo { + string ip = 1; + string uname = 2; + string pwd = 3; +} + +message HugepConf { + string hpmax = 1; + string hprequested = 2; +} + +message HostVerInfo { + string ip = 1; + string uname = 2; + string pwd = 3; + string version = 4; +} + +message StatusQuery { + string testtype = 1; +} + +message StatusReply { + string message = 1; +} + +enum UploadStatusCode { + Unknown = 0; + Ok = 1; + Failed = 2; +} + +message UploadStatus { + string Message = 1; + UploadStatusCode Code = 2; +} + -- cgit 1.2.3-korg