Skip to content

Commit

Permalink
minor changes
Browse files Browse the repository at this point in the history
  • Loading branch information
anil-sarodh committed Nov 17, 2023
1 parent a109d3c commit 17f5a0c
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 62 deletions.
15 changes: 0 additions & 15 deletions capten/agent/internal/api/plugin_cloud_provider_apis.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,21 +23,6 @@ func (a *Agent) AddCloudProvider(ctx context.Context, request *captenpluginspb.A

a.log.Infof("Add Cloud Provider %s request received", request.CloudType)

project, err := a.as.GetCloudProviderByCloudType(request.CloudType)
if err != nil {
fmt.Println("Error => " + err.Error())
return &captenpluginspb.AddCloudProviderResponse{
Status: captenpluginspb.StatusCode_INTERNAL_ERROR,
StatusMessage: "failed to get cloud provider for " + request.CloudType,
}, nil
}
if project != nil {
return &captenpluginspb.AddCloudProviderResponse{
Status: captenpluginspb.StatusCode_INTERNAL_ERROR,
StatusMessage: "cloud provider is already available",
}, nil
}

id := uuid.New()
if err := a.storeCloudProviderCredential(ctx, id.String(), request.GetCloudAttributes()); err != nil {
return &captenpluginspb.AddCloudProviderResponse{
Expand Down
16 changes: 16 additions & 0 deletions capten/agent/internal/api/plugin_crossplane_provider_apis.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,22 @@ func (a *Agent) AddCrossplanProvider(ctx context.Context, request *captenplugins
}, nil
}
a.log.Infof("Add Crossplane Provider %s with cloud provider %s request recieved", request.ProviderName, request.CloudProviderId)

project, err := a.as.GetCrossplanProviderByCloudType(request.CloudType)
if err != nil {
a.log.Infof("failed to get crossplane provider", err)
return &captenpluginspb.AddCrossplanProviderResponse{
Status: captenpluginspb.StatusCode_INTERNAL_ERROR,
StatusMessage: "failed to get crossplane provider for " + request.CloudType,
}, nil
}
if project != nil {
return &captenpluginspb.AddCrossplanProviderResponse{
Status: captenpluginspb.StatusCode_NOT_FOUND,
StatusMessage: "Crossplane provider is already available",
}, nil
}

id := uuid.New()
provider := model.CrossplaneProvider{
Id: id.String(),
Expand Down
50 changes: 7 additions & 43 deletions capten/agent/internal/capten-store/cloud_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,13 @@ import (
)

const (
insertCloudProvider = "INSERT INTO %s.CloudProviders(id, cloud_type, labels, last_update_time) VALUES (?,?,?,?)"
insertCloudProviderId = "INSERT INTO %s.CloudProviders(id) VALUES (?)"
updateCloudProviderById = "UPDATE %s.CloudProviders SET %s WHERE id=?"
deleteCloudProviderById = "DELETE FROM %s.CloudProviders WHERE id= ?"
selectAllCloudProviders = "SELECT id, cloud_type, labels, last_update_time FROM %s.CloudProviders"
selectAllCloudProvidersByLabels = "SELECT id, cloud_type, labels, last_update_time FROM %s.CloudProviders WHERE %s"
selectGetCloudProviderById = "SELECT id, cloud_type, labels, last_update_time FROM %s.CloudProviders WHERE id=%s;"
selectGetCloudProviderByCloudType = "SELECT id, cloud_type, labels, last_update_time FROM %s.CloudProviders WHERE cloud_type='%s' ALLOW FILTERING;"
insertCloudProvider = "INSERT INTO %s.CloudProviders(id, cloud_type, labels, last_update_time) VALUES (?,?,?,?)"
insertCloudProviderId = "INSERT INTO %s.CloudProviders(id) VALUES (?)"
updateCloudProviderById = "UPDATE %s.CloudProviders SET %s WHERE id=?"
deleteCloudProviderById = "DELETE FROM %s.CloudProviders WHERE id= ?"
selectAllCloudProviders = "SELECT id, cloud_type, labels, last_update_time FROM %s.CloudProviders"
selectAllCloudProvidersByLabels = "SELECT id, cloud_type, labels, last_update_time FROM %s.CloudProviders WHERE %s"
selectGetCloudProviderById = "SELECT id, cloud_type, labels, last_update_time FROM %s.CloudProviders WHERE id=%s;"
)

func (a *Store) UpsertCloudProvider(config *captenpluginspb.CloudProvider) error {
Expand Down Expand Up @@ -92,41 +91,6 @@ func (a *Store) GetCloudProvidersByLabelsAndCloudType(searchLabels []string, clo

}

func (a *Store) GetCloudProviderByCloudType(cloudType string) (*captenpluginspb.CloudProvider, error) {
query := fmt.Sprintf(selectGetCloudProviderByCloudType, a.keyspace, cloudType)

selectQuery := a.client.Session().Query(query)
iter := selectQuery.Iter()

provider := captenpluginspb.CloudProvider{}
var labels []string

ret := make([]*captenpluginspb.CloudProvider, 0)
for iter.Scan(
&provider.Id, &provider.CloudType,
&labels, &provider.LastUpdateTime,
) {
labelsTmp := make([]string, len(labels))
copy(labelsTmp, labels)
CloudProvider := &captenpluginspb.CloudProvider{
Id: provider.Id,
CloudType: provider.CloudType,
Labels: labelsTmp,
LastUpdateTime: provider.LastUpdateTime,
}
ret = append(ret, CloudProvider)
}

if err := iter.Close(); err != nil {
return nil, errors.WithMessage(err, "failed to iterate through results:")
}

if len(ret) <= 0 {
return nil, nil
}
return ret[0], nil
}

func (a *Store) executeCloudProvidersSelectQuery(query string) ([]*captenpluginspb.CloudProvider, error) {
selectQuery := a.client.Session().Query(query)
iter := selectQuery.Iter()
Expand Down
39 changes: 35 additions & 4 deletions capten/agent/internal/capten-store/crossplane_store.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,11 @@ import (
)

const (
getAllCrossplaneProvidersQuery = "SELECT id, cloud_type, provider_name, cloud_provider_id, status FROM %s.CrossplaneProviders;"
insertCrossplaneProviderQuery = "INSERT INTO %s.CrossplaneProviders(id, cloud_type, provider_name, cloud_provider_id, status) VALUES (?, ?, ?, ?, ?);"
deleteCrossplaneProviderByIDQuery = "DELETE FROM %s.CrossplaneProviders WHERE id=%s;"
updateCrossplaneProviderQuery = "UPDATE %s.CrossplaneProviders SET cloud_type=?, provider_name=?, cloud_provider_id=?, status=? WHERE id=?;"
getAllCrossplaneProvidersQuery = "SELECT id, cloud_type, provider_name, cloud_provider_id, status FROM %s.CrossplaneProviders;"
insertCrossplaneProviderQuery = "INSERT INTO %s.CrossplaneProviders(id, cloud_type, provider_name, cloud_provider_id, status) VALUES (?, ?, ?, ?, ?);"
deleteCrossplaneProviderByIDQuery = "DELETE FROM %s.CrossplaneProviders WHERE id=%s;"
updateCrossplaneProviderQuery = "UPDATE %s.CrossplaneProviders SET cloud_type=?, provider_name=?, cloud_provider_id=?, status=? WHERE id=?;"
selectGetCrossplaneProviderByCloudType = "SELECT id, cloud_type, provider_name, cloud_provider_id, status FROM %s.CrossplaneProviders WHERE cloud_type='%s' ALLOW FILTERING;"
)

func (a *Store) InsertCrossplaneProvider(provider *model.CrossplaneProvider) error {
Expand Down Expand Up @@ -81,3 +82,33 @@ func (a *Store) UpdateCrossplaneProvider(provider *model.CrossplaneProvider) err
err := a.client.Session().ExecuteBatch(batch)
return err
}

func (a *Store) GetCrossplanProviderByCloudType(cloudType string) (*captenpluginspb.CrossplaneProvider, error) {
query := fmt.Sprintf(selectGetCrossplaneProviderByCloudType, a.keyspace, cloudType)

selectQuery := a.client.Session().Query(query)
iter := selectQuery.Iter()

var provider captenpluginspb.CrossplaneProvider
providers := make([]*captenpluginspb.CrossplaneProvider, 0)

for iter.Scan(&provider.Id, &provider.CloudType, &provider.ProviderName, &provider.CloudProviderId, &provider.Status) {
tmpProvider := &captenpluginspb.CrossplaneProvider{
Id: provider.Id,
CloudType: provider.CloudType,
ProviderName: provider.ProviderName,
CloudProviderId: provider.CloudProviderId,
Status: provider.Status,
}
providers = append(providers, tmpProvider)
}

if err := iter.Close(); err != nil {
return nil, errors.Wrap(err, "error occured while iterating through results")
}

if len(providers) <= 0 {
return nil, nil
}
return providers[0], nil
}

0 comments on commit 17f5a0c

Please sign in to comment.