RIME v17 SDK Breaking Changes
This is a guide on how to port your v16-based SDK code to v17 SDK.
Sample Notebooks
Compare the v16 notebook (previous release) and the v17 notebook (current release) to understand the differences in user experience.
Class Name Changes
The SDK class names have been renamed to avoid “RIME”.
#v16
from rime_sdk import RIMEClient, RIMEStressTestJob, RIMEProject, RIMEFirewall
#v17 improvement
from rime_sdk import Client, Project, Job, TestRun, Firewall
Authentication
Authentication errors are thrown when you establish the client as opposed to when you use the client.
#v16
rime_client = RIMEClient(CLUSTER_URL, API_TOKEN)
project = rime_client.create_project(name = "", description = "")
"Unauthenticated API error"
#v17 improvement
client = Client(CLUSTER_URL, API_TOKEN)
"Unauthenticated API error"
Project Class Enhancements
Firewall CRUD operations have moved from the client to project class.
Ability to list test runs part of a project.
#v16
project = rime_client.create_project(name = "", description = "")
rime_client.create_firewall(name = "", bin_size_seconds = "", test_run_id = "", project_id = "")
firewall = rime_client.get_firewall_for_project(project_id="")
#v17 improvement
project = client.create_project(name = "", description = "")
project.create_firewall(name = "", bin_size = "", test_run_id = "")
firewall = project.get_firewall()
Firewall Creation
When creating a firewall, you specify the bin size as a string as opposed to bin size in seconds float value.
#v16
rime_client.create_firewall(name = "", bin_size_seconds = "=60*60", test_run_id = "", project_id = "")
rime_client.create_firewall(name = "", bin_size_seconds = "=60*60*24", test_run_id = "", project_id = "")
#v17 improvement
project.create_firewall(name = "", bin_size = "hour", test_run_id = "")
project.create_firewall(name = "", bin_size = "day", test_run_id = "")
Job and TestRun classes
The SDK now has Job and TestRun classes.
The Job class is used to track the status of a job that has been kicked off.
The TestRun class is used after a job has successfully completed and you want to access the results or the test run.
#v16
stress_job = rime_client.start_stress_test(test_run_config = "", project_id = "")
stress_job.get_status(verbose = "", wait_until_finish = "")
rime_client.list_stress_test_jobs()
stress_job.get_link()
stress_job.get_test_run_result()
#v17 improvement
job = client.start_stress_test(test_run_config = "", project_id = "")
job.get_status(verbose = "", wait_until_finish = "")
client.list_stress_test_jobs()
project.list_test_runs()
test_run = job.get_test_run()
test_run.get_link()
test_run.get_result_df()
Querying Capabilities
Results are queried from the TestRun class as opposed to the Job class.
Querying method names have changed.
#v16
stress_job = rime_client.start_stress_test(test_run_config = "", project_id = "")
stress_job.get_test_run_result()
stress_job.get_test_cases_result()
#v17 improvement
job = rime_client.start_stress_test(test_run_config = "", project_id = "")
test_run = job.get_test_run()
test_run.get_result_df()
test_run.get_test_cases_df()