Commit Graph

103 Commits (ce2baee4d66e1492266647931e308ffe2ed2a0b5)

Author SHA1 Message Date
Johnny Steenbergen f575ea8d41 chore(pkger): handle edge cases that can manifest from users in the platform and stateful pkg applications
references: #17434
2020-05-06 13:01:50 -07:00
Johnny Steenbergen 3fd731511a chore(pkger): make integration stack tests indpendent 2020-05-05 11:01:13 -07:00
Johnny Steenbergen 95ad3c6582 feat(pkger): add the ability to remove a stack and all its associated resources
closes: #17554
2020-05-01 16:18:13 -07:00
Johnny Steenbergen c7e97f1625 feat(pkger): add service and http server integreations for stack lists
references: #17554
2020-04-30 13:24:15 -07:00
Johnny Steenbergen 097d761c3a feat(pkger): extend store with stack lists operation
references: #17544
2020-04-30 13:24:15 -07:00
Johnny Steenbergen ff27edbea9 feat(pkger): add support for using URLs associated with stack to apply/dry run 2020-04-29 16:48:00 -07:00
Johnny Steenbergen 72906a4484 feat(pkger): add support for stateful label mappings
references: #17434
2020-04-24 17:05:55 -07:00
Johnny Steenbergen 3acd860563 feat(pkger): add stateful management for notification rules
references: #17434
2020-04-23 11:47:32 -07:00
Johnny Steenbergen d82aa62fff feat(pkger): extend store to support associations
references: #17434
2020-04-22 16:50:40 -07:00
Johnny Steenbergen 47e5facc81 feat(pkger): add stateful management for telegraf configs 2020-04-21 15:47:49 -07:00
Johnny Steenbergen 596d8fde45 feat(pkger): add stateful management for tasks
notes on this commit. This commit was grueling ;-(. The task API is not a friendly
API to consume. There are a lot of non obvious things going on and almost every
one of them tripped me up. Things of note:

* the http.TaskService does not satisfy the influxdb.TaskService,
  making it impossible to use as a dependency if tasks service gets
  split out
* the APIs for create and update do not share common types. For example:
  creating a task takes every field as a string, but in the update it is
  taken as a options.Duration type. A step further and you'll notice that
  create does not need an option to be provided, but the update does. Its
  jarring trying to understand the indirection here. I struggled mightily
  trying to make sense of it all with the indirection and differing types.
  Made for a very difficult task (no pun intended) when it should have been
  trivial. Opportunity here to fix these up and make this API more uniform
  and remove unneccesary complexity like the options type.
* Nested IDs that get marshaled, are no bueno when you want to marshal a task
  that does not have an ID in it, for either user/org/or self IDs. Its a challenge
  just to do that.
* Lots of logs in the kv.Task portion where we hit errors and log and others where
  we return. It isn't clear what is happening. The kv implementation is also very
  procedural, and I found myself bouncing around like a ping pong ball trying to
  make heads or tails of it.
* There is auth buried deep inside the kv.Task implementation that kept throwing me
  off b/c it kept throwing errors, instead of warns. I assume, not sure if I'm
  correct on this, but that the stuff being logged is determined inconsequential
  to the task working. I had lots of errors from the auth buried in there, and hadn't
  a clue what to make of it....

leaving these notes here as a look back at why working with tasks is so
difficult. This API can improve dramatically. I spent 5x the time trying
to figure out how to use the task API, in procedural calls, than I did
writing the business logic to consume it.... that's a scary realization ;-(

references: #17434
2020-04-21 09:14:20 -07:00
Johnny Steenbergen c483aec2d2 feat(pkger): add stateful management for dashboards 2020-04-20 14:04:45 -07:00
Johnny Steenbergen 8251c362ee chore(pkger): refactor parser notification rule state out into stateful type
this PR also drops a bunc of dead code that was necessary for times of integration.

references: #17434
2020-04-17 14:02:29 -07:00
Johnny Steenbergen 21694416a3 chore(pkger): refactor parser dashboard state out into stateful type
references: #17434
2020-04-16 13:27:36 -07:00
Johnny Steenbergen f084a93fa2 chore(pkger): refactor parser telegraf config state out into stateful type
references: #17434
2020-04-16 12:05:07 -07:00
Johnny Steenbergen da2cf7e94a chore(pkger): refactor parser task state out into stateful type
references: #17434
2020-04-16 10:06:44 -07:00
Johnny Steenbergen 94ae519cc6 chore(pkger): refactor parser notification endpoint state out into stateful type
references: #17434
2020-04-15 14:26:25 -07:00
Johnny Steenbergen c8a79f5653 chore(pkger): refactor parser variable state out into stateful type
references: #17434
2020-04-14 16:48:56 -07:00
Johnny Steenbergen cb7f8ba521 chore(pkger): refactor parser check state out into stateful type
references: #17434
2020-04-14 15:43:50 -07:00
Johnny Steenbergen 68183bb156 chore(pkger): refactor embedded types out of stateful types 2020-04-14 14:12:23 -07:00
Johnny Steenbergen c718b676ef chore(pkger): refactor pkger data model to separate parsed and stateful datum 2020-04-14 09:28:09 -07:00
Johnny Steenbergen 67ccbd4490 fix(influx): add nil check for printing diff of endpoints and checks 2020-04-09 13:15:32 -07:00
Johnny Steenbergen dd432360cc feat(pkger): update notification rule with unique constraints 2020-04-08 10:36:21 -07:00
Johnny Steenbergen c245f3233b chore(pkger): add stack state management for notification endpoints 2020-04-06 14:56:56 -07:00
Johnny Steenbergen 1e19f38502 chore(pkger): add stack state management for variables 2020-04-06 10:22:55 -07:00
Jonathan A. Sternberg 0ae8bebd75
refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
Johnny Steenbergen 21d2bf5dc6 chore(pkger): add stack state management for checks 2020-04-02 16:32:20 -07:00
Johnny Steenbergen e6317a04ee chore(pkger): refactor summary/diff types for Endpints|Checks|Variables 2020-04-02 12:35:51 -07:00
Johnny Steenbergen 762e9a422e feat(pkger): add stack state management for labels 2020-04-02 09:03:59 -07:00
Johnny Steenbergen f5b9a30b1f feat(pkger): extend labels diff and summary types to include PkgName and Remove
the pkgName refers to the unqiue label resource within the pkg and the
Remove field indicates the label will be removed when applying the pkg
2020-04-01 14:13:45 -07:00
Johnny Steenbergen 34c3b35ca3 feat(pkger): add stack state management for buckets 2020-04-01 13:09:14 -07:00
Johnny Steenbergen 098fd27ab4 feat(pkger): extend DiffBucket with name for existing and new bucket values
provides mapping between pkgName and resource the diff represents. Now that
stacks are in place, the existing bucket may change names.
2020-03-31 13:34:40 -07:00
Johnny Steenbergen 37646464b3 feat(pkger): add stack init cmd to influx cli
closes: #17235
2020-03-27 08:32:58 -07:00
Johnny Steenbergen 8c70dc9b23 feat(pkger): add create stack endpoint for http server 2020-03-26 12:37:43 -07:00
Johnny Steenbergen 7a24e450c1 feat(pkger): add auth for pkger stack CRUDing
adds new AuthAgent type that can be reused across service middleware.
2020-03-26 10:11:59 -07:00
Johnny Steenbergen c926accb42 feat(pkger): add create stack implementation for service 2020-03-23 16:30:27 -07:00
Johnny Steenbergen aae629bffd feat(pkger): extend stack with name and description fields 2020-03-20 11:37:30 -07:00
Johnny Steenbergen e116ecaf5e feat(pkger): add CRUD store implmentation 2020-03-20 10:15:02 -07:00
Johnny Steenbergen 583e512451 feat(pkger): add stack foundation 2020-03-20 10:15:02 -07:00
Johnny Steenbergen 9d272b2229 chore(pkger): refactor exportCoordinator constructor 2020-03-18 17:02:35 -07:00
Johnny Steenbergen c31f321d11 chore(pkger): refactors export mechanics to provide unique metadata.name and spec.name
this is applied to all the resoruces that have had the spec.name field applied.
all resources that have not will work in the same way before this commit.
2020-03-18 15:14:48 -07:00
Johnny Steenbergen 136822da51 feat(pkger): extend endpoints to be able to define a endpoint and rename it 2020-03-17 11:31:33 -07:00
Johnny Steenbergen de32cf94d0 feat(pkger): extend labels to be able to define a label and rename it 2020-03-16 16:20:42 -07:00
Johnny Steenbergen de24c0e813 feat(influx): extend pkg export all cmd to allow for filtering of output
currently, support by filtering labelName and or by resource kind

closes: #17029
2020-03-09 09:27:01 -07:00
Johnny Steenbergen 1c9fd705a3 feat(pkger): add support for exporting org resources filtered by label 2020-03-06 14:51:01 -08:00
Johnny Steenbergen 6818925643 feat(pkger): add support for exporting all and filter by resource types
note: all associations are still included for resources that match the
filte criteria.
2020-03-06 11:51:38 -08:00
Johnny Steenbergen 46758e3370 fix(pkger): correct the export of tasks to include system type tasks
wrong assumption in original design. The system tasks are actually
the CRUD tasks. Name is a bit confusing for user generated tasks.

closes: #17038
2020-02-27 17:16:12 -08:00
Johnny Steenbergen 1a12ebc8ab fix(pkger): fix bug where tasks are exported for notification rules 2020-02-27 15:28:07 -08:00
Johnny Steenbergen 6ce0c3de7f feat(pkger): add support for combining pkgs 2020-02-06 12:40:30 -08:00
Johnny Steenbergen b2da311aa2 chore(pkger): simplify env refs to remove juggling state between validations 2020-02-06 10:31:43 -08:00