* Update protos and gen
* Add new values to targets CLI command
* Lots more plumbing of new parameters through everything
* allow fields to be set to zero value.
* Disallow set but empty name/description strings in create/update verifiers
Co-authored-by: Jim Lambert <jlambert@hashicorp.com>
* Update host set member test
* Add ListSetMembers method signature and doc
* Move repository methods for host set members to new file
* Add TestSetMembers
* Implement ListSetMembers
* Return hosts from ListSetMembers
* Implement AddSetMembers
* Implement DeleteSetMembers
* Use sql.QueryContext not sql.Query
* Implement SetSetMembers
* Refactor: extract getHosts method
* Refactor: extract createMembers method
* Refactor: extract common functions
* Return correct count of changed
In SetSetMembers, retrieving the current list of hosts in the set
happens after the transaction to modify the set has completed. This
retrieval can result in an error but the number of modified rows is not
effected.
* Make list set members an unexported method
* Get hosts within the same transaction as mutations of the set
* Return hosts of set from LookupSet method
* Return hosts of set from UpdateSet method
* Remove listSetMembers
* Fix merge conflict
* Add NOTE and TODOs about using new pattern in "SetMembers" methods
* Implement CreateSet
* Implement UpdateSet
* Implement LookupSet
* Implement ListSets
* Implement DeleteSet
* Remove unused parameter from test helper function
* Update to use new kms structure
* Remove unused parameter for test helper function
* Fix resource-type string for host set
* Move static host migrations to higher number
* Add wt_host_address domain type
* Add base tables for host catalog, host set, and host
* Reformat create trigger statements
* Add subtype triggers for host catalog, host set, and host
* Remove wt_host_address domain type
* Rename columns in host_set_member
* Add delete trigger functions for base types
* Add delete after triggers to static host subtypes
* Add protobufs for host base types
* Start adding version to host resources and fixing up tests
* Add versioning to host resources and update API tests
* Fix nil in test
* Add missing update
* Feature: Create MaskManager logic to handle project -> scope update mask logic.
* Updating resource protos and services to use new mask manager setup.
Co-authored-by: Jeff Mitchell <jeffrey.mitchell@gmail.com>
* database: add wt_public_id domain type
* static-hosts: add migrations
* Rename migrations
* migrations: add description column and fix foreign keys
* Add protobuf for static host
* Add HostCatalog and HostSet
* Add Options
* Add foreign key constraint
* Add package doc
* Add copied scanner code
* Add NewHostCatalog with tests
* Override default table name for static host catalog
* WIP: save static host catalog to database
* WIP: Print db url for debugging
* Add iam test helper function
* Make gorm default to null for names and descriptions
* Add foreign key constraint from host catalog to scope
* Names are not needed for the test org and project
* Avoid an ordering dependency in down migrations
* Use wt_timestamp
* Add check constraint on host address column
* Add Host
* Add HostSet
* Add HostSetMember
* Test a HostSetMember can be written to the database
* Move the getters and setters for table name to a new file
The TableName methods are needed by gorm and the SetTableName methods
are for oplog. Moving them to a new file so related functionality is in
the same file.
* Add repository
* Add NewRepository
* Close connection before cleanup of database
* Add comments to protobuf file and regenerate
* Define repository methods for HostCatalog
* Assign PublicId when resource is inserted into the database
* Wrap a nil parameter error
* Add oplog tickets for static host types
* WIP: first cut at CreateCatalog
* CreateHostCatalog: more tests
* Detect unique constraint violation
* Use const for PublicId prefixes
* Use PostgreSQL error name instead of error code
* Add TODO comments
* Fix comments
* Use PublicId not PublicID
* Refactor: move error variables from host/static to db
The error variables defined in host/static are generic and can be reused
by other packages.
* Create a new repository for each test
* Validate CreateCatalog returns a new HostCatalog
* Do not modify the HostCatalog passed in
* Implement UpdateCatalog
* Minor cleanup to make folds work
* Implement LookupCatalog
* Refactor: extract allocCatalog function
* Add comment
* Refactor: extract newCatalogMetadata function
* Make error strings more consistent
* Move database specific error check to internal/db package
* Change signature of DeleteCatalog and update docs
* Implement DeleteCatalog
* Make error strings more consistent
* Add examples
* Update docs
* Add package level doc and example for repository
* No need for using reflect.DeepEqual
* Remove redundant comment
* Clarify ErrMultipleRecords results in the transaction being rolled back
* Remove redundant error checks
* Remove unnecessary check
* Return early instead of using nested 'else' statements
* Update and Delete must return a row count
* catch err on defers (#82)
Co-authored-by: Jim Lambert <jimlambrt@Jims-MBP-3.home>
* Remove 'if assert' pattern
* Use assert package in test helper function
* Add test for updating a non existent catalog
* Use a single assert when a specific error is expected
* Use assert package when it clarifies the check
* Catch errors in cleanup functions
* Update comments in protobuf file
* Update doc for UpdateCatalog to reflect the new behavior
* Add common error values for field mask errors
* Require a field mask when calling update methods
* Add TODO for removing direct call to gorm
* Export Public ID prefixes
* Add db timestamp guards
* Remove unused option
Co-authored-by: Jim <jlambert@hashicorp.com>
Co-authored-by: Jim Lambert <jimlambrt@Jims-MBP-3.home>