From: <ba...@us...> - 2007-02-09 01:31:14
|
Revision: 435 http://svn.sourceforge.net/omc/?rev=435&view=rev Author: bartw Date: 2007-02-08 17:31:11 -0800 (Thu, 08 Feb 2007) Log Message: ----------- Added CIMPLE provider for subclasses of CIM_LogicalFile Modified Paths: -------------- cmpibase/trunk/configure.ac cmpibase/trunk/src/include/omc/Makefile.am cmpibase/trunk/src/lib/omc/Makefile.am cmpibase/trunk/src/providers/Makefile.am Added Paths: ----------- cmpibase/trunk/src/include/omc/fileTools.h cmpibase/trunk/src/lib/omc/fileTools.c cmpibase/trunk/src/providers/logical-file/ cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider.cpp cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider.h cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider_module.cpp cmpibase/trunk/src/providers/logical-file/FilesCommon.cpp cmpibase/trunk/src/providers/logical-file/FilesCommon.hpp cmpibase/trunk/src/providers/logical-file/Makefile.am cmpibase/trunk/src/providers/logical-file/OMC_LinuxDirectoryContainsFile_Provider.cpp cmpibase/trunk/src/providers/logical-file/OMC_LinuxDirectoryContainsFile_Provider.h cmpibase/trunk/src/providers/logical-file/OMC_LinuxDirectoryContainsFile_Provider_module.cpp cmpibase/trunk/src/providers/logical-file/OMC_LinuxFileIdentity_Provider.cpp cmpibase/trunk/src/providers/logical-file/OMC_LinuxFileIdentity_Provider.h cmpibase/trunk/src/providers/logical-file/OMC_LinuxFileIdentity_Provider_module.cpp cmpibase/trunk/src/providers/logical-file/OMC_LinuxFile_Provider.cpp cmpibase/trunk/src/providers/logical-file/OMC_LinuxFile_Provider.h cmpibase/trunk/src/providers/logical-file/OMC_LinuxFile_Provider_module.cpp cmpibase/trunk/src/providers/logical-file/schema/ cmpibase/trunk/src/providers/logical-file/schema/CIM_Component.cpp cmpibase/trunk/src/providers/logical-file/schema/CIM_Component.h cmpibase/trunk/src/providers/logical-file/schema/CIM_DataFile.cpp cmpibase/trunk/src/providers/logical-file/schema/CIM_DataFile.h cmpibase/trunk/src/providers/logical-file/schema/CIM_DeviceFile.cpp cmpibase/trunk/src/providers/logical-file/schema/CIM_DeviceFile.h cmpibase/trunk/src/providers/logical-file/schema/CIM_Directory.cpp cmpibase/trunk/src/providers/logical-file/schema/CIM_Directory.h cmpibase/trunk/src/providers/logical-file/schema/CIM_DirectoryContainsFile.cpp cmpibase/trunk/src/providers/logical-file/schema/CIM_DirectoryContainsFile.h cmpibase/trunk/src/providers/logical-file/schema/CIM_FIFOPipeFile.cpp cmpibase/trunk/src/providers/logical-file/schema/CIM_FIFOPipeFile.h cmpibase/trunk/src/providers/logical-file/schema/CIM_FileIdentity.cpp cmpibase/trunk/src/providers/logical-file/schema/CIM_FileIdentity.h cmpibase/trunk/src/providers/logical-file/schema/CIM_LogicalElement.cpp cmpibase/trunk/src/providers/logical-file/schema/CIM_LogicalElement.h cmpibase/trunk/src/providers/logical-file/schema/CIM_LogicalFile.cpp cmpibase/trunk/src/providers/logical-file/schema/CIM_LogicalFile.h cmpibase/trunk/src/providers/logical-file/schema/CIM_LogicalIdentity.cpp cmpibase/trunk/src/providers/logical-file/schema/CIM_LogicalIdentity.h cmpibase/trunk/src/providers/logical-file/schema/CIM_ManagedElement.cpp cmpibase/trunk/src/providers/logical-file/schema/CIM_ManagedElement.h cmpibase/trunk/src/providers/logical-file/schema/CIM_ManagedSystemElement.cpp cmpibase/trunk/src/providers/logical-file/schema/CIM_ManagedSystemElement.h cmpibase/trunk/src/providers/logical-file/schema/CIM_SymbolicLink.cpp cmpibase/trunk/src/providers/logical-file/schema/CIM_SymbolicLink.h cmpibase/trunk/src/providers/logical-file/schema/CIM_UnixDeviceFile.cpp cmpibase/trunk/src/providers/logical-file/schema/CIM_UnixDeviceFile.h cmpibase/trunk/src/providers/logical-file/schema/CIM_UnixDirectory.cpp cmpibase/trunk/src/providers/logical-file/schema/CIM_UnixDirectory.h cmpibase/trunk/src/providers/logical-file/schema/CIM_UnixFile.cpp cmpibase/trunk/src/providers/logical-file/schema/CIM_UnixFile.h cmpibase/trunk/src/providers/logical-file/schema/Makefile.am cmpibase/trunk/src/providers/logical-file/schema/OMC_DataFile.cpp cmpibase/trunk/src/providers/logical-file/schema/OMC_DataFile.h cmpibase/trunk/src/providers/logical-file/schema/OMC_DirectoryContainsFile.cpp cmpibase/trunk/src/providers/logical-file/schema/OMC_DirectoryContainsFile.h cmpibase/trunk/src/providers/logical-file/schema/OMC_FIFOPipeFile.cpp cmpibase/trunk/src/providers/logical-file/schema/OMC_FIFOPipeFile.h cmpibase/trunk/src/providers/logical-file/schema/OMC_FileIdentity.cpp cmpibase/trunk/src/providers/logical-file/schema/OMC_FileIdentity.h cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxDataFile.cpp cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxDataFile.h cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxDeviceFile.cpp cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxDeviceFile.h cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxDirectory.cpp cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxDirectory.h cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxDirectoryContainsFile.cpp cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxDirectoryContainsFile.h cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxFIFOPipeFile.cpp cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxFIFOPipeFile.h cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxFile.cpp cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxFile.h cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxFileIdentity.cpp cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxFileIdentity.h cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxSymbolicLink.cpp cmpibase/trunk/src/providers/logical-file/schema/OMC_LinuxSymbolicLink.h cmpibase/trunk/src/providers/logical-file/schema/OMC_SymbolicLink.cpp cmpibase/trunk/src/providers/logical-file/schema/OMC_SymbolicLink.h cmpibase/trunk/src/providers/logical-file/schema/OMC_UnixDeviceFile.cpp cmpibase/trunk/src/providers/logical-file/schema/OMC_UnixDeviceFile.h cmpibase/trunk/src/providers/logical-file/schema/OMC_UnixDirectory.cpp cmpibase/trunk/src/providers/logical-file/schema/OMC_UnixDirectory.h cmpibase/trunk/src/providers/logical-file/schema/OMC_UnixFile.cpp cmpibase/trunk/src/providers/logical-file/schema/OMC_UnixFile.h cmpibase/trunk/src/providers/logical-file/schema/repository.cpp cmpibase/trunk/src/providers/logical-file/schema/repository.h Removed Paths: ------------- cmpibase/trunk/src/include/omc/Makefile.in cmpibase/trunk/src/providers/time-service/Makefile.in Property Changed: ---------------- cmpibase/trunk/ cmpibase/trunk/src/ cmpibase/trunk/src/include/ cmpibase/trunk/src/include/omc/ cmpibase/trunk/src/lib/ cmpibase/trunk/src/lib/omc/ cmpibase/trunk/src/providers/ cmpibase/trunk/src/providers/computer-system/ cmpibase/trunk/src/providers/operating-system/ cmpibase/trunk/src/providers/processes/ cmpibase/trunk/src/providers/time-service/ Property changes on: cmpibase/trunk ___________________________________________________________________ Name: svn:ignore - Makefile.in configure aclocal.m4 Makefile autom4te.cache config.guess config.log config.status config.sub config.h.in libtool ltmain.sh mybuild *.vpj config depcomp missing *.vpw *.vpwhistu *.vtg *.swp + stamp-h1 configure Makefile.in config.log depcomp config.guess config.h ltmain.sh config.sub Makefile omccmpi-*.tar.gz config.status config.h.in libtool autom4te.cache missing aclocal.m4 Modified: cmpibase/trunk/configure.ac =================================================================== --- cmpibase/trunk/configure.ac 2007-02-01 17:59:16 UTC (rev 434) +++ cmpibase/trunk/configure.ac 2007-02-09 01:31:11 UTC (rev 435) @@ -155,6 +155,15 @@ AC_HEADER_SYS_WAIT AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h sys/time.h openssl/evp.h sys/param.h sys/vfs.h],,[AC_MSG_ERROR(Missing headers: likely won't compile)]) +AC_LANG_CPLUSPLUS +AC_CHECK_HEADERS([cimple/cimple.h],[HAVE_CIMPLE="1"],[HAVE_CIMPLE="0"]) +AM_CONDITIONAL(DO_CIMPLE_PROVIDERS, test "$HAVE_CIMPLE" = 1) + +AC_CHECK_HEADERS([cimple/OpenWBEM_Adapter.h],[HAVE_CIMPLE_OW_ADAPTER="1"],[HAVE_CIMPLE_OW_ADAPTER="0"]) +AM_CONDITIONAL(USE_CIMPLE_OW_ADAPTER, test "$HAVE_CIMPLE_OW_ADAPTER" = 1) +AC_LANG_C + + # Checks for typedefs, structures, and compiler characteristics. AC_HEADER_STDBOOL AC_C_CONST @@ -191,5 +200,7 @@ src/providers/computer-system/Makefile src/providers/operating-system/Makefile src/providers/time-service/Makefile + src/providers/logical-file/Makefile + src/providers/logical-file/schema/Makefile ]) AC_OUTPUT Property changes on: cmpibase/trunk/src ___________________________________________________________________ Name: svn:ignore - Makefile.in + Makefile Makefile.in Property changes on: cmpibase/trunk/src/include ___________________________________________________________________ Name: svn:ignore - Makefile.in + Makefile.in Makefile Property changes on: cmpibase/trunk/src/include/omc ___________________________________________________________________ Name: svn:ignore - Makefile.in + Makefile Makefile.in Modified: cmpibase/trunk/src/include/omc/Makefile.am =================================================================== --- cmpibase/trunk/src/include/omc/Makefile.am 2007-02-01 17:59:16 UTC (rev 434) +++ cmpibase/trunk/src/include/omc/Makefile.am 2007-02-09 01:31:11 UTC (rev 435) @@ -6,6 +6,7 @@ exec.h \ ioUtils.h \ modifyFile.h \ + fileTools.h \ string.h \ linuxProcUtils.h \ cmpiUtils.h \ Deleted: cmpibase/trunk/src/include/omc/Makefile.in =================================================================== --- cmpibase/trunk/src/include/omc/Makefile.in 2007-02-01 17:59:16 UTC (rev 434) +++ cmpibase/trunk/src/include/omc/Makefile.in 2007-02-09 01:31:11 UTC (rev 435) @@ -1,406 +0,0 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -top_builddir = ../../.. -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src/include/omc -DIST_COMMON = $(pkginclude_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(pkgincludedir)" -pkgincludeHEADERS_INSTALL = $(INSTALL_HEADER) -HEADERS = $(pkginclude_HEADERS) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -pkgincludedir = $(includedir)/omccmpi -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AR = @AR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CP = @CP@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO = @ECHO@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -FFLAGS = @FFLAGS@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LEX = @LEX@ -LEXLIB = @LEXLIB@ -LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MV = @MV@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -RM = @RM@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -YACC = @YACC@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -pkginclude_HEADERS = \ - base.h \ - exec.h \ - ioUtils.h \ - modifyFile.h \ - string.h \ - linuxProcUtils.h \ - cmpiUtils.h \ - cmpiSimpleAssoc.h \ - cmpiTimeServiceUtils.h \ - ntpServer.h - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/include/omc/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/include/omc/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: -install-pkgincludeHEADERS: $(pkginclude_HEADERS) - @$(NORMAL_INSTALL) - test -z "$(pkgincludedir)" || $(mkdir_p) "$(DESTDIR)$(pkgincludedir)" - @list='$(pkginclude_HEADERS)'; for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f=$(am__strip_dir) \ - echo " $(pkgincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgincludedir)/$$f'"; \ - $(pkgincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgincludedir)/$$f"; \ - done - -uninstall-pkgincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(pkginclude_HEADERS)'; for p in $$list; do \ - f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(pkgincludedir)/$$f'"; \ - rm -f "$(DESTDIR)$(pkgincludedir)/$$f"; \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(pkgincludedir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: install-pkgincludeHEADERS - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-info-am uninstall-pkgincludeHEADERS - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool ctags distclean distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am install-info \ - install-info-am install-man install-pkgincludeHEADERS \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-info-am \ - uninstall-pkgincludeHEADERS - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: Added: cmpibase/trunk/src/include/omc/fileTools.h =================================================================== --- cmpibase/trunk/src/include/omc/fileTools.h (rev 0) +++ cmpibase/trunk/src/include/omc/fileTools.h 2007-02-09 01:31:11 UTC (rev 435) @@ -0,0 +1,104 @@ +/******************************************************************************* +* Copyright (C) 2005, 2006 Novell, Inc. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* +* - Redistributions of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* - Redistributions in binary form must reproduce the above copyright notice, +* this list of conditions and the following disclaimer in the documentation +* and/or other materials provided with the distribution. +* +* - Neither the name of Novell, Inc. nor the names of its +* contributors may be used to endorse or promote products derived from this +* software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' +* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +* ARE DISCLAIMED. IN NO EVENT SHALL Novell, Inc. OR THE CONTRIBUTORS +* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +******************************************************************************/ + + +#ifndef OMCFILETOOLS_H_GUARD__ +#define OMCFILETOOLS_H_GUARD__ + +#ifdef __cplusplus +extern "C" { +#endif + +struct stat; + +/** + * Return the name of the directory containing the file (or + * directory) referenced by path. + * + * @param path The path + * + * @return The directory containing the file. The caller is + * responsible to free the buffer returned. + */ +char* omc_dirname(const char* path); + +/** + * Struct containing the six keys of CIM file classes. + * (CIM_LogicalFile and children) + */ +typedef struct omcFileKeys_ +{ + char * CSCreationClassName; + char * CSName; + char * CreationClassName; + char * FSCreationClassName; + char * FSName; + char * Name; +} omcFileKeys; + +/** + * Free a omcFileKeys structure and the pointers contained + * therein. + * + * @param fk pointer to the omcFileKeys structure to be freed. + */ +void omcFileKeys_free(omcFileKeys* fk); + +/** + * Determine the keys for the CIM instance representing a given + * file. + * @param path The full path to the file + * + * @return A pointer to an omcFileKeys structure. The caller is + * responsible to free this with a call to + * omcFileKeys_free(). + */ +omcFileKeys* omcGetKeysForFile(const char* path); + +/** + * Determine the keys for the CIM instance representing a given + * file. Use this version if you already have a stat for the + * file and wish to avoid an aditional stat. + * + * @param path The full path to the file + * @param st A stat structure for the file obtained from stat() + * + * @return A pointer to an omcFileKeys structure. The caller is + * responsible to free this with a call to + * omcFileKeys_free(). + */ +omcFileKeys* omcGetKeysForFileStat(const char* path, struct stat* st); + +#ifdef __cplusplus +} +#endif + +#endif Property changes on: cmpibase/trunk/src/lib ___________________________________________________________________ Name: svn:ignore - Makefile.in + Makefile Makefile.in Property changes on: cmpibase/trunk/src/lib/omc ___________________________________________________________________ Name: svn:ignore - Makefile.in + .deps .libs Makefile.in Makefile Modified: cmpibase/trunk/src/lib/omc/Makefile.am =================================================================== --- cmpibase/trunk/src/lib/omc/Makefile.am 2007-02-01 17:59:16 UTC (rev 434) +++ cmpibase/trunk/src/lib/omc/Makefile.am 2007-02-09 01:31:11 UTC (rev 435) @@ -15,6 +15,7 @@ exec.c \ ioUtils.c \ modifyFile.c \ +fileTools.c \ string.c \ linuxProcUtils.c \ ntpServer.c Added: cmpibase/trunk/src/lib/omc/fileTools.c =================================================================== --- cmpibase/trunk/src/lib/omc/fileTools.c (rev 0) +++ cmpibase/trunk/src/lib/omc/fileTools.c 2007-02-09 01:31:11 UTC (rev 435) @@ -0,0 +1,201 @@ +/******************************************************************************* +* Copyright (C) 2005, 2006 Novell, Inc. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* +* - Redistributions of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* - Redistributions in binary form must reproduce the above copyright notice, +* this list of conditions and the following disclaimer in the documentation +* and/or other materials provided with the distribution. +* +* - Neither the name of Novell, Inc. nor the names of its +* contributors may be used to endorse or promote products derived from this +* software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' +* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +* ARE DISCLAIMED. IN NO EVENT SHALL Novell, Inc. OR THE CONTRIBUTORS +* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +******************************************************************************/ + + +#include "omc/fileTools.h" +//#include "omccmpi/string.h" +//#include "omccmpi/ioUtils.h" +//#include "string.h" +//#include "ioUtils.h" +#include <libgen.h> +#include "omc/string.h" +#include <sys/stat.h> +#include <sys/types.h> +#include <unistd.h> + +#ifndef _GNU_SOURCE +#define _GNU_SOURCE +#endif +#include <stdlib.h> +#include <stdio.h> + +char* omc_dirname(const char* path) +{ + char* tmp = strdup(path); + char* rv = dirname(tmp); + if (rv == NULL) + { + free(tmp); + } + return rv; +} + +void omcFileKeys_free(omcFileKeys* fk) +{ + if (fk == NULL) + { + return; + } + //free(fk->CSCreationClassName); // not malloc'd + free(fk->CSName); + //free(fk->CreationClassName); // not malloc'd + free(fk->FSCreationClassName); + free(fk->FSName); + free(fk->Name); + free(fk); +} + +omcFileKeys* omcGetKeysForFile(const char* path) +{ + struct stat st; + if (lstat(path, &st) != 0) + { + return NULL; + } + return omcGetKeysForFileStat(path, &st); +} + +omcFileKeys* omcGetKeysForFileStat(const char* path, struct stat* st) +{ + omcFileKeys* rv = (omcFileKeys*)malloc(sizeof(omcFileKeys)); + memset(rv, 0, sizeof(omcFileKeys)); + if (S_ISREG(st->st_mode)) + { + rv->CreationClassName = "OMC_LinuxDataFile"; + } else if (S_ISDIR(st->st_mode)) + { + rv->CreationClassName = "OMC_LinuxDirectory"; + } else if (S_ISCHR(st->st_mode) || S_ISBLK(st->st_mode)) + { + rv->CreationClassName = "OMC_LinuxDeviceFile"; + } else if (S_ISFIFO(st->st_mode)) + { + rv->CreationClassName = "OMC_LinuxFIFOPipeFile"; + } else if (S_ISLNK(st->st_mode)) + { + rv->CreationClassName = "OMC_LinuxSymbolicLink"; + } else + { + free(rv); + return NULL; + } + rv->Name = strdup(path); + rv->CSCreationClassName = "OMC_LinuxUnitaryComputerSystem"; + rv->CSName = (char*)malloc(256); + gethostname(rv->CSName, 256); + FILE* mounts = fopen("/proc/mounts", "r"); + if (mounts == NULL) + { + omcFileKeys_free(rv); + return NULL; + } + char* line = NULL; + char* p = NULL; + size_t bfrLen = 0; + for(p = omcReadLine(mounts, &line,&bfrLen); p; p = omcReadLine(mounts, &line,&bfrLen )) + { + int count = omcStrTokenCount(line, " \t\r\n"); + if (count != 6) + { + continue; + } + size_t numElems = 0; + char** strs = omcStrTokenize(line, " \t\r\n", &numElems); + if (strs == NULL) + { + continue; + } + if (strs[1][0] != '/') + { + free(strs); + continue; + } + if (strs[1][1] == 0 && strcmp(strs[0], "rootfs") == 0) + { + /* skip rootfs junk */ + free(strs); + continue; + } + struct stat dst; + if (stat(strs[1], &dst) != 0) + { + free(strs); + continue; + } + if (st->st_dev == dst.st_dev) + { + rv->FSName = strdup(strs[0]); + char* fstype = strs[2]; + if (strcmp(fstype, "ext2") == 0) + { + rv->FSCreationClassName = strdup("OMC_LinuxExt2FileSystem"); + } else if (strcmp(fstype, "ext3") == 0) + { + rv->FSCreationClassName = strdup("OMC_LinuxExt3FileSystem"); + } else if (strcmp(fstype, "reiserfs") == 0) + { + rv->FSCreationClassName = strdup("OMC_LinuxReiserFileSystem"); + } else if (strcmp(fstype, "nfs") == 0) + { + rv->FSCreationClassName = strdup("OMC_LinuxNFS"); + } else if (strcmp(fstype, "cifs") == 0) + { + rv->FSCreationClassName = strdup("OMC_LinuxCIFS"); /* TODO CIM class doesn't exist yet */ + } + else + { + int len = snprintf(NULL, 0, "Unknown:%s", fstype); + if (len > 0) + { + rv->FSCreationClassName = (char*)malloc(len + 1); + snprintf(rv->FSCreationClassName, len+1, "Unknown:%s", fstype); + } + else + { + rv->FSCreationClassName = strdup("Unknown"); + } + } + } + free(strs); + if (rv->FSName != NULL) + { + break; + } + } + if (line) + { + free(line); + } + fclose(mounts); + return rv; + +} + Property changes on: cmpibase/trunk/src/providers ___________________________________________________________________ Name: svn:ignore - Makefile.in + Makefile.in Makefile Modified: cmpibase/trunk/src/providers/Makefile.am =================================================================== --- cmpibase/trunk/src/providers/Makefile.am 2007-02-01 17:59:16 UTC (rev 434) +++ cmpibase/trunk/src/providers/Makefile.am 2007-02-09 01:31:11 UTC (rev 435) @@ -6,3 +6,7 @@ operating-system \ time-service +if DO_CIMPLE_PROVIDERS +SUBDIRS += logical-file +endif + Property changes on: cmpibase/trunk/src/providers/computer-system ___________________________________________________________________ Name: svn:ignore - Makefile.in + .deps .libs Makefile.in Makefile Property changes on: cmpibase/trunk/src/providers/logical-file ___________________________________________________________________ Name: svn:ignore + .deps .libs Makefile.in Makefile Added: cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider.cpp =================================================================== --- cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider.cpp (rev 0) +++ cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider.cpp 2007-02-09 01:31:11 UTC (rev 435) @@ -0,0 +1,140 @@ +/******************************************************************************* +* Copyright (C) 2005, 2006 Novell, Inc. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* +* - Redistributions of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* - Redistributions in binary form must reproduce the above copyright notice, +* this list of conditions and the following disclaimer in the documentation +* and/or other materials provided with the distribution. +* +* - Neither the name of Novell, Inc. nor the names of its +* contributors may be used to endorse or promote products derived from this +* software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' +* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +* ARE DISCLAIMED. IN NO EVENT SHALL Novell, Inc. OR THE CONTRIBUTORS +* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +******************************************************************************/ + +#include "CIM_LogicalFile_Provider.h" +#include "OMC_LinuxDirectoryContainsFile.h" +#include "omc/fileTools.h" +#include "FilesCommon.hpp" +#include <sys/stat.h> +#include <sys/types.h> +#include <unistd.h> + +CIMPLE_NAMESPACE_BEGIN + +CIM_LogicalFile_Provider::CIM_LogicalFile_Provider() +{ +} + +CIM_LogicalFile_Provider::~CIM_LogicalFile_Provider() +{ +} + +Load_Status CIM_LogicalFile_Provider::load() +{ + return LOAD_OK; +} + +Unload_Status CIM_LogicalFile_Provider::unload() +{ + return UNLOAD_OK; +} + +Get_Instance_Status CIM_LogicalFile_Provider::get_instance( + const CIM_LogicalFile* model, + CIM_LogicalFile*& instance) +{ + instance = getFile(model->Name.value.c_str()); + return GET_INSTANCE_OK; +} + +Enum_Instances_Status CIM_LogicalFile_Provider::enum_instances( + const CIM_LogicalFile* model, + Enum_Instances_Handler<CIM_LogicalFile>* handler) +{ + if (eqi(model->meta_class->name, "OMC_LinuxDirectory")) + { + struct stat st; + if (lstat("/", &st) != 0) + { + return ENUM_INSTANCES_FAILED; + } + omcFileKeys* keys = omcGetKeysForFileStat("/", &st); + if (keys == NULL) + { + return ENUM_INSTANCES_FAILED; + } + OMC_LinuxDirectory* dir = OMC_LinuxDirectory::create(); + if (dir == NULL) + { + return ENUM_INSTANCES_FAILED; + } + dir->CreationClassName.value = keys->CreationClassName; + dir->CSCreationClassName.value = keys->CSCreationClassName; + dir->CSName.value = keys->CSName; + dir->Name.value = keys->Name; + dir->FSName.value = keys->FSName; + dir->FSCreationClassName.value = keys->FSCreationClassName; + omcFileKeys_free(keys); + handler->handle(cast<CIM_LogicalFile*>(dir)); + } + return ENUM_INSTANCES_OK; +} + +Create_Instance_Status CIM_LogicalFile_Provider::create_instance( + const CIM_LogicalFile* instance) +{ + return CREATE_INSTANCE_UNSUPPORTED; +} + +Delete_Instance_Status CIM_LogicalFile_Provider::delete_instance( + const CIM_LogicalFile* instance) +{ + return DELETE_INSTANCE_UNSUPPORTED; +} + +Modify_Instance_Status CIM_LogicalFile_Provider::modify_instance( + const CIM_LogicalFile* instance) +{ + return MODIFY_INSTANCE_UNSUPPORTED; +} + +int CIM_LogicalFile_Provider::proc( + const Registration* registration, + int operation, + void* arg0, + void* arg1, + void* arg2, + void* arg3, + void* arg4, + void* arg5, + void* arg6, + void* arg7) +{ + // CAUTION: PLEASE DO NOT MODIFY THIS FUNCTION; IT WAS AUTOMATICALLY + // GENERATED. + + typedef CIM_LogicalFile Class; + typedef CIM_LogicalFile_Provider Provider; + return Provider_Proc_T<Provider>::proc(registration, + operation, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); +} + +CIMPLE_NAMESPACE_END Added: cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider.h =================================================================== --- cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider.h (rev 0) +++ cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider.h 2007-02-09 01:31:11 UTC (rev 435) @@ -0,0 +1,55 @@ +#ifndef _CIM_LogicalFile_Provider_h +#define _CIM_LogicalFile_Provider_h + +#include <cimple/cimple.h> +#include "CIM_LogicalFile.h" + +CIMPLE_NAMESPACE_BEGIN + +class CIM_LogicalFile_Provider +{ +public: + + typedef CIM_LogicalFile Class; + + CIM_LogicalFile_Provider(); + + ~CIM_LogicalFile_Provider(); + + Load_Status load(); + + Unload_Status unload(); + + Get_Instance_Status get_instance( + const CIM_LogicalFile* model, + CIM_LogicalFile*& instance); + + Enum_Instances_Status enum_instances( + const CIM_LogicalFile* model, + Enum_Instances_Handler<CIM_LogicalFile>* handler); + + Create_Instance_Status create_instance( + const CIM_LogicalFile* instance); + + Delete_Instance_Status delete_instance( + const CIM_LogicalFile* instance); + + Modify_Instance_Status modify_instance( + const CIM_LogicalFile* instance); + + static int proc( + const Registration* registration, + int operation, + void* arg0, + void* arg1, + void* arg2, + void* arg3, + void* arg4, + void* arg5, + void* arg6, + void* arg7); +}; + +CIMPLE_NAMESPACE_END + +#endif /* _CIM_LogicalFile_Provider_h */ Added: cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider_module.cpp =================================================================== --- cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider_module.cpp (rev 0) +++ cmpibase/trunk/src/providers/logical-file/CIM_LogicalFile_Provider_module.cpp 2007-02-09 01:31:11 UTC (rev 435) @@ -0,0 +1,16 @@ + +#include "config.h" +#include "CIM_LogicalFile_Provider.h" + +using namespace cimple; + +CIMPLE_MODULE(CIM_LogicalFile_Module); + +CIMPLE_PROVIDER(CIM_LogicalFile_Provider); +CIMPLE_CMPI_INSTANCE_PROVIDER(CIM_LogicalFile_Provider); + +#ifdef HAVE_CIMPLE_OPENWBEM_ADAPTER_H + #include <cimple/OpenWBEM_Adapter.h> + CIMPLE_OPENWBEM_PROVIDER(CIM_LogicalFile_Provider); +#endif + Added: cmpibase/trunk/src/providers/logical-file/FilesCommon.cpp =================================================================== --- cmpibase/trunk/src/providers/logical-file/FilesCommon.cpp (rev 0) +++ cmpibase/trunk/src/providers/logical-file/FilesCommon.cpp 2007-02-09 01:31:11 UTC (rev 435) @@ -0,0 +1,226 @@ +/******************************************************************************* +* Copyright (C) 2005, 2006 Novell, Inc. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* +* - Redistributions of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* - Redistributions in binary form must reproduce the above copyright notice, +* this list of conditions and the following disclaimer in the documentation +* and/or other materials provided with the distribution. +* +* - Neither the name of Novell, Inc. nor the names of its +* contributors may be used to endorse or promote products derived from this +* software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' +* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +* ARE DISCLAIMED. IN NO EVENT SHALL Novell, Inc. OR THE CONTRIBUTORS +* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +******************************************************************************/ + +#include "OMC_LinuxDirectory.h" +#include "OMC_LinuxDeviceFile.h" +#include "OMC_LinuxDataFile.h" +#include "OMC_LinuxFIFOPipeFile.h" +#include "OMC_LinuxSymbolicLink.h" +#include "OMC_LinuxFile.h" +#include "FilesCommon.hpp" +#include "omc/fileTools.h" + +#include <dirent.h> +#include <sys/param.h> +#include <sys/stat.h> +#include <sys/types.h> +#include <sys/param.h> +#include <unistd.h> +#include <grp.h> +#include <pwd.h> + + +CIMPLE_NAMESPACE_BEGIN + + +static +cimple::String _getGroupFromGID(gid_t gid) +{ + String rval; + char buf[PWENT_GRPENT_BUF_SIZE]; + struct group gr; + struct group* pgr; + int rv = getgrgid_r(gid, &gr, buf, PWENT_GRPENT_BUF_SIZE, &pgr); + if (rv == 0 && pgr) + { + rval = gr.gr_name; + } else + { + snprintf(buf, sizeof(buf), "%d", gid); + rval = buf; + } + return rval; +} + +static +cimple::String _getNameFromUID(uid_t uid) +{ + String rval; + char buf[PWENT_GRPENT_BUF_SIZE]; + struct passwd pw; + struct passwd* ppw = 0; + int rv = getpwuid_r(uid, &pw, buf, PWENT_GRPENT_BUF_SIZE, &ppw); + if (rv == 0 && ppw) + { + //rval = strdup(pw.pw_name); + rval = pw.pw_name; + } else + { + snprintf(buf,sizeof(buf),"%d", uid); + rval = buf; + } + return rval; +} + +OMC_LinuxFile* getLinuxFile(const char* path) +{ + struct stat st; + if (stat(path, &st) != 0) + { + return 0; + } + omcFileKeys* keys = omcGetKeysForFileStat(path, &st); + if (!keys) + { + return 0; + } + + OMC_LinuxFile* instance = OMC_LinuxFile::create(); + instance->LFName.value = keys->Name; + instance->FSCreationClassName.value = keys->FSCreationClassName; + instance->FSName.value = keys->FSName; + instance->LFCreationClassName.value = keys->CreationClassName; + instance->CSCreationClassName.value = keys->CSCreationClassName; + instance->CSName.value = keys->CSName; + omcFileKeys_free(keys); + instance->UserReadable.value = st.st_mode & S_IRUSR; + instance->UserWritable.value = st.st_mode & S_IWUSR; + instance->UserExecutable.value = st.st_mode & S_IXUSR; + instance->GroupReadable.value = st.st_mode & S_IRGRP; + instance->GroupWritable.value = st.st_mode & S_IWGRP; + instance->GroupExecutable.value = st.st_mode & S_IXGRP; + instance->WorldReadable.value = st.st_mode & S_IROTH; + instance->WorldWritable.value = st.st_mode & S_IWOTH; + instance->WorldExecutable.value = st.st_mode & S_IXOTH; + instance->UserID.value = _getNameFromUID(st.st_uid); + instance->GroupID.value = _getGroupFromGID(st.st_gid); + instance->SaveText.value = st.st_mode & S_ISVTX; + instance->LinkCount.value = st.st_nlink; + char buf[256]; + snprintf(buf, 255, "%lld", uint64(st.st_ino)); + instance->FileInodeNumber.value = buf; + instance->SetUid.value = st.st_mode & S_ISUID; + instance->SetGid.value = st.st_mode & S_ISGID; + instance->LastModifiedInode.value = Datetime(uint64(st.st_mtime)*1000000L, 0); + instance->NameMax.value = MAXNAMLEN; + instance->PathMax.value = MAXPATHLEN; + return instance; +} + +CIM_LogicalFile* getFile(const char* path) +{ + struct stat st; + if (lstat(path, &st) != 0) + { + return NULL; + } + omcFileKeys* keys = omcGetKeysForFileStat(path, &st); + if (keys == NULL) + { + return NULL; + } + + CIM_LogicalFile* rval = NULL; + if (S_ISREG(st.st_mode)) + { + OMC_LinuxDataFile* df = OMC_LinuxDataFile::create(); + rval = cast<CIM_LogicalFile*>(df); + } else if (S_ISDIR(st.st_mode)) + { + OMC_LinuxDirectory* dir = OMC_LinuxDirectory::create(); + //dir->FileSizeBits.value = ; + rval = cast<CIM_LogicalFile*>(dir); + } else if (S_ISCHR(st.st_mode) || S_ISBLK(st.st_mode)) + { + OMC_LinuxDeviceFile* dev = OMC_LinuxDeviceFile::create(); + if (S_ISCHR(st.st_mode)) + { + dev->DeviceFileType.value = dev->DeviceFileType.enum_Character; + } + else + { + dev->DeviceFileType.value = dev->DeviceFileType.enum_Block; + } + //dev->DeviceDescription.value = ; + //dev->DeviceMinor.value = ; + //dev->DeviceMajor.value = ; + //dev->DeviceId.value = ; + //dev->OtherTypeDescription.value = ; + rval = cast<CIM_LogicalFile*>(dev); + } else if (S_ISFIFO(st.st_mode)) + { + OMC_LinuxFIFOPipeFile* fifo = OMC_LinuxFIFOPipeFile::create(); + rval = cast<CIM_LogicalFile*>(fifo); + } else if (S_ISLNK(st.st_mode)) + { + OMC_LinuxSymbolicLink* link = OMC_LinuxSymbolicLink::create(); + char buf[MAXPATHLEN]; + int rrdlnk = readlink(keys->Name, buf, MAXPATHLEN); + if (rrdlnk != -1) + { + link->TargetFile.value = buf; + } + rval = cast<CIM_LogicalFile*>(link); + } else + { + return NULL; + } + rval->Name.value = keys->Name; + rval->CreationClassName.value = keys->CreationClassName; + rval->FSName.value = keys->FSName; + rval->FSCreationClassName.value = keys->FSCreationClassName; + rval->CSName.value = keys->CSName; + rval->CSCreationClassName.value = keys->CSCreationClassName; + omcFileKeys_free(keys); + + rval->Writeable.value = st.st_mode & S_IWUSR; + rval->Executable.value = st.st_mode & S_IXUSR; + rval->Readable.value = st.st_mode & S_IRUSR; + rval->FileSize.value = st.st_size; + //rval->CompressionMethod.value = ; + rval->LastModified.value = Datetime(uint64(st.st_mtime)*1000000L, 0); + //rval->InUseCount.value = ; + //rval->EncryptionMethod.value = ; + rval->LastAccessed.value = Datetime(uint64(st.st_atime)*1000000L, 0); + //rval->HealthState.value = ; + //rval->StatusDescriptions.value = ; + //rval->OperationalStatus.value = ; + //rval->Description.value = ; + rval->InstallDate.value = Datetime(uint64(st.st_ctime)*1000000L, 0); + + rval->ElementName.value = rval->Name.value; + //rval->Caption.value = ; + + return rval; +} + +CIMPLE_NAMESPACE_END + Added: cmpibase/trunk/src/providers/logical-file/FilesCommon.hpp =================================================================== --- cmpibase/trunk/src/providers/logical-file/FilesCommon.hpp (rev 0) +++ cmpibase/trunk/src/providers/logical-file/FilesCommon.hpp 2007-02-09 01:31:11 UTC (rev 435) @@ -0,0 +1,16 @@ +#ifndef OMC_FilesCommon_hpp_include_guard__ +#define OMC_FilesCommon_hpp_include_guard__ + +#include "CIM_LogicalFile.h" +#include "OMC_LinuxFile.h" + +CIMPLE_NAMESPACE_BEGIN + +#define PWENT_GRPENT_BUF_SIZE 1024 + +CIM_LogicalFile* getFile(const char* path); +OMC_LinuxFile* getLinuxFile(const char* path); + +CIMPLE_NAMESPACE_END + +#endif // #ifndef OMC_FilesCommon_hpp_include_guard__ Added: cmpibase/trunk/src/providers/logical-file/Makefile.am =================================================================== --- cmpibase/trunk/src/providers/logical-file/Makefile.am (rev 0) +++ cmpibase/trunk/src/providers/logical-file/Makefile.am 2007-02-09 01:31:11 UTC (rev 435) @@ -0,0 +1,76 @@ +SUBDIRS = schema + +lib_LTLIBRARIES = libOMC_FilesCommon.la + +provider_LTLIBRARIES = \ + libCIM_LogicalFile_Provider.la \ + libOMC_LinuxDirectoryContainsFile_Provider.la \ + libOMC_LinuxFileIdentity_Provider.la \ + libOMC_LinuxFile_Provider.la + +providerdir = ${libdir}/cmpi + +CIMPLE_ADAPTERS = -lcimplecmpiadap +if USE_CIMPLE_OW_ADAPTER + CIMPLE_ADAPTERS += -lcimpleowadap +endif + +libCIM_LogicalFile_Provider_la_LIBADD = \ + libOMC_FilesCommon.la \ + ${CIMPLE_ADAPTERS} \ + schema/libOMC_File_Schema.la +libOMC_LinuxFile_Provider_la_LIBADD = \ + libOMC_FilesCommon.la \ + ${CIMPLE_ADAPTERS} \ + schema/libOMC_File_Schema.la +libOMC_LinuxFileIdentity_Provider_la_LIBADD = \ + libOMC_FilesCommon.la \ + ${CIMPLE_ADAPTERS} \ + schema/libOMC_File_Schema.la +libOMC_LinuxDirectoryContainsFile_Provider_la_LIBADD = \ + libOMC_FilesCommon.la \ + ${CIMPLE_ADAPTERS} \ + schema/libOMC_File_Schema.la + +libOMC_FilesCommon_la_LIBADD = \ + schema/libOMC_File_Schema.la \ + ${top_builddir}/src/lib/omc/libomc_cbase.la + + +INCLUDES = -I${srcdir}/schema -I${top_srcdir}/src/include -I${top_srcdir} + +libOMC_FilesCommon_la_SOURCES = \ +FilesCommon.cpp \ +FilesCommon.hpp + +libOMC_LinuxFile_Provider_la_SOURCES = \ +OMC_LinuxFile_Provider.cpp \ +OMC_LinuxFile_Provider.h \ +OMC_LinuxFile_Provider_module.cpp + +libOMC_LinuxDirectoryContainsFile_Provider_la_SOURCES = \ +OMC_LinuxDirectoryContainsFile_Provider.cpp \ +OMC_LinuxDirectoryContainsFile_Provider.h \ +OMC_LinuxDirectoryContainsFile_Provider_module.cpp + +libOMC_LinuxFileIdentity_Provider_la_SOURCES = \ +OMC_LinuxFileIdentity_Provider.cpp \ +OMC_LinuxFileIdentity_Provider.h \ +OMC_LinuxFileIdentity_Provider_module.cpp + +libCIM_LogicalFile_Provider_la_SOURCES = \ +CIM_LogicalFile_Provider.cpp \ +CIM_LogicalFile_Provider.h \ +CIM_LogicalFile_Provider_module.cpp + +stubs : classes + export CIMPLE_MOF_PATH=/usr/share/mof/cim-current && \ + genprov -M omc-logical-file.mof -m CIM_LogicalFile && \ + mv module.cpp CIM_LogicalFile_Provider_module.cpp && \ + genprov -M omc-logical-file.mof -m OMC_LinuxDirectoryContainsFile && \ + mv module.cpp OMC_LinuxDirectoryContainsFile_Provider_module.cpp && \ + genprov -M omc-logical-file.mof -m OMC_LinuxFileIdentity && \ + mv module.cpp OMC_LinuxFileIdentity_Provider_module.cpp && \ + genprov -M omc-logical-file.mof -m OMC_LinuxFile && \ + mv module.cpp OMC_LinuxFile_Provider_module.cpp + Added: cmpibase/trunk/src/providers/logical-file/OMC_LinuxDirectoryContainsFile_Provider.cpp =================================================================== --- cmpibase/trunk/src/providers/logical-file/OMC_LinuxDirectoryContainsFile_Provider.cpp (rev 0) +++ cmpibase/trunk/src/providers/logical-file/OMC_LinuxDirectoryContainsFile_Provider.cpp 2007-02-09 01:31:11 UTC (rev 435) @@ -0,0 +1,256 @@ +/******************************************************************************* +* Copyright (C) 2005, 2006 Novell, Inc. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* +* - Redistributions of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* - Redistributions in binary form must reproduce the above copyright notice, +* this list of conditions and the following disclaimer in the documentation +* and/or other materials provided with the distribution. +* +* - Neither the name of Novell, Inc. nor the names of its +* contributors may be used to endorse or promote products derived from this +* software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' +* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +* ARE DISCLAIMED. IN NO EVENT SHALL Novell, Inc. OR THE CONTRIBUTORS +* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. +* +******************************************************************************/ +#include "OMC_LinuxDirectoryContainsFile_Provider.h" +#include "OMC_LinuxDirectory.h" +#include "CIM_LogicalFile.h" +#include "omc/fileTools.h" +#include "FilesCommon.hpp" +#include <sys/types.h> +#include <dirent.h> + +CIMPLE_NAMESPACE_BEGIN + +#if 0 +# define TRACE CIMPLE_TRACE +#else +# define TRACE +#endif + +OMC_LinuxDirectoryContainsFile_Provider::OMC_LinuxDirectoryContainsFile_Provider() +{ +} + +OMC_LinuxDirectoryContainsFile_Provider::~OMC_LinuxDirectoryContainsFile_Provider() +{ +} + +Load_Status OMC_LinuxDirectoryContainsFile_Provider::load() +{ + return LOAD_OK; +} + +Unload_Status OMC_LinuxDirectoryContainsFile_Provider::unload() +{ + return UNLOAD_OK; +} + +Get_Instance_Status OMC_LinuxDirectoryContainsFile_Provider::get_instance( + const OMC_LinuxDirectoryContainsFile* model, + OMC_LinuxDirectoryContainsFile*& instance) +{ + instance = model->clone(); + return GET_INSTANCE_OK; +} + +Enum_Instances_Status OMC_LinuxDirectoryContainsFile_Provider::enum_instances( + const OMC_LinuxDirectoryContainsFile* model, + Enum_Instances_Handler<OMC_LinuxDirectoryContainsFile>* handler) +{ + return ENUM_INSTANCES_OK; +} + +Create_Instance_Status OMC_LinuxDirectoryContainsFile_Provider::create_instance( + const OMC_LinuxDirectoryContainsFile* instance) +{ + return CREATE_INSTANCE_UNSUPPORTED; +} + +Delete_Instance_Status OMC_LinuxDirectoryContainsFile_Provider::delete_instance( + const OMC_LinuxDirectoryContainsFile* instance) +{ + return DELETE_INSTANCE_UNSUPPORTED; +} + +Modify_Instance_Status OMC_LinuxDirectoryContainsFile_Provider::modify_instance( + const OMC_LinuxDirectoryContainsFile* instance) +{ + return MODIFY_INSTANCE_UNSUPPORTED; +} + +Enum_Associator_Names_Status OMC_LinuxDirectoryContainsFile_Provider::enum_associator_names( + const Instance* instance, + const String& result_class, + const String& role, + const String& result_role, + Enum_Associator_Names_Handler<Instance>* handler) +{ + if (eqi(role, "PartComponent") + || eqi(result_role, "GroupComponent") + || (role.empty() && result_role.empty())) + { + TRACE; + CIM_LogicalFile* clf = cast<CIM_LogicalFile*>(instance); + char* parentPath = omc_dirname(clf->Name.value.c_str()); + CIM_LogicalFile* parentc = getFile(parentPath); + free(parentPath); + OMC_LinuxDirectory* parent = cast<OMC_LinuxDirectory*>(parentc); + handler->handle(parent); + } + if (eqi(role, "GroupComponent") + || eqi(result_role, "PartComponent") + || (role.empty() && result_role.empty())) + { + TRACE; + CIM_LogicalFile* dirc = cast<CIM_LogicalFile*>(instance); + TRACE; + dirc = getFile(dirc->Name.value.c_str()); + Ref<Instance> dirc_d(dirc); + TRACE; + if (eqi(dirc->CreationClassName.value, "OMC_LinuxDirectory")) + { + struct dirent* pDent; + DIR* pDir; + pDir = opendir(dirc->Name.value.c_str()); + if (pDir != 0) + { + String prefix = dirc->Name.value; + TRACE; + if (prefix[prefix.size()-1] != '/') + { + TRACE; + prefix.append('/'); + } + TRACE; + for (pDent = readdir(pDir); pDent != 0; pDent = readdir(pDir)) + { + String curName = pDent->d_name; + if (curName.equal(".") or curName.equal("..")) + { + continue; + } + String fullName = prefix; + fullName.append(curName); + CIM_LogicalFile* fileInDir = getFile(fullName.c_str()); + if (fileInDir) + { + TRACE; + handler->handle(fileInDir); + } + } + } + closedir(pDir); + } + } + return ENUM_ASSOCIATOR_NAMES_OK; +} + +Enum_References_Status OMC_LinuxDirectoryContainsFile_Provider::enum_references( + const Instance* instance, + const OMC_LinuxDirectoryContainsFile* model, + const String& role, + Enum_References_Handler<OMC_LinuxDirectoryContainsFile>* handler) +{ + TRACE; + if (eqi(role, "PartComponent") || role.empty()) + { + TRACE; + CIM_LogicalFile* clf = cast<CIM_LogicalFile*>(instance); + char* parentPath = omc_dirname(clf->Name.value.c_str()); + CIM_LogicalFile* parentc = getFile(parentPath); + free(parentPath); + OMC_LinuxDirectory* parent = cast<OMC_LinuxDirectory*>(parentc); + OMC_LinuxDirectoryContainsFile* assoc = OMC_LinuxDirectoryContainsFile::create(); + assoc->PartComponent = clf->clone(); + assoc->GroupComponent = parent; + handler->handle(assoc); + } + if (eqi(role, "GroupComponent") || role.empty()) + { + TRACE; + CIM_LogicalFile* dirc = cast<CIM_LogicalFile*>(instance); + TRACE; + dirc = getFile(dirc->Name.value.c_str()); + Ref<Instance> dirc_d(dirc); + TRACE; + if (eqi(dirc->CreationClassName.value, "OMC_LinuxDirectory")) + { + struct dirent* pDent; + DIR* pDir; + pDir = opendir(dirc->Name.value.c_str()); + if (pDir != 0) + { + String prefix = dirc->Name.value; + TRACE; + if (prefix[prefix.size()-1] != '/') + { + TRACE; + prefix.append('/'); + } + TRACE; + for (pDent = readdir(pDir); pDent != 0; pDent = readdir(pDir)) + { + String curName = pDent->d_name; + if (curName.equal(".") or curName.equal("..")) + { + continue; + } + String fullName = prefix; + fullName.append(curName); + CIM_LogicalFile* fileInDir = getFile(fullName.c_str()); + if (fileInDir) + { + TRACE; + OMC_LinuxDirectoryContainsFile* assoc = OMC_LinuxDirectoryContainsFile::create(); + OMC_LinuxDirectory* old = cast<OMC_LinuxDirectory*>(dirc); + assoc->GroupComponent = old->clone(); + assoc->PartComponent = fileInDir; + handler->handle(assoc); + } + } + } + closedir(pDir); + } + } + return ENUM_REFERENCES_OK; +} + +int OMC_LinuxDirectoryContainsFile_Provider::proc( + const Registration* registration, + int operation, + void* arg0, + void* arg1, + void* arg2, + void* arg3, + void* arg4, + void* arg5, + void* arg6, + void* arg7) +{ + // CAUTION: PLEASE DO NOT MODIFY THIS FUNCTION; IT WAS AUTOMATICALLY + // GENERATED. + + typedef OMC_LinuxDirectoryContainsFile Class; + typedef OMC_LinuxDirectoryContainsFile_Provider Provider; + return Association_Provider_Proc_T<Provider>::proc(registration, + operation, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); +} + +CIMPLE_NAMESPACE_END Added... [truncated message content] |