Testcontainers : communicating between different networks - testcontainers

I am trying to build tests with containers on separated networks, but that can communicate with each other.
The test is built with :
A "server" network with two containers (postgres, api server)
A "client" network with one container (other api server)
The tests will call the "other api server", but the "other api server" can't communicate with the "first api server" yet... (Connection refused)
How can I get the good "host:port" I should give to "other api server" to access "first api server" ?

Related

Why IIS Express is ignoring network route in routing table?

We have a REST API which is working with Azure CosmosDB. This Azure CosmosDB account has enabled firewall, which allowing traffic from xxx.xxx.xxx.xxx IP address(which is our OpenVPN server).
On client/developer's side we have OpenVPN client which is pushing route to xxx.xxx.xxx.xxx CosmosDB via VPN interface. When we build and run this REST API app in Visual Studio via IIS Express, the app is ignoring network route to CosmosDB and even ignoring changes in ..\system32\drivers\etc\hosts file(we have internal VNET ip conigured on that CosmosDB account).
Response status code does not indicate success: Forbidden (403); Substatus: 0; ActivityId: $someActivityId; Reason: (Message: {"Errors":["Request originated from IP yyy.yyy.yyy.yyy through public internet. This is blocked by your Cosmos DB account firewall settings. More info: https://aka.ms/cosmosdb-tsg-forbidden"]}
But if we run same app in IIS Server(in our case its a IIS 10) network route and hosts file change also working fine. Also network routing works when we using Microsoft Azure Storage Explorer or powershell az module. It's not working only when the app is hosted by IIS Express.
Its only working via VPN, if VPN is set as default gateway. In our case we don't want to use VPN as gateway for all traffic.
Does IIS Express has any restrictions which may cause this? Is there any workaround?

How to connect to WebSocket API running on ECS cluster?

Our deployment is currently running on an ECS cluster with multiple Fargate tasks without any problem. The deployment diagram is given
here. There are four different services (only one of them is shown in the diagram) and each service has 2 containers for now.
One of the services, written in Spring Boot framework, includes both REST and WebSocket (without STOMP). When we deploy this service in Elastic Beanstalk as itself only, we can build both REST and WebSocket connections. For example, when we call ws://api_link/other-path-variables, related WebSocket connection is opened successfully. However, when it is deployed on ECS cluster, we can not build a WebSocket connection through API Gateway(REST) shown in the diagram.
Do we have to create a new API Gateway for WebSocket API? If yes, then we are not able to match route keys such $connect with our current WebSocket API. Since, we have only one connection URL, such ws://api_url/task-id, supporting different connection based on task-id. How can we configure it to just open only a connection through api gw?
We also tried the solution here by creating an extra target group but it did not work. We were not able to make a websocket connection through a browser websocket client using the existing API Gateway.

Is it possible to open a WebSocket to client localhost?

I've to design a solution that permits to read real-time data generated by local sensors through a remotely-hosted web application.
The design is still work in progress: the sensors' data could be handled by a windows application/service installed on the client machine, or by some external hardware (like a raspberry) located on the same network of the client machine.
Now, I'm very new to WebSockets, but they seems exactly what I need for providing real-time data via browser.
My question is: can a remote web application open a WebSocket to a server that is located on the same local network which the client belongs to?
Is solution B possible? How can I achieve that?
For example, I'd like the server to be located on the client localhost. Sensors would send data to the local windows service, and the web application would show them by opening a WebSocket to localhost (client localhost, not server localhost!).
Well, I did some testing and the answer is yes, it is possible.
Test setup:
A web page hosted on a remote server, with a WebSocket client which connects to 'localhost'.
WebSocket server running on my pc.
It worked.

How do I send a HTTP requests from a device to a server which runs in the testrunner of Xamarin Test Cloud

I am using Xamarin.UITest for automated tests of an Android and iOS application. This app makes some HTTP requests to a webserver.
For testing purposes and to easily respond with the needed data for the test case, I start a temporary HTTP server (I am using HttpListener) in the test and adjust the application, so it makes the requests to this temporary server.
When I run the tests local on my devices and simulators, everything works.
When I run the tests in the Xamarin Test Cloud, I can not get a connection to the HTTP Server. Url in that case would be http://executionhost11.prod:/...
Is this use case possible in the Xamarin Test Cloud?
Do I have to use some specific ports (I tried 8081 and 7103)?
I was informed by the Xamarin Support, that my usecase is not supported by Xamarin Test Cloud.
Between the devices and the executor are firewalls in place, which prevent the connection from the device to the test executor.
Recommended models are:
spin up a cloud hosted http server
start the http server on the device
The requirements for connecting to Test Cloud are described in the Submitting Tests to Xamarin Test Cloud guide. Specifically it says:
Internet access to the Test Cloud web servers is required. Firewalls should be configured to allow traffic to the Test Cloud servers at the following IP addresses:
195.249.159.238
195.249.159.239
The Test Cloud servers require port 80 and 443.
Android applications must request the INTERNET permission in AndroidManifest.XML.
The information here is true whether you're uploading tests (which is the main scenario described in the guide); and remains unchanged when communicating with a server, in that your server will need to access those IP addresses.

Issue Trying to start the application in IBM websphere server when i am connected to the VPN network

Issue Trying to start the IBM websphere server when i am connected to the VPN network.
I cannot start my application in WebSphere Application server when connected over the VPN( I have all required host entries). Logs suggest that the ATG repositories failed to start over the VPN Network ( some problem with the connection timeout in datasources in the application)
I am able to connect to the Datasources without any issues using other tools like Sql Developer etc.
Can someone please explain why this is happening only over the VPN network but not when i am connected to the local Intranet network.

Resources