guest_const.go 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. // Copyright 2019 Yunion
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. package compute
  15. import (
  16. "yunion.io/x/cloudmux/pkg/apis/compute"
  17. )
  18. const (
  19. VM_INIT = compute.VM_INIT
  20. VM_UNKNOWN = compute.VM_UNKNOWN
  21. VM_SCHEDULE = "schedule"
  22. VM_SCHEDULE_FAILED = "sched_fail"
  23. VM_CREATE_NETWORK = "network"
  24. VM_NETWORK_FAILED = "net_fail"
  25. VM_DEVICE_FAILED = "dev_fail"
  26. VM_CREATE_FAILED = compute.VM_CREATE_FAILED
  27. VM_CREATE_DISK = "disk"
  28. VM_DISK_FAILED = "disk_fail"
  29. VM_SECURITY_GROUP_FAILED = "security_group_fail"
  30. VM_IMAGE_CACHING = "image_caching" // 缓存镜像中
  31. VM_START_DEPLOY = "start_deploy"
  32. VM_DEPLOYING = compute.VM_DEPLOYING
  33. VM_DEPLOY_FAILED = compute.VM_DEPLOY_FAILED
  34. VM_READY = compute.VM_READY
  35. VM_START_START = compute.VM_START_START
  36. VM_STARTING = compute.VM_STARTING
  37. VM_START_FAILED = "start_fail" // # = ready
  38. VM_RUNNING = compute.VM_RUNNING
  39. VM_START_STOP = compute.VM_START_STOP
  40. VM_STOPPING = compute.VM_STOPPING
  41. VM_STOP_FAILED = "stop_fail" // # = running
  42. VM_RENEWING = "renewing"
  43. VM_RENEW_FAILED = "renew_failed"
  44. VM_ATTACH_DISK = "attach_disk"
  45. VM_DETACH_DISK = "detach_disk"
  46. VM_UNSYNC = "unsync"
  47. VM_START_RESCUE = "start_rescue"
  48. VM_RESCUE = "rescue"
  49. VM_STOP_RESCUE = "stop_rescue"
  50. VM_START_RESCUE_FAILED = "start_rescue_failed"
  51. VM_STOP_RESCUE_FAILED = "stop_rescue_failed"
  52. VM_BACKUP_STARTING = "backup_starting"
  53. VM_BACKUP_STOPING = "backup_stopping"
  54. VM_BACKUP_CREATING = "backup_creating"
  55. VM_BACKUP_START_FAILED = "backup_start_failed"
  56. VM_BACKUP_CREATE_FAILED = "backup_create_fail"
  57. VM_DEPLOYING_BACKUP = "deploying_backup"
  58. VM_DEPLOYING_BACKUP_FAILED = "deploging_backup_fail"
  59. VM_DELETING_BACKUP = "deleting_backup"
  60. VM_BACKUP_DELETE_FAILED = "backup_delete_fail"
  61. VM_SWITCH_TO_BACKUP = "switch_to_backup"
  62. VM_SWITCH_TO_BACKUP_FAILED = "switch_to_backup_fail"
  63. VM_ATTACH_DISK_FAILED = "attach_disk_fail"
  64. VM_DETACH_DISK_FAILED = "detach_disk_fail"
  65. VM_START_SUSPEND = "start_suspend"
  66. VM_SUSPENDING = compute.VM_SUSPENDING
  67. VM_SUSPEND = compute.VM_SUSPEND
  68. VM_SUSPEND_FAILED = "suspend_failed"
  69. VM_RESUMING = compute.VM_RESUMING
  70. VM_RESUME_FAILED = "resume_failed"
  71. VM_START_DELETE = "start_delete"
  72. VM_DELETE_FAIL = "delete_fail"
  73. VM_DELETING = compute.VM_DELETING
  74. VM_DEALLOCATED = compute.VM_DEALLOCATED
  75. VM_START_MIGRATE = "start_migrate"
  76. VM_MIGRATING = compute.VM_MIGRATING
  77. VM_LIVE_MIGRATING = "live_migrating"
  78. VM_MIGRATE_FAILED = "migrate_failed"
  79. VM_CHANGE_FLAVOR = compute.VM_CHANGE_FLAVOR
  80. VM_CHANGE_FLAVOR_FAIL = "change_flavor_fail"
  81. VM_REBUILD_ROOT = compute.VM_REBUILD_ROOT
  82. VM_REBUILD_ROOT_FAIL = "rebuild_root_fail"
  83. VM_START_SNAPSHOT = "snapshot_start"
  84. VM_SNAPSHOT = "snapshot"
  85. VM_SNAPSHOT_DELETE = "snapshot_delete"
  86. VM_BLOCK_STREAM = "block_stream"
  87. VM_BLOCK_STREAM_FAIL = "block_stream_fail"
  88. VM_SNAPSHOT_SUCC = "snapshot_succ"
  89. VM_SNAPSHOT_FAILED = "snapshot_failed"
  90. VM_DISK_RESET = "disk_reset"
  91. VM_DISK_RESET_FAIL = "disk_reset_failed"
  92. VM_DISK_CHANGE_STORAGE = "disk_change_storage"
  93. VM_DISK_CHANGE_STORAGE_FAIL = "disk_change_storage_fail"
  94. VM_START_INSTANCE_SNAPSHOT = "start_instance_snapshot"
  95. VM_INSTANCE_SNAPSHOT_FAILED = "instance_snapshot_failed"
  96. VM_START_SNAPSHOT_RESET = "start_snapshot_reset"
  97. VM_SNAPSHOT_RESET_FAILED = "snapshot_reset_failed"
  98. VM_SNAPSHOT_AND_CLONE_FAILED = "clone_from_snapshot_failed"
  99. VM_START_INSTANCE_BACKUP = "start_instance_backup"
  100. VM_INSTANCE_BACKUP_FAILED = "instance_backup_failed"
  101. VM_SYNC_CONFIG = compute.VM_SYNC_CONFIG
  102. VM_SYNC_FAIL = "sync_fail"
  103. VM_SYNC_TRAFFIC_LIMIT = "sync_traffic_limit"
  104. VM_SYNC_TRAFFIC_LIMIT_FAILED = "sync_traffic_limit_failed"
  105. VM_START_RESIZE_DISK = "start_resize_disk"
  106. VM_RESIZE_DISK = "resize_disk"
  107. VM_RESIZE_DISK_FAILED = "resize_disk_fail"
  108. VM_START_SAVE_DISK = "start_save_disk"
  109. VM_SAVE_DISK = "save_disk"
  110. VM_SAVE_DISK_FAILED = "save_disk_failed"
  111. VM_RESTORING_SNAPSHOT = "restoring_snapshot"
  112. VM_RESTORE_DISK = "restore_disk"
  113. VM_RESTORE_STATE = "restore_state"
  114. VM_RESTORE_FAILED = "restore_failed"
  115. VM_ASSOCIATE_EIP = INSTANCE_ASSOCIATE_EIP
  116. VM_ASSOCIATE_EIP_FAILED = INSTANCE_ASSOCIATE_EIP_FAILED
  117. VM_DISSOCIATE_EIP = INSTANCE_DISSOCIATE_EIP
  118. VM_DISSOCIATE_EIP_FAILED = INSTANCE_DISSOCIATE_EIP_FAILED
  119. // 公网IP转换Eip中(EIP转换中)
  120. VM_START_EIP_CONVERT = "start_eip_convert"
  121. VM_EIP_CONVERT_FAILED = "eip_convert_failed"
  122. // 设置自动续费
  123. VM_SET_AUTO_RENEW = "set_auto_renew"
  124. VM_SET_AUTO_RENEW_FAILED = "set_auto_renew_failed"
  125. VM_REMOVE_STATEFILE = "remove_state"
  126. VM_IO_THROTTLE = "io_throttle"
  127. VM_IO_THROTTLE_FAIL = "io_throttle_fail"
  128. VM_ADMIN = "admin"
  129. VM_IMPORT = "import"
  130. VM_IMPORT_FAILED = "import_fail"
  131. VM_CONVERT = "convert"
  132. VM_CONVERTING = "converting"
  133. VM_CONVERT_FAILED = "convert_failed"
  134. VM_CONVERTED = "converted"
  135. VM_TEMPLATE_SAVING = "tempalte_saving"
  136. VM_TEMPLATE_SAVE_FAILED = "template_save_failed"
  137. VM_UPDATE_TAGS = "update_tags"
  138. VM_UPDATE_TAGS_FAILED = "update_tags_fail"
  139. VM_RESTART_NETWORK = "restart_network"
  140. VM_RESTART_NETWORK_FAILED = "restart_network_failed"
  141. VM_SYNC_ISOLATED_DEVICE_FAILED = "sync_isolated_device_failed"
  142. VM_QGA_SET_PASSWORD = "qga_set_password"
  143. VM_QGA_COMMAND_EXECUTING = "qga_command_executing"
  144. VM_QGA_EXEC_COMMAND_FAILED = "qga_exec_command_failed"
  145. VM_QGA_SYNC_OS_INFO = "qga_sync_os_info"
  146. VM_QGA_SET_NETWORK = "qga_set_network"
  147. VM_QGA_SET_NETWORK_FAILED = "qga_set_network_failed"
  148. // Kickstart自动安装相关状态
  149. VM_KICKSTART_PENDING = "kickstart_pending" // kickstart配置完成,等待VM启动
  150. VM_KICKSTART_INSTALLING = "kickstart_installing" // kickstart正在安装
  151. VM_KICKSTART_COMPLETED = "kickstart_completed" // kickstart安装完成,准备转为running
  152. VM_KICKSTART_FAILED = "kickstart_failed" // kickstart安装失败
  153. SHUTDOWN_STOP = "stop"
  154. SHUTDOWN_TERMINATE = "terminate"
  155. SHUTDOWN_STOP_RELEASE_GPU = "stop_release_gpu"
  156. HYPERVISOR_KVM = "kvm"
  157. HYPERVISOR_POD = "pod"
  158. HYPERVISOR_BAREMETAL = "baremetal"
  159. HYPERVISOR_ESXI = compute.HYPERVISOR_ESXI
  160. HYPERVISOR_HYPERV = "hyperv"
  161. HYPERVISOR_XEN = "xen"
  162. HYPERVISOR_ALIYUN = compute.HYPERVISOR_ALIYUN
  163. HYPERVISOR_APSARA = compute.HYPERVISOR_APSARA
  164. HYPERVISOR_QCLOUD = compute.HYPERVISOR_QCLOUD
  165. HYPERVISOR_AZURE = compute.HYPERVISOR_AZURE
  166. HYPERVISOR_AWS = compute.HYPERVISOR_AWS
  167. HYPERVISOR_HUAWEI = compute.HYPERVISOR_HUAWEI
  168. HYPERVISOR_HCS = compute.HYPERVISOR_HCS
  169. HYPERVISOR_HCSO = compute.HYPERVISOR_HCSO
  170. HYPERVISOR_HCSOP = compute.HYPERVISOR_HCSOP
  171. HYPERVISOR_OPENSTACK = compute.HYPERVISOR_OPENSTACK
  172. HYPERVISOR_UCLOUD = compute.HYPERVISOR_UCLOUD
  173. HYPERVISOR_VOLCENGINE = compute.HYPERVISOR_VOLCENGINE
  174. HYPERVISOR_ZSTACK = compute.HYPERVISOR_ZSTACK
  175. HYPERVISOR_GOOGLE = compute.HYPERVISOR_GOOGLE
  176. HYPERVISOR_CTYUN = compute.HYPERVISOR_CTYUN
  177. HYPERVISOR_ECLOUD = compute.HYPERVISOR_ECLOUD
  178. HYPERVISOR_JDCLOUD = compute.HYPERVISOR_JDCLOUD
  179. HYPERVISOR_NUTANIX = compute.HYPERVISOR_NUTANIX
  180. HYPERVISOR_BINGO_CLOUD = compute.HYPERVISOR_BINGO_CLOUD
  181. HYPERVISOR_INCLOUD_SPHERE = compute.HYPERVISOR_INCLOUD_SPHERE
  182. HYPERVISOR_PROXMOX = compute.HYPERVISOR_PROXMOX
  183. HYPERVISOR_REMOTEFILE = compute.HYPERVISOR_REMOTEFILE
  184. HYPERVISOR_H3C = compute.HYPERVISOR_H3C
  185. HYPERVISOR_KSYUN = compute.HYPERVISOR_KSYUN
  186. HYPERVISOR_BAIDU = compute.HYPERVISOR_BAIDU
  187. HYPERVISOR_CUCLOUD = compute.HYPERVISOR_CUCLOUD
  188. HYPERVISOR_QINGCLOUD = compute.HYPERVISOR_QINGCLOUD
  189. HYPERVISOR_ORACLE = compute.HYPERVISOR_ORACLE
  190. HYPERVISOR_SANGFOR = compute.HYPERVISOR_SANGFOR
  191. HYPERVISOR_ZETTAKIT = compute.HYPERVISOR_ZETTAKIT
  192. HYPERVISOR_UIS = compute.HYPERVISOR_UIS
  193. HYPERVISOR_CAS = compute.HYPERVISOR_CAS
  194. HYPERVISOR_CNWARE = compute.HYPERVISOR_CNWARE
  195. // HYPERVISOR_DEFAULT = HYPERVISOR_KVM
  196. HYPERVISOR_DEFAULT = HYPERVISOR_KVM
  197. )
  198. const (
  199. VM_POWER_STATES_ON = "on"
  200. VM_POWER_STATES_OFF = "off"
  201. VM_POWER_STATES_UNKNOWN = "unknown"
  202. )
  203. const (
  204. VM_SHUTDOWN_MODE_KEEP_CHARGING = "keep_charging"
  205. VM_SHUTDOWN_MODE_STOP_CHARGING = "stop_charging"
  206. )
  207. const (
  208. QGA_STATUS_UNKNOWN = "unknown"
  209. QGA_STATUS_AVAILABLE = "available"
  210. )
  211. const (
  212. CPU_MODE_QEMU = "qemu"
  213. CPU_MODE_HOST = "host"
  214. )
  215. const (
  216. VM_CPU_NUMA_PIN_SCHEDULER = "scheduler"
  217. VM_CPU_NUMA_PIN_HOST = "host"
  218. )
  219. const (
  220. VM_MACHINE_TYPE_PC = "pc"
  221. VM_MACHINE_TYPE_Q35 = "q35"
  222. VM_MACHINE_TYPE_VIRT = "virt"
  223. VM_VDI_PROTOCOL_VNC = "vnc"
  224. VM_VDI_PROTOCOL_SPICE = "spice"
  225. VM_VIDEO_STANDARD = "std"
  226. VM_VIDEO_QXL = "qxl"
  227. VM_VIDEO_VIRTIO = "virtio"
  228. VM_BOOT_MODE_BIOS = "BIOS"
  229. VM_BOOT_MODE_UEFI = "UEFI"
  230. )
  231. var VM_RUNNING_STATUS = []string{VM_START_START, VM_STARTING, VM_RUNNING, VM_BLOCK_STREAM, VM_BLOCK_STREAM_FAIL}
  232. var VM_CREATING_STATUS = []string{VM_CREATE_NETWORK, VM_CREATE_DISK, VM_START_DEPLOY, VM_DEPLOYING}
  233. var VM_KICKSTART_STATUS = []string{VM_KICKSTART_PENDING, VM_KICKSTART_INSTALLING, VM_KICKSTART_COMPLETED, VM_KICKSTART_FAILED}
  234. var HYPERVISORS = []string{
  235. HYPERVISOR_KVM,
  236. HYPERVISOR_BAREMETAL,
  237. HYPERVISOR_ESXI,
  238. HYPERVISOR_POD,
  239. HYPERVISOR_ALIYUN,
  240. HYPERVISOR_APSARA,
  241. HYPERVISOR_AZURE,
  242. HYPERVISOR_AWS,
  243. HYPERVISOR_QCLOUD,
  244. HYPERVISOR_HUAWEI,
  245. HYPERVISOR_HCSO,
  246. HYPERVISOR_HCS,
  247. HYPERVISOR_HCSOP,
  248. HYPERVISOR_OPENSTACK,
  249. HYPERVISOR_UCLOUD,
  250. HYPERVISOR_VOLCENGINE,
  251. HYPERVISOR_ZSTACK,
  252. HYPERVISOR_GOOGLE,
  253. HYPERVISOR_CTYUN,
  254. HYPERVISOR_ECLOUD,
  255. HYPERVISOR_JDCLOUD,
  256. HYPERVISOR_NUTANIX,
  257. HYPERVISOR_BINGO_CLOUD,
  258. HYPERVISOR_INCLOUD_SPHERE,
  259. HYPERVISOR_PROXMOX,
  260. HYPERVISOR_REMOTEFILE,
  261. HYPERVISOR_H3C,
  262. HYPERVISOR_KSYUN,
  263. HYPERVISOR_BAIDU,
  264. HYPERVISOR_CUCLOUD,
  265. HYPERVISOR_QINGCLOUD,
  266. HYPERVISOR_ORACLE,
  267. HYPERVISOR_SANGFOR,
  268. HYPERVISOR_ZETTAKIT,
  269. HYPERVISOR_UIS,
  270. HYPERVISOR_CNWARE,
  271. }
  272. const (
  273. VM_DEFAULT_WINDOWS_LOGIN_USER = compute.VM_DEFAULT_WINDOWS_LOGIN_USER
  274. VM_DEFAULT_LINUX_LOGIN_USER = compute.VM_DEFAULT_LINUX_LOGIN_USER
  275. VM_AWS_DEFAULT_LOGIN_USER = compute.VM_AWS_DEFAULT_LOGIN_USER
  276. VM_AWS_DEFAULT_WINDOWS_LOGIN_USER = compute.VM_AWS_DEFAULT_WINDOWS_LOGIN_USER
  277. VM_JDCLOUD_DEFAULT_WINDOWS_LOGIN_USER = compute.VM_JDCLOUD_DEFAULT_WINDOWS_LOGIN_USER
  278. VM_AZURE_DEFAULT_LOGIN_USER = compute.VM_AZURE_DEFAULT_LOGIN_USER
  279. VM_ZSTACK_DEFAULT_LOGIN_USER = compute.VM_ZSTACK_DEFAULT_LOGIN_USER
  280. VM_METADATA_APP_TAGS = "app_tags"
  281. VM_METADATA_CREATE_PARAMS = "create_params"
  282. VM_METADATA_LOGIN_ACCOUNT = "login_account"
  283. VM_METADATA_LOGIN_KEY = "login_key"
  284. VM_METADATA_LAST_LOGIN_KEY = "last_login_key"
  285. VM_METADATA_LOGIN_KEY_TIMESTAMP = "login_key_timestamp"
  286. VM_METADATA_OS_ARCH = "os_arch"
  287. VM_METADATA_OS_DISTRO = "os_distribution"
  288. VM_METADATA_OS_NAME = "os_name"
  289. VM_METADATA_OS_VERSION = "os_version"
  290. VM_METADATA_CGROUP_CPUSET = "cgroup_cpuset"
  291. VM_METADATA_ENABLE_MEMCLEAN = "enable_memclean"
  292. VM_METADATA_HOTPLUG_CPU_MEM = "hotplug_cpu_mem"
  293. VM_METADATA_HOT_REMOVE_NIC = "hot_remove_nic"
  294. VM_METADATA_START_VMEM_MB = "start_vmem_mb"
  295. VM_METADATA_START_VCPU_COUNT = "start_vcpu_count"
  296. VM_METADATA_DISABLE_AUTO_MERGE_SNAPSHOT = "disable_auto_merge_snapshot"
  297. VM_METADATA_ENABLE_TPM = "enable_tpm"
  298. VM_METADATA_RELEASED_DEVICES = "released_devices"
  299. VM_METADATA_CPU_NUMA_PIN = "__cpu_numa_pin"
  300. VM_METADATA_CPU_NUMA_PIN_TYPE = "__cpu_numa_pin_type"
  301. VM_METADATA_VIRTUAL_ISOLATED_DEVICE_CONFIG = "__virtual_isolated_device_config"
  302. // Kickstart相关metadata常量
  303. VM_METADATA_KICKSTART_CONFIG = "kickstart_config"
  304. VM_METADATA_KICKSTART_TYPE = "kickstart_type"
  305. VM_METADATA_KICKSTART_ATTEMPT = "kickstart_attempt"
  306. VM_METADATA_KICKSTART_COMPLETED_FLAG = "kickstart_completed_flag"
  307. )
  308. const (
  309. KICKSTART_TYPE_URL = "url"
  310. KICKSTART_TYPE_CONTENT = "content"
  311. )
  312. var KICKSTART_VALID_TYPES = []string{
  313. KICKSTART_TYPE_URL,
  314. KICKSTART_TYPE_CONTENT,
  315. }
  316. var KICKSTART_VALID_OS_TYPES = []string{
  317. "centos",
  318. "rhel",
  319. "fedora",
  320. "ubuntu",
  321. "openeuler",
  322. }
  323. // windows allow a maximal length of 15
  324. // http://support.microsoft.com/kb/909264
  325. const MAX_WINDOWS_COMPUTER_NAME_LENGTH = 15