Commit Graph

1175 Commits

Author SHA1 Message Date
dependabot[bot]
5551db10d3 Bump follow-redirects in /tests/examples/source/angular (#7208)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.1 to 1.15.5.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.1...v1.15.5)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-09 22:29:03 +00:00
Armel Soro
47037ffdb8 Fix flaky 'odo list namespace' tests
Fixes https://github.com/redhat-developer/odo/issues/6966
2024-01-04 10:38:02 +01:00
Armel Soro
f040a380c9 Revert helper_oc.go back to using the Project resource on OpenShift
It turns out that the developer user used in Interop tests
may not have the permission to access the Namespace resource.
2023-12-13 10:47:06 +01:00
Armel Soro
b5ea6f144b Revisit CI to spin up clusters on-demand (#7159)
* Label ServiceBinding tests, so we can run them separately

They require installing additional components in the cluster (OLM, SBO, ...).

* Add GH Workflow for most of our tests (including cluster-related tests)

This allows to easily test even multiple versions of Kubernetes if needed.

For easier reporting and visualisation (and also avoid rebuilding odo many times),
Podman tests have also been relocated in this same Workflow.

Notes:
I tried to spin up lightweight OpenShift clusters but gave up because of several issues:
- MicroShift: I tried to use the aio container image, but this one is no longer maintained and is pretty old version of OCP.
Trying to follow the official guidelines did not work either because a base RHEL OS is mandatory
- CRC/OpenShiftLocal with Microshift preset: didnt pass the pre-checks because it detected an issue with nested virtualization on the GH Runner.

* Drop unused code in helper_oc and use namespace instead of project

When testing on Microshift, it seems that the Project API is purposely not implemented on MicroShift
2023-12-08 23:28:10 +00:00
Armel Soro
0f2103e7d7 Recognize devfile.yml and .devfile.yml as Devfiles (#7130) 2023-12-01 12:10:19 +01:00
Armel Soro
15f663f12a Start HTTP server to replace Devfile Registry server in the tests (#7154) 2023-12-01 10:35:15 +01:00
Armel Soro
5d4a6ef325 Use staging Devfile registry for PR tests (#7129)
* Revert using a DEVFILE_PROXY env var

There is no proxy deployed in the internal test cluster.
As such, this env var no longer makes sense.

* To help troubleshoot, display the resolved Devfile registry URL

* Make interactive tests more resilient with stack versions

They are now able to determine if the "Select version" prompt
should be asked by "odo init" or not:

* Make sure doc automation tests do not rely on hard-coded namespaces

* Allow to run doc automation tests with more parallel Ginkgo nodes

This is possible now that those tests no longer
depend on a single hard-coded namespace.

* Remove occurrences of the DEVFILE_REGISTRY env var in IBM Pipelines scripts

* Reuse logic for determining the Devfile Registry URL in "odo registry" tests

* Clarify what openshiftci-config.sh is used for
2023-10-27 07:54:14 +00:00
dependabot[bot]
d77ca3e95a Go: Bump github.com/devfile/alizer from 1.0.1 to 1.2.1 (#7126)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Armel Soro <asoro@redhat.com>
2023-10-23 18:09:52 +02:00
Armel Soro
4d6a785cff Review and update OWNERS files 2023-10-23 14:29:20 +02:00
Armel Soro
d34fbaed1a Make warning messages more visible (#7097)
* Wrap warning messages to make them more visible

For example, instead of displaying:
```
⚠  You are using "default" project, odo may not work as expected in the default project.
```

We are now displaying:
```
========================================================================================
⚠  You are using "default" project, odo may not work as expected in the default project.
========================================================================================
```

* Display warning message about default project/namespace in a single block

* Add unit test

* Fix sample outputs for doc automation tests

* Revert "Fix sample outputs for doc automation tests"

This reverts commit 98a6554c34.

* Ignore '===' warning header and footer for doc automation tests
2023-09-26 02:53:45 -04:00
Philippe Martin
0f828ec99f Ignore devstate when existing process name is not odo + delete devstate files with odo delete component (#7090)
* Ignore devstate when existing process name is not odo

* Delete orphan devstate files with odo delete component

* Update unit tests

* Create fake system

* Add unit tests for odo delete component

* Integration tests for odo dev

* Troubleshooting

* First process on Windows is 4

* Use go-ps lib for pidExists
2023-09-20 14:20:53 +02:00
Armel Soro
1ab0178cef Make sure a Deploy command is present in the Devfile before auto-applying components (#7093)
* Add integration test case highlighting the issue

* Make sure a Deploy command is present in the Devfile before auto-applying components

* Fix expected output in 'odo deploy' interactive tests
2023-09-20 14:06:56 +02:00
Armel Soro
725a64014a Display Git commit ID in output of odo commands where the version is shown (#7074)
* Display Git commit ID in output of odo commands where the version is displayed

This covers:
- odo init
- odo dev
- odo deploy

Displaying the commit ID (same as in `odo version`) will help quickly pinpoint the exact commit without having to run `odo version`.

See #6131 for more context

* Append the state of the working tree next to the Git commit ID

`git describe` is much more helpful to quickly understand the state of the working tree.

For backward compatibility, we are defaulting to `git rev-parse`,
just in case `git describe` does not work correctly.

* Fix integration tests

* Fix doc automation tests

Strip the Git commit ID from the full odo version string
prior to comparing the outputs.
We still want to compare the tag displayed.
2023-09-06 20:36:13 +02:00
Philippe Martin
a65812143c Add a Devfile dependency for commands (#7063)
* Define Devfile dependency for commands

* Remove MarkDevfileNotNeeded

* More commands not using Devfile

* Tests with invalid devfiles
2023-09-04 18:12:34 +02:00
Philippe Martin
9089f9a637 Use multiarch image for postgresql instance (#7049) 2023-08-29 14:26:54 +02:00
Armel Soro
58954156e6 Fix potential namespace name collision issue with odo create/delete/list/set namespace/project tests (#7050)
* Make sure to delete the namespace generated for the test

Otherwise, it might cause name collisions
upon several subsequent runs of the same tests.

* Be more resilient when trying to delete the namespace/project after each test

Do nothing if the namespace/project no longer exists

* Be more resilient when trying to create the namespace/project before each test

Eventually check the existence of the created namespace/project.

* Rename 'helper#GetProjectName' into 'helper#GenerateProjectName'

This makes the intent clearer.

* Make sure to always delete the random namespace/project created when testing project/namespace deletion
2023-08-29 13:45:36 +02:00
Philippe Martin
b93a75c11a Move UI out of experimental mode (#7012)
* Make UI not experimental

* Display API and UI URLs

* Remove link to old sources

* Fix integration tests

* Add UI to Usage Data

* Add a "Using the GUI to edit the Devfile" page to doc

* Add link to odo.dev specific page

* Apply suggestions from code review

Co-authored-by: Armel Soro <armel@rm3l.org>

* Change favicon with odo logo

* Display web console URL as part of the Dev status

* Update UI static files

* Document that Comments not supported

* Add UI screenshots

---------

Co-authored-by: Armel Soro <armel@rm3l.org>
2023-08-04 13:02:34 +02:00
Philippe Martin
7c976f1bf1 Remove kubeconfig flag (#7017)
* Remove kubeconfig flag

* Do not check file exists from KUBECONFIG, as KUBECONFIG can be a list of files and this is done by clientcmd library

* Fix odo --help

* Add integration test to check flag is not supported
2023-08-04 11:52:19 +02:00
Philippe Martin
d41364e68e odo init filters devfile stacks by supported architectures (#7004)
* Add --architecture flag

* Ask architecture during interactive mode

* Display architectures of detected Devfile

* Fix integration tests

* Fix automated doc

* Fix e2e tests

* Ignore empty lines on doc automation tests

* Update pkg/odo/cli/registry/registry.go

Co-authored-by: Armel Soro <armel@rm3l.org>

* Fix Architectures field in API

* Change "select architectures" prompt

---------

Co-authored-by: Armel Soro <armel@rm3l.org>
2023-08-01 19:36:48 +02:00
Armel Soro
df07ac8a24 Clean up OWNERS files (#6997)
This makes sure the list is accurate, to avoid requesting PR reviews
from people no longer maintaining the project.
Ideally, I would put a GitHub team,
but this does not seem to be supported [1].
It can be done via an additional OWNERS_ALIASES file [2],
but this is yet to be tested.

[1] https://www.kubernetes.dev/docs/guide/owners/
[2] https://www.kubernetes.dev/docs/guide/owners/#owners_aliases
2023-07-21 14:27:24 +02:00
Philippe Martin
9605c92ede Remove API Server from experimental mode, set UI Server as experimental (#6985)
* Remove API Server from experimental mode, set UI Server as experimental

* Adapt api-server integration tests

* Disable --api-server by default in the tests

They are enabled only if `options.StartAPIServer`
is explicitly enabled.
This is to avoid potential port conflicting issue,
especially on Windows - see [1]

[1] https://github.com/redhat-developer/odo/issues/6939

* Error out if `--api-server-port` is set but `--api-server` is false

---------

Co-authored-by: Armel Soro <asoro@redhat.com>
2023-07-21 12:11:08 +02:00
Armel Soro
a4ee0e4cea Fix potential port conflict issue with the API server tests by using a random server port if --random-ports is set (#6995)
* Let the OS assign a random ephemeral port if `--random-ports` is specified when running `odo dev` or `odo api-server`

This should hopefully fix the potential port conflict flaky
issue we are seeing, especially on Windows.

* Do not allow setting `--random-ports` and a specific port value

This applies to:
- `odo dev --random-ports --api-server --api-server-port=<port>`
- `odo api-server --random-ports --port=<port>`
2023-07-21 09:52:24 +02:00
Armel Soro
6e725952bd Display information about the running API Server and web UI in odo describe component output (#6964)
* refactor: Set the experimental mode env var in a single place for the '--api-server' related tests

* Add integration tests highlighting the expectations

* Make the state client return the API server ports per platform

'odo dev' might be running on both cluster and podman,
so we might end up with several API servers.

* Make 'odo describe component' return information about the API Server and web UI

This is viewable only when running 'odo describe component'
with the experimental mode enabled.

* fixup! refactor: Set the experimental mode env var in a single place for the '--api-server' related tests

* Unit-test describe#filterByPlatform logic

* Simplify logic for 'describe#filterByPlatform', as suggested in review

Co-authored-by: Philippe Martin <phmartin@redhat.com>

---------

Co-authored-by: Philippe Martin <phmartin@redhat.com>
2023-07-18 16:31:14 +02:00
Armel Soro
5bf6a92a89 Support Architectures in odo registry (#6959)
* Display the supported architectures in `odo registry` output

* Allow filtering by architectures

* Update documentation accordingly

* Add test cases

* fixup! Update documentation accordingly

* fixup! Allow filtering by architectures

Devfiles with no architecture declared are supposed to be compatible
with all known architectures.

Co-authored-by: Philippe Martin <phmartin@redhat.com>

* fixup! Add test cases

---------

Co-authored-by: Philippe Martin <phmartin@redhat.com>
2023-07-07 12:57:52 -04:00
Philippe Martin
9624721ed3 odo dev --logs (#6957)
* Move logic to pkg/logs

* Fix Ctrl-c

* odo dev --logs

* Add integration test
2023-07-07 10:58:56 -04:00
Armel Soro
c4b103d9c4 Add new --run-port flag to odo init to set ports non-interactively (#6953)
* Add new `--run-port` flag to `odo init` to set ports non-interactively

As depicted in [1], this leverages the default (or single non-default) run command to find the linked container component.
As such, it assumes that the command found is an exec command,
and that the linked component is a container component.

[1] https://github.com/redhat-developer/odo/issues/6925

* Add unit and integration tests highlighting the expectations

* Document the new `--run-port` flag

* Fix some typos and language correctness issues in the `odo init` doc

* Add doc automation test for the output of `odo init --run-port`

This ensures the output and sample in the doc are kept in sync with the code base.
2023-07-06 10:35:24 -04:00
Armel Soro
4479c24dfe Display list of commands from the local devfile in odo describe component output (#6944)
* Add integration tests highlighting the expectations

* Add and fill a 'Commands' field from the DevfileData struct returned by `describe`

* Display commands in the human-readable output of 'odo describe'

* Add documentation and sample outputs
2023-07-03 10:19:06 -04:00
Parthvi Vala
a10f693fa7 Flake: Attempt at fixing Personalize configuration (#6830)
* Flake: Attempt at fixing Personalize configuration

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Separate the tests

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Another attempt

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* another attempt

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Remove env var test; already covered in e2e tests

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Update tests/helper/helper_interactive.go

---------

Signed-off-by: Parthvi Vala <pvala@redhat.com>
2023-06-29 16:45:45 +02:00
Philippe Martin
f276d0d77b Watch for new pods when logs --follow (#6914)
* Watch for new pods when logs --follow

* Fix integration tests

* Implement --follow for podman platform

* Add integration test
2023-06-28 14:21:04 +02:00
Parthvi Vala
3bf5ffc369 List namespace right after namespace has been created (#6922)
* List namespace right after namespace has been created

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Add sleep after listing namespaces

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Error out when timeout is reached

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Modify spinner messages

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Attempt at fixing doc tests

Signed-off-by: Parthvi Vala <pvala@redhat.com>

---------

Signed-off-by: Parthvi Vala <pvala@redhat.com>
2023-06-27 16:02:54 +02:00
Armel Soro
bfa125e4b0 Fix potential issue in odo version nightly tests if user does not have permission to get the OpenShift version (#6933)
* Fix issues in the tests if user does not have permission to see the OpenShift platform version

This happened on the nightly jobs running on Prow,
which makes us use a developer account with some restrictions.

* Rename 'helper.JsonSatisfies' into 'helper.JsonStatisfiesAll' to make the intent clearer
2023-06-26 17:46:10 +02:00
Philippe Martin
94e32303bd Implement API endpoints (#6915)
* Pass odo context to api server

* Get /instance

* DELETE /instance implementation

* Move describe logic to pkg/component/describe

* Get /component implementation

* POST /component/command implementation

* Fix example by replacing action with name

* Fix integration test

* Integration tests

* Add comment for PushWatcher

* Test DELETE /instance without --no-watch

* Apply suggestions from code review

Co-authored-by: Armel Soro <armel@rm3l.org>

* Return an error if not ready for push

* Fix windows tests

* Fix tests for Windows

---------

Co-authored-by: Armel Soro <armel@rm3l.org>
2023-06-26 16:00:49 +02:00
Philippe Martin
535ee0a105 Set FsGroup for spring boot test (#6931) 2023-06-26 11:55:09 +02:00
Parthvi Vala
2bafd31b6c Add podman version to odo version output (#6913)
* Show podman version in odo version; TODO: fix test and implement json

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Add integration test

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Add support for JSON

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Add documentation

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Fix missing OpenShift version

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Add warnings when unable to fetch version information

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Do not print warning when --client is used and review

Signed-off-by: Parthvi Vala <pvala@redhat.com>

---------

Signed-off-by: Parthvi Vala <pvala@redhat.com>
2023-06-24 22:46:37 +02:00
Philippe Martin
ae28de1012 Disable service binding related integration tests (#6920)
* check SKIP_SERVICE_BINDING_TESTS to skip service binding tests

* Pass SKIP_SERVICE_BINDING_TESTS to Windows for Windows tests

* Use fsGroup on Kubernetes

* add instructions to install devfile registry in cluster
2023-06-23 18:20:46 +02:00
Armel Soro
147542db69 Do not necessarily error out if odo dev is stopped via Ctrl+C (#6917)
* Add test highlighting the expectations

* Propagate errors and call os.Exit only in 'main' functions

See ExitInMain[1] and ExitInMain_ExitOnce[2] coding convention guidelines.

[1] https://github.com/redhat-developer/odo/wiki/Dev:-Coding-Conventions#exit-in-main
[2] https://github.com/redhat-developer/odo/wiki/Dev:-Coding-Conventions#exit-once

* Handle errors returned by Cleanuper#Cleanup

This makes sure the exit code of the command
is mapped onto any error returned by Cleanup

* Do not return an error when the watch loop in 'odo dev' is interrupted

* Test that the exit code of 'odo dev' matches the error returned by the cleanup logic
2023-06-22 13:14:07 +02:00
Philippe Martin
a29253521c Replace odo delete component integration with unit tests (#6904) 2023-06-21 17:43:03 +02:00
Philippe Martin
50ba3868a6 Add --sync-git-dir flag to odo dev (#6910)
* Indexer does not ignore .git

* add --sync-git-dir flag to odo dev

* Integration tests

* Add doc

* Force sync of complete .git content
2023-06-20 10:26:14 -04:00
Parthvi Vala
0b012f30e5 Implement HTTP Server based on OpenAPI spec (#6835)
* Implement HTTP Server based on OpenAPI spec

Signed-off-by: Parthvi Vala <pvala@redhat.com>
Co-authored-by: Armel Soro <asoro@redhat.com>
Co-authored-by: Philippe Martin <phmartin@redhat.com>

* Starter server when odo dev starts

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Add --api-server and --api-server-port flags to start API Server; write the port to stat file; TODO: make this feature experimental

Signed-off-by: Parthvi Vala <pvala@redhat.com>
Co-authored-by: Armel Soro <asoro@redhat.com>
Co-authored-by: Philippe Martin <phmartin@redhat.com>
Signed-off-by: Parthvi Vala <pvala@redhat.com>

Make the flag experimental

Signed-off-by: Parthvi Vala <pvala@redhat.com>

Make apiserver and apiserverport flag local

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Use container image to run openapi-generator-tool instead of a local CLI

Co-authored-by: Armel Soro <asoro@redhat.com>
Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Add integration test

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Use label podman

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Regenerate the api files with openapitool v6.6.0 and changes from review

Signed-off-by: Parthvi Vala <pvala@redhat.com>
Co-authored-by: Armel Soro <asoro@redhat.com>

---------

Signed-off-by: Parthvi Vala <pvala@redhat.com>
Co-authored-by: Armel Soro <asoro@redhat.com>
Co-authored-by: Philippe Martin <phmartin@redhat.com>
2023-06-19 10:29:36 -04:00
Parthvi Vala
a9e6cdc340 Refactor StartDevMode to return a single object instead of multiple args (#6886)
* Refactor StartDevMode to return an object instead of multiple variables

Signed-off-by: Parthvi Vala <pvala@redhat.com>

* Fix test

Signed-off-by: Parthvi Vala <pvala@redhat.com>

---------

Signed-off-by: Parthvi Vala <pvala@redhat.com>
2023-06-16 10:01:27 -04:00
Philippe Martin
24db6079dd Stop test as soon as expectations are ok (#6891) 2023-06-15 03:58:00 -04:00
Armel Soro
63c8e27e2a Implement odo dev --no-commands (#6855)
* Document the '--no-commands' flag

Co-authored-by: Philippe Martin <phmartin@redhat.com>

* Add integration tests highlighting the expectations

* Add '--no-commands' flag to the 'dev' sub-command

* Implement '--no-command' on Podman

* Implement '--no-command' on cluster

* Validate the '--no-commands' flag in the CLI

For example, it should not be possible to call it alongside '--build-command' or '--run-command',
because we won't be able to know what to do.

* Fix 'odo dev' tests when the run/debug does not exist

For consistency with how e.g., the build command works,
instead of erroring out, `odo dev` will
now simply log the error message and wait for new input.

* Check for command existence when we want to run them

As suggested in review, this makes it more adaptable.
As a consequence, if the default (or single) build/run command does not exist,
"odo dev" will not error out immediately; instead, it will behave a bit like
"odo dev --no-commands" (by starting, but printing a warning about the
missing command).
The difference here is that if a run command is added later on
during the dev session, "odo dev" will pick it up and run it,
but "odo dev --no-commands" will continue to purposely ignore it.

The existence of the optional default Build is already checked
by the 'libdevfile.Build' command. It does not error out if there is
no default (or single) Build command. It errors out only if the specified
'--build-command' does not exist in the Devfile.

Co-authored-by: Philippe Martin <phmartin@redhat.com>

* Check for application ports only if the Devfile has run or debug command and if there are ports to forward

This prevents:
i) displaying the "Waiting for the application to be ready" spinner for nothing,
  if there are no ports to forward
ii) waiting until the timeout of 1m has expired if there was no run/debug command executed,
  in which case, it is less unlikely that the application ports defined in the Devfile
  will ever be reachable.

* Test "odo run" command against a Dev Session started with and without "--no-commands"

---------

Co-authored-by: Philippe Martin <phmartin@redhat.com>
2023-06-14 09:28:06 -04:00
Philippe Martin
aabbded7e1 Unit tests/inject test clientset (#6874)
* Inject testClientset

* Test analyze CLI as unit test

* Replace odo analyze integration tests with unit tests
2023-06-13 13:16:31 -04:00
Philippe Martin
6bc30110ba Display outputs when executing odo run (#6865)
* Change NewRunHandler params with Options

* Pass an options to RunHandler to show logs

* Hide spinner and std output since outputs are displayed

* Integration tests with failing command

* Fix outputs

* use raw terminal and local standard i/o streams

* Fix podman i/o

* Fix stdout/err

* Test if in/out are terminal

* command reference doc
2023-06-12 10:45:31 -04:00
Philippe Martin
330b724753 Add an odo run command to manually execute command during odo dev (#6857)
* Add a run command

* Check command name passed as arg

* Check platform is available

* Add a Run method to the DevClient

* Run command on cluster

* Add test with run command on cluster

* Implement and test run on podman

* Enhance test to check that command has been executed in container

* Fix `odo help` test

* Refactor common code for podman/cluster

* Test Apply commands on Kubernetes/Images

* Test  a msg is displayed when executing odo run without odo dev

* Review

* makes GetRunningPodFromSelector return only Running pods on Podman
2023-06-02 09:33:21 -04:00
Armel Soro
b6c9c88245 Make sure the "Syncing files into the container" spinner is displayed on Podman (#6863)
* Check that the "Syncing files into the container" spinner is correctly displayed on both Podman and cluster

* Add missing "Syncing files into the container" spinner when running 'odo dev' on Podman

This indicates to the user that we are sync'ing the files,
which might be a potentially long operation.
This is to be consistent with the output when using 'odo dev' on cluster.
2023-06-02 05:13:13 -04:00
Armel Soro
a79c953e7a Track preference options usage (#6843)
* Add integration test highlighting the expectations

* Record parameter (and value) set or unset using the 'odo preference set/unset' commands

By default, values are anonymized.
Only parameters explicitly declared list will be recorded verbatim.
This list is currently empty, but that might change later on.

* Mark all current preference parameters except ImageRegistry as clear-text

Co-authored-by: Philippe Martin <phmartin@redhat.com>

---------

Co-authored-by: Philippe Martin <phmartin@redhat.com>
2023-05-30 05:02:02 -04:00
Armel Soro
85b4ff92e8 Make sure event is recorded whenever telemetry preference is changed (#6842)
* Add integration test highlighting the expectations

* Use the cancellable context derived from 'cmd.Context' where needed

* Introduce new 'wasTelemetryEnabled' telemetry property

This is recorded before any command is run.
And it will help determine if telemetry was
changed (e.g., from enabled to disabled),
so that we can record the event in this case.

* Send telemetry if it was enabled previously or if it is currently enabled

This is done by reading the actual telemetry setting
(either from env vars or the preferences file)
at the moment we want to record the telemetry event.
This covers cases where a command ('odo preference set ConsentTelemetry')
or an environment variable ('ODO_TRACKING_CONSENT')
updated the telemetry consent for example.
2023-05-26 11:25:24 -04:00
Philippe Martin
9a239c4e77 Use a single handler for executing all commands (#6826)
* Document current implementations of command handlers

* Add unit tests for execHAndler

* Refactor pkg/devfile/image to inject Backend as dependency

* Use same handler for kubedev/podmandev

* Fail after SelectBackend==nil only if backend is needed

* Move runHandler to dev/common

* Unit tests for runHandler

* Create a component.ExecuteTerminatingCommand

* ExecuteTerminatingCommand/ExecuteNonTerminatingCommand for Handler

* Fix calling other command types

* Consider parent group to determine if a command is terminating

* Replace component.execHandler by common.runHandler

* Remove execHandler

* Make runHandler and most of fields private and pass containersRunning to handler

* Pass containersRunning value

* deploy using common Handler

* Fix tests

* Use specific Dev/Deploy mode for Apply

* Fix cmdline for job

* Fix unit tests

* Pass appName and componentName with ctx to handler

* Move handler to pkg/component package

* Update doc

* Unit tests Deploy

* Unit tests Build

* Unit tests Run

* Unit tests PostStart

* Unit tests PreStop

* Update doc

* Fix Podman tests

* Fix hotReload on podman

* Change podman version timeout to 30s for tests

* Cleanup + fix doc
2023-05-26 11:01:21 -04:00
Armel Soro
511aaa22ad Fix should print warning about default namespace when running odo dev test when Dev Session does not start correctly (#6848)
The goal of this test is to ensure that the warning message is displayed,
so it does not matter if the Dev Session does not start correctly.
2023-05-26 10:09:08 -04:00