use of org.candlepin.dto.manifest.v1.ConsumerDTO in project candlepin by candlepin.
the class GuestMigration method buildMigrationManifest.
/**
* Build a manifest detailing any guest migrations occurring due to a host consumer update.
*
* If a consumer's guest was already reported by another host consumer, record that host in the
* manifest as well so that the migration can be made atomically.
*
* @param incoming incoming consumer in DTO form
* @param existing existing consumer in model form
* @return guestMigration object that contains all information related to the migration
*/
public GuestMigration buildMigrationManifest(ConsumerDTO incoming, Consumer existing) {
if (incoming.getGuestIds() == null) {
log.debug("Guests not included in this consumer update, skipping update.");
migrationPending = false;
return this;
}
manifest = new MigrationManifest(existing);
log.debug("Updating {} guest IDs.", incoming.getGuestIds().size());
List<GuestId> existingGuests = existing.getGuestIds();
// Transform incoming GuestIdDTOs to GuestIds
List<GuestId> incomingGuestIds = incoming.getGuestIds().stream().filter(Objects::nonNull).map(guestIdDTO -> new GuestId(guestIdDTO.getGuestId(), existing, guestIdDTO.getAttributes())).collect(Collectors.toList());
List<GuestId> removedGuests = getRemovedGuestIds(existing, incomingGuestIds);
List<GuestId> addedGuests = getAddedGuestIds(existing, incomingGuestIds);
// remove guests that are missing.
if (existingGuests != null) {
for (GuestId guestId : removedGuests) {
existingGuests.remove(guestId);
log.debug("Guest ID removed: {}", guestId);
}
}
// Check guests that are existing/added.
for (GuestId guestId : incomingGuestIds) {
if (addedGuests.contains(guestId)) {
manifest.addGuestId(guestId);
log.debug("New guest ID added: {}", guestId);
}
}
migrationPending = removedGuests.size() != 0 || addedGuests.size() != 0;
return this;
}
use of org.candlepin.dto.manifest.v1.ConsumerDTO in project candlepin by candlepin.
the class ConsumerResourceCreationTest method registerWithNoReleaseVer.
@Test
public void registerWithNoReleaseVer() {
Principal p = new TrustedUserPrincipal("anyuser");
ConsumerDTO consumer = TestUtil.createConsumerDTO("consumername", null, null, systemDto);
resource.create(consumer, p, USER, owner.getKey(), null, true);
}
use of org.candlepin.dto.manifest.v1.ConsumerDTO in project candlepin by candlepin.
the class ConsumerResourceCreationTest method registerWithNoInstalledProducts.
@Test
public void registerWithNoInstalledProducts() {
Principal p = new TrustedUserPrincipal("anyuser");
ConsumerDTO consumer = TestUtil.createConsumerDTO("consumerName", null, null, systemDto);
resource.create(consumer, p, USER, owner.getKey(), null, true);
}
use of org.candlepin.dto.manifest.v1.ConsumerDTO in project candlepin by candlepin.
the class ConsumerResourceCreationTest method setStatusOnCreate.
@Test
public void setStatusOnCreate() {
Principal p = new TrustedUserPrincipal("anyuser");
ConsumerDTO consumer = TestUtil.createConsumerDTO("consumername", null, null, systemDto);
resource.create(consumer, p, USER, owner.getKey(), null, true);
// Should be called with the consumer, null date (now),
// no compliantUntil, and not update the consumer record
verify(complianceRules).getStatus(any(Consumer.class), eq((Date) null), eq(false), eq(false));
}
use of org.candlepin.dto.manifest.v1.ConsumerDTO in project candlepin by candlepin.
the class ConsumerResourceCreationTest method failIfOnlyActivationKeyDoesNotExistForOrg.
@Test(expected = BadRequestException.class)
public void failIfOnlyActivationKeyDoesNotExistForOrg() {
Principal p = new NoAuthPrincipal();
List<String> keys = new ArrayList<>();
keys.add("NoSuchKey");
ConsumerDTO consumer = TestUtil.createConsumerDTO("sys.example.com", null, null, systemDto);
resource.create(consumer, p, null, owner.getKey(), createKeysString(keys), true);
}
Aggregations