parent
							
								
									ce4b847596
								
							
						
					
					
						commit
						0faa6cbbd1
					
				| @ -1,6 +1,20 @@ | ||||
| ## Version 4.4.3 | ||||
| ## Version 4.4.4 | ||||
| 
 | ||||
| ### Bugfix | ||||
| - Fixed panic  | ||||
| - Fixed field description in cloudapi/kvmvm/resource_compute | ||||
| - Fixed field owner in request create lb in cloudapi/cloudbroker | ||||
| - Changed field Value in schema resource kvmvm in blocks affinity_rules and anti_affinity_rules from required to optional in cloudapi  | ||||
| - Changed the format ID in resource k8s_wg from wg_id to k8s_id#wg_id | ||||
| - Fixed scripts intall.bat and intall.sh | ||||
| - Change logic from disk delete and disk add to disk rename when disk.disk_name field is changed in resource cloudapi/kvmvm | ||||
| - Fix allowed network plugin value from "weawenet" to "weavenet" for k8ci, k8s resources in cloudbroker and for k8s resource in cloudapi | ||||
| - Fix bug with deleting decort_bservice resource when setting enable=false in cloudapi/bservice | ||||
| - Fix panic in data source decort_bservice_snapshot_list in cloudapi/bservice | ||||
| - Fix panic in data source decort_rg_affinity_groups_list in cloudapi/rg | ||||
| - Fix duplicate enabling of bservice after create in cloudapi/bservice | ||||
| - Fix start of bservice after create in cloudapi/b | ||||
| - Fix permanently field for disks delete, change default value from true to false in decort_kvmvm in cloudapi/kvmvm | ||||
| 
 | ||||
| ### Feature | ||||
| - Add "permanently" flag in k8s, k8s_cp in cloudapi | ||||
| - Add RAM validation in cloudapi/[k8s, k8s_cp, k8s_wg, kvmvm, bservice] | ||||
| - Add RAM validation in cloudbroker/[k8s, k8s_wg, kvmvm] | ||||
| - Add field restore in cloudapi/disk resource | ||||
| @ -1,105 +1,105 @@ | ||||
| /* | ||||
| Copyright (c) 2019-2022 Digital Energy Cloud Solutions LLC. All Rights Reserved. | ||||
| Authors: | ||||
| Petr Krutov, <petr.krutov@digitalenergy.online> | ||||
| Stanislav Solovev, <spsolovev@digitalenergy.online> | ||||
| Kasim Baybikov, <kmbaybikov@basistech.ru> | ||||
| 
 | ||||
| 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. | ||||
| */ | ||||
| 
 | ||||
| /* | ||||
| Terraform DECORT provider - manage resources provided by DECORT (Digital Energy Cloud | ||||
| Orchestration Technology) with Terraform by Hashicorp. | ||||
| 
 | ||||
| Source code: https://repository.basistech.ru/BASIS/terraform-provider-decort
 | ||||
| 
 | ||||
| Please see README.md to learn where to place source code so that it | ||||
| builds seamlessly. | ||||
| 
 | ||||
| Documentation: https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki
 | ||||
| */ | ||||
| 
 | ||||
| package bservice | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 
 | ||||
| 	"github.com/google/uuid" | ||||
| 	"github.com/hashicorp/terraform-plugin-sdk/v2/diag" | ||||
| 	"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" | ||||
| 	"repository.basistech.ru/BASIS/terraform-provider-decort/internal/constants" | ||||
| ) | ||||
| 
 | ||||
| func dataSourceBasicServiceSnapshotListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { | ||||
| 	basicServiceSnapshotList, err := utilityBasicServiceSnapshotListCheckPresence(ctx, d, m) | ||||
| 	if err != nil { | ||||
| 		return diag.FromErr(err) | ||||
| 	} | ||||
| 
 | ||||
| 	id := uuid.New() | ||||
| 	d.SetId(id.String()) | ||||
| 	d.Set("items", flattenBasicServiceSnapshots(basicServiceSnapshotList)) | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func dataSourceBasicServiceSnapshotListSchemaMake() map[string]*schema.Schema { | ||||
| 	res := map[string]*schema.Schema{ | ||||
| 		"service_id": { | ||||
| 			Type:        schema.TypeInt, | ||||
| 			Required:    true, | ||||
| 			Description: "ID of the BasicService instance", | ||||
| 		}, | ||||
| 		"items": { | ||||
| 			Type:     schema.TypeList, | ||||
| 			Computed: true, | ||||
| 			Elem: &schema.Resource{ | ||||
| 				Schema: map[string]*schema.Schema{ | ||||
| 					"guid": { | ||||
| 						Type:     schema.TypeString, | ||||
| 						Computed: true, | ||||
| 					}, | ||||
| 					"label": { | ||||
| 						Type:     schema.TypeString, | ||||
| 						Computed: true, | ||||
| 					}, | ||||
| 					"timestamp": { | ||||
| 						Type:     schema.TypeInt, | ||||
| 						Computed: true, | ||||
| 					}, | ||||
| 					"valid": { | ||||
| 						Type:     schema.TypeBool, | ||||
| 						Computed: true, | ||||
| 					}, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	} | ||||
| 	return res | ||||
| } | ||||
| 
 | ||||
| func DataSourceBasicServiceSnapshotList() *schema.Resource { | ||||
| 	return &schema.Resource{ | ||||
| 		SchemaVersion: 1, | ||||
| 
 | ||||
| 		ReadContext: dataSourceBasicServiceSnapshotListRead, | ||||
| 
 | ||||
| 		Timeouts: &schema.ResourceTimeout{ | ||||
| 			Read:    &constants.Timeout30s, | ||||
| 			Default: &constants.Timeout60s, | ||||
| 		}, | ||||
| 
 | ||||
| 		Schema: dataSourceBasicServiceSnapshotListSchemaMake(), | ||||
| 	} | ||||
| } | ||||
| /* | ||||
| Copyright (c) 2019-2022 Digital Energy Cloud Solutions LLC. All Rights Reserved. | ||||
| Authors: | ||||
| Petr Krutov, <petr.krutov@digitalenergy.online> | ||||
| Stanislav Solovev, <spsolovev@digitalenergy.online> | ||||
| Kasim Baybikov, <kmbaybikov@basistech.ru> | ||||
| 
 | ||||
| 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. | ||||
| */ | ||||
| 
 | ||||
| /* | ||||
| Terraform DECORT provider - manage resources provided by DECORT (Digital Energy Cloud | ||||
| Orchestration Technology) with Terraform by Hashicorp. | ||||
| 
 | ||||
| Source code: https://repository.basistech.ru/BASIS/terraform-provider-decort
 | ||||
| 
 | ||||
| Please see README.md to learn where to place source code so that it | ||||
| builds seamlessly. | ||||
| 
 | ||||
| Documentation: https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki
 | ||||
| */ | ||||
| 
 | ||||
| package bservice | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 
 | ||||
| 	"github.com/google/uuid" | ||||
| 	"github.com/hashicorp/terraform-plugin-sdk/v2/diag" | ||||
| 	"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" | ||||
| 	"repository.basistech.ru/BASIS/terraform-provider-decort/internal/constants" | ||||
| ) | ||||
| 
 | ||||
| func dataSourceBasicServiceSnapshotListRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics { | ||||
| 	basicServiceSnapshotList, err := utilityBasicServiceSnapshotListCheckPresence(ctx, d, m) | ||||
| 	if err != nil { | ||||
| 		return diag.FromErr(err) | ||||
| 	} | ||||
| 
 | ||||
| 	id := uuid.New() | ||||
| 	d.SetId(id.String()) | ||||
| 	d.Set("items", flattenBasicServiceSnapshots(basicServiceSnapshotList.Data)) | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func dataSourceBasicServiceSnapshotListSchemaMake() map[string]*schema.Schema { | ||||
| 	res := map[string]*schema.Schema{ | ||||
| 		"service_id": { | ||||
| 			Type:        schema.TypeInt, | ||||
| 			Required:    true, | ||||
| 			Description: "ID of the BasicService instance", | ||||
| 		}, | ||||
| 		"items": { | ||||
| 			Type:     schema.TypeList, | ||||
| 			Computed: true, | ||||
| 			Elem: &schema.Resource{ | ||||
| 				Schema: map[string]*schema.Schema{ | ||||
| 					"guid": { | ||||
| 						Type:     schema.TypeString, | ||||
| 						Computed: true, | ||||
| 					}, | ||||
| 					"label": { | ||||
| 						Type:     schema.TypeString, | ||||
| 						Computed: true, | ||||
| 					}, | ||||
| 					"timestamp": { | ||||
| 						Type:     schema.TypeInt, | ||||
| 						Computed: true, | ||||
| 					}, | ||||
| 					"valid": { | ||||
| 						Type:     schema.TypeBool, | ||||
| 						Computed: true, | ||||
| 					}, | ||||
| 				}, | ||||
| 			}, | ||||
| 		}, | ||||
| 	} | ||||
| 	return res | ||||
| } | ||||
| 
 | ||||
| func DataSourceBasicServiceSnapshotList() *schema.Resource { | ||||
| 	return &schema.Resource{ | ||||
| 		SchemaVersion: 1, | ||||
| 
 | ||||
| 		ReadContext: dataSourceBasicServiceSnapshotListRead, | ||||
| 
 | ||||
| 		Timeouts: &schema.ResourceTimeout{ | ||||
| 			Read:    &constants.Timeout30s, | ||||
| 			Default: &constants.Timeout60s, | ||||
| 		}, | ||||
| 
 | ||||
| 		Schema: dataSourceBasicServiceSnapshotListSchemaMake(), | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @ -1,64 +1,64 @@ | ||||
| /* | ||||
| Copyright (c) 2019-2022 Digital Energy Cloud Solutions LLC. All Rights Reserved. | ||||
| Authors: | ||||
| Petr Krutov, <petr.krutov@digitalenergy.online> | ||||
| Stanislav Solovev, <spsolovev@digitalenergy.online> | ||||
| Kasim Baybikov, <kmbaybikov@basistech.ru> | ||||
| 
 | ||||
| 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. | ||||
| */ | ||||
| 
 | ||||
| /* | ||||
| Terraform DECORT provider - manage resources provided by DECORT (Digital Energy Cloud | ||||
| Orchestration Technology) with Terraform by Hashicorp. | ||||
| 
 | ||||
| Source code: https://repository.basistech.ru/BASIS/terraform-provider-decort
 | ||||
| 
 | ||||
| Please see README.md to learn where to place source code so that it | ||||
| builds seamlessly. | ||||
| 
 | ||||
| Documentation: https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki
 | ||||
| */ | ||||
| 
 | ||||
| package bservice | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 
 | ||||
| 	log "github.com/sirupsen/logrus" | ||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudapi/bservice" | ||||
| 	"repository.basistech.ru/BASIS/terraform-provider-decort/internal/controller" | ||||
| 
 | ||||
| 	"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" | ||||
| ) | ||||
| 
 | ||||
| func utilityBasicServiceSnapshotListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (bservice.ListSnapshots, error) { | ||||
| 	c := m.(*controller.ControllerCfg) | ||||
| 	var id uint64 | ||||
| 
 | ||||
| 	if serviceId, ok := d.GetOk("service_id"); ok { | ||||
| 		id = uint64(serviceId.(int)) | ||||
| 	} | ||||
| 
 | ||||
| 	req := bservice.SnapshotListRequest{ | ||||
| 		ServiceID: id, | ||||
| 	} | ||||
| 
 | ||||
| 	log.Debugf("utilityBasicServiceSnapshotListCheckPresence") | ||||
| 	basicServiceSnapshotList, err := c.CloudAPI().BService().SnapshotList(ctx, req) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 
 | ||||
| 	return basicServiceSnapshotList, nil | ||||
| } | ||||
| /* | ||||
| Copyright (c) 2019-2022 Digital Energy Cloud Solutions LLC. All Rights Reserved. | ||||
| Authors: | ||||
| Petr Krutov, <petr.krutov@digitalenergy.online> | ||||
| Stanislav Solovev, <spsolovev@digitalenergy.online> | ||||
| Kasim Baybikov, <kmbaybikov@basistech.ru> | ||||
| 
 | ||||
| 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. | ||||
| */ | ||||
| 
 | ||||
| /* | ||||
| Terraform DECORT provider - manage resources provided by DECORT (Digital Energy Cloud | ||||
| Orchestration Technology) with Terraform by Hashicorp. | ||||
| 
 | ||||
| Source code: https://repository.basistech.ru/BASIS/terraform-provider-decort
 | ||||
| 
 | ||||
| Please see README.md to learn where to place source code so that it | ||||
| builds seamlessly. | ||||
| 
 | ||||
| Documentation: https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki
 | ||||
| */ | ||||
| 
 | ||||
| package bservice | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 
 | ||||
| 	log "github.com/sirupsen/logrus" | ||||
| 	"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/cloudapi/bservice" | ||||
| 	"repository.basistech.ru/BASIS/terraform-provider-decort/internal/controller" | ||||
| 
 | ||||
| 	"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" | ||||
| ) | ||||
| 
 | ||||
| func utilityBasicServiceSnapshotListCheckPresence(ctx context.Context, d *schema.ResourceData, m interface{}) (*bservice.ListInfoSnapshots, error) { | ||||
| 	c := m.(*controller.ControllerCfg) | ||||
| 	var id uint64 | ||||
| 
 | ||||
| 	if serviceId, ok := d.GetOk("service_id"); ok { | ||||
| 		id = uint64(serviceId.(int)) | ||||
| 	} | ||||
| 
 | ||||
| 	req := bservice.SnapshotListRequest{ | ||||
| 		ServiceID: id, | ||||
| 	} | ||||
| 
 | ||||
| 	log.Debugf("utilityBasicServiceSnapshotListCheckPresence") | ||||
| 	basicServiceSnapshotList, err := c.CloudAPI().BService().SnapshotList(ctx, req) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 
 | ||||
| 	return basicServiceSnapshotList, nil | ||||
| } | ||||
|  | ||||
| @ -0,0 +1,22 @@ | ||||
| package validators | ||||
| 
 | ||||
| import ( | ||||
| 	"fmt" | ||||
| 
 | ||||
| 	"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" | ||||
| ) | ||||
| 
 | ||||
| func DivisibleBy(divisibility int) schema.SchemaValidateFunc { | ||||
| 	return func(i interface{}, k string) (warnings []string, errors []error) { | ||||
| 		total, ok := i.(int) | ||||
| 		if !ok { | ||||
| 			errors = append(errors, fmt.Errorf("expected type of %s to be integer", k)) | ||||
| 			return warnings, errors | ||||
| 		} | ||||
| 		if total % divisibility != 0 { | ||||
| 			errors = append(errors, fmt.Errorf("expected value of %s to be divisible by %d", k, divisibility)) | ||||
| 		} | ||||
| 
 | ||||
| 		return warnings, errors | ||||
| 	} | ||||
| } | ||||
					Loading…
					
					
				
		Reference in new issue