main.cpp (e6ffe7040eb28d8ea2a242177d2780516b6f5cf0) | main.cpp (82897c35761f505c2b881f72c61f726f7d562692) |
---|---|
1 2#include "estoraged.hpp" 3 4#include <unistd.h> 5 6#include <phosphor-logging/lg2.hpp> 7#include <sdbusplus/bus.hpp> 8 --- 12 unchanged lines hidden (view full) --- 21 " If omitted, default is luks-<devName>"; 22} 23 24int main(int argc, char** argv) 25{ 26 27 std::string physicalBlockDev = "/dev/mmcblk0"; 28 std::string containerBlockDev; | 1 2#include "estoraged.hpp" 3 4#include <unistd.h> 5 6#include <phosphor-logging/lg2.hpp> 7#include <sdbusplus/bus.hpp> 8 --- 12 unchanged lines hidden (view full) --- 21 " If omitted, default is luks-<devName>"; 22} 23 24int main(int argc, char** argv) 25{ 26 27 std::string physicalBlockDev = "/dev/mmcblk0"; 28 std::string containerBlockDev; |
29 int opt; | 29 int opt = 0; |
30 while ((opt = getopt(argc, argv, "b:c:")) != -1) 31 { 32 switch (opt) 33 { 34 case 'b': 35 physicalBlockDev = optarg; 36 break; 37 case 'c': 38 containerBlockDev = optarg; 39 break; 40 default: | 30 while ((opt = getopt(argc, argv, "b:c:")) != -1) 31 { 32 switch (opt) 33 { 34 case 'b': 35 physicalBlockDev = optarg; 36 break; 37 case 'c': 38 containerBlockDev = optarg; 39 break; 40 default: |
41 usage(argv[0]); | 41 usage(*argv); |
42 exit(EXIT_FAILURE); 43 } 44 } | 42 exit(EXIT_FAILURE); 43 } 44 } |
45 46 /* Get the filename of the device (without "/dev/"). */ 47 auto deviceName = 48 std::filesystem::path(physicalBlockDev).filename().string(); 49 50 /* If containerName arg wasn't provided, create one based on deviceName. */ 51 if (containerBlockDev.empty()) | 45 try |
52 { | 46 { |
53 containerBlockDev = "luks-" + deviceName; 54 } | 47 /* Get the filename of the device (without "/dev/"). */ 48 std::string deviceName = 49 std::filesystem::path(physicalBlockDev).filename().string(); 50 /* If containerName arg wasn't provided, create one based on deviceName. 51 */ 52 if (containerBlockDev.empty()) 53 { 54 containerBlockDev = "luks-" + deviceName; 55 } |
55 | 56 |
56 /* DBus path location to place the object. */ 57 std::string path = "/xyz/openbmc_project/storage/" + deviceName; | 57 /* DBus path location to place the object. */ 58 std::string path = "/xyz/openbmc_project/storage/" + deviceName; |
58 | 59 |
59 /* 60 * Create a new bus and affix an object manager for the subtree path we 61 * intend to place objects at. 62 */ 63 auto b = sdbusplus::bus::new_default(); 64 sdbusplus::server::manager_t m{b, path.c_str()}; | 60 /* 61 * Create a new bus and affix an object manager for the subtree path we 62 * intend to place objects at. 63 */ 64 auto b = sdbusplus::bus::new_default(); 65 sdbusplus::server::manager_t m{b, path.c_str()}; |
65 | 66 |
66 /* Reserve the dbus service name. */ 67 std::string busName = "xyz.openbmc_project.eStoraged." + deviceName; 68 b.request_name(busName.c_str()); | 67 /* Reserve the dbus service name. */ 68 std::string busName = "xyz.openbmc_project.eStoraged." + deviceName; 69 b.request_name(busName.c_str()); |
69 | 70 |
70 /* Create an eStoraged object. */ 71 estoraged::eStoraged esObject{b, path.c_str(), physicalBlockDev, 72 containerBlockDev}; 73 lg2::info("Storage management service is running", "REDFISH_MESSAGE_ID", 74 std::string("OpenBMC.1.0.ServiceStarted")); | 71 /* Create an eStoraged object. */ 72 estoraged::EStoraged esObject{b, path.c_str(), physicalBlockDev, 73 containerBlockDev}; 74 lg2::info("Storage management service is running", "REDFISH_MESSAGE_ID", 75 std::string("OpenBMC.1.0.ServiceStarted")); |
75 | 76 |
76 while (true) 77 { 78 b.wait(); 79 b.process_discard(); | 77 while (true) 78 { 79 b.wait(); 80 b.process_discard(); 81 } |
80 } | 82 } |
83 catch (const std::exception& e) 84 { 85 lg2::error(e.what(), "REDFISH_MESSAGE_ID", 86 std::string("OpenBMC.1.0.ServiceException")); |
|
81 | 87 |
88 return 2; 89 } |
|
82 return 1; 83} | 90 return 1; 91} |