/* * 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 org.apache.cloudstack.storage.datastore.db; import java.util.Date; 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 javax.persistence.TableGenerator; import com.cloud.storage.DataStoreRole; import com.cloud.storage.ImageStore; import com.cloud.storage.ScopeType; import com.cloud.utils.UriUtils; import com.cloud.utils.db.GenericDao; @Entity @Table(name = "image_store") public class ImageStoreVO implements ImageStore { @Id @TableGenerator(name = "image_store_sq", table = "sequence", pkColumnName = "name", valueColumnName = "value", pkColumnValue = "image_store_seq", allocationSize = 1) @Column(name = "id", nullable = false) private long id; @Column(name = "name", nullable = false) private String name; @Column(name = "uuid", nullable = false) private String uuid; @Column(name = "protocol", nullable = false) private String protocol; @Column(name = "url", nullable = false, length = 2048) private String url; @Column(name = "image_provider_name", nullable = false) private String providerName; @Column(name = "data_center_id") private Long dcId; @Column(name = "scope") @Enumerated(value = EnumType.STRING) private ScopeType scope; @Column(name = GenericDao.CREATED_COLUMN) private Date created; @Column(name = GenericDao.REMOVED_COLUMN) private Date removed; @Column(name = "role") @Enumerated(value = EnumType.STRING) private DataStoreRole role; @Column(name = "parent") private String parent; @Column(name = "total_size") private Long totalSize; @Column(name = "used_bytes") private Long usedBytes; public DataStoreRole getRole() { return role; } public void setRole(DataStoreRole role) { this.role = role; } @Override public long getId() { return this.id; } @Override public String getName() { return this.name; } @Override public String getProviderName() { return this.providerName; } public void setName(String name) { this.name = name; } public void setProviderName(String provider) { this.providerName = provider; } public void setProtocol(String protocol) { this.protocol = protocol; } @Override public String getProtocol() { return this.protocol; } public void setDataCenterId(Long dcId) { this.dcId = dcId; } @Override public Long getDataCenterId() { return this.dcId; } public ScopeType getScope() { return this.scope; } public void setScope(ScopeType scope) { this.scope = scope; } public void setUuid(String uuid) { this.uuid = uuid; } @Override public String getUuid() { return this.uuid; } public String getUrl() { String updatedUrl = url; if ("cifs".equalsIgnoreCase(this.protocol)) { updatedUrl = UriUtils.getUpdateUri(updatedUrl, false); } return updatedUrl; } public void setUrl(String url) { this.url = url; } public Date getCreated() { return created; } public void setCreated(Date created) { this.created = created; } public Date getRemoved() { return removed; } public void setRemoved(Date removed) { this.removed = removed; } public String getParent() { return parent; } public void setParent(String parent) { this.parent = parent; } public Long getTotalSize() { return totalSize; } public void setTotalSize(Long totalSize) { this.totalSize = totalSize; } public Long getUsedBytes() { return usedBytes; } public void setUsedBytes(Long usedBytes) { this.usedBytes = usedBytes; } }