summaryrefslogtreecommitdiffstats
path: root/src/ogClient.py
Commit message (Collapse)AuthorAgeFilesLines
* #1000 Fix HTTP request header length parsingJavier Sánchez Parra2021-07-131-3/+4
| | | | | | | | | | | | | | | | | | | OgClient miscalculates the body size of the request. ogServer delimits HTTP headers with "\r\n\r\n" to comply with RFC 2616. But ogClient searches for the first "\r\n" delimiter, hence, ogClient stops at the first HTTP header field instead of at the end of the header. Hence, it incorrectly assumes the body starts after the first "\r\n". This commit updates ogClient to search for the "\r\n\r\n" delimiter. Example: POST /shell/run HTTP/1.1\r\n <-- ogClient considers body starts here (WRONG!) Content-Length: 952\r\n Content-Type: application/json\r\n \r\n <-- Here is where the body starts {"json-body":...}
* ogClient is AGPLv3+OpenGnSys Support Team2021-05-141-3/+3
| | | | Update license header in files.
* #980 Broken TCP connection times out after 120 seconds through keepaliveOpenGnSys Support Team2021-04-231-0/+5
| | | | | Enable TCP keepalive to detect if the ogServer is gone (hard reset). If no reply after 120 seconds, then release the connection to the server.
* #1000 Fix ogClient HTTP length handlingJavier Sánchez Parra2020-08-251-4/+9
| | | | | | | | | | | | | | | | | | | | Irina reports that "Partition assistant"/"Asistente de particionado" is not working. This is happening because ogClient is not reading the full data ogServer sends when the entire HTTP PDU is larger than 1024. However, ogClient should read the whole message, reading until read data length is greater or equal to "Content-Length" header value. ogClient fails to obtain "Content-Length" value because is looking for "content-length", be aware of the case sensitivity. It also needs to take into account the header length because read data length also includes headers. This patch updates ogClient to: 1) look for "Content-Length instead of "content-length". 2) compare read date length with content length plus headers length.
* #999 Fix ogClient session commandJavier Sánchez Parra2020-08-211-0/+1
| | | | | | | | | Disconnect gracefully from ogServer after booting OS, the script to start the OS calls kexec, so everything is gone after it. For Windows, this results in a reboot. This commit also improves the disconnect function to make sure the disconnection is synchronous.
* Rename 'linux' mode to 'live' modeRoberto Hueso Gómez2020-06-051-1/+1
| | | | 'linux' represents ogLive mode that is the reason for the rename.
* Delete ogConfig.pyRoberto Hueso Gómez2020-06-051-0/+2
| | | | | This file is only used for its OG_PATH variable, this variable is now in ogClient.
* remove platform checkOpenGnSys Support Team2020-05-131-3/+0
|
* Switch config file to jsonRoberto Hueso Gómez2020-05-131-10/+15
| | | | | This patch makes configuration parsing easier as well as making the full configuration available in many subclasses.
* Use samba for create and restore virtual partitionsRoberto Hueso Gómez2020-04-171-2/+7
| | | | This requires to configure user and password for samba repositories.
* wait for 1 second if connection is refusedOpenGnSys Support Team2020-04-141-18/+6
|
* Sleep 1 second to avoid high CPU loadRoberto Hueso Gomez2020-04-141-0/+1
|
* Avoid connection status infinite print loopRoberto Hueso Gomez2020-04-141-7/+17
| | | | This patch avoids infinite writting of connection status messages to the log.
* Add mode selection for ogClientRoberto Hueso Gomez2020-04-081-2/+6
|
* Rename operation to methodOpenGnSys Support Team2020-02-261-1/+1
| | | | As defined by the HTTP standard.
* (Clean-Up) Rename HTTPParser to restRequestAlvaro Neira Ayuso2020-01-191-4/+4
|
* Include License headerAlvaro Neira Ayuso2020-01-191-0/+8
|
* Fix ogClient socket.error typoRoberto Hueso Gómez2020-01-191-1/+2
|
* Change ogClient.py encoding from dos to unixRoberto Hueso gomez2020-01-191-123/+123
|
* Add session command to init the opengnsys sessionAlvaro Neira Ayuso2020-01-191-1/+1
| | | | | | | | ogAdmClient has a support for initializing the session in the machine. This new command allows the new ogClient to execute the same script to init the session. The arguments will be received from the server as a json message. Format: { "disk" : "0", "partition" : "1"}
* Add shell run and output commandsAlvaro Neira Ayuso2020-01-191-2/+2
| | | | | | | | Opengnsys needs a support to execute commands on the machine. This patch adds the support for executing two new commands "shell/run" and "shell/output". The first one, give us the support for executing a command in the machine and keep save in a queue the output. The second one, give us the support for sending the output from the command executed.
* Merge ogRest and ogProcess to have only one classAlvaro Neira Ayuso2020-01-191-3/+3
|
* Include disconnect and send function on client sideAlvaro Neira Ayuso2020-01-191-2/+9
| | | | | | | | | To disconnect the socket or send a message we use in different parts of the code the attribute socket which is declared inside of the client. This way will create us important problem in the future if we want to change the behavior in our client sockets. This patch adds two new methods inside the client and we can use them in other classes giving us the easy way to send messages and disconnect the client.
* Add ogRest class to generate API Rest ResponsesAlvaro Neira Ayuso2020-01-191-4/+5
| | | | | This class now, allow us to generate API Rest responses. In the future, the idea is to complete this class with get and post messages if it's needed.
* Port program to Python 3Alvaro Neira Ayuso2020-01-191-15/+17
| | | | | Python 2.7 will be deprecated in January of 2020. So, we need to have the program with a supported api.
* Remove unneeded logsAlvaro Neira Ayuso2020-01-191-3/+0
|
* Send bad request when the APIRest operation is not supportedAlvaro Neira Ayuso2020-01-191-3/+4
| | | | | | | | | | | | | | Our program sends always the HTTP message: HTTP/1.0 200 OK but if the operation sent is not supported, we are sending the same correct message. This patch add the support to check if the message is supported. If the message is not supported, we are going to send: HTTP/1.0 400 Bad request\r\n\r\n Otherwise, in operations supported: HTTP/1.0 200 OK
* Execute socket loop on run socket functionAlvaro Neira Ayuso2020-01-191-0/+20
| | | | Ported code from main function to a client function for clearing the main loop.
* Add ogProcess and ogOperation for linuxAlvaro Neira Ayuso2020-01-191-0/+5
| | | | | Thoses new classes allows us to process and execute commands from server side sent using HTTP format.
* Add HTTP parser supportAlvaro Neira Ayuso2020-01-191-11/+4
| | | | | | The new OpenGnsys support to communicate server and client side will be HTTP. This new class allows us the support for parsing all the message received from the server in HTTP format.
* Modify Client state to use enumAlvaro Neira Ayuso2020-01-191-6/+8
| | | | | | | | | During our connections, we are using states to control the Client Socket. We defined using global variables. In case that we modify this global variable, we need to change it in serveral parts of the code. Using enums and declaring a new class, we can redefine the values or create new states without changing the same code in differents python files.
* Create new ogClientAlvaro Neira Ayuso2020-01-191-0/+95
This commit init the new ogClient. The new ogClient has support for configuring and for connecting with the ogAdminServer.