Skip to content

Commit

Permalink
feat: Add ability to disable tenants
Browse files Browse the repository at this point in the history
  • Loading branch information
grace-rehn committed Nov 20, 2024
1 parent e688aa7 commit eaf4994
Show file tree
Hide file tree
Showing 7 changed files with 30 additions and 7 deletions.
2 changes: 2 additions & 0 deletions docs/data-sources/tenants.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ Provides information about existing tenants.
- `cloned_from_tenant_id` (String) A filter to search for a cloned tenant by its ID.
- `ids` (List of String) A filter to search by a list of IDs.
- `is_clone` (Boolean) A filter to search for cloned resources.
- `is_disabled` (Boolean) A filter to search by the disabled status of a resource.
- `name` (String) A filter to search by name.
- `partial_name` (String) A filter to search by a partial name.
- `project_id` (String) A filter to search by a project ID.
Expand All @@ -41,6 +42,7 @@ Read-Only:
- `cloned_from_tenant_id` (String) The ID of the tenant from which this tenant was cloned.
- `description` (String) The description of this tenants.
- `id` (String) The unique ID for this resource.
- `is_disabled` (Boolean) the disabled status of this tenant.
- `name` (String) The name of this resource.
- `space_id` (String) The space ID associated with this tenant.
- `tenant_tags` (Set of String) A list of tenant tags associated with this resource.
Expand Down
1 change: 1 addition & 0 deletions docs/resources/tenant.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ This resource manages tenants in Octopus Deploy.

- `cloned_from_tenant_id` (String) The ID of the tenant from which this tenant was cloned.
- `description` (String) The description of this tenant.
- `is_disabled` (Boolean) The disabled status of this tenant.
- `space_id` (String) The space ID associated with this tenant.
- `tenant_tags` (Set of String) A list of tenant tags associated with this resource.

Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module github.com/OctopusDeploy/terraform-provider-octopusdeploy
go 1.21

require (
github.com/OctopusDeploy/go-octopusdeploy/v2 v2.55.0
github.com/OctopusDeploy/go-octopusdeploy/v2 v2.58.0
github.com/OctopusSolutionsEngineering/OctopusTerraformTestFramework v0.0.0-20240729041805-46db6fb717b4
github.com/google/uuid v1.6.0
github.com/hashicorp/go-cty v1.4.1-0.20200723130312-85980079f637
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ github.com/Microsoft/hcsshim v0.12.4 h1:Ev7YUMHAHoWNm+aDSPzc5W9s6E2jyL1szpVDJeZ/
github.com/Microsoft/hcsshim v0.12.4/go.mod h1:Iyl1WVpZzr+UkzjekHZbV8o5Z9ZkxNGx6CtY2Qg/JVQ=
github.com/OctopusDeploy/go-octodiff v1.0.0 h1:U+ORg6azniwwYo+O44giOw6TiD5USk8S4VDhOQ0Ven0=
github.com/OctopusDeploy/go-octodiff v1.0.0/go.mod h1:Mze0+EkOWTgTmi8++fyUc6r0aLZT7qD9gX+31t8MmIU=
github.com/OctopusDeploy/go-octopusdeploy/v2 v2.55.0 h1:kX6qRRy8AgbqTiYdenqVNe69pGhntwJGEgJx9rtn9/8=
github.com/OctopusDeploy/go-octopusdeploy/v2 v2.55.0/go.mod h1:ggvOXzMnq+w0pLg6C9zdjz6YBaHfO3B3tqmmB7JQdaw=
github.com/OctopusDeploy/go-octopusdeploy/v2 v2.58.0 h1:vWw3dS4bEghzXnnGzoDD3Wm434MqNIwD2g73XeJebW0=
github.com/OctopusDeploy/go-octopusdeploy/v2 v2.58.0/go.mod h1:ggvOXzMnq+w0pLg6C9zdjz6YBaHfO3B3tqmmB7JQdaw=
github.com/OctopusSolutionsEngineering/OctopusTerraformTestFramework v0.0.0-20240729041805-46db6fb717b4 h1:QfbVf0bOIRMp/WHAWsuVDB7KHoWnRsGbvDuOf2ua7k4=
github.com/OctopusSolutionsEngineering/OctopusTerraformTestFramework v0.0.0-20240729041805-46db6fb717b4/go.mod h1:Oq9KbiRNDBB5jFmrwnrgLX0urIqR/1ptY18TzkqXm7M=
github.com/ProtonMail/go-crypto v1.1.0-alpha.2 h1:bkyFVUP+ROOARdgCiJzNQo2V2kiB97LyUpzH9P6Hrlg=
Expand Down
1 change: 1 addition & 0 deletions octopusdeploy_framework/datasource_tenants.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ func (b *tenantsDataSource) Read(ctx context.Context, req datasource.ReadRequest
ClonedFromTenantID: data.ClonedFromTenantId.ValueString(),
IDs: util.ExpandStringList(data.IDs),
IsClone: data.IsClone.ValueBool(),
IsDisabled: data.IsDisabled.ValueBool(),
Name: data.Name.ValueString(),
PartialName: data.PartialName.ValueString(),
ProjectID: data.ProjectId.ValueString(),
Expand Down
2 changes: 2 additions & 0 deletions octopusdeploy_framework/resource_tenant.go
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ func mapStateToTenant(ctx context.Context, data *schemas.TenantModel) (*tenants.
tenant.ID = data.ID.ValueString()
tenant.ClonedFromTenantID = data.ClonedFromTenantId.ValueString()
tenant.Description = data.Description.ValueString()
tenant.IsDisabled = data.IsDisabled.ValueBool()
tenant.SpaceID = data.SpaceID.ValueString()

convertedTenantTags, diags := util.SetToStringArray(ctx, data.TenantTags)
Expand All @@ -167,6 +168,7 @@ func mapTenantToState(ctx context.Context, data *schemas.TenantModel, tenant *te
data.ID = types.StringValue(tenant.ID)
data.ClonedFromTenantId = types.StringValue(tenant.ClonedFromTenantID)
data.Description = types.StringValue(tenant.Description)
data.IsDisabled = types.BoolValue(tenant.IsDisabled)
data.SpaceID = types.StringValue(tenant.SpaceID)
data.Name = types.StringValue(tenant.Name)

Expand Down
25 changes: 21 additions & 4 deletions octopusdeploy_framework/schemas/tenant.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (
type TenantModel struct {
ClonedFromTenantId types.String `tfsdk:"cloned_from_tenant_id"`
Description types.String `tfsdk:"description"`
IsDisabled types.Bool `tfsdk:"is_disabled"`
Name types.String `tfsdk:"name"`
SpaceID types.String `tfsdk:"space_id"`
TenantTags types.Set `tfsdk:"tenant_tags"`
Expand All @@ -26,6 +27,7 @@ type TenantsModel struct {
ID types.String `tfsdk:"id"`
IDs types.List `tfsdk:"ids"`
IsClone types.Bool `tfsdk:"is_clone"`
IsDisabled types.Bool `tfsdk:"is_disabled"`
Name types.String `tfsdk:"name"`
PartialName types.String `tfsdk:"partial_name"`
ProjectId types.String `tfsdk:"project_id"`
Expand All @@ -45,6 +47,7 @@ func TenantObjectType() map[string]attr.Type {
"cloned_from_tenant_id": types.StringType,
"description": types.StringType,
"id": types.StringType,
"is_disabled": types.BoolType,
"name": types.StringType,
"space_id": types.StringType,
"tenant_tags": types.SetType{ElemType: types.StringType},
Expand All @@ -62,6 +65,7 @@ func FlattenTenant(tenant *tenants.Tenant) attr.Value {
"cloned_from_tenant_id": types.StringValue(tenant.ClonedFromTenantID),
"description": types.StringValue(tenant.Description),
"id": types.StringValue(tenant.GetID()),
"is_disabled": types.BoolValue(tenant.IsDisabled),
"name": types.StringValue(tenant.Name),
"space_id": types.StringValue(tenant.SpaceID),
"tenant_tags": tenantTagsSet,
Expand All @@ -82,6 +86,10 @@ func (t TenantSchema) GetDatasourceSchema() datasourceSchema.Schema {
Description: "A filter to search for cloned resources.",
Optional: true,
},
"is_disabled": datasourceSchema.BoolAttribute{
Description: "A filter to search by the disabled status of a resource.",
Optional: true,
},
"name": datasourceSchema.StringAttribute{
Description: "A filter to search by name.",
Optional: true,
Expand All @@ -106,8 +114,12 @@ func (t TenantSchema) GetDatasourceSchema() datasourceSchema.Schema {
},
"description": GetDescriptionDatasourceSchema("tenants"),
"id": GetIdDatasourceSchema(true),
"name": GetReadonlyNameDatasourceSchema(),
"space_id": GetSpaceIdDatasourceSchema("tenant", true),
"is_disabled": datasourceSchema.BoolAttribute{
Description: "Specifies whether or not the tenant is disabled.",
Computed: true,
},
"name": GetReadonlyNameDatasourceSchema(),
"space_id": GetSpaceIdDatasourceSchema("tenant", true),
"tenant_tags": datasourceSchema.SetAttribute{
Computed: true,
Description: "A list of tenant tags associated with this resource.",
Expand All @@ -132,8 +144,13 @@ func (t TenantSchema) GetResourceSchema() resourceSchema.Schema {
},
"description": GetDescriptionResourceSchema("tenant"),
"id": GetIdResourceSchema(),
"name": GetNameResourceSchema(true),
"space_id": GetSpaceIdResourceSchema("tenant"),
"is_disabled": datasourceSchema.BoolAttribute{
Description: "Specifies whether or not the tenant is disabled.",
Optional: true,
Computed: true,
},
"name": GetNameResourceSchema(true),
"space_id": GetSpaceIdResourceSchema("tenant"),
"tenant_tags": resourceSchema.SetAttribute{
Description: "A list of tenant tags associated with this resource.",
ElementType: types.StringType,
Expand Down

0 comments on commit eaf4994

Please sign in to comment.