| // 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.api.query.vo; | |
| import java.util.Arrays; | |
| import java.util.Date; | |
| import javax.persistence.Column; | |
| import javax.persistence.Convert; | |
| import javax.persistence.Entity; | |
| import javax.persistence.EnumType; | |
| import javax.persistence.Enumerated; | |
| import javax.persistence.Id; | |
| import javax.persistence.Table; | |
| import javax.persistence.Temporal; | |
| import javax.persistence.TemporalType; | |
| import com.cloud.cpu.CPU; | |
| import com.cloud.host.Host.Type; | |
| import com.cloud.host.Status; | |
| import com.cloud.hypervisor.Hypervisor.HypervisorType; | |
| import com.cloud.org.Cluster; | |
| import com.cloud.resource.ResourceState; | |
| import com.cloud.utils.db.GenericDao; | |
| import org.apache.cloudstack.api.Identity; | |
| import org.apache.cloudstack.api.InternalIdentity; | |
| import org.apache.cloudstack.ha.HAConfig; | |
| import org.apache.cloudstack.outofbandmanagement.OutOfBandManagement; | |
| import org.apache.cloudstack.util.CPUArchConverter; | |
| import org.apache.cloudstack.util.HypervisorTypeConverter; | |
| import org.apache.commons.lang3.StringUtils; | |
| /** | |
| * Host DB view. | |
| * | |
| */ | |
| @Entity | |
| @Table(name = "host_view") | |
| public class HostJoinVO extends BaseViewVO implements InternalIdentity, Identity { | |
| @Id | |
| @Column(name = "id") | |
| private long id; | |
| @Column(name = "uuid") | |
| private String uuid; | |
| @Column(name = "name") | |
| private String name; | |
| @Column(name = "status") | |
| private Status status = null; | |
| @Column(name = "type") | |
| @Enumerated(value = EnumType.STRING) | |
| private Type type; | |
| @Column(name = "private_ip_address") | |
| private String privateIpAddress; | |
| @Column(name = "disconnected") | |
| @Temporal(value = TemporalType.TIMESTAMP) | |
| private Date disconnectedOn; | |
| @Column(name = "version") | |
| private String version; | |
| @Column(name = "hypervisor_type") | |
| @Convert(converter = HypervisorTypeConverter.class) | |
| private HypervisorType hypervisorType; | |
| @Column(name = "hypervisor_version") | |
| private String hypervisorVersion; | |
| @Column(name = "capabilities") | |
| private String caps; | |
| @Column(name = "last_ping") | |
| private long lastPinged; | |
| @Column(name = GenericDao.CREATED_COLUMN) | |
| private Date created; | |
| @Column(name = GenericDao.REMOVED_COLUMN) | |
| private Date removed; | |
| @Column(name = "oobm_enabled") | |
| private boolean outOfBandManagementEnabled = false; | |
| @Column(name = "oobm_power_state") | |
| @Enumerated(value = EnumType.STRING) | |
| private OutOfBandManagement.PowerState outOfBandManagementPowerState; | |
| @Column(name = "ha_enabled") | |
| private boolean hostHAEnabled = false; | |
| @Column(name = "ha_state") | |
| private HAConfig.HAState hostHAState; | |
| @Column(name = "ha_provider") | |
| private String hostHAProvider; | |
| @Column(name = "resource_state") | |
| @Enumerated(value = EnumType.STRING) | |
| private ResourceState resourceState; | |
| @Column(name = "mgmt_server_id") | |
| private Long managementServerId; | |
| @Column(name = "cpu_sockets") | |
| private Integer cpuSockets; | |
| @Column(name = "cpus") | |
| private Integer cpus; | |
| @Column(name = "speed") | |
| private Long speed; | |
| @Column(name = "ram") | |
| private long totalMemory; | |
| @Column(name = "cluster_id") | |
| private long clusterId; | |
| @Column(name = "cluster_uuid") | |
| private String clusterUuid; | |
| @Column(name = "cluster_name") | |
| private String clusterName; | |
| @Column(name = "cluster_type") | |
| @Enumerated(value = EnumType.STRING) | |
| Cluster.ClusterType clusterType; | |
| @Column(name = "data_center_id") | |
| private long zoneId; | |
| @Column(name = "data_center_uuid") | |
| private String zoneUuid; | |
| @Column(name = "data_center_name") | |
| private String zoneName; | |
| @Column(name = "pod_id") | |
| private long podId; | |
| @Column(name = "pod_uuid") | |
| private String podUuid; | |
| @Column(name = "pod_name") | |
| private String podName; | |
| @Column(name = "guest_os_category_id") | |
| private long osCategoryId; | |
| @Column(name = "guest_os_category_uuid") | |
| private String osCategoryUuid; | |
| @Column(name = "guest_os_category_name") | |
| private String osCategoryName; | |
| @Column(name = "guest_os_rule") | |
| private String guestOsRule; | |
| @Column(name = "tag") | |
| private String tag; | |
| @Column(name = "explicit_tag") | |
| private String explicitTag; | |
| @Column(name = "implicit_tag") | |
| private String implicitTag; | |
| @Column(name = "is_tag_a_rule") | |
| private Boolean isTagARule; | |
| @Column(name = "storage_access_groups") | |
| private String storageAccessGroups; | |
| @Column(name = "cluster_storage_access_groups") | |
| private String clusterStorageAccessGroups; | |
| @Column(name = "pod_storage_access_groups") | |
| private String podStorageAccessGroups; | |
| @Column(name = "zone_storage_access_groups") | |
| private String zoneStorageAccessGroups; | |
| @Column(name = "memory_used_capacity") | |
| private long memUsedCapacity; | |
| @Column(name = "memory_reserved_capacity") | |
| private long memReservedCapacity; | |
| @Column(name = "cpu_used_capacity") | |
| private long cpuUsedCapacity; | |
| @Column(name = "cpu_reserved_capacity") | |
| private long cpuReservedCapacity; | |
| @Column(name = "job_id") | |
| private Long jobId; | |
| @Column(name = "job_uuid") | |
| private String jobUuid; | |
| @Column(name = "job_status") | |
| private int jobStatus; | |
| @Column(name = "annotation") | |
| private String annotation; | |
| @Column(name = "last_annotated") | |
| private Date lastAnnotated; | |
| @Column(name = "username") | |
| private String username; | |
| @Column(name = "arch") | |
| @Convert(converter = CPUArchConverter.class) | |
| private CPU.CPUArch arch; | |
| @Override | |
| public long getId() { | |
| return this.id; | |
| } | |
| @Override | |
| public String getUuid() { | |
| return uuid; | |
| } | |
| public String getVersion() { | |
| return version; | |
| } | |
| public long getZoneId() { | |
| return zoneId; | |
| } | |
| public String getZoneUuid() { | |
| return zoneUuid; | |
| } | |
| public String getZoneName() { | |
| return zoneName; | |
| } | |
| public String getName() { | |
| return name; | |
| } | |
| public Status getStatus() { | |
| return status; | |
| } | |
| public Type getType() { | |
| return type; | |
| } | |
| public String getPrivateIpAddress() { | |
| return privateIpAddress; | |
| } | |
| public Date getDisconnectedOn() { | |
| return disconnectedOn; | |
| } | |
| public HypervisorType getHypervisorType() { | |
| return hypervisorType; | |
| } | |
| public String getHypervisorVersion() { | |
| return hypervisorVersion; | |
| } | |
| public String getCapabilities() { | |
| return caps; | |
| } | |
| public long getLastPinged() { | |
| return lastPinged; | |
| } | |
| public Date getCreated() { | |
| return created; | |
| } | |
| public Date getRemoved() { | |
| return removed; | |
| } | |
| public boolean isOutOfBandManagementEnabled() { | |
| return outOfBandManagementEnabled; | |
| } | |
| public OutOfBandManagement.PowerState getOutOfBandManagementPowerState() { | |
| return outOfBandManagementPowerState; | |
| } | |
| public boolean isHostHAEnabled() { | |
| return hostHAEnabled; | |
| } | |
| public HAConfig.HAState getHostHAState() { | |
| return hostHAState; | |
| } | |
| public String getHostHAProvider() { | |
| return hostHAProvider; | |
| } | |
| public ResourceState getResourceState() { | |
| return resourceState; | |
| } | |
| public Long getManagementServerId() { | |
| return managementServerId; | |
| } | |
| public Integer getCpuSockets() { | |
| return cpuSockets; | |
| } | |
| public Integer getCpus() { | |
| return cpus; | |
| } | |
| public Long getSpeed() { | |
| return speed; | |
| } | |
| public long getTotalMemory() { | |
| return totalMemory; | |
| } | |
| public long getClusterId() { | |
| return clusterId; | |
| } | |
| public String getClusterUuid() { | |
| return clusterUuid; | |
| } | |
| public String getClusterName() { | |
| return clusterName; | |
| } | |
| public Cluster.ClusterType getClusterType() { | |
| return clusterType; | |
| } | |
| public long getOsCategoryId() { | |
| return osCategoryId; | |
| } | |
| public String getOsCategoryUuid() { | |
| return osCategoryUuid; | |
| } | |
| public String getOsCategoryName() { | |
| return osCategoryName; | |
| } | |
| public String getGuestOsRule() { | |
| return guestOsRule; | |
| } | |
| public Long getJobId() { | |
| return jobId; | |
| } | |
| public String getJobUuid() { | |
| return jobUuid; | |
| } | |
| public int getJobStatus() { | |
| return jobStatus; | |
| } | |
| public long getPodId() { | |
| return podId; | |
| } | |
| public String getPodUuid() { | |
| return podUuid; | |
| } | |
| public String getPodName() { | |
| return podName; | |
| } | |
| public long getMemUsedCapacity() { | |
| return memUsedCapacity; | |
| } | |
| public long getMemReservedCapacity() { | |
| return memReservedCapacity; | |
| } | |
| public long getCpuUsedCapacity() { | |
| return cpuUsedCapacity; | |
| } | |
| public long getCpuReservedCapacity() { | |
| return cpuReservedCapacity; | |
| } | |
| public String getTag() { | |
| return tag; | |
| } | |
| public String getExplicitTag() { | |
| return explicitTag; | |
| } | |
| public String getImplicitTag() { | |
| return implicitTag; | |
| } | |
| public Boolean getIsTagARule() { | |
| return isTagARule; | |
| } | |
| public String getStorageAccessGroups() { | |
| return storageAccessGroups; | |
| } | |
| public String getClusterStorageAccessGroups() { | |
| return clusterStorageAccessGroups; | |
| } | |
| public String getPodStorageAccessGroups() { | |
| return podStorageAccessGroups; | |
| } | |
| public String getZoneStorageAccessGroups() { | |
| return zoneStorageAccessGroups; | |
| } | |
| public String getAnnotation() { | |
| return annotation; | |
| } | |
| public Date getLastAnnotated() { | |
| return lastAnnotated; | |
| } | |
| public String getUsername() { | |
| return username; | |
| } | |
| public boolean isAnnotated() { | |
| return StringUtils.isNotBlank(annotation); | |
| } | |
| public boolean isInMaintenanceStates() { | |
| return Arrays.asList( | |
| ResourceState.Maintenance, ResourceState.ErrorInMaintenance, ResourceState.PrepareForMaintenance) | |
| .contains(getResourceState()); | |
| } | |
| public CPU.CPUArch getArch() { | |
| return arch; | |
| } | |
| } |