-
Notifications
You must be signed in to change notification settings - Fork 6
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
Create a test client for the M1 interface #20
Comments
Ultimately, we need to provide a usable and maintainable M1 client for normal use. Rather than develop this separately from this test client, I wonder if we can't just combine them into a single tool. With that ultimate goal in mind, the idea of a hand-coded implementation of the OpenAPI doesn't feel like a good use of effort when the API client binding can be autogenerated. |
Started development on some general use M1 client python classes and will add a testing specific CLI frontend python app. |
I now have one general use python class rt_m1_client.M1Client which can perform the ProvisioningSession and ContentHostingProvisioning operations and return the results as Python types. I still need to add ServerCertificates and ContentProtocolsDiscovery APIs to this. I'm also planning on creating a rt_m1_client.M1Session class which will manage multiple interactions with the Application Function via the M1Client class in order to provide a higher level access. This will do things like create a ProvisioningSession, provision certificates and setup the ContentHostingConfiguration in one operation, returning one or more ServiceAccessInformation objects for publication. This will provide the higher level access that an Application Provider should need and can then be written into a daemon process to manage configurations. |
M1Client can now perform API operations and interpret responses for:
I'm currently testing it with a fixed Python application (i.e. no command line options just a series of test calls) which creates a provisioning session, server certificate and configures Big Buck Bunny through an HTTPS distribution via the content hosting configuration. At the moment it's not quite working end-to-end so I'm tracking down if this is a problem with the test client or the AF. Next step is add the M1Session class and create the command line app to control it. |
Got the simple M1 client app working after fixing some AF code issues. Have successfully tested:
Have made a start on the M1Session class and CLI app to control it. This CLI will have commands to create a new stream (new provisioning session, check content protocols, allocate certificates if SSL being used, create a ContentHostingConfiguration using an ingest URL and optional media entry point URL suffix), list existing provisioning sessions, renew certificates, destroy a stream/provisioning session and all certificates associated with it. |
The M1 Session tool and The renewal should be able to be done by hand by:
The proposed renewal commands would perform the above tasks automatically and be able to detect the certificates that need renewal then when they get close to expiry. There also needs to be a I'll close this ticket for the Release Candidate and raise a new one for the certificate renewal as a backlog issue. |
Description
Create a command line client that can be used to test the M1 interface of a 5GMS AF. This client shall implement the client side requests for the following M1 APIs and display the results:
Location
response) should be printed to the console in response.Location
response) should be printed to the console in response.This will be useful in testing issues #15, #16, #17 & #18.
This should be implemented as command line wrapper application around a core library or Python module which implements the M1 client interface so that the library or Python module can be reused for unit testing. This should not use the openapi-generator bindings so that correct implementation of those bindings can be tested.
Relevant specifications and corresponding clauses
TS 26.512 (v17.2.0):
The text was updated successfully, but these errors were encountered: