Functional tests (#2333)

* more tests

* revert compute, since "released" version has bug when creating scaleset extensions

* format

* found bug, i think...

* now should be fixed

Co-authored-by: stas <statis@microsoft.com>
This commit is contained in:
Stas
2022-09-02 08:16:48 -07:00
committed by GitHub
parent c54db04083
commit ee1ad0abd8
31 changed files with 276 additions and 174 deletions

View File

@ -4,10 +4,7 @@ using Xunit;
using Xunit.Abstractions;
namespace FunctionalTests;
class Authentication {
public class Authentication {
JsonElement _e;
public Authentication() { }
@ -20,7 +17,7 @@ class Authentication {
}
class ScalesetNodeState {
public class ScalesetNodeState {
JsonElement _e;
public ScalesetNodeState() { }
@ -32,7 +29,7 @@ class ScalesetNodeState {
public string? NodeState => _e.GetProperty("state").GetString();
}
class Scaleset : IFromJsonElement<Scaleset> {
public class Scaleset : IFromJsonElement<Scaleset> {
JsonElement _e;
public Scaleset() { }
public Scaleset(JsonElement e) => _e = e;
@ -68,9 +65,10 @@ class Scaleset : IFromJsonElement<Scaleset> {
public Scaleset Convert(JsonElement e) => new Scaleset(e);
}
class ScalesetApi : ApiBase {
public class ScalesetApi : ApiBase {
public const string Image_Ubuntu_20_04 = "Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest";
public const string ImageWindows = "MicrosoftWindowsDesktop:Windows-10:win10-21h2-pro:latest";
public ScalesetApi(Uri endpoint, Microsoft.OneFuzz.Service.Request request, ITestOutputHelper output) :
base(endpoint, "/api/Scaleset", request, output) { }
@ -78,20 +76,26 @@ class ScalesetApi : ApiBase {
public async Task<Result<IEnumerable<Scaleset>, Error>> Get(Guid? id = null, string? state = null, bool? includeAuth = false) {
var root = new JsonObject();
root.Add("scaleset_id", id);
root.Add("state", state);
root.Add("include_auth", includeAuth);
if (id is not null)
root.Add("scaleset_id", id);
if (state is not null)
root.Add("state", state);
if (includeAuth is not null)
root.Add("include_auth", includeAuth);
var res = await Get(root);
return IEnumerableResult<Scaleset>(res);
}
public async Task<Result<Scaleset, Error>> Create(string poolName, int size, string vmSku = "Standard_D2s_v3", string image = Image_Ubuntu_20_04, bool spotInstance = false) {
public async Task<Result<Scaleset, Error>> Create(string poolName, int size, string? region = null, string vmSku = "Standard_D2s_v3", string image = Image_Ubuntu_20_04, bool spotInstance = false) {
_output.WriteLine($"Creating scaleset in pool {poolName}, size: {size}");
var rootScalesetCreate = new JsonObject();
rootScalesetCreate.Add("pool_name", poolName);
rootScalesetCreate.Add("vm_sku", vmSku);
rootScalesetCreate.Add("image", image);
rootScalesetCreate.Add("size", size);
rootScalesetCreate.Add("spot_instance", spotInstance);
rootScalesetCreate.Add("spot_instances", spotInstance);
if (region is not null)
rootScalesetCreate.Add("region", region);
var tags = new JsonObject();
tags.Add("Purpose", "Functional-Test");