Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/develop' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
asosnoviy committed Jun 18, 2018
2 parents 0034cae + 31e25d9 commit fb8bd28
Show file tree
Hide file tree
Showing 13 changed files with 169 additions and 44 deletions.
27 changes: 27 additions & 0 deletions .ssh/testkey
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAxfr4/bfIYt4p5zNElsG+Pzvgyz9AqUni77djxz1+yKXZy+sS
jI9U8okcEeKGI/1wz8Fiap8ifnmoFrn7dIvxRR755a2dbl73wyqa8zLkv1SAQ55t
46AnPihqJj10Kjs5Yt6boqfZ8ethXRpd7wfV9MIy3ilTML81hvc5lNgt+txKrOoT
og/1j8myiQnOtMeR0G8Wz6+cqmg13GbNEQUmbBylE3nzHTuALJ0ba4Z0Z8yYtNsk
68k1XJfTiKoeczh7p9KGwtH+VdgQAPWfyOULeEMaInoig3wbUkr+9nNkcH1BrLqt
GI5CChCMBil7D3Q81jDG2T+vBurn48mGEPD1twIDAQABAoIBAQCRhcR3Whtk8MAE
PV7xIT/h4vV87+Vrie/RHA+vZ7hFbAMHLKbZwpFCJR4I12SaF7RQQWlBze7g4DN5
YQM/y41wrTAqbs8FTbD4N9zlXkddi5MsIMvNQO8XdUVxDkLQt++aiN4FVTOR6t4K
PVNGW5Ac9JHHUsDfV+zUY+xjR/OkK/TsdYANB91wNZvNVLz0JAsZlDKJujG/TG3P
mRnyNIy62TPJEJwRjXaqX+YZbH6Z1j3FpShME4vwMrcl7ojZhOClnzUFxcF77nQ5
2Ns98GYslWXtcffuIJSNhlIpODsMKPK2nasVc2SSPVIJSTj7TARNyvkXR1mjQSbU
cxYjcv5BAoGBAO+mnyoWAcXRk/qHCOj64CZa74b/KuuvmS46UhNhONMo969Gtf43
0mMa/qEiKrq736zji2P/tEmHBXpKCN0dSUEYS1LPaU26LRbNBCNmwL1W+JJlMVa3
lGB9QK4LGuIqmwUfrlpn+t+MFx+p7drZiRU0iRLBMRBFo0wVZ4vce6EpAoGBANN8
mNwOfWQOde/FYA20zAX3+n3HOZ0jjBBZMiiGdgFs54jChHSZARRwdHMjGlaO7R1T
fv95uBHizQAnBofjToNaaEJ8SlE9TsJQuEF8dciGB/XxUou6FsdnvfDW4jYbQ13S
HFIT9gdKScCscKvxGpTnqKUNnhRxKvxDPpIIBlvfAoGAOXvWIdo1gqXKwQUy9e93
ZLvbSJ5cRTxRme0TUuK3Jq9k+f4UGW56YJtRCIWRikkWVfoerVXggOKKRdMMXT1x
HNQe/TYTJDnMJvP2UieLg98gsLzlIM/YH2zr3tN7F1Tw6kG3KKhYXNbVlRrFmwEj
CJsZZg5BHo4VpWJc/AdfAEECgYEAxoH+TRfAtMkqBCxEs7jPhI617ZexyYCTOMkw
Xn+Phlj9nw3OHE99hvzjISuCzlqL0GoOG6jZkNhMyebXp3dBu+OBV16ot0aPha8U
tEspl1XPZRfl/kdmmDcVP1nDrTu76PWOJbCcz0z4m0SA4bOG2tvzHTIB/ngW+//2
XEXyCgsCgYAs2PSIkD2QpKUAkNBCMh5H4rmZ/Udozx/X6kRlYJY45wyvzT8W78wJ
ob0j/6LhSEWJzdmKHQTivSvzNm3coz2DDqSDl4/e0sk8L4fOdjLWBlp3zeeI1Ong
+ny2jpRbk+BCP6txb1lArpxmNGwFZzWrApOmL5h4ZBDIo55Aik7pFA==
-----END RSA PRIVATE KEY-----
1 change: 1 addition & 0 deletions .ssh/testkey.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDF+vj9t8hi3innM0SWwb4/O+DLP0CpSeLvt2PHPX7IpdnL6xKMj1TyiRwR4oYj/XDPwWJqnyJ+eagWuft0i/FFHvnlrZ1uXvfDKprzMuS/VIBDnm3joCc+KGomPXQqOzli3puip9nx62FdGl3vB9X0wjLeKVMwvzWG9zmU2C363Eqs6hOiD/WPybKJCc60x5HQbxbPr5yqaDXcZs0RBSZsHKUTefMdO4AsnRtrhnRnzJi02yTryTVcl9OIqh5zOHun0obC0f5V2BAA9Z/I5Qt4QxoieiKDfBtSSv72c2RwfUGsuq0YjkIKEIwGKXsPdDzWMMbZP68G6ufjyYYQ8PW3 Lab@MSI
2 changes: 1 addition & 1 deletion NUnitTests/EngineHelpWrapper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public HostedScriptEngine StartEngine()

{
var mi = engine.GetType().GetMethod("SetGlobalEnvironment",
BindingFlags.NonPublic | BindingFlags.InvokeMethod | BindingFlags.Instance);
BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Instance);
mi.Invoke(engine, new object[] {this, testrunnerSource});
}

Expand Down
8 changes: 4 additions & 4 deletions NUnitTests/MainTestClass.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ namespace NUnitTests
public class MainTestClass
{

private EngineHelpWrapper host;
private EngineHelpWrapper _host;

[OneTimeSetUp]
public void Initialize()
{
host = new EngineHelpWrapper();
host.StartEngine();
_host = new EngineHelpWrapper();
_host.StartEngine();
}

[Test]
Expand All @@ -34,7 +34,7 @@ public void TestAsInternalObjects()
[Test]
public void TestAsExternalObjects()
{
host.RunTestScript("NUnitTests.Tests.external.os");
_host.RunTestScript("NUnitTests.Tests.external.os");
}
}
}
16 changes: 11 additions & 5 deletions NUnitTests/NUnitTests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<OutputType>Library</OutputType>
<RootNamespace>NUnitTests</RootNamespace>
<AssemblyName>NUnitTests</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
Expand All @@ -28,14 +28,20 @@
<Reference Include="DotNetZip">
<HintPath>..\packages\DotNetZip.1.10.1\lib\net20\DotNetZip.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed">
<HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="nunit.framework">
<HintPath>..\packages\NUnit.3.5.0\lib\net45\nunit.framework.dll</HintPath>
</Reference>
<Reference Include="ScriptEngine">
<HintPath>..\packages\OneScript.1.0.16\lib\net40\ScriptEngine.dll</HintPath>
<Reference Include="ScriptEngine, Version=1.0.20.107, Culture=neutral, PublicKeyToken=null">
<HintPath>..\packages\OneScript.1.0.20\lib\net452\ScriptEngine.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ScriptEngine.HostedScript">
<HintPath>..\packages\OneScript.StandardLibrary.1.0.16\lib\net40\ScriptEngine.HostedScript.dll</HintPath>
<Reference Include="ScriptEngine.HostedScript, Version=1.0.20.107, Culture=neutral, PublicKeyToken=null">
<HintPath>..\packages\OneScript.StandardLibrary.1.0.20\lib\net452\ScriptEngine.HostedScript.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
Expand Down
55 changes: 45 additions & 10 deletions NUnitTests/Tests/external.os
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,22 @@
ВсеТесты = Новый Массив;

ВсеТесты.Добавить("ТестДолжен_СоздатьЛибу");
// ВсеТесты.Добавить("ТестДолжен_ПолучитьПоток");
// ВсеТесты.Добавить("ТестДолжен_ПолучитьСоединение");

// ВсеТесты.Добавить("ТестДолжен_Подключиться");
// ВсеТесты.Добавить("ТестДолжен_ПодключитьсяКАгенту");
// ВсеТесты.Добавить("ТестНеДолжен_ПовеситьПоток");

Если ПолучитьПеременнуюСреды("APPVEYOR") = "True" Тогда

Возврат ВсеТесты;

КонецЕсли;

ВсеТесты.Добавить("ТестДолжен_ПолучитьПоток");
ВсеТесты.Добавить("ТестДолжен_ПолучитьСоединение");

ВсеТесты.Добавить("ТестДолжен_Подключиться");
ВсеТесты.Добавить("ТестДолжен_ПодключитьсяСКлючом");
ВсеТесты.Добавить("ТестДолжен_ПодключитьсяКАгенту");
// ВсеТесты.Добавить("ТестНеДолжен_ПовеситьПоток");



Возврат ВсеТесты;

Expand Down Expand Up @@ -58,15 +67,41 @@
КлиентSSH = Новый КлиентSSH("127.0.0.1", 2222, "user", "password");
Соединение = КлиентSSH.ПолучитьСоединение();

Результат = Соединение.ВыполнитьКоманду("echo 123");
юТест.ПроверитьРавенство(Результат, "123" + Символы.ПС, "Нет ответа комманды");
Результат = Соединение.ВыполнитьКоманду("echo test");
юТест.ПроверитьРавенство(Результат, "test" + Символы.ПС, "Нет ответа комманды");
Результат = Соединение.ВыполнитьКоманду("echo Привет");

// А = Символы.ПС; // Падает
Результат = СтрЗаменить(Результат, Символ(10), "");
юТест.ПроверитьРавенство(Результат, "Привет", "Нет ответа комманды");
Результат = Соединение.ВыполнитьКоманду("echo test");
Результат = СтрЗаменить(Результат, Символ(10), "");
юТест.ПроверитьРавенство(Результат, "test", "Нет ответа комманды");

Соединение.Разорвать();

КонецПроцедуры

Процедура ТестДолжен_ПодключитьсяСКлючом() Экспорт

КлиентSSH = Новый КлиентSSH("127.0.0.1", 2222, "user", "");
КлиентSSH.УстановитьКлюч("C:\DEVELOP\Oscript\oscript-ssh\.ssh\testkey", "");

Соединение = КлиентSSH.ПолучитьСоединение();

Результат = Соединение.ВыполнитьКоманду("echo Привет");

// А = Символы.ПС; // Падает
Результат = СтрЗаменить(Результат, Символ(10), "");
юТест.ПроверитьРавенство(Результат, "Привет", "Нет ответа комманды");
Результат = Соединение.ВыполнитьКоманду("echo test");
Результат = СтрЗаменить(Результат, Символ(10), "");
юТест.ПроверитьРавенство(Результат, "test", "Нет ответа комманды");

Соединение.Разорвать();

КонецПроцедуры



Процедура ТестДолжен_ПодключитьсяКАгенту() Экспорт

Либа = Новый КлиентSSH("127.0.0.1", 1543, "admin", "");
Expand Down
6 changes: 3 additions & 3 deletions NUnitTests/packages.config
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="DotNetZip" version="1.10.1" targetFramework="net45" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net45" />
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net45" />
<package id="NUnit" version="3.5.0" targetFramework="net45" />
<package id="OneScript" version="1.0.16" targetFramework="net45" />
<package id="OneScript.StandardLibrary" version="1.0.16" targetFramework="net45" />
<package id="OneScript" version="1.0.20" targetFramework="net452" />
<package id="OneScript.StandardLibrary" version="1.0.20" targetFramework="net452" />
</packages>
18 changes: 17 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,24 @@
```


### Пример использования для ssh с ключом

```bsl
#Использовать clientSSH
КлиентSSH = Новый КлиентSSH("127.0.0.1", 22, "user", "");
КлиентSSH.УстановитьКлюч("ПутьКСекретномуКлючу", "СекретнаяФраза");
Соединение = КлиентSSH.ПолучитьСоединение();
Результат = Соединение.ВыполнитьКоманду("echo 123");
Соединение.Разорвать();
```



## Известные проблемы:
* Вешается поток если не передать:
`Поток.ЗаписатьВПоток("options set --show-prompt=no --output-format=json");`
* В папке выгрузки создается подпапка с именем пользователя

14 changes: 10 additions & 4 deletions TestApp/TestApp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,17 @@
<Reference Include="DotNetZip">
<HintPath>..\packages\DotNetZip.1.10.1\lib\net20\DotNetZip.dll</HintPath>
</Reference>
<Reference Include="ScriptEngine">
<HintPath>..\packages\OneScript.1.0.16\lib\net40\ScriptEngine.dll</HintPath>
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed">
<HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ScriptEngine.HostedScript">
<HintPath>..\packages\OneScript.StandardLibrary.1.0.16\lib\net40\ScriptEngine.HostedScript.dll</HintPath>
<Reference Include="ScriptEngine, Version=1.0.20.107, Culture=neutral, PublicKeyToken=null">
<HintPath>..\packages\OneScript.1.0.20\lib\net452\ScriptEngine.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ScriptEngine.HostedScript, Version=1.0.20.107, Culture=neutral, PublicKeyToken=null">
<HintPath>..\packages\OneScript.StandardLibrary.1.0.20\lib\net452\ScriptEngine.HostedScript.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
Expand Down
6 changes: 3 additions & 3 deletions TestApp/packages.config
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="DotNetZip" version="1.10.1" targetFramework="net45" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net45" />
<package id="OneScript" version="1.0.16" targetFramework="net45" />
<package id="OneScript.StandardLibrary" version="1.0.16" targetFramework="net45" />
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net452" />
<package id="OneScript" version="1.0.20" targetFramework="net452" />
<package id="OneScript.StandardLibrary" version="1.0.20" targetFramework="net452" />
</packages>
38 changes: 33 additions & 5 deletions oscript-component/ClientSSH.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,41 +14,69 @@ public class ClientSsh : AutoContext<ClientSsh>
private readonly int _port;
private readonly string _user;
private readonly string _pass;
private PrivateKeyFile _keyfile;
private bool _keyFileIsset;

public ClientSsh(string host, int port, string user, string pass)
{

_host = host;
_port = port;
_user = user;
_pass = pass;

}


/// <summary>
/// Получить соединение
/// Получить Поток
/// </summary>
[ContextMethod("ПолучитьПоток")]
public Stream CreateStream()
{

var sclient = new SshClient(_host, _port, _user, _pass);
var sclient = new SshClient(_host, _port, _user, _pass);

return new Stream(sclient);
}


/// <summary>
/// Получить поток
/// Получить Соединение
/// </summary>
[ContextMethod("ПолучитьСоединение")]
public Connection Create()
{

var sclient = new SshClient(_host, _port, _user, _pass);
if (_keyFileIsset)
{

var sclient = new SshClient(_host, _port, _user, _keyfile);
return new Connection(sclient);

}
else
{
var sclient = new SshClient(_host, _port, _user, _pass);
return new Connection(sclient);
}


return new Connection(sclient);
}


/// <summary>
/// Установить ключ
/// </summary>
[ContextMethod("УстановитьКлюч")]
public void SetSshKey(string keyfile, string pass = "")
{

_keyfile = new PrivateKeyFile(keyfile, pass);
_keyFileIsset = true;

}

/// <summary>
/// Создает КлиентSSH
/// </summary>
Expand Down
16 changes: 11 additions & 5 deletions oscript-component/oscript-component.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<OutputType>Library</OutputType>
<RootNamespace>oscriptcomponent</RootNamespace>
<AssemblyName>oscript-component</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
Expand All @@ -33,15 +33,21 @@
<Reference Include="DotNetZip">
<HintPath>..\packages\DotNetZip.1.10.1\lib\net20\DotNetZip.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed">
<HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Renci.SshNet, Version=2016.1.0.0, Culture=neutral, PublicKeyToken=1cee9f8bde3db106">
<HintPath>..\packages\SSH.NET.2016.1.0\lib\net40\Renci.SshNet.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ScriptEngine">
<HintPath>..\packages\OneScript.1.0.16\lib\net40\ScriptEngine.dll</HintPath>
<Reference Include="ScriptEngine, Version=1.0.20.107, Culture=neutral, PublicKeyToken=null">
<HintPath>..\packages\OneScript.1.0.20\lib\net452\ScriptEngine.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ScriptEngine.HostedScript">
<HintPath>..\packages\OneScript.StandardLibrary.1.0.16\lib\net40\ScriptEngine.HostedScript.dll</HintPath>
<Reference Include="ScriptEngine.HostedScript, Version=1.0.20.107, Culture=neutral, PublicKeyToken=null">
<HintPath>..\packages\OneScript.StandardLibrary.1.0.20\lib\net452\ScriptEngine.HostedScript.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
Expand Down
6 changes: 3 additions & 3 deletions oscript-component/packages.config
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="DotNetZip" version="1.10.1" targetFramework="net45" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net45" />
<package id="OneScript" version="1.0.16" targetFramework="net45" />
<package id="OneScript.StandardLibrary" version="1.0.16" targetFramework="net45" />
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net45" />
<package id="OneScript" version="1.0.20" targetFramework="net452" />
<package id="OneScript.StandardLibrary" version="1.0.20" targetFramework="net452" />
<package id="SSH.NET" version="2016.1.0" targetFramework="net45" />
</packages>

0 comments on commit fb8bd28

Please sign in to comment.