tree 2a1aba56ee896c6a7764ee7b5fae11f64b49c3f3
parent ad359eb03bee9ab3886d43e59d7b2ee877f84184
author Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com> 1520878354 +0530
committer Vernon Mauery <vernon.mauery@linux.intel.com> 1542672333 +0000

Basic IPMI User Management Support

Squashed commit containing Basic User Management
implementation

Unit Test:
1. Verified both Host & NetIpmid works fine.
2. Verified user related command responses

commit b46b869c0a3958a572b976b3bbaf6b5f33673778
Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
Date:   Tue Aug 7 15:30:32 2018 +0530

    Fix static objects to directly link user layer

    User layer library has to be directly linked with netipmid
    in order to be used in RAKP commands. Hence user layer
    library should not initialize the static bus objects in file
    scope, as ipmid_get_sd_bus_connection() won't be available
    during this time. Hence moved it under function scope and
    initialize it later.

    Unit test:
    Made sure, with this change it is loaded perfectly under
    phosphor-ipmi-host & phosphor-ipmi-net and responding to
    all user commands

    Change-Id: Id3f2e06580ca41b0347176ca33e011bf7b048c6a
    Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>

commit dc60516c45234379a30ad8b03b1cbe53978faeae
Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
Date:   Tue Aug 7 15:22:37 2018 +0530

    Fix to use proper user index for set user name

    Fix to use proper user index, instead of bailing out
    on first empty index. If user creation is requested on
    random index with previous index empty, then signal
    handler updates the data in first empty index, instead of
    traversing the user list fully. Fix added to mark the first
    free index, and still search for match to skip if found.

    Unit Test:
    Verified that user added in random index shows in that index
    using ipmitool set user name command.

    Change-Id: I30d9b884a5bae98b243ccf8ba7da194ef81355e6
    Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>

commit 0b9a81a1261b08ea13ad8777d0d80dad937e9972
Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
Date:   Fri Jul 6 15:57:02 2018 +0530

    Converting json store to array for user config

    Addressed comments to convert to array instead of key
    value pair.

    Testing: Performed basic testing of user management commands
    in both host & netipmid, by repeatedly restarting the same.

    Change-Id: I2e51ded3e2299fa196d868213950d96c72886358
    Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>

commit 182c945657b29acaeb13fc44129e0ed929013e59
Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
Date:   Sat Jun 30 00:07:28 2018 +0530

    Fix D-Bus paths for user management

    Fix D-Bus path as per upstream code in user management

    Change-Id: Idb22bee4365520f3d58e70ff61b02d6f6512d707
    Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>

commit cd5e22b16f8805dda396311b06994a9e021e97e9
Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
Date:   Thu Jun 28 06:22:27 2018 +0530

    Json format to store user config & cleanup

    Code updated to use json format to store and read
    the user configuration data. Few basic cleanup's
    performed.

    Change-Id: I7005f4f2648ccb8214312982a755ddcc6c33e64d
    Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>

commit 95ca9a67a4b84df603db0eb6a7024e9e0e5ad342
Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
Date:   Wed May 30 15:16:47 2018 +0530

    Get & Set User Access command implementation

    Get & Set User access command implementation

    Change-Id: I4f7a86de95400387c47ae556127baa1f02a703b2
    Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>

commit b2dea762362d06b70576dba5f45552d548792cb9
Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
Date:   Fri May 18 23:46:23 2018 +0530

    User layer separation.

    Separated out user commands from the implementation details,
    by creating user layers. App Handler library and netipmid
    will directly rely on this user_layer.so

    Change-Id: Ie7d4b3a5a934e32da73e066a25da4c27485c59c8
    Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>

commit 63e3113e522ecc7ce6e5aa1c85de4dc9b9a65a7b
Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
Date:   Mon May 7 12:00:06 2018 +0530

    Updated user management ipmi support

    1. Relying on Object Manager & D-Bus properties signal (except
    user rename, for which still relying on user rename signal)
    2. Minor clean-up.

    Change-Id: I594e7823a2c626bb7c88ec54a3ffa89a60b09c65
    Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>

commit 3e7b774c842917743369569790612d74387c755e
Author: AppaRao Puli <apparao.puli@intel.com>
Date:   Tue Apr 24 22:01:15 2018 +0530

    Synchronize user manager data during ipmi startup

    Synchronizing the user information by reading
    all managed user objects from dbus and checking
    ipmi user data for any update/delete/add users.

    Change-Id: I9e1a62ec9dd186a7276d083a57e679606d635e05
    Signed-off-by: AppaRao Puli <apparao.puli@intel.com>
    Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>

commit 92298ac0f591d167b0e26b977316a2b136127778
Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
Date:   Tue Apr 24 21:34:08 2018 +0530

    Minor fix: Read user enabled state in signals

    Fixed to read user enabled state in signal handlers.

    Change-Id: I0aa6c4687c16e08d8e304315e85cb65e9dbd346a
    Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>

commit 8646d2683fc247ce02a0460f9577276eb6e0a581
Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
Date:   Wed Apr 11 22:18:44 2018 +0530

    Signal handler update

    Support added to handle group, privilege
    user rename, enable / disable signal, and
    update the database accordingly.

    Change-Id: Ia33d063715a35814bbe1f9220e9609b800261e33
    Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>

commit fa411b2c4bbef50175b084889a4829206263ebdb
Author: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
Date:   Mon Mar 12 23:42:34 2018 +0530

    Add Basic user manager support - IPMI

    Add basic user manager support in IPMI
    Creates user through D-Bus user interface
    and sets password using pam_chauthok().
    Lock & File reload mechanism also implmeneted.
    UserUpdate signal handler support added to update
    user in IPMI, when users are updated through
    different interfaces.

    Change-Id: I1adc538562615109189d7c19dadae0b6a109f4a5
    Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>

Change-Id: I1adc538562615109189d7c19dadae0b6a109f4a5
Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
