package com.bocloud.ims.interfaces.resource.kubernetes;

import java.util.List;
import com.bocloud.cmp.model.kubernetes.ContainerModel;
import com.bocloud.common.model.BocloudResult;
import com.bocloud.common.model.Pager;
import com.bocloud.common.model.RequestContext;
import com.bocloud.ims.entity.resource.CloudVendor;
import com.bocloud.ims.entity.resource.kubernetes.KubePod;

/**
 * 
 * @ClassName: KubePodService.java
 * @Description:
 *
 * @author: ymh
 * @date: 2021年4月21日 下午2:11:47
 */
public interface KubePodService {

	/**
	 * 列表
	 * 
	 * @param page   当前页
	 * @param rows   页码
	 * @param params 查询参数
	 * @param sorter 拍寻参数
	 * @param user
	 * @return 满足条件的列表
	 */
	public BocloudResult list(Pager pager, RequestContext context);

	/**
	 * 添加
	 * 
	 * @param pod
	 * @param userId
	 * @return
	 */
	public BocloudResult create(KubePod pod, RequestContext context);

	/**
	 * 更新
	 * 
	 * @param pod
	 * @param userId
	 * @return 操作结果
	 */
	public BocloudResult modify(KubePod pod, RequestContext context);

	/**
	 * 移除
	 * 
	 * @param id     ID
	 * @param userId 操作者ID
	 * @return 操作结果
	 */
	public BocloudResult remove(Long id, RequestContext context);

	/**
	 * 详细信息
	 * 
	 * @param id ID
	 * @return 详细信息
	 */
	public BocloudResult detail(Long id);

	/**
	 * 批量删除pod
	 * 
	 * @param params
	 * @param id
	 * @return
	 */
	public BocloudResult batchRemove(List<Long> ids, RequestContext context);

	/**
	 * 容器组申请
	 * 
	 * @param jsonString
	 * @param requestUser
	 * @return
	 */
	public BocloudResult apply(String params, RequestContext context);

	public void syncContainers(List<ContainerModel> kubeContainerModels, KubePod pod, CloudVendor vendor,
			RequestContext context) throws Exception;

	/**
	 * 查询pod日志
	 * 
	 * @param id
	 * @param user
	 * @return
	 */
	public BocloudResult logDetail(Long id, RequestContext context);

}
