List of usage examples for com.mongodb.client.model Updates set
public static <TItem> Bson set(final String fieldName, @Nullable final TItem value)
From source file:com.creactiviti.piper.core.task.MongoCounterRepository.java
License:Apache License
@Override public void set(String aCounterName, long aValue) { collection/*from w ww . j a v a 2 s. c om*/ .findOneAndUpdate(eq("_id", aCounterName), combine(Updates.set(DSL.VALUE, aValue), setOnInsert("_id", aCounterName), setOnInsert(DSL.CREATE_TIME, new Date())), new FindOneAndUpdateOptions().upsert(true)); }
From source file:com.epam.dlab.backendapi.dao.EnvStatusDAO.java
License:Apache License
private void updateEdgeStatus(String user, Document edge, String instanceId, EnvResource r) { LOGGER.trace("Update EDGE status for user {} with instance_id {} from {} to {}", user, instanceId, edge.getString(EDGE_STATUS), r.getStatus()); String oldStatus = edge.getString(EDGE_STATUS); UserInstanceStatus oStatus = (oldStatus == null ? UserInstanceStatus.CREATING : UserInstanceStatus.of(oldStatus)); UserInstanceStatus status = getInstanceNewStatus(oStatus, r.getStatus()); LOGGER.trace("EDGE status translated for user {} with instanceId {} from {} to {}", user, instanceId, r.getStatus(), status);/*from w w w . ja va2 s.com*/ if (oStatus != status) { LOGGER.debug("EDGE status will be updated from {} to {}", oldStatus, status); updateOne(USER_EDGE, eq(ID, user), Updates.set(EDGE_STATUS, status.toString())); } }
From source file:com.epam.dlab.backendapi.dao.EnvStatusDAO.java
License:Apache License
/** * Update the status of exploratory if it needed. * * @param user the user name//w w w . j a v a2 s . c o m * @param exploratoryName the name of exploratory * @param oldStatus old status * @param newStatus new status */ private void updateExploratoryStatus(String user, String exploratoryName, String oldStatus, String newStatus) { LOGGER.trace("Update exploratory status for user {} with exploratory {} from {} to {}", user, exploratoryName, oldStatus, newStatus); UserInstanceStatus oStatus = UserInstanceStatus.of(oldStatus); UserInstanceStatus status = getInstanceNewStatus(oStatus, newStatus); LOGGER.trace("Exploratory status translated for user {} with exploratory {} from {} to {}", user, exploratoryName, newStatus, status); if (oStatus != status) { LOGGER.debug("Exploratory status for user {} with exploratory {} will be updated from {} to {}", user, exploratoryName, oldStatus, status); updateOne(USER_INSTANCES, exploratoryCondition(user, exploratoryName), Updates.set(STATUS, status.toString())); } }
From source file:com.epam.dlab.backendapi.dao.KeyDAO.java
License:Apache License
/** * Updates the status of EDGE node.// w ww.j ava 2 s. c o m * * @param user user name * @param status status of EDGE node */ public void updateEdgeStatus(String user, String status) { updateOne(USER_EDGE, eq(ID, user), Updates.set(EDGE_STATUS, status)); }
From source file:com.epam.dlab.backendapi.dao.KeyDAO.java
License:Apache License
/** * Updates the field 'reupload_key_required' of EDGE node. * * @param user user name/*from w w w.ja va2s. c om*/ * @param reuploadKeyRequired true/false * @param edgeStatuses allowable edge statuses */ public void updateEdgeReuploadKey(String user, boolean reuploadKeyRequired, UserInstanceStatus... edgeStatuses) { updateOne(USER_EDGE, and(eq(ID, user), in(EDGE_STATUS, statusList(edgeStatuses))), Updates.set(REUPLOAD_KEY_REQUIRED, reuploadKeyRequired)); }
From source file:com.epam.dlab.backendapi.dao.RequestIdDAO.java
License:Apache License
public void resetExpirationTime() { Date time = new Date(); getCollection(REQUEST_ID).updateMany(new Document(), Updates.set(EXPIRATION_TIME, time)); }
From source file:com.epam.dlab.billing.azure.AzureBillingDetailsService.java
License:Apache License
private void updateBillingDetails(String user, List<Document> billingDetails) { if (!billingDetails.isEmpty()) { Map<String, List<Document>> info = new HashMap<>(); Consumer<Document> aggregator = e -> { String notebookId = e.getString(MongoKeyWords.EXPLORATORY_ID); List<Document> documents = info.get(notebookId); if (documents == null) { documents = new ArrayList<>(); }/*from ww w.j av a 2s.c o m*/ documents.add(e); info.put(notebookId, documents); }; billingDetails.stream().filter( e -> DlabResourceType.EXPLORATORY.toString().equals(e.getString(MongoKeyWords.RESOURCE_TYPE))) .forEach(aggregator); billingDetails.stream().filter( e -> DlabResourceType.COMPUTATIONAL.toString().equals(e.getString(MongoKeyWords.RESOURCE_TYPE))) .forEach(aggregator); billingDetails.stream().filter( e -> DlabResourceType.VOLUME.toString().equals(e.getString(MongoKeyWords.RESOURCE_TYPE))) .forEach(aggregator); for (Map.Entry<String, List<Document>> entry : info.entrySet()) { double sum = entry.getValue().stream().mapToDouble(e -> e.getDouble(MongoKeyWords.COST)).sum(); entry.getValue().forEach(e -> e.put(MongoKeyWords.COST_STRING, BillingCalculationUtils.formatDouble(e.getDouble(MongoKeyWords.COST)))); log.debug("Update billing for notebook {}, cost is {} {}", entry.getKey(), sum, currencyCode); Bson updates = Updates.combine( Updates.set(MongoKeyWords.COST_STRING, BillingCalculationUtils.formatDouble(sum)), Updates.set(MongoKeyWords.COST, sum), Updates.set(MongoKeyWords.CURRENCY_CODE, currencyCode), Updates.set(MongoKeyWords.BILLING_DETAILS, entry.getValue())); UpdateResult updateResult = mongoDbBillingClient.getDatabase() .getCollection(MongoKeyWords.NOTEBOOK_COLLECTION) .updateOne(Filters.and(Filters.eq(MongoKeyWords.DLAB_USER, user), Filters.eq(MongoKeyWords.EXPLORATORY_ID_OLD, entry.getKey())), updates); log.debug("Update result for {}/{} is {}", user, entry.getKey(), updateResult); } } else { log.warn("No billing details found for notebooks for user {}", user); } }
From source file:com.epam.dlab.mongo.DlabResourceTypeDAO.java
License:Apache License
/** * Update exploratory cost in Mongo DB./* ww w . ja v a2 s .com*/ * * @param user the name of user. * @param exploratoryName id of exploratory. */ private void updateExploratoryCost(String user, String exploratoryName) { LOGGER.debug("Update explorartory {} cost for user {}", exploratoryName, user); List<? extends Bson> pipeline = Arrays.asList( match(and(eq(FIELD_USER, user), eq(FIELD_EXPLORATORY_NAME, exploratoryName))), group(getGrouppingFields(FIELD_DLAB_RESOURCE_ID, ReportLine.FIELD_PRODUCT, ReportLine.FIELD_RESOURCE_TYPE, ReportLine.FIELD_CURRENCY_CODE), sum(ReportLine.FIELD_COST, "$" + ReportLine.FIELD_COST), min(FIELD_USAGE_DATE_START, "$" + ReportLine.FIELD_USAGE_DATE), max(FIELD_USAGE_DATE_END, "$" + ReportLine.FIELD_USAGE_DATE)), sort(new Document(FIELD_ID + "." + FIELD_DLAB_RESOURCE_ID, 1) .append(FIELD_ID + "." + ReportLine.FIELD_PRODUCT, 1))); AggregateIterable<Document> docs = connection.getCollection(COLLECTION_BILLING).aggregate(pipeline); LinkedList<Document> billing = new LinkedList<>(); ResourceItemList resources = getResourceList(); Double costTotal = null; String currencyCode = null; for (Document d : docs) { Document id = (Document) d.get(FIELD_ID); double cost = BillingCalculationUtils.round(d.getDouble(ReportLine.FIELD_COST), 2); costTotal = (costTotal == null ? cost : costTotal + cost); if (currencyCode == null) { currencyCode = id.getString(ReportLine.FIELD_CURRENCY_CODE); } Document total = new Document() .append(FIELD_RESOURCE_NAME, resources.getById(id.getString(FIELD_DLAB_RESOURCE_ID)).getResourceName()) .append(ReportLine.FIELD_PRODUCT, id.getString(ReportLine.FIELD_PRODUCT)) .append(ReportLine.FIELD_RESOURCE_TYPE, id.getString(ReportLine.FIELD_RESOURCE_TYPE)) .append(ReportLine.FIELD_COST, BillingCalculationUtils.formatDouble(cost)) .append(ReportLine.FIELD_CURRENCY_CODE, id.getString(ReportLine.FIELD_CURRENCY_CODE)) .append(FIELD_USAGE_DATE_START, d.getString(FIELD_USAGE_DATE_START)) .append(FIELD_USAGE_DATE_END, d.getString(FIELD_USAGE_DATE_END)); billing.add(total); } LOGGER.debug("Total explorartory {} cost for user {} is {} {}, detail count is {}", exploratoryName, user, costTotal, currencyCode, billing.size()); billing.sort(new BillingComparator()); MongoCollection<Document> cExploratory = connection.getCollection(COLLECTION_USER_INSTANCES); Bson values = Updates.combine( Updates.set(ReportLine.FIELD_COST, BillingCalculationUtils.formatDouble(costTotal)), Updates.set(FIELD_CURRENCY_CODE, currencyCode), Updates.set(COLLECTION_BILLING, (!billing.isEmpty() ? billing : null))); cExploratory.updateOne(and(and(eq(FIELD_USER, user), eq(FIELD_EXPLORATORY_NAME, exploratoryName))), values); }
From source file:com.epam.dlab.mongo.DlabResourceTypeDAO.java
License:Apache License
/** * Update EDGE cost in Mongo DB./*w ww .ja v a 2 s . c o m*/ * * @param user the name of user. */ private void updateEdgeCost(String user) { List<? extends Bson> pipeline = Arrays.asList( match(and(eq(FIELD_USER, user), eq(FIELD_EXPLORATORY_NAME, null))), group(getGrouppingFields(ReportLine.FIELD_CURRENCY_CODE), sum(ReportLine.FIELD_COST, "$" + ReportLine.FIELD_COST))); AggregateIterable<Document> docs = connection.getCollection(COLLECTION_BILLING_TOTAL).aggregate(pipeline); MongoCollection<Document> cEdge = connection.getCollection(COLLECTION_USER_EDGE); for (Document d : docs) { Document id = (Document) d.get(FIELD_ID); Bson values = Updates.combine( Updates.set(ReportLine.FIELD_COST, BillingCalculationUtils.round(d.getDouble(ReportLine.FIELD_COST), 2)), Updates.set(FIELD_CURRENCY_CODE, id.get(ReportLine.FIELD_CURRENCY_CODE))); cEdge.updateOne(eq(FIELD_ID, user), values); } }
From source file:com.exorath.exodata.impl.IExoDocument.java
License:Apache License
@Override public Observable<UpdateResult> set(String key, Object value) { return update(Updates.set(key, value), true); }