| Age | Commit message (Collapse) | Author | Files | Lines |
|
Extract the long onmessage() websocket lambda in requestRoutes() into a
named function, handleDbusMonitorMessage(), per the <10 line lambda
coding standard in docs/COMMON_ERRORS.md.
Tested:
- No other functional change.
- Tested on an AST2600 SoC platform.
- Redfish Service Validator passed with no new errors or warnings
introduced.
Change-Id: I340df11dfbc626e26dab931f0ca0581cbd17e102
Signed-off-by: Yuvakumar Selvamani <yuvakumars@ami.com>
|
|
Long lambdas have been documented as an anti-pattern for some time.[1]
Despite this being generally understood, bmcweb has a long ways to go
cleaning these up, and routinely code is submitted in violation of this
anti-pattern.
Invent an ast-grep rule that can identify when new examples of this
anti-pattern are added, and ignore the existing 200+ examples that are
in the codebase already using ast-grep ignore. These flags will give us
something to search for as we clean this up, and will help to prevent
new instances from being added unintentionally.
[1] https://github.com/openbmc/docs/blob/master/anti-patterns.md#very-long-lambda-callbacks
Tested: Comment only change. ast-grep passes. Manually removing an
ast-grep ignore flag shows as a failure in ast-grep scan
Change-Id: I77d634a393884969f184d2c39c02cc08288d5a29
Signed-off-by: Ed Tanous <etanous@nvidia.com>
|
|
The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are for:
* exception_t
* manager_t
* match
* match_rules
* message_t
* object_t
* slot_t
Change-Id: Iaf2a83fb67d57a6fafb664d27b349add17a96bcd
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
|
|
The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are for:
* bus_t
* exception_t
* manager_t
* match_t
* message_t
* object_t
* slot_t
* object_path
Change-Id: Iace20f9ad26e8d9dc234979e7a4087d599da2641
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
|
|
We should have a single entry point where we do json parsing. There are
configurations for nlohmmann that we had previously documented, but were
not well enforced. Move all uses to using the helper parse functions.
Tested: Unit tests pass.
Redfish service validator passes.
Change-Id: I2a8aed9327b6b15219dc9b4d6db146b69bcd8eb3
Signed-off-by: Ed Tanous <etanous@nvidia.com>
|
|
bmcweb's route handler generates handlers for both /foo/ and /foo
when a route is registered with a trailing slash. This change adds
trailing slashes to 24 routes that were missing them.
Existing clients are not affected: the router already accepted
both forms. This change makes the route registrations consistent
and lets the trailing-slash ast-grep rule pass without suppressions.
Routes using <path> captures already match everything and do not
need a trailing slash, so those are excluded in the ast-grep rule.
Tested: ast-grep scan --error exits 0.
Change-Id: I9de641bd8ffec773b313b7e4da9034be0fd7e8e8
Signed-off-by: Davy Marrero <dmarrero@nvidia.com>
|
|
Signed-off-by: George Liu <liuxiwei@ieisystem.com>
Change-Id: If170e53077bc150d0062cd441394daea71f842b1
|
|
At one point the bmcweb /login route has supported a bunch of
different login mechanisms:
1. Sending username and password via headers, mirroring a non-openbmc
implementation that has never been used in openbmc, and predates this
repo being called bmcweb.
2. Sending username and password under a "data" object, mirroring
phosphor-rest json webserver.
3. Sending username and password as an http multipart as part of the
initial multipart parser patch.
4. Sending a json payload as {"username": <>, "password": <>}
This commit removes all but the final login mechanism. Redfish login
has been used exclusively for many many years, and only the webui used
4 above up until a few years ago in commit
1ff8e89fd2397c468ab0237158e5aeeff2692413
Keeping one viable login mechanism that's not Redfish is useful in the
future if there are those that want to disable Redfish. All others
could potentially be security issues, so keeping the code simple and
conscise here is ideal.
This commit does not attempt to make a backwards compatibility path,
under the assumption that other than 4, none of the other code was ever
used in any real capacity. If we find that to not be true, we can add
back the portions where we need compatibility, but this seems unlikely.
Tested: WIP
Change-Id: I04b4968836f0f824f46b3dff180ad92feb16967c
Signed-off-by: Ed Tanous <etanous@nvidia.com>
|
|
nlohmann::json::begin() throws an uncaught exception.
Tested: Redfish service validator passes.
Signed-off-by: Ed Tanous <ed@tanous.net>
Change-Id: I08244b0787cd4d6e592b0731196490a5160aba62
|
|
Our includes haven't been enforced by tidy in a while. Run the script,
check in the result, minus the false positives.
Change-Id: I6a6da26f5ba5082d9b4aa17cdc9f55ebd8cd41a6
Signed-off-by: Ed Tanous <etanous@nvidia.com>
|
|
The backends are different things compared to generic code. Today,
these are all included in the /include folder, but it's not very clear
what options control which backends, or how things map together. This
also means that we can't separate ownership between the various
companies.
This commit is a proposal to try to create a features folder,
separated by the code for the various backends, to make interacting
with this easier. It takes the form
features/<option name>/files.hpp
features/<option name>/files_test.hpp
Note, redfish-core was already at top level, and contains lots of code,
so to prevent lots of conflicts, it's simply symlinked into that folder
to make clear that it is a backend, but not to move the implementation
and cause code conflicts.
Tested: Unit tests pass. Code compiles.
Change-Id: Idcc80ffcfd99c876734ee41d53f894ca5583fed5
Signed-off-by: Ed Tanous <etanous@nvidia.com>
|