You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-10-08 22:51:57 +02:00
Main build (Jenkins)
This commit is contained in:
2
docs/en/examples/SSH/GetSettingsViaAgent.txt
vendored
2
docs/en/examples/SSH/GetSettingsViaAgent.txt
vendored
@@ -1,4 +1,4 @@
|
||||
Host = "172.33.0.13";
|
||||
Port = "2222";
|
||||
Login = "bayselonarrend";
|
||||
SSHSettings = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
|
||||
Result = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
|
||||
|
@@ -56,7 +56,7 @@ import TabItem from '@theme/TabItem';
|
||||
```json title="Result"
|
||||
{
|
||||
"result": true,
|
||||
"key": "2e1fd4bb3",
|
||||
"url_example": "localhost:port/2e1fd4bb3"
|
||||
"key": "be2122262",
|
||||
"url_example": "localhost:port/be2122262"
|
||||
}
|
||||
```
|
||||
|
@@ -34,7 +34,7 @@ import TabItem from '@theme/TabItem';
|
||||
```bash
|
||||
melezh DisableRequestsHandler \
|
||||
--proj "/proj.melezh" \
|
||||
--handler "2e1fd4bb3"
|
||||
--handler "be2122262"
|
||||
```
|
||||
</TabItem>
|
||||
|
||||
@@ -42,7 +42,7 @@ import TabItem from '@theme/TabItem';
|
||||
```batch
|
||||
melezh DisableRequestsHandler ^
|
||||
--proj "/proj.melezh" ^
|
||||
--handler "2e1fd4bb3"
|
||||
--handler "be2122262"
|
||||
```
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
@@ -34,7 +34,7 @@ import TabItem from '@theme/TabItem';
|
||||
```bash
|
||||
melezh EnableRequestsHandler \
|
||||
--proj "/proj.melezh" \
|
||||
--handler "2e1fd4bb3"
|
||||
--handler "be2122262"
|
||||
```
|
||||
</TabItem>
|
||||
|
||||
@@ -42,7 +42,7 @@ import TabItem from '@theme/TabItem';
|
||||
```batch
|
||||
melezh EnableRequestsHandler ^
|
||||
--proj "/proj.melezh" ^
|
||||
--handler "2e1fd4bb3"
|
||||
--handler "be2122262"
|
||||
```
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
@@ -34,7 +34,7 @@ import TabItem from '@theme/TabItem';
|
||||
```bash
|
||||
melezh GetRequestsHandler \
|
||||
--proj "/proj.melezh" \
|
||||
--handler "2e1fd4bb3"
|
||||
--handler "be2122262"
|
||||
```
|
||||
</TabItem>
|
||||
|
||||
@@ -42,7 +42,7 @@ import TabItem from '@theme/TabItem';
|
||||
```batch
|
||||
melezh GetRequestsHandler ^
|
||||
--proj "/proj.melezh" ^
|
||||
--handler "2e1fd4bb3"
|
||||
--handler "be2122262"
|
||||
```
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
@@ -52,7 +52,7 @@ import TabItem from '@theme/TabItem';
|
||||
"data": {
|
||||
"active": 1,
|
||||
"function": "SendTextMessage",
|
||||
"key": "2e1fd4bb3",
|
||||
"key": "be2122262",
|
||||
"library": "telegram",
|
||||
"method": "GET",
|
||||
"args": []
|
||||
|
@@ -50,7 +50,7 @@ import TabItem from '@theme/TabItem';
|
||||
{
|
||||
"active": 1,
|
||||
"function": "SendTextMessage",
|
||||
"key": "2e1fd4bb3",
|
||||
"key": "be2122262",
|
||||
"library": "telegram",
|
||||
"method": "GET"
|
||||
}
|
||||
|
@@ -35,7 +35,7 @@ import TabItem from '@theme/TabItem';
|
||||
```bash
|
||||
melezh UpdateHandlersKey \
|
||||
--proj "/proj.melezh" \
|
||||
--handler "dcf91b125" \
|
||||
--handler "d692ed2ec" \
|
||||
--key "***"
|
||||
```
|
||||
</TabItem>
|
||||
@@ -44,7 +44,7 @@ import TabItem from '@theme/TabItem';
|
||||
```batch
|
||||
melezh UpdateHandlersKey ^
|
||||
--proj "/proj.melezh" ^
|
||||
--handler "dcf91b125" ^
|
||||
--handler "d692ed2ec" ^
|
||||
--key "***"
|
||||
```
|
||||
</TabItem>
|
||||
@@ -55,7 +55,7 @@ import TabItem from '@theme/TabItem';
|
||||
"data": {
|
||||
"active": 1,
|
||||
"function": "CreatePost",
|
||||
"key": "dcf91b125",
|
||||
"key": "d692ed2ec",
|
||||
"library": "vk",
|
||||
"method": "FORM",
|
||||
"args": []
|
||||
|
@@ -37,7 +37,7 @@ import TabItem from '@theme/TabItem';
|
||||
```bash
|
||||
melezh UpdateRequestsHandler \
|
||||
--proj "/proj.melezh" \
|
||||
--handler "2e1fd4bb3" \
|
||||
--handler "be2122262" \
|
||||
--lib "vk" \
|
||||
--func "CreatePost" \
|
||||
--method "FORM"
|
||||
@@ -48,7 +48,7 @@ import TabItem from '@theme/TabItem';
|
||||
```batch
|
||||
melezh UpdateRequestsHandler ^
|
||||
--proj "/proj.melezh" ^
|
||||
--handler "2e1fd4bb3" ^
|
||||
--handler "be2122262" ^
|
||||
--lib "vk" ^
|
||||
--func "CreatePost" ^
|
||||
--method "FORM"
|
||||
|
@@ -69,7 +69,7 @@ import TabItem from '@theme/TabItem';
|
||||
"description": "Logs save path. To disable logging, set the value to empty",
|
||||
"name": "logs_path",
|
||||
"type": "string",
|
||||
"value": "C:/Users/bayselonarrend/AppData/Local/Temp/Melezh/a5079f4d-e730-42fb-9565-75e14795390c"
|
||||
"value": "C:/Users/bayselonarrend/AppData/Local/Temp/Melezh/58d66053-93e2-457c-ba70-d9b934a56a99"
|
||||
},
|
||||
{
|
||||
"description": "Logging of incoming request headers",
|
||||
|
@@ -31,7 +31,7 @@ import TabItem from '@theme/TabItem';
|
||||
Host = "172.33.0.13";
|
||||
Port = "2222";
|
||||
Login = "bayselonarrend";
|
||||
SSHSettings = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
|
||||
Result = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
|
||||
```
|
||||
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
Хост = "172.33.0.13";
|
||||
Порт = "2222";
|
||||
Логин = "bayselonarrend";
|
||||
НастройкиSSH = OPI_SSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
|
||||
Результат = OPI_SSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
|
||||
|
@@ -56,7 +56,7 @@ import TabItem from '@theme/TabItem';
|
||||
```json title="Результат"
|
||||
{
|
||||
"result": true,
|
||||
"key": "3db4f3806",
|
||||
"url_example": "localhost:port/3db4f3806"
|
||||
"key": "361b61a20",
|
||||
"url_example": "localhost:port/361b61a20"
|
||||
}
|
||||
```
|
||||
|
@@ -34,7 +34,7 @@ import TabItem from '@theme/TabItem';
|
||||
```bash
|
||||
melezh ОтключитьОбработчикЗапросов \
|
||||
--proj "/proj.melezh" \
|
||||
--handler "3db4f3806"
|
||||
--handler "361b61a20"
|
||||
```
|
||||
</TabItem>
|
||||
|
||||
@@ -42,7 +42,7 @@ import TabItem from '@theme/TabItem';
|
||||
```batch
|
||||
melezh ОтключитьОбработчикЗапросов ^
|
||||
--proj "/proj.melezh" ^
|
||||
--handler "3db4f3806"
|
||||
--handler "361b61a20"
|
||||
```
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
@@ -34,7 +34,7 @@ import TabItem from '@theme/TabItem';
|
||||
```bash
|
||||
melezh ВключитьОбработчикЗапросов \
|
||||
--proj "/proj.melezh" \
|
||||
--handler "3db4f3806"
|
||||
--handler "361b61a20"
|
||||
```
|
||||
</TabItem>
|
||||
|
||||
@@ -42,7 +42,7 @@ import TabItem from '@theme/TabItem';
|
||||
```batch
|
||||
melezh ВключитьОбработчикЗапросов ^
|
||||
--proj "/proj.melezh" ^
|
||||
--handler "3db4f3806"
|
||||
--handler "361b61a20"
|
||||
```
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
@@ -34,7 +34,7 @@ import TabItem from '@theme/TabItem';
|
||||
```bash
|
||||
melezh ПолучитьОбработчикЗапросов \
|
||||
--proj "/proj.melezh" \
|
||||
--handler "3db4f3806"
|
||||
--handler "361b61a20"
|
||||
```
|
||||
</TabItem>
|
||||
|
||||
@@ -42,7 +42,7 @@ import TabItem from '@theme/TabItem';
|
||||
```batch
|
||||
melezh ПолучитьОбработчикЗапросов ^
|
||||
--proj "/proj.melezh" ^
|
||||
--handler "3db4f3806"
|
||||
--handler "361b61a20"
|
||||
```
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
@@ -52,7 +52,7 @@ import TabItem from '@theme/TabItem';
|
||||
"data": {
|
||||
"active": 1,
|
||||
"function": "ОтправитьТекстовоеСообщение",
|
||||
"key": "3db4f3806",
|
||||
"key": "361b61a20",
|
||||
"library": "telegram",
|
||||
"method": "GET",
|
||||
"args": []
|
||||
|
@@ -50,7 +50,7 @@ import TabItem from '@theme/TabItem';
|
||||
{
|
||||
"active": 1,
|
||||
"function": "ОтправитьТекстовоеСообщение",
|
||||
"key": "3db4f3806",
|
||||
"key": "361b61a20",
|
||||
"library": "telegram",
|
||||
"method": "GET"
|
||||
}
|
||||
|
@@ -35,7 +35,7 @@ import TabItem from '@theme/TabItem';
|
||||
```bash
|
||||
melezh ОбновитьКлючОбработчика \
|
||||
--proj "/proj.melezh" \
|
||||
--handler "e337e1562" \
|
||||
--handler "b67382867" \
|
||||
--key "***"
|
||||
```
|
||||
</TabItem>
|
||||
@@ -44,7 +44,7 @@ import TabItem from '@theme/TabItem';
|
||||
```batch
|
||||
melezh ОбновитьКлючОбработчика ^
|
||||
--proj "/proj.melezh" ^
|
||||
--handler "e337e1562" ^
|
||||
--handler "b67382867" ^
|
||||
--key "***"
|
||||
```
|
||||
</TabItem>
|
||||
@@ -55,7 +55,7 @@ import TabItem from '@theme/TabItem';
|
||||
"data": {
|
||||
"active": 1,
|
||||
"function": "СоздатьПост",
|
||||
"key": "e337e1562",
|
||||
"key": "b67382867",
|
||||
"library": "vk",
|
||||
"method": "FORM",
|
||||
"args": []
|
||||
|
@@ -37,7 +37,7 @@ import TabItem from '@theme/TabItem';
|
||||
```bash
|
||||
melezh ИзменитьОбработчикЗапросов \
|
||||
--proj "/proj.melezh" \
|
||||
--handler "3db4f3806" \
|
||||
--handler "361b61a20" \
|
||||
--lib "vk" \
|
||||
--func "СоздатьПост" \
|
||||
--method "FORM"
|
||||
@@ -48,7 +48,7 @@ import TabItem from '@theme/TabItem';
|
||||
```batch
|
||||
melezh ИзменитьОбработчикЗапросов ^
|
||||
--proj "/proj.melezh" ^
|
||||
--handler "3db4f3806" ^
|
||||
--handler "361b61a20" ^
|
||||
--lib "vk" ^
|
||||
--func "СоздатьПост" ^
|
||||
--method "FORM"
|
||||
|
@@ -69,7 +69,7 @@ import TabItem from '@theme/TabItem';
|
||||
"description": "Путь сохранения логов. Для отключения логирования установите пустое значение",
|
||||
"name": "logs_path",
|
||||
"type": "string",
|
||||
"value": "C:/Users/bayselonarrend/AppData/Local/Temp/Melezh/9ae5dca8-eba9-4128-8710-56e757acdd78"
|
||||
"value": "C:/Users/bayselonarrend/AppData/Local/Temp/Melezh/46efe674-c066-4737-a4ef-ba26c6f750ff"
|
||||
},
|
||||
{
|
||||
"description": "Логирование заголовков входящих запросов",
|
||||
|
@@ -31,7 +31,7 @@ import TabItem from '@theme/TabItem';
|
||||
Хост = "172.33.0.13";
|
||||
Порт = "2222";
|
||||
Логин = "bayselonarrend";
|
||||
НастройкиSSH = OPI_SSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
|
||||
Результат = OPI_SSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
|
||||
```
|
||||
|
||||
|
||||
|
18222
service/dictionaries/en.json
vendored
18222
service/dictionaries/en.json
vendored
File diff suppressed because it is too large
Load Diff
18
src/en/OInt/core/Modules/OPI_SFTP.os
vendored
18
src/en/OInt/core/Modules/OPI_SFTP.os
vendored
@@ -60,9 +60,9 @@
|
||||
// Arbitrary, Map of KeyAndValue - Create Connection
|
||||
Function CreateConnection(Val SSHSettings, Val Proxy = "") Export
|
||||
|
||||
SSHConnection = OPI_SSH.CreateConnection(SSHSettings, Proxy);
|
||||
SSHConnection = OPI_SSHRequests.CreateConnection(SSHSettings, Proxy);
|
||||
|
||||
If OPI_SSH.IsConnector(SSHConnection) Then
|
||||
If IsConnector(SSHConnection) Then
|
||||
Result = SSHConnection.ToSFTP();
|
||||
Result = OPI_Tools.JsonToStructure(Result);
|
||||
Else
|
||||
@@ -90,7 +90,7 @@ EndFunction
|
||||
// Structure Of KeyAndValue - Connection settings structure
|
||||
Function GetConnectionConfiguration(Val SSHSettings, Val Proxy = Undefined) Export
|
||||
|
||||
Return OPI_SSH.GetConnectionConfiguration(SSHSettings, Proxy);
|
||||
Return OPI_SSHRequests.GetConnectionConfiguration(SSHSettings, Proxy);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -104,7 +104,7 @@ EndFunction
|
||||
// Structure Of KeyAndValue - Result of connection termination
|
||||
Function CloseConnection(Val Connection) Export
|
||||
|
||||
Return OPI_SSH.CloseConnection(Connection);
|
||||
Return OPI_SSHRequests.CloseConnection(Connection);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -118,7 +118,7 @@ EndFunction
|
||||
// Boolean - Is connector
|
||||
Function IsConnector(Val Value) Export
|
||||
|
||||
Return OPI_SSH.IsConnector(Value);
|
||||
Return OPI_SSHRequests.IsConnector(Value);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -135,7 +135,7 @@ EndFunction
|
||||
// Structure Of KeyAndValue - Connection configuration
|
||||
Function GetSettingsLoginPassword(Val Host, Val Port, Val Login, Val Password = "") Export
|
||||
|
||||
Return OPI_SSH.GetSettingsLoginPassword(Host, Port, Login, Password);
|
||||
Return OPI_SSHRequests.GetSettingsLoginPassword(Host, Port, Login, Password);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -159,7 +159,7 @@ Function GetSettingsPrivateKey(Val Host
|
||||
, Val Public = ""
|
||||
, Val Password = "") Export
|
||||
|
||||
Return OPI_SSH.GetSettingsPrivateKey(Host, Port, Login, Private, Public, Password);
|
||||
Return OPI_SSHRequests.GetSettingsPrivateKey(Host, Port, Login, Private, Public, Password);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -175,7 +175,7 @@ EndFunction
|
||||
// Structure Of KeyAndValue - Connection configuration
|
||||
Function GetSettingsViaAgent(Val Host, Val Port, Val Login) Export
|
||||
|
||||
Return OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
|
||||
Return OPI_SSHRequests.GetSettingsViaAgent(Host, Port, Login);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -331,7 +331,7 @@ Function GetCurrentDirectory(Val Connection) Export
|
||||
Return Connection;
|
||||
Else
|
||||
|
||||
Result = OPI_SSH.ExecuteCommand(Connection, "pwd");
|
||||
Result = OPI_SSHRequests.ExecuteCommand(Connection, "pwd");
|
||||
ProcessSSHCommandExecution(Result, "path");
|
||||
|
||||
EndIf;
|
||||
|
226
src/en/OInt/core/Modules/OPI_SSH.os
vendored
226
src/en/OInt/core/Modules/OPI_SSH.os
vendored
@@ -60,30 +60,7 @@
|
||||
// Arbitrary, Map of KeyAndValue - Create Connection
|
||||
Function CreateConnection(Val SSHSettings, Val Proxy = "") Export
|
||||
|
||||
Result_ = "result";
|
||||
|
||||
If IsConnector(SSHSettings) Then
|
||||
Return SSHSettings;
|
||||
EndIf;
|
||||
|
||||
Connector = OPI_AddIns.GetAddIn("SSH");
|
||||
|
||||
ConfigureSetup = SetSettings(Connector, SSHSettings);
|
||||
|
||||
If Not OPI_Tools.GetOr(ConfigureSetup, Result_, False) Then
|
||||
Return ConfigureSetup;
|
||||
EndIf;
|
||||
|
||||
ProxySetup = SetProxy(Connector, Proxy);
|
||||
|
||||
If Not OPI_Tools.GetOr(ProxySetup, Result_, False) Then
|
||||
Return ProxySetup;
|
||||
EndIf;
|
||||
|
||||
Result = Connector.Connect();
|
||||
Result = OPI_Tools.JsonToStructure(Result);
|
||||
|
||||
Return ?(Result[Result_], Connector, Result);
|
||||
Return OPI_SSHRequests.CreateConnection(SSHSettings, Proxy);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -104,12 +81,7 @@ EndFunction
|
||||
// Structure Of KeyAndValue - Connection settings structure
|
||||
Function GetConnectionConfiguration(Val SSHSettings, Val Proxy = Undefined) Export
|
||||
|
||||
ConfigurationStructure = New Structure;
|
||||
|
||||
OPI_Tools.AddField("set" , SSHSettings, "Collection", ConfigurationStructure);
|
||||
OPI_Tools.AddField("proxy", Proxy , "Collection", ConfigurationStructure);
|
||||
|
||||
Return ConfigurationStructure;
|
||||
Return OPI_SSHRequests.GetConnectionConfiguration(SSHSettings, Proxy);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -124,32 +96,7 @@ EndFunction
|
||||
// Map Of KeyAndValue - Processing result
|
||||
Function ExecuteCommand(Val Connection, Val Command) Export
|
||||
|
||||
CloseConnection = CheckCreateConnection(Connection);
|
||||
|
||||
If Not IsConnector(Connection) Then
|
||||
Return Connection;
|
||||
Else
|
||||
|
||||
OPI_TypeConversion.GetLine(Command);
|
||||
|
||||
Result = Connection.Execute(Command);
|
||||
Result = OPI_Tools.JsonToStructure(Result);
|
||||
|
||||
Output = Result["stdout"];
|
||||
|
||||
If Output <> Undefined Then
|
||||
If StrEndsWith(Output, Chars.LF) Then
|
||||
Result["stdout"] = Left(Output, StrLen(Output) - 1);
|
||||
EndIf;
|
||||
EndIf;
|
||||
|
||||
EndIf;
|
||||
|
||||
If CloseConnection Then
|
||||
Result.Insert("close_connection", CloseConnection(Connection));
|
||||
EndIf;
|
||||
|
||||
Return Result;
|
||||
Return OPI_SSHRequests.ExecuteCommand(Connection, Command);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -163,17 +110,7 @@ EndFunction
|
||||
// Structure Of KeyAndValue - Result of connection termination
|
||||
Function CloseConnection(Val Connection) Export
|
||||
|
||||
CheckCreateConnection(Connection);
|
||||
|
||||
If Not IsConnector(Connection) Then
|
||||
Return Connection;
|
||||
EndIf;
|
||||
|
||||
Result = Connection.Disconnect();
|
||||
Result = OPI_Tools.JsonToStructure(Result);
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Return Result;
|
||||
Return OPI_SSHRequests.CloseConnection(Connection);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -187,7 +124,7 @@ EndFunction
|
||||
// Boolean - Is connector
|
||||
Function IsConnector(Val Value) Export
|
||||
|
||||
Return String(TypeOf(Value)) = "AddIn.OPI_SSH.Main";
|
||||
Return OPI_SSHRequests.IsConnector(Value);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -204,16 +141,7 @@ EndFunction
|
||||
// Structure Of KeyAndValue - Connection configuration
|
||||
Function GetSettingsLoginPassword(Val Host, Val Port, Val Login, Val Password = "") Export
|
||||
|
||||
String_ = "String";
|
||||
|
||||
ConfigurationStructure = New Structure;
|
||||
OPI_Tools.AddField("auth_type", "password", String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("host" , Host , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("port" , Port , "Number" , ConfigurationStructure);
|
||||
OPI_Tools.AddField("username" , Login , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("password" , Password , String_ , ConfigurationStructure);
|
||||
|
||||
Return ConfigurationStructure;
|
||||
Return OPI_SSHRequests.GetSettingsLoginPassword(Host, Port, Login, Password);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -237,28 +165,7 @@ Function GetSettingsPrivateKey(Val Host
|
||||
, Val Public = ""
|
||||
, Val Password = "") Export
|
||||
|
||||
String_ = "String";
|
||||
|
||||
OPI_TypeConversion.GetFileOnDisk(Private);
|
||||
Private_ = Private.Path;
|
||||
|
||||
If ValueIsFilled(Public) Then
|
||||
OPI_TypeConversion.GetFileOnDisk(Public);
|
||||
Public_ = Public.Path;
|
||||
Else
|
||||
Public_ = Undefined;
|
||||
EndIf;
|
||||
|
||||
ConfigurationStructure = New Structure;
|
||||
OPI_Tools.AddField("auth_type" , "private_key" , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("host" , Host , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("port" , Port , "Number", ConfigurationStructure);
|
||||
OPI_Tools.AddField("username" , Login , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("key_path" , Private_ , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("pub_path" , Public_ , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("passphrase", Password , String_ , ConfigurationStructure);
|
||||
|
||||
Return ConfigurationStructure;
|
||||
Return OPI_SSHRequests.GetSettingsPrivateKey(Host, Port, Login, Private, Public, Password);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -274,15 +181,7 @@ EndFunction
|
||||
// Structure Of KeyAndValue - Connection configuration
|
||||
Function GetSettingsViaAgent(Val Host, Val Port, Val Login) Export
|
||||
|
||||
String_ = "String";
|
||||
|
||||
ConfigurationStructure = New Structure;
|
||||
OPI_Tools.AddField("auth_type" , "agent", String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("host" , Host , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("port" , Port , "Number", ConfigurationStructure);
|
||||
OPI_Tools.AddField("username" , Login , String_ , ConfigurationStructure);
|
||||
|
||||
Return ConfigurationStructure;
|
||||
Return OPI_SSHRequests.GetSettingsViaAgent(Host, Port, Login);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -304,8 +203,7 @@ Function GetProxySettings(Val Address
|
||||
, Val Login = Undefined
|
||||
, Val Password = Undefined) Export
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Return OPI_AddIns.GetProxySettings(Address, Port, View, Login, Password);
|
||||
Return OPI_SSHRequests.GetProxySettings(Address, Port, View, Login, Password);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -313,112 +211,6 @@ EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region Private
|
||||
|
||||
Function CheckCreateConnection(Connection)
|
||||
|
||||
If Not IsConnector(Connection) Then
|
||||
|
||||
CloseConnection = True;
|
||||
Connection = CreateConnectionByConfiguration(Connection);
|
||||
|
||||
Else
|
||||
CloseConnection = False;
|
||||
EndIf;
|
||||
|
||||
Return CloseConnection;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function CreateConnectionByConfiguration(Val ConfigurationStructure)
|
||||
|
||||
If IsConnector(ConfigurationStructure) Then
|
||||
Return ConfigurationStructure;
|
||||
EndIf;
|
||||
|
||||
ErrorPattern = "Incorrect connection configuration provided: %1";
|
||||
|
||||
Try
|
||||
OPI_TypeConversion.GetKeyValueCollection(ConfigurationStructure);
|
||||
Except
|
||||
|
||||
Result = New Map;
|
||||
Result.Insert("result", False);
|
||||
Result.Insert("error" , StrTemplate(ErrorPattern, ErrorDescription()));
|
||||
Return Result;
|
||||
|
||||
EndTry;
|
||||
|
||||
If Not OPI_Tools.CollectionFieldExists(ConfigurationStructure, "set") Then
|
||||
|
||||
Result = New Map;
|
||||
Result.Insert("result", False);
|
||||
Result.Insert("error" , StrTemplate(ErrorPattern, "missing main connection parameters"));
|
||||
Return Result;
|
||||
|
||||
EndIf;
|
||||
|
||||
SSHSettings = ConfigurationStructure["set"];
|
||||
Proxy = OPI_Tools.GetOr(ConfigurationStructure, "proxy", Undefined);
|
||||
|
||||
Return CreateConnection(SSHSettings, Proxy);
|
||||
|
||||
EndFunction
|
||||
|
||||
Function SetSettings(Val Connector, Val SSHSettings)
|
||||
|
||||
ErrorPattern = "Incorrect connection configuration provided: %1";
|
||||
|
||||
Try
|
||||
OPI_TypeConversion.GetKeyValueCollection(SSHSettings);
|
||||
Except
|
||||
|
||||
Result = New Map;
|
||||
Result.Insert("result", False);
|
||||
Result.Insert("error" , StrTemplate(ErrorPattern, ErrorDescription()));
|
||||
Return Result;
|
||||
|
||||
EndTry;
|
||||
|
||||
SettingsString = OPI_Tools.JSONString(SSHSettings);
|
||||
|
||||
Result = Connector.SetSettings(SettingsString);
|
||||
Result = OPI_Tools.JsonToStructure(Result);
|
||||
|
||||
Return Result;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function SetProxy(Val Connector, Val Proxy)
|
||||
|
||||
If Not ValueIsFilled(Proxy) Then
|
||||
Return New Structure("result", True);
|
||||
EndIf;
|
||||
|
||||
ErrorPattern = "Incorrect proxy configuration passed: %1";
|
||||
|
||||
Try
|
||||
OPI_TypeConversion.GetKeyValueCollection(Proxy);
|
||||
Except
|
||||
|
||||
Result = New Map;
|
||||
Result.Insert("result", False);
|
||||
Result.Insert("error" , StrTemplate(ErrorPattern, ErrorDescription()));
|
||||
Return Result;
|
||||
|
||||
EndTry;
|
||||
|
||||
ProxyString = OPI_Tools.JSONString(Proxy);
|
||||
|
||||
Result = Connector.SetProxy(ProxyString);
|
||||
Result = OPI_Tools.JsonToStructure(Result);
|
||||
|
||||
Return Result;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function ОткрытьСоединение(Val НастройкиSSH, Val Прокси = "") Export
|
||||
|
1
src/en/OInt/lib.config
vendored
1
src/en/OInt/lib.config
vendored
@@ -38,6 +38,7 @@
|
||||
<module name="OPI_HTTPRequests" file="tools/Modules/OPI_HTTPRequests.os"/>
|
||||
<module name="OPI_SQLQueries" file="tools/Modules/OPI_SQLQueries.os"/>
|
||||
<module name="OPI_SQLQueries" file="tools/Modules/OPI_SQLQueries.os"/>
|
||||
<module name="OPI_SSHRequests" file="tools/Modules/OPI_SSHRequests.os"/>
|
||||
<module name="OPI_Tools" file="tools/Modules/internal/Modules/OPI_Tools.os"/>
|
||||
<module name="OPI_Tools" file="tools/Modules/internal/Modules/OPI_Tools.os"/>
|
||||
<module name="OPI_AddIns" file="tools/Modules/OPI_AddIns.os"/>
|
||||
|
@@ -23196,7 +23196,7 @@ Procedure SSH_GetSettingsViaAgent(FunctionParameters)
|
||||
Host = FunctionParameters["SSH_Host"];
|
||||
Port = FunctionParameters["SSH_Port"];
|
||||
Login = FunctionParameters["SSH_User"];
|
||||
SSHSettings = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
|
||||
Result = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
|
||||
|
||||
// END
|
||||
|
||||
|
@@ -30491,7 +30491,7 @@ Procedure SSH_GetSettingsViaAgent(FunctionParameters)
|
||||
Options.Insert("port", Port);
|
||||
Options.Insert("user", Login);
|
||||
|
||||
SSHSettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsViaAgent", Options);
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsViaAgent", Options);
|
||||
|
||||
// END
|
||||
|
||||
|
@@ -1108,7 +1108,8 @@ Function GetSSHParameterOptions() Export
|
||||
|
||||
TestParametersMain.Insert("SSH_Key", PrivateKey);
|
||||
|
||||
TestParametersMain.Insert("Proxy", False);
|
||||
TestParametersMain.Insert("Proxy" , False);
|
||||
TestParametersMain.Insert("Proxy_Type", "none");
|
||||
|
||||
TestParameters = OPI_Tools.CopyCollection(TestParametersMain);
|
||||
TestParameters.Insert("AuthType", "By login and password");
|
||||
|
18
src/en/OPI/src/CommonModules/OPI_SFTP/Module.bsl
vendored
18
src/en/OPI/src/CommonModules/OPI_SFTP/Module.bsl
vendored
@@ -60,9 +60,9 @@
|
||||
// Arbitrary, Map of KeyAndValue - Create Connection
|
||||
Function CreateConnection(Val SSHSettings, Val Proxy = "") Export
|
||||
|
||||
SSHConnection = OPI_SSH.CreateConnection(SSHSettings, Proxy);
|
||||
SSHConnection = OPI_SSHRequests.CreateConnection(SSHSettings, Proxy);
|
||||
|
||||
If OPI_SSH.IsConnector(SSHConnection) Then
|
||||
If IsConnector(SSHConnection) Then
|
||||
Result = SSHConnection.ToSFTP();
|
||||
Result = OPI_Tools.JsonToStructure(Result);
|
||||
Else
|
||||
@@ -90,7 +90,7 @@ EndFunction
|
||||
// Structure Of KeyAndValue - Connection settings structure
|
||||
Function GetConnectionConfiguration(Val SSHSettings, Val Proxy = Undefined) Export
|
||||
|
||||
Return OPI_SSH.GetConnectionConfiguration(SSHSettings, Proxy);
|
||||
Return OPI_SSHRequests.GetConnectionConfiguration(SSHSettings, Proxy);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -104,7 +104,7 @@ EndFunction
|
||||
// Structure Of KeyAndValue - Result of connection termination
|
||||
Function CloseConnection(Val Connection) Export
|
||||
|
||||
Return OPI_SSH.CloseConnection(Connection);
|
||||
Return OPI_SSHRequests.CloseConnection(Connection);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -118,7 +118,7 @@ EndFunction
|
||||
// Boolean - Is connector
|
||||
Function IsConnector(Val Value) Export
|
||||
|
||||
Return OPI_SSH.IsConnector(Value);
|
||||
Return OPI_SSHRequests.IsConnector(Value);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -135,7 +135,7 @@ EndFunction
|
||||
// Structure Of KeyAndValue - Connection configuration
|
||||
Function GetSettingsLoginPassword(Val Host, Val Port, Val Login, Val Password = "") Export
|
||||
|
||||
Return OPI_SSH.GetSettingsLoginPassword(Host, Port, Login, Password);
|
||||
Return OPI_SSHRequests.GetSettingsLoginPassword(Host, Port, Login, Password);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -159,7 +159,7 @@ Function GetSettingsPrivateKey(Val Host
|
||||
, Val Public = ""
|
||||
, Val Password = "") Export
|
||||
|
||||
Return OPI_SSH.GetSettingsPrivateKey(Host, Port, Login, Private, Public, Password);
|
||||
Return OPI_SSHRequests.GetSettingsPrivateKey(Host, Port, Login, Private, Public, Password);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -175,7 +175,7 @@ EndFunction
|
||||
// Structure Of KeyAndValue - Connection configuration
|
||||
Function GetSettingsViaAgent(Val Host, Val Port, Val Login) Export
|
||||
|
||||
Return OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
|
||||
Return OPI_SSHRequests.GetSettingsViaAgent(Host, Port, Login);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -331,7 +331,7 @@ Function GetCurrentDirectory(Val Connection) Export
|
||||
Return Connection;
|
||||
Else
|
||||
|
||||
Result = OPI_SSH.ExecuteCommand(Connection, "pwd");
|
||||
Result = OPI_SSHRequests.ExecuteCommand(Connection, "pwd");
|
||||
ProcessSSHCommandExecution(Result, "path");
|
||||
|
||||
EndIf;
|
||||
|
226
src/en/OPI/src/CommonModules/OPI_SSH/Module.bsl
vendored
226
src/en/OPI/src/CommonModules/OPI_SSH/Module.bsl
vendored
@@ -60,30 +60,7 @@
|
||||
// Arbitrary, Map of KeyAndValue - Create Connection
|
||||
Function CreateConnection(Val SSHSettings, Val Proxy = "") Export
|
||||
|
||||
Result_ = "result";
|
||||
|
||||
If IsConnector(SSHSettings) Then
|
||||
Return SSHSettings;
|
||||
EndIf;
|
||||
|
||||
Connector = OPI_AddIns.GetAddIn("SSH");
|
||||
|
||||
ConfigureSetup = SetSettings(Connector, SSHSettings);
|
||||
|
||||
If Not OPI_Tools.GetOr(ConfigureSetup, Result_, False) Then
|
||||
Return ConfigureSetup;
|
||||
EndIf;
|
||||
|
||||
ProxySetup = SetProxy(Connector, Proxy);
|
||||
|
||||
If Not OPI_Tools.GetOr(ProxySetup, Result_, False) Then
|
||||
Return ProxySetup;
|
||||
EndIf;
|
||||
|
||||
Result = Connector.Connect();
|
||||
Result = OPI_Tools.JsonToStructure(Result);
|
||||
|
||||
Return ?(Result[Result_], Connector, Result);
|
||||
Return OPI_SSHRequests.CreateConnection(SSHSettings, Proxy);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -104,12 +81,7 @@ EndFunction
|
||||
// Structure Of KeyAndValue - Connection settings structure
|
||||
Function GetConnectionConfiguration(Val SSHSettings, Val Proxy = Undefined) Export
|
||||
|
||||
ConfigurationStructure = New Structure;
|
||||
|
||||
OPI_Tools.AddField("set" , SSHSettings, "Collection", ConfigurationStructure);
|
||||
OPI_Tools.AddField("proxy", Proxy , "Collection", ConfigurationStructure);
|
||||
|
||||
Return ConfigurationStructure;
|
||||
Return OPI_SSHRequests.GetConnectionConfiguration(SSHSettings, Proxy);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -124,32 +96,7 @@ EndFunction
|
||||
// Map Of KeyAndValue - Processing result
|
||||
Function ExecuteCommand(Val Connection, Val Command) Export
|
||||
|
||||
CloseConnection = CheckCreateConnection(Connection);
|
||||
|
||||
If Not IsConnector(Connection) Then
|
||||
Return Connection;
|
||||
Else
|
||||
|
||||
OPI_TypeConversion.GetLine(Command);
|
||||
|
||||
Result = Connection.Execute(Command);
|
||||
Result = OPI_Tools.JsonToStructure(Result);
|
||||
|
||||
Output = Result["stdout"];
|
||||
|
||||
If Output <> Undefined Then
|
||||
If StrEndsWith(Output, Chars.LF) Then
|
||||
Result["stdout"] = Left(Output, StrLen(Output) - 1);
|
||||
EndIf;
|
||||
EndIf;
|
||||
|
||||
EndIf;
|
||||
|
||||
If CloseConnection Then
|
||||
Result.Insert("close_connection", CloseConnection(Connection));
|
||||
EndIf;
|
||||
|
||||
Return Result;
|
||||
Return OPI_SSHRequests.ExecuteCommand(Connection, Command);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -163,17 +110,7 @@ EndFunction
|
||||
// Structure Of KeyAndValue - Result of connection termination
|
||||
Function CloseConnection(Val Connection) Export
|
||||
|
||||
CheckCreateConnection(Connection);
|
||||
|
||||
If Not IsConnector(Connection) Then
|
||||
Return Connection;
|
||||
EndIf;
|
||||
|
||||
Result = Connection.Disconnect();
|
||||
Result = OPI_Tools.JsonToStructure(Result);
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Return Result;
|
||||
Return OPI_SSHRequests.CloseConnection(Connection);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -187,7 +124,7 @@ EndFunction
|
||||
// Boolean - Is connector
|
||||
Function IsConnector(Val Value) Export
|
||||
|
||||
Return String(TypeOf(Value)) = "AddIn.OPI_SSH.Main";
|
||||
Return OPI_SSHRequests.IsConnector(Value);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -204,16 +141,7 @@ EndFunction
|
||||
// Structure Of KeyAndValue - Connection configuration
|
||||
Function GetSettingsLoginPassword(Val Host, Val Port, Val Login, Val Password = "") Export
|
||||
|
||||
String_ = "String";
|
||||
|
||||
ConfigurationStructure = New Structure;
|
||||
OPI_Tools.AddField("auth_type", "password", String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("host" , Host , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("port" , Port , "Number" , ConfigurationStructure);
|
||||
OPI_Tools.AddField("username" , Login , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("password" , Password , String_ , ConfigurationStructure);
|
||||
|
||||
Return ConfigurationStructure;
|
||||
Return OPI_SSHRequests.GetSettingsLoginPassword(Host, Port, Login, Password);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -237,28 +165,7 @@ Function GetSettingsPrivateKey(Val Host
|
||||
, Val Public = ""
|
||||
, Val Password = "") Export
|
||||
|
||||
String_ = "String";
|
||||
|
||||
OPI_TypeConversion.GetFileOnDisk(Private);
|
||||
Private_ = Private.Path;
|
||||
|
||||
If ValueIsFilled(Public) Then
|
||||
OPI_TypeConversion.GetFileOnDisk(Public);
|
||||
Public_ = Public.Path;
|
||||
Else
|
||||
Public_ = Undefined;
|
||||
EndIf;
|
||||
|
||||
ConfigurationStructure = New Structure;
|
||||
OPI_Tools.AddField("auth_type" , "private_key" , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("host" , Host , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("port" , Port , "Number", ConfigurationStructure);
|
||||
OPI_Tools.AddField("username" , Login , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("key_path" , Private_ , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("pub_path" , Public_ , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("passphrase", Password , String_ , ConfigurationStructure);
|
||||
|
||||
Return ConfigurationStructure;
|
||||
Return OPI_SSHRequests.GetSettingsPrivateKey(Host, Port, Login, Private, Public, Password);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -274,15 +181,7 @@ EndFunction
|
||||
// Structure Of KeyAndValue - Connection configuration
|
||||
Function GetSettingsViaAgent(Val Host, Val Port, Val Login) Export
|
||||
|
||||
String_ = "String";
|
||||
|
||||
ConfigurationStructure = New Structure;
|
||||
OPI_Tools.AddField("auth_type" , "agent", String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("host" , Host , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("port" , Port , "Number", ConfigurationStructure);
|
||||
OPI_Tools.AddField("username" , Login , String_ , ConfigurationStructure);
|
||||
|
||||
Return ConfigurationStructure;
|
||||
Return OPI_SSHRequests.GetSettingsViaAgent(Host, Port, Login);
|
||||
|
||||
EndFunction
|
||||
|
||||
@@ -304,117 +203,10 @@ Function GetProxySettings(Val Address
|
||||
, Val Login = Undefined
|
||||
, Val Password = Undefined) Export
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Return OPI_AddIns.GetProxySettings(Address, Port, View, Login, Password);
|
||||
Return OPI_SSHRequests.GetProxySettings(Address, Port, View, Login, Password);
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region Private
|
||||
|
||||
Function CheckCreateConnection(Connection)
|
||||
|
||||
If Not IsConnector(Connection) Then
|
||||
|
||||
CloseConnection = True;
|
||||
Connection = CreateConnectionByConfiguration(Connection);
|
||||
|
||||
Else
|
||||
CloseConnection = False;
|
||||
EndIf;
|
||||
|
||||
Return CloseConnection;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function CreateConnectionByConfiguration(Val ConfigurationStructure)
|
||||
|
||||
If IsConnector(ConfigurationStructure) Then
|
||||
Return ConfigurationStructure;
|
||||
EndIf;
|
||||
|
||||
ErrorPattern = "Incorrect connection configuration provided: %1";
|
||||
|
||||
Try
|
||||
OPI_TypeConversion.GetKeyValueCollection(ConfigurationStructure);
|
||||
Except
|
||||
|
||||
Result = New Map;
|
||||
Result.Insert("result", False);
|
||||
Result.Insert("error" , StrTemplate(ErrorPattern, ErrorDescription()));
|
||||
Return Result;
|
||||
|
||||
EndTry;
|
||||
|
||||
If Not OPI_Tools.CollectionFieldExists(ConfigurationStructure, "set") Then
|
||||
|
||||
Result = New Map;
|
||||
Result.Insert("result", False);
|
||||
Result.Insert("error" , StrTemplate(ErrorPattern, "missing main connection parameters"));
|
||||
Return Result;
|
||||
|
||||
EndIf;
|
||||
|
||||
SSHSettings = ConfigurationStructure["set"];
|
||||
Proxy = OPI_Tools.GetOr(ConfigurationStructure, "proxy", Undefined);
|
||||
|
||||
Return CreateConnection(SSHSettings, Proxy);
|
||||
|
||||
EndFunction
|
||||
|
||||
Function SetSettings(Val Connector, Val SSHSettings)
|
||||
|
||||
ErrorPattern = "Incorrect connection configuration provided: %1";
|
||||
|
||||
Try
|
||||
OPI_TypeConversion.GetKeyValueCollection(SSHSettings);
|
||||
Except
|
||||
|
||||
Result = New Map;
|
||||
Result.Insert("result", False);
|
||||
Result.Insert("error" , StrTemplate(ErrorPattern, ErrorDescription()));
|
||||
Return Result;
|
||||
|
||||
EndTry;
|
||||
|
||||
SettingsString = OPI_Tools.JSONString(SSHSettings);
|
||||
|
||||
Result = Connector.SetSettings(SettingsString);
|
||||
Result = OPI_Tools.JsonToStructure(Result);
|
||||
|
||||
Return Result;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function SetProxy(Val Connector, Val Proxy)
|
||||
|
||||
If Not ValueIsFilled(Proxy) Then
|
||||
Return New Structure("result", True);
|
||||
EndIf;
|
||||
|
||||
ErrorPattern = "Incorrect proxy configuration passed: %1";
|
||||
|
||||
Try
|
||||
OPI_TypeConversion.GetKeyValueCollection(Proxy);
|
||||
Except
|
||||
|
||||
Result = New Map;
|
||||
Result.Insert("result", False);
|
||||
Result.Insert("error" , StrTemplate(ErrorPattern, ErrorDescription()));
|
||||
Return Result;
|
||||
|
||||
EndTry;
|
||||
|
||||
ProxyString = OPI_Tools.JSONString(Proxy);
|
||||
|
||||
Result = Connector.SetProxy(ProxyString);
|
||||
Result = OPI_Tools.JsonToStructure(Result);
|
||||
|
||||
Return Result;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
321
src/en/OPI/src/CommonModules/OPI_SSHRequests/Module.bsl
vendored
Normal file
321
src/en/OPI/src/CommonModules/OPI_SSHRequests/Module.bsl
vendored
Normal file
@@ -0,0 +1,321 @@
|
||||
// OneScript: ./OInt/tools/Modules/OPI_SSHRequests.os
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023-2025 Anton Tsitavets
|
||||
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||
|
||||
// BSLLS:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:NumberOfOptionalParams-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:LineLength-off
|
||||
// BSLLS:QueryParseError-off
|
||||
// BSLLS:AssignAliasFieldsInQuery-off
|
||||
// BSLLS:NumberOfParams-off
|
||||
// BSLLS:UsingSynchronousCalls-off
|
||||
// BSLLS:MagicNumber-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
//@skip-check constructor-function-return-section
|
||||
|
||||
// Uncomment if OneScript is executed
|
||||
// #Use "./internal"
|
||||
|
||||
#Region Internal
|
||||
|
||||
Function CreateConnection(Val SSHSettings, Val Proxy = "") Export
|
||||
|
||||
Result_ = "result";
|
||||
|
||||
If IsConnector(SSHSettings) Then
|
||||
Return SSHSettings;
|
||||
EndIf;
|
||||
|
||||
Connector = OPI_AddIns.GetAddIn("SSH");
|
||||
|
||||
ConfigureSetup = SetSettings(Connector, SSHSettings);
|
||||
|
||||
If Not OPI_Tools.GetOr(ConfigureSetup, Result_, False) Then
|
||||
Return ConfigureSetup;
|
||||
EndIf;
|
||||
|
||||
ProxySetup = SetProxy(Connector, Proxy);
|
||||
|
||||
If Not OPI_Tools.GetOr(ProxySetup, Result_, False) Then
|
||||
Return ProxySetup;
|
||||
EndIf;
|
||||
|
||||
Result = Connector.Connect();
|
||||
Result = OPI_Tools.JsonToStructure(Result);
|
||||
|
||||
Return ?(Result[Result_], Connector, Result);
|
||||
|
||||
EndFunction
|
||||
|
||||
Function GetConnectionConfiguration(Val SSHSettings, Val Proxy = Undefined) Export
|
||||
|
||||
ConfigurationStructure = New Structure;
|
||||
|
||||
OPI_Tools.AddField("set" , SSHSettings, "Collection", ConfigurationStructure);
|
||||
OPI_Tools.AddField("proxy", Proxy , "Collection", ConfigurationStructure);
|
||||
|
||||
Return ConfigurationStructure;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function ExecuteCommand(Val Connection, Val Command) Export
|
||||
|
||||
CloseConnection = CheckCreateConnection(Connection);
|
||||
|
||||
If Not IsConnector(Connection) Then
|
||||
Return Connection;
|
||||
Else
|
||||
|
||||
OPI_TypeConversion.GetLine(Command);
|
||||
|
||||
Result = Connection.Execute(Command);
|
||||
Result = OPI_Tools.JsonToStructure(Result);
|
||||
|
||||
Output = Result["stdout"];
|
||||
|
||||
If Output <> Undefined Then
|
||||
If StrEndsWith(Output, Chars.LF) Then
|
||||
Result["stdout"] = Left(Output, StrLen(Output) - 1);
|
||||
EndIf;
|
||||
EndIf;
|
||||
|
||||
EndIf;
|
||||
|
||||
If CloseConnection Then
|
||||
Result.Insert("close_connection", CloseConnection(Connection));
|
||||
EndIf;
|
||||
|
||||
Return Result;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function CloseConnection(Val Connection) Export
|
||||
|
||||
CheckCreateConnection(Connection);
|
||||
|
||||
If Not IsConnector(Connection) Then
|
||||
Return Connection;
|
||||
EndIf;
|
||||
|
||||
Result = Connection.Disconnect();
|
||||
Result = OPI_Tools.JsonToStructure(Result);
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Return Result;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function IsConnector(Val Value) Export
|
||||
|
||||
Return String(TypeOf(Value)) = "AddIn.OPI_SSH.Main";
|
||||
|
||||
EndFunction
|
||||
|
||||
Function GetSettingsLoginPassword(Val Host, Val Port, Val Login, Val Password = "") Export
|
||||
|
||||
String_ = "String";
|
||||
|
||||
ConfigurationStructure = New Structure;
|
||||
OPI_Tools.AddField("auth_type", "password", String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("host" , Host , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("port" , Port , "Number" , ConfigurationStructure);
|
||||
OPI_Tools.AddField("username" , Login , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("password" , Password , String_ , ConfigurationStructure);
|
||||
|
||||
Return ConfigurationStructure;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function GetSettingsPrivateKey(Val Host
|
||||
, Val Port
|
||||
, Val Login
|
||||
, Val Private
|
||||
, Val Public = ""
|
||||
, Val Password = "") Export
|
||||
|
||||
String_ = "String";
|
||||
|
||||
OPI_TypeConversion.GetFileOnDisk(Private);
|
||||
Private_ = Private.Path;
|
||||
|
||||
If ValueIsFilled(Public) Then
|
||||
OPI_TypeConversion.GetFileOnDisk(Public);
|
||||
Public_ = Public.Path;
|
||||
Else
|
||||
Public_ = Undefined;
|
||||
EndIf;
|
||||
|
||||
ConfigurationStructure = New Structure;
|
||||
OPI_Tools.AddField("auth_type" , "private_key" , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("host" , Host , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("port" , Port , "Number", ConfigurationStructure);
|
||||
OPI_Tools.AddField("username" , Login , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("key_path" , Private_ , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("pub_path" , Public_ , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("passphrase", Password , String_ , ConfigurationStructure);
|
||||
|
||||
Return ConfigurationStructure;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function GetSettingsViaAgent(Val Host, Val Port, Val Login) Export
|
||||
|
||||
String_ = "String";
|
||||
|
||||
ConfigurationStructure = New Structure;
|
||||
OPI_Tools.AddField("auth_type" , "agent", String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("host" , Host , String_ , ConfigurationStructure);
|
||||
OPI_Tools.AddField("port" , Port , "Number", ConfigurationStructure);
|
||||
OPI_Tools.AddField("username" , Login , String_ , ConfigurationStructure);
|
||||
|
||||
Return ConfigurationStructure;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function GetProxySettings(Val Address
|
||||
, Val Port
|
||||
, Val View = "socks5"
|
||||
, Val Login = Undefined
|
||||
, Val Password = Undefined) Export
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Return OPI_AddIns.GetProxySettings(Address, Port, View, Login, Password);
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region Private
|
||||
|
||||
Function CheckCreateConnection(Connection)
|
||||
|
||||
If Not IsConnector(Connection) Then
|
||||
|
||||
CloseConnection = True;
|
||||
Connection = CreateConnectionByConfiguration(Connection);
|
||||
|
||||
Else
|
||||
CloseConnection = False;
|
||||
EndIf;
|
||||
|
||||
Return CloseConnection;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function CreateConnectionByConfiguration(Val ConfigurationStructure)
|
||||
|
||||
If IsConnector(ConfigurationStructure) Then
|
||||
Return ConfigurationStructure;
|
||||
EndIf;
|
||||
|
||||
ErrorPattern = "Incorrect connection configuration provided: %1";
|
||||
|
||||
Try
|
||||
OPI_TypeConversion.GetKeyValueCollection(ConfigurationStructure);
|
||||
Except
|
||||
|
||||
Result = New Map;
|
||||
Result.Insert("result", False);
|
||||
Result.Insert("error" , StrTemplate(ErrorPattern, ErrorDescription()));
|
||||
Return Result;
|
||||
|
||||
EndTry;
|
||||
|
||||
If Not OPI_Tools.CollectionFieldExists(ConfigurationStructure, "set") Then
|
||||
|
||||
Result = New Map;
|
||||
Result.Insert("result", False);
|
||||
Result.Insert("error" , StrTemplate(ErrorPattern, "missing main connection parameters"));
|
||||
Return Result;
|
||||
|
||||
EndIf;
|
||||
|
||||
SSHSettings = ConfigurationStructure["set"];
|
||||
Proxy = OPI_Tools.GetOr(ConfigurationStructure, "proxy", Undefined);
|
||||
|
||||
Return CreateConnection(SSHSettings, Proxy);
|
||||
|
||||
EndFunction
|
||||
|
||||
Function SetSettings(Val Connector, Val SSHSettings)
|
||||
|
||||
ErrorPattern = "Incorrect connection configuration provided: %1";
|
||||
|
||||
Try
|
||||
OPI_TypeConversion.GetKeyValueCollection(SSHSettings);
|
||||
Except
|
||||
|
||||
Result = New Map;
|
||||
Result.Insert("result", False);
|
||||
Result.Insert("error" , StrTemplate(ErrorPattern, ErrorDescription()));
|
||||
Return Result;
|
||||
|
||||
EndTry;
|
||||
|
||||
SettingsString = OPI_Tools.JSONString(SSHSettings);
|
||||
|
||||
Result = Connector.SetSettings(SettingsString);
|
||||
Result = OPI_Tools.JsonToStructure(Result);
|
||||
|
||||
Return Result;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function SetProxy(Val Connector, Val Proxy)
|
||||
|
||||
If Not ValueIsFilled(Proxy) Then
|
||||
Return New Structure("result", True);
|
||||
EndIf;
|
||||
|
||||
ErrorPattern = "Incorrect proxy configuration passed: %1";
|
||||
|
||||
Try
|
||||
OPI_TypeConversion.GetKeyValueCollection(Proxy);
|
||||
Except
|
||||
|
||||
Result = New Map;
|
||||
Result.Insert("result", False);
|
||||
Result.Insert("error" , StrTemplate(ErrorPattern, ErrorDescription()));
|
||||
Return Result;
|
||||
|
||||
EndTry;
|
||||
|
||||
ProxyString = OPI_Tools.JSONString(Proxy);
|
||||
|
||||
Result = Connector.SetProxy(ProxyString);
|
||||
Result = OPI_Tools.JsonToStructure(Result);
|
||||
|
||||
Return Result;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
12
src/en/OPI/src/CommonModules/OPI_SSHRequests/OPI_SSHRequests.mdo
vendored
Normal file
12
src/en/OPI/src/CommonModules/OPI_SSHRequests/OPI_SSHRequests.mdo
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="b59f0d9d-94ec-4c4b-80a2-c75fa4e29094">
|
||||
<name>OPI_SSHRequests</name>
|
||||
<synonym>
|
||||
<key>en</key>
|
||||
<value>SSH (Utility, OpenIntegrations)</value>
|
||||
</synonym>
|
||||
<comment>Common SSH Tools Module of OpenIntegrations</comment>
|
||||
<server>true</server>
|
||||
<externalConnection>true</externalConnection>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
@@ -1108,7 +1108,8 @@ Function GetSSHParameterOptions() Export
|
||||
|
||||
TestParametersMain.Insert("SSH_Key", PrivateKey);
|
||||
|
||||
TestParametersMain.Insert("Proxy", False);
|
||||
TestParametersMain.Insert("Proxy" , False);
|
||||
TestParametersMain.Insert("Proxy_Type", "none");
|
||||
|
||||
TestParameters = OPI_Tools.CopyCollection(TestParametersMain);
|
||||
TestParameters.Insert("AuthType", "By login and password");
|
||||
|
@@ -23197,7 +23197,7 @@ Procedure SSH_GetSettingsViaAgent(FunctionParameters)
|
||||
Host = FunctionParameters["SSH_Host"];
|
||||
Port = FunctionParameters["SSH_Port"];
|
||||
Login = FunctionParameters["SSH_User"];
|
||||
SSHSettings = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
|
||||
Result = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);
|
||||
|
||||
// END
|
||||
|
||||
|
@@ -30491,7 +30491,7 @@ Procedure SSH_GetSettingsViaAgent(FunctionParameters)
|
||||
Options.Insert("port", Port);
|
||||
Options.Insert("user", Login);
|
||||
|
||||
SSHSettings = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsViaAgent", Options);
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("ssh", "GetSettingsViaAgent", Options);
|
||||
|
||||
// END
|
||||
|
||||
|
@@ -91,6 +91,7 @@
|
||||
<commonModules>CommonModule.OPI_Tools</commonModules>
|
||||
<commonModules>CommonModule.OPI_HTTPRequests</commonModules>
|
||||
<commonModules>CommonModule.OPI_SQLQueries</commonModules>
|
||||
<commonModules>CommonModule.OPI_SSHRequests</commonModules>
|
||||
<commonModules>CommonModule.OPI_AddIns</commonModules>
|
||||
<commonModules>CommonModule.OPI_Cryptography</commonModules>
|
||||
<commonModules>CommonModule.OPI_TestDataRetrieval</commonModules>
|
||||
|
18
src/ru/OInt/core/Modules/OPI_SFTP.os
vendored
18
src/ru/OInt/core/Modules/OPI_SFTP.os
vendored
@@ -60,9 +60,9 @@
|
||||
// Произвольный, Соответствие Из КлючИЗначение - Открыть соединение
|
||||
Функция ОткрытьСоединение(Знач НастройкиSSH, Знач Прокси = "") Экспорт
|
||||
|
||||
СоединениеSSH = OPI_SSH.ОткрытьСоединение(НастройкиSSH, Прокси);
|
||||
СоединениеSSH = OPI_ЗапросыSSH.ОткрытьСоединение(НастройкиSSH, Прокси);
|
||||
|
||||
Если OPI_SSH.ЭтоКоннектор(СоединениеSSH) Тогда
|
||||
Если ЭтоКоннектор(СоединениеSSH) Тогда
|
||||
Результат = СоединениеSSH.ToSFTP();
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
Иначе
|
||||
@@ -90,7 +90,7 @@
|
||||
// Структура Из КлючИЗначение - Структура настроек соединения
|
||||
Функция ПолучитьКонфигурациюСоединения(Знач НастройкиSSH, Знач Прокси = Неопределено) Экспорт
|
||||
|
||||
Возврат OPI_SSH.ПолучитьКонфигурациюСоединения(НастройкиSSH, Прокси);
|
||||
Возврат OPI_ЗапросыSSH.ПолучитьКонфигурациюСоединения(НастройкиSSH, Прокси);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
// Структура Из КлючИЗначение - Результат закрытия соединения
|
||||
Функция ЗакрытьСоединение(Знач Соединение) Экспорт
|
||||
|
||||
Возврат OPI_SSH.ЗакрытьСоединение(Соединение);
|
||||
Возврат OPI_ЗапросыSSH.ЗакрытьСоединение(Соединение);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
// Булево - Это коннектор
|
||||
Функция ЭтоКоннектор(Знач Значение) Экспорт
|
||||
|
||||
Возврат OPI_SSH.ЭтоКоннектор(Значение);
|
||||
Возврат OPI_ЗапросыSSH.ЭтоКоннектор(Значение);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
// Структура Из КлючИЗначение - Конфигурация соединения
|
||||
Функция ПолучитьНастройкиЛогинПароль(Знач Хост, Знач Порт, Знач Логин, Знач Пароль = "") Экспорт
|
||||
|
||||
Возврат OPI_SSH.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
|
||||
Возврат OPI_ЗапросыSSH.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
, Знач Публичный = ""
|
||||
, Знач Пароль = "") Экспорт
|
||||
|
||||
Возврат OPI_SSH.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, Приватный, Публичный, Пароль);
|
||||
Возврат OPI_ЗапросыSSH.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, Приватный, Публичный, Пароль);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -175,7 +175,7 @@
|
||||
// Структура Из КлючИЗначение - Конфигурация соединения
|
||||
Функция ПолучитьНастройкиЧерезАгента(Знач Хост, Знач Порт, Знач Логин) Экспорт
|
||||
|
||||
Возврат OPI_SSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
|
||||
Возврат OPI_ЗапросыSSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -331,7 +331,7 @@
|
||||
Возврат Соединение;
|
||||
Иначе
|
||||
|
||||
Результат = OPI_SSH.ВыполнитьКоманду(Соединение, "pwd");
|
||||
Результат = OPI_ЗапросыSSH.ВыполнитьКоманду(Соединение, "pwd");
|
||||
ОбработатьВыполнениеКомандыSSH(Результат, "path");
|
||||
|
||||
КонецЕсли;
|
||||
|
226
src/ru/OInt/core/Modules/OPI_SSH.os
vendored
226
src/ru/OInt/core/Modules/OPI_SSH.os
vendored
@@ -60,30 +60,7 @@
|
||||
// Произвольный, Соответствие Из КлючИЗначение - Открыть соединение
|
||||
Функция ОткрытьСоединение(Знач НастройкиSSH, Знач Прокси = "") Экспорт
|
||||
|
||||
Result_ = "result";
|
||||
|
||||
Если ЭтоКоннектор(НастройкиSSH) Тогда
|
||||
Возврат НастройкиSSH;
|
||||
КонецЕсли;
|
||||
|
||||
Коннектор = OPI_Компоненты.ПолучитьКомпоненту("SSH");
|
||||
|
||||
УстановкаКонфигурации = УстановитьНастройки(Коннектор, НастройкиSSH);
|
||||
|
||||
Если Не OPI_Инструменты.ПолучитьИли(УстановкаКонфигурации, Result_, Ложь) Тогда
|
||||
Возврат УстановкаКонфигурации;
|
||||
КонецЕсли;
|
||||
|
||||
УстановкаПрокси = УстановитьПрокси(Коннектор, Прокси);
|
||||
|
||||
Если Не OPI_Инструменты.ПолучитьИли(УстановкаПрокси, Result_, Ложь) Тогда
|
||||
Возврат УстановкаПрокси;
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Коннектор.Connect();
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
|
||||
Возврат ?(Результат[Result_], Коннектор, Результат);
|
||||
Возврат OPI_ЗапросыSSH.ОткрытьСоединение(НастройкиSSH, Прокси);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -104,12 +81,7 @@
|
||||
// Структура Из КлючИЗначение - Структура настроек соединения
|
||||
Функция ПолучитьКонфигурациюСоединения(Знач НастройкиSSH, Знач Прокси = Неопределено) Экспорт
|
||||
|
||||
СтруктураКонфигурации = Новый Структура;
|
||||
|
||||
OPI_Инструменты.ДобавитьПоле("set" , НастройкиSSH, "Коллекция", СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("proxy", Прокси , "Коллекция", СтруктураКонфигурации);
|
||||
|
||||
Возврат СтруктураКонфигурации;
|
||||
Возврат OPI_ЗапросыSSH.ПолучитьКонфигурациюСоединения(НастройкиSSH, Прокси);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -124,32 +96,7 @@
|
||||
// Соответствие Из КлючИЗначение - Результат обработки
|
||||
Функция ВыполнитьКоманду(Знач Соединение, Знач Команда) Экспорт
|
||||
|
||||
ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
|
||||
|
||||
Если Не ЭтоКоннектор(Соединение) Тогда
|
||||
Возврат Соединение;
|
||||
Иначе
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Команда);
|
||||
|
||||
Результат = Соединение.Execute(Команда);
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
|
||||
Вывод = Результат["stdout"];
|
||||
|
||||
Если Вывод <> Неопределено Тогда
|
||||
Если СтрЗаканчиваетсяНа(Вывод, Символы.ПС) Тогда
|
||||
Результат["stdout"] = Лев(Вывод, СтрДлина(Вывод) - 1);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗакрыватьСоединение Тогда
|
||||
Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
Возврат OPI_ЗапросыSSH.ВыполнитьКоманду(Соединение, Команда);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -163,17 +110,7 @@
|
||||
// Структура Из КлючИЗначение - Результат закрытия соединения
|
||||
Функция ЗакрытьСоединение(Знач Соединение) Экспорт
|
||||
|
||||
ПроверитьСоздатьСоединение(Соединение);
|
||||
|
||||
Если Не ЭтоКоннектор(Соединение) Тогда
|
||||
Возврат Соединение;
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Соединение.Disconnect();
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат Результат;
|
||||
Возврат OPI_ЗапросыSSH.ЗакрытьСоединение(Соединение);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -187,7 +124,7 @@
|
||||
// Булево - Это коннектор
|
||||
Функция ЭтоКоннектор(Знач Значение) Экспорт
|
||||
|
||||
Возврат Строка(ТипЗнч(Значение)) = "AddIn.OPI_SSH.Main";
|
||||
Возврат OPI_ЗапросыSSH.ЭтоКоннектор(Значение);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -204,16 +141,7 @@
|
||||
// Структура Из КлючИЗначение - Конфигурация соединения
|
||||
Функция ПолучитьНастройкиЛогинПароль(Знач Хост, Знач Порт, Знач Логин, Знач Пароль = "") Экспорт
|
||||
|
||||
Строка_ = "Строка";
|
||||
|
||||
СтруктураКонфигурации = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("auth_type", "password", Строка_ , СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("host" , Хост , Строка_ , СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("port" , Порт , "Число" , СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("username" , Логин , Строка_ , СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("password" , Пароль , Строка_ , СтруктураКонфигурации);
|
||||
|
||||
Возврат СтруктураКонфигурации;
|
||||
Возврат OPI_ЗапросыSSH.ПолучитьНастройкиЛогинПароль(Хост, Порт, Логин, Пароль);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -237,28 +165,7 @@
|
||||
, Знач Публичный = ""
|
||||
, Знач Пароль = "") Экспорт
|
||||
|
||||
Строка_ = "Строка";
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьФайлНаДиске(Приватный);
|
||||
Приватный_ = Приватный.Путь;
|
||||
|
||||
Если ЗначениеЗаполнено(Публичный) Тогда
|
||||
OPI_ПреобразованиеТипов.ПолучитьФайлНаДиске(Публичный);
|
||||
Публичный_ = Публичный.Путь;
|
||||
Иначе
|
||||
Публичный_ = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
СтруктураКонфигурации = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("auth_type" , "private_key" , Строка_, СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("host" , Хост , Строка_, СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("port" , Порт , "Число", СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("username" , Логин , Строка_, СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("key_path" , Приватный_ , Строка_, СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("pub_path" , Публичный_ , Строка_, СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("passphrase", Пароль , Строка_, СтруктураКонфигурации);
|
||||
|
||||
Возврат СтруктураКонфигурации;
|
||||
Возврат OPI_ЗапросыSSH.ПолучитьНастройкиПриватныйКлюч(Хост, Порт, Логин, Приватный, Публичный, Пароль);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -274,15 +181,7 @@
|
||||
// Структура Из КлючИЗначение - Конфигурация соединения
|
||||
Функция ПолучитьНастройкиЧерезАгента(Знач Хост, Знач Порт, Знач Логин) Экспорт
|
||||
|
||||
Строка_ = "Строка";
|
||||
|
||||
СтруктураКонфигурации = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("auth_type" , "agent", Строка_, СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("host" , Хост , Строка_, СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("port" , Порт , "Число", СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("username" , Логин , Строка_, СтруктураКонфигурации);
|
||||
|
||||
Возврат СтруктураКонфигурации;
|
||||
Возврат OPI_ЗапросыSSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -304,8 +203,7 @@
|
||||
, Знач Логин = Неопределено
|
||||
, Знач Пароль = Неопределено) Экспорт
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат OPI_Компоненты.ПолучитьНастройкиПрокси(Адрес, Порт, Вид, Логин, Пароль);
|
||||
Возврат OPI_ЗапросыSSH.ПолучитьНастройкиПрокси(Адрес, Порт, Вид, Логин, Пароль);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -313,112 +211,6 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ПроверитьСоздатьСоединение(Соединение)
|
||||
|
||||
Если Не ЭтоКоннектор(Соединение) Тогда
|
||||
|
||||
ЗакрыватьСоединение = Истина;
|
||||
Соединение = ОткрытьСоединениеПоКонфигурации(Соединение);
|
||||
|
||||
Иначе
|
||||
ЗакрыватьСоединение = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ЗакрыватьСоединение;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОткрытьСоединениеПоКонфигурации(Знач СтруктураКонфигурации)
|
||||
|
||||
Если ЭтоКоннектор(СтруктураКонфигурации) Тогда
|
||||
Возврат СтруктураКонфигурации;
|
||||
КонецЕсли;
|
||||
|
||||
ШаблонОшибки = "Передана некорректная конфигурация соединения: %1";
|
||||
|
||||
Попытка
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(СтруктураКонфигурации);
|
||||
Исключение
|
||||
|
||||
Результат = Новый Соответствие;
|
||||
Результат.Вставить("result", Ложь);
|
||||
Результат.Вставить("error" , СтрШаблон(ШаблонОшибки, ОписаниеОшибки()));
|
||||
Возврат Результат;
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
Если Не OPI_Инструменты.ПолеКоллекцииСуществует(СтруктураКонфигурации, "set") Тогда
|
||||
|
||||
Результат = Новый Соответствие;
|
||||
Результат.Вставить("result", Ложь);
|
||||
Результат.Вставить("error" , СтрШаблон(ШаблонОшибки, "отсутствуют основные параметры соединения"));
|
||||
Возврат Результат;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
НастройкиSSH = СтруктураКонфигурации["set"];
|
||||
Прокси = OPI_Инструменты.ПолучитьИли(СтруктураКонфигурации, "proxy", Неопределено);
|
||||
|
||||
Возврат ОткрытьСоединение(НастройкиSSH, Прокси);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция УстановитьНастройки(Знач Коннектор, Знач НастройкиSSH)
|
||||
|
||||
ШаблонОшибки = "Передана некорректная конфигурация соединения: %1";
|
||||
|
||||
Попытка
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(НастройкиSSH);
|
||||
Исключение
|
||||
|
||||
Результат = Новый Соответствие;
|
||||
Результат.Вставить("result", Ложь);
|
||||
Результат.Вставить("error" , СтрШаблон(ШаблонОшибки, ОписаниеОшибки()));
|
||||
Возврат Результат;
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
СтрокаНастроек = OPI_Инструменты.JSONСтрокой(НастройкиSSH);
|
||||
|
||||
Результат = Коннектор.SetSettings(СтрокаНастроек);
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция УстановитьПрокси(Знач Коннектор, Знач Прокси)
|
||||
|
||||
Если Не ЗначениеЗаполнено(Прокси) Тогда
|
||||
Возврат Новый Структура("result", Истина);
|
||||
КонецЕсли;
|
||||
|
||||
ШаблонОшибки = "Передана некорректная конфигурация прокси: %1";
|
||||
|
||||
Попытка
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Прокси);
|
||||
Исключение
|
||||
|
||||
Результат = Новый Соответствие;
|
||||
Результат.Вставить("result", Ложь);
|
||||
Результат.Вставить("error" , СтрШаблон(ШаблонОшибки, ОписаниеОшибки()));
|
||||
Возврат Результат;
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
СтрокаПрокси = OPI_Инструменты.JSONСтрокой(Прокси);
|
||||
|
||||
Результат = Коннектор.SetProxy(СтрокаПрокси);
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Region Alternate
|
||||
|
||||
Function CreateConnection(Val SSHSettings, Val Proxy = "") Export
|
||||
|
1
src/ru/OInt/lib.config
vendored
1
src/ru/OInt/lib.config
vendored
@@ -38,6 +38,7 @@
|
||||
<module name="OPI_HTTPRequests" file="tools/Modules/OPI_ЗапросыHTTP.os"/>
|
||||
<module name="OPI_ЗапросыSQL" file="tools/Modules/OPI_ЗапросыSQL.os"/>
|
||||
<module name="OPI_SQLQueries" file="tools/Modules/OPI_ЗапросыSQL.os"/>
|
||||
<module name="OPI_ЗапросыSSH" file="tools/Modules/OPI_ЗапросыSSH.os"/>
|
||||
<module name="OPI_Инструменты" file="tools/Modules/internal/Modules/OPI_Инструменты.os"/>
|
||||
<module name="OPI_Tools" file="tools/Modules/internal/Modules/OPI_Инструменты.os"/>
|
||||
<module name="OPI_Компоненты" file="tools/Modules/OPI_Компоненты.os"/>
|
||||
|
@@ -23196,7 +23196,7 @@
|
||||
Хост = ПараметрыФункции["SSH_Host"];
|
||||
Порт = ПараметрыФункции["SSH_Port"];
|
||||
Логин = ПараметрыФункции["SSH_User"];
|
||||
НастройкиSSH = OPI_SSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
|
||||
Результат = OPI_SSH.ПолучитьНастройкиЧерезАгента(Хост, Порт, Логин);
|
||||
|
||||
// END
|
||||
|
||||
|
@@ -30491,7 +30491,7 @@
|
||||
Опции.Вставить("port", Порт);
|
||||
Опции.Вставить("user", Логин);
|
||||
|
||||
НастройкиSSH = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ПолучитьНастройкиЧерезАгента", Опции);
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ssh", "ПолучитьНастройкиЧерезАгента", Опции);
|
||||
|
||||
// END
|
||||
|
||||
|
321
src/ru/OInt/tools/Modules/OPI_ЗапросыSSH.os
vendored
Normal file
321
src/ru/OInt/tools/Modules/OPI_ЗапросыSSH.os
vendored
Normal file
@@ -0,0 +1,321 @@
|
||||
// OneScript: ./OInt/tools/Modules/OPI_ЗапросыSSH.os
|
||||
|
||||
// MIT License
|
||||
|
||||
// Copyright (c) 2023-2025 Anton Tsitavets
|
||||
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||
|
||||
// BSLLS:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:NumberOfOptionalParams-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:LineLength-off
|
||||
// BSLLS:QueryParseError-off
|
||||
// BSLLS:AssignAliasFieldsInQuery-off
|
||||
// BSLLS:NumberOfParams-off
|
||||
// BSLLS:UsingSynchronousCalls-off
|
||||
// BSLLS:MagicNumber-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
//@skip-check constructor-function-return-section
|
||||
|
||||
// Раскомментировать, если выполняется OneScript
|
||||
#Использовать "./internal"
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Функция ОткрытьСоединение(Знач НастройкиSSH, Знач Прокси = "") Экспорт
|
||||
|
||||
Result_ = "result";
|
||||
|
||||
Если ЭтоКоннектор(НастройкиSSH) Тогда
|
||||
Возврат НастройкиSSH;
|
||||
КонецЕсли;
|
||||
|
||||
Коннектор = OPI_Компоненты.ПолучитьКомпоненту("SSH");
|
||||
|
||||
УстановкаКонфигурации = УстановитьНастройки(Коннектор, НастройкиSSH);
|
||||
|
||||
Если Не OPI_Инструменты.ПолучитьИли(УстановкаКонфигурации, Result_, Ложь) Тогда
|
||||
Возврат УстановкаКонфигурации;
|
||||
КонецЕсли;
|
||||
|
||||
УстановкаПрокси = УстановитьПрокси(Коннектор, Прокси);
|
||||
|
||||
Если Не OPI_Инструменты.ПолучитьИли(УстановкаПрокси, Result_, Ложь) Тогда
|
||||
Возврат УстановкаПрокси;
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Коннектор.Connect();
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
|
||||
Возврат ?(Результат[Result_], Коннектор, Результат);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьКонфигурациюСоединения(Знач НастройкиSSH, Знач Прокси = Неопределено) Экспорт
|
||||
|
||||
СтруктураКонфигурации = Новый Структура;
|
||||
|
||||
OPI_Инструменты.ДобавитьПоле("set" , НастройкиSSH, "Коллекция", СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("proxy", Прокси , "Коллекция", СтруктураКонфигурации);
|
||||
|
||||
Возврат СтруктураКонфигурации;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ВыполнитьКоманду(Знач Соединение, Знач Команда) Экспорт
|
||||
|
||||
ЗакрыватьСоединение = ПроверитьСоздатьСоединение(Соединение);
|
||||
|
||||
Если Не ЭтоКоннектор(Соединение) Тогда
|
||||
Возврат Соединение;
|
||||
Иначе
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Команда);
|
||||
|
||||
Результат = Соединение.Execute(Команда);
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
|
||||
Вывод = Результат["stdout"];
|
||||
|
||||
Если Вывод <> Неопределено Тогда
|
||||
Если СтрЗаканчиваетсяНа(Вывод, Символы.ПС) Тогда
|
||||
Результат["stdout"] = Лев(Вывод, СтрДлина(Вывод) - 1);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗакрыватьСоединение Тогда
|
||||
Результат.Вставить("close_connection", ЗакрытьСоединение(Соединение));
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЗакрытьСоединение(Знач Соединение) Экспорт
|
||||
|
||||
ПроверитьСоздатьСоединение(Соединение);
|
||||
|
||||
Если Не ЭтоКоннектор(Соединение) Тогда
|
||||
Возврат Соединение;
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Соединение.Disconnect();
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоКоннектор(Знач Значение) Экспорт
|
||||
|
||||
Возврат Строка(ТипЗнч(Значение)) = "AddIn.OPI_SSH.Main";
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьНастройкиЛогинПароль(Знач Хост, Знач Порт, Знач Логин, Знач Пароль = "") Экспорт
|
||||
|
||||
Строка_ = "Строка";
|
||||
|
||||
СтруктураКонфигурации = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("auth_type", "password", Строка_ , СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("host" , Хост , Строка_ , СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("port" , Порт , "Число" , СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("username" , Логин , Строка_ , СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("password" , Пароль , Строка_ , СтруктураКонфигурации);
|
||||
|
||||
Возврат СтруктураКонфигурации;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьНастройкиПриватныйКлюч(Знач Хост
|
||||
, Знач Порт
|
||||
, Знач Логин
|
||||
, Знач Приватный
|
||||
, Знач Публичный = ""
|
||||
, Знач Пароль = "") Экспорт
|
||||
|
||||
Строка_ = "Строка";
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьФайлНаДиске(Приватный);
|
||||
Приватный_ = Приватный.Путь;
|
||||
|
||||
Если ЗначениеЗаполнено(Публичный) Тогда
|
||||
OPI_ПреобразованиеТипов.ПолучитьФайлНаДиске(Публичный);
|
||||
Публичный_ = Публичный.Путь;
|
||||
Иначе
|
||||
Публичный_ = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
СтруктураКонфигурации = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("auth_type" , "private_key" , Строка_, СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("host" , Хост , Строка_, СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("port" , Порт , "Число", СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("username" , Логин , Строка_, СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("key_path" , Приватный_ , Строка_, СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("pub_path" , Публичный_ , Строка_, СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("passphrase", Пароль , Строка_, СтруктураКонфигурации);
|
||||
|
||||
Возврат СтруктураКонфигурации;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьНастройкиЧерезАгента(Знач Хост, Знач Порт, Знач Логин) Экспорт
|
||||
|
||||
Строка_ = "Строка";
|
||||
|
||||
СтруктураКонфигурации = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("auth_type" , "agent", Строка_, СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("host" , Хост , Строка_, СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("port" , Порт , "Число", СтруктураКонфигурации);
|
||||
OPI_Инструменты.ДобавитьПоле("username" , Логин , Строка_, СтруктураКонфигурации);
|
||||
|
||||
Возврат СтруктураКонфигурации;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьНастройкиПрокси(Знач Адрес
|
||||
, Знач Порт
|
||||
, Знач Вид = "socks5"
|
||||
, Знач Логин = Неопределено
|
||||
, Знач Пароль = Неопределено) Экспорт
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат OPI_Компоненты.ПолучитьНастройкиПрокси(Адрес, Порт, Вид, Логин, Пароль);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ПроверитьСоздатьСоединение(Соединение)
|
||||
|
||||
Если Не ЭтоКоннектор(Соединение) Тогда
|
||||
|
||||
ЗакрыватьСоединение = Истина;
|
||||
Соединение = ОткрытьСоединениеПоКонфигурации(Соединение);
|
||||
|
||||
Иначе
|
||||
ЗакрыватьСоединение = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ЗакрыватьСоединение;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОткрытьСоединениеПоКонфигурации(Знач СтруктураКонфигурации)
|
||||
|
||||
Если ЭтоКоннектор(СтруктураКонфигурации) Тогда
|
||||
Возврат СтруктураКонфигурации;
|
||||
КонецЕсли;
|
||||
|
||||
ШаблонОшибки = "Передана некорректная конфигурация соединения: %1";
|
||||
|
||||
Попытка
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(СтруктураКонфигурации);
|
||||
Исключение
|
||||
|
||||
Результат = Новый Соответствие;
|
||||
Результат.Вставить("result", Ложь);
|
||||
Результат.Вставить("error" , СтрШаблон(ШаблонОшибки, ОписаниеОшибки()));
|
||||
Возврат Результат;
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
Если Не OPI_Инструменты.ПолеКоллекцииСуществует(СтруктураКонфигурации, "set") Тогда
|
||||
|
||||
Результат = Новый Соответствие;
|
||||
Результат.Вставить("result", Ложь);
|
||||
Результат.Вставить("error" , СтрШаблон(ШаблонОшибки, "отсутствуют основные параметры соединения"));
|
||||
Возврат Результат;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
НастройкиSSH = СтруктураКонфигурации["set"];
|
||||
Прокси = OPI_Инструменты.ПолучитьИли(СтруктураКонфигурации, "proxy", Неопределено);
|
||||
|
||||
Возврат ОткрытьСоединение(НастройкиSSH, Прокси);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция УстановитьНастройки(Знач Коннектор, Знач НастройкиSSH)
|
||||
|
||||
ШаблонОшибки = "Передана некорректная конфигурация соединения: %1";
|
||||
|
||||
Попытка
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(НастройкиSSH);
|
||||
Исключение
|
||||
|
||||
Результат = Новый Соответствие;
|
||||
Результат.Вставить("result", Ложь);
|
||||
Результат.Вставить("error" , СтрШаблон(ШаблонОшибки, ОписаниеОшибки()));
|
||||
Возврат Результат;
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
СтрокаНастроек = OPI_Инструменты.JSONСтрокой(НастройкиSSH);
|
||||
|
||||
Результат = Коннектор.SetSettings(СтрокаНастроек);
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция УстановитьПрокси(Знач Коннектор, Знач Прокси)
|
||||
|
||||
Если Не ЗначениеЗаполнено(Прокси) Тогда
|
||||
Возврат Новый Структура("result", Истина);
|
||||
КонецЕсли;
|
||||
|
||||
ШаблонОшибки = "Передана некорректная конфигурация прокси: %1";
|
||||
|
||||
Попытка
|
||||
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Прокси);
|
||||
Исключение
|
||||
|
||||
Результат = Новый Соответствие;
|
||||
Результат.Вставить("result", Ложь);
|
||||
Результат.Вставить("error" , СтрШаблон(ШаблонОшибки, ОписаниеОшибки()));
|
||||
Возврат Результат;
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
СтрокаПрокси = OPI_Инструменты.JSONСтрокой(Прокси);
|
||||
|
||||
Результат = Коннектор.SetProxy(СтрокаПрокси);
|
||||
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
@@ -1108,7 +1108,8 @@
|
||||
|
||||
ПараметрыТестаОсновные.Вставить("SSH_Key", ПриватныйКлюч);
|
||||
|
||||
ПараметрыТестаОсновные.Вставить("Proxy", Ложь);
|
||||
ПараметрыТестаОсновные.Вставить("Proxy" , Ложь);
|
||||
ПараметрыТестаОсновные.Вставить("Proxy_Type", "none");
|
||||
|
||||
ПараметрыТеста = OPI_Инструменты.КопироватьКоллекцию(ПараметрыТестаОсновные);
|
||||
ПараметрыТеста.Вставить("AuthType", "По логину и паролю");
|
||||
|
@@ -1108,7 +1108,7 @@
|
||||
|
||||
ПараметрыТестаОсновные.Вставить("SSH_Key", ПриватныйКлюч);
|
||||
|
||||
ПараметрыТестаОсновные.Вставить("Proxy", Ложь);
|
||||
ПараметрыТестаОсновные.Вставить("Proxy" , Ложь);
|
||||
ПараметрыТестаОсновные.Вставить("Proxy_Type", "none");
|
||||
|
||||
ПараметрыТеста = OPI_Инструменты.КопироватьКоллекцию(ПараметрыТестаОсновные);
|
||||
|
@@ -377,10 +377,9 @@
|
||||
|
||||
Возврат "
|
||||
|Контекст = Новый Структура;
|
||||
|Контекст.Вставить(""OPI_SSH"", Неопределено);
|
||||
|
||||
|
|
||||
|OPI_SSH = ЗагрузитьСценарий(""%1/oint/core/Modules/OPI_SSH.os"", Контекст);
|
||||
|Контекст.Вставить(""OPI_SSH"", OPI_SSH);
|
||||
|
||||
|
|
||||
|OPI_SFTP = ЗагрузитьСценарий(""%1/oint/core/Modules/OPI_SFTP.os"", Контекст);
|
||||
|" + Символы.ПС;
|
||||
|
@@ -252,10 +252,9 @@
|
||||
|
||||
Возврат "
|
||||
|Контекст = Новый Структура;
|
||||
|Контекст.Вставить(""OPI_SSH"", Неопределено);
|
||||
|
||||
|
|
||||
|OPI_SSH = ЗагрузитьСценарий(""%1/oint/core/Modules/OPI_SSH.os"", Контекст);
|
||||
|Контекст.Вставить(""OPI_SSH"", OPI_SSH);
|
||||
|
||||
|
|
||||
|OPI_SSH = ЗагрузитьСценарий(""%1/oint/core/Modules/OPI_SSH.os"", Контекст);
|
||||
|" + Символы.ПС;
|
||||
|
Reference in New Issue
Block a user