/* Copyright (c) 2015 EMC Corporation * All Rights Reserved * */ package com.emc.storageos.api.service.impl.resource.cinder; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import javax.ws.rs.GET; import javax.ws.rs.HeaderParam; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.xml.bind.annotation.XmlElement; import com.emc.storageos.cinder.model.Version; import com.emc.storageos.security.authorization.ACL; import com.emc.storageos.security.authorization.CheckPermission; import com.emc.storageos.security.authorization.DefaultPermissions; import com.emc.storageos.security.authorization.Role; @Path("/v2") @DefaultPermissions(readRoles = { Role.SYSTEM_MONITOR, Role.TENANT_ADMIN }, readAcls = { ACL.OWN, ACL.ALL }, writeRoles = { Role.TENANT_ADMIN }, writeAcls = { ACL.OWN, ACL.ALL }) @SuppressWarnings({ "unchecked", "rawtypes" }) public class ExtensionService { public class Versions { private List<Version> versions; @XmlElement(name = "versions") public List<Version> getVersions() { if (versions == null) { versions = new ArrayList<Version>(); } return versions; } } /** * Get the current API version * * * @prereq none * * * @brief Show version * @return Version */ @GET @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) @CheckPermission(roles = { Role.SYSTEM_MONITOR, Role.TENANT_ADMIN }, acls = { ACL.ANY }) public Version getVersion(@HeaderParam("X-Cinder-V1-Call") String isV1Call) { Version v = new Version(); v.status = "CURRENT"; if (isV1Call != null) { v.id = "v1.0"; v.updated = VolumeService.date(Calendar.getInstance().getTimeInMillis()); } else{ v.id = "v2.0"; v.updated = VolumeService.date(Calendar.getInstance().getTimeInMillis()); } return v; } }