/** * @param msg */ protected void debug(String msg) { String prefix = ""; for (int i = 0 ; i < depth; i++) { prefix += " "; } logger.info(prefix + msg); }
/** * @param error */ private void error(StorageException error) { logger.error(error); throw new RuntimeException(error); }
/** * Process the next item in the queue. */ protected void processQueue() { try { Collection<RequestMetric> batch = new ArrayList<>(this.batchSize); RequestMetric rm = queue.take(); batch.add(rm); queue.drainTo(batch, this.batchSize - 1); Builder builder = new Bulk.Builder(); for (RequestMetric metric : batch) { Index index = new Index.Builder(metric).refresh(false) .index(getIndexName()) .type("request").build(); //$NON-NLS-1$ builder.addAction(index); } BulkResult result = getClient().execute(builder.build()); if (!result.isSucceeded()) { logger.warn("Failed to add metric(s) to ES"); //$NON-NLS-1$ } } catch (Exception e) { logger.warn("Error adding metric to ES"); //$NON-NLS-1$ return; } }
/** * @see io.apiman.manager.api.rest.contract.IOrganizationResource#createPlanPolicy(java.lang.String, * java.lang.String, java.lang.String, io.apiman.manager.api.beans.policies.NewPolicyBean) */ @Override public PolicyBean createPlanPolicy(String organizationId, String planId, String version, NewPolicyBean bean) throws OrganizationNotFoundException, PlanVersionNotFoundException, NotAuthorizedException { if (!securityContext.hasPermission(PermissionType.planEdit, organizationId)) throw ExceptionFactory.notAuthorizedException(); // Make sure the plan version exists and is in the right state PlanVersionBean pvb = getPlanVersion(organizationId, planId, version); if (pvb.getStatus() == PlanStatus.Locked) { throw ExceptionFactory.invalidPlanStatusException(); } log.debug(String.format("Creating plan %s policy %s", planId, pvb)); //$NON-NLS-1$ PolicyBean policy = doCreatePolicy(organizationId, planId, version, bean, PolicyType.Plan); try { storage.beginTx(); pvb.setModifiedOn(new Date()); pvb.setModifiedBy(securityContext.getCurrentUser()); storage.commitTx(); } catch (Exception e) { storage.rollbackTx(); log.error(e); } return policy; }
/** * @see io.apiman.manager.api.rest.contract.IOrganizationResource#updateApiDefinition(java.lang.String, java.lang.String, java.lang.String) */ @Override public void updateApiDefinition(String organizationId, String apiId, String version) throws ApiVersionNotFoundException, NotAuthorizedException, InvalidApiStatusException { String contentType = request.getContentType(); InputStream data; try { data = request.getInputStream(); } catch (IOException e) { throw new SystemErrorException(e); } try { ApiDefinitionType newDefinitionType; if (contentType.toLowerCase().contains("application/json")) { //$NON-NLS-1$ newDefinitionType = ApiDefinitionType.SwaggerJSON; } else if (contentType.toLowerCase().contains("application/x-yaml")) { //$NON-NLS-1$ newDefinitionType = ApiDefinitionType.SwaggerYAML; } else if (contentType.toLowerCase().contains("application/wsdl+xml")) { //$NON-NLS-1$ newDefinitionType = ApiDefinitionType.WSDL; } else { throw new SystemErrorException(Messages.i18n.format("InvalidApiDefinitionContentType", contentType)); //$NON-NLS-1$ } storeApiDefinition(organizationId, apiId, version, newDefinitionType, data); log.debug(String.format("Updated API definition for %s", apiId)); //$NON-NLS-1$ } finally { IOUtils.closeQuietly(data); } }
/** * @see io.apiman.manager.api.rest.contract.IOrganizationResource#createPlanPolicy(java.lang.String, * java.lang.String, java.lang.String, io.apiman.manager.api.beans.policies.NewPolicyBean) */ @Override public PolicyBean createPlanPolicy(String organizationId, String planId, String version, NewPolicyBean bean) throws OrganizationNotFoundException, PlanVersionNotFoundException, NotAuthorizedException { if (!securityContext.hasPermission(PermissionType.planEdit, organizationId)) throw ExceptionFactory.notAuthorizedException(); // Make sure the plan version exists and is in the right state PlanVersionBean pvb = getPlanVersion(organizationId, planId, version); if (pvb.getStatus() == PlanStatus.Locked) { throw ExceptionFactory.invalidPlanStatusException(); } log.debug(String.format("Creating plan %s policy %s", planId, pvb)); //$NON-NLS-1$ PolicyBean policy = doCreatePolicy(organizationId, planId, version, bean, PolicyType.Plan); try { storage.beginTx(); pvb.setModifiedOn(new Date()); pvb.setModifiedBy(securityContext.getCurrentUser()); storage.commitTx(); } catch (Exception e) { storage.rollbackTx(); log.error(e); } return policy; }
/** * @see io.apiman.manager.api.rest.contract.IOrganizationResource#updateApiDefinitionFromURL(java.lang.String, java.lang.String, java.lang.String, io.apiman.manager.api.beans.apis.NewApiDefinitionBean) */ @Override public void updateApiDefinitionFromURL(String organizationId, String apiId, String version, NewApiDefinitionBean bean) throws ApiVersionNotFoundException, NotAuthorizedException, InvalidApiStatusException { InputStream data; try { String definitionURL = bean.getDefinitionUrl(); URL url = new URL(definitionURL); data = url.openStream(); } catch (IOException e) { throw new SystemErrorException(e); } try { storeApiDefinition(organizationId, apiId, version, bean.getDefinitionType(), data); log.debug(String.format("Updated API definition for %s from URL %s", apiId, bean.getDefinitionUrl())); //$NON-NLS-1$ } finally { IOUtils.closeQuietly(data); } }
/** * @see io.apiman.manager.api.migrator.IReaderHandler#onOrg(com.fasterxml.jackson.databind.node.ObjectNode) */ @Override public void onOrg(ObjectNode node) throws IOException { if (chain.hasMigrators()) { logger.info(Messages.i18n.format("DataMigrator.MigratingOrg", node.get("OrganizationBean").get("name"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ chain.migrateOrg(node); } writer.writeOrg(node); }
log.error(e);
/** * @see io.apiman.manager.api.rest.contract.IOrganizationResource#updateApiDefinitionFromURL(java.lang.String, java.lang.String, java.lang.String, io.apiman.manager.api.beans.apis.NewApiDefinitionBean) */ @Override public void updateApiDefinitionFromURL(String organizationId, String apiId, String version, NewApiDefinitionBean bean) throws ApiVersionNotFoundException, NotAuthorizedException, InvalidApiStatusException { InputStream data; try { String definitionURL = bean.getDefinitionUrl(); URL url = new URL(definitionURL); data = url.openStream(); } catch (IOException e) { throw new SystemErrorException(e); } try { storeApiDefinition(organizationId, apiId, version, bean.getDefinitionType(), data); log.debug(String.format("Updated API definition for %s from URL %s", apiId, bean.getDefinitionUrl())); //$NON-NLS-1$ } finally { IOUtils.closeQuietly(data); } }
/** * Checks the ES store to see if the 'dataVersion' entry has been updated with a newer * version #. If it has, then we need to invalidate our cache. */ protected void checkCacheVersion() { // Be very aggressive in invalidating the cache. boolean invalidate = true; try { Get get = new Get.Builder(getDefaultIndexName(), "instance").type("dataVersion").build(); //$NON-NLS-1$ //$NON-NLS-2$ JestResult result = getClient().execute(get); if (result.isSucceeded()) { String latestDV = result.getJsonObject().get("_version").getAsString(); //$NON-NLS-1$ if (latestDV != null && dataVersion != null && latestDV.equals(dataVersion)) { invalidate = false; } else { dataVersion = latestDV; } } } catch (IOException e) { logger.warn("Elasticsearch is not available, using cache"); invalidate = false; } if (invalidate) { invalidateCache(); } }
private void exportAudits(String orgId) { try { Iterator<AuditEntryBean> iter = storage.getAllAuditEntries(orgId); writer.startAudits(); while(iter.hasNext()) { AuditEntryBean bean = iter.next(); logger.info(Messages.i18n.format("StorageExporter.ExportingAuditEntry") + bean); //$NON-NLS-1$ writer.writeAudit(bean); } writer.endAudits(); } catch (Exception e) { throw new RuntimeException(e); } }
log.error(e);
/** * @see io.apiman.manager.api.rest.contract.IOrganizationResource#getApiVersionContracts(java.lang.String, java.lang.String, java.lang.String, int, int) */ @Override public List<ContractSummaryBean> getApiVersionContracts(String organizationId, String apiId, String version, int page, int pageSize) throws ApiVersionNotFoundException, NotAuthorizedException { if (page <= 1) { page = 1; } if (pageSize == 0) { pageSize = 20; } // Try to get the API first - will throw an exception if not found. getApiVersion(organizationId, apiId, version); try { List<ContractSummaryBean> contracts = query.getContracts(organizationId, apiId, version, page, pageSize); log.debug(String.format("Got API %s version %s contracts: %s", apiId, version, contracts)); //$NON-NLS-1$ return contracts; } catch (StorageException e) { throw new SystemErrorException(e); } }
/** * @see io.apiman.manager.api.migrator.IReaderHandler#onUser(com.fasterxml.jackson.databind.node.ObjectNode) */ @Override public void onUser(ObjectNode node) throws IOException { if (chain.hasMigrators()) { logger.info(Messages.i18n.format("DataMigrator.MigratingUser", node.get("username"))); //$NON-NLS-1$ //$NON-NLS-2$ chain.migrateUser(node); } writer.writeUser(node); }
log.error(e);