List of usage examples for org.apache.maven.artifact.versioning DefaultArtifactVersion getMajorVersion
public int getMajorVersion()
From source file:com.cloudera.whirr.cm.server.impl.CmServerImpl.java
License:Apache License
private void provisionParcels(final CmServerCluster cluster) throws InterruptedException, IOException { apiResourceRootV3.getClouderaManagerResource().updateConfig( new ApiConfigList(Arrays.asList(new ApiConfig[] { new ApiConfig("PARCEL_UPDATE_FREQ", "1") }))); final Set<String> repositoriesRequired = new HashSet<String>(); for (CmServerServiceType type : cluster.getServiceTypes(versionApi, versionCdh)) { repositoriesRequired.add(type.getRepository().toString(CDH_REPO_PREFIX + versionCdh)); }//from w w w .jav a 2 s .c o m final List<String> repositoriesRequiredOrdered = new ArrayList<String>(); for (String repository : repositoriesRequired) { if (repository.equals(CDH_REPO_PREFIX)) { repositoriesRequiredOrdered.add(0, repository); } else { repositoriesRequiredOrdered.add(repository); } } execute("WaitForParcelsAvailability", new Callback() { @Override public boolean poll() { for (ApiParcel parcel : apiResourceRootV3.getClustersResource().getParcelsResource(getName(cluster)) .readParcels(DataView.FULL).getParcels()) { try { repositoriesRequired.remove(parcel.getProduct()); } catch (IllegalArgumentException e) { // ignore } } return repositoriesRequired.isEmpty(); } }); apiResourceRootV3.getClouderaManagerResource().updateConfig( new ApiConfigList(Arrays.asList(new ApiConfig[] { new ApiConfig("PARCEL_UPDATE_FREQ", "60") }))); for (String repository : repositoriesRequiredOrdered) { DefaultArtifactVersion parcelVersion = null; for (ApiParcel apiParcel : apiResourceRootV3.getClustersResource().getParcelsResource(getName(cluster)) .readParcels(DataView.FULL).getParcels()) { DefaultArtifactVersion parcelVersionTmp = new DefaultArtifactVersion(apiParcel.getVersion()); if (apiParcel.getProduct().equals(repository)) { if (!apiParcel.getProduct().equals(CDH_REPO_PREFIX) || versionCdh == parcelVersionTmp.getMajorVersion()) { if (parcelVersion == null || parcelVersion.compareTo(parcelVersionTmp) < 0) { parcelVersion = new DefaultArtifactVersion(apiParcel.getVersion()); } } } } final ParcelResource apiParcelResource = apiResourceRootV3.getClustersResource() .getParcelsResource(getName(cluster)).getParcelResource(repository, parcelVersion.toString()); execute(apiParcelResource.startDownloadCommand(), new Callback() { @Override public boolean poll() { return apiParcelResource.readParcel().getStage().equals(CM_PARCEL_STAGE_DOWNLOADED); } }, false); execute(apiParcelResource.startDistributionCommand(), new Callback() { @Override public boolean poll() { return apiParcelResource.readParcel().getStage().equals(CM_PARCEL_STAGE_DISTRIBUTED); } }, false); execute(apiParcelResource.activateCommand(), new Callback() { @Override public boolean poll() { return apiParcelResource.readParcel().getStage().equals(CM_PARCEL_STAGE_ACTIVATED); } }, false); } }
From source file:com.liferay.ide.maven.core.MavenUtil.java
License:Open Source License
public static String getVersion(String version) { String retval = null;// w w w . j av a 2 s.co m final DefaultArtifactVersion v = new DefaultArtifactVersion(version); retval = v.getMajorVersion() + "." + v.getMinorVersion() + "." + v.getIncrementalVersion(); if ("0.0.0".equals(retval)) { retval = v.getQualifier(); } // try to parse as osgi version if it fails then return 0.0.0 try { Version.parseVersion(retval); } catch (Exception e) { retval = "0.0.0"; } return retval; }
From source file:com.vmware.bdd.plugin.ambari.service.AmClusterValidator.java
License:Open Source License
private void validateSupportComputeOnly(ClusterBlueprint blueprint) { if (isComputeOnly(blueprint.getExternalNamenode(), blueprint.getExternalDatanodes())) { String hdpVersion = blueprint.getHadoopStack().getFullVersion(); DefaultArtifactVersion hdpVersionInfo = new DefaultArtifactVersion(hdpVersion); if (!((hdpVersionInfo.getMajorVersion() >= 2 && hdpVersionInfo.getMinorVersion() >= 1) || hdpVersionInfo.getMajorVersion() > 2)) { warningMsgList.add("Compute only cluster does not support in HDP " + hdpVersion + " of Ambari yet"); }/*from w w w.ja va2 s . c om*/ } }
From source file:com.vmware.bdd.plugin.ambari.utils.Version.java
License:Open Source License
public static int compare(String srcVersion, String destVersion) { logger.info("The source version is " + srcVersion); logger.info("The destination version is " + destVersion); DefaultArtifactVersion srcArtifactVersion = new DefaultArtifactVersion(srcVersion); DefaultArtifactVersion destArtifactVersion = new DefaultArtifactVersion(destVersion); int[] srcVersionArray = { srcArtifactVersion.getMajorVersion(), srcArtifactVersion.getMinorVersion(), srcArtifactVersion.getIncrementalVersion() }; int[] destVersionArray = { destArtifactVersion.getMajorVersion(), destArtifactVersion.getMinorVersion(), destArtifactVersion.getIncrementalVersion() }; for (int i = 0; i < srcVersionArray.length; i++) { if (i >= destVersionArray.length) { return compare(destVersionArray, srcVersionArray, 1); }/*from ww w.ja v a2 s . c om*/ if (srcVersionArray[i] > destVersionArray[i]) { return 1; } else if (srcVersionArray[i] < destVersionArray[i]) { return -1; } } if (destVersionArray.length > srcVersionArray.length) { return compare(srcVersionArray, destVersionArray, -1); } return 0; }
From source file:com.vmware.bdd.plugin.clouderamgr.service.ClouderaManagerImpl.java
License:Open Source License
private void initApiResource(ApiRootResource apiRootResource) { String apiVersion = apiRootResource.getCurrentVersion(); logger.info("api version: " + apiVersion); int apiVersionNum = apiVersion.charAt(1) - '0'; assert (apiVersionNum >= 6); this.apiResourceRootV6 = apiRootResource.getRootV6(); String cmVersion = getVersion(); if (cmVersion.equals(UNKNOWN_VERSION)) { return;//from w w w . j av a 2 s.co m } logger.info("cm version: " + cmVersion); DefaultArtifactVersion cmVersionInfo = new DefaultArtifactVersion(cmVersion); assert (cmVersionInfo.getMajorVersion() >= 5); if (apiVersionNum >= 7 && isCmSupported(7, cmVersionInfo)) { this.apiResourceRootV7 = apiRootResource.getRootV7(); } }
From source file:com.vmware.bdd.plugin.clouderamgr.service.ClouderaManagerImpl.java
License:Open Source License
private boolean isCmSupported(int apiVersion, DefaultArtifactVersion cmVersionInfo) { DefaultArtifactVersion sinceVersion = new DefaultArtifactVersion( Constants.API_VERSION_SINCE_OF_CM_VERSION.get(apiVersion)); if (cmVersionInfo.getMajorVersion() > sinceVersion.getMajorVersion() || (cmVersionInfo.getMajorVersion() == sinceVersion.getMajorVersion() && cmVersionInfo.getMinorVersion() >= sinceVersion.getMinorVersion())) { return true; }/*from w w w.j a va 2s .c o m*/ return false; }
From source file:com.vmware.bdd.plugin.clouderamgr.service.ClouderaManagerImpl.java
License:Open Source License
@Override public boolean validateServerVersion() throws SoftwareManagerCollectorException { String cmVersion = getVersion(); DefaultArtifactVersion cmVersionInfo = new DefaultArtifactVersion(cmVersion); DefaultArtifactVersion minSupportedVersionInfo = new DefaultArtifactVersion(MIN_SUPPORTED_VERSION); logger.info("Min supported version of " + getType() + " is: " + MIN_SUPPORTED_VERSION); logger.info("Version of new software manager is: " + cmVersion); if (cmVersion.equals(UNKNOWN_VERSION) || cmVersionInfo.getMajorVersion() < minSupportedVersionInfo.getMajorVersion()) { throw SoftwareManagerCollectorException.INVALID_VERSION(Constants.CDH_PLUGIN_NAME, cmVersion); }/*ww w . jav a2 s . c om*/ return true; }
From source file:com.vmware.bdd.plugin.clouderamgr.service.ClouderaManagerImpl.java
License:Open Source License
@Override public List<HadoopStack> getSupportedStacks() throws SoftwareManagementPluginException { String randomClusterName = UUID.randomUUID().toString(); final ApiClusterList clusterList = new ApiClusterList(); ApiCluster apiCluster = new ApiCluster(); apiCluster.setName(randomClusterName); apiCluster.setVersion(ApiClusterVersion.CDH5); clusterList.add(apiCluster);/*from ww w . j av a 2 s . c o m*/ try { List<HadoopStack> hadoopStacks = new ArrayList<HadoopStack>(); apiResourceRootV6.getClustersResource().createClusters(clusterList); for (ApiParcel apiParcel : apiResourceRootV6.getClustersResource().getParcelsResource(randomClusterName) .readParcels(DataView.SUMMARY).getParcels()) { if (apiParcel.getProduct().equals(Constants.CDH_REPO_PREFIX)) { DefaultArtifactVersion parcelVersion = new DefaultArtifactVersion(apiParcel.getVersion()); HadoopStack stack = new HadoopStack(); stack.setDistro(apiParcel.getProduct(), parcelVersion.getMajorVersion() + "." + parcelVersion.getMinorVersion() + "." + parcelVersion.getIncrementalVersion()); stack.setFullVersion(apiParcel.getVersion()); stack.setVendor(Constants.CDH_DISTRO_VENDOR); List<String> roles = new ArrayList<String>(); for (String role : AvailableServiceRoleContainer.allRoles(apiParcel.getVersion())) { roles.add(role); } stack.setHveSupported(true); stack.setRoles(roles); hadoopStacks.add(stack); } } apiResourceRootV6.getClustersResource().deleteCluster(randomClusterName); return hadoopStacks; } catch (Exception e) { throw SoftwareManagementPluginException.RETRIEVE_SUPPORTED_STACKS_FAIL(e, Constants.CDH_PLUGIN_NAME); } }
From source file:com.vmware.bdd.plugin.clouderamgr.service.ClouderaManagerImpl.java
License:Open Source License
/** provision parcels, Reentrant * A Parcel encapsulate a specific product and version. For example, (CDH 4.1). * A parcel is downloaded, distributed to all the machines of a cluster and then allowed to be activated. * * @param cluster//from w w w.j a v a 2 s .co m * @param reportQueue * @throws Exception */ private void provisionParcels(final CmClusterDef cluster, final List<String> addedNodes, final ClusterReportQueue reportQueue) throws Exception { if (isConfigured(cluster)) { return; } apiResourceRootV6.getClouderaManagerResource().updateConfig( new ApiConfigList(Arrays.asList(new ApiConfig[] { new ApiConfig("PARCEL_UPDATE_FREQ", "1") }))); final Set<String> repositoriesRequired = new HashSet<String>(); for (CmServiceDef serviceDef : cluster.getServices()) { repositoriesRequired.add(serviceDef.getType().getRepository().toString(cluster.getVersion())); } logger.info("parcel repo required: " + repositoriesRequired + " cluster: " + cluster.getName()); final List<String> repositoriesRequiredOrdered = new ArrayList<String>(); for (String repository : repositoriesRequired) { if (repository.equals(Constants.CDH_REPO_PREFIX)) { repositoriesRequiredOrdered.add(0, repository); } else { repositoriesRequiredOrdered.add(repository); } } // validate this cluster has access to all Parcels it requires executeAndReport("Validating parcels availability", addedNodes, null, ProgressSplit.VALIDATE_PARCELS_AVAILABILITY.getProgress(), cluster.getCurrentReport(), reportQueue, new StatusPoller() { @Override public boolean poll() { for (ApiParcel parcel : apiResourceRootV6.getClustersResource() .getParcelsResource(cluster.getName()).readParcels(DataView.FULL).getParcels()) { try { repositoriesRequired.remove(parcel.getProduct()); } catch (IllegalArgumentException e) { // ignore } } // TODO: if one required parcel is not available, will run forever, need timeout/validation return repositoriesRequired.isEmpty(); } }, false); apiResourceRootV6.getClouderaManagerResource().updateConfig( new ApiConfigList(Arrays.asList(new ApiConfig[] { new ApiConfig("PARCEL_UPDATE_FREQ", "60") }))); DefaultArtifactVersion expectVersion = null; if (cluster.getFullVersion() != null) { expectVersion = new DefaultArtifactVersion(cluster.getFullVersion()); } for (String repository : repositoriesRequiredOrdered) { DefaultArtifactVersion parcelVersion = null; for (ApiParcel apiParcel : apiResourceRootV6.getClustersResource().getParcelsResource(cluster.getName()) .readParcels(DataView.FULL).getParcels()) { DefaultArtifactVersion parcelVersionTmp = new DefaultArtifactVersion(apiParcel.getVersion()); if (apiParcel.getProduct().equals(repository)) { if (apiParcel.getProduct().equals(Constants.CDH_REPO_PREFIX)) { /* * Policy for "CDH" parcel: * 1) If specify fullVersion, try to find that parcel, if cannot, select the latest parcel(with highest version). * 2) If fullVersion not specified, select the latest parcel */ if (parcelVersion == null || parcelVersion.compareTo(parcelVersionTmp) < 0) { parcelVersion = new DefaultArtifactVersion(apiParcel.getVersion()); } if (expectVersion != null && parcelVersionTmp.getMajorVersion() == expectVersion.getMajorVersion() && parcelVersionTmp.getMinorVersion() == expectVersion.getMinorVersion() && parcelVersionTmp.getIncrementalVersion() == expectVersion .getIncrementalVersion()) { parcelVersion = new DefaultArtifactVersion(apiParcel.getVersion()); break; } } if (!apiParcel.getProduct().equals(Constants.CDH_REPO_PREFIX)) { // For non-CDH parcel, just select the latest one if (parcelVersion == null || parcelVersion.compareTo(parcelVersionTmp) < 0) { parcelVersion = new DefaultArtifactVersion(apiParcel.getVersion()); } } } } final ParcelResource apiParcelResource = apiResourceRootV6.getClustersResource() .getParcelsResource(cluster.getName()).getParcelResource(repository, parcelVersion.toString()); String refMsg = referCmfUrlMsg(domain + "/cmf/parcel/status"); if (AvailableParcelStage.valueOf(apiParcelResource.readParcel().getStage()) .ordinal() < AvailableParcelStage.DOWNLOADED.ordinal()) { String action = "Downloading parcel..."; ParcelProvisionPoller poll = new ParcelProvisionPoller(apiParcelResource, AvailableParcelStage.DOWNLOADED, cluster.getCurrentReport(), reportQueue, ProgressSplit.DOWNLOAD_PARCEL.getProgress()); if (apiParcelResource.readParcel().getStage().equals(AvailableParcelStage.DOWNLOADING.toString())) { // Another thread is downloading this parcel, just wait for its completion executeAndReport(action, null, ProgressSplit.DOWNLOAD_PARCEL.getProgress(), cluster.getCurrentReport(), reportQueue, poll, false); } else { // the ApiCommand instance for parcel is inaccessible, so do not check the return value executeAndReport(action, apiParcelResource.startDownloadCommand(), ProgressSplit.DOWNLOAD_PARCEL.getProgress(), cluster.getCurrentReport(), reportQueue, poll, false); } if (AvailableParcelStage.valueOf(apiParcelResource.readParcel().getStage()) .ordinal() < AvailableParcelStage.DOWNLOADED.ordinal()) { throw ClouderaManagerException.DOWNLOAD_PARCEL_FAIL(apiParcelResource.readParcel().getProduct(), apiParcelResource.readParcel().getVersion(), refMsg); } } if (AvailableParcelStage.valueOf(apiParcelResource.readParcel().getStage()) .ordinal() < AvailableParcelStage.DISTRIBUTED.ordinal()) { String action = "Distributing parcel..."; final StatusPoller poller = new ParcelProvisionPoller(apiParcelResource, AvailableParcelStage.DISTRIBUTED, cluster.getCurrentReport(), reportQueue, ProgressSplit.DISTRIBUTE_PARCEL.getProgress()); executeAndReport(action, apiParcelResource.startDistributionCommand(), ProgressSplit.DISTRIBUTE_PARCEL.getProgress(), cluster.getCurrentReport(), reportQueue, poller, false); if (AvailableParcelStage.valueOf(apiParcelResource.readParcel().getStage()) .ordinal() < AvailableParcelStage.DISTRIBUTED.ordinal()) { throw ClouderaManagerException.DISTRIBUTE_PARCEL_FAIL( apiParcelResource.readParcel().getProduct(), apiParcelResource.readParcel().getVersion(), refMsg); } } if (AvailableParcelStage.valueOf(apiParcelResource.readParcel().getStage()) .ordinal() < AvailableParcelStage.ACTIVATED.ordinal()) { String action = "Activating parcel..."; executeAndReport(action, apiParcelResource.activateCommand(), ProgressSplit.ACTIVATE_PARCEL.getProgress(), cluster.getCurrentReport(), reportQueue, new StatusPoller() { @Override public boolean poll() { // activate parcel is pretty fast, so suppose we are no need to do much error handling/progress monitoring // TODO: set a timeout return apiParcelResource.readParcel().getStage() .equals(AvailableParcelStage.ACTIVATED.toString()); } }, false); if (AvailableParcelStage.valueOf(apiParcelResource.readParcel().getStage()) .ordinal() < AvailableParcelStage.ACTIVATED.ordinal()) { throw ClouderaManagerException.ACTIVATE_PARCEL_FAIL(apiParcelResource.readParcel().getProduct(), apiParcelResource.readParcel().getVersion(), refMsg); } } } }
From source file:com.vmware.bdd.utils.Version.java
License:Open Source License
public static int compare(String srcVersion, String destVersion) { DefaultArtifactVersion srcArtifactVersion = new DefaultArtifactVersion(srcVersion); DefaultArtifactVersion destArtifactVersion = new DefaultArtifactVersion(destVersion); int[] srcVersionArray = { srcArtifactVersion.getMajorVersion(), srcArtifactVersion.getMinorVersion(), srcArtifactVersion.getIncrementalVersion() }; int[] destVersionArray = { destArtifactVersion.getMajorVersion(), destArtifactVersion.getMinorVersion(), destArtifactVersion.getIncrementalVersion() }; for (int i = 0; i < srcVersionArray.length; i++) { if (i >= destVersionArray.length) { return compare(destVersionArray, srcVersionArray, 1); }/*from w w w.ja v a 2 s . c om*/ if (srcVersionArray[i] > destVersionArray[i]) { return 1; } else if (srcVersionArray[i] < destVersionArray[i]) { return -1; } } if (destVersionArray.length > srcVersionArray.length) { return compare(srcVersionArray, destVersionArray, -1); } return 0; }