google.protobuf.Struct properties = 6;
// Request Time Stamp
google.protobuf.Timestamp timestamp = 7;
+ string subRequestId = 8;
+ string originatorId = 9;
+}
+
+// If a new version of blueprint (new UUID in DB) needs to be uploaded, then pass in the raw bytes data
+// properties should specify 'file_format' as either 'gzip' or 'zip'
+// TODO: archiveTYPE: should be enum {"CBA_ZIP", "CBA_GZIP"}
+message UploadBlueprintInput {
+ Identifiers identifiers = 1;
+ string requestId = 2;
+ string subRequestId = 3;
+ string originatorId = 4;
+ string correlationId = 5;
+ int32 timeOut = 6;
+ string archiveType = 7;
+ google.protobuf.Timestamp timestamp = 8;
+ bytes binData = 9;
+}
+
+message UploadBlueprintOutput {
+ string requestId = 1;
+ string subRequestId = 2;
+ ResponseStatus status = 3;
+ google.protobuf.Timestamp timestamp = 4;
+ string payload = 5;
}
message PrepareEnvInput {
int32 timeOut = 5;
google.protobuf.Struct properties = 6;
google.protobuf.Timestamp timestamp = 7;
+ string subRequestId = 8;
+ string originatorId = 9;
}
message Identifiers {
string blueprintName = 1;
string blueprintVersion = 2;
+ string blueprintUUID = 3;
}
message ExecutionOutput {
string requestId = 1;
- string response = 2;
+ repeated string response = 2;
ResponseStatus status = 3;
google.protobuf.Timestamp timestamp = 4;
+ string payload = 5;
+ string errMsg = 6;
}
enum ResponseStatus {
}
enum PackageType {
- PYTHON = 0;
- ANSIBLE = 1;
+ pip = 0;
+ ansible_galaxy = 1;
+ utilities = 2;
}
service CommandExecutorService {
+ // rpc to upload the CBA
+ rpc uploadBlueprint (UploadBlueprintInput) returns (UploadBlueprintOutput);
+ // prepare Python environment
rpc prepareEnv (PrepareEnvInput) returns (ExecutionOutput);
+ // execute the actual command.
rpc executeCommand (ExecutionInput) returns (ExecutionOutput);
}