All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.openstack4j.openstack.trove.domain.TroveInstance Maven / Gradle / Ivy

package org.openstack4j.openstack.trove.domain;

import java.util.Date;
import java.util.List;

import org.openstack4j.model.trove.Flavor;
import org.openstack4j.model.trove.Instance;
import org.openstack4j.openstack.common.ListResult;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonRootName;

/**
 * Model implementation for Database instance
 *
 * @author Shital Patil
 */
@JsonRootName("instance")
public class TroveInstance implements Instance {

    private static final long serialVersionUID = 1L;

    private Date created;

    private TroveInstanceFlavor flavor;

    private String hostname;

    private List ip;

    private String id;

    private String name;

    private String status;

    private Date updated;

    private Volume volume;

    private InstanceDatastore datastore;

    public class Volume {

        private String type;

        private Integer size;

        /**
         *
         * @return
         *         The type
         */

        public String getType() {
            return type;
        }

        /**
         *
         * @return
         *         The size
         */

        public int getSize() {
            return size;
        }

        @Override
        public String toString() {
            final StringBuilder sb = new StringBuilder("Volume{");
            sb.append("type='").append(type).append('\'');
            sb.append(", size=").append(size);
            sb.append('}');
            return sb.toString();
        }
    }

    public class InstanceDatastore {

        private String type;

        private String version;

        public String getType() { return type; }

        public String getVersion() { return version; }

        @Override
        public String toString() {
            final StringBuilder sb = new StringBuilder("InstanceDatastore{");
            sb.append("type='").append(type).append('\'');
            sb.append(", version='").append(version).append('\'');
            sb.append('}');
            return sb.toString();
        }
    }

    @Override
    public int getVolumeSize() {
        return getVolume().getSize();
    }

    @Override
    public String getVolumeType() {
        return getVolume().getType();
    }

    @Override
    public Flavor getFlavor() {
        return flavor;
    }

    @Override
    public String getName() {
        return name;
    }

    @Override
    public Date getCreated() {
        return created;
    }

    @Override
    public String getHostname() {
        return hostname;
    }

    @Override
    public List getIp() { return ip; }

    @Override
    public String getId() {
        return id;
    }

    @Override
    public String getStatus() {
        return status;
    }

    @Override
    public Date getUpdated() {
        return updated;
    }

    public Volume getVolume() {
        return volume;
    }

    public InstanceDatastore getDatastore() { return datastore; }

    @Override
    public String getDatastoreType() {
        return getDatastore() != null
                ? getDatastore().getType()
                : null;
    }

    @Override
    public String getDatastoreVersion() {
        return getDatastore() != null
                ? getDatastore().getVersion()
                : null;
    }

    public static class DBInstances extends ListResult {

        private static final long serialVersionUID = 1L;

        @JsonProperty("instances")
        private List instances;

        @Override
        protected List value() {
            return instances;
        }
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("TroveInstance{");
        sb.append("created=").append(created);
        sb.append(", flavor=").append(flavor);
        sb.append(", hostname='").append(hostname).append('\'');
        sb.append(", ip='").append(ip).append('\'');
        sb.append(", id='").append(id).append('\'');
        sb.append(", name='").append(name).append('\'');
        sb.append(", status='").append(status).append('\'');
        sb.append(", updated=").append(updated);
        sb.append(", volume=").append(volume);
        sb.append(", datastore=").append(datastore);
        sb.append('}');
        return sb.toString();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy