Spaces:
Build error
Build error
File size: 6,611 Bytes
442299c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 |
package com.dalab.discovery.sd.config;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.function.Supplier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import com.dalab.discovery.common.model.CloudResource;
import com.dalab.discovery.common.model.DiscoveryJob;
import com.dalab.discovery.common.model.ResourceType;
import com.dalab.discovery.common.model.enums.CloudProvider;
import com.dalab.discovery.common.service.CloudResourceDTO;
import com.dalab.discovery.common.util.health.HealthStatus;
import com.dalab.discovery.crawler.service.IDiscoveryService;
import com.dalab.discovery.crawler.service.IResourceCrawler;
import com.dalab.discovery.job.service.JobStatisticsDTO;
/**
* Mock configuration for discovery services in tests.
* This resolves the dependency injection issue where multiple discovery service
* beans are found (AWS, Azure, GCP) but DefaultDiscoveryCoordinatorServiceImpl
* requires a single one.
*/
@Configuration
public class TestDiscoveryConfiguration {
/**
* Primary mock discovery service for tests.
* This bean will be injected when a non-specific IDiscoveryService is
* requested.
*/
@Primary
@Bean
public IDiscoveryService<CloudResource> primaryDiscoveryService() {
return new MockDiscoveryService();
}
/**
* Mock implementation of IDiscoveryService for testing
*/
private static class MockDiscoveryService implements IDiscoveryService<CloudResource> {
// Implement methods with stub implementations
// We're just providing this to satisfy Spring's dependency injection
@Override
public String getCloudProvider() {
return "mock";
}
@Override
public CloudProvider getProvider() {
return CloudProvider.UNKNOWN;
}
// IHealthCheckService methods
@Override
public boolean isServiceHealthy(String serviceName) {
return true;
}
@Override
public HealthStatus checkServiceHealth(String serviceName) {
return HealthStatus.up(serviceName);
}
@Override
public List<HealthStatus> getSystemStatus() {
return Collections.singletonList(HealthStatus.up("mock-system"));
}
@Override
public void registerHealthCheck(String name, String displayName, Supplier<HealthStatus> checker) {
// No-op for testing
}
// Other methods can return default/empty values
// Just implement the minimum required for tests to run
@Override
public List<ResourceType> getSupportedResourceTypes() {
return Collections.emptyList();
}
@Override
public boolean isResourceTypeSupported(ResourceType resourceType) {
return false;
}
@Override
public DiscoveryJob createDiscoveryCrawlerJob(String accountId,
List<String> resourceTypeIds, Map<String, String> parameters, String jobName) {
return null;
}
// Keep this for backward compatibility
public DiscoveryJob createDiscoveryJob(String accountId,
List<String> resourceTypeIds, Map<String, String> parameters) {
return createDiscoveryCrawlerJob(accountId, resourceTypeIds, parameters, "DefaultJob");
}
@Override
public CompletableFuture<DiscoveryJob> startDiscoveryJobAsync(UUID jobId) {
return CompletableFuture.completedFuture(null);
}
@Override
public DiscoveryJob startDiscoveryJob(UUID jobId, Map<String, String> parameters) {
return null;
}
@Override
public Optional<DiscoveryJob> getDiscoveryJob(String jobId) {
return Optional.empty();
}
@Override
public List<DiscoveryJob> getAllDiscoveryJobs() {
return Collections.emptyList();
}
@Override
public List<DiscoveryJob> getDiscoveryJobsByAccount(String accountId) {
return Collections.emptyList();
}
@Override
public boolean cancelDiscoveryJob(UUID jobId) {
return false;
}
@Override
public boolean pauseDiscoveryJob(UUID jobId) {
return false;
}
@Override
public boolean resumeDiscoveryJob(UUID jobId) {
return false;
}
// Keep these for backward compatibility
public boolean cancelDiscoveryJob(String jobId) {
try {
return cancelDiscoveryJob(UUID.fromString(jobId));
} catch (IllegalArgumentException e) {
return false;
}
}
public boolean pauseDiscoveryJob(String jobId) {
try {
return pauseDiscoveryJob(UUID.fromString(jobId));
} catch (IllegalArgumentException e) {
return false;
}
}
public boolean resumeDiscoveryJob(String jobId) {
try {
return resumeDiscoveryJob(UUID.fromString(jobId));
} catch (IllegalArgumentException e) {
return false;
}
}
@Override
public List<IResourceCrawler<CloudResource>> getCrawlers() {
return Collections.emptyList();
}
@Override
public List<IResourceCrawler<CloudResource>> getCrawlersByProvider(
String cloudProvider) {
return Collections.emptyList();
}
@Override
public void registerCrawler(IResourceCrawler<CloudResource> crawler) {
// No-op
}
@Override
public boolean unregisterCrawler(String crawlerName) {
return false;
}
@Override
public java.util.Optional<CloudResourceDTO> getResource(
String resourceId) {
return java.util.Optional.empty();
}
@Override
public boolean deleteResource(String resourceId) {
return false;
}
@Override
public java.util.List<CloudResourceDTO> discoverResources(String accountId,
String resourceType) {
return java.util.Collections.emptyList();
}
@Override
public CloudResourceDTO updateResourceProperties(String resourceId,
java.util.Map<String, Object> properties) {
return null;
}
@Override
public java.util.List<CloudResourceDTO> getResourcesByRegion(
String region) {
return java.util.Collections.emptyList();
}
@Override
public java.util.List<CloudResourceDTO> getResourcesByType(
String resourceType) {
return java.util.Collections.emptyList();
}
@Override
public JobStatisticsDTO getJobStatistics() {
return new JobStatisticsDTO.Builder()
.resourcesDiscovered(0)
.resourcesAdded(0)
.resourcesSkipped(0)
.resourcesUpdated(0)
.resourcesFailed(0)
.resources(java.util.Collections.emptyList())
.build();
}
@Override
public java.util.List<CloudResourceDTO> getResourcesByTags(
java.util.Map<String, String> tags) {
return java.util.Collections.emptyList();
}
@Override
public CloudResourceDTO updateResourceTags(String resourceId,
java.util.Map<String, String> tags) {
return null;
}
}
} |