Package com.emc.vipr.client.core

Source Code of com.emc.vipr.client.core.StorageTiers

package com.emc.vipr.client.core;

import static com.emc.vipr.client.core.util.ResourceUtils.defaultList;

import java.net.URI;
import java.util.List;

import com.emc.storageos.model.BulkIdParam;
import com.emc.storageos.model.NamedRelatedResourceRep;
import com.emc.storageos.model.block.tier.StorageTierBulkRep;
import com.emc.storageos.model.block.tier.StorageTierList;
import com.emc.storageos.model.block.tier.StorageTierRestRep;
import com.emc.vipr.client.ViPRCoreClient;
import com.emc.vipr.client.core.filters.ResourceFilter;
import com.emc.vipr.client.core.impl.PathConstants;
import com.emc.vipr.client.impl.RestClient;
import com.emc.vipr.client.core.util.ResourceUtils;

/**
* Storage Tiers resources.
* <p>
* Base URL: <tt>/vdc/storage-tiers</tt>
*/
public class StorageTiers extends AbstractBulkResources<StorageTierRestRep> implements
        TopLevelResources<StorageTierRestRep> {
    public StorageTiers(ViPRCoreClient parent, RestClient client) {
        super(parent, client, StorageTierRestRep.class, PathConstants.STORAGE_TIER_URL);
    }

    @Override
    public StorageTiers withInactive(boolean inactive) {
        return (StorageTiers) super.withInactive(inactive);
    }

    @Override
    public StorageTiers withInternal(boolean internal) {
        return (StorageTiers) super.withInternal(internal);
    }

    @Override
    protected List<StorageTierRestRep> getBulkResources(BulkIdParam input) {
        StorageTierBulkRep response = client.post(StorageTierBulkRep.class, input, getBulkUrl());
        return defaultList(response.getStorageTiers());
    }

    /**
     * Lists all storage tiers.
     * <p>
     * API Call: <tt>GET /vdc/storage-tiers</tt>
     *
     * @return the list of storage tier references.
     */
    @Override
    public List<NamedRelatedResourceRep> list() {
        StorageTierList response = client.get(StorageTierList.class, baseUrl);
        return ResourceUtils.defaultList(response.getStorageTiers());
    }

    /**
     * Gets the list of all storage tiers. This is a convenience method for: <tt>getByRefs(list())</tt>.
     *
     * @return the list of all storage tiers.
     */
    @Override
    public List<StorageTierRestRep> getAll() {
        return getAll(null);
    }

    /**
     * Gets the list of all storage tiers, optionally filtering the results. This is a convenience method for:
     * <tt>getByRefs(list(), filter)</tt>.
     *
     * @param filter
     *        the resource filter to apply to the results as they are returned (optional).
     * @return the list of all storage tiers.
     */
    @Override
    public List<StorageTierRestRep> getAll(ResourceFilter<StorageTierRestRep> filter) {
        List<NamedRelatedResourceRep> refs = list();
        return getByRefs(refs, filter);
    }

    /**
     * Lists the storage tiers for the given storage pool by ID.
     * <p>
     * API Call: <tt>GET /vdc/storage-pools/{storagePoolId}/storage-tiers</tt>
     *
     * @param storagePoolId
     *        the ID of the storage pool.
     * @return the list of storage tier references.
     */
    public List<NamedRelatedResourceRep> listByStoragePool(URI storagePoolId) {
        StorageTierList response = client.get(StorageTierList.class, PathConstants.STORAGE_TIER_BY_STORAGE_POOL,
                storagePoolId);
        return defaultList(response.getStorageTiers());
    }

    /**
     * Gets the list of storage pools for the given storage pool by ID. This is a convenience method for:
     * <tt>getByRefs(listByStoragePool(id))</tt>.
     *
     * @param id
     *        the ID of the storage pool.
     * @return the list of storage tiers.
     */
    public List<StorageTierRestRep> getByStoragePool(URI id) {
        List<NamedRelatedResourceRep> refs = listByStoragePool(id);
        return getByRefs(refs);
    }

    /**
     * Lists the storage pools for the given auto tier policy by ID.
     * <p>
     * API Call: <tt>GET /vdc/auto-tier-policy/{autoTierPolicyId}/storage-tiers</tt>
     *
     * @param autoTierPolicyId
     *        the ID of the auto tier policy.
     * @return the list of storage pool references.
     */
    public List<NamedRelatedResourceRep> listByAutoTieringPolicy(URI autoTierPolicyId) {
        StorageTierList response = client.get(StorageTierList.class,
                PathConstants.STORAGE_TIER_BY_AUTO_TIERING_POLICY_URL, autoTierPolicyId);
        return defaultList(response.getStorageTiers());
    }

    /**
     * Gets the list of storage pools for the given auto tier policy by ID. This is a convenience method for:
     * <tt>getByRefs(listByAutoTieringPolicy(id))</tt>
     *
     * @param id
     *        the ID of the auto tier policy.
     * @return the list of storage tiers.
     */
    public List<StorageTierRestRep> getByAutoTieringPolicy(URI id) {
        List<NamedRelatedResourceRep> refs = listByAutoTieringPolicy(id);
        return getByRefs(refs);
    }
}
TOP

Related Classes of com.emc.vipr.client.core.StorageTiers

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.