mirror of https://github.com/apache/cloudstack.git
88 lines
3.5 KiB
Java
88 lines
3.5 KiB
Java
//Licensed to the Apache Software Foundation (ASF) under one
|
|
//or more contributor license agreements. See the NOTICE file
|
|
//distributed with this work for additional information
|
|
//regarding copyright ownership. The ASF licenses this file
|
|
//to you under the Apache License, Version 2.0 (the
|
|
//"License"); you may not use this file except in compliance
|
|
//with the License. You may obtain a copy of the License at
|
|
//
|
|
//http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
//Unless required by applicable law or agreed to in writing,
|
|
//software distributed under the License is distributed on an
|
|
//"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
//KIND, either express or implied. See the License for the
|
|
//specific language governing permissions and limitations
|
|
//under the License.
|
|
package com.cloud.hypervisor.vmware.mo;
|
|
|
|
import java.util.List;
|
|
|
|
import org.apache.log4j.Logger;
|
|
|
|
import com.vmware.vim25.KeyAnyValue;
|
|
import com.vmware.vim25.KeyValue;
|
|
import com.vmware.vim25.LicenseAssignmentManagerLicenseAssignment;
|
|
import com.vmware.vim25.LicenseManagerLicenseInfo;
|
|
import com.vmware.vim25.ManagedObjectReference;
|
|
|
|
import com.cloud.hypervisor.vmware.util.VmwareContext;
|
|
|
|
public class LicenseAssignmentManagerMO extends BaseMO {
|
|
|
|
private static final Logger s_logger = Logger.getLogger(LicenseAssignmentManagerMO.class);
|
|
private static final String LICENSE_INFO_PRODUCT_VERSION = "ProductVersion";
|
|
private static final String LICENSE_INFO_PRODUCT_NAME = "ProductName";
|
|
private static final String LICENSE_INFO_NAME = "Name";
|
|
private static final String LICENSE_INFO_FEATURE = "feature";
|
|
|
|
public LicenseAssignmentManagerMO(VmwareContext context, ManagedObjectReference mor) {
|
|
super(context, mor);
|
|
}
|
|
|
|
public LicenseAssignmentManagerMO(VmwareContext context, String morType, String morValue) {
|
|
super(context, morType, morValue);
|
|
}
|
|
|
|
public LicenseAssignmentManagerLicenseAssignment getAssignedLicenseToHost(ManagedObjectReference hostMor) throws Exception {
|
|
List<LicenseAssignmentManagerLicenseAssignment> licenses = _context.getVimClient().getService().queryAssignedLicenses(_mor, hostMor.getValue());
|
|
return licenses.get(0);
|
|
}
|
|
|
|
public boolean isFeatureSupported(String featureKey, ManagedObjectReference hostMor) throws Exception {
|
|
boolean featureSupported = false;
|
|
|
|
// Retrieve host license properties
|
|
List<KeyAnyValue> props = getHostLicenseProperties(hostMor);
|
|
|
|
// Check host license properties to see if specified feature is supported by the license.
|
|
for (KeyAnyValue prop : props) {
|
|
String key = prop.getKey();
|
|
if (key.equalsIgnoreCase(LICENSE_INFO_FEATURE)) {
|
|
KeyValue propValue = (KeyValue)prop.getValue();
|
|
if (propValue.getKey().equalsIgnoreCase(featureKey)) {
|
|
featureSupported = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
return featureSupported;
|
|
}
|
|
|
|
public LicenseManagerLicenseInfo getHostLicenseInfo(ManagedObjectReference hostMor) throws Exception {
|
|
// Retrieve license assigned to specified host
|
|
LicenseAssignmentManagerLicenseAssignment license = getAssignedLicenseToHost(hostMor);
|
|
return license.getAssignedLicense();
|
|
}
|
|
|
|
public List<KeyAnyValue> getHostLicenseProperties(ManagedObjectReference hostMor) throws Exception {
|
|
return getHostLicenseInfo(hostMor).getProperties();
|
|
}
|
|
|
|
public String getHostLicenseName(ManagedObjectReference hostMor) throws Exception {
|
|
return getHostLicenseInfo(hostMor).getName();
|
|
}
|
|
|
|
}
|