package org.ovirt.engine.core.searchbackend;
import java.math.BigDecimal;
import java.util.UUID;
import org.ovirt.engine.core.common.businessentities.ArchitectureType;
import org.ovirt.engine.core.common.businessentities.ExternalStatus;
import org.ovirt.engine.core.common.businessentities.VDSNiceType;
import org.ovirt.engine.core.common.businessentities.VDSStatus;
public class VdsConditionFieldAutoCompleter extends BaseConditionFieldAutoCompleter {
public static final String NAME = "NAME";
public static final String ADDRESS = "ADDRESS";
public static final String CLUSTER = "CLUSTER";
public static final String DATACENTER = "DATACENTER";
public static final String STATUS = "STATUS";
public static final String EXTERNAL_STATUS = "EXTERNAL_STATUS";
public static final String ACTIVE_VMS = "ACTIVE_VMS";
public static final String MEM_USAGE = "MEM_USAGE";
public static final String CPU_USAGE = "CPU_USAGE";
public static final String NETWORK_USAGE = "NETWORK_USAGE";
public static final String UPDATE_AVAILABLE = "UPDATE_AVAILABLE";
public static final String COMMENT = "COMMENT";
public static final String LOAD = "LOAD";
public static final String VERSION = "VERSION";
public static final String CPUS = "CPUS";
public static final String MEMORY = "MEMORY";
public static final String CPU_SPEED = "CPU_SPEED";
public static final String CPU_MODEL = "CPU_MODEL";
public static final String MIGRATING_VMS = "MIGRATING_VMS";
public static final String COMMITTED_MEM = "COMMITTED_MEM";
public static final String TAG = "TAG";
public static final String TYPE = "TYPE";
public static final String ARCHITECTURE = "ARCHITECTURE";
public static final String HA_SCORE = "HA_SCORE";
public static final String SPM_ID = "SPM_ID";
public VdsConditionFieldAutoCompleter() {
super();
verbs.add(NAME);
verbs.add(COMMENT);
verbs.add(STATUS);
verbs.add(EXTERNAL_STATUS);
verbs.add(CLUSTER);
verbs.add(ADDRESS);
verbs.add(CPU_USAGE);
verbs.add(MEM_USAGE);
verbs.add(NETWORK_USAGE);
verbs.add(LOAD);
verbs.add(VERSION);
verbs.add(CPUS);
verbs.add(MEMORY);
verbs.add(CPU_SPEED);
verbs.add(CPU_MODEL);
verbs.add(ACTIVE_VMS);
verbs.add(MIGRATING_VMS);
verbs.add(COMMITTED_MEM);
verbs.add(TAG);
verbs.add(TYPE);
verbs.add(DATACENTER);
verbs.add(ARCHITECTURE);
verbs.add(UPDATE_AVAILABLE);
verbs.add(HA_SCORE);
verbs.add(SPM_ID);
buildCompletions();
verbs.add("ID");
// Building the types dict
getTypeDictionary().put(NAME, String.class);
getTypeDictionary().put(COMMENT, String.class);
getTypeDictionary().put(STATUS, VDSStatus.class);
getTypeDictionary().put(EXTERNAL_STATUS, ExternalStatus.class);
getTypeDictionary().put(CLUSTER, String.class);
getTypeDictionary().put(ADDRESS, String.class);
getTypeDictionary().put(CPU_USAGE, Integer.class);
getTypeDictionary().put(MEM_USAGE, Integer.class);
getTypeDictionary().put(NETWORK_USAGE, Integer.class);
getTypeDictionary().put(LOAD, BigDecimal.class);
getTypeDictionary().put(VERSION, String.class);
getTypeDictionary().put(CPUS, Integer.class);
getTypeDictionary().put(MEMORY, Integer.class);
getTypeDictionary().put(CPU_SPEED, BigDecimal.class);
getTypeDictionary().put(CPU_MODEL, String.class);
getTypeDictionary().put(ACTIVE_VMS, Integer.class);
getTypeDictionary().put(MIGRATING_VMS, Integer.class);
getTypeDictionary().put(COMMITTED_MEM, Integer.class);
getTypeDictionary().put(TAG, String.class);
getTypeDictionary().put(TYPE, VDSNiceType.class);
getTypeDictionary().put(DATACENTER, String.class);
getTypeDictionary().put("ID", UUID.class);
getTypeDictionary().put(ARCHITECTURE, ArchitectureType.class);
getTypeDictionary().put(UPDATE_AVAILABLE, Boolean.class);
getTypeDictionary().put(HA_SCORE, Integer.class);
getTypeDictionary().put(SPM_ID, Integer.class);
// building the ColumnName Dict
columnNameDict.put(NAME, "vds_name");
columnNameDict.put(COMMENT, "free_text_comment");
columnNameDict.put(STATUS, "status");
columnNameDict.put(EXTERNAL_STATUS, "external_status");
columnNameDict.put(CLUSTER, "cluster_name");
columnNameDict.put(ADDRESS, "host_name");
columnNameDict.put(CPU_USAGE, "usage_cpu_percent");
columnNameDict.put(MEM_USAGE, "usage_mem_percent");
columnNameDict.put(NETWORK_USAGE, "usage_network_percent");
columnNameDict.put(LOAD, "cpu_load");
columnNameDict.put(VERSION, "software_version");
columnNameDict.put(CPUS, "cpu_cores");
columnNameDict.put(MEMORY, "physical_mem_mb");
columnNameDict.put(CPU_SPEED, "cpu_speed_mh");
columnNameDict.put(CPU_MODEL, "cpu_model");
columnNameDict.put(ACTIVE_VMS, "vm_active");
columnNameDict.put(MIGRATING_VMS, "vm_migrating");
columnNameDict.put(COMMITTED_MEM, "mem_commited");
columnNameDict.put(TAG, "tag_name");
columnNameDict.put(TYPE, "vds_type");
columnNameDict.put(DATACENTER, "storage_pool_name");
columnNameDict.put("ID", "vds_id");
columnNameDict.put(ARCHITECTURE, "architecture");
columnNameDict.put(UPDATE_AVAILABLE, "is_update_available");
columnNameDict.put(HA_SCORE, "ha_score");
columnNameDict.put(SPM_ID, "vds_spm_id");
// Building the validation dict
buildBasicValidationTable();
}
@Override
public IAutoCompleter getFieldRelationshipAutoCompleter(String fieldName) {
if (MEMORY.equals(fieldName) || CPUS.equals(fieldName)
|| CPU_USAGE.equals(fieldName) || MEM_USAGE.equals(fieldName)
|| LOAD.equals(fieldName) || CPU_SPEED.equals(fieldName)
|| ACTIVE_VMS.equals(fieldName) || NETWORK_USAGE.equals(fieldName)
|| COMMITTED_MEM.equals(fieldName)) {
return NumericConditionRelationAutoCompleter.INSTANCE;
}
else {
return StringConditionRelationAutoCompleter.INSTANCE;
}
}
@Override
public IConditionValueAutoCompleter getFieldValueAutoCompleter(String fieldName) {
IConditionValueAutoCompleter retval = null;
if (STATUS.equals(fieldName)) {
retval = new EnumValueAutoCompleter(VDSStatus.class);
}
else if (EXTERNAL_STATUS.equals(fieldName)) {
retval = new EnumValueAutoCompleter(ExternalStatus.class);
}
else if (TYPE.equals(fieldName)) {
retval = new EnumValueAutoCompleter(VDSNiceType.class);
} else if (ARCHITECTURE.equals(fieldName)) {
retval = new EnumValueAutoCompleter(ArchitectureType.class);
}
else if (UPDATE_AVAILABLE.equals(fieldName)) {
retval = new BitValueAutoCompleter();
}
return retval;
}
}