Skip to content

Commit

Permalink
More renaming and making obsolete
Browse files Browse the repository at this point in the history
  • Loading branch information
davidnmbond committed Sep 29, 2024
1 parent 6b449e0 commit 7339742
Show file tree
Hide file tree
Showing 22 changed files with 527 additions and 321 deletions.
2 changes: 1 addition & 1 deletion LogicMonitor.Api.Test/LogicModules/DataSourceTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ public async Task GetWinService()
var device = await GetWindowsDeviceAsync(default)
.ConfigureAwait(true);
var windowsServices = await LogicMonitorClient
.GetDeviceProcessesAsync(device.Id, DeviceProcessServiceTaskType.WindowsService, default)
.GetResourceProcessesAsync(device.Id, DeviceProcessServiceTaskType.WindowsService, default)
.ConfigureAwait(true);
windowsServices.Should().NotBeNull();
windowsServices.Items.Should().NotBeNull();
Expand Down
54 changes: 42 additions & 12 deletions LogicMonitor.Api.Test/Resources/ResourceTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -478,7 +478,7 @@ public async Task SetDeviceCustomProperty()

// Set it to an expected value
await LogicMonitorClient
.SetDeviceCustomPropertyAsync(device.Id, propertyName, value1, default)
.SetResourceCustomPropertyAsync(device.Id, propertyName, value1, default)
.ConfigureAwait(true);
var deviceProperties = await LogicMonitorClient
.GetDevicePropertiesAsync(device.Id, default)
Expand All @@ -488,7 +488,7 @@ await LogicMonitorClient

// Set it to a different value
await LogicMonitorClient
.SetDeviceCustomPropertyAsync(device.Id, propertyName, value2, default)
.SetResourceCustomPropertyAsync(device.Id, propertyName, value2, default)
.ConfigureAwait(true);
deviceProperties = await LogicMonitorClient
.GetDevicePropertiesAsync(device.Id, default)
Expand All @@ -498,7 +498,7 @@ await LogicMonitorClient

// Set it to null (delete it)
await LogicMonitorClient
.SetDeviceCustomPropertyAsync(device.Id, propertyName, null, cancellationToken: default)
.SetResourceCustomPropertyAsync(device.Id, propertyName, null, cancellationToken: default)
.ConfigureAwait(true);
deviceProperties = await LogicMonitorClient
.GetDevicePropertiesAsync(device.Id, default)
Expand All @@ -508,7 +508,7 @@ await LogicMonitorClient

// This should fail as there is nothing to delete
var deletionException = await Record.ExceptionAsync(async () => await LogicMonitorClient
.SetDeviceCustomPropertyAsync(
.SetResourceCustomPropertyAsync(
device.Id,
propertyName,
null,
Expand All @@ -518,15 +518,35 @@ await LogicMonitorClient
.ConfigureAwait(true);
deletionException.Should().BeOfType<LogicMonitorApiException>();

var updateException = await Record.ExceptionAsync(async () => await LogicMonitorClient.SetDeviceCustomPropertyAsync(device.Id, propertyName, null, SetPropertyMode.Update, default).ConfigureAwait(true)).ConfigureAwait(true);
var updateException = await Record.ExceptionAsync(async () => await LogicMonitorClient
.SetResourceCustomPropertyAsync(
device.Id,
propertyName,
null,
SetPropertyMode.Update,
default).ConfigureAwait(true)
).ConfigureAwait(true);
updateException.Should().BeOfType<InvalidOperationException>();

var createNullException = await Record.ExceptionAsync(async () => await LogicMonitorClient.SetDeviceCustomPropertyAsync(device.Id, propertyName, null, SetPropertyMode.Create, default).ConfigureAwait(true)).ConfigureAwait(true);
var createNullException = await Record.ExceptionAsync(async () => await LogicMonitorClient
.SetResourceCustomPropertyAsync(
device.Id,
propertyName,
null,
SetPropertyMode.Create,
default)
.ConfigureAwait(true))
.ConfigureAwait(true);
createNullException.Should().BeOfType<InvalidOperationException>();

// Create one without checking
await LogicMonitorClient
.SetDeviceCustomPropertyAsync(device.Id, propertyName, value1, SetPropertyMode.Create, cancellationToken: default)
.SetResourceCustomPropertyAsync(
device.Id,
propertyName,
value1,
SetPropertyMode.Create,
cancellationToken: default)
.ConfigureAwait(true);
deviceProperties = await LogicMonitorClient
.GetDevicePropertiesAsync(device.Id, default)
Expand All @@ -536,7 +556,12 @@ await LogicMonitorClient

// Update one without checking
await LogicMonitorClient
.SetDeviceCustomPropertyAsync(device.Id, propertyName, value2, SetPropertyMode.Update, cancellationToken: default)
.SetResourceCustomPropertyAsync(
device.Id,
propertyName,
value2,
SetPropertyMode.Update,
cancellationToken: default)
.ConfigureAwait(true);
deviceProperties = await LogicMonitorClient
.GetDevicePropertiesAsync(device.Id, default)
Expand All @@ -546,7 +571,12 @@ await LogicMonitorClient

// Delete one without checking
await LogicMonitorClient
.SetDeviceCustomPropertyAsync(device.Id, propertyName, null, SetPropertyMode.Delete, cancellationToken: default)
.SetResourceCustomPropertyAsync(
device.Id,
propertyName,
null,
SetPropertyMode.Delete,
cancellationToken: default)
.ConfigureAwait(true);
deviceProperties = await LogicMonitorClient
.GetDevicePropertiesAsync(device.Id, default)
Expand Down Expand Up @@ -656,7 +686,7 @@ public async Task GetDeviceAlertsPageAsync()
var device = await GetWindowsDeviceAsync(default)
.ConfigureAwait(true);
var alertsPage = await LogicMonitorClient
.GetDeviceAlertsPageAsync(device.Id, 0, 100, default)
.GetResourceAlertsPageAsync(device.Id, 0, 100, default)
.ConfigureAwait(true);
alertsPage.Should().NotBeNull();
alertsPage.Items.Should().HaveCount(alertsPage.TotalCount);
Expand Down Expand Up @@ -684,7 +714,7 @@ public async Task GetDeviceAlertsWithFilterAsync()

// Get the Alerts
var allAlerts = await LogicMonitorClient
.GetDeviceAlertsByIdAsync(device.Id, alertFilter, default)
.GetResourceAlertsByIdAsync(device.Id, alertFilter, default)
.ConfigureAwait(true);
allAlerts.Should().NotBeNull();
}
Expand Down Expand Up @@ -721,7 +751,7 @@ public async Task GetDeviceAlertSettings()
.ConfigureAwait(true);

var config = await LogicMonitorClient
.GetDeviceDataPointConfigurationsAsync(device.Id, default)
.GetResourceDataPointConfigurationsAsync(device.Id, default)
.ConfigureAwait(true);

config.Should().NotBeEmpty();
Expand Down
2 changes: 2 additions & 0 deletions LogicMonitor.Api.dic
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ Cognito
color
configsources
Datacenter
datafetch
datapoint
datapoints
Datapump
Expand Down Expand Up @@ -129,6 +130,7 @@ Otel
Paas
pagerduty
perfmon
pollnow
pushmodules
recurse
recursing
Expand Down
2 changes: 1 addition & 1 deletion LogicMonitor.Api/Dashboards/NetflowGraphWidget.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public class NetflowGraphWidget : Widget, IWidget
public int InterfaceIndex { get; set; }

/// <summary>
/// The device id
/// The Resource id
/// </summary>
[DataMember(Name = "deviceId")]
public int DeviceId { get; set; }
Expand Down
2 changes: 1 addition & 1 deletion LogicMonitor.Api/Dashboards/NetflowWidget.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public class NetflowWidget : Widget, IWidget
public string DeviceDisplayName { get; set; } = string.Empty;

/// <summary>
/// The device id
/// The Resource id
/// </summary>
[DataMember(Name = "deviceId")]
public int DeviceId { get; set; }
Expand Down
2 changes: 1 addition & 1 deletion LogicMonitor.Api/Dashboards/OverviewGraphWidget.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ namespace LogicMonitor.Api.Dashboards;
public class OverviewGraphWidget : GraphWidget
{
/// <summary>
/// The device id
/// The Resource id
/// </summary>
[DataMember(Name = "hId")]
public int DeviceId { get; set; }
Expand Down
4 changes: 2 additions & 2 deletions LogicMonitor.Api/Data/DeviceDataSourceGraphDataRequest.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
namespace LogicMonitor.Api.Data;

/// <summary>
/// A request for device graph data for a devicedatasource
/// A request for device graph data for a Resourcedatasource
/// </summary>
public class DeviceDataSourceGraphDataRequest : GraphDataRequest
{
Expand All @@ -16,7 +16,7 @@ public class DeviceDataSourceGraphDataRequest : GraphDataRequest
public int? OverviewGraphId { get; set; }

/// <summary>
/// The Device Id
/// The Resource id
/// </summary>
public int? DeviceId { get; set; }

Expand Down
104 changes: 62 additions & 42 deletions LogicMonitor.Api/LogicMonitorClient_Data.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,87 +53,107 @@ public async Task<GraphData> GetGraphDataAsync(GraphDataRequest graphDataRequest
/// <summary>
/// Get overview graphs
/// </summary>
/// <param name="deviceId"></param>
/// <param name="deviceDataSourceId"></param>
/// <param name="resourceId"></param>
/// <param name="resourceDataSourceId"></param>
/// <param name="cancellationToken">The cancellation token</param>
public async Task<List<DataSourceGraph>> GetDeviceOverviewGraphsAsync(int deviceId, int deviceDataSourceId, CancellationToken cancellationToken)
public async Task<List<DataSourceGraph>> GetDeviceOverviewGraphsAsync(
int resourceId,
int resourceDataSourceId,
CancellationToken cancellationToken)
{
var deviceDataSources = (await GetBySubUrlAsync<Page<DeviceDataSource>>($"device/devices/{deviceId}/devicedatasources", cancellationToken).ConfigureAwait(false)).Items;
var filteredDeviceDataSource = deviceDataSources.SingleOrDefault(dds => dds.Id == deviceDataSourceId)
?? throw new ArgumentException($"No datasource on device {deviceId} with deviceDataSourceId {deviceDataSourceId}.",
nameof(deviceDataSourceId));
var deviceDataSources = (await GetBySubUrlAsync<Page<DeviceDataSource>>($"device/devices/{resourceId}/devicedatasources", cancellationToken).ConfigureAwait(false)).Items;
var filteredDeviceDataSource = deviceDataSources.SingleOrDefault(dds => dds.Id == resourceDataSourceId)
?? throw new ArgumentException($"No datasource on device {resourceId} with deviceDataSourceId {resourceDataSourceId}.",
nameof(resourceDataSourceId));
return filteredDeviceDataSource.OverviewGraphs;
}

/// <summary>
/// Gets a Device OverviewGraph By Name
/// </summary>
/// <param name="deviceId">The device Id</param>
/// <param name="deviceDataSourceId">The device dataSource Id</param>
/// <param name="resourceId">The device Id</param>
/// <param name="resourceDataSourceId">The device dataSource Id</param>
/// <param name="name">The overview graph name</param>
/// <param name="cancellationToken">The cancellation token</param>
public async Task<DataSourceGraph> GetDeviceOverviewGraphByNameAsync(int deviceId, int deviceDataSourceId, string name, CancellationToken cancellationToken)
=> (await GetDeviceOverviewGraphsAsync(deviceId, deviceDataSourceId, cancellationToken).ConfigureAwait(false))
public async Task<DataSourceGraph> GetDeviceOverviewGraphByNameAsync(
int resourceId,
int resourceDataSourceId,
string name,
CancellationToken cancellationToken)
=> (await GetDeviceOverviewGraphsAsync(resourceId, resourceDataSourceId, cancellationToken).ConfigureAwait(false))
.SingleOrDefault(g => g.Name == name);

/// <summary>
/// Get Raw data (the last measurements, up to a maximum of ten)
/// </summary>
/// <param name="deviceId">The device id</param>
/// <param name="deviceDataSourceId">The device data source id</param>
/// <param name="deviceDataSourceInstanceId">The device data source instance id</param>
/// <param name="resourceId">The Resource id</param>
/// <param name="resourceDataSourceId">The device data source id</param>
/// <param name="resourceDataSourceInstanceId">The device data source instance id</param>
/// <param name="startDateTimeUtc"></param>
/// <param name="endDateTimeUtc"></param>
/// <param name="cancellationToken">The cancellation token</param>
public Task<RawDataSet> GetRawDataSetAsync(
int deviceId,
int deviceDataSourceId,
int deviceDataSourceInstanceId,
int resourceId,
int resourceDataSourceId,
int resourceDataSourceInstanceId,
DateTime? startDateTimeUtc,
DateTime? endDateTimeUtc,
CancellationToken cancellationToken
)
{
var timeConstraint = startDateTimeUtc.HasValue && endDateTimeUtc.HasValue ? $"?start={startDateTimeUtc.Value.SecondsSinceTheEpoch()}&end={endDateTimeUtc.Value.SecondsSinceTheEpoch()}" : null;
return GetAsync<RawDataSet>(false, $"device/devices/{deviceId}/devicedatasources/{deviceDataSourceId}/instances/{deviceDataSourceInstanceId}/data{timeConstraint}", cancellationToken);
return GetAsync<RawDataSet>(false, $"device/devices/{resourceId}/devicedatasources/{resourceDataSourceId}/instances/{resourceDataSourceInstanceId}/data{timeConstraint}", cancellationToken);
}

/// <summary>
/// Polls now for data via the collector
/// </summary>
/// <param name="deviceId">The device id</param>
/// <param name="deviceDataSourceId">The device datasource id</param>
/// <param name="deviceDataSourceInstanceId">The device datasource instance id</param>
/// <param name="resourceId">The Resource id</param>
/// <param name="resourceDataSourceId">The Resource datasource id</param>
/// <param name="resourceDataSourceInstanceId">The Resource datasource instance id</param>
/// <param name="cancellationToken">The optional CancellationToken</param>
/// <returns>An object with information on what to poll for to get results</returns>
public Task<PollNowRequest> GetPollNowRequestAsync(int deviceId, int deviceDataSourceId, int deviceDataSourceInstanceId, CancellationToken cancellationToken)
=> PostAsync<EmptyRequest, PollNowRequest>(new EmptyRequest(), $"device/devices/{deviceId}/devicedatasources/{deviceDataSourceId}/instances/{deviceDataSourceInstanceId}/data/pollnow", cancellationToken);
public Task<PollNowRequest> GetPollNowRequestAsync(
int resourceId,
int resourceDataSourceId,
int resourceDataSourceInstanceId,
CancellationToken cancellationToken)
=> PostAsync<EmptyRequest, PollNowRequest>(new EmptyRequest(), $"device/devices/{resourceId}/devicedatasources/{resourceDataSourceId}/instances/{resourceDataSourceInstanceId}/data/pollnow", cancellationToken);

/// <summary>
/// Polls now for data via the collector
/// </summary>
/// <param name="deviceId">The device id</param>
/// <param name="deviceDataSourceId">The device datasource id</param>
/// <param name="deviceDataSourceInstanceId">The device datasource instance id</param>
/// <param name="resourceId">The Resource id</param>
/// <param name="resourceDataSourceId">The device datasource id</param>
/// <param name="resourceDataSourceInstanceId">The device datasource instance id</param>
/// <param name="requestId">The request id</param>
/// <param name="cancellationToken">The optional CancellationToken</param>
public Task<PollNowResponse> GetPollNowResponseAsync(int deviceId, int deviceDataSourceId, int deviceDataSourceInstanceId, long requestId, CancellationToken cancellationToken)
=> GetAsync<PollNowResponse>(false, $"device/devices/{deviceId}/devicedatasources/{deviceDataSourceId}/instances/{deviceDataSourceInstanceId}/data/pollnow/{requestId}", cancellationToken);
public Task<PollNowResponse> GetPollNowResponseAsync(
int resourceId,
int resourceDataSourceId,
int resourceDataSourceInstanceId,
long requestId,
CancellationToken cancellationToken)
=> GetAsync<PollNowResponse>(false, $"device/devices/{resourceId}/devicedatasources/{resourceDataSourceId}/instances/{resourceDataSourceInstanceId}/data/pollnow/{requestId}", cancellationToken);

/// <summary>
/// Polls now for data via the collector
/// </summary>
/// <param name="deviceId">The device id</param>
/// <param name="deviceDataSourceId">The device datasource id</param>
/// <param name="deviceDataSourceInstanceId">The device datasource instance id</param>
/// <param name="resourceId">The Resource id</param>
/// <param name="resourceDataSourceId">The device datasource id</param>
/// <param name="resourceDataSourceInstanceId">The device datasource instance id</param>
/// <param name="cancellationToken">The optional CancellationToken</param>
public async Task<PollNowResponse> PollNowAsync(int deviceId, int deviceDataSourceId, int deviceDataSourceInstanceId, CancellationToken cancellationToken)
public async Task<PollNowResponse> PollNowAsync(
int resourceId,
int resourceDataSourceId,
int resourceDataSourceInstanceId,
CancellationToken cancellationToken)
{
var pollNowRequest = await GetPollNowRequestAsync(deviceId, deviceDataSourceId, deviceDataSourceInstanceId, cancellationToken).ConfigureAwait(false);
var pollNowRequest = await GetPollNowRequestAsync(resourceId, resourceDataSourceId, resourceDataSourceInstanceId, cancellationToken).ConfigureAwait(false);

while (true)
{
var pollNowResponse = await GetPollNowResponseAsync(deviceId, deviceDataSourceId, deviceDataSourceInstanceId, pollNowRequest.RequestId, cancellationToken).ConfigureAwait(false);
var pollNowResponse = await GetPollNowResponseAsync(resourceId, resourceDataSourceId, resourceDataSourceInstanceId, pollNowRequest.RequestId, cancellationToken).ConfigureAwait(false);

if (pollNowResponse.RequestStatus == PollNowStatus.Done)
{
Expand All @@ -146,36 +166,36 @@ public async Task<PollNowResponse> PollNowAsync(int deviceId, int deviceDataSour
}

/// <summary>
/// Fetch data across mutliple instances
/// Fetch data across multiple instances
/// </summary>
/// <param name="deviceDataSourceInstanceIds">The list of DeviceSataSourceInstance ids</param>
/// <param name="resourceDataSourceInstanceIds">The list of DeviceSataSourceInstance ids</param>
/// <param name="start">The start</param>
/// <param name="end">The start</param>
/// <param name="cancellationToken">The optional CancellationToken</param>
/// <returns>The FetchDataResponse</returns>
public async Task<FetchDataResponse> GetFetchDataResponseAsync(
List<int> deviceDataSourceInstanceIds,
List<int> resourceDataSourceInstanceIds,
DateTimeOffset start,
DateTimeOffset end,
CancellationToken cancellationToken)
{
var startDateTimeUtcTimestamp = start.ToUnixTimeSeconds();
var endDateTimeUtcTimestamp = end.ToUnixTimeSeconds();
return await PostAsync<FetchDataRequest, FetchDataResponse>(
new FetchDataRequest { InstanceIds = string.Join(",", deviceDataSourceInstanceIds) },
new FetchDataRequest { InstanceIds = string.Join(",", resourceDataSourceInstanceIds) },
$"device/instances/datafetch?start={startDateTimeUtcTimestamp}&end={endDateTimeUtcTimestamp}",
cancellationToken).ConfigureAwait(false);
}

/// <summary>
/// Get device datasource data
/// Get Resource DataSource data
/// </summary>
/// <param name="deviceId"></param>
/// <param name="resourceId"></param>
/// <param name="id"></param>
/// <param name="cancellationToken"></param>
public async Task<DeviceDataSourceData> GetDeviceDataSourceDataAsync(
int deviceId,
int resourceId,
int id,
CancellationToken cancellationToken)
=> await GetBySubUrlAsync<DeviceDataSourceData>($"device/devices/{deviceId}/devicedatasources/{id}/data", cancellationToken);
=> await GetBySubUrlAsync<DeviceDataSourceData>($"device/devices/{resourceId}/devicedatasources/{id}/data", cancellationToken);
}
Loading

0 comments on commit 7339742

Please sign in to comment.