From 538a53cd3de5460cf36a91551d19a883ee316d5a Mon Sep 17 00:00:00 2001 From: TangBin Date: Wed, 26 Sep 2018 18:31:55 +0800 Subject: [PATCH] init files --- pkg/compute/guestdrivers/aws.go | 1 + pkg/compute/hostdrivers/aws.go | 1 + pkg/compute/models/cloudproviders.go | 1 + pkg/util/aws/aws.go | 80 ++++++++++++++++++++++++++++ pkg/util/aws/provider/provider.go | 71 ++++++++++++++++++++++++ pkg/util/aws/region.go | 19 +++++++ pkg/util/aws/storagecache.go | 9 ++++ 7 files changed, 182 insertions(+) create mode 100644 pkg/compute/guestdrivers/aws.go create mode 100644 pkg/compute/hostdrivers/aws.go create mode 100644 pkg/util/aws/aws.go create mode 100644 pkg/util/aws/provider/provider.go create mode 100644 pkg/util/aws/region.go create mode 100644 pkg/util/aws/storagecache.go diff --git a/pkg/compute/guestdrivers/aws.go b/pkg/compute/guestdrivers/aws.go new file mode 100644 index 0000000000..32dd08a21e --- /dev/null +++ b/pkg/compute/guestdrivers/aws.go @@ -0,0 +1 @@ +package guestdrivers diff --git a/pkg/compute/hostdrivers/aws.go b/pkg/compute/hostdrivers/aws.go new file mode 100644 index 0000000000..a58d95a88b --- /dev/null +++ b/pkg/compute/hostdrivers/aws.go @@ -0,0 +1 @@ +package hostdrivers diff --git a/pkg/compute/models/cloudproviders.go b/pkg/compute/models/cloudproviders.go index 1b085ba0dc..21c45b325f 100644 --- a/pkg/compute/models/cloudproviders.go +++ b/pkg/compute/models/cloudproviders.go @@ -28,6 +28,7 @@ const ( CLOUD_PROVIDER_VMWARE = "VMware" CLOUD_PROVIDER_ALIYUN = "Aliyun" CLOUD_PROVIDER_AZURE = "Azure" + CLOUD_PROVIDER_AWS = "Aws" ) type SCloudproviderManager struct { diff --git a/pkg/util/aws/aws.go b/pkg/util/aws/aws.go new file mode 100644 index 0000000000..aca8f8593f --- /dev/null +++ b/pkg/util/aws/aws.go @@ -0,0 +1,80 @@ +package aws + +import ( + "yunion.io/x/onecloud/pkg/cloudprovider" + "yunion.io/x/onecloud/pkg/compute/models" +) + +const ( + CLOUD_PROVIDER_AWS = models.CLOUD_PROVIDER_AWS + CLOUD_PROVIDER_AWS_CN = "AWS" +) + +type SAwsClient struct { + providerId string + providerName string + accessKey string + secret string + iregions []cloudprovider.ICloudRegion +} + +func (self *SAwsClient) fetchRegions() error { + panic("implement me") +} + +func (self *SAwsClient) GetRegions() error { + panic("implement me") +} + +func (self *SAwsClient) UpdateAccount(tenantId, secret, envName string) error { + return nil +} + +func (self *SAwsClient) GetIRegions() []cloudprovider.ICloudRegion { + panic("implement me") +} + +func (self *SAwsClient) GetIRegionById(id string) (cloudprovider.ICloudRegion, error) { + panic("implement me") +} + +func (self *SAwsClient) GetRegion(regionId string) *SRegion { + return nil +} + +func (self *SAwsClient) GetIHostById(id string) (cloudprovider.ICloudHost, error) { + panic("implement me") +} + +func (self *SAwsClient) GetIVpcById(id string) (cloudprovider.ICloudVpc, error) { + panic("implement me") +} + +func (self *SAwsClient) GetIStorageById(id string) (cloudprovider.ICloudStorage, error) { + panic("implement me") +} + +func (self *SAwsClient) GetIStoragecacheById(id string) (cloudprovider.ICloudStoragecache, error) { + panic("implement me") +} + +type SAccountBalance struct { + AvailableAmount float64 + AvailableCashAmount float64 + CreditAmount float64 + MybankCreditAmount float64 + Currency string +} + +func (self *SAwsClient) QueryAccountBalance() (*SAccountBalance, error) { + panic("implement me") +} + +func NewAwsClient(providerId string, providerName string, accessKey string, secret string) (*SAwsClient, error) { + client := SAwsClient{providerId: providerId, providerName: providerName, accessKey: accessKey, secret: secret} + err := client.fetchRegions() + if err != nil { + return nil, err + } + return &client, nil +} diff --git a/pkg/util/aws/provider/provider.go b/pkg/util/aws/provider/provider.go new file mode 100644 index 0000000000..8a079729c0 --- /dev/null +++ b/pkg/util/aws/provider/provider.go @@ -0,0 +1,71 @@ +package provider + +import ( + "yunion.io/x/jsonutils" + "yunion.io/x/onecloud/pkg/cloudprovider" + "yunion.io/x/onecloud/pkg/util/aws" +) + +type SAwsProviderFactory struct { +} + +func (self *SAwsProviderFactory) GetId() string { + return aws.CLOUD_PROVIDER_AWS +} + +func (self *SAwsProviderFactory) GetProvider(providerId, providerName, url, account, secret string) (cloudprovider.ICloudProvider, error) { + panic("implement me") +} + +func init() { + factory := SAwsProviderFactory{} + cloudprovider.RegisterFactory(&factory) +} + +type SAwsProvider struct { + client *aws.SAwsClient +} + +func (self *SAwsProvider) GetId() string { + panic("implement me") +} + +func (self *SAwsProvider) GetName() string { + panic("implement me") +} + +func (self *SAwsProvider) GetIRegions() []cloudprovider.ICloudRegion { + panic("implement me") +} + +func (self *SAwsProvider) GetSysInfo() (jsonutils.JSONObject, error) { + panic("implement me") +} + +func (self *SAwsProvider) IsPublicCloud() bool { + panic("implement me") +} + +func (self *SAwsProvider) GetIRegionById(id string) (cloudprovider.ICloudRegion, error) { + panic("implement me") +} + +func (self *SAwsProvider) GetIHostById(id string) (cloudprovider.ICloudHost, error) { + panic("implement me") +} + +func (self *SAwsProvider) GetIVpcById(id string) (cloudprovider.ICloudVpc, error) { + panic("implement me") +} + +func (self *SAwsProvider) GetIStorageById(id string) (cloudprovider.ICloudStorage, error) { + panic("implement me") +} + +func (self *SAwsProvider) GetIStoragecacheById(id string) (cloudprovider.ICloudStoragecache, error) { + panic("implement me") +} + +func (self *SAwsProvider) GetBalance() (float64, error) { + panic("implement me") +} diff --git a/pkg/util/aws/region.go b/pkg/util/aws/region.go new file mode 100644 index 0000000000..137d6bf5f9 --- /dev/null +++ b/pkg/util/aws/region.go @@ -0,0 +1,19 @@ +package aws + +import "yunion.io/x/onecloud/pkg/cloudprovider" + +type SRegion struct { + client *SAwsClient + + izones []cloudprovider.ICloudZone + ivpcs []cloudprovider.ICloudVpc + + storageCache *SStoragecache + + ID string + SubscriptionID string + Name string + DisplayName string + Latitude float32 + Longitude float32 +} diff --git a/pkg/util/aws/storagecache.go b/pkg/util/aws/storagecache.go new file mode 100644 index 0000000000..bf90ca779a --- /dev/null +++ b/pkg/util/aws/storagecache.go @@ -0,0 +1,9 @@ +package aws + +import "yunion.io/x/onecloud/pkg/cloudprovider" + +type SStoragecache struct { + region *SRegion + + iimages []cloudprovider.ICloudImage +}