| // 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.vm; |
| |
| import javax.persistence.Column; |
| import javax.persistence.Entity; |
| import javax.persistence.EnumType; |
| import javax.persistence.Enumerated; |
| import javax.persistence.Id; |
| import javax.persistence.Table; |
| |
| import com.cloud.utils.time.InaccurateClock; |
| import com.cloud.vm.VirtualMachine.State; |
| |
| @Entity |
| @Table(name = "op_it_work") |
| public class ItWorkVO { |
| enum ResourceType { |
| Volume, Nic, Host |
| } |
| |
| enum Step { |
| Prepare, Starting, Started, Release, Done, Migrating, Reconfiguring |
| } |
| |
| @Id |
| @Column(name = "id") |
| String id; |
| |
| @Column(name = "created_at") |
| long createdAt; |
| |
| @Column(name = "mgmt_server_id") |
| long managementServerId; |
| |
| @Column(name = "type") |
| State type; |
| |
| @Column(name = "thread") |
| String threadName; |
| |
| @Column(name = "step") |
| Step step; |
| |
| @Column(name = "updated_at") |
| long updatedAt; |
| |
| @Column(name = "instance_id") |
| long instanceId; |
| |
| public long getInstanceId() { |
| return instanceId; |
| } |
| |
| @Column(name = "resource_id") |
| long resourceId; |
| |
| @Column(name = "resource_type") |
| ResourceType resourceType; |
| |
| @Column(name = "vm_type") |
| @Enumerated(value = EnumType.STRING) |
| VirtualMachine.Type vmType; |
| |
| public VirtualMachine.Type getVmType() { |
| return vmType; |
| } |
| |
| public long getResourceId() { |
| return resourceId; |
| } |
| |
| public void setResourceId(long resourceId) { |
| this.resourceId = resourceId; |
| } |
| |
| public ResourceType getResourceType() { |
| return resourceType; |
| } |
| |
| public void setResourceType(ResourceType resourceType) { |
| this.resourceType = resourceType; |
| } |
| |
| protected ItWorkVO() { |
| } |
| |
| protected ItWorkVO(String id, long managementServerId, State type, VirtualMachine.Type vmType, long instanceId) { |
| this.id = id; |
| this.managementServerId = managementServerId; |
| this.type = type; |
| this.threadName = Thread.currentThread().getName(); |
| this.step = Step.Prepare; |
| this.instanceId = instanceId; |
| this.resourceType = null; |
| this.createdAt = InaccurateClock.getTimeInSeconds(); |
| this.updatedAt = createdAt; |
| this.vmType = vmType; |
| } |
| |
| public String getId() { |
| return id; |
| } |
| |
| public Long getCreatedAt() { |
| return createdAt; |
| } |
| |
| public long getManagementServerId() { |
| return managementServerId; |
| } |
| |
| public void setManagementServerId(long managementServerId) { |
| this.managementServerId = managementServerId; |
| } |
| |
| public State getType() { |
| return type; |
| } |
| |
| public void setType(State type) { |
| this.type = type; |
| } |
| |
| public String getThreadName() { |
| return threadName; |
| } |
| |
| public Step getStep() { |
| return step; |
| } |
| |
| public void setStep(Step step) { |
| this.step = step; |
| } |
| |
| public long getUpdatedAt() { |
| return updatedAt; |
| } |
| |
| public void setUpdatedAt(long updatedAt) { |
| this.updatedAt = updatedAt; |
| } |
| |
| public long getSecondsTaskIsInactive() { |
| return InaccurateClock.getTimeInSeconds() - this.updatedAt; |
| } |
| |
| public long getSecondsTaskHasBeenCreated() { |
| return InaccurateClock.getTimeInSeconds() - this.createdAt; |
| } |
| |
| @Override |
| public String toString() { |
| return new StringBuilder("ItWork[").append(id) |
| .append("-") |
| .append(type.toString()) |
| .append("-") |
| .append(instanceId) |
| .append("-") |
| .append(step.toString()) |
| .append("]") |
| .toString(); |
| } |
| } |