Skip to content

Commit

Permalink
chore: refactor keploy v2 codebase (keploy#1571)
Browse files Browse the repository at this point in the history
* chore: wip refactoring v2 codebase

Signed-off-by: slayerjain <shubhamkjain@outlook.com>

* chore: refactor v2 cmds by removing duplicate code

Signed-off-by: Shubham Jain <shubhamkjain@outlook.com>

* chore: refactor the project structure and some interfaces

Signed-off-by: Shubham Jain <shubhamkjain@outlook.com>

* chore: add arg names in intrumentation interface

Signed-off-by: Shubham Jain <shubhamkjain@outlook.com>

* chore: add ctx to intrumentation.run method

Signed-off-by: Shubham Jain <shubhamkjain@outlook.com>

* chore: update pending subcommand with new structs

Signed-off-by: Shubham Jain <shubhamkjain@outlook.com>

* chore: add Hook interface to start hooks, proxy

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: add register for mock and config comds

Signed-off-by: Shubham Jain <shubhamkjain@outlook.com>

* chore: rename module to server/v2 and add more interfaces

Signed-off-by: Shubham Jain <shubhamkjain@outlook.com>

* chore: add record service impl

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add mock-record service

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: modularize proxy package

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: add testSetIds

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: implement app module to manage running apps

Signed-off-by: Shubham Jain <shubhamkjain@outlook.com>

* chore: update record

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: implement hooks module in core

Signed-off-by: Shubham Jain <shubhamkjain@outlook.com>

* chore: implement run service

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: add imports and test impl

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: update record service

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: update record service

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add test service

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add mocktest and tools service

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: refactor proxy and http parser

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: add err chan in test service

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add treeDb to proxy

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: update integration interface

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: update http parser

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: update generic parser

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: add enum for integration type

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* style: refactored serve package

Signed-off-by: Pranshu Srivastava <iampranshu24@gmail.com>

* chore: update postgres parser

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: initial refactoring of mysql parser

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: initial refactoring of mongo parser

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: update grpc parser

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: update mongo parser

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: update mysql parser

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* reafactor:platform related changes (keploy#1600)

* refactor: mock initaliser and filtering (keploy#1615)

* chore: update panic recovery function across codebase

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: cli integration

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: passed context in some functions

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: correct functions

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: correct functions

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: integrate CLI

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: correct functions

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chroe: remove unwanted files

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: remove deployment folder

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: update functions

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: changed fucntion name

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: remove cycle dep

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: correct imports

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add start to replay

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: clean tele

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: go routine to DBs

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* refactor:context cancell is create yaml (keploy#1618)

* chore: go routine to DBs

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: correct fucntion names

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: correct testDB fucntions

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: remove extra fields in report

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* refactor:using yaml defind write functions in report (keploy#1627)

* chore: refactor hooks, app, proxy

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* fix: mockdb functions

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: db functions

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add ctx in yaml

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: refactor apps,core

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: fix proxy port

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: refactor apps,core for userIP

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: add installationId

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: remove compilation issues

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: correct cli

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: fix record command

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: fix bind bug

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: update graphql server

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: record working

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: releasing eBPF resources

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: releasing eBPF resources-2

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: remove extra keploy path

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: remove err log as parent is already doing it.

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: correct mocking

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add todo

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: fix reports

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: remove unnecessary go for saving mocks

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: fix app errors

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: service update

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: correct record service

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: correct record service

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: correct replay

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add err grps

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: remove todos

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: create provider package

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: remove errs

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: correct error handling

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: correct error handling

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: correct error handling

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: correct debug flag

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: correct test service

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add delay

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: correct report version

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: remove unused file

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* modify context cancellation function in exec.Cmd

* chore: passed error channel to proxy

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: add context.Canceled

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: correct one-click install

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add extra fields in report

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* modified error logs for context cancelled errors

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: refactor logger.error()

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: remove ioutil

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add linter

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: fix custom naming

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: update readMe

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: update error logs

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: fix import cycle

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: update error logs

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: synced some commits with main

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: add record timer

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: return ctx error where needed

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: correct replay service

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: refactor folder names

* chore: remove closing of error channel again:

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: correct time

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: closing outgoing channel after context done

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: lint cli, config, util

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: lint services

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: lint platform

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: lint models

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: lint graph

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add error group in socket listeners of ebpf

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: lint intergrations

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: lint proxy

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: resolve lint

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: lint

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add errorgroups in app, core

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: refactor test

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add delay

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add errorgroupin proxy

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: add error group in generic parser

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: add error group in grpc parser

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: add error group in postgres parser

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: refactor replay

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add break

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: refactor unload

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: refactor errors

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: refactor errors

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: linters

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: handle ctx done in socket listeners

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: fix ctx cancel in dns servers

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: fix ctx cancel in proxy and readconn util functions

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: fix ctx cancel in generic parser

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: remove rand

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: fix ctx cancel in http parser

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: fix ctx cancel in mongo  parser

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: fix ctx cancel in postgres parser

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: add nil check for error group typecast & handle ctx cancel in http parser

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: fix ctx cancel in mongo & mysql parser

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore:pass right context in parser

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore:lint

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: add ctx impl in create yaml

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: correct platform

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add ctx in delay

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: fix closing of mock channel

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: add go routine in tele

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add tele in record

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add nil check in channel in proxy

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: add errgrps

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: remove delays

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add telemetry

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: lint

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: remove print

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: fix ebpf resources unloading errors

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: remove print

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: remove print

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: fix log

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add info log

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: change file permissions and remove errCh in outgoing

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: uncomment java setupCA

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: add buffered channels

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add new err grps

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add new err grps

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* chore: add diff ctx cancel for hooks and proxy

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: ctx lint

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: remove print

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* chore: fix ctx

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* filter mocks

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* after setting mocks

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* fix: sorting mocks

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

* fix: inital config mocks issue

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* fix: return in case of match error in mongo, postgres

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* fix: linter

Signed-off-by: charankamarapu <kamarapucharan@gmail.com>

---------

Signed-off-by: slayerjain <shubhamkjain@outlook.com>
Signed-off-by: Shubham Jain <shubhamkjain@outlook.com>
Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>
Signed-off-by: charankamarapu <kamarapucharan@gmail.com>
Signed-off-by: Pranshu Srivastava <iampranshu24@gmail.com>
Co-authored-by: gouravkrosx <gouravgreatkr@gmail.com>
Co-authored-by: charankamarapu <kamarapucharan@gmail.com>
Co-authored-by: Pranshu Srivastava <iampranshu24@gmail.com>
Co-authored-by: Shivam Sourav Jha <60891544+shivamsouravjha@users.noreply.github.com>
  • Loading branch information
5 people committed Mar 13, 2024
1 parent e4f7cad commit c139af2
Show file tree
Hide file tree
Showing 227 changed files with 14,632 additions and 5,676 deletions.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/--documentation-update.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ labels: [Documentation]
body:
- type: markdown
attributes:
value: Thank you for taking the time to file a Documentation update.
value: Thank you for taking the time to file a Documentation tools.
- type: textarea
attributes:
label: What do you want to add to the docs? (please state reasons if any)
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
uses: stefanbuck/github-issue-parser@v3
id: issue-parser
with:
template-path: .github/ISSUE_TEMPLATE/--documentation-update.yaml
template-path: .github/ISSUE_TEMPLATE/--documentation-tools.yaml

- name: Set labels based on repository field
uses: redhat-plumbers-in-action/advanced-issue-labeler@v2
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test_workflow_scripts/golang-docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ docker network create keploy-network
docker run --name mongoDb --rm --net keploy-network -p 27017:27017 -d mongo

# Generate the keploy-config file.
docker run --name keploy-v2 -p 16789:16789 --privileged --pid=host -v $(pwd):$(pwd) -w $(pwd) -v /sys/fs/cgroup:/sys/fs/cgroup -v /sys/kernel/debug:/sys/kernel/debug -v /sys/fs/bpf:/sys/fs/bpf -v /var/run/docker.sock:/var/run/docker.sock --rm keployv2 generate-config
docker run --name keploy-v2 -p 16789:16789 --privileged --pid=host -v $(pwd):$(pwd) -w $(pwd) -v /sys/fs/cgroup:/sys/fs/cgroup -v /sys/kernel/debug:/sys/kernel/debug -v /sys/fs/bpf:/sys/fs/bpf -v /var/run/docker.sock:/var/run/docker.sock --rm keployv2 config --generate

# Update the global noise to ts.
config_file="./keploy-config.yaml"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test_workflow_scripts/golang-linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ if [ -f "./keploy-config.yaml" ]; then
fi

# Generate the keploy-config file.
./../../keployv2 generate-config
./../../keployv2 config --generate

# Update the global noise to ts.
config_file="./keploy-config.yaml"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test_workflow_scripts/node-linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ docker run --name mongoDb --rm -p 27017:27017 -d mongo
# Install the required node dependencies.
npm install

# Edit the connection.js file to connect to local mongodb.
# Edit the conn.js file to connect to local mongodb.
file_path="src/db/connection.js"
sed -i "s/mongoDb:27017/localhost:27017/" "$file_path"

Expand Down Expand Up @@ -70,7 +70,7 @@ sudo -E env PATH=$PATH ./../../keployv2 test -c "npm test" --delay 5 --coverage
sudo -E env PATH=$PATH ./../../keployv2 test -c 'npm start' --delay 10 --testsets test-set-0

# Generate the keploy-config file.
./../../keployv2 generate-config
./../../keployv2 config --generate

# Update the global noise to ts.
config_file="./keploy-config.yaml"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test_workflow_scripts/python-docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ docker network create backend
rm -rf keploy/

# Generate the keploy-config file.
docker run --name keploy-v2 -p 16789:16789 --privileged --pid=host -v $(pwd):$(pwd) -w $(pwd) -v /sys/fs/cgroup:/sys/fs/cgroup -v /sys/kernel/debug:/sys/kernel/debug -v /sys/fs/bpf:/sys/fs/bpf -v /var/run/docker.sock:/var/run/docker.sock --rm keployv2 generate-config
docker run --name keploy-v2 -p 16789:16789 --privileged --pid=host -v $(pwd):$(pwd) -w $(pwd) -v /sys/fs/cgroup:/sys/fs/cgroup -v /sys/kernel/debug:/sys/kernel/debug -v /sys/fs/bpf:/sys/fs/bpf -v /var/run/docker.sock:/var/run/docker.sock --rm keployv2 config --generate

# Update the global noise to ignore the Allow header.
config_file="./keploy-config.yaml"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test_workflow_scripts/python-linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ python3 manage.py makemigrations
python3 manage.py migrate

# Generate the keploy-config file.
./../../../keployv2 generate-config
./../../../keployv2 config --generate

#Clean any keploy folders.
sudo rm -rf keploy/
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ RUN go build -ldflags="-X main.dsn=$SENTRY_DSN_DOCKER -X main.version=$VERSION"
# === Runtime Stage ===
FROM debian:bookworm-slim

ENV IS_DOCKER_CMD=true
ENV KEPLOY_INDOCKER=true

# Update the package lists and install required packages
RUN apt-get update && \
RUN apt-get tools && \
apt-get install -y ca-certificates curl sudo && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,4 +176,4 @@ Whether you're a newbie coder or a wizard 🧙‍♀️, your perspective is gol

⚙️ [Installation Guide](https://keploy.io/docs/application-development/)

📖 [Contribution Guide](https://docs.keploy.io/docs/devtools/server-contrib-guide/)
📖 [Contribution Guide](https://docs.keploy.io/docs/devtools/server-contrib-guide/)
File renamed without changes.
22 changes: 22 additions & 0 deletions cli/cli.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// Package cli provides functionality for the command-line interface of the application.
package cli

import (
"context"

"github.com/spf13/cobra"
"go.keploy.io/server/v2/config"
"go.uber.org/zap"
)

type HookFunc func(context.Context, *zap.Logger, *config.Config, ServiceFactory, CmdConfigurator) *cobra.Command

// Registered holds the registered command hooks
var Registered map[string]HookFunc

func Register(name string, f HookFunc) {
if Registered == nil {
Registered = make(map[string]HookFunc)
}
Registered[name] = f
}
74 changes: 74 additions & 0 deletions cli/config.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package cli

import (
"context"
"errors"
"path/filepath"

"go.keploy.io/server/v2/config"

toolsSvc "go.keploy.io/server/v2/pkg/service/tools"
"go.keploy.io/server/v2/utils"

"github.com/spf13/cobra"
"go.uber.org/zap"
)

func init() {
Register("config", Config)
}

func Config(ctx context.Context, logger *zap.Logger, cfg *config.Config, servicefactory ServiceFactory, cmdConfigurator CmdConfigurator) *cobra.Command {
var cmd = &cobra.Command{
Use: "config",
Short: "manage keploy configuration file",
Example: "keploy config --generate --path /path/to/localdir",
PreRunE: func(cmd *cobra.Command, _ []string) error {
return cmdConfigurator.ValidateFlags(ctx, cmd, cfg)
},
RunE: func(cmd *cobra.Command, _ []string) error {

isGenerate, err := cmd.Flags().GetBool("generate")
if err != nil {
utils.LogError(logger, err, "failed to get generate flag")
return err
}

if isGenerate {
filePath := filepath.Join(cfg.Path, "keploy.yml")
if utils.CheckFileExists(filePath) {
override, err := utils.AskForConfirmation("Config file already exists. Do you want to override it?")
if err != nil {
utils.LogError(logger, err, "failed to ask for confirmation")
return err
}
if !override {
return nil
}
}
svc, err := servicefactory.GetService(ctx, cmd.Name(), *cfg)
if err != nil {
utils.LogError(logger, err, "failed to get service")
return err
}
var tools toolsSvc.Service
var ok bool
if tools, ok = svc.(toolsSvc.Service); !ok {
utils.LogError(logger, nil, "service doesn't satisfy tools service interface")
return err
}
if err := tools.CreateConfig(ctx, filePath, ""); err != nil {
utils.LogError(logger, err, "failed to create config")
return err
}
return nil
}
return errors.New("only generate flag is supported in the config command")
},
}
if err := cmdConfigurator.AddFlags(cmd, cfg); err != nil {
utils.LogError(logger, err, "failed to add flags")
return nil
}
return cmd
}
44 changes: 44 additions & 0 deletions cli/examples.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package cli

import (
"context"
"fmt"

"go.keploy.io/server/v2/cli/provider"
"go.keploy.io/server/v2/config"
"go.keploy.io/server/v2/utils"
"go.uber.org/zap"

"github.com/spf13/cobra"
)

func init() {
Register("example", Example)
}

func Example(_ context.Context, logger *zap.Logger, _ *config.Config, _ ServiceFactory, _ CmdConfigurator) *cobra.Command {
var customSetup bool
var cmd = &cobra.Command{
Use: "example",
Short: "Example to record and test via keploy",
RunE: func(cmd *cobra.Command, _ []string) error {
customSetup, err := cmd.Flags().GetBool("customSetup")
if err != nil {
utils.LogError(logger, nil, "failed to read the customSetup flag")
return err
}
if customSetup {
fmt.Println(provider.Examples)
return nil
}
fmt.Println(provider.ExampleOneClickInstall)
fmt.Println(provider.WithoutexampleOneClickInstall)
return nil
},
}
cmd.SetHelpTemplate(provider.CustomHelpTemplate)

cmd.Flags().Bool("customSetup", customSetup, "Check if the user is using one click install")

return cmd
}
79 changes: 79 additions & 0 deletions cli/mock.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
package cli

import (
"context"
"errors"

"github.com/spf13/cobra"
"go.keploy.io/server/v2/config"
recordSvc "go.keploy.io/server/v2/pkg/service/record"
replaySvc "go.keploy.io/server/v2/pkg/service/replay"
"go.keploy.io/server/v2/utils"
"go.uber.org/zap"
)

func init() {
Register("mock", Mock)
}

func Mock(ctx context.Context, logger *zap.Logger, cfg *config.Config, serviceFactory ServiceFactory, cmdConfigurator CmdConfigurator) *cobra.Command {
var cmd = &cobra.Command{
Use: "mock",
Short: "Record and replay ougoung network traffic for the user application",
Example: `keploy mock -c "/path/to/user/app" --delay 10`,
RunE: func(cmd *cobra.Command, _ []string) error {
record, err := cmd.Flags().GetBool("record")
if err != nil {
utils.LogError(logger, nil, "failed to read the record flag")
return err
}
replay, err := cmd.Flags().GetBool("replay")
if err != nil {
utils.LogError(logger, nil, "failed to read the replay flag")
return err
}
if !record && !replay {
return errors.New("missing required --record or --replay flag")
}
if record && replay {
return errors.New("both --record and --replay flags are set")
}
if record {
svc, err := serviceFactory.GetService(ctx, "record", *cfg)
if err != nil {
utils.LogError(logger, err, "failed to get service")
return err
}
var recordService recordSvc.Service
var ok bool
if recordService, ok = svc.(recordSvc.Service); ok {
return recordService.StartMock(ctx)
}
utils.LogError(logger, nil, "service doesn't satisfy record service interface")
return err

}
if replay {
svc, err := serviceFactory.GetService(ctx, "replay", *cfg)
if err != nil {
utils.LogError(logger, err, "failed to get service")
return err
}
var replayService replaySvc.Service
var ok bool
if replayService, ok = svc.(replaySvc.Service); ok {
return replayService.ProvideMocks(ctx)
}
utils.LogError(logger, nil, "service doesn't satisfy replay service interface")
return err
}
return nil

},
}
if err := cmdConfigurator.AddFlags(cmd, cfg); err != nil {
utils.LogError(logger, err, "failed to add flags")
return nil
}
return cmd
}
Loading

0 comments on commit c139af2

Please sign in to comment.