package io.cattle.platform.core.constants;
import io.cattle.platform.core.model.Instance;
import io.cattle.platform.object.util.DataAccessor;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class InstanceConstants {
public static final String SYSTEM_CONTAINER_NETWORK_AGENT = "NetworkAgent";
public static final String SYSTEM_CONTAINER_LB_AGENT = "LoadBalancerAgent";
public static final String SYSTEM_CONTAINER_BALANCER_AGENT = "BalancerAgent";
public static final String SYSTEM_CONTAINER_CLUSTER_AGENT = "ClusterAgent";
public static final String TYPE = "instance";
public static final String TYPE_CONTAINER = "container";
public static final String FIELD_AGENT_INSTANCE = "agentInstance";
public static final String FIELD_COUNT = "count";
public static final String FIELD_CREDENTIAL_IDS = "credentialIds";
public static final String FIELD_ENVIRONMENT = "environment";
public static final String FIELD_IMAGE_UUID = "imageUuid";
public static final String FIELD_INSTANCE_LINKS = "instanceLinks";
public static final String FIELD_INSTANCE_TRIGGERED_STOP = "instanceTriggeredStop";
public static final String FIELD_NETWORK_IDS = "networkIds";
public static final String FIELD_PORTS = "ports";
public static final String FIELD_USER_PORTS = "userPorts";
public static final String FIELD_PRIMARY_IP_ADDRESS = "primaryIpAddress";
public static final String FIELD_PRIMARY_NETWORK_ID = "primaryNetworkId";
public static final String FIELD_PRIVILEGED = "privileged";
public static final String FIELD_REQUESTED_HOST_ID = "requestedHostId";
public static final String FIELD_REQUESTED_IP_ADDRESS = "requestedIpAddress";
public static final String FIELD_START_ON_CREATE = "startOnCreate";
public static final String FIELD_VCPU = "vcpu";
public static final String FIELD_LABELS = "labels";
public static final String FIELD_HEALTH_CHECK = "healthCheck";
public static final String FIELD_EXPOSE = "expose";
public static final String FIELD_HOSTNAME = "hostname";
public static final String FIELD_CREATE_INDEX = "createIndex";
public static final String FIELD_DEPLOYMENT_UNIT_UUID = "deploymentUnitUuid";
public static final String FIELD_DATA_VOLUME_MOUNTS = "dataVolumeMounts";
public static final String FIELD_DATA_VOLUMES = "dataVolumes";
public static final String FIELD_VOLUME_DRIVER = "volumeDriver";
public static final String FIELD_SYSTEM_CONTAINER = "systemContainer";
public static final String FIELD_DISKS = "disks";
public static final String FIELD_HEALTH_UPDATED = "healthUpdated";
public static final String FIELD_ALLOCATED_IP_ADDRESS = "allocatedIpAddress";
public static final String FIELD_SERVICE_INSTANCE_SERVICE_INDEX_ID = "serviceIndexId";
public static final String FIELD_SERVICE_INSTANCE_SERVICE_INDEX = "serviceIndex";
public static final String FIELD_METADATA = "metadata";
public static final String FIELD_HOST_ID = "hostId";
public static final String FIELD_DNS_INTERNAL = "dnsInternal";
public static final String FIELD_DNS_SEARCH_INTERNAL = "dnsSearchInternal";
public static final String FIELD_LOG_CONFIG = "logConfig";
public static final String FIELD_SERVICE_IDS = "serviceIds";
public static final String FIELD_SECRETS = "secrets";
public static final String FIELD_MEMORY = "memory";
public static final String FIELD_MEMORY_RESERVATION = "memoryReservation";
public static final String FIELD_MOUNTS = "mounts";
public static final String FIELD_HEALTHCHECK_STATES = "healthcheckStates";
public static final String PROCESS_DATA_NO_OP = "containerNoOpEvent";
public static final String PROCESS_DATA_ERROR = "errorState";
public static final String REMOVE_OPTION = "remove";
public static final String PROCESS_ALLOCATE = "instance.allocate";
public static final String PROCESS_DEALLOCATE = "instance.deallocate";
public static final String PROCESS_CREATE = "instance.create";
public static final String PROCESS_START = "instance.start";
public static final String PROCESS_STOP = "instance.stop";
public static final String PROCESS_RESTART = "instance.restart";
public static final String PROCESS_REMOVE = "instance.remove";
public static final String PROCESS_PURGE = "instance.purge";
public static final String PROCESS_ERROR = "instance.error";
public static final String KIND_CONTAINER = "container";
public static final String KIND_VIRTUAL_MACHINE = "virtualMachine";
public static final String STATE_CREATING = "creating";
public static final String STATE_CREATED = "created";
public static final String STATE_RUNNING = "running";
public static final String STATE_STOPPED = "stopped";
public static final String STATE_STOPPING = "stopping";
public static final String STATE_STARTING = "starting";
public static final String STATE_RESTARTING = "restarting";
public static final String STATE_ERRORING = "erroring";
public static final String STATE_ERROR = "error";
public static final String ON_STOP_REMOVE = "remove";
public static final String EVENT_INSTANCE_FORCE_STOP = "compute.instance.force.stop";
public static final Set<String> CONTAINER_LIKE = new HashSet<>(Arrays.asList(KIND_CONTAINER, KIND_VIRTUAL_MACHINE));
public static final String VOLUME_CLEANUP_STRATEGY_NONE = "none";
public static final String VOLUME_CLEANUP_STRATEGY_UNNAMED = "unnamed";
public static final String VOLUME_CLEANUP_STRATEGY_ALL = "all";
public static final Set<String> VOLUME_REMOVE_STRATEGIES = new HashSet<>(Arrays.asList(VOLUME_CLEANUP_STRATEGY_NONE, VOLUME_CLEANUP_STRATEGY_UNNAMED,
VOLUME_CLEANUP_STRATEGY_ALL));
public static boolean isSystem(Instance instance) {
return instance.getSystem() || isRancherAgent(instance);
}
public static boolean isRancherAgent(Instance instance) {
Map<String, Object> labels = DataAccessor.fieldMap(instance, InstanceConstants.FIELD_LABELS);
return ("rancher-agent".equals(labels.get("io.rancher.container.system")) &&
"rancher-agent".equals(instance.getName()));
}
}