Skip to content

Conversation

@bneradt
Copy link
Contributor

@bneradt bneradt commented Feb 1, 2023

This is the trivial (i.e., non-conflicting) merge from 10-Dev into master. Master has been merged frequently into 10-Dev, as recently as this morning. Thus this merge brings master to be the same content as 10-Dev.

@zwoop points out that we probably want to "merge" this rather "squash and merge".

bneradt and others added 30 commits September 9, 2021 16:30
This reverts commit 4208ecb.

Reverting the removal of the incompatible changes that we took out of
master so that those incompatible changes will be in our 10-Dev branch.
…ections (apache#8623)

* For client connections, disable setting SO_LINGER by default
This commit introduces JSONRPC 2.0 support for ATS.
This basically replaces the existing binary protocol to handle mgmt queries for traffic_server, removes the need of having traffic_manager as a local client to talk with traffic_server, now the only binary that is needed to be running is traffic_server.
traffic_ctl(and any tool that uses the legacy protocol) is updated to talk with the JSONRPC node directly using this as a protocol format. 
Although the binary is still built, traffic_manager is no longer needed to run traffic_server.
traffic_ctl uses the same CLI options as before,it only adds a bunch of new handy options to play around with JSON.
With some exception(noted in the docs) all the existing mgmt API handlers are still honoured and use the JSONRPC server instead of the mgmt api, which gives us the same compatibility for local clients.

Summary of changes:

traffic_server:
- JSONRPC protocol implementation(Server and Manager)
- JSONRPC Handlers(API’s):
   Configuration, Metrics, Storage, Records, Host, Plugins. This basically covers all the existing traffic_ctl cli api’s.
- Configuration support for JSONRPC server.
- Add JSONRPC support for traffic_ctl. This now uses JSONRPC as protocol.
- Add JSON Schema for request and response verification(not used inside the server, this is for documentation and validation purposes only)
- Merge FileManager and ConfigManager  and make it a Singleton.

Tools:
- traffic_top is updated to talk with the JSONRPC node instead of the legacy MGMT API.
- Remove TM connectivity from traffic_crashlog(stacktrace is removed)

Documentation:
JSONRPC 2.0 general docs
Traffic_ctl docs update
API implementation with JSNORPC

Unit Test:
All tests are updated to use traffic_server binary.
Unit test extension to work around jsonrpc request/responses.

Several changes around the Errata:
- Implement Rv constructor that takes an rvalue Errata.
- Implement Errata constructor to take an std::error_code
- Implement Errata::push(Errata) method (was declared).
…ill dump the file in the config folder by default, it can be disabled by parameter if needed. (apache#8641)

With this change I am also removing the need to specify the runroot file when calling traffic_ctl(jsonrpc).
Base on this change all the tests were adjusted.
We put in some symbols to keep ABI compatibility between 9.1.x and
9.2.x. We do not need nor want these symbols in 10.x. Removing them.
Merging the following master HEAD into 10-Dev:
0ae34d4
Make ssl_multicert_loader use traffic_server binary instead of traffic_manager.
With this change the expected return code was also updated to the exit code
returned by the fatal call(EX_SOFTWARE(70)) in traffic_server.
Add Input option to invoke a rpc function by specifying the method name and the parameters directly
from the command line.
… easy to use. 'all,req,resp' are now grouped into the '--format rpc' option. (apache#8704)
* Update traffic_ctl to query HostStatus directly

- Updates HostStatus to eliminate stats creation.
- Updates traffic_ctl JSON-RPC to query HostStatus directly.
- adds in a new persistance mechanism for HosStatus.

* Changes from review comments.

* remove redundant 'const'.
)

* Require use of 'override' keyword when valid. (apache#8737)

Co-authored-by: Walt Karas <wkaras@yahooinc.com>
(cherry picked from commit 97ee33c)

* Add use of override keyword to RPC code.

Co-authored-by: Walt Karas <wkaras@yahooinc.com>
Merge the master master branch, currently
39c3de5, into 10-Dev.
Some tests create a so-called sandbox directory, use it for the files
the object under test creates, then remove that temporary sandbox
directory. To do this they use getTemporaryDir(). The test_jsonrpcserver
test attempted to do the same thing, but since that function wasn't
readily available, it used a similarly sounding
fs::temp_directory_path(). That function, however, just references /tmp.
As a result, test_jsonrpcserver would store files in /tmp then remove
/tmp instead of a test-specific temporary directory. This is a problem
since it would remove other processes' temporary files stored in /tmp
along with its own test files. This patch fixes this by creating
getTemporaryDir() for test_jsonrpcserver and calling that instead.

Fixes apache#8792
This merges the lastest master changes into 10-Dev.
This updates the repository's .gitignore file to ignore the JSONRPC
traffic_ctl and the overridable_txn_vars.cc generated files.
Merges in from master commit 6ad81f3

Conflicts:
	proxy/http/HttpSM.cc
We have supported response body data sink for a while but have never
provided the analogous functionality for request bodies. This adds the
ability for a plugin to register for a request body sink transformation.
- Add default configuration file.
- Re-order the documentation related to the configuration of the JSONRPC node, this now follows the existing documentation style.
…he formatting type. (apache#8852)

- This also changesthe output style for a better quick read.
…alling admin_server_start_drain when it was supposed to call admin_server_stop_drain. (apache#8856)
This merges the latest ASF master branch into 10-Dev.

Conflicts:
	src/traffic_server/traffic_server.cc
This was somehow missed with the latest merge.
 Conflicts:
	doc/admin-guide/files/sni.yaml.en.rst
SolidWallOfCode and others added 20 commits December 3, 2022 22:24
* Remove cqhv log field

* Update a comment
Co-authored-by: Serris Lew <lserris@apple.com>
Co-authored-by: Bryan Call <bcall@apache.org>
* Remove deprecated TS APIs

* Update documenet

* Fix doc format
Conflicts:
      doc/admin-guide/files/records.config.en.rst
      include/tscore/Ptr.h
      mgmt/RecordsConfig.cc
      src/records/RecLocal.cc
This addresses the following link error that Debian based builds were
experiences with the `make check` target:

root@4a3eeaf3152e:/var/tmp/trafficserver/mgmt/rpc# make V=1 test_jsonrpcserver
/bin/bash ../../libtool  --tag=CXX   --mode=link ccache c++ -std=c++17 -g -pipe -Wall -Wextra -Wno-ignored-qualifiers -Wno-unused-parameter -Wno-format-truncation -Wno-cast-function-type -Wno-stringop-overflow -O3 -feliminate-unused-debug-symbols -fno-strict-aliasing -Wno-invalid-offsetof -Wno-noexcept-type -Wsuggest-override -mcx16  -rdynamic -Wl,--as-needed  -o test_jsonrpcserver server/unit_tests/test_jsonrpcserver-unit_test_main.o test_jsonrpcserver-IPCSocketClient.o server/unit_tests/test_jsonrpcserver-test_rpcserver.o libjsonrpc_protocol.la libjsonrpc_server.la ../../src/tscpp/util/libtscpputil.la ../../src/records/librecords_p.a ../../src/tscore/libtscore.la ../../iocore/eventsystem/libinkevent.a ../../src/records/librecords_p.a ../../iocore/eventsystem/libinkevent.a ../../src/tscore/libtscore.la ../../mgmt/libmgmt_p.la ../../proxy/shared/libUglyLogStubs.a -lyamlcpp -lhwloc  -lpthread -ldl
libtool: link: ccache c++ -std=c++17 -g -pipe -Wall -Wextra -Wno-ignored-qualifiers -Wno-unused-parameter -Wno-format-truncation -Wno-cast-function-type -Wno-stringop-overflow -O3 -feliminate-unused-debug-symbols -fno-strict-aliasing -Wno-invalid-offsetof -Wno-noexcept-type -Wsuggest-override -mcx16 -rdynamic -Wl,--as-needed -o .libs/test_jsonrpcserver server/unit_tests/test_jsonrpcserver-unit_test_main.o test_jsonrpcserver-IPCSocketClient.o server/unit_tests/test_jsonrpcserver-test_rpcserver.o  ./.libs/libjsonrpc_protocol.a ./.libs/libjsonrpc_server.a ../../src/tscpp/util/.libs/libtscpputil.so ../../src/records/librecords_p.a ../../iocore/eventsystem/libinkevent.a ../../src/tscore/.libs/libtscore.so ../../mgmt/.libs/libmgmt_p.a ../../proxy/shared/libUglyLogStubs.a /var/tmp/trafficserver/lib/yamlcpp/.libs/libyamlcpp.a -lhwloc -lpthread -ldl -Wl,-rpath -Wl,/var/tmp/ts_build/lib
/usr/bin/ld: ../../iocore/eventsystem/libinkevent.a(EventSystem.o): undefined reference to symbol '_ZN2ts13svtoi_convertE'
/usr/bin/ld: ../../src/tscpp/util/.libs/libtscpputil.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [Makefile:1216: test_jsonrpcserver] Error 1

Note that libinkevent.a has a dependency upon ts::svtoi_convert. This is
provided by libtscpputil.la, so it must come later in the library order
when provided to the linker.
* Fix build issues in H3 unit tests

* Use ifndef
  - builds quiche
  - building based on version releases of the ng tools
  - builds the applications for nghttp2
…che#9314)

ET_UDP has to have a valid value because it's used to check the number of threads for the type.
Conflicts:
      plugins/lua/ts_lua_http_config.c
      tests/gold_tests/autest-site/trafficserver.test.ext
@bneradt bneradt added this to the 10.0.0 milestone Feb 1, 2023
@bneradt bneradt requested a review from bryancall February 1, 2023 02:52
@bneradt bneradt self-assigned this Feb 1, 2023
@zwoop zwoop marked this pull request as draft February 1, 2023 03:59
@zwoop
Copy link
Contributor

zwoop commented Feb 1, 2023

I converted this to a Draft, to make sure we don't merge it, yet.

@brbzull0
Copy link
Contributor

brbzull0 commented Feb 1, 2023

Just for the record, this does contains #9264 records.yaml (already approved)

@bryancall bryancall marked this pull request as ready for review February 1, 2023 19:04
Copy link
Contributor

@zwoop zwoop left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I checked every single line, looks good.

@bryancall bryancall merged commit 638d8fd into apache:master Feb 1, 2023
@bneradt bneradt deleted the merge_10_dev_into_master branch February 1, 2023 19:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants