* fix: template apply uses better diff checking
Previously, we did a DeepEqual of all the returned data about each changed entity,
but due to our template overrides that is not actually all the information
available for each entity. So we marked trivial things as 'conflicts' (e.g.
telegraf config ID's 'changing' from the empty string to the real, current value)
while not catching important conflicts like flux script changes in checks and tasks.
Changes to make things more straightforward:
* Change the --force behaviour to be more similar to `apt install`, where even
in non-interactive mode `--force yes` is required to bypass the prompt to apply.
* Before, there were two stages of diff checking - once to print diffs, and once
after the 'Yes/No' prompt. If any conflicts were detected in the second check,
the user got an inscrutable error message that did not highlight what the difference
was or how to force it to apply. `--force conflict` was required to avoid this error.
Instead, we now have simplified to `--force yes` to bypass the 'Yes/No' prompt, and
we never do a second stage of diff checking.
* Because we do not currently properly account for more complicated diffs (e.g.
flux tasks), we now assume in the diff printing that every object has changes,
except for Labels, Buckets, Variables, and Label Mappings. This could be improved
in the future.
* fix: when statestatus is 'remove', mark as removed
* Add openapi submodule instructions to README.md
Add instructions for updating the influx-cli/openapi git submodule when regenerating the CLI.
* update: instructions to update openapi
Add instructions to update and regenerate influx-cli/openapi when changing commits.
Influxdata cloud2 uses a different mechanism to enable tracing.
You need to pass a `influx-debug-id` header (the value is ignored) and if the response contains
`trace-sampled: true` then the response's `trace-id` header contains a valid trace ID that can be
used to jump to the trace in jaeger.
If the request has been sampled, we print the trace-id to stderr.
Since modern terminals allow to click on hyperlinks, we could avoid a copy&paste of the trace id
if the `influx` binary wrote a the link to the jeager trace.
However, we don't want to hardcode the URL of the internal jaeger endpoint in the binary.
I tried adding a wrapper script on my machine that would just capture the trace-id and render it, but it's
hard to do without messing with the ordering of the stderr and stdout lines.
Thus I preferred adding a secret env var that controls the formatting of the trace-id and can be used
by our devs to generate links to our internal jaeger instance.
```console
$ export INFLUX_CLI_TRACE_PRINT_PREFIX="Trace: https://jaeger.my.cloud/trace/"
$ influx query --trace-debug-id 123 -f query.flux
Trace: https://jaeger.my.cloud/trace/f39a69354a3acca6
Result: _result
Table: keys: [_measurement]
...
```
* feat: added functionality for replication update command
* refactor: changed replication update usage text for clarity
* fix: added closing bracket back in
* chore: ran make fmt
* feat: added functionality for replication delete command
* refactor: changed naming of remote-id flag to be consistent with other influx commands
* refactor: reduced lines of code and improved error message based on code review
* feat: added functionality for replication list command
* chore: ran make fmt
* refactor: fixed comment for clarity
* refactor: chained statements together to simplify code
* feat: added functionality for replication create command
* refactor: changed replication create flag usage text and eliminated extra conditionals
* refactor: made changes to usage text and output table based on code review
* chore: fixed link to max queue size default value
* chore: include enum values in openapi generated code
* chore: add enum template to list of template overrides
* chore: update template and generated code
* feat: generate permissions list from openapi spec
* feat: all-access and operator token from CLI
Closes#22510
* fix: cloud fixed the resources endpoint
* fix: all access and operator permissions cannot be composed
* fix: review comments from dan-moran
* feat: added functionality for remote update command
* refactor: removed extra get request for TLS flag and minor changes to help text
* chore: pulled newest changes to openapi and ran make fmt
* refactor: shortened conditional statement to one line
* feat: implement remote create subcommand
* chore: generate mocks for testing remote command
* refactor: separated out test code, made small changes to remote create code
* chore: ran make fmt
* chore: removed excess print statements
* refactor: made changes suggested in code review
* refactor: added name and remote id to printed table
Make targets may call '$(GO_BUILD)', but there is no facility for
specifying arguments to 'go build'. As a first step, introduce the
GCFLAGS Makefile variable that when unset, operates as always, but when
set, adds '-gcflags "$(GCFLAGS)"' to go build. Eg, when unspecified,
maintain the current behavior (though with an additional space):
$ make
CGO_ENABLED=0 go build -ldflags ...
When specified, add the specified -gcflags:
$ GCFLAGS="all=-N -l" make
CGO_ENABLED=0 go build -gcflags "all=-N -l" -ldflags ...
This could be useful in various situations such as producing unoptimized
builds (like in the above).