mirror of
https://github.com/microsoft/onefuzz.git
synced 2025-06-15 03:18:07 +00:00
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:
@ -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");
|
||||
|
Reference in New Issue
Block a user