c413e013bdbec6bb9016cf3f7bb924dbefc94b3b
8
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
6ea448a7f3 |
Adding Groups API endpoint and SDK (#122)
* feat: Add group grpc handler. * feat: Add group sdk hooks. * fix: Adding forgotten generated group sdk file. * fix: Fix a copy/paste error in test msg. * fix: Correct assert error msg. * fix: Remove unused proto imports. |
||
|
|
df6ca5289f |
Create User Service Handler and SDK (#106)
* Create user handler stuff. * Fixing Not Found errors from DB. * Fixing param names. * Update the proto's go package generation. * Generate the user resource. * Adding SDK methods for users. * Fix the base type of Users and add tests. * Connect user service to the controller handler. * Attach the default org to the Test Controller's client. * Take into account the provided request paths when the client builds the org/project path prefix. * Adding comments to the API. * rename repo function to repoFn. * Fix typo in update mask errors. * Clean up tests. * Remove special checks for request url content in the api client and fix CORS test. |
||
|
|
d374ac6d4c |
Handler hostcatalogs sdk (#103)
* Created host catalog service.
* Fixing uri generation for create.
* Use newly submitted static host catalog.
* Copying over tests from projects.
* Fix UpdateHostCatalogRequest merging proto.
* Properly use static host catalog prefixes in tests.
* Correct test to verify the expected uri and id prefix is set.
* Add test for unsetting descriptions.
* Correct bad spelling in comment.
* Tweaking variable names.
* Adding Stringer to the catalog type and setting the type on the response.
* Setting up the catalogType to contain more info regarding its type.
* Validate the type field in requests.
* Remove unused method.
* Comment describing invariants around types.
* Wiring in the repo into the static catalog handler.
* feature: Add CRUD operations for host catalogs to the go api library.
* Updated comments to the exported methods.
* fix: return the result of handlers.NotFoundError instead of just calling it.
* Fixing typos referencing just hosts instead of host catlogs.
* Update NewService returns an error and a non pointer type.
* Pull "org_id" and "project_id" into constants and the validation of them into the ValidateAncestors.
* Check errors for all Register*HandlerServer calls.
* fix: Remove left over reference that could cause a panic.
* fix: Changing "x := []string{}" to "var x []string"
* fix: Log errors in test cleanup.
* Changing the code to use google.golang.org/protobuf instead of the older github based protobuf library.
* Changing all t.Fatal checks to require.NoError calls.
* Changing unrecognized prefixes to Invalid Argument instead of Not Found.
* fix: toDbUpdateMask now returns error if it was unable to find any valid paths.
* Define CreatedTime, UpdatedTime, and Type at initialization time in toProto.
* Adding sdk test for unsetting a value.
* Require that project is created correctly before testing the catalog.
* Remove unused host catalog from test.
* Change a t.Fatal to a require.NoError that I missed earlier.
* Change shutdown error logging to t.Errorfs.
* Shorten validateX function names.
* Inline API responses.
* Add todo to make a new repo per request.
* Inline regex check for invalid id.
* Change stored repos into repo creating functions which satisfies ICU-223.
* Wrap proto comments to be under 80 characters long.
* Remove the exception on the read only fields that can be set in an Update request.
* Removing out of date comment.
* Use iam.TestScopes instead of making the project myself.
* Renaming files to be consistant with go test standards and resource naming standards.
* Remove TODO related to a task completed in an earlier commit.
* Fix the previous commit which removed the wrong TODO.
|
||
|
|
44152ae63e |
Add API Error Handler (#74)
* Add error handler that converts from rpc.Status errors to Watchtower API errors. * Better testing for ErrorHandler. * Rename testcase and remove empty default switch case. * Change the error status back to int64. * Converting everything to int32s. jsonpb wraps int64s as a string which we dont like. We'll figure out how to use values larger than int64s when it comes up. * Remove special casing for TraceId which isn't needed anymore. * Removing wrappers from error details since we never need to know when they are set or unset from the end user. * Using the helper error functions inside the project service. * Correct usage of hclog, replace panic with Error log. * Adding periods to all API returned errors, correct spelling, fix missed invalid argument error not using helper function. * Change our logged errors to Error instead of Warn. * Add TODO for defining and using our own defined API error codes. * Add TODO to remove internal error messages. |
||
|
|
ba00b511e7 |
Add Project Delete to API (#66)
* carve out scope into a separate branch for a PR * refactor getOpts to be private * narrowed to just the scope proto * wrap in a transaction * remove user from scopes PR * make scope type immutable * refactored with more referential integrity (thanks mike) * refactor based on pair programming with Mike * better VetForWrite that supports db.Options but that requires GetOpts and Options to be exported. * stop printing out all the db logs * refactor withScope to be private * refactor the VetForWrite a bit based on Todd's PR comment * fix typo Co-authored-by: Michael Gaffney <mgaffney@users.noreply.github.com> * fix ctx propagation and Scope returns * fix ctx propagation and use a const for std retry count * change Std to Crud * fix ctx propagation * make sure update with field masks doesn't update a field not in the mask and force a read after update. * add description * remove comment about future * clean error strings * clean up enum string rep * stdMeta * fix return value to be just nil * fix returns and errors * update test to match new error string * change len of domain to 24 * provide common function for new public ids * use common db.NewPublicId() and provide the correct prefix * move list out of CrudActions and provide a CrudlActions shortcut as well * some comments about the purpose of VetForWrite() * move to random 10 * Adding project API interface. * Creation of Project handler and Tests * Move to using the iam objects. * Setting up testify framework for mocking and assertions. * Fix iam options typo references. * Adding tests for CreateProject and UpdateProject. This also adds some additional argument validation. * Merging in PR 40 * Renamed fakeRepo to mockRepo * Changing around TODOs to capture current plans with the code. * Remove the repo interface and use a real DB for tests. * Fixed a few tests. * Adding checks for properly formatted identifiers. * Updating code to account for recent merges. Relaxing some restrictions on what an id can look like. * Added small comment explaining why RegisterGrpcGatewayer interface exists. * Move project service up a call level. Long term I think it would make sense to define these services even higher up the call stack, potentially at the initialization of the controller server, near where the DB is initialized. * Making these fields align with those in the resources under hosts/... * Hard code the service initialization in the handler registration code. * Regenerate project related code proto code. * Removing type field for project. * Adds basic project handling in CLI/SDK (#47) * Adds SDK for creating and reading projects * Reorganizes a bit * Adds CLI for creating and reading projects * Fixes some some generation bugs * Adds redirect support for default org ID * Fix protobuf import references being moved. * Update client test to look for "orgs" and "projects" instead of "org" and "project" * Update expected segments test * Fix setAddr handling when default organization is in use * Set client in target after create or read * Adding functionality and tests for update masks. * Additional tests for update. Disable update non existant project test. * Make not providing an update mask be an invalid argument. * Make empty update mask paths and no mutable fields in the path an InvalidArgument error. * Fix get Project test. * Adding back in the Update a non existant project test case. * Adding seperate path structured tests. * Adding delete from repository API call. * Update calls to LookupScope and DeleteScope. * Pass in only what is needed for interfacing with the repo. * Creating delete sdk methods for the first time. * Create delete generation functionality in go sdk. * Use assert for tests instead of if statements. Co-authored-by: Jim Lambert <jimlambrt@Jims-MBP-3.home> Co-authored-by: Jim <jlambert@hashicorp.com> Co-authored-by: Michael Gaffney <mgaffney@users.noreply.github.com> Co-authored-by: Jeff Mitchell <jeffrey.mitchell@gmail.com> |
||
|
|
7f0dfa2344 |
Fix Update Project Logic (#54)
* carve out scope into a separate branch for a PR * refactor getOpts to be private * narrowed to just the scope proto * wrap in a transaction * remove user from scopes PR * make scope type immutable * refactored with more referential integrity (thanks mike) * refactor based on pair programming with Mike * better VetForWrite that supports db.Options but that requires GetOpts and Options to be exported. * stop printing out all the db logs * refactor withScope to be private * refactor the VetForWrite a bit based on Todd's PR comment * fix typo Co-authored-by: Michael Gaffney <mgaffney@users.noreply.github.com> * fix ctx propagation and Scope returns * fix ctx propagation and use a const for std retry count * change Std to Crud * fix ctx propagation * make sure update with field masks doesn't update a field not in the mask and force a read after update. * add description * remove comment about future * clean error strings * clean up enum string rep * stdMeta * fix return value to be just nil * fix returns and errors * update test to match new error string * change len of domain to 24 * provide common function for new public ids * use common db.NewPublicId() and provide the correct prefix * move list out of CrudActions and provide a CrudlActions shortcut as well * some comments about the purpose of VetForWrite() * move to random 10 * Adding project API interface. * Creation of Project handler and Tests * Move to using the iam objects. * Setting up testify framework for mocking and assertions. * Fix iam options typo references. * Adding tests for CreateProject and UpdateProject. This also adds some additional argument validation. * Merging in PR 40 * Renamed fakeRepo to mockRepo * Changing around TODOs to capture current plans with the code. * Remove the repo interface and use a real DB for tests. * Fixed a few tests. * Adding checks for properly formatted identifiers. * Updating code to account for recent merges. Relaxing some restrictions on what an id can look like. * Added small comment explaining why RegisterGrpcGatewayer interface exists. * Move project service up a call level. Long term I think it would make sense to define these services even higher up the call stack, potentially at the initialization of the controller server, near where the DB is initialized. * Making these fields align with those in the resources under hosts/... * Hard code the service initialization in the handler registration code. * Regenerate project related code proto code. * Removing type field for project. * Adds basic project handling in CLI/SDK (#47) * Adds SDK for creating and reading projects * Reorganizes a bit * Adds CLI for creating and reading projects * Fixes some some generation bugs * Adds redirect support for default org ID * Fix protobuf import references being moved. * Update client test to look for "orgs" and "projects" instead of "org" and "project" * Update expected segments test * Fix setAddr handling when default organization is in use * Set client in target after create or read * Adding functionality and tests for update masks. * Additional tests for update. Disable update non existant project test. * Make not providing an update mask be an invalid argument. * Make empty update mask paths and no mutable fields in the path an InvalidArgument error. * Fix get Project test. * Adding back in the Update a non existant project test case. * Adding seperate path structured tests. * Attach an issue id to field mask validation TODO. * Generate Project Update SDK code (#58) * Created the UpdateFunction method. * Regenerate protobuf derived code since pull #50 updated dependencies. * Special case IDs to not be passed for updates. * Updated the tools file since imports reordered it. * Add spaces between each tools import/comment grouping. Co-authored-by: Jim Lambert <jimlambrt@Jims-MBP-3.home> Co-authored-by: Jim <jlambert@hashicorp.com> Co-authored-by: Michael Gaffney <mgaffney@users.noreply.github.com> Co-authored-by: Jeff Mitchell <jeffrey.mitchell@gmail.com> |
||
|
|
f8b456f3a7 |
Add TestController (#50)
This can be used in tests to get access to a controller that behaves just like a dev controller but doesn't require the normal Command bits (UI, etc). This can be enhanced over time as needed; for now it's pretty simple but it's good enough to be used for API tests. A simple project create/read API test is added as well, which serves to show the programmatic model (as well as test those functions at the API level). |
||
|
|
c0c6a9b0b8 |
Handler project (#44)
* Renamed fakeRepo to mockRepo * Changing around TODOs to capture current plans with the code. * Remove the repo interface and use a real DB for tests. * Fixed a few tests. * Adding checks for properly formatted identifiers. * Updating code to account for recent merges. Relaxing some restrictions on what an id can look like. * Added small comment explaining why RegisterGrpcGatewayer interface exists. * Move project service up a call level. Long term I think it would make sense to define these services even higher up the call stack, potentially at the initialization of the controller server, near where the DB is initialized. * Making these fields align with those in the resources under hosts/... * Hard code the service initialization in the handler registration code. * Regenerate project related code proto code. * Removing type field for project. * Adds basic project handling in CLI/SDK (#47) * Adds SDK for creating and reading projects * Reorganizes a bit * Adds CLI for creating and reading projects * Fixes some some generation bugs * Adds redirect support for default org ID * Fix protobuf import references being moved. * Update client test to look for "orgs" and "projects" instead of "org" and "project" * Update expected segments test * Fix setAddr handling when default organization is in use * Set client in target after create or read Co-authored-by: Jim Lambert <jimlambrt@Jims-MBP-3.home> Co-authored-by: Jim <jlambert@hashicorp.com> Co-authored-by: Michael Gaffney <mgaffney@users.noreply.github.com> Co-authored-by: Jeff Mitchell <jeffrey.mitchell@gmail.com> |