AWS Thinkbox Discussion Forums

Deadline API and how you can connect to Deadline from another city

I apologize if my questions seem amateurish but I have already searched through a huge amount of information and simply cannot solve the issue on my own.

In order not to stretch this Topic into several pages, I will ask questions as answers come from you.

I have several computers (slaves) and there is a main server computer from which everything is managed and everything is connected to it. I have no problems with communication between them. However, I have a task to make a script/bot that will send requests to my main computer server (by the type of such requests Jobs — Deadline 10.1.23.6 documentation). Accordingly, these requests will be processed and return a response or the necessary action on my server. For example, I will send a POST request (for example, Submit Job). My server computer will see this request and submit a new project.

SO THE ACTUAL QUESTION IS: how/where/through what can I connect to my server computer so that it listens to requests sent to it and performs the necessary action in response? That is, I literally need, being in another city or place, to be able to open my bot (for example, on my phone) and send a request to my main computer server, which is located in another city, and in response receive the requested action.

I have read a huge amount of documentation but I have not been able to get the information I need. It is logical to assume that this can be done through the API (above I dropped the link where there are all the requests that are in the API), but I still didn’t understand what program or distribution I need to install in order to set there an IP address and a port that will listen to wait for commands like those which are available in the API (link above).

I tried to do it via NGINX, but this topic is for a separate conversation. If you answer me that I’m right and the functionality I need can be implemented through NGINX, then I’ll explain to you why it couldn’t be done through NGINX :smiley:

If your remote computer does not have access to the repository filesystem, you should use Remote Connection Server — Deadline 10.1.23.6 documentation instead. You start the RCS on any computer next to your repository, which has access to the filesystem. Then you send requests to the machine running RCS.
This works through http(s).
Then you point your client or standalone API to RCS.
Don’t know if this answers your question.

Aha, I see. So my steps are as follows:

  1. I am running Remote Connection Server (deadlinercs.exe )

  2. And I’m trying to send GET/POST/PUT etc. requests (through Postman software, for example) addressed to deadlinercs.exe (to which IP address and port should I send them btw?)

  3. As a result, I get an answer and enjoy my life (?) :grin:

That’s correct.
Get the IP of the machine running RCS. It is serving on 0.0.0.0, which means it listens to all its network interfaces (if it has multiple). On Windows, find the address by calling ipconfig.
Let’s say it’s address is 10.1.20.30.
You send your requests to 10.1.20.30:4433, either through postman, or you could use Standalone Python API — Deadline 10.1.23.6 documentation
Enjoy

If I want to send a request in this way being far from the server, is it logical that I need to use an external IP address, and not a local one (like 192.168.0.1)?

If so, why do I get such an error in Postman every time?

Yes, you need an external address, unless you use a VPN to attach to the same “local” network.
This could mean many things, firewall on the server machine, etc. Are you able to ping this ip?

Yes, I can. These ports are open in the firewall. In the router settings ports are forwarded as well :pensive:

I read on the Internet and someone advised to check whether the ports are open or not through the utorrent program. In this software you can set any port that you want to open. And just in this program if I open the same port (4433), then I will be able to send a request via Postman and get the desired response.
But this does not solve the problem, since the request will be sent to utorrent, and I need to go to deadlinercs. And as we know, several programs cannot use one port at the same time.

Oh ok, then maybe you are not using the TLS certificate. It is explained in the link I posted above.

I think I use it. It is also used when installing deadline client. Otherwise I wouldn’t have been able to complete the installation :face_exhaling:

The client and API are separate things.
If you are using the standalone api, there is an example
con = Connect('WebServiceName', 4434, True, "\Path\To\ca.crt", False)
where the fourth argument is the certificate.
If you use a separate http client, not sure how to pass it, refer to its documentation.

You won’t believe it, but I’m making a little progress.
After your messages about TLS security certificates I thought, what if I add authorization by certificate to Postman itself:

After that, I tried again to send a request to my IP address with enabled deadlinercs.exe. In response, I received this warning but the request itself passed:

But just a minute later I sent the same request again and this time I received a response without any errors or warnings:

However, another problem appeared. I am not getting the expected response that should come to me. Instead, the status “404 Not found” is shown (look at the screenshot below), which means that requested data could not be found, or requested command could not be found, according to information from this link REST Overview — Deadline 10.1.23.6 documentation

That’s the question, what am I doing wrong now if I have to get an answer of this kind:

Alright, now the connection works, but you are calling the wrong endpoint. That’s why you are getting 404. I am not sure. Have a look at the output of the running deadlinercs. There might be indications why the endpoint failed.

1 Like

Hmm, I’m not sure if I can see anything useful in deadlinercs window (what do you mean about “output of the running deadlinercs”?). I mean nothing happens in this window when I send any requests via Postman:

Hello! The RCS doesn’t host the RESTful API, the Web Service does. You can run it on the same machine as the RCS, so no extra computers required.

That’ll be why you’re getting a 404, the RCS doesn’t have an /api/jobs endpoint for you to talk to.

2 Likes

Hmm, yesterday I tried to install Web Service through the installation distribution (DeadlineClient). Everything seems to have been established successfully.
But then how do I launch this WebService and make it listen to the IP address and port I need? :thinking:

Re-run the client installer and choose the web service when asked what you’re installing so it can generate certs and set up urlacls.

And the config is done via deadlinecommand - relevant commands detailed here - Client Configuration — Deadline 10.3.0.13 documentation

1 Like

I see. But how to run WebService? I mean I saw these commands list but which one should I use to start the WebService itself?
When I use “deadlinecommand” in command prompt the only thing I get is: ‘deadlinecommand’ is not recognized as an internal or external command, operable program or batch file.

There is an executable deadlinewebservice.exe

1 Like

In the client installer you can choose to have the launcher start the web service for you, or run the executable directly like @mois.moshev mentioned.

You’re getting “‘deadlinecommand’ is not recognized as an internal or external command, operable program or batch file.” because you’re not in the same directory as the executable. That’ll be in the /bin directory of the installation. A stackoverflow answer I really like explaining what that error means, as it’s not unique to Deadline.

For Windows that’ll be in Program Files\Thinkbox\Deadline10 and on Linux that’ll be in opt/Thinkbox/Deadline10.

1 Like
Privacy | Site terms | Cookie preferences