[PATCH 0 of 2] #3 Added ServiceAccessBySAP association (ConsoleRedirectionService <-> KVMRedirectionSAP)

This patch depends on the patch which adds the HostedAccessPoint association

# HG changeset patch # User Richard Maciel <richardm@br.ibm.com> # Date 1228248506 7200 # Node ID 6d1cd827e490a3fee0f4219972e1bebfc0b3ccfa # Parent 21a9102b8eefde69aad9ec2dc0481db5f888ab96 Added ServiceAccessBySAP association (ConsoleRedirectionService <-> KVMRedirectionSAP) * Created mof and registration files * Changed Makefile to use newly created files Changes for submission #2 * Removed registration for CIMV2 in ServiceAccessBySAP.registration file Changes for submission #3 * Fixed indents in the Makefile.am Signed-off-by: Richard Maciel <richardm@br.ibm.com> diff -r 21a9102b8eef -r 6d1cd827e490 Makefile.am --- a/Makefile.am Thu Dec 04 20:15:50 2008 -0200 +++ b/Makefile.am Tue Dec 02 18:08:26 2008 -0200 @@ -52,7 +52,8 @@ schema/PointingDevice.mof \ schema/GraphicsPool.mof \ schema/InputPool.mof \ - schema/HostedAccessPoint.mof + schema/HostedAccessPoint.mof \ + schema/ServiceAccessBySAP.mof INTEROP_MOFS = \ schema/ComputerSystem.mof \ @@ -74,7 +75,7 @@ schema/RegisteredProfile.mof \ schema/ComputerSystem.mof \ schema/ElementConformsToProfile.mof \ - schema/HostedAccessPoint.mof + schema/HostedAccessPoint.mof REGS = \ schema/ComputerSystem.registration \ @@ -123,7 +124,8 @@ schema/PointingDevice.registration \ schema/GraphicsPool.registration \ schema/InputPool.registration \ - schema/HostedAccessPoint.registration + schema/HostedAccessPoint.registration \ + schema/ServiceAccessBySAP.registration INTEROP_REGS = \ schema/RegisteredProfile.registration \ @@ -136,7 +138,7 @@ schema/HostedService.registration \ schema/HostedDependency.registration \ schema/ElementConformsToProfile.registration \ - schema/HostedAccessPoint.registration + schema/HostedAccessPoint.registration pkgdata_DATA = $(MOFS) $(REGS) $(INTEROP_MOFS) $(INTEROP_REGS) pkgdata_SCRIPTS = provider-register.sh diff -r 21a9102b8eef -r 6d1cd827e490 schema/ServiceAccessBySAP.mof --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/schema/ServiceAccessBySAP.mof Tue Dec 02 18:08:26 2008 -0200 @@ -0,0 +1,22 @@ +// Copyright IBM Corp. 2007 + +[Association, + Provider("cmpi::Virt_ServiceAccessBySAP") +] +class Xen_ServiceAccessBySAP : CIM_ServiceAccessBySAP +{ +}; + +[Association, + Provider("cmpi::Virt_ServiceAccessBySAP") +] +class KVM_ServiceAccessBySAP : CIM_ServiceAccessBySAP +{ +}; + +[Association, + Provider("cmpi::Virt_ServiceAccessBySAP") +] +class LXC_ServiceAccessBySAP : CIM_ServiceAccessBySAP +{ +}; diff -r 21a9102b8eef -r 6d1cd827e490 schema/ServiceAccessBySAP.registration --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/schema/ServiceAccessBySAP.registration Tue Dec 02 18:08:26 2008 -0200 @@ -0,0 +1,6 @@ +# Copyright IBM Corp. 2007 +# Classname Namespace ProviderName ProviderModule ProviderTypes +Xen_ServiceAccessBySAP root/virt Virt_ServiceAccessBySAP Virt_ServiceAccessBySAP association +KVM_ServiceAccessBySAP root/virt Virt_ServiceAccessBySAP Virt_ServiceAccessBySAP association +LXC_ServiceAccessBySAP root/virt Virt_ServiceAccessBySAP Virt_ServiceAccessBySAP association +

RM> INTEROP_MOFS = \ RM> schema/ComputerSystem.mof \ RM> @@ -74,7 +75,7 @@ RM> schema/RegisteredProfile.mof \ RM> schema/ComputerSystem.mof \ RM> schema/ElementConformsToProfile.mof \ RM> - schema/HostedAccessPoint.mof RM> + schema/HostedAccessPoint.mof Not to drag this out any more than necessary, but your whitespace doesn't match here either. Not sure why this list is tabs and the others are spaces, but please make them match the style. Perhaps we need to clean these up to be consistent in a subsequent set. RM> INTEROP_REGS = \ RM> schema/RegisteredProfile.registration \ RM> @@ -136,7 +138,7 @@ RM> schema/HostedService.registration \ RM> schema/HostedDependency.registration \ RM> schema/ElementConformsToProfile.registration \ RM> - schema/HostedAccessPoint.registration RM> + schema/HostedAccessPoint.registration Here too :) Thanks! -- Dan Smith IBM Linux Technology Center Open Hypervisor Team email: danms@us.ibm.com

# HG changeset patch # User Richard Maciel <richardm@br.ibm.com> # Date 1228248422 7200 # Node ID a8b0fa7b1f637ff78b3bcc986ff7f6257a659578 # Parent 6d1cd827e490a3fee0f4219972e1bebfc0b3ccfa Added ServiceAccessBySAP association (ConsoleRedirectionService <-> KVMRedirectionSAP) * Created Virt_ServiceAccessBySAP.c file * Changed src/Makefile.am Changes for submission #2 * Removed un-needed checks from the handlers of the ServiceAccessBySAP.c file Changes for submission #3 * Removed more un-needed checks from the handlers of the ServiceAccessBySAP.c file Signed-off-by: Richard Maciel <richardm@br.ibm.com> diff -r 6d1cd827e490 -r a8b0fa7b1f63 src/Makefile.am --- a/src/Makefile.am Tue Dec 02 18:08:26 2008 -0200 +++ b/src/Makefile.am Tue Dec 02 18:07:02 2008 -0200 @@ -73,7 +73,8 @@ libVirt_ElementSettingData.la \ libVirt_ConcreteComponent.la \ libVirt_ServiceAffectsElement.la \ - libVirt_HostedAccessPoint.la + libVirt_HostedAccessPoint.la \ + libVirt_ServiceAccessBySAP.la libVirt_ComputerSystem_la_SOURCES = Virt_ComputerSystem.c libVirt_ComputerSystem_la_DEPENDENCIES = libVirt_VirtualSystemSnapshotService.la @@ -217,6 +218,10 @@ libVirt_KVMRedirectionSAP_la_SOURCES = Virt_KVMRedirectionSAP.c +libVirt_ServiceAccessBySAP_la_DEPENDENCIES = libVirt_ConsoleRedirectionService.la libVirt_KVMRedirectionSAP.la +libVirt_ServiceAccessBySAP_la_SOURCES = Virt_ServiceAccessBySAP.c +libVirt_ServiceAccessBySAP_la_LIBADD = -lVirt_ConsoleRedirectionService -lVirt_KVMRedirectionSAP + libVirt_HostedAccessPoint_la_DEPENDENCIES = libVirt_HostSystem.la libVirt_KVMRedirectionSAP.la libVirt_HostedAccessPoint_la_SOURCES = Virt_HostedAccessPoint.c libVirt_HostedAccessPoint_la_LIBADD = -lVirt_HostSystem -lVirt_KVMRedirectionSAP diff -r 6d1cd827e490 -r a8b0fa7b1f63 src/Virt_ServiceAccessBySAP.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/Virt_ServiceAccessBySAP.c Tue Dec 02 18:07:02 2008 -0200 @@ -0,0 +1,155 @@ +/* + * Copyright IBM Corp. 2007 + * + * Authors: + * Richard Maciel <richardm@br.ibm.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include <cmpidt.h> +#include <cmpift.h> +#include <cmpimacs.h> + +#include <libcmpiutil/libcmpiutil.h> +#include <libcmpiutil/std_association.h> +#include "misc_util.h" + +#include "Virt_ConsoleRedirectionService.h" +#include "Virt_KVMRedirectionSAP.h" + +const static CMPIBroker *_BROKER; + + +static CMPIStatus service_to_rsap(const CMPIObjectPath *ref, + struct std_assoc_info *info, + struct inst_list *list) +{ + CMPIStatus s = {CMPI_RC_OK, NULL}; + CMPIInstance *instance = NULL; + char* classname; + + if (!match_hypervisor_prefix(ref, info)) + goto out; + + classname = class_base_name(CLASSNAME(ref)); + + s = get_console_rs(ref, &instance, _BROKER, info->context, true); + if (s.rc != CMPI_RC_OK) + goto out; + + s = enum_console_sap(_BROKER, ref, list); + + out: + return s; +} + +static CMPIStatus rsap_to_service(const CMPIObjectPath *ref, + struct std_assoc_info *info, + struct inst_list *list) +{ + CMPIStatus s = {CMPI_RC_OK, NULL}; + CMPIInstance *instance = NULL; + + if (!match_hypervisor_prefix(ref, info)) + goto out; + + s = get_console_sap_by_ref(_BROKER, ref, &instance); + if (s.rc != CMPI_RC_OK) + goto out; + + s = get_console_rs(ref, &instance, _BROKER, info->context, false); + if (s.rc != CMPI_RC_OK) + goto out; + + inst_list_add(list, instance); + + out: + return s; +} + +LIBVIRT_CIM_DEFAULT_MAKEREF() + +static char* antecedent[] = { + "Xen_ConsoleRedirectionService", + "KVM_ConsoleRedirectionService", + "LXC_ConsoleRedirectionService", + NULL +}; + +static char* dependent[] = { + "Xen_KVMRedirectionSAP", + "KVM_KVMRedirectionSAP", + "LXC_KVMRedirectionSAP", + NULL +}; + +static char* assoc_classname[] = { + "Xen_ServiceAccessBySAP", + "KVM_ServiceAccessBySAP", + "LXC_ServiceAccessBySAP", + NULL +}; + +static struct std_assoc _service_to_rsap = { + .source_class = (char**)&antecedent, + .source_prop = "Antecedent", + + .target_class = (char**)&dependent, + .target_prop = "Dependent", + + .assoc_class = (char**)&assoc_classname, + + .handler = service_to_rsap, + .make_ref = make_ref +}; + +static struct std_assoc _rsap_to_service = { + .source_class = (char**)&dependent, + .source_prop = "Dependent", + + .target_class = (char**)&antecedent, + .target_prop = "Antecedent", + + .assoc_class = (char**)&assoc_classname, + + .handler = rsap_to_service, + .make_ref = make_ref +}; + +static struct std_assoc *handlers[] = { + &_service_to_rsap, + &_rsap_to_service, + NULL +}; + +STDA_AssocMIStub(, + Virt_ServiceAccessBySAP, + _BROKER, + libvirt_cim_init(), + handlers); + +/* + * Local Variables: + * mode: C + * c-set-style: "K&R" + * tab-width: 8 + * c-basic-offset: 8 + * indent-tabs-mode: nil + * End: + */
participants (2)
-
Dan Smith
-
Richard Maciel