Mateusz Filipowicz
35c74bf59d
refactor: migrate USG setting resource to Terraform Plugin Framework ( #42 )
...
* refactor: migrate USG setting resource to Terraform Plugin Framework
* remove setting_usg from old provider
* add USG resource to provider v2
2025-03-05 12:38:44 +01:00
Mateusz Filipowicz
7856ec4764
feat: add Teleport support with unifi_setting_teleport resource ( #39 )
...
* feat: add Telepor support with `unifi_setting_teleport` resource
* add cidr validators
* fix teleport tests by specifying version constraints
* fix teleport version needed
* require version 7.1
* lint
2025-03-03 21:08:50 +01:00
Mateusz Filipowicz
5da978a5d3
feat: add SSL inspection resource support with unifi_setting_ssl_inspection resource ( #38 )
...
* feat: add SSL inspection resource support with `unifi_setting_ssl_inspection` resource
* add version contstraint
2025-03-02 20:46:49 +01:00
Mateusz Filipowicz
ef2221cab9
feat: add network optimization resource support with unifi_setting_network_optimization resource ( #37 )
...
* feat: add network optimization resource support with `unifi_setting_network_optimization` resource
2025-03-02 01:41:08 +01:00
Mateusz Filipowicz
8b5ed14d8d
feat: add NTP setting resource support with unifi_setting_ntp resource ( #36 )
...
* feat: add NTP setting resource support with `unifi_setting_ntp` resource
* linting
* fix missing method
* add missing validators
2025-03-02 01:10:41 +01:00
Mateusz Filipowicz
a78667e669
feat: add magic site-to-site VPN setting resource support with unifi_setting_magic_site_to_site_vpn resource ( #35 )
...
* feat: add magic site-to-site VPN setting resource support with `unifi_setting_magic_site_to_site_vpn` resource
* do not use default
* require controller version >=7.4 for magic site to site vpn tests
2025-03-01 23:12:06 +01:00
Mateusz Filipowicz
f815ffef79
feat: add locale setting resource support with unifi_setting_locale resource ( #34 )
...
* feat: add locale setting resource support with `unifi_setting_locale` resource
* lint
2025-03-01 18:03:58 +01:00
Mateusz Filipowicz
273d0daddd
feat: add automatic speedtest setting resource support with unifi_setting_auto_speedtest resource ( #32 )
...
* feat: add automatic speedtest setting resource support with `unifi_setting_auto_speedtest` resource
* restore lowered test paralellism
* refactoring and fixes
* fix speedtest after refactor
* run speedtest test on versions [7.2,7.4.156), cause later it was removed from USG which is used in tests
2025-03-01 15:38:17 +01:00
Mateusz Filipowicz
a36940b019
feat: add country setting resource support with unifi_setting_country resource ( #31 )
...
* feat: add country setting resource support with `unifi_setting_country` resource
* linting
2025-02-27 02:56:07 +01:00
Mateusz Filipowicz
b1688313c0
docs: improve provider documentation ( #29 )
...
* docs: improve provider documentation
* fix accidentally changed type of stormctrl_ucast_rate
* docs: add badges and plans to readme
2025-02-26 18:56:45 +01:00
Mateusz Filipowicz
e5e50f98c0
chore: support locking in tests ( #28 )
2025-02-26 10:33:55 +01:00
Mateusz Filipowicz
af1aa62b3f
feat: retry forgetting device when device is busy ( #26 )
2025-02-26 09:31:32 +01:00
Mateusz Filipowicz
e7164c0460
feat: add DNS record resource and datasources ( #25 )
...
* add DNS record
* revamp tests
* lint
* cleanup
* feat dns test
* chore: add DNS Record tests
* linting
* f
2025-02-26 01:17:59 +01:00
Mateusz Filipowicz
325d7b7f20
feat: initialize Terraform Plugin Framework ( #23 )
...
* feat: initialize Terraform Plugin Framework
* fix docker-compose path for tests
* fix: ensure documentation can be generated with old provider SDK and new plugin framework
* lint
2025-02-24 00:11:41 +01:00
Mateusz Filipowicz
b7fe359f6c
feat: support API Key authentication to UniFi controller ( #22 )
2025-02-23 19:51:18 +01:00
Mateusz Filipowicz
f5bd8ebb15
feat: switch to filipowm/go-unifi UniFi SDK client ( #20 )
...
* feat: switch to filipowm/go-unifi UniFi SDK client
* disable validation in tests
* replace usage of APIError by ServerError
* bump go-unifi to 1.4.0
2025-02-23 17:07:03 +01:00
Mateusz Filipowicz
7c8724bc5c
feat: support excluded_network_ids on port profile resource
2025-02-07 11:16:00 +01:00
Mateusz Filipowicz
4c3d5830ad
feat: remove unused firewall properties from settings usg
2025-02-07 01:09:36 +01:00
Mateusz Filipowicz
b19314bc6e
use filipowm/go-unifi instead of paultyng/go-unifi
2025-02-07 01:09:36 +01:00
Mateusz Filipowicz
0d5de4a4cf
feat: add validation on wifi name
2025-02-07 01:09:36 +01:00
Mateusz Filipowicz
708d73eb6b
feat: add enabled flag
2025-02-07 01:09:36 +01:00
Mateusz Filipowicz
5e4894c114
chore: tidying up dependencies
2025-02-07 01:09:36 +01:00
Mateusz Filipowicz
0cf84ee1df
feat: support updated port profile API
2025-02-07 01:09:36 +01:00
Mateusz Filipowicz
7e222cb061
feat: add network_isolation_enabled and deprecate intra_network_access_enabled
2025-02-07 01:09:36 +01:00
Mateusz Filipowicz
6e6991d227
chore: set test parallelism to 2 from 4 due to too high parallelism causing "text file busy" issue
2025-01-21 11:50:04 +01:00
Mateusz Filipowicz
5b20ec9132
chore: make tests less flaky due to random naming of resources
...
Refers #480
2025-01-09 00:21:28 +01:00
Mateusz Filipowicz
5ba683fdad
fix: flaky TestAccSite_basic and TestAccDataAccount_mac tests ( #481 )
...
* fix: temporarily disable CheckDestroy in TestAccSite_basic causing test flakiness
References #480
* fix: generate random name and mac in TestAccDataAccount_default and TestAccDataAccount_mac respectively to fix flakiness
References #480
* chore: disable linter on testAccCheckSiteResourceDestroy
2025-01-07 20:01:50 +11:00
Joshua Spence
60b7295c10
Update supported versions ( #462 )
...
* Update supported versions
* Fixes
* Set default for `dhcp_v6_enabled`
* Update resource_network_test.go
* Format
* Undo
* fixme
* Add back older versions
* Format
* FIXME
2024-11-22 13:23:12 +11:00
dependabot[bot]
d79cc47b12
Bump golangci/golangci-lint-action from 3.7.1 to 6.0.1 ( #458 )
...
* Bump golangci/golangci-lint-action from 3.7.1 to 6.0.1
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action ) from 3.7.1 to 6.0.1.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases )
- [Commits](https://github.com/golangci/golangci-lint-action/compare/v3.7.1...v6.0.1 )
---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
* Go format
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Josh Spence <jspence@anduril.com >
2024-11-22 11:29:06 +11:00
David Symonds
2e6f384294
Support per-port PoE mode override for devices. ( #393 )
2023-09-08 15:23:43 +10:00
Joshua Spence
82b99c3fba
Run acceptance tests against UniFi Network 7.4 ( #377 )
2023-06-07 14:11:01 +10:00
dependabot[bot]
3879e88f7a
Bump github.com/hashicorp/terraform-plugin-sdk/v2 from 2.25.0 to 2.26.0 ( #353 )
...
* Bump github.com/hashicorp/terraform-plugin-sdk/v2 from 2.25.0 to 2.26.0
Bumps [github.com/hashicorp/terraform-plugin-sdk/v2](https://github.com/hashicorp/terraform-plugin-sdk ) from 2.25.0 to 2.26.0.
- [Release notes](https://github.com/hashicorp/terraform-plugin-sdk/releases )
- [Changelog](https://github.com/hashicorp/terraform-plugin-sdk/blob/main/CHANGELOG.md )
- [Commits](https://github.com/hashicorp/terraform-plugin-sdk/compare/v2.25.0...v2.26.0 )
---
updated-dependencies:
- dependency-name: github.com/hashicorp/terraform-plugin-sdk/v2
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
* Address deprecations
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joshua Spence <josh@spence.com.au >
2023-03-22 10:43:31 +11:00
Joshua Spence
ca71d9e4f9
Add IPv6 support to static routes ( #349 )
...
* Improve tests
* Add Ipv6 support
* We can't create IPv6 static routes without a gateway
* Revert "We can't create IPv6 static routes without a gateway"
This reverts commit dfff85c5b7d22c28d50485536c567e3a8b657136.
* Adopt device
* Fix
* Revert "Adopt device"
This reverts commit a1fb209c7b2cd0d9ae44640fece91f4bafeed2ae.
2023-03-10 20:15:54 +11:00
Jamie Wark
65e1701bc5
Add wlan tuning ( #312 )
...
* Add wlan tuning
* proxy_arp
* bss_transition
* fast_roaming_enabled
* Fix punctuation
* Default `bss_transition` to `true`
* Improve tests
* Tweak descriptions
* Fix tests
* Fix tests
---------
Co-authored-by: Joshua Spence <josh@spence.com.au >
2023-03-10 14:15:35 +11:00
Joshua Spence
105d542879
Add DiffSuppressFunc for op_mode and aggregate_num_ports ( #344 )
2023-03-08 22:27:58 +11:00
Paul Tyng
0401ae6913
Add support for port aggregation ( #182 )
...
* Add support for port aggregation
Fixes #142
* Return `*unifi.Device` from `allocateDevice`
* Merge `TestAccDevice_switch_portOverrides` and `TestAccDevice_remove_portOverrides`
* Add tests
Note that only switches with a Broadcom, Microsemi or Nephos chipset support both port mirroring and port aggregation.
```java
package com.ubnt.data;
public class Device extends X implements Sanitizable
{
// ...
public int getMaxMirrorSession() {
int n = 0;
if (this.getModel() == Model.\u00f8\u00f50000) {
n = 2;
}
else if (this.isBroadcomSwitch() || this.isMicrosemiSwitch() || this.isMediaTekSwitch() || this.isNephosSwitch()) {
n = 1;
}
return this.thisforObject().getInt("max_mirror_sessions", n);
}
public int getMaxAggregation() {
int n = 0;
if (this.isBroadcomSwitch() || this.isMicrosemiSwitch() || this.isNephosSwitch()) {
n = 6;
}
return this.thisforObject().getInt("max_aggregate_sessions", n);
}
// ...
public boolean isBroadcomSwitch() {
final Model model = this.getModel();
return model.getChipset().typeOf(Chipset.\u00f400000) && model.getType() == DeviceType.if;
}
public boolean isMicrosemiSwitch() {
final Model model = this.getModel();
return model.getChipset().typeOf(Chipset.o00000) && model.getType() == DeviceType.if;
}
public boolean isMediaTekSwitch() {
final Model model = this.getModel();
return model.getChipset().typeOf(Chipset.\u00d3O0000) && model.getType() == DeviceType.if;
}
public boolean isNephosSwitch() {
final Model model = this.getModel();
return model.getChipset().typeOf(Chipset.\u00d5O0000) && model.getType() == DeviceType.if;
}
// ...
}
```
To extract the list of models that use one of these chipsets I used the following script (executed as `java --class-path path/to/ace.jar main.java`):
```java
import com.ubnt.data.Model;
class UniFiModels {
public static void main(String[] args) {
/*
for (Model model : Model.values()) {
System.out.printf(
"Model = %s\nSKU = %s\nType = %s\nFeatures = %s\nChipset = %s\nSysId = %s\nPortNum = %s\n\n",
model,
model.getSku(),
model.getType(),
model.getFeatures(),
model.getChipset(),
model.getSysId(),
model.getPortNum());
}
*/
for (Model model : Model.values()) {
System.out.printf("%s: %s (%s)\n", model.getChipset(), model, model.getSku());
}
}
}
```
---------
Co-authored-by: Joshua Spence <josh@spence.com.au >
2023-03-08 18:02:34 +11:00
Joshua Spence
9367e123fe
Dump controller logs after acceptance tests ( #335 )
...
* Dump logs
* Incrase log verbosity
* Fix lint
* Add `LogConsumer`
* Revert "Add `LogConsumer`"
This reverts commit eba91831e11fd8b38343d14363fe553a3591377b.
* Tidying
* Minor tidying
* Conditional guard
* Minor
* Fix
* Fix
* Dump logs in CI
2023-03-04 00:09:50 +11:00
Joshua Spence
c713a22aa6
Don't use USW-Leaf in acceptance tests ( #336 )
...
The USW-Leaf consistently fails to be adopted:
```
[2023-03-03T04:25:11,002] XXX <fake-UDC48X6> ERROR inform - dev[00:27:22:00:00:12] failed to update capability: api.err.InvalidReportPort
[2023-03-03T04:25:21,004] XXX <fake-UDC48X6> ERROR inform - dev[00:27:22:00:00:12] failed to update capability: api.err.InvalidReportPort
[2023-03-03T04:25:31,005] XXX <fake-UDC48X6> ERROR inform - dev[00:27:22:00:00:12] failed to update capability: api.err.InvalidReportPort
[2023-03-03T04:25:41,006] XXX <fake-UDC48X6> ERROR inform - dev[00:27:22:00:00:12] failed to update capability: api.err.InvalidReportPort
```
2023-03-03 17:11:32 +11:00
Joshua Spence
b27b54a755
Use testcontainers-go ( #330 )
...
* Use `testcontainers-go`
* Wait for ready
* Sleep
* Remove `time.Sleep`
* Wait until devices appear
* Pass environment
* Add `golangci-lint` to tools
* Minor
2023-03-03 15:19:19 +11:00
Joshua Spence
284c42aaae
Improve device allocation ( #333 )
...
* Improve device allocation
* Improve
* Tweak MAC code
* Add `golangci-lint` to tools
* Debugging
* Revert "Debugging"
This reverts commit 90c0b054256e9a741193854dc6b5984f6e749a9a.
* Use `golang-set`
* Remove `sync.Mutex`
* Cleanup
2023-03-03 14:05:09 +11:00
Joshua Spence
cecd408e57
Migrate to terraform-plugin-testing ( #331 )
...
See https://developer.hashicorp.com/terraform/plugin/testing/migrating .
2023-03-03 09:04:31 +11:00
Chris Hasenpflug
8bfcf5b503
firewall_rule: Add enabled attribute ( #63 )
...
* firewall_rule: Add enabled attribute
Resolves #62
* Add tests
* Update docs
---------
Co-authored-by: Joshua Spence <josh@spence.com.au >
2023-03-02 20:06:04 +11:00
Joshua Spence
f0ee3cbbfa
Lower the device retry timeouts ( #322 )
...
* Lower the device retry timeouts
* Add debug logging
* Revert "Add debug logging"
This reverts commit 209da04dd9cee2e826724f27ea4602cdc9414015.
* Tweak timeouts
2023-03-01 13:04:40 +11:00
Joshua Spence
263a2c71d2
Remove UNIFI_ACC_WLAN_CONCURRENCY ( #323 )
...
* Remove `UNIFI_ACC_WLAN_CONCURRENCY`
* Update resource_wlan_test.go
* Update resource_wlan_test.go
2023-03-01 10:44:11 +11:00
Joshua Spence
d3147cf83c
Allow 10 minutes for device adoption ( #318 )
2023-02-28 22:40:58 +11:00
Joshua Spence
2eba55a7f3
Change default value for allow_adoption ( #317 )
...
* Change default value for `allow_adoption`
* Update docs
2023-02-28 22:19:22 +11:00
Joshua Spence
5cc1679b7f
Tidying
2023-02-28 21:52:07 +11:00
Joshua Spence
c0a2d0e07b
Skip PDUs
2023-02-28 21:52:07 +11:00
Joshua Spence
b5a1680cd9
Revert "Remove debug code"
...
This reverts commit 4f768d67c08ae476033bfc59d428c14f6cd0435d.
2023-02-28 21:52:07 +11:00
Joshua Spence
c3b52a2191
Temp
2023-02-28 21:52:07 +11:00