package com.sohu.cache.stats.app; import com.sohu.cache.constant.DataFormatCheckResult; import com.sohu.cache.constant.HorizontalResult; import com.sohu.cache.entity.AppDesc; import com.sohu.cache.entity.AppUser; import com.sohu.cache.redis.ReshardProcess; import java.util.List; import java.util.concurrent.ConcurrentMap; /** * app相关发布操作 * Created by yijunzhang on 14-10-20. */ public interface AppDeployCenter { /** * 新建应用 * * @param appDesc * @param appUser * @param memSize */ public boolean createApp(AppDesc appDesc, AppUser appUser, String memSize); /** * 为应用分配资源 * * @param appAuditId * @param nodeInfoList <br/>格式=masterIp:空间:slaveIp * @param auditUser * @return */ public boolean allocateResourceApp(Long appAuditId, List<String> nodeInfoList, AppUser auditUser); /** * 为应用分配的资源格式检测 * @param appAuditId * @param appDeployText * @return */ public DataFormatCheckResult checkAppDeployDetail(Long appAuditId, String appDeployText); /** * 下线应用 * * @param appId * @return */ public boolean offLineApp(Long appId); /** * 修改应用下节点配置 * * @param appId * @param appAuditId * @param key * @param value * @return */ public boolean modifyAppConfig(Long appId, Long appAuditId, String key, String value); /** * 垂直扩展 * * @param appId * @param appAuditId * @param memory 单位MB * @return */ public boolean verticalExpansion(Long appId, Long appAuditId, int memory); /** * 检测水平扩容节点 * @param appAuditId * @param masterSizeSlave * @return */ public DataFormatCheckResult checkHorizontalNodes(Long appAuditId, String masterSizeSlave); /** * 检查水平扩容的格式 * @param appId * @param appAuditId * @param sourceId * @param targetId * @param startSlot * @param endSlot * @param migrateType * @return */ public HorizontalResult checkHorizontal(long appId, long appAuditId, long sourceId, long targetId, int startSlot, int endSlot, int migrateType); /** * 开始水平扩容 * @param appId * @param appAuditId * @param sourceId * @param targetId * @param startSlot * @param endSlot * @param migrateType * @return */ public HorizontalResult startHorizontal(long appId, long appAuditId, long sourceId, long targetId, int startSlot, int endSlot, int migrateType); /** * 添加cluster一个主(从)节点 * * @param appId * @param masterHost * @param slaveHost 从节点可为空 * @param memory * @return */ public boolean addHorizontalNodes(Long appId, String masterHost, String slaveHost, int memory); /** * 获取当前水平扩展进度列表 * * @return */ public ConcurrentMap<Long, ReshardProcess> getHorizontalProcess(); /** * 清理应用数据 * @param appId * @param appUser * @return */ public boolean cleanAppData(long appId, AppUser appUser); }