parent
							
								
									d527d9b474
								
							
						
					
					
						commit
						9912b04c2a
					
				| @ -0,0 +1,114 @@ | |||||||
|  | /* | ||||||
|  | Copyright (c) 2019-2021 Digital Energy Cloud Solutions LLC. All Rights Reserved. | ||||||
|  | Author: Sergey Shubin, <sergey.shubin@digitalenergy.online>, <svs1370@gmail.com> | ||||||
|  | 
 | ||||||
|  | Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  | you may not use this file except in compliance with the License. | ||||||
|  | You may obtain a copy of the License at | ||||||
|  | 
 | ||||||
|  |     http://www.apache.org/licenses/LICENSE-2.0
 | ||||||
|  | 
 | ||||||
|  | Unless required by applicable law or agreed to in writing, software | ||||||
|  | distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  | See the License for the specific language governing permissions and | ||||||
|  | limitations under the License. | ||||||
|  | */ | ||||||
|  | 
 | ||||||
|  | /* | ||||||
|  | This file is part of Terraform (by Hashicorp) provider for Digital Energy Cloud Orchestration | ||||||
|  | Technology platfom. | ||||||
|  | 
 | ||||||
|  | Visit https://github.com/rudecs/terraform-provider-decort for full source code package and updates.
 | ||||||
|  | */ | ||||||
|  | 
 | ||||||
|  | package decort | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"github.com/google/uuid" | ||||||
|  | 	"github.com/hashicorp/terraform-plugin-sdk/helper/schema" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | func flattenAccountAuditsList(aal AccountAuditsList) []map[string]interface{} { | ||||||
|  | 	res := make([]map[string]interface{}, 0) | ||||||
|  | 	for _, aa := range aal { | ||||||
|  | 		temp := map[string]interface{}{ | ||||||
|  | 			"call":         aa.Call, | ||||||
|  | 			"responsetime": aa.ResponseTime, | ||||||
|  | 			"statuscode":   aa.StatusCode, | ||||||
|  | 			"timestamp":    aa.Timestamp, | ||||||
|  | 			"user":         aa.User, | ||||||
|  | 		} | ||||||
|  | 		res = append(res, temp) | ||||||
|  | 	} | ||||||
|  | 	return res | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func dataSourceAccountAuditsListRead(d *schema.ResourceData, m interface{}) error { | ||||||
|  | 	accountAuditsList, err := utilityAccountAuditsListCheckPresence(d, m) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	id := uuid.New() | ||||||
|  | 	d.SetId(id.String()) | ||||||
|  | 	d.Set("items", flattenAccountAuditsList(accountAuditsList)) | ||||||
|  | 
 | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func dataSourceAccountAuditsListSchemaMake() map[string]*schema.Schema { | ||||||
|  | 	res := map[string]*schema.Schema{ | ||||||
|  | 		"account_id": { | ||||||
|  | 			Type:        schema.TypeInt, | ||||||
|  | 			Required:    true, | ||||||
|  | 			Description: "ID of the account", | ||||||
|  | 		}, | ||||||
|  | 		"items": { | ||||||
|  | 			Type:        schema.TypeList, | ||||||
|  | 			Computed:    true, | ||||||
|  | 			Description: "Search Result", | ||||||
|  | 			Elem: &schema.Resource{ | ||||||
|  | 				Schema: map[string]*schema.Schema{ | ||||||
|  | 					"call": { | ||||||
|  | 						Type:     schema.TypeString, | ||||||
|  | 						Computed: true, | ||||||
|  | 					}, | ||||||
|  | 					"responsetime": { | ||||||
|  | 						Type:     schema.TypeFloat, | ||||||
|  | 						Computed: true, | ||||||
|  | 					}, | ||||||
|  | 					"statuscode": { | ||||||
|  | 						Type:     schema.TypeInt, | ||||||
|  | 						Computed: true, | ||||||
|  | 					}, | ||||||
|  | 					"timestamp": { | ||||||
|  | 						Type:     schema.TypeFloat, | ||||||
|  | 						Computed: true, | ||||||
|  | 					}, | ||||||
|  | 					"user": { | ||||||
|  | 						Type:     schema.TypeString, | ||||||
|  | 						Computed: true, | ||||||
|  | 					}, | ||||||
|  | 				}, | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 	} | ||||||
|  | 	return res | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func dataSourceAccountAuditsList() *schema.Resource { | ||||||
|  | 	return &schema.Resource{ | ||||||
|  | 		SchemaVersion: 1, | ||||||
|  | 
 | ||||||
|  | 		Read: dataSourceAccountAuditsListRead, | ||||||
|  | 
 | ||||||
|  | 		Timeouts: &schema.ResourceTimeout{ | ||||||
|  | 			Read:    &Timeout30s, | ||||||
|  | 			Default: &Timeout60s, | ||||||
|  | 		}, | ||||||
|  | 
 | ||||||
|  | 		Schema: dataSourceAccountAuditsListSchemaMake(), | ||||||
|  | 	} | ||||||
|  | } | ||||||
| @ -0,0 +1,56 @@ | |||||||
|  | /* | ||||||
|  | Copyright (c) 2019-2022 Digital Energy Cloud Solutions LLC. All Rights Reserved. | ||||||
|  | Author: Stanislav Solovev, <spsolovev@digitalenergy.online>, <svs1370@gmail.com> | ||||||
|  | 
 | ||||||
|  | Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  | you may not use this file except in compliance with the License. | ||||||
|  | You may obtain a copy of the License at | ||||||
|  | 
 | ||||||
|  |     http://www.apache.org/licenses/LICENSE-2.0
 | ||||||
|  | 
 | ||||||
|  | Unless required by applicable law or agreed to in writing, software | ||||||
|  | distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  | See the License for the specific language governing permissions and | ||||||
|  | limitations under the License. | ||||||
|  | */ | ||||||
|  | 
 | ||||||
|  | /* | ||||||
|  | This file is part of Terraform (by Hashicorp) provider for Digital Energy Cloud Orchestration | ||||||
|  | Technology platfom. | ||||||
|  | 
 | ||||||
|  | Visit https://github.com/rudecs/terraform-provider-decort for full source code package and updates.
 | ||||||
|  | */ | ||||||
|  | 
 | ||||||
|  | package decort | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"encoding/json" | ||||||
|  | 	"net/url" | ||||||
|  | 	"strconv" | ||||||
|  | 
 | ||||||
|  | 	log "github.com/sirupsen/logrus" | ||||||
|  | 
 | ||||||
|  | 	"github.com/hashicorp/terraform-plugin-sdk/helper/schema" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | func utilityAccountAuditsListCheckPresence(d *schema.ResourceData, m interface{}) (AccountAuditsList, error) { | ||||||
|  | 	accountAuditsList := AccountAuditsList{} | ||||||
|  | 	controller := m.(*ControllerCfg) | ||||||
|  | 	urlValues := &url.Values{} | ||||||
|  | 
 | ||||||
|  | 	urlValues.Add("accountId", strconv.Itoa(d.Get("account_id").(int))) | ||||||
|  | 
 | ||||||
|  | 	log.Debugf("utilityAccountAuditsListCheckPresence: load account list") | ||||||
|  | 	accountAuditsListRaw, err := controller.decortAPICall("POST", accountAuditsAPI, urlValues) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	err = json.Unmarshal([]byte(accountAuditsListRaw), &accountAuditsList) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return accountAuditsList, nil | ||||||
|  | } | ||||||
					Loading…
					
					
				
		Reference in new issue