Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepare v0.39.1 #1035

Merged
merged 8 commits into from
Feb 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions bdd/data/python-weather-startup-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"appConfig": {
"current": [
"temperature_2m",
"is_day",
"rain",
"snowfall",
"wind_speed_10m"
]
},
"args": [{ "cities": ["Warszawa", "Berlin", "Moskwa"] }]
}
9 changes: 8 additions & 1 deletion bdd/features/e2e/E2E-010-cli.feature
Original file line number Diff line number Diff line change
Expand Up @@ -174,4 +174,11 @@ Feature: CLI tests
When I execute CLI with "seq send ../packages/endless-names-output.tar.gz"
And I execute CLI with "seq start - --startup-config ../bdd/data/seq-startup-config.json"
And I execute CLI with "inst info -"
Then Instance info should contain provided parameters
Then Instance info should contain provided parameters in "seq-startup-config.json"

@ci-api @cli
Scenario: E2E-010 TC-021 Test Start sequence in python with startup-config
When I execute CLI with "seq send ../packages/python-weather-args.tar.gz"
And I execute CLI with "seq start - --startup-config ../bdd/data/python-weather-startup-config.json"
And I execute CLI with "inst info -"
Then Instance info should contain provided parameters in "python-weather-startup-config.json"
47 changes: 24 additions & 23 deletions bdd/step-definitions/e2e/cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -554,29 +554,30 @@ Then("I should see exitCode: {string}", async function (
}
});

Then("Instance info should contain provided parameters", async function (
this: CustomWorld
) {
const res = this.cliResources;
if (res.stdio) {
try {
const expected = await fs.promises
.readFile("../bdd/data/seq-startup-config.json", "utf8")
.then(JSON.parse);

const received = res.stdio[0] ? JSON.parse(res.stdio[0]) : null;
if (process.env.SCRAMJET_TEST_LOG) {
logger.debug("received.appConfig:", received.appConfig);
logger.debug("expected.appConfig:", expected.appConfig);
logger.debug("received.args:", received.args);
logger.debug("expected.args:", expected.args);
Then(
"Instance info should contain provided parameters in {string}",
async function (this: CustomWorld, file: string) {
const res = this.cliResources;
if (res.stdio) {
try {
const expected = await fs.promises
.readFile(`../bdd/data/${file}`, "utf8")
.then(JSON.parse);

const received = res.stdio[0] ? JSON.parse(res.stdio[0]) : null;
if (process.env.SCRAMJET_TEST_LOG) {
logger.debug("received.appConfig:", received.appConfig);
logger.debug("expected.appConfig:", expected.appConfig);
logger.debug("received.args:", received.args);
logger.debug("expected.args:", expected.args);
}
assert.deepEqual(received.appConfig, expected.appConfig);
assert.deepEqual(received.args, expected.args);
} catch (error) {
logger.error(error);
}
assert.deepEqual(received.appConfig, expected.appConfig);
assert.deepEqual(received.args, expected.args);
} catch (error) {
logger.error(error);
} else {
assert.fail("cliResources or stdio is undefined");
}
} else {
assert.fail("cliResources or stdio is undefined");
}
});
);
1 change: 0 additions & 1 deletion packages/api-client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
"license": "MIT",
"dependencies": {
"@scramjet/client-utils": "^0.39.0",
"@scramjet/manager-api-client": "^0.39.0",
"@scramjet/sth-config": "^0.39.0",
"@scramjet/symbols": "^0.39.0",
"n-readlines": "^1.0.1",
Expand Down
2 changes: 2 additions & 0 deletions packages/api-client/src/definitions.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/// <reference path="host-client.ts"/>
/// <reference path="manager-client.ts"/>
5 changes: 4 additions & 1 deletion packages/api-client/src/host-client.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
/// <reference path="./definitions.d.ts" />

import { ClientProvider, ClientUtils, ClientUtilsCustomAgent, Headers, HttpClient } from "@scramjet/client-utils";
import { STHRestAPI } from "@scramjet/types";
import { InstanceClient } from "./instance-client";
import { SequenceClient } from "./sequence-client";
import { HostHeaders } from "@scramjet/symbols";
import { ManagerClient } from "@scramjet/manager-api-client";
// eslint-disable-next-line import/no-cycle
import { ManagerClient } from "./manager-client";

/**
* Host client.
Expand Down
1 change: 1 addition & 0 deletions packages/api-client/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
export { HostClient } from "./host-client";
export { InstanceClient, InstanceInputStream, InstanceOutputStream } from "./instance-client";
export { SequenceClient } from "./sequence-client";
export * from "./manager-client";
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import { HostClient, } from "@scramjet/api-client";
/// <reference path="./definitions.d.ts" />

// eslint-disable-next-line import/no-cycle
import { HostClient } from "./host-client";
import { ClientUtils, ClientProvider, HttpClient, ClientUtilsCustomAgent } from "@scramjet/client-utils";
import { MRestAPI, LoadCheckStat } from "@scramjet/types";
import { Readable } from "stream";
Expand Down
46 changes: 36 additions & 10 deletions packages/cli/src/lib/commands/topic.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@ import { profileManager } from "../config";
import { displayEntity, displayStream } from "../output";
import { Option, Argument } from "commander";
import { initPlatform } from "../platform";
import { CommandCompleterDetails, CompleterDetailsEvent } from "../../events/completerDetails";
import {
CommandCompleterDetails,
CompleterDetailsEvent,
} from "../../events/completerDetails";

const validateTopicName = (topicName: string) => {
if (topicName.match(/^[\\a-zA-Z0-9_+-]+$/)) {
Expand All @@ -22,9 +25,19 @@ const validateTopicName = (topicName: string) => {
*/
export const topic: CommandDefinition = (program) => {
const format = profileManager.getProfileConfig().format;
const topicNameArgument = new Argument("<topic-name>").argParser(validateTopicName);
const contentTypeOption = new Option("-t, --content-type [content-type]", "Specifies type of data in topic")
.choices(["text/x-ndjson", "application/x-ndjson", "text/plain", "application/octet-stream"])
const topicNameArgument = new Argument("<topic-name>").argParser(
validateTopicName
);
const contentTypeOption = new Option(
"-t, --content-type [content-type]",
"Specifies type of data in topic"
)
.choices([
"text/x-ndjson",
"application/x-ndjson",
"text/plain",
"application/octet-stream",
])
.default("application/x-ndjson");

const topicCmd = program
Expand All @@ -41,44 +54,57 @@ export const topic: CommandDefinition = (program) => {
.addOption(contentTypeOption)
.description("Create topic")
.action(async (topicName, { contentType }) =>
displayEntity(getHostClient().createTopic(topicName, contentType), format)
displayEntity(
getHostClient().createTopic(topicName, contentType),
format
)
);

topicCmd
.command("delete")
.alias("rm")
.addArgument(topicNameArgument)
.description("Delete topic")
.action(async (topicName) => displayEntity(getHostClient().deleteTopic(topicName), format));
.action(async (topicName) =>
displayEntity(getHostClient().deleteTopic(topicName), format)
);

topicCmd
.command("get")
.addArgument(topicNameArgument)
.addOption(contentTypeOption)
.description("Get data from topic")
.action(async (topicName, { contentType }) =>
displayStream(getHostClient().getNamedData(topicName, {}, contentType))
displayStream(
getHostClient().getNamedData(topicName, {}, contentType)
)
);

topicCmd
.command("send")
.addArgument(topicNameArgument)
.argument("[file]")
.addOption(contentTypeOption)
.description("Send data on topic from file, directory or directly through the console")
.description(
"Send data on topic from file, directory or directly through the console"
)
.on(CompleterDetailsEvent, (complDetails: CommandCompleterDetails) => {
complDetails.file = "filenames";
})
.action(async (topicName, filename, { contentType }) => {
await getHostClient().sendTopic(
topicName,
filename ? await getReadStreamFromFile(filename) : process.stdin,
filename
? await getReadStreamFromFile(filename)
: process.stdin,
{},
contentType
);
});

topicCmd.command("ls")
topicCmd
.command("list")
.alias("ls")
.description("List information about topics")
.action(async () => displayEntity(getHostClient().getTopics(), format));
};
7 changes: 0 additions & 7 deletions packages/manager-api-client/.eslintrc.js

This file was deleted.

44 changes: 0 additions & 44 deletions packages/manager-api-client/package.json

This file was deleted.

1 change: 0 additions & 1 deletion packages/manager-api-client/src/index.ts

This file was deleted.

5 changes: 0 additions & 5 deletions packages/manager-api-client/test/pass.spec.ts

This file was deleted.

9 changes: 0 additions & 9 deletions packages/manager-api-client/tsconfig.build.json

This file was deleted.

23 changes: 0 additions & 23 deletions packages/manager-api-client/tsconfig.json

This file was deleted.

1 change: 0 additions & 1 deletion packages/middleware-api-client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
"dependencies": {
"@scramjet/api-client": "^0.39.0",
"@scramjet/client-utils": "^0.39.0",
"@scramjet/manager-api-client": "^0.39.0",
"@scramjet/multi-manager-api-client": "^0.39.0"
},
"devDependencies": {
Expand Down
2 changes: 1 addition & 1 deletion packages/middleware-api-client/src/middleware-client.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* eslint-disable no-console */
import { ClientProvider, ClientUtils } from "@scramjet/client-utils";
import { ManagerClient } from "@scramjet/manager-api-client";
import { ManagerClient } from "@scramjet/api-client";
import { MWRestAPI, MMRestAPI } from "@scramjet/types";

/**
Expand Down
3 changes: 1 addition & 2 deletions packages/multi-manager-api-client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@
},
"dependencies": {
"@scramjet/api-client": "^0.39.0",
"@scramjet/client-utils": "^0.39.0",
"@scramjet/manager-api-client": "^0.39.0"
"@scramjet/client-utils": "^0.39.0"
},
"devDependencies": {
"@scramjet/types": "^0.39.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/multi-manager-api-client/src/multi-cpm-client.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* eslint-disable no-console */
import { ClientProvider, ClientUtils, HttpClient } from "@scramjet/client-utils";
import { ManagerClient } from "@scramjet/manager-api-client";
import { ManagerClient } from "@scramjet/api-client";
import { DeepPartial, LoadCheckStat, ManagerConfiguration, MMRestAPI } from "@scramjet/types";

export class MultiManagerClient implements ClientProvider {
Expand Down
1 change: 0 additions & 1 deletion packages/runner/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ WORKDIR /app/

COPY ./dist/sth-config ./dist/sth-config
COPY ./dist/api-client ./dist/api-client
COPY ./dist/manager-api-client ./dist/manager-api-client
COPY ./dist/client-utils ./dist/client-utils
COPY ./dist/utility ./dist/utility
COPY ./dist/symbols ./dist/symbols
Expand Down
1 change: 0 additions & 1 deletion packages/runner/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
"dependencies": {
"@scramjet/api-client": "^0.39.0",
"@scramjet/client-utils": "^0.39.0",
"@scramjet/manager-api-client": "^0.39.0",
"@scramjet/model": "^0.39.0",
"@scramjet/obj-logger": "^0.39.0",
"@scramjet/symbols": "^0.39.0",
Expand Down
1 change: 0 additions & 1 deletion packages/sth/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ COPY ./dist/api-server ./dist/api-server
COPY ./dist/sth-config ./dist/sth-config
COPY ./dist/host ./dist/host
COPY ./dist/obj-logger ./dist/obj-logger
COPY ./dist/manager-api-client ./dist/manager-api-client
COPY ./dist/model ./dist/model
COPY ./dist/module-loader ./dist/module-loader
COPY ./dist/runner ./dist/runner
Expand Down
2 changes: 1 addition & 1 deletion packages/types/src/api-client/host-client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,5 +75,5 @@ export declare class HostClient {
getTopics(): Promise<STHRestAPI.GetTopicsResponse>;
getInstanceClient(id: string): InstanceClient;
getSequenceClient(id: string): SequenceClient;
getManagerClient(apiBase: string, utils: ClientUtils | undefined): import("../manager-api-client/manager-client").ManagerClient;
getManagerClient(apiBase: string, utils: ClientUtils | undefined): import("./manager-client").ManagerClient;
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export declare class ManagerClient {

constructor(apiBase: string, utils: ClientUtils | undefined);

getHostClient(id: string, hostApiBase: string): import("../api-client/host-client").HostClient;
getHostClient(id: string, hostApiBase: string): import("./host-client").HostClient;
getHosts(): Promise<MRestAPI.GetHostInfoResponse[]>;
getVersion(): Promise<STHRestAPI.GetVersionResponse>;
sendNamedData<T>(topic: string, stream: Parameters<HttpClient["sendStream"]>[1], requestInit?: RequestInit, contentType?: string, end?: boolean): Promise<T>;
Expand Down
Loading
Loading