base.go 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518
  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 regiondrivers
  15. import (
  16. "context"
  17. "fmt"
  18. "yunion.io/x/cloudmux/pkg/cloudprovider"
  19. "yunion.io/x/jsonutils"
  20. "yunion.io/x/pkg/errors"
  21. "yunion.io/x/pkg/util/billing"
  22. "yunion.io/x/sqlchemy"
  23. api "yunion.io/x/onecloud/pkg/apis/compute"
  24. "yunion.io/x/onecloud/pkg/cloudcommon/db"
  25. "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman"
  26. "yunion.io/x/onecloud/pkg/compute/models"
  27. "yunion.io/x/onecloud/pkg/httperrors"
  28. "yunion.io/x/onecloud/pkg/mcclient"
  29. )
  30. type SBaseRegionDriver struct {
  31. }
  32. func (self *SBaseRegionDriver) ValidateCreateLoadbalancerData(ctx context.Context, userCred mcclient.TokenCredential, owerId mcclient.IIdentityProvider, input *api.LoadbalancerCreateInput) (*api.LoadbalancerCreateInput, error) {
  33. return nil, errors.Wrapf(cloudprovider.ErrNotImplemented, "ValidateCreateLoadbalancerData")
  34. }
  35. func (self *SBaseRegionDriver) RequestCreateLoadbalancerInstance(ctx context.Context, userCred mcclient.TokenCredential, lb *models.SLoadbalancer, input *api.LoadbalancerCreateInput, task taskman.ITask) error {
  36. return fmt.Errorf("Not Implement RequestCreateLoadbalancer")
  37. }
  38. func (self *SBaseRegionDriver) RequestStartLoadbalancer(ctx context.Context, userCred mcclient.TokenCredential, lb *models.SLoadbalancer, task taskman.ITask) error {
  39. return fmt.Errorf("Not Implement RequestStartLoadbalancer")
  40. }
  41. func (self *SBaseRegionDriver) RequestStopLoadbalancer(ctx context.Context, userCred mcclient.TokenCredential, lb *models.SLoadbalancer, task taskman.ITask) error {
  42. return fmt.Errorf("Not Implement RequestStopLoadbalancer")
  43. }
  44. func (self *SBaseRegionDriver) RequestSyncstatusLoadbalancer(ctx context.Context, userCred mcclient.TokenCredential, lb *models.SLoadbalancer, task taskman.ITask) error {
  45. return fmt.Errorf("Not Implement RequestSyncstatusLoadbalancer")
  46. }
  47. func (self *SBaseRegionDriver) RequestRemoteUpdateLoadbalancer(ctx context.Context, userCred mcclient.TokenCredential, lb *models.SLoadbalancer, replaceTags bool, task taskman.ITask) error {
  48. // nil ops
  49. return nil
  50. }
  51. func (self *SBaseRegionDriver) RequestDeleteLoadbalancer(ctx context.Context, userCred mcclient.TokenCredential, lb *models.SLoadbalancer, task taskman.ITask) error {
  52. return fmt.Errorf("Not Implement RequestDeleteLoadbalancer")
  53. }
  54. func (self *SBaseRegionDriver) RequestCreateLoadbalancerAcl(ctx context.Context, userCred mcclient.TokenCredential, lbacl *models.SLoadbalancerAcl, task taskman.ITask) error {
  55. return fmt.Errorf("Not Implement RequestCreateLoadbalancerAcl")
  56. }
  57. func (self *SBaseRegionDriver) RequestUpdateLoadbalancerAcl(ctx context.Context, userCred mcclient.TokenCredential, lbacl *models.SLoadbalancerAcl, task taskman.ITask) error {
  58. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestUpdateLoadbalancerAcl")
  59. }
  60. func (self *SBaseRegionDriver) RequestLoadbalancerAclSyncstatus(ctx context.Context, userCred mcclient.TokenCredential, lbacl *models.SLoadbalancerAcl, task taskman.ITask) error {
  61. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestLoadbalancerAclSyncstatus")
  62. }
  63. func (self *SBaseRegionDriver) RequestDeleteLoadbalancerAcl(ctx context.Context, userCred mcclient.TokenCredential, lbacl *models.SLoadbalancerAcl, task taskman.ITask) error {
  64. return fmt.Errorf("Not Implement RequestDeleteLoadbalancerAcl")
  65. }
  66. func (self *SBaseRegionDriver) IsCertificateBelongToRegion() bool {
  67. return true
  68. }
  69. func (self *SBaseRegionDriver) RequestCreateLoadbalancerCertificate(ctx context.Context, userCred mcclient.TokenCredential, lbcert *models.SLoadbalancerCertificate, task taskman.ITask) error {
  70. return fmt.Errorf("Not Implement RequestCreateLoadbalancerCertificate")
  71. }
  72. func (self *SBaseRegionDriver) RequestDeleteLoadbalancerCertificate(ctx context.Context, userCred mcclient.TokenCredential, lbcert *models.SLoadbalancerCertificate, task taskman.ITask) error {
  73. return fmt.Errorf("Not Implement RequestDeleteLoadbalancerCertificate")
  74. }
  75. func (self *SBaseRegionDriver) RequestLoadbalancerCertificateSyncstatus(ctx context.Context, userCred mcclient.TokenCredential, lbcert *models.SLoadbalancerCertificate, task taskman.ITask) error {
  76. return fmt.Errorf("Not Implement RequestLoadbalancerCertificateSyncstatus")
  77. }
  78. func (self *SBaseRegionDriver) RequestCreateLoadbalancerBackendGroup(ctx context.Context, userCred mcclient.TokenCredential, lbbg *models.SLoadbalancerBackendGroup, task taskman.ITask) error {
  79. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestCreateLoadbalancerBackendGroup")
  80. }
  81. func (self *SBaseRegionDriver) RequestDeleteLoadbalancerBackendGroup(ctx context.Context, userCred mcclient.TokenCredential, lbbg *models.SLoadbalancerBackendGroup, task taskman.ITask) error {
  82. return fmt.Errorf("Not Implement RequestDeleteLoadbalancerBackendGroup")
  83. }
  84. func (self *SBaseRegionDriver) RequestCreateLoadbalancerBackend(ctx context.Context, userCred mcclient.TokenCredential, lbb *models.SLoadbalancerBackend, task taskman.ITask) error {
  85. return fmt.Errorf("Not Implement RequestCreateLoadbalancerBackend")
  86. }
  87. func (self *SBaseRegionDriver) RequestDeleteLoadbalancerBackend(ctx context.Context, userCred mcclient.TokenCredential, lbb *models.SLoadbalancerBackend, task taskman.ITask) error {
  88. return fmt.Errorf("Not Implement RequestDeleteLoadbalancerBackend")
  89. }
  90. func (self *SBaseRegionDriver) RequestSyncLoadbalancerBackend(ctx context.Context, userCred mcclient.TokenCredential, lbb *models.SLoadbalancerBackend, task taskman.ITask) error {
  91. return fmt.Errorf("Not Implement RequestSyncLoadbalancerBackend")
  92. }
  93. func (self *SBaseRegionDriver) ValidateCreateLoadbalancerListenerData(ctx context.Context, userCred mcclient.TokenCredential,
  94. ownerId mcclient.IIdentityProvider, input *api.LoadbalancerListenerCreateInput,
  95. lb *models.SLoadbalancer, lbbg *models.SLoadbalancerBackendGroup) (*api.LoadbalancerListenerCreateInput, error) {
  96. return nil, errors.Wrapf(cloudprovider.ErrNotImplemented, "ValidateCreateLoadbalancerListenerData")
  97. }
  98. func (self *SBaseRegionDriver) RequestCreateLoadbalancerListener(ctx context.Context, userCred mcclient.TokenCredential, lblis *models.SLoadbalancerListener, task taskman.ITask) error {
  99. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestCreateLoadbalancerListener")
  100. }
  101. func (self *SBaseRegionDriver) RequestDeleteLoadbalancerListener(ctx context.Context, userCred mcclient.TokenCredential, lblis *models.SLoadbalancerListener, task taskman.ITask) error {
  102. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestDeleteLoadbalancerListener")
  103. }
  104. func (self *SBaseRegionDriver) RequestStartLoadbalancerListener(ctx context.Context, userCred mcclient.TokenCredential, lblis *models.SLoadbalancerListener, task taskman.ITask) error {
  105. return fmt.Errorf("Not Implement RequestStartLoadbalancerListener")
  106. }
  107. func (self *SBaseRegionDriver) RequestStopLoadbalancerListener(ctx context.Context, userCred mcclient.TokenCredential, lblis *models.SLoadbalancerListener, task taskman.ITask) error {
  108. return fmt.Errorf("Not Implement RequestStopLoadbalancerListener")
  109. }
  110. func (self *SBaseRegionDriver) RequestSyncstatusLoadbalancerListener(ctx context.Context, userCred mcclient.TokenCredential, lblis *models.SLoadbalancerListener, task taskman.ITask) error {
  111. return fmt.Errorf("Not Implement RequestSyncstatusLoadbalancerListener")
  112. }
  113. func (self *SBaseRegionDriver) RequestSyncLoadbalancerListener(ctx context.Context, userCred mcclient.TokenCredential, lblis *models.SLoadbalancerListener, input *api.LoadbalancerListenerUpdateInput, task taskman.ITask) error {
  114. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestSyncLoadbalancerListener")
  115. }
  116. func (self *SBaseRegionDriver) ValidateCreateLoadbalancerListenerRuleData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, input *api.LoadbalancerListenerRuleCreateInput) (*api.LoadbalancerListenerRuleCreateInput, error) {
  117. return input, errors.Wrapf(cloudprovider.ErrNotImplemented, "ValidateCreateLoadbalancerListenerRuleData")
  118. }
  119. func (self *SBaseRegionDriver) ValidateUpdateLoadbalancerListenerRuleData(ctx context.Context, userCred mcclient.TokenCredential, input *api.LoadbalancerListenerRuleUpdateInput) (*api.LoadbalancerListenerRuleUpdateInput, error) {
  120. return input, errors.Wrapf(cloudprovider.ErrNotImplemented, "ValidateUpdateLoadbalancerListenerRuleData")
  121. }
  122. func (self *SBaseRegionDriver) RequestCreateLoadbalancerListenerRule(ctx context.Context, userCred mcclient.TokenCredential, lbr *models.SLoadbalancerListenerRule, task taskman.ITask) error {
  123. return fmt.Errorf("Not Implement RequestCreateLoadbalancerListenerRule")
  124. }
  125. func (self *SBaseRegionDriver) RequestDeleteLoadbalancerListenerRule(ctx context.Context, userCred mcclient.TokenCredential, lbr *models.SLoadbalancerListenerRule, task taskman.ITask) error {
  126. return fmt.Errorf("Not Implement RequestDeleteLoadbalancerListenerRule")
  127. }
  128. func (self *SBaseRegionDriver) ValidateSnapshotDelete(ctx context.Context, snapshot *models.SSnapshot) error {
  129. return fmt.Errorf("Not Implement ValidateSnapshotDelete")
  130. }
  131. func (self *SBaseRegionDriver) RequestDeleteSnapshot(ctx context.Context, snapshot *models.SSnapshot, task taskman.ITask) error {
  132. return fmt.Errorf("Not Implement RequestDeleteSnapshot")
  133. }
  134. func (self *SBaseRegionDriver) ValidateCreateSnapshotData(ctx context.Context, userCred mcclient.TokenCredential, disk *models.SDisk, storage *models.SStorage, input *api.SnapshotCreateInput) error {
  135. return fmt.Errorf("Not Implement ValidateCreateSnapshotData")
  136. }
  137. func (self *SBaseRegionDriver) RequestCreateSnapshot(ctx context.Context, snapshot *models.SSnapshot, task taskman.ITask) error {
  138. return fmt.Errorf("Not Implement RequestCreateSnapshot")
  139. }
  140. func (self *SBaseRegionDriver) SnapshotIsOutOfChain(disk *models.SDisk) bool {
  141. return true
  142. }
  143. func (self *SBaseRegionDriver) GetDiskResetParams(snapshot *models.SSnapshot) *jsonutils.JSONDict {
  144. return nil
  145. }
  146. func (self *SBaseRegionDriver) OnDiskReset(ctx context.Context, userCred mcclient.TokenCredential, disk *models.SDisk, snapshot *models.SSnapshot, data *jsonutils.JSONObject) error {
  147. return fmt.Errorf("Not Implement OnDiskReset")
  148. }
  149. func (self *SBaseRegionDriver) OnSnapshotDelete(ctx context.Context, snapshot *models.SSnapshot, task taskman.ITask, data jsonutils.JSONObject) error {
  150. return fmt.Errorf("Not implement OnSnapshotDelete")
  151. }
  152. func (self *SBaseRegionDriver) RequestAssociateEipForNAT(ctx context.Context, userCred mcclient.TokenCredential, nat *models.SNatGateway, eip *models.SElasticip, task taskman.ITask) error {
  153. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestAssociateEipForNAT")
  154. }
  155. func (self *SBaseRegionDriver) IsVpcCreateNeedInputCidr() bool {
  156. return true
  157. }
  158. func (self *SBaseRegionDriver) RequestCreateVpc(ctx context.Context, userCred mcclient.TokenCredential, region *models.SCloudregion, vpc *models.SVpc, task taskman.ITask) error {
  159. return fmt.Errorf("Not implement RequestCreateVpc")
  160. }
  161. func (self *SBaseRegionDriver) RequestDeleteVpc(ctx context.Context, userCred mcclient.TokenCredential, region *models.SCloudregion, vpc *models.SVpc, task taskman.ITask) error {
  162. return fmt.Errorf("Not implement RequestDeleteVpc")
  163. }
  164. func (self *SBaseRegionDriver) ValidateCreateSecurityGroupInput(ctx context.Context, userCred mcclient.TokenCredential, input *api.SSecgroupCreateInput) (*api.SSecgroupCreateInput, error) {
  165. return nil, errors.Wrapf(cloudprovider.ErrNotImplemented, "ValidateCreateSecurityGroupInput")
  166. }
  167. func (self *SBaseRegionDriver) GetDefaultSecurityGroupNamePrefix() string {
  168. return "default-auto"
  169. }
  170. func (self *SBaseRegionDriver) RequestCreateSecurityGroup(
  171. ctx context.Context,
  172. userCred mcclient.TokenCredential,
  173. secgroup *models.SSecurityGroup,
  174. rules api.SSecgroupRuleResourceSet,
  175. ) error {
  176. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestCreateSecurityGroup")
  177. }
  178. func (self *SBaseRegionDriver) RequestDeleteSecurityGroup(ctx context.Context, userCred mcclient.TokenCredential, secgroup *models.SSecurityGroup, task taskman.ITask) error {
  179. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestDeleteSecurityGroup")
  180. }
  181. func (self *SBaseRegionDriver) ValidateCreateDBInstanceData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, input api.DBInstanceCreateInput, skus []models.SDBInstanceSku, network *models.SNetwork) (api.DBInstanceCreateInput, error) {
  182. return input, nil
  183. }
  184. func (self *SBaseRegionDriver) RequestCreateDBInstance(ctx context.Context, userCred mcclient.TokenCredential, dbinstance *models.SDBInstance, task taskman.ITask) error {
  185. return fmt.Errorf("Not Implement RequestCreateDBInstance")
  186. }
  187. func (self *SBaseRegionDriver) RequestCreateDBInstanceFromBackup(ctx context.Context, userCred mcclient.TokenCredential, dbinstance *models.SDBInstance, task taskman.ITask) error {
  188. return fmt.Errorf("Not Implement RequestCreateDBInstanceFromBackup")
  189. }
  190. func (self *SBaseRegionDriver) RequestCreateDBInstanceBackup(ctx context.Context, userCred mcclient.TokenCredential, dbinstance *models.SDBInstance, backup *models.SDBInstanceBackup, task taskman.ITask) error {
  191. return fmt.Errorf("Not Implement RequestCreateDBInstanceBackup")
  192. }
  193. func (self *SBaseRegionDriver) IsSupportedBillingCycle(bc billing.SBillingCycle, resource string) bool {
  194. return false
  195. }
  196. func (self *SBaseRegionDriver) GetSecgroupVpcid(vpcId string) string {
  197. return vpcId
  198. }
  199. func (self *SBaseRegionDriver) InitDBInstanceUser(ctx context.Context, dbinstance *models.SDBInstance, task taskman.ITask, desc *cloudprovider.SManagedDBInstanceCreateConfig) error {
  200. return nil
  201. }
  202. func (self *SBaseRegionDriver) RequestChangeDBInstanceConfig(ctx context.Context, userCred mcclient.TokenCredential, instance *models.SDBInstance, input *api.SDBInstanceChangeConfigInput, task taskman.ITask) error {
  203. return fmt.Errorf("Not Implement RequestChangeDBInstanceConfig")
  204. }
  205. func (self *SBaseRegionDriver) ValidateCreateDBInstanceAccountData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, instance *models.SDBInstance, input api.DBInstanceAccountCreateInput) (api.DBInstanceAccountCreateInput, error) {
  206. return input, fmt.Errorf("Not Implement ValidateCreateDBInstanceAccountData")
  207. }
  208. func (self *SBaseRegionDriver) ValidateCreateDBInstanceDatabaseData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, instance *models.SDBInstance, input api.DBInstanceDatabaseCreateInput) (api.DBInstanceDatabaseCreateInput, error) {
  209. return input, fmt.Errorf("Not Implement ValidateCreateDBInstanceDatabaseData")
  210. }
  211. func (self *SBaseRegionDriver) ValidateCreateDBInstanceBackupData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, instance *models.SDBInstance, input api.DBInstanceBackupCreateInput) (api.DBInstanceBackupCreateInput, error) {
  212. return input, fmt.Errorf("Not Implement ValidateCreateDBInstanceBackupData")
  213. }
  214. func (self *SBaseRegionDriver) ValidateDBInstanceAccountPrivilege(ctx context.Context, userCred mcclient.TokenCredential, instance *models.SDBInstance, account string, privilege string) error {
  215. return fmt.Errorf("Not Implement ValidateDBInstanceAccountPrivilege")
  216. }
  217. func (self *SBaseRegionDriver) IsSupportDBInstancePublicConnection() bool {
  218. return true
  219. }
  220. func (self *SBaseRegionDriver) ValidateResetDBInstancePassword(ctx context.Context, userCred mcclient.TokenCredential, instance *models.SDBInstance, account string) error {
  221. return nil
  222. }
  223. func (self *SBaseRegionDriver) IsSupportKeepDBInstanceManualBackup() bool {
  224. return false
  225. }
  226. func (self *SBaseRegionDriver) ValidateDBInstanceRecovery(ctx context.Context, userCred mcclient.TokenCredential, instance *models.SDBInstance, backup *models.SDBInstanceBackup, input api.SDBInstanceRecoveryConfigInput) error {
  227. return errors.Wrap(cloudprovider.ErrNotImplemented, "ValidateDBInstanceRecovery")
  228. }
  229. func (self *SBaseRegionDriver) RequestRemoteUpdateDBInstance(ctx context.Context, userCred mcclient.TokenCredential, instance *models.SDBInstance, replaceTags bool, task taskman.ITask) error {
  230. // nil ops
  231. return nil
  232. }
  233. func (self *SBaseRegionDriver) IsSupportedDBInstance() bool {
  234. return false
  235. }
  236. func (self *SBaseRegionDriver) IsSupportedDBInstanceAutoRenew() bool {
  237. return false
  238. }
  239. func (self *SBaseRegionDriver) IsSupportedElasticcache() bool {
  240. return false
  241. }
  242. func (self *SBaseRegionDriver) RequestSyncDiskStatus(ctx context.Context, userCred mcclient.TokenCredential, disk *models.SDisk, task taskman.ITask) error {
  243. return fmt.Errorf("Not Implement RequestSyncDiskStatus")
  244. }
  245. func (self *SBaseRegionDriver) RequestSyncSnapshotStatus(ctx context.Context, userCred mcclient.TokenCredential, snapshot *models.SSnapshot, task taskman.ITask) error {
  246. return fmt.Errorf("Not Implement RequestSyncSnapshotStatus")
  247. }
  248. func (self *SBaseRegionDriver) RequestSyncNatGatewayStatus(ctx context.Context, userCred mcclient.TokenCredential, natgateway *models.SNatGateway, task taskman.ITask) error {
  249. return fmt.Errorf("Not Implement RequestSyncNatGatewayStatus")
  250. }
  251. func (self *SBaseRegionDriver) RequestSyncBucketStatus(ctx context.Context, userCred mcclient.TokenCredential, bucket *models.SBucket, task taskman.ITask) error {
  252. return fmt.Errorf("Not Implement RequestSyncBucketStatus")
  253. }
  254. func (self *SBaseRegionDriver) RequestSyncDBInstanceBackupStatus(ctx context.Context, userCred mcclient.TokenCredential, backup *models.SDBInstanceBackup, task taskman.ITask) error {
  255. return fmt.Errorf("Not Implement RequestSyncDBInstanceBackupStatus")
  256. }
  257. func (self *SBaseRegionDriver) RequestCreateElasticcache(ctx context.Context, userCred mcclient.TokenCredential, ec *models.SElasticcache, task taskman.ITask, data *jsonutils.JSONDict) error {
  258. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestCreateElasticcache")
  259. }
  260. func (self *SBaseRegionDriver) RequestSyncElasticcacheStatus(ctx context.Context, userCred mcclient.TokenCredential, elasticcache *models.SElasticcache, task taskman.ITask) error {
  261. return fmt.Errorf("Not Implement RequestSyncElasticcacheStatus")
  262. }
  263. func (self *SBaseRegionDriver) RequestRemoteUpdateElasticcache(ctx context.Context, userCred mcclient.TokenCredential, elasticcache *models.SElasticcache, replaceTags bool, task taskman.ITask) error {
  264. // nil ops
  265. return nil
  266. }
  267. func (self *SBaseRegionDriver) RequestSyncSecgroupsForElasticcache(ctx context.Context, userCred mcclient.TokenCredential, ec *models.SElasticcache, task taskman.ITask) error {
  268. return fmt.Errorf("Not Implement RequestSyncSecgroupsForElasticcache")
  269. }
  270. func (self *SBaseRegionDriver) IsDBInstanceNeedSecgroup() bool {
  271. return false
  272. }
  273. func (self *SBaseRegionDriver) GetRdsSupportSecgroupCount() int {
  274. return 0
  275. }
  276. func (self *SBaseRegionDriver) RequestRenewElasticcache(ctx context.Context, userCred mcclient.TokenCredential, instance *models.SElasticcache, bc billing.SBillingCycle) error {
  277. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestRenewElasticcache")
  278. }
  279. func (self *SBaseRegionDriver) IsSupportedElasticcacheAutoRenew() bool {
  280. return false
  281. }
  282. func (self *SBaseRegionDriver) RequestElasticcacheSetAutoRenew(ctx context.Context, userCred mcclient.TokenCredential, ec *models.SElasticcache, autoRenew bool, task taskman.ITask) error {
  283. return fmt.Errorf("Not Implement RequestElasticcacheSetAutoRenew")
  284. }
  285. func (self *SBaseRegionDriver) RequestSyncRdsSecurityGroups(ctx context.Context, userCred mcclient.TokenCredential, rds *models.SDBInstance, task taskman.ITask) error {
  286. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestSyncRdsSecurityGroups")
  287. }
  288. func (self *SBaseRegionDriver) IsSupportedNatGateway() bool {
  289. return false
  290. }
  291. func (self *SBaseRegionDriver) IsSupportedNas() bool {
  292. return false
  293. }
  294. func (self *SBaseRegionDriver) OnNatEntryDeleteComplete(ctx context.Context, userCred mcclient.TokenCredential, eip *models.SElasticip) error {
  295. return nil
  296. }
  297. func (self *SBaseRegionDriver) ValidateCreateNatGateway(ctx context.Context, userCred mcclient.TokenCredential, input api.NatgatewayCreateInput) (api.NatgatewayCreateInput, error) {
  298. return input, httperrors.NewNotImplementedError("ValidateCreateNatGateway")
  299. }
  300. func (self *SBaseRegionDriver) IsSupportedNatAutoRenew() bool {
  301. return true
  302. }
  303. func (self *SBaseRegionDriver) RequestAssociateEip(ctx context.Context, userCred mcclient.TokenCredential, eip *models.SElasticip, input api.ElasticipAssociateInput, obj db.IStatusStandaloneModel, task taskman.ITask) error {
  304. return httperrors.NewNotImplementedError("RequestAssociateEip")
  305. }
  306. func (self *SBaseRegionDriver) ValidateCreateWafInstanceData(ctx context.Context, userCred mcclient.TokenCredential, input api.WafInstanceCreateInput) (api.WafInstanceCreateInput, error) {
  307. return input, errors.Wrapf(cloudprovider.ErrNotImplemented, "ValidateCreateWafInstanceData")
  308. }
  309. func (self *SBaseRegionDriver) ValidateCreateWafRuleData(ctx context.Context, userCred mcclient.TokenCredential, waf *models.SWafInstance, input api.WafRuleCreateInput) (api.WafRuleCreateInput, error) {
  310. return input, nil
  311. }
  312. func (self *SBaseRegionDriver) RequestCreateNetwork(ctx context.Context, userCred mcclient.TokenCredential, net *models.SNetwork, task taskman.ITask) error {
  313. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestCreateNetwork")
  314. }
  315. func (self *SBaseRegionDriver) RequestCreateBackup(ctx context.Context, backup *models.SDiskBackup, snapshotId string, task taskman.ITask) error {
  316. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestCreateBackup")
  317. }
  318. func (self *SBaseRegionDriver) RequestDeleteBackup(ctx context.Context, backup *models.SDiskBackup, task taskman.ITask) error {
  319. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestDeleteBackup")
  320. }
  321. func (self *SBaseRegionDriver) RequestCreateInstanceBackup(ctx context.Context, guest *models.SGuest, ib *models.SInstanceBackup, task taskman.ITask, params *jsonutils.JSONDict) error {
  322. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestCreateInstanceBackup")
  323. }
  324. func (self *SBaseRegionDriver) RequestDeleteInstanceBackup(ctx context.Context, ib *models.SInstanceBackup, task taskman.ITask) error {
  325. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestDeleteInstanceBackup")
  326. }
  327. func (self *SBaseRegionDriver) ValidateCreateCdnData(ctx context.Context, userCred mcclient.TokenCredential, input api.CDNDomainCreateInput) (api.CDNDomainCreateInput, error) {
  328. return input, errors.Wrapf(cloudprovider.ErrNotImplemented, "ValidateCreateCdnData")
  329. }
  330. func (self *SBaseRegionDriver) RequestSyncInstanceBackupStatus(ctx context.Context, userCred mcclient.TokenCredential, ib *models.SInstanceBackup, task taskman.ITask) error {
  331. return errors.Wrapf(cloudprovider.ErrNotImplemented, "SyncInstanceBackupStatus")
  332. }
  333. func (self *SBaseRegionDriver) RequestSyncBackupStorageStatus(ctx context.Context, userCred mcclient.TokenCredential, bs *models.SBackupStorage, task taskman.ITask) error {
  334. return errors.Wrapf(cloudprovider.ErrNotImplemented, "SyncBackupStorageStatus")
  335. }
  336. func (self *SBaseRegionDriver) RequestPackInstanceBackup(ctx context.Context, ib *models.SInstanceBackup, task taskman.ITask, packageName string) error {
  337. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestPackInstanceBackup")
  338. }
  339. func (self *SBaseRegionDriver) RequestUnpackInstanceBackup(ctx context.Context, ib *models.SInstanceBackup, task taskman.ITask, packageName string, metadataOnly bool) error {
  340. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestUnpackInstanceBackup")
  341. }
  342. func (self *SBaseRegionDriver) RequestRemoteUpdateElasticSearch(ctx context.Context, userCred mcclient.TokenCredential, elasticcache *models.SElasticSearch, replaceTags bool, task taskman.ITask) error {
  343. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestRemoteUpdateElasticSearch")
  344. }
  345. func (self *SBaseRegionDriver) RequestRemoteUpdateKafka(ctx context.Context, userCred mcclient.TokenCredential, kafka *models.SKafka, replaceTags bool, task taskman.ITask) error {
  346. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestRemoteUpdateElasticSearch")
  347. }
  348. func (self *SBaseRegionDriver) ValidateCreateKubeClusterData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, input *api.KubeClusterCreateInput) (*api.KubeClusterCreateInput, error) {
  349. return nil, errors.Wrapf(cloudprovider.ErrNotImplemented, "ValidateCreateKubeClusterData")
  350. }
  351. func (self *SBaseRegionDriver) ValidateCreateKubeNodePoolData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, input *api.KubeNodePoolCreateInput) (*api.KubeNodePoolCreateInput, error) {
  352. return nil, errors.Wrapf(cloudprovider.ErrNotImplemented, "ValidateCreateKubeNodePoolData")
  353. }
  354. func (self *SBaseRegionDriver) RequestCreateKubeCluster(ctx context.Context, userCred mcclient.TokenCredential, cluster *models.SKubeCluster, task taskman.ITask) error {
  355. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestCreateKubeCluster")
  356. }
  357. func (self *SBaseRegionDriver) RequestCreateKubeNodePool(ctx context.Context, userCred mcclient.TokenCredential, pool *models.SKubeNodePool, task taskman.ITask) error {
  358. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestCreateKubeNodePool")
  359. }
  360. func (drv *SBaseRegionDriver) RequestPrepareSecurityGroups(
  361. ctx context.Context,
  362. userCred mcclient.TokenCredential,
  363. ownerId mcclient.IIdentityProvider,
  364. secgroups []models.SSecurityGroup,
  365. vpc *models.SVpc,
  366. callback func(ids []string) error,
  367. task taskman.ITask,
  368. ) error {
  369. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestPrepareSecurityGroups")
  370. }
  371. func (drv *SBaseRegionDriver) CreateDefaultSecurityGroup(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, vpc *models.SVpc) (*models.SSecurityGroup, error) {
  372. return nil, errors.Wrapf(cloudprovider.ErrNotImplemented, "CreateDefaultSecurityGroup")
  373. }
  374. func (drv *SBaseRegionDriver) GetSecurityGroupFilter(vpc *models.SVpc) (func(q *sqlchemy.SQuery) *sqlchemy.SQuery, error) {
  375. return nil, errors.Wrapf(cloudprovider.ErrNotImplemented, "GetSecurityGroupFilter")
  376. }
  377. func (self *SBaseRegionDriver) ValidateUpdateSecurityGroupRuleInput(ctx context.Context, userCred mcclient.TokenCredential, input *api.SSecgroupRuleUpdateInput) (*api.SSecgroupRuleUpdateInput, error) {
  378. return nil, errors.Wrapf(cloudprovider.ErrNotImplemented, "ValidateUpdateSecurityGroupInput")
  379. }
  380. func (self *SBaseRegionDriver) ValidateCreateSnapshotPolicy(ctx context.Context, userCred mcclient.TokenCredential, region *models.SCloudregion, input *api.SSnapshotPolicyCreateInput) (*api.SSnapshotPolicyCreateInput, error) {
  381. return nil, errors.Wrapf(cloudprovider.ErrNotImplemented, "ValidateCreateSnapshotPolicy")
  382. }
  383. func (self *SBaseRegionDriver) RequestCreateSnapshotPolicy(ctx context.Context, userCred mcclient.TokenCredential, region *models.SCloudregion, sp *models.SSnapshotPolicy, task taskman.ITask) error {
  384. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestCreateSnapshotPolicy")
  385. }
  386. func (self *SBaseRegionDriver) RequestDeleteSnapshotPolicy(ctx context.Context, userCred mcclient.TokenCredential, region *models.SCloudregion, sp *models.SSnapshotPolicy, task taskman.ITask) error {
  387. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestDeleteSnapshotPolicy")
  388. }
  389. func (self *SBaseRegionDriver) RequestSnapshotPolicyBindDisks(ctx context.Context, userCred mcclient.TokenCredential, sp *models.SSnapshotPolicy, diskIds []string, task taskman.ITask) error {
  390. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestSnapshotPolicyBindDisks")
  391. }
  392. func (self *SBaseRegionDriver) RequestSnapshotPolicyUnbindDisks(ctx context.Context, userCred mcclient.TokenCredential, sp *models.SSnapshotPolicy, diskIds []string, task taskman.ITask) error {
  393. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestSnapshotPolicyUnbindDisks")
  394. }
  395. func (self *SBaseRegionDriver) RequestRemoteUpdateNetwork(ctx context.Context, userCred mcclient.TokenCredential, network *models.SNetwork, replaceTags bool, task taskman.ITask) error {
  396. return errors.Wrapf(cloudprovider.ErrNotImplemented, "RequestRemoteUpdateNetwork")
  397. }