Coder Social home page Coder Social logo

ggr-ui's People

Contributors

aandryashin avatar dependabot[bot] avatar vania-pooh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ggr-ui's Issues

Give name to selenoid backend

Hello.

We are using ggr-ui with two selenoid backends.
In ggr-ui status page one backend is named "test" and another "unknown".
I have no idea where ggr got these names for them.

The quota file test.xml describes selenoid servers like this:

<host name="192.168.34.91" port="4444" count="50"/>
<host name="192.168.131.2" port="4444" count="35"/>

How can we set names for backend servers defined in quota file?
Thanks!

Screenshot 2021-07-19 161940

[Solved] New selenoid host in cluster not displayed in ggr-ui /status

Hello.

We've added a third selenoid host to our ggr cluster and modified quota file to include new host.

GGR creates sessions on new host, but these sessions are not displayed neither in ggr-ui /status page, nor in selenoid-ui page on ggr server (both pages succesfully display sessions from two older hosts).

We simply set up selenoid on new host and added new host's ip to quota file.
Perhaps we've missed some vital step while adding a new host to the cluster?

Error when generating json in ggr-ui v.1.2.0

Spotted in ggr-ui v.1.2.0 inside docker container (docker pull aerokube/ggr-ui:1.2.0).
When generating json from different selenoid servers, it glues it together, but instead of taking it from different servers, it takes it from one server and multiplies it by the number of servers.
On version 1.1.2 everything works fine.
Error example:
изображение_2024-01-25_161832962

Selenoid UI error - cannot unmarshal number into Go value of type selenoid.State

I have the following setup...

2 docker hosts running 2 copies of Selenoid, 1 on each host.
I have GGR and GGR-UI running with quota XML files specifying each of the 2 hosts as hosts in the XML.
The quota XML files are on a volume that is shared to all relevant GGR / GGR-UI containers.

When I point Selenoid-UI at GGR-UI, and open the Selenoid-UI page, it shows the Selenoid status as Red. In the logs for the Selenoid-UI container I see this error repeated:

can't get status (json: cannot unmarshal number into Go value of type selenoid.State)

For reference, this is what is reported by http://<ggr-ui-url>:8888/status when a container is running a test in Chrome:

{
  "browsers": {
    "chrome": {
      "66.0": {
        "test": {
          "count": 1,
          "sessions": [
            {
              "caps": {
                "applicationContainers": null,
                "browserName": "chrome",
                "browserVersion": "",
                "containerHostname": "",
                "env": null,
                "hostsEntries": null,
                "labels": null,
                "name": "",
                "screenResolution": "1920x1080x24",
                "selenoid:options": null,
                "timeZone": "",
                "version": "66.0",
                "videoFrameRate": 0,
                "videoName": "",
                "videoScreenSize": "1920x1080"
              },
              "container": "9338f9c4ec56018360ca1048ea8e63e7ca6b736084582d2187419cec9e4e622e",
              "containerInfo": {
                "id": "9338f9c4ec56018360ca1048ea8e63e7ca6b736084582d2187419cec9e4e622e",
                "ip": "172.17.0.3"
              },
              "id": "11683c93804e090b01a66b616c644a1e6b2cf214509835c980ccdb61ab5ef037",
              "screen": "1920x1080x24",
              "vnc": false
            }
          ]
        }
      }
    },
    "firefox": {
      "58.0": {
      }
    }
  },
  "pending": 0,
  "queued": 0,
  "total": 10,
  "used": 1
}

And this is what is reported from /status when no tests are running:

{
  "browsers": {
    "chrome": {
      "66.0": {
      }
    },
    "firefox": {
      "58.0": {
      }
    }
  },
  "pending": 0,
  "queued": 0,
  "total": 10,
  "used": 0
}

Please let me know if I can provide any further info, or if I should file this issue on the Selenoid-UI page. Thanks!

Unable to connect to selenoid-ui , although test runs fine

I am sure I am missing something , but dont know what . I am able to run my tests fine but cant see status on selenoid ui ..Seems ggr ui is unable to connect to selenoid.

This is my quota file -

<qa:browsers xmlns:qa="urn:config.gridrouter.qatools.ru">
<browser name="firefox" defaultVersion="45.0">
    <version number="58.0">
        <region name="1">
            <host name="localhost" port="4445" count="1"/>
        </region>
    </version>
</browser>
</qa:browsers>

My docker-compose looks like this--
version: '3'
services:
selenoid:
network_mode: bridge
image: aerokube/selenoid:latest-release
volumes:
- "/etc/selenoid:/etc/selenoid"
- "/var/run/docker.sock:/var/run/docker.sock"
- "/opt/selenoid/video:/opt/selenoid/video"
- "./logs:/opt/selenoid/logs"
environment:
- OVERRIDE_VIDEO_OUTPUT_DIR=$PWD
#"-video-output-dir", "/opt/selenoid/video",
command: ["-conf", "/etc/selenoid/browsers.json","-video-output-dir", "/opt/selenoid/video","-log-output-dir","/opt/selenoid/logs","-timeout","3m","sessionTimeout","2m"]
ports:
- "4445:4444"
ggr-ui:
image: "aerokube/ggr-ui:latest-release"
network_mode: bridge
ports:
- "8888:8888"
volumes:
- "/etc/grid-router/quota:/etc/grid-router/quota:ro"
selenoid-ui:
image: "aerokube/selenoid-ui"
network_mode: bridge
links:
- ggr-ui

ports:
  - "9090:8080"
environment:
- DBUS_SESSION_BUS_ADDRESS=/dev/null
  command: ["--selenoid-uri", "http://ggr-ui:8888"]

Status: invalid character 'T'

Hello!

Something seems to be silently failing/throwing errors, but hadn't noticed until I looked in the GGR-UI logs for the docker container.

Log has numerous entries of the following:
2019/03/13 10:17:37 [STATUS] [Failed to parse response: invalid character 'T' looking for beginning of value]

Not sure what is happening.

Many thanks

VNC/Logs disconnect/reconnect every few seconds

Hello,
I've set up a 3 node cluster and I'm trying to use ggr-ui to aggregate the VNC/Logs into a single Selenoid-UI.

The individual Selenoid-UI instances work great, but if I try to view the aggregate view, the VNC/Logs are connected/reconnected over and over again.

Seeing Connection closed (code: 1000) on the WS session in Dev tools and remote Selenoid logs show connect/disconnect of VNC/Log sessions.

Do not take into consideration not running Selenoid instances behind ggr-ui

Currently, if there are no running Selenoid instances behind ggr (or almost all of them are down), it takes a while until /status request gets resolved with some response. It's a bit inconvenient. Would be good to have some mechanism to sort these not running instances out and do not consider them in order to have more fast ggr-ui request-response logic. Once instance becomes available, it should be considered then. Any other suggestions to improve this would be appreciated.

selenoid-ui fails to get ggr-ui status

When setting up ggr > ggr-ui > selenoid-ui using docker-compose, selenoid-ui fails to get the status from ggr-ui. If I access the ggr-ui /status API directly, i get the response as expected.

Repeating Error:

selenoid-ui_1 | 2018/06/18 20:09:49 can't get status (Get http://ggrui:8888/status: context deadline exceeded)

docker-compose file:

version: '3'
services:
ggr:
restart: always
image: aerokube/ggr
ports:
- "4444:4444"
volumes:
- "./:/etc/grid-router:ro"
command: ["-quotaDir", "/etc/grid-router"]
ggr-ui:
restart: always
image: aerokube/ggr-ui
ports:
- "8888:8888"
volumes:
- "./:/etc/grid-router/quota:ro"
selenoid-ui:
restart: always
image: aerokube/selenoid-ui
links:
- ggr-ui
ports:
- "8080:8080"
command: ["--selenoid-uri", "http://ggr-ui:8888"]

I have used the same docker-compose configuration with base selenoid > selenoid-ui with no issues. Any ideas as to whats causing this?

ggr-ui keeps polling selenoid nodes which are removed from quota xml files

  1. Remove 1 server address from quota.xml
  2. Reload ggr-ui config via docker kill -s HUP ggr-ui-container-id
  3. Load http://your-ggr-ui:8888/status
  • Expected: instant response with /status response aggregated from currently running selenoid instances.
  • Actual: ggr-ui responds after some time (few seconds), as it is trying to poll /status endpoint for non-existing selenoid instance.

GGR-UI logs:

2018/05/23 13:16:29 [STATUS] [Failed to fetch status from http://10.0.185.224:4444: Get http://10.0.185.224:4444/status: dial tcp 10.0.185.224:4444: i/o timeout] [10.0.160.134]

Relates to #5

Selenoid UI not showing running sessions when GGR-UI failed to obtain status of a machine when it is down

Scenario:

  • Machine A and Machine B added to quota test.xml
  • started ggr, ggr-ui, selenoid-ui and selenoid(on both machines)
  • everything looks good and I am able to see everything green in selenoid-ui

screen shot 2018-08-15 at 7 04 05 pm

screen shot 2018-08-15 at 7 04 52 pm

  • Now let's say Machine B(which has IE and Edge) is down for some reason

screen shot 2018-08-15 at 7 05 51 pm

  • In selenoid UI it shows SELENOID as red(But I am able to execute the tests on other machines which are up and running like on chrome browser)

screen shot 2018-08-15 at 7 06 07 pm

Log details:

Docker image versions: latest-release for all images
Docker version : Docker version 1.13.1-cs2, build ad32da7
GGR-UI error : 2018/08/15 17:04:25 [STATUS] [Failed to fetch status: Get http://ip:4444/status: context canceled] [172.17.0.1]
selenoid-UI error: 2018/08/15 17:02:00 can't get status (Get http://ip:8888/status: context deadline exceeded)

Add Support for Manual Session Creation

When running Selenoid behind GGR I get a 400 when attempting to start a manual session. I assume this is because ggr-ui does not proxy /wd/hub/session to the GGR. Can this function be added to allow for manual sessions to be created on large deployments behind GGR?

GGR and Selenoid setup issue - not able to run test on desire selenoid server machine

I have some problems with GGR and Selenoid. I tried to set up and followed the documentation and below are the two ways I tried to set up GGR on a Linux machine. We have three servers selenoid1, selenoid2, and selenod3. I am configuring GGR on the selenoid3 server

  1. Setup as per documentation available in the company to configure GGR

Quota file and htpasswd was created as described on the official site, quota file contains host selenoid1 and selenoid2 server, and selenoid3 works as GGR server

Start Selenoid on all three server: docker run -d --name selenoid -p 4444:4444 -e TZ=Etc/GMT+0 -e OVERRIDE_VIDEO_OUTPUT_DIR=/usr/local/selenoid/video/ -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/selenoid/config:/etc/selenoid/:ro -v /usr/local/selenoid/logs:/opt/selenoid/logs -v /usr/local/selenoid/video:/opt/selenoid/video aerokube/selenoid:latest-release -video-output-dir /opt/selenoid/video -timeout 3m0s -limit 8

Start GGR on selenoid3 server: docker run -d --name ggr -p 4445:4444 -v /etc/grid-router:/etc/grid-router:ro aerokube/ggr:latest-release -guests-allowed -guests-quota /etc/grid-router/quota/auto

Start GGR-UI on selenoid3 server: docker run -d --name ggr-ui -p 8888:8888 -v /etc/grid-router/quota/:/etc/grid-router/quota:ro aerokube/ggr-ui:latest-release

Start Selenoid-UI on all three server: docker run -d --name selenoid-ui -p 8081:8080 --link ggr-ui aerokube/selenoid-ui:latest-release --selenoid-uri http://ggr-ui:8888

With the above configuration when I run curl http://auto:password@#{ggr_servername}:4445/status and I get 404 page not found when I run the test it does not connect to GGR and gives a 500 error. I also restarted all the containers again but still, I got the same error

GGR-ui log:
2021/07/02 21:10:32 [INIT] [Loading quota files from /etc/grid-router/quota] 2021/07/02 21:10:32 [INIT] [Listen on :8888]
GGR logs:
2021/07/02 22:00:28 [-] [-] [INIT] [-] [-] [-] [-] [-] [-] [Users file is "/etc/grid-router/users.htpasswd"] 2021/07/02 22:00:28 [-] [-] [INIT] [-] [-] [-] [-] [-] [-] [Loading configuration files from "/etc/grid-router/quota"]
2. As per my understanding based on the official guide on the GGR site

Quota file and htpasswd was created as described on the official site, quota file contains host selenoid1 and selenoid2 server, and selenoid3 works as GGR server

Start Selenoid on all three servers: docker run -d --name selenoid -p 4444:4444 -e TZ=Etc/GMT+0 -e OVERRIDE_VIDEO_OUTPUT_DIR=/usr/local/selenoid/video/ -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/selenoid/config:/etc/selenoid/:ro -v /usr/local/selenoid/logs:/opt/selenoid/logs -v /usr/local/selenoid/video:/opt/selenoid/video aerokube/selenoid:latest-release -video-output-dir /opt/selenoid/video -timeout 3m0s -limit 8

Start GGR on selenoid3 server: docker run -d --name ggr -v /etc/grid-router:/etc/grid-router:ro aerokube/ggr:latest-release -guests-allowed -guests-quota /etc/grid-router/quota/auto

Start GGR-UI on selenoid3 server:docker run -d --name ggr-ui -p 8888:8888 -v /etc/grid-router/quota/:/etc/grid-router/quota:ro aerokube/ggr-ui:latest-release

Start Selenoid-UI on all three server: docker run -d --name selenoid-ui -p 8081:8080 aerokube/selenoid-ui:latest-release --selenoid-uri http://#{ggr_servername}:8888

Logs GGR:
2021/07/02 20:51:55 [STATUS] [Failed to fetch status: Get http://#{selenoid1_name}:4444/status: dial tcp: lookup #{selenoid1} on #{selenoid1_ip}: no such host] [172.17.0.1] 2021/07/02 20:51:56 [SHUTDOWN] [Shutting down in 5m0s] 2021/07/02 21:05:00 [-] [-] [INIT] [-] [-] [-] [-] [-] [-] [Users file is "/etc/grid-router/users.htpasswd"] 2021/07/02 21:05:00 [-] [-] [INIT] [-] [-] [-] [-] [-] [-] [Loading configuration files from "/etc/grid-router/quota"]

Logs complain about Selenoid1 no such details for Selenoid2, I assume Selenoid2 is working and connected successfully.

Logs GGR-UI
2021/07/02 22:54:37 [INIT] [Loading quota files from /etc/grid-router/quota] 2021/07/02 22:54:37 [INIT] [Listen on :8888]
With the above configuration when I run curl http://auto:password@#{ggr_servername}:4444/status I get JSON response as expected and I am able to run the test but tests are executing on Selenoid3 server and chrome browser and vnc container start on selenoid3 server, I was expecting that tests will execute on Selenoid1 or Selenoid2 server but that never happens. I am not sure what is wrong with my configuration, is something I am missing?

I appreciate your help!!!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.