const.go 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  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 apis
  15. import "yunion.io/x/pkg/utils"
  16. const (
  17. SERVICE_TYPE_IMAGE = "image"
  18. SERVICE_TYPE_OFFLINE_CLOUDMETA = "offlinecloudmeta"
  19. SERVICE_TYPE_CLOUDID = "cloudid"
  20. SERVICE_TYPE_CLOUDEVENT = "cloudevent"
  21. SERVICE_TYPE_DEVTOOL = "devtool"
  22. SERVICE_TYPE_ANSIBLE = "ansible"
  23. SERVICE_TYPE_CLOUDMETA = "cloudmeta"
  24. SERVICE_TYPE_YUNIONCONF = "yunionconf"
  25. SERVICE_TYPE_METER = "meter"
  26. SERVICE_TYPE_SCHEDULER = "scheduler"
  27. SERVICE_TYPE_VNCPROXY = "vncproxy"
  28. SERVICE_TYPE_KEYSTONE = "identity"
  29. SERVICE_TYPE_NOTIFY = "notify"
  30. SERVICE_TYPE_MONITOR = "monitor"
  31. SERVICE_TYPE_LOG = "log"
  32. SERVICE_TYPE_REGION = "compute"
  33. SERVICE_TYPE_CLOUDMON = "cloudmon"
  34. SERVICE_TYPE_VPCAGENT = "vpcagent"
  35. SERVICE_TYPE_ETCD = "etcd"
  36. SERVICE_TYPE_INFLUXDB = "influxdb"
  37. SERVICE_TYPE_NTP = "ntp"
  38. SERVICE_TYPE_VICTORIA_METRICS = "victoria-metrics"
  39. SERVICE_TYPE_SCHEDULEDTASK = "scheduledtask"
  40. SERVICE_TYPE_APIMAP = "apimap"
  41. SERVICE_TYPE_LLM = "llm"
  42. STATUS_UPDATE_TAGS = "update_tags"
  43. STATUS_UPDATE_TAGS_FAILED = "update_tags_fail"
  44. STATUS_START_SYNC_STATUS = "start_sync_status"
  45. STATUS_SYNC_STATUS = "sync_status"
  46. STATUS_DELETING = "deleting"
  47. STATUS_DELETE_FAILED = "delete_failed"
  48. STATUS_CHANGE_CONFIG = "change_config"
  49. STATUS_UNKNOWN = "unknown"
  50. STATUS_CREATING = "creating"
  51. STATUS_AVAILABLE = "available"
  52. STATUS_CREATE_FAILED = "create_failed"
  53. // 更改计费模式
  54. STATUS_CHANGE_BILLING_TYPE = "change_billing_type"
  55. STATUS_CHANGE_BILLING_TYPE_FAILED = "change_billing_type_failed"
  56. CLOUD_TAG_PREFIX = "ext:"
  57. USER_TAG_PREFIX = "user:"
  58. SYS_CLOUD_TAG_PREFIX = "sys:"
  59. // Such tags have inherited and isolated properties
  60. CLASS_TAG_PREFIX = "cls:"
  61. ORGANIZATION_TAG_PREFIX = "org:"
  62. SKU_STATUS_AVAILABLE = "available"
  63. SKU_STATUS_SOLDOUT = "soldout"
  64. MetaServiceMonitorAgentUrl = "http://%s/monitor"
  65. )
  66. var (
  67. NO_RESOURCE_SERVICES = []string{
  68. SERVICE_TYPE_OFFLINE_CLOUDMETA,
  69. SERVICE_TYPE_CLOUDMETA,
  70. SERVICE_TYPE_SCHEDULER,
  71. SERVICE_TYPE_VNCPROXY,
  72. SERVICE_TYPE_KEYSTONE,
  73. SERVICE_TYPE_ETCD,
  74. SERVICE_TYPE_INFLUXDB,
  75. SERVICE_TYPE_CLOUDMON,
  76. SERVICE_TYPE_METER,
  77. SERVICE_TYPE_CLOUDEVENT,
  78. SERVICE_TYPE_ANSIBLE,
  79. SERVICE_TYPE_INFLUXDB,
  80. SERVICE_TYPE_VICTORIA_METRICS,
  81. SERVICE_TYPE_APIMAP,
  82. SERVICE_TYPE_LOG,
  83. "autoupdate",
  84. "yunionagent",
  85. "webconsole",
  86. "esxiagent",
  87. "s3gateway",
  88. "common",
  89. "websocket",
  90. "echarts-ssr",
  91. "lbagent",
  92. "vpcagent",
  93. "cloudwatcher",
  94. "cloudnet",
  95. "repo",
  96. "cloudproxy",
  97. "apigateway",
  98. "yunionapi",
  99. "billing",
  100. SERVICE_TYPE_ETCD,
  101. "itsm",
  102. SERVICE_TYPE_NTP,
  103. "kafka",
  104. }
  105. EXTERNAL_SERVICES = []string{
  106. SERVICE_TYPE_OFFLINE_CLOUDMETA,
  107. SERVICE_TYPE_CLOUDMETA,
  108. SERVICE_TYPE_SCHEDULER,
  109. SERVICE_TYPE_VNCPROXY,
  110. SERVICE_TYPE_ETCD,
  111. SERVICE_TYPE_INFLUXDB,
  112. SERVICE_TYPE_INFLUXDB,
  113. SERVICE_TYPE_VICTORIA_METRICS,
  114. SERVICE_TYPE_LOG,
  115. "s3gateway",
  116. "common",
  117. "websocket",
  118. "echarts-ssr",
  119. "cloudwatcher",
  120. "cloudnet",
  121. "repo",
  122. SERVICE_TYPE_ETCD,
  123. "itsm",
  124. SERVICE_TYPE_NTP,
  125. "kafka",
  126. }
  127. )
  128. const (
  129. COMPRESS_FORMAT_GZIP = "gzip"
  130. COMPRESS_FORMAT_TAR_GZ = "tar.gz"
  131. )
  132. const (
  133. OS_ARCH_ALL = "all"
  134. OS_ARCH_X86 = "x86"
  135. OS_ARCH_ARM = "arm"
  136. OS_ARCH_RISCV = "riscv"
  137. OS_ARCH_I386 = "i386"
  138. OS_ARCH_X86_32 = "x86_32"
  139. OS_ARCH_X86_64 = "x86_64"
  140. OS_ARCH_AARCH32 = "aarch32"
  141. OS_ARCH_AARCH64 = "aarch64"
  142. OS_ARCH_RISCV32 = "riscv32"
  143. OS_ARCH_RISCV64 = "riscv64"
  144. )
  145. var (
  146. ARCH_X86 = []string{
  147. OS_ARCH_X86,
  148. OS_ARCH_I386,
  149. OS_ARCH_X86_32,
  150. OS_ARCH_X86_64,
  151. }
  152. ARCH_ARM = []string{
  153. OS_ARCH_ARM,
  154. OS_ARCH_AARCH32,
  155. OS_ARCH_AARCH64,
  156. }
  157. ARCH_RISCV = []string{
  158. OS_ARCH_RISCV,
  159. OS_ARCH_RISCV32,
  160. OS_ARCH_RISCV64,
  161. }
  162. )
  163. func IsARM(osArch string) bool {
  164. return utils.IsInStringArray(osArch, ARCH_ARM)
  165. }
  166. func IsX86(osArch string) bool {
  167. return utils.IsInStringArray(osArch, ARCH_X86)
  168. }
  169. func IsRISCV(osArch string) bool {
  170. return utils.IsInStringArray(osArch, ARCH_RISCV)
  171. }
  172. func IsIllegalSearchDomain(domain string) bool {
  173. switch domain {
  174. case "cloud.onecloud.io":
  175. return true
  176. }
  177. return false
  178. }
  179. func IsSameArch(arch1, arch2 string) bool {
  180. if arch1 == arch2 {
  181. return true
  182. }
  183. if IsARM(arch1) && IsARM(arch2) {
  184. return true
  185. }
  186. if IsX86(arch1) && IsX86(arch2) {
  187. return true
  188. }
  189. if IsRISCV(arch1) && IsRISCV(arch2) {
  190. return true
  191. }
  192. return false
  193. }