/* * ServiceUtils.c * * Copyright (C) 2012 Red Hat, Inc. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Based on Syslog_ServiceUtils.c from sblim-cmpi-syslog written by * R Sharada , Copyright (c) IBM Corp. 2003, 2009 * * Red Hat Author(s): Vitezslav Crhonek * */ #include #include #include #include #include #include "ServiceUtils.h" #include "util/serviceutil.h" static char sccn[] = "CIM_UnitaryComputerSystem"; static char ccn[] = "Linux_Service"; static char csn[500] = ""; char * SystemCreationClassName() { return sccn; } char * SystemName() { if (*csn == 0) gethostname(csn, sizeof(csn)); return csn; } char * CreationClassName() { return ccn; } CMPIObjectPath * makeServicePath(const CMPIBroker *broker, const char *classname, const char *namespace, Service *svc) { CMPIObjectPath *op = NULL; op = CMNewObjectPath(broker, (char*)namespace, (char*)classname, NULL); if (!CMIsNullObject(op)) { CMAddKey(op, "CreationClassName", CreationClassName(), CMPI_chars); CMAddKey(op, "SystemCreationClassName", SystemCreationClassName(), CMPI_chars); CMAddKey(op, "SystemName", SystemName(), CMPI_chars); CMAddKey(op, "Name", svc->svName, CMPI_chars); } return op; } CMPIInstance * makeServiceInstance(const CMPIBroker *broker, const char * classname, const char * namespace, Service *svc) { CMPIInstance *in = NULL; CMPIObjectPath *op = CMNewObjectPath(broker, (char*) namespace, (char*) classname, NULL); if (!CMIsNullObject(op)) { in = CMNewInstance(broker, op, NULL); if (!CMIsNullObject(in)) { CMSetProperty(in, "CreationClassName", CreationClassName(), CMPI_chars); CMSetProperty(in, "SystemCreationClassName", SystemCreationClassName(), CMPI_chars); CMSetProperty(in, "SystemName", SystemName(), CMPI_chars); CMSetProperty(in, "Name", svc->svName, CMPI_chars); CMSetProperty(in, "Status", svc->svStatus, CMPI_chars); CMSetProperty(in, "Started", &svc->svStarted, CMPI_boolean); CMSetProperty(in, "EnabledDefault", (CMPIValue*) &(svc->svEnabledDefault), CMPI_uint16); } } return in; }