@Override
public LifecycleEntity saveInstanceLogLifecycle(final String instanceId, final DateTime instanceBootTime,
final String userdataPath, final String region, final String logData, final String accountId) {
final Optional<TaupageYaml> taupageYaml = Optional.ofNullable(logData)
.map(base64Decoder::decode)
.map(String::new)
.map(TaupageYamlUtil::parseTaupageYaml);
final Optional<ApplicationEntity> application = taupageYaml
.map(TaupageYaml::getApplicationId)
.map(ApplicationEntity::new);
final Optional<VersionEntity> version = taupageYaml
.map(TaupageYaml::getApplicationVersion)
.map(VersionEntity::new);
if (application.isPresent() && version.isPresent()) {
final LifecycleEntity lifecycleEntity = new LifecycleEntity();
lifecycleEntity.setInstanceBootTime(instanceBootTime);
lifecycleEntity.setInstanceId(instanceId);
lifecycleEntity.setAccountId(accountId);
lifecycleEntity.setRegion(region);
lifecycleEntity.setUserdataPath(userdataPath);
return self.saveLifecycle(application.get(), version.get(), lifecycleEntity);
} else {
log.warn("Empty or invalid taupage yaml.");
return null;
}
}