sfcc 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.rdoc +6 -0
- data/README.rdoc +10 -0
- data/ext/sfcc/cim_client.c +2 -0
- data/ext/sfcc/cim_object_path.c +13 -7
- data/ext/sfcc/sfcc.h +10 -1
- data/lib/sfcc.rb +1 -3
- data/lib/sfcc/version.rb +3 -0
- metadata +77 -110
- data/MIT-LICENSE +0 -22
- data/Manifest.txt +0 -28
- data/Rakefile +0 -32
- data/TODO.rdoc +0 -28
- data/test/helper.rb +0 -32
- data/test/test_sfcc.rb +0 -69
- data/test/test_sfcc_cim_class.rb +0 -53
- data/test/test_sfcc_cim_client.rb +0 -164
- data/test/test_sfcc_cim_enumeration.rb +0 -24
- data/test/test_sfcc_cim_instance.rb +0 -89
- data/test/test_sfcc_cim_object_path.rb +0 -85
    
        data/CHANGELOG.rdoc
    CHANGED
    
    
    
        data/README.rdoc
    CHANGED
    
    | @@ -54,6 +54,16 @@ ruby-like API to do CIM based management. | |
| 54 54 |  | 
| 55 55 | 
             
            * ObjectPath qualifier methods crash
         | 
| 56 56 |  | 
| 57 | 
            +
            == Links
         | 
| 58 | 
            +
             | 
| 59 | 
            +
            === Documentation
         | 
| 60 | 
            +
             | 
| 61 | 
            +
            * http://rdoc.info/projects/dmacvicar/ruby-sfcc
         | 
| 62 | 
            +
             | 
| 63 | 
            +
            === Code Metrics
         | 
| 64 | 
            +
             | 
| 65 | 
            +
            * http://getcaliper.com/caliper/project?repo=git%3A%2F%2Fgithub.com%2Fdmacvicar%2Fruby-sfcc.git
         | 
| 66 | 
            +
             | 
| 57 67 | 
             
            == Authors
         | 
| 58 68 |  | 
| 59 69 | 
             
            * Duncan Mac-Vicar P. <dmacvicar@suse.de>
         | 
    
        data/ext/sfcc/cim_client.c
    CHANGED
    
    | @@ -65,6 +65,8 @@ static VALUE get_class(int argc, VALUE *argv, VALUE self) | |
| 65 65 | 
             
             *
         | 
| 66 66 | 
             
             * return the available class names for the given
         | 
| 67 67 | 
             
             * +object_path+ and +flags+
         | 
| 68 | 
            +
             *
         | 
| 69 | 
            +
             * The following flag is supported: Flags::DeepInheritance.
         | 
| 68 70 | 
             
             */
         | 
| 69 71 | 
             
            static VALUE class_names(int argc, VALUE *argv, VALUE self)
         | 
| 70 72 | 
             
            {
         | 
    
        data/ext/sfcc/cim_object_path.c
    CHANGED
    
    | @@ -39,7 +39,7 @@ static VALUE namespace(VALUE self) | |
| 39 39 | 
             
              Data_Get_Struct(self, CMPIObjectPath, ptr);
         | 
| 40 40 | 
             
              cimstr = ptr->ft->getNameSpace(ptr, &status);
         | 
| 41 41 | 
             
              if (!status.rc)
         | 
| 42 | 
            -
                return  | 
| 42 | 
            +
                return CIMSTR_2_RUBYSTR(cimstr);
         | 
| 43 43 | 
             
              sfcc_rb_raise_if_error(status, "Can't get namespace");
         | 
| 44 44 | 
             
              return Qnil;
         | 
| 45 45 | 
             
            }
         | 
| @@ -76,7 +76,7 @@ static VALUE hostname(VALUE self) | |
| 76 76 | 
             
              Data_Get_Struct(self, CMPIObjectPath, ptr);
         | 
| 77 77 | 
             
              cimstr = ptr->ft->getHostname(ptr, &status);
         | 
| 78 78 | 
             
              if (!status.rc)
         | 
| 79 | 
            -
                return  | 
| 79 | 
            +
                return CIMSTR_2_RUBYSTR(cimstr);
         | 
| 80 80 | 
             
              sfcc_rb_raise_if_error(status, "Can't get hostname");
         | 
| 81 81 | 
             
              return Qnil;
         | 
| 82 82 | 
             
            }
         | 
| @@ -106,7 +106,7 @@ static VALUE class_name(VALUE self) | |
| 106 106 | 
             
              CMPIString *cimstr = NULL;
         | 
| 107 107 | 
             
              Data_Get_Struct(self, CMPIObjectPath, ptr);
         | 
| 108 108 | 
             
              cimstr = ptr->ft->getClassName(ptr, NULL);
         | 
| 109 | 
            -
              return  | 
| 109 | 
            +
              return CIMSTR_2_RUBYSTR(cimstr);
         | 
| 110 110 | 
             
            }
         | 
| 111 111 |  | 
| 112 112 | 
             
            /**
         | 
| @@ -170,7 +170,7 @@ static VALUE each_key(VALUE self) | |
| 170 170 | 
             
                for (; k < num_props; ++k) {
         | 
| 171 171 | 
             
                  data = ptr->ft->getKeyAt(ptr, k, &key_name, &status);
         | 
| 172 172 | 
             
                  if (!status.rc) {
         | 
| 173 | 
            -
                    rb_yield_values(2,  | 
| 173 | 
            +
                    rb_yield_values(2, rb_str_intern(CIMSTR_2_RUBYSTR(key_name)), sfcc_cimdata_to_value(data));
         | 
| 174 174 | 
             
                  }
         | 
| 175 175 | 
             
                  else {
         | 
| 176 176 | 
             
                    sfcc_rb_raise_if_error(status, "Can't retrieve key #%d", k);
         | 
| @@ -350,7 +350,7 @@ static VALUE to_s(VALUE self) | |
| 350 350 | 
             
              CMPIString *cimstr = NULL;
         | 
| 351 351 | 
             
              Data_Get_Struct(self, CMPIObjectPath, ptr);
         | 
| 352 352 | 
             
              cimstr = ptr->ft->toString(ptr, NULL);
         | 
| 353 | 
            -
              return  | 
| 353 | 
            +
              return CIMSTR_2_RUBYSTR(cimstr);
         | 
| 354 354 | 
             
            }
         | 
| 355 355 |  | 
| 356 356 | 
             
            /**
         | 
| @@ -360,12 +360,18 @@ static VALUE to_s(VALUE self) | |
| 360 360 | 
             
             * Creates an object path from +namespace+ and +class_name+
         | 
| 361 361 | 
             
             *
         | 
| 362 362 | 
             
             */
         | 
| 363 | 
            -
            static VALUE new( | 
| 363 | 
            +
            static VALUE new(int argc, VALUE *argv, VALUE self)
         | 
| 364 364 | 
             
            {
         | 
| 365 | 
            +
              VALUE namespace;
         | 
| 366 | 
            +
              VALUE class_name;
         | 
| 367 | 
            +
             | 
| 365 368 | 
             
              CMPIStatus status;
         | 
| 366 369 | 
             
              CMPIObjectPath *ptr = NULL;
         | 
| 367 370 | 
             
              CMPIObjectPath *newop = NULL;
         | 
| 368 371 | 
             
              memset(&status, 0, sizeof(CMPIStatus));
         | 
| 372 | 
            +
             | 
| 373 | 
            +
              rb_scan_args(argc, argv, "11", &namespace, &class_name);
         | 
| 374 | 
            +
             | 
| 369 375 | 
             
              ptr = newCMPIObjectPath(NIL_P(namespace) ? NULL : StringValuePtr(namespace),
         | 
| 370 376 | 
             
                                      NIL_P(class_name) ? NULL : StringValuePtr(class_name),
         | 
| 371 377 | 
             
                                      &status);
         | 
| @@ -398,7 +404,7 @@ void init_cim_object_path() | |
| 398 404 | 
             
              VALUE klass = rb_define_class_under(cimc, "ObjectPath", rb_cObject);
         | 
| 399 405 | 
             
              cSfccCimObjectPath = klass;
         | 
| 400 406 |  | 
| 401 | 
            -
              rb_define_singleton_method(klass, "new", new,  | 
| 407 | 
            +
              rb_define_singleton_method(klass, "new", new, -1);
         | 
| 402 408 | 
             
              rb_define_method(klass, "namespace=", set_namespace, 1);
         | 
| 403 409 | 
             
              rb_define_method(klass, "namespace", namespace, 0);
         | 
| 404 410 | 
             
              rb_define_method(klass, "hostname=", set_hostname, 1);
         | 
    
        data/ext/sfcc/sfcc.h
    CHANGED
    
    | @@ -16,7 +16,14 @@ | |
| 16 16 | 
             
            #include <CimClientLib/cmcimacs.h>
         | 
| 17 17 |  | 
| 18 18 | 
             
            #include "ruby.h"
         | 
| 19 | 
            -
             | 
| 19 | 
            +
             | 
| 20 | 
            +
            #include <ruby.h>
         | 
| 21 | 
            +
            #ifdef HAVE_RUBY_ST_H
         | 
| 22 | 
            +
            # include <ruby/st.h>
         | 
| 23 | 
            +
            #else
         | 
| 24 | 
            +
            # include <st.h>
         | 
| 25 | 
            +
            #endif
         | 
| 26 | 
            +
             | 
| 20 27 | 
             
            #include <unistd.h>
         | 
| 21 28 | 
             
            #include <stdlib.h>
         | 
| 22 29 |  | 
| @@ -49,6 +56,8 @@ extern VALUE mSfccCim; | |
| 49 56 |  | 
| 50 57 | 
             
            #define SFCC_INC_REFCOUNT(x) (void)(0);
         | 
| 51 58 |  | 
| 59 | 
            +
            #define CIMSTR_2_RUBYSTR(x) (x ? (x->ft->getCharPtr(x, NULL) ? rb_str_new2(x->ft->getCharPtr(x, NULL)) : Qnil) : Qnil)
         | 
| 60 | 
            +
             | 
| 52 61 | 
             
            /**
         | 
| 53 62 | 
             
             * raises a ruby exception if the status is an error
         | 
| 54 63 | 
             
             * whenever possible, adds the custom message if not null
         | 
    
        data/lib/sfcc.rb
    CHANGED
    
    
    
        data/lib/sfcc/version.rb
    ADDED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,173 +1,140 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: sfcc
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
               | 
| 4 | 
            +
              prerelease: false
         | 
| 5 | 
            +
              segments: 
         | 
| 6 | 
            +
              - 0
         | 
| 7 | 
            +
              - 1
         | 
| 8 | 
            +
              - 2
         | 
| 9 | 
            +
              version: 0.1.2
         | 
| 5 10 | 
             
            platform: ruby
         | 
| 6 11 | 
             
            authors: 
         | 
| 7 | 
            -
            - Duncan Mac-Vicar | 
| 12 | 
            +
            - Duncan Mac-Vicar
         | 
| 8 13 | 
             
            autorequire: 
         | 
| 9 14 | 
             
            bindir: bin
         | 
| 10 15 | 
             
            cert_chain: []
         | 
| 11 16 |  | 
| 12 | 
            -
            date: 2010- | 
| 17 | 
            +
            date: 2010-08-19 00:00:00 +02:00
         | 
| 13 18 | 
             
            default_executable: 
         | 
| 14 19 | 
             
            dependencies: 
         | 
| 15 20 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 16 | 
            -
              name:  | 
| 17 | 
            -
               | 
| 18 | 
            -
               | 
| 19 | 
            -
             | 
| 20 | 
            -
                requirements: 
         | 
| 21 | 
            -
                - - ">="
         | 
| 22 | 
            -
                  - !ruby/object:Gem::Version 
         | 
| 23 | 
            -
                    version: "0"
         | 
| 24 | 
            -
                version: 
         | 
| 25 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 26 | 
            -
              name: yard
         | 
| 27 | 
            -
              type: :runtime
         | 
| 28 | 
            -
              version_requirement: 
         | 
| 29 | 
            -
              version_requirements: !ruby/object:Gem::Requirement 
         | 
| 21 | 
            +
              name: rake-compiler
         | 
| 22 | 
            +
              prerelease: false
         | 
| 23 | 
            +
              requirement: &id001 !ruby/object:Gem::Requirement 
         | 
| 24 | 
            +
                none: false
         | 
| 30 25 | 
             
                requirements: 
         | 
| 31 26 | 
             
                - - ">="
         | 
| 32 27 | 
             
                  - !ruby/object:Gem::Version 
         | 
| 28 | 
            +
                    segments: 
         | 
| 29 | 
            +
                    - 0
         | 
| 33 30 | 
             
                    version: "0"
         | 
| 34 | 
            -
                version: 
         | 
| 35 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 36 | 
            -
              name: rubyforge
         | 
| 37 31 | 
             
              type: :development
         | 
| 38 | 
            -
               | 
| 39 | 
            -
              version_requirements: !ruby/object:Gem::Requirement 
         | 
| 40 | 
            -
                requirements: 
         | 
| 41 | 
            -
                - - ">="
         | 
| 42 | 
            -
                  - !ruby/object:Gem::Version 
         | 
| 43 | 
            -
                    version: 2.0.3
         | 
| 44 | 
            -
                version: 
         | 
| 32 | 
            +
              version_requirements: *id001
         | 
| 45 33 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 46 | 
            -
              name:  | 
| 47 | 
            -
               | 
| 48 | 
            -
               | 
| 49 | 
            -
             | 
| 34 | 
            +
              name: mocha
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              requirement: &id002 !ruby/object:Gem::Requirement 
         | 
| 37 | 
            +
                none: false
         | 
| 50 38 | 
             
                requirements: 
         | 
| 51 39 | 
             
                - - ">="
         | 
| 52 40 | 
             
                  - !ruby/object:Gem::Version 
         | 
| 53 | 
            -
                     | 
| 54 | 
            -
             | 
| 41 | 
            +
                    segments: 
         | 
| 42 | 
            +
                    - 0
         | 
| 43 | 
            +
                    - 9
         | 
| 44 | 
            +
                    version: "0.9"
         | 
| 45 | 
            +
              type: :development
         | 
| 46 | 
            +
              version_requirements: *id002
         | 
| 55 47 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 56 48 | 
             
              name: yard
         | 
| 57 | 
            -
               | 
| 58 | 
            -
               | 
| 59 | 
            -
             | 
| 49 | 
            +
              prerelease: false
         | 
| 50 | 
            +
              requirement: &id003 !ruby/object:Gem::Requirement 
         | 
| 51 | 
            +
                none: false
         | 
| 60 52 | 
             
                requirements: 
         | 
| 61 53 | 
             
                - - ">="
         | 
| 62 54 | 
             
                  - !ruby/object:Gem::Version 
         | 
| 63 | 
            -
                     | 
| 64 | 
            -
             | 
| 65 | 
            -
            -  | 
| 66 | 
            -
             | 
| 55 | 
            +
                    segments: 
         | 
| 56 | 
            +
                    - 0
         | 
| 57 | 
            +
                    - 5
         | 
| 58 | 
            +
                    version: "0.5"
         | 
| 67 59 | 
             
              type: :development
         | 
| 68 | 
            -
               | 
| 69 | 
            -
              version_requirements: !ruby/object:Gem::Requirement 
         | 
| 70 | 
            -
                requirements: 
         | 
| 71 | 
            -
                - - ">="
         | 
| 72 | 
            -
                  - !ruby/object:Gem::Version 
         | 
| 73 | 
            -
                    version: 0.1.1
         | 
| 74 | 
            -
                version: 
         | 
| 60 | 
            +
              version_requirements: *id003
         | 
| 75 61 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 76 | 
            -
              name:  | 
| 77 | 
            -
               | 
| 78 | 
            -
               | 
| 79 | 
            -
             | 
| 62 | 
            +
              name: shoulda
         | 
| 63 | 
            +
              prerelease: false
         | 
| 64 | 
            +
              requirement: &id004 !ruby/object:Gem::Requirement 
         | 
| 65 | 
            +
                none: false
         | 
| 80 66 | 
             
                requirements: 
         | 
| 81 67 | 
             
                - - ">="
         | 
| 82 68 | 
             
                  - !ruby/object:Gem::Version 
         | 
| 69 | 
            +
                    segments: 
         | 
| 70 | 
            +
                    - 0
         | 
| 83 71 | 
             
                    version: "0"
         | 
| 84 | 
            -
                version: 
         | 
| 85 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 86 | 
            -
              name: hoe
         | 
| 87 72 | 
             
              type: :development
         | 
| 88 | 
            -
               | 
| 89 | 
            -
              version_requirements: !ruby/object:Gem::Requirement 
         | 
| 90 | 
            -
                requirements: 
         | 
| 91 | 
            -
                - - ">="
         | 
| 92 | 
            -
                  - !ruby/object:Gem::Version 
         | 
| 93 | 
            -
                    version: 2.5.0
         | 
| 94 | 
            -
                version: 
         | 
| 73 | 
            +
              version_requirements: *id004
         | 
| 95 74 | 
             
            description: ruby-sfcc allows to access a CIMOM either with the WBEM protocol or by using the SfcbLocal interface provided by the sblim-sfcb CIMOM implementation from the sblim project.
         | 
| 96 75 | 
             
            email: 
         | 
| 97 76 | 
             
            - dmacvicar@suse.de
         | 
| 98 77 | 
             
            executables: []
         | 
| 99 78 |  | 
| 100 | 
            -
            extensions: 
         | 
| 101 | 
            -
             | 
| 102 | 
            -
            extra_rdoc_files: 
         | 
| 103 | 
            -
             | 
| 104 | 
            -
            - README.rdoc
         | 
| 105 | 
            -
            - CHANGELOG.rdoc
         | 
| 106 | 
            -
            - TODO.rdoc
         | 
| 79 | 
            +
            extensions: []
         | 
| 80 | 
            +
             | 
| 81 | 
            +
            extra_rdoc_files: []
         | 
| 82 | 
            +
             | 
| 107 83 | 
             
            files: 
         | 
| 108 | 
            -
            -  | 
| 109 | 
            -
            -  | 
| 110 | 
            -
            -  | 
| 111 | 
            -
            - README.rdoc
         | 
| 112 | 
            -
            - Rakefile
         | 
| 113 | 
            -
            - TODO.rdoc
         | 
| 114 | 
            -
            - ext/sfcc/cim_class.c
         | 
| 115 | 
            -
            - ext/sfcc/cim_class.h
         | 
| 116 | 
            -
            - ext/sfcc/cim_client.c
         | 
| 84 | 
            +
            - lib/sfcc.rb
         | 
| 85 | 
            +
            - lib/sfcc/version.rb
         | 
| 86 | 
            +
            - ext/sfcc/extconf.rb
         | 
| 117 87 | 
             
            - ext/sfcc/cim_client.h
         | 
| 118 | 
            -
            - ext/sfcc/ | 
| 119 | 
            -
            - ext/sfcc/cim_enumeration.h
         | 
| 120 | 
            -
            - ext/sfcc/cim_instance.c
         | 
| 88 | 
            +
            - ext/sfcc/cim_object_path.h
         | 
| 121 89 | 
             
            - ext/sfcc/cim_instance.h
         | 
| 90 | 
            +
            - ext/sfcc/cim_enumeration.h
         | 
| 91 | 
            +
            - ext/sfcc/sfcc.h
         | 
| 92 | 
            +
            - ext/sfcc/cim_class.h
         | 
| 93 | 
            +
            - ext/sfcc/cim_string.h
         | 
| 94 | 
            +
            - ext/sfcc/cim_enumeration.c
         | 
| 95 | 
            +
            - ext/sfcc/cim_client.c
         | 
| 122 96 | 
             
            - ext/sfcc/cim_object_path.c
         | 
| 123 | 
            -
            - ext/sfcc/cim_object_path.h
         | 
| 124 97 | 
             
            - ext/sfcc/cim_string.c
         | 
| 125 | 
            -
            - ext/sfcc/ | 
| 126 | 
            -
            - ext/sfcc/extconf.rb
         | 
| 98 | 
            +
            - ext/sfcc/cim_instance.c
         | 
| 127 99 | 
             
            - ext/sfcc/sfcc.c
         | 
| 128 | 
            -
            - ext/sfcc/ | 
| 129 | 
            -
            -  | 
| 130 | 
            -
            -  | 
| 131 | 
            -
            - test/test_sfcc.rb
         | 
| 132 | 
            -
            - test/test_sfcc_cim_class.rb
         | 
| 133 | 
            -
            - test/test_sfcc_cim_client.rb
         | 
| 134 | 
            -
            - test/test_sfcc_cim_instance.rb
         | 
| 135 | 
            -
            - test/test_sfcc_cim_object_path.rb
         | 
| 100 | 
            +
            - ext/sfcc/cim_class.c
         | 
| 101 | 
            +
            - CHANGELOG.rdoc
         | 
| 102 | 
            +
            - README.rdoc
         | 
| 136 103 | 
             
            has_rdoc: true
         | 
| 137 | 
            -
            homepage: http://github.com/dmacvicar/ruby-sfcc
         | 
| 104 | 
            +
            homepage: http://www.github.com/dmacvicar/ruby-sfcc
         | 
| 138 105 | 
             
            licenses: []
         | 
| 139 106 |  | 
| 140 | 
            -
            post_install_message: 
         | 
| 141 | 
            -
             | 
| 142 | 
            -
             | 
| 143 | 
            -
             | 
| 144 | 
            -
             | 
| 107 | 
            +
            post_install_message: "  ____\n\
         | 
| 108 | 
            +
              /@    ~-.\n\
         | 
| 109 | 
            +
              / __ .- | remember to have fun! \n // //  @  \n\n"
         | 
| 110 | 
            +
            rdoc_options: []
         | 
| 111 | 
            +
             | 
| 145 112 | 
             
            require_paths: 
         | 
| 146 113 | 
             
            - lib
         | 
| 147 | 
            -
            - ext
         | 
| 148 114 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement 
         | 
| 115 | 
            +
              none: false
         | 
| 149 116 | 
             
              requirements: 
         | 
| 150 117 | 
             
              - - ">="
         | 
| 151 118 | 
             
                - !ruby/object:Gem::Version 
         | 
| 119 | 
            +
                  segments: 
         | 
| 120 | 
            +
                  - 0
         | 
| 152 121 | 
             
                  version: "0"
         | 
| 153 | 
            -
              version: 
         | 
| 154 122 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement 
         | 
| 123 | 
            +
              none: false
         | 
| 155 124 | 
             
              requirements: 
         | 
| 156 125 | 
             
              - - ">="
         | 
| 157 126 | 
             
                - !ruby/object:Gem::Version 
         | 
| 158 | 
            -
                   | 
| 159 | 
            -
             | 
| 127 | 
            +
                  segments: 
         | 
| 128 | 
            +
                  - 1
         | 
| 129 | 
            +
                  - 3
         | 
| 130 | 
            +
                  - 6
         | 
| 131 | 
            +
                  version: 1.3.6
         | 
| 160 132 | 
             
            requirements: []
         | 
| 161 133 |  | 
| 162 | 
            -
            rubyforge_project:  | 
| 163 | 
            -
            rubygems_version: 1.3. | 
| 134 | 
            +
            rubyforge_project: 
         | 
| 135 | 
            +
            rubygems_version: 1.3.7
         | 
| 164 136 | 
             
            signing_key: 
         | 
| 165 137 | 
             
            specification_version: 3
         | 
| 166 138 | 
             
            summary: WBEM client for ruby based on the sblim-sfcc library
         | 
| 167 | 
            -
            test_files: 
         | 
| 168 | 
            -
             | 
| 169 | 
            -
            - test/test_sfcc_cim_enumeration.rb
         | 
| 170 | 
            -
            - test/test_sfcc_cim_client.rb
         | 
| 171 | 
            -
            - test/test_sfcc_cim_instance.rb
         | 
| 172 | 
            -
            - test/test_sfcc.rb
         | 
| 173 | 
            -
            - test/test_sfcc_cim_class.rb
         | 
| 139 | 
            +
            test_files: []
         | 
| 140 | 
            +
             | 
    
        data/MIT-LICENSE
    DELETED
    
    | @@ -1,22 +0,0 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
            Copyright (c) 2009 Novell Inc.
         | 
| 3 | 
            -
             
         | 
| 4 | 
            -
            Permission is hereby granted, free of charge, to any person obtaining
         | 
| 5 | 
            -
            a copy of this software and associated documentation files (the
         | 
| 6 | 
            -
            "Software"), to deal in the Software without restriction, including
         | 
| 7 | 
            -
            without limitation the rights to use, copy, modify, merge, publish,
         | 
| 8 | 
            -
            distribute, sublicense, and/or sell copies of the Software, and to
         | 
| 9 | 
            -
            permit persons to whom the Software is furnished to do so, subject to
         | 
| 10 | 
            -
            the following conditions:
         | 
| 11 | 
            -
             
         | 
| 12 | 
            -
            The above copyright notice and this permission notice shall be
         | 
| 13 | 
            -
            included in all copies or substantial portions of the Software.
         | 
| 14 | 
            -
             
         | 
| 15 | 
            -
            THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         | 
| 16 | 
            -
            EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         | 
| 17 | 
            -
            MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         | 
| 18 | 
            -
            NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
         | 
| 19 | 
            -
            LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
         | 
| 20 | 
            -
            OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
         | 
| 21 | 
            -
            WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         | 
| 22 | 
            -
             | 
    
        data/Manifest.txt
    DELETED
    
    | @@ -1,28 +0,0 @@ | |
| 1 | 
            -
            CHANGELOG.rdoc
         | 
| 2 | 
            -
            MIT-LICENSE
         | 
| 3 | 
            -
            Manifest.txt
         | 
| 4 | 
            -
            README.rdoc
         | 
| 5 | 
            -
            Rakefile
         | 
| 6 | 
            -
            TODO.rdoc
         | 
| 7 | 
            -
            ext/sfcc/cim_class.c
         | 
| 8 | 
            -
            ext/sfcc/cim_class.h
         | 
| 9 | 
            -
            ext/sfcc/cim_client.c
         | 
| 10 | 
            -
            ext/sfcc/cim_client.h
         | 
| 11 | 
            -
            ext/sfcc/cim_enumeration.c
         | 
| 12 | 
            -
            ext/sfcc/cim_enumeration.h
         | 
| 13 | 
            -
            ext/sfcc/cim_instance.c
         | 
| 14 | 
            -
            ext/sfcc/cim_instance.h
         | 
| 15 | 
            -
            ext/sfcc/cim_object_path.c
         | 
| 16 | 
            -
            ext/sfcc/cim_object_path.h
         | 
| 17 | 
            -
            ext/sfcc/cim_string.c
         | 
| 18 | 
            -
            ext/sfcc/cim_string.h
         | 
| 19 | 
            -
            ext/sfcc/extconf.rb
         | 
| 20 | 
            -
            ext/sfcc/sfcc.c
         | 
| 21 | 
            -
            ext/sfcc/sfcc.h
         | 
| 22 | 
            -
            lib/sfcc.rb
         | 
| 23 | 
            -
            test/helper.rb
         | 
| 24 | 
            -
            test/test_sfcc.rb
         | 
| 25 | 
            -
            test/test_sfcc_cim_class.rb
         | 
| 26 | 
            -
            test/test_sfcc_cim_client.rb
         | 
| 27 | 
            -
            test/test_sfcc_cim_instance.rb
         | 
| 28 | 
            -
            test/test_sfcc_cim_object_path.rb
         | 
    
        data/Rakefile
    DELETED
    
    | @@ -1,32 +0,0 @@ | |
| 1 | 
            -
            $: << File.join(File.dirname(__FILE__), "test")
         | 
| 2 | 
            -
            require 'rubygems'
         | 
| 3 | 
            -
            gem 'hoe', '>= 2.1.0'
         | 
| 4 | 
            -
            require 'hoe'
         | 
| 5 | 
            -
             | 
| 6 | 
            -
            task :default => [:compile, :docs, :test]
         | 
| 7 | 
            -
             | 
| 8 | 
            -
            Hoe.plugin :yard
         | 
| 9 | 
            -
             | 
| 10 | 
            -
            HOE = Hoe.spec 'sfcc' do
         | 
| 11 | 
            -
              developer('Duncan Mac-Vicar P.', 'dmacvicar@suse.de')
         | 
| 12 | 
            -
              self.summary = "WBEM client for ruby based on the sblim-sfcc library"
         | 
| 13 | 
            -
              self.description = "ruby-sfcc allows to access a CIMOM either with the WBEM protocol or by using the SfcbLocal interface provided by the sblim-sfcb CIMOM implementation from the sblim project."
         | 
| 14 | 
            -
              self.readme_file = ['README', ENV['HLANG'], 'rdoc'].compact.join('.')
         | 
| 15 | 
            -
              self.history_file = ['CHANGELOG', ENV['HLANG'], 'rdoc'].compact.join('.')
         | 
| 16 | 
            -
              self.extra_rdoc_files = FileList['*.rdoc']
         | 
| 17 | 
            -
              self.clean_globs = [
         | 
| 18 | 
            -
                'lib/sfcc/*.{o,so,bundle,a,log,dll}',
         | 
| 19 | 
            -
              ]
         | 
| 20 | 
            -
             
         | 
| 21 | 
            -
              %w{ rake-compiler }.each do |dep|
         | 
| 22 | 
            -
                self.extra_dev_deps << [dep, '>= 0']
         | 
| 23 | 
            -
              end
         | 
| 24 | 
            -
              self.extra_deps << ['shoulda', '>= 0']
         | 
| 25 | 
            -
              self.extra_deps << ['yard', '>= 0']
         | 
| 26 | 
            -
              self.spec_extras = { :extensions => ["ext/sfcc/extconf.rb"] }
         | 
| 27 | 
            -
            end
         | 
| 28 | 
            -
             | 
| 29 | 
            -
             | 
| 30 | 
            -
            gem 'rake-compiler', '>= 0.4.1'
         | 
| 31 | 
            -
            require 'rake/extensiontask'
         | 
| 32 | 
            -
            Rake::ExtensionTask.new('sfcc')
         | 
    
        data/TODO.rdoc
    DELETED
    
    | @@ -1,28 +0,0 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
            == General:
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            * add convencience [] operator to Class and Instance to set and
         | 
| 5 | 
            -
              retrieve properties
         | 
| 6 | 
            -
             | 
| 7 | 
            -
            == Missing relevant APIs
         | 
| 8 | 
            -
             | 
| 9 | 
            -
            Other APIs may be missing, but they may not be relevant in a ruby
         | 
| 10 | 
            -
            style API.
         | 
| 11 | 
            -
             | 
| 12 | 
            -
            === CIMCClass
         | 
| 13 | 
            -
             | 
| 14 | 
            -
            Only available in the v2 API (we use v1):
         | 
| 15 | 
            -
             | 
| 16 | 
            -
            * getSuperClassName
         | 
| 17 | 
            -
            * getKeyList
         | 
| 18 | 
            -
            * toString
         | 
| 19 | 
            -
            * relocate
         | 
| 20 | 
            -
            * getCharClassName
         | 
| 21 | 
            -
            * getCharSuperClassName
         | 
| 22 | 
            -
            * isAssociation
         | 
| 23 | 
            -
            * isAbstract
         | 
| 24 | 
            -
            * isIndication
         | 
| 25 | 
            -
            * getPropQualAt
         | 
| 26 | 
            -
             | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
    
        data/test/helper.rb
    DELETED
    
    | @@ -1,32 +0,0 @@ | |
| 1 | 
            -
            require 'rubygems'
         | 
| 2 | 
            -
            require 'test/unit'
         | 
| 3 | 
            -
            require 'shoulda'
         | 
| 4 | 
            -
            require 'tempfile'
         | 
| 5 | 
            -
             
         | 
| 6 | 
            -
            %w(../lib ../ext).each do |path|
         | 
| 7 | 
            -
              $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), path)))
         | 
| 8 | 
            -
            end
         | 
| 9 | 
            -
             
         | 
| 10 | 
            -
            require 'rubygems'
         | 
| 11 | 
            -
            require 'sfcc'
         | 
| 12 | 
            -
             
         | 
| 13 | 
            -
            class SfccTestCase < Test::Unit::TestCase
         | 
| 14 | 
            -
              ASSETS = File.expand_path(File.join(File.dirname(__FILE__), 'assets'))
         | 
| 15 | 
            -
             
         | 
| 16 | 
            -
              unless RUBY_VERSION >= '1.9'
         | 
| 17 | 
            -
                undef :default_test
         | 
| 18 | 
            -
              end
         | 
| 19 | 
            -
             | 
| 20 | 
            -
              def cimom_running?
         | 
| 21 | 
            -
                `ps -e`.each_line do |line|
         | 
| 22 | 
            -
                  return true if line =~ /sfcbd/
         | 
| 23 | 
            -
                end
         | 
| 24 | 
            -
                return false
         | 
| 25 | 
            -
              end
         | 
| 26 | 
            -
             | 
| 27 | 
            -
              def setup_cim_client
         | 
| 28 | 
            -
                @client = Sfcc::Cim::Client.connect('http://root@localhost:5988')
         | 
| 29 | 
            -
                # @client = Sfcc::Cim::Client.connect(:host => 'localhost', :scheme => 'http', :user => 'root', :port => '5988')
         | 
| 30 | 
            -
              end
         | 
| 31 | 
            -
              
         | 
| 32 | 
            -
            end
         | 
    
        data/test/test_sfcc.rb
    DELETED
    
    | @@ -1,69 +0,0 @@ | |
| 1 | 
            -
            require File.join(File.dirname(__FILE__), 'helper')
         | 
| 2 | 
            -
            require 'pp'
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            class BasicTest < SfccTestCase
         | 
| 5 | 
            -
             | 
| 6 | 
            -
              context "a running CIMOM with no auth" do
         | 
| 7 | 
            -
                setup do
         | 
| 8 | 
            -
                  setup_cim_client
         | 
| 9 | 
            -
                end
         | 
| 10 | 
            -
             | 
| 11 | 
            -
                should "be running" do
         | 
| 12 | 
            -
                  assert cimom_running?
         | 
| 13 | 
            -
                end
         | 
| 14 | 
            -
             | 
| 15 | 
            -
                should "be of class Client" do
         | 
| 16 | 
            -
                  assert_kind_of(Sfcc::Cim::Client, @client)
         | 
| 17 | 
            -
                end
         | 
| 18 | 
            -
                    
         | 
| 19 | 
            -
                context "a new object path for root/cimv2" do
         | 
| 20 | 
            -
                  setup do
         | 
| 21 | 
            -
                    @op = Sfcc::Cim::ObjectPath.new("root/cimv2", "")
         | 
| 22 | 
            -
                  end
         | 
| 23 | 
            -
                  
         | 
| 24 | 
            -
                  should "be of class ObjectPath" do
         | 
| 25 | 
            -
                    assert_kind_of(Sfcc::Cim::ObjectPath, @op)
         | 
| 26 | 
            -
                  end
         | 
| 27 | 
            -
                  
         | 
| 28 | 
            -
                  should "allow for query" do
         | 
| 29 | 
            -
                    result = @client.query(@op, "select * from CIM_ComputerSystem", "wql")
         | 
| 30 | 
            -
                    result.each do |instance|
         | 
| 31 | 
            -
                      puts instance
         | 
| 32 | 
            -
                    end
         | 
| 33 | 
            -
                      end
         | 
| 34 | 
            -
                        
         | 
| 35 | 
            -
                  context "class names" do
         | 
| 36 | 
            -
                    setup do
         | 
| 37 | 
            -
                      @class_names = @client.class_names(@op, Sfcc::Flags::DeepInheritance)
         | 
| 38 | 
            -
                    end
         | 
| 39 | 
            -
                    
         | 
| 40 | 
            -
                    should "be a Cimc::Enumeration" do
         | 
| 41 | 
            -
                      assert_kind_of(Sfcc::Cim::Enumeration, @class_names)
         | 
| 42 | 
            -
                    end
         | 
| 43 | 
            -
                    
         | 
| 44 | 
            -
                    should "include CIM_ManagedElement" do
         | 
| 45 | 
            -
                      assert !@class_names.select { |x| x.to_s == "CIM_ManagedElement" }.empty?
         | 
| 46 | 
            -
                    end
         | 
| 47 | 
            -
                    
         | 
| 48 | 
            -
                    should "have every element of type Sfcc::Cim::ObjectPath" do
         | 
| 49 | 
            -
                      @class_names.each { |n| assert_kind_of(Sfcc::Cim::ObjectPath, n) }
         | 
| 50 | 
            -
                    end            
         | 
| 51 | 
            -
                  end
         | 
| 52 | 
            -
                  
         | 
| 53 | 
            -
                  context "classes" do
         | 
| 54 | 
            -
                    setup do
         | 
| 55 | 
            -
                      @classes = @client.classes(@op, Sfcc::Flags::DeepInheritance)
         | 
| 56 | 
            -
                    end
         | 
| 57 | 
            -
                    
         | 
| 58 | 
            -
                    should "be a Cimc::Enumeration" do
         | 
| 59 | 
            -
                      assert_kind_of(Sfcc::Cim::Enumeration, @classes)
         | 
| 60 | 
            -
                    end
         | 
| 61 | 
            -
                    
         | 
| 62 | 
            -
                    should "have every alement of type Cimc::Class" do
         | 
| 63 | 
            -
                      @classes.each { |c| assert_kind_of(Sfcc::Cim::Class, c) }
         | 
| 64 | 
            -
                    end            
         | 
| 65 | 
            -
                  end
         | 
| 66 | 
            -
                  
         | 
| 67 | 
            -
                end
         | 
| 68 | 
            -
              end  
         | 
| 69 | 
            -
            end  
         | 
    
        data/test/test_sfcc_cim_class.rb
    DELETED
    
    | @@ -1,53 +0,0 @@ | |
| 1 | 
            -
            require File.join(File.dirname(__FILE__), 'helper')
         | 
| 2 | 
            -
            require 'pp'
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            class SfccCimcClass < SfccTestCase
         | 
| 5 | 
            -
             | 
| 6 | 
            -
              context "a CIM environment and client" do
         | 
| 7 | 
            -
                setup do
         | 
| 8 | 
            -
                  setup_cim_client
         | 
| 9 | 
            -
                  op = Sfcc::Cim::ObjectPath.new("root/cimv2", "CIM_ComputerSystem")
         | 
| 10 | 
            -
                  @cimclass = @client.get_class(op)
         | 
| 11 | 
            -
                end
         | 
| 12 | 
            -
                
         | 
| 13 | 
            -
                should "be running" do
         | 
| 14 | 
            -
                  assert cimom_running?
         | 
| 15 | 
            -
                end
         | 
| 16 | 
            -
             | 
| 17 | 
            -
                should "be able to enumerate properties" do
         | 
| 18 | 
            -
                  @cimclass.each_property do |k, v|
         | 
| 19 | 
            -
                    assert_not_nil(k)
         | 
| 20 | 
            -
                  end
         | 
| 21 | 
            -
                  
         | 
| 22 | 
            -
                  properties = @cimclass.properties
         | 
| 23 | 
            -
                  assert !properties.empty?
         | 
| 24 | 
            -
                  assert_equal properties.size, @cimclass.property_count
         | 
| 25 | 
            -
                  pp properties
         | 
| 26 | 
            -
                end
         | 
| 27 | 
            -
             | 
| 28 | 
            -
                should "be able to enumerate qualifiers" do
         | 
| 29 | 
            -
                  @cimclass.each_qualifier do |k, v|
         | 
| 30 | 
            -
                    assert_not_nil(k)
         | 
| 31 | 
            -
                  end
         | 
| 32 | 
            -
                  
         | 
| 33 | 
            -
                  qualifiers = @cimclass.qualifiers
         | 
| 34 | 
            -
                  assert qualifiers.empty?
         | 
| 35 | 
            -
                  assert_equal qualifiers.size, @cimclass.qualifier_count
         | 
| 36 | 
            -
                  pp qualifiers
         | 
| 37 | 
            -
                end
         | 
| 38 | 
            -
             | 
| 39 | 
            -
                should "be able to enumerate qualifiers for a property" do
         | 
| 40 | 
            -
                  @cimclass.each_property_qualifier("Status") do |k, v|
         | 
| 41 | 
            -
                    assert_not_nil(k)
         | 
| 42 | 
            -
                  end
         | 
| 43 | 
            -
                  
         | 
| 44 | 
            -
                  qualifiers = @cimclass.property_qualifiers("Status")
         | 
| 45 | 
            -
                  assert qualifiers.empty?
         | 
| 46 | 
            -
                  assert_equal qualifiers.size, @cimclass.qualifier_count
         | 
| 47 | 
            -
                  pp qualifiers
         | 
| 48 | 
            -
                end
         | 
| 49 | 
            -
                
         | 
| 50 | 
            -
              end
         | 
| 51 | 
            -
              
         | 
| 52 | 
            -
            end
         | 
| 53 | 
            -
             | 
| @@ -1,164 +0,0 @@ | |
| 1 | 
            -
            require File.join(File.dirname(__FILE__), 'helper')
         | 
| 2 | 
            -
            require 'pp'
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            class SfccCimcClient < SfccTestCase
         | 
| 5 | 
            -
                
         | 
| 6 | 
            -
              context "a running CIMOM with no auth" do
         | 
| 7 | 
            -
             | 
| 8 | 
            -
                setup do
         | 
| 9 | 
            -
                  setup_cim_client
         | 
| 10 | 
            -
                  @op = Sfcc::Cim::ObjectPath.new("root/cimv2", "")
         | 
| 11 | 
            -
                end
         | 
| 12 | 
            -
                
         | 
| 13 | 
            -
                should "be running" do
         | 
| 14 | 
            -
                  assert cimom_running?
         | 
| 15 | 
            -
                end
         | 
| 16 | 
            -
                
         | 
| 17 | 
            -
                should "be of class Client" do
         | 
| 18 | 
            -
                  assert_kind_of(Sfcc::Cim::Client, @client)
         | 
| 19 | 
            -
                end
         | 
| 20 | 
            -
                
         | 
| 21 | 
            -
                should "allow for query" do
         | 
| 22 | 
            -
                  result = @client.query(@op, "select * from CIM_OperatingSystem", "wql")
         | 
| 23 | 
            -
                  result.each do |instance|
         | 
| 24 | 
            -
                    puts "query result: #{instance}"
         | 
| 25 | 
            -
                  end
         | 
| 26 | 
            -
                end
         | 
| 27 | 
            -
                
         | 
| 28 | 
            -
                should "be able to get set properties using an object path" do
         | 
| 29 | 
            -
                  @op = Sfcc::Cim::ObjectPath.new("root/cimv2", "Linux_OperatingSystem")
         | 
| 30 | 
            -
                  # @client.instance_names(@op).each do |path|
         | 
| 31 | 
            -
                  @client.query(@op, "select * from Linux_OperatingSystem", "wql").each do |instance|
         | 
| 32 | 
            -
            #        assert ! @client.property(instance.object_path, "PrimaryOwnerContact").empty?        
         | 
| 33 | 
            -
                  end
         | 
| 34 | 
            -
                end
         | 
| 35 | 
            -
             | 
| 36 | 
            -
                should "be able to get a class from the object path" do
         | 
| 37 | 
            -
                  @op = Sfcc::Cim::ObjectPath.new("root/cimv2", "Linux_OperatingSystem")
         | 
| 38 | 
            -
                  cimclass = @client.get_class(@op)
         | 
| 39 | 
            -
                  assert_kind_of Sfcc::Cim::Class, cimclass
         | 
| 40 | 
            -
                end
         | 
| 41 | 
            -
             | 
| 42 | 
            -
                should "report error when getting invalid class" do
         | 
| 43 | 
            -
                  @op = Sfcc::Cim::ObjectPath.new("root/cimv2", "NotExistingClass")
         | 
| 44 | 
            -
                  assert_raise Sfcc::Cim::ErrorNotFound do
         | 
| 45 | 
            -
                    cimclass = @client.get_class(@op)
         | 
| 46 | 
            -
                  end
         | 
| 47 | 
            -
                end
         | 
| 48 | 
            -
                
         | 
| 49 | 
            -
                should "be able to get an instance from the object path" do
         | 
| 50 | 
            -
                  @op = Sfcc::Cim::ObjectPath.new("root/cimv2", "Linux_OperatingSystem")
         | 
| 51 | 
            -
                  instance = @client.query(@op, "select * from Linux_OperatingSystem", "wql").to_a.first
         | 
| 52 | 
            -
                  instance2 = @client.get_instance(instance.object_path)
         | 
| 53 | 
            -
                  assert_kind_of Sfcc::Cim::Instance, instance2
         | 
| 54 | 
            -
                end
         | 
| 55 | 
            -
             | 
| 56 | 
            -
                should "be able to create an instance" do
         | 
| 57 | 
            -
                  op = Sfcc::Cim::ObjectPath.new("root/cimv2", "Linux_OperatingSystem")
         | 
| 58 | 
            -
                  instance = Sfcc::Cim::Instance.new(op)
         | 
| 59 | 
            -
                  assert_raise Sfcc::Cim::ErrorNotSupported do
         | 
| 60 | 
            -
                    new_op = @client.create_instance(op, instance)
         | 
| 61 | 
            -
                  end
         | 
| 62 | 
            -
                end
         | 
| 63 | 
            -
             | 
| 64 | 
            -
                should "be able to set an instance" do
         | 
| 65 | 
            -
                  @op = Sfcc::Cim::ObjectPath.new("root/cimv2", "Linux_OperatingSystem")
         | 
| 66 | 
            -
                  instance = @client.query(@op, "select * from Linux_OperatingSystem", "wql").to_a.first
         | 
| 67 | 
            -
                  assert_raise Sfcc::Cim::ErrorNotSupported do
         | 
| 68 | 
            -
                    instance = @client.set_instance(instance.object_path, instance)
         | 
| 69 | 
            -
                  end
         | 
| 70 | 
            -
                end
         | 
| 71 | 
            -
             | 
| 72 | 
            -
                should "be able to delete an instance" do
         | 
| 73 | 
            -
                  instance = @client.query(@op, "select * from Linux_OperatingSystem", "wql").to_a.first
         | 
| 74 | 
            -
                  assert_raise Sfcc::Cim::ErrorNotSupported do
         | 
| 75 | 
            -
                    @client.delete_instance(instance.object_path)
         | 
| 76 | 
            -
                  end
         | 
| 77 | 
            -
                end
         | 
| 78 | 
            -
             | 
| 79 | 
            -
                should "be able to get associator for an instance" do
         | 
| 80 | 
            -
                  op = Sfcc::Cim::ObjectPath.new("root/cimv2", "")
         | 
| 81 | 
            -
                  op = @client.query(op, "select * from CIM_ComputerSystem", "wql").to_a.first.object_path
         | 
| 82 | 
            -
                  associators = @client.associators(op, 'CIM_RunningOS').to_a
         | 
| 83 | 
            -
                  assert !associators.empty?
         | 
| 84 | 
            -
                  associators.each { |assoc| assert_kind_of Sfcc::Cim::Instance, assoc }
         | 
| 85 | 
            -
                  pp associators
         | 
| 86 | 
            -
                end
         | 
| 87 | 
            -
             | 
| 88 | 
            -
                should "be able to get associator names for an instance" do
         | 
| 89 | 
            -
                  op = Sfcc::Cim::ObjectPath.new("root/cimv2", "")
         | 
| 90 | 
            -
                  op = @client.query(op, "select * from CIM_ComputerSystem", "wql").to_a.first.object_path
         | 
| 91 | 
            -
                  associators = @client.associator_names(op, 'CIM_RunningOS').to_a
         | 
| 92 | 
            -
                  assert !associators.empty?
         | 
| 93 | 
            -
                  associators.each { |assoc| assert_kind_of Sfcc::Cim::ObjectPath, assoc }
         | 
| 94 | 
            -
                  pp associators
         | 
| 95 | 
            -
                end
         | 
| 96 | 
            -
             | 
| 97 | 
            -
                should "be able to get references for an instance" do
         | 
| 98 | 
            -
                  op = Sfcc::Cim::ObjectPath.new("root/cimv2", "")
         | 
| 99 | 
            -
                  op = @client.query(op, "select * from CIM_OperatingSystem", "wql").to_a.first.object_path
         | 
| 100 | 
            -
                  associators = @client.references(op, 'CIM_RunningOS').to_a
         | 
| 101 | 
            -
                  assert !associators.empty?
         | 
| 102 | 
            -
                  associators.each { |assoc| assert_kind_of Sfcc::Cim::Instance, assoc }
         | 
| 103 | 
            -
                  pp associators
         | 
| 104 | 
            -
                end
         | 
| 105 | 
            -
             | 
| 106 | 
            -
                should "be able to get reference names for an instance" do
         | 
| 107 | 
            -
                  op = Sfcc::Cim::ObjectPath.new("root/cimv2", "")
         | 
| 108 | 
            -
                  op = @client.query(op, "select * from CIM_OperatingSystem", "wql").to_a.first.object_path
         | 
| 109 | 
            -
                  associators = @client.reference_names(op, 'CIM_RunningOS').to_a
         | 
| 110 | 
            -
                  assert !associators.empty?
         | 
| 111 | 
            -
                  associators.each { |assoc| assert_kind_of Sfcc::Cim::ObjectPath, assoc }
         | 
| 112 | 
            -
                  pp associators
         | 
| 113 | 
            -
                end
         | 
| 114 | 
            -
             | 
| 115 | 
            -
                should "be able to invoke methods using an object path" do
         | 
| 116 | 
            -
                  @op = Sfcc::Cim::ObjectPath.new("root/cimv2", "Linux_OperatingSystem")
         | 
| 117 | 
            -
                  @client.query(@op, "select * from Linux_OperatingSystem", "wql").each do |instance|
         | 
| 118 | 
            -
                  # @client.instances(@op, Sfcc::Flags::IncludeClassOrigin | Sfcc::Flags::IncludeQualifiers, nil).each do |instance|
         | 
| 119 | 
            -
                    path = instance.object_path
         | 
| 120 | 
            -
                    assert_kind_of Sfcc::Cim::ObjectPath, path
         | 
| 121 | 
            -
                    out = {}
         | 
| 122 | 
            -
                    ret = @client.invoke_method(path, :execCmd, {:cmd => "cat /etc/SuSE-release"}, out)
         | 
| 123 | 
            -
                    assert out.has_key?(:out), "output parameter is present"
         | 
| 124 | 
            -
                    assert out[:out].match(/VERSION/)
         | 
| 125 | 
            -
                    assert_equal 0, ret, "execCmd returns 0"
         | 
| 126 | 
            -
                  end      
         | 
| 127 | 
            -
                end
         | 
| 128 | 
            -
                
         | 
| 129 | 
            -
                context "class names" do
         | 
| 130 | 
            -
                  setup do
         | 
| 131 | 
            -
                    @class_names = @client.class_names(@op, Sfcc::Flags::DeepInheritance)
         | 
| 132 | 
            -
                  end
         | 
| 133 | 
            -
                  
         | 
| 134 | 
            -
                  should "be a Cimc::Enumeration" do
         | 
| 135 | 
            -
                    assert_kind_of(Sfcc::Cim::Enumeration, @class_names)
         | 
| 136 | 
            -
                  end
         | 
| 137 | 
            -
                  
         | 
| 138 | 
            -
                  should "include CIM_ManagedElement" do
         | 
| 139 | 
            -
                    assert !@class_names.select { |x| x.to_s == "CIM_ManagedElement" }.empty?
         | 
| 140 | 
            -
                  end
         | 
| 141 | 
            -
                  
         | 
| 142 | 
            -
                  should "have every element of type Sfcc::Cim::ObjectPath" do
         | 
| 143 | 
            -
                    @class_names.each { |n| assert_kind_of(Sfcc::Cim::ObjectPath, n) }
         | 
| 144 | 
            -
                  end            
         | 
| 145 | 
            -
                end
         | 
| 146 | 
            -
                
         | 
| 147 | 
            -
                context "classes" do
         | 
| 148 | 
            -
                  setup do
         | 
| 149 | 
            -
                    @classes = @client.classes(@op, Sfcc::Flags::DeepInheritance)
         | 
| 150 | 
            -
                  end
         | 
| 151 | 
            -
                  
         | 
| 152 | 
            -
                  should "be a Cimc::Enumeration" do
         | 
| 153 | 
            -
                    assert_kind_of(Sfcc::Cim::Enumeration, @classes)
         | 
| 154 | 
            -
                  end
         | 
| 155 | 
            -
                  
         | 
| 156 | 
            -
                  should "have every alement of type Cimc::Class" do
         | 
| 157 | 
            -
                    @classes.each { |c| assert_kind_of(Sfcc::Cim::Class, c) }
         | 
| 158 | 
            -
                  end            
         | 
| 159 | 
            -
                end
         | 
| 160 | 
            -
                
         | 
| 161 | 
            -
              end
         | 
| 162 | 
            -
              
         | 
| 163 | 
            -
            end
         | 
| 164 | 
            -
             | 
| @@ -1,24 +0,0 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
            require File.join(File.dirname(__FILE__), 'helper')
         | 
| 3 | 
            -
            require 'pp'
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            class SfccCimEnumerationTest < SfccTestCase
         | 
| 6 | 
            -
             | 
| 7 | 
            -
              context "enumeration of instances" do
         | 
| 8 | 
            -
                setup do
         | 
| 9 | 
            -
                  setup_cim_client
         | 
| 10 | 
            -
                  op = Sfcc::Cim::ObjectPath.new("root/cimv2", "")
         | 
| 11 | 
            -
                  @enm = @client.query(op, "select * from CIM_ComputerSystem", "wql")
         | 
| 12 | 
            -
                end
         | 
| 13 | 
            -
                
         | 
| 14 | 
            -
                should "be running" do
         | 
| 15 | 
            -
                  assert cimom_running?
         | 
| 16 | 
            -
                end
         | 
| 17 | 
            -
             | 
| 18 | 
            -
                should "be able to iterate twice" do
         | 
| 19 | 
            -
                  assert !@enm.to_a.empty?
         | 
| 20 | 
            -
                  assert !@enm.to_a.empty?
         | 
| 21 | 
            -
                end    
         | 
| 22 | 
            -
              end   
         | 
| 23 | 
            -
            end            
         | 
| 24 | 
            -
             | 
| @@ -1,89 +0,0 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
            require File.join(File.dirname(__FILE__), 'helper')
         | 
| 3 | 
            -
            require 'pp'
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            class SfccCimInstanceTest < SfccTestCase
         | 
| 6 | 
            -
             | 
| 7 | 
            -
              context "object path for CIM_ComputerSystem and running CIMOM with no auth" do
         | 
| 8 | 
            -
                setup do
         | 
| 9 | 
            -
                  setup_cim_client
         | 
| 10 | 
            -
                  @op_computer_system = Sfcc::Cim::ObjectPath.new("root/cimv2", "CIM_ComputerSystem")
         | 
| 11 | 
            -
                end
         | 
| 12 | 
            -
                
         | 
| 13 | 
            -
                should "be running" do
         | 
| 14 | 
            -
                  assert cimom_running?
         | 
| 15 | 
            -
                end
         | 
| 16 | 
            -
             | 
| 17 | 
            -
                should "be able to create an instance" do
         | 
| 18 | 
            -
                  instance = Sfcc::Cim::Instance.new(@op_computer_system)
         | 
| 19 | 
            -
                end
         | 
| 20 | 
            -
              end
         | 
| 21 | 
            -
                
         | 
| 22 | 
            -
              context "an instance of CIM_ComputerSystem" do
         | 
| 23 | 
            -
                setup do
         | 
| 24 | 
            -
                  setup_cim_client
         | 
| 25 | 
            -
                  op = Sfcc::Cim::ObjectPath.new("root/cimv2", "")
         | 
| 26 | 
            -
                  @instance = @client.query(op, "select * from CIM_ComputerSystem", "wql").to_a.first
         | 
| 27 | 
            -
                end
         | 
| 28 | 
            -
                
         | 
| 29 | 
            -
                should "be running" do
         | 
| 30 | 
            -
                  assert cimom_running?
         | 
| 31 | 
            -
                end
         | 
| 32 | 
            -
             | 
| 33 | 
            -
                should "respond to property Name" do
         | 
| 34 | 
            -
                  assert_kind_of(String, @instance.property('Name'))
         | 
| 35 | 
            -
                end
         | 
| 36 | 
            -
             | 
| 37 | 
            -
                should "be able to iterate over properties" do
         | 
| 38 | 
            -
                  @instance.each_property do |name, value|              
         | 
| 39 | 
            -
                    puts "#{name} -> #{value}"
         | 
| 40 | 
            -
                    puts "---"
         | 
| 41 | 
            -
                  end
         | 
| 42 | 
            -
                end
         | 
| 43 | 
            -
             | 
| 44 | 
            -
                should "be able to set and retrieve stringproperties" do
         | 
| 45 | 
            -
                  assert_raises Sfcc::Cim::ErrorNoSuchProperty do
         | 
| 46 | 
            -
                    @instance.property("foobar");
         | 
| 47 | 
            -
                  end
         | 
| 48 | 
            -
                  assert_nothing_raised do
         | 
| 49 | 
            -
                    @instance.set_property("Name", "newname");
         | 
| 50 | 
            -
                  end
         | 
| 51 | 
            -
                  assert_equal "newname", @instance.property("Name")
         | 
| 52 | 
            -
                end
         | 
| 53 | 
            -
             | 
| 54 | 
            -
                should "be able to set and retrieve stringproperties" do
         | 
| 55 | 
            -
                  assert_raises Sfcc::Cim::ErrorNoSuchProperty do
         | 
| 56 | 
            -
                    @instance.property("foobar");
         | 
| 57 | 
            -
                  end
         | 
| 58 | 
            -
                  assert_nothing_raised do
         | 
| 59 | 
            -
                    @instance.set_property("Name", "newname");
         | 
| 60 | 
            -
                  end
         | 
| 61 | 
            -
                  assert_equal "newname", @instance.property("Name")
         | 
| 62 | 
            -
                end
         | 
| 63 | 
            -
             | 
| 64 | 
            -
                should "be able to enumerate qualifiers" do
         | 
| 65 | 
            -
                  @instance.each_qualifier do |k, v|
         | 
| 66 | 
            -
                    assert_not_nil(k)
         | 
| 67 | 
            -
                  end
         | 
| 68 | 
            -
                  
         | 
| 69 | 
            -
                  qualifiers = @instance.qualifiers
         | 
| 70 | 
            -
                  assert qualifiers.empty?
         | 
| 71 | 
            -
                  assert_equal qualifiers.size, @instance.qualifier_count
         | 
| 72 | 
            -
                  pp qualifiers
         | 
| 73 | 
            -
                end
         | 
| 74 | 
            -
                
         | 
| 75 | 
            -
                should "be able to enumerate qualifiers for a property" do
         | 
| 76 | 
            -
                  @instance.each_property_qualifier("Status") do |k, v|
         | 
| 77 | 
            -
                    assert_not_nil(k)
         | 
| 78 | 
            -
                  end
         | 
| 79 | 
            -
                  
         | 
| 80 | 
            -
                  qualifiers = @instance.property_qualifiers("Status")
         | 
| 81 | 
            -
                  assert qualifiers.empty?
         | 
| 82 | 
            -
                  assert_equal qualifiers.size, @instance.qualifier_count
         | 
| 83 | 
            -
                  pp qualifiers
         | 
| 84 | 
            -
                end
         | 
| 85 | 
            -
                
         | 
| 86 | 
            -
                
         | 
| 87 | 
            -
              end   
         | 
| 88 | 
            -
            end            
         | 
| 89 | 
            -
             | 
| @@ -1,85 +0,0 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
            require File.join(File.dirname(__FILE__), 'helper')
         | 
| 3 | 
            -
            require 'pp'
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            class SfccCimcObjectPathTest < SfccTestCase
         | 
| 6 | 
            -
             | 
| 7 | 
            -
              context "a new object path for an instance of root/cimv2:Linux_OperatingSystem" do
         | 
| 8 | 
            -
                setup do
         | 
| 9 | 
            -
                  setup_cim_client
         | 
| 10 | 
            -
                  @op = Sfcc::Cim::ObjectPath.new("root/cimv2", "")
         | 
| 11 | 
            -
                  @op = @client.query(@op, "select * from Linux_OperatingSystem", "wql").first.object_path
         | 
| 12 | 
            -
                end
         | 
| 13 | 
            -
                
         | 
| 14 | 
            -
                should "be running" do
         | 
| 15 | 
            -
                  assert cimom_running?
         | 
| 16 | 
            -
                end
         | 
| 17 | 
            -
             | 
| 18 | 
            -
                should "have root/cimv2 as namespace" do
         | 
| 19 | 
            -
                  assert_equal "root/cimv2", @op.namespace
         | 
| 20 | 
            -
                end
         | 
| 21 | 
            -
                  
         | 
| 22 | 
            -
                should "change its namespace after setting it" do
         | 
| 23 | 
            -
                  @op.namespace = "root/cimv3"
         | 
| 24 | 
            -
                  assert_equal "root/cimv3", @op.namespace
         | 
| 25 | 
            -
                end
         | 
| 26 | 
            -
             | 
| 27 | 
            -
                should "not have namespace at the beginning" do
         | 
| 28 | 
            -
                  assert_raise Sfcc::Cim::ErrorNotSupported do
         | 
| 29 | 
            -
                    @op.hostname
         | 
| 30 | 
            -
                  end
         | 
| 31 | 
            -
                end
         | 
| 32 | 
            -
                
         | 
| 33 | 
            -
                should "change its hostname after setting it" do
         | 
| 34 | 
            -
                  assert_raise Sfcc::Cim::ErrorNotSupported do
         | 
| 35 | 
            -
                    @op.hostname = "foo.bar.com"
         | 
| 36 | 
            -
                  end
         | 
| 37 | 
            -
                  assert_raise Sfcc::Cim::ErrorNotSupported do
         | 
| 38 | 
            -
                    assert_equal "foo.bar.com", @op.hostname
         | 
| 39 | 
            -
                  end
         | 
| 40 | 
            -
                end
         | 
| 41 | 
            -
                
         | 
| 42 | 
            -
                should "respond to class_name" do
         | 
| 43 | 
            -
                  assert_equal "Linux_OperatingSystem", @op.class_name
         | 
| 44 | 
            -
                end
         | 
| 45 | 
            -
                
         | 
| 46 | 
            -
                should "change its class name after setting it" do
         | 
| 47 | 
            -
                  @op.class_name = "BarClass"
         | 
| 48 | 
            -
                  assert_equal "BarClass", @op.class_name
         | 
| 49 | 
            -
                end
         | 
| 50 | 
            -
             | 
| 51 | 
            -
                should "respond to keys and set them" do
         | 
| 52 | 
            -
                  assert_raise Sfcc::Cim::ErrorNoSuchProperty do
         | 
| 53 | 
            -
                    @op.key("foo")
         | 
| 54 | 
            -
                  end
         | 
| 55 | 
            -
                  assert_equal 4, @op.key_count
         | 
| 56 | 
            -
                        
         | 
| 57 | 
            -
                  assert_nothing_raised do
         | 
| 58 | 
            -
                    @op.add_key("prop0", "hello")
         | 
| 59 | 
            -
                    @op.add_key("prop1", true)
         | 
| 60 | 
            -
                    @op.add_key("prop2", false)
         | 
| 61 | 
            -
                  end
         | 
| 62 | 
            -
                  assert_equal 7, @op.key_count
         | 
| 63 | 
            -
                  
         | 
| 64 | 
            -
                  assert_equal "hello", @op.key("prop0")
         | 
| 65 | 
            -
                  assert_equal true, @op.key("prop1")
         | 
| 66 | 
            -
                  assert_equal false, @op.key("prop2")
         | 
| 67 | 
            -
                end
         | 
| 68 | 
            -
             | 
| 69 | 
            -
                should "be able to set namespace and classname from other object path" do
         | 
| 70 | 
            -
                  op = Sfcc::Cim::ObjectPath.new("root/cimv2", "Linux_OperatingSystem")
         | 
| 71 | 
            -
                  op2 = Sfcc::Cim::ObjectPath.new("root/cimv3", "FooBar")
         | 
| 72 | 
            -
                  assert_equal "Linux_OperatingSystem", op.class_name
         | 
| 73 | 
            -
                  op.set_namespace_from(op2)
         | 
| 74 | 
            -
                  assert_equal "FooBar", op2.class_name
         | 
| 75 | 
            -
                  assert_equal "root/cimv3", op2.namespace
         | 
| 76 | 
            -
                end
         | 
| 77 | 
            -
                
         | 
| 78 | 
            -
                should "be able to retrieve qualifiers" do
         | 
| 79 | 
            -
                  # CRASH? CIMOM?
         | 
| 80 | 
            -
                  #op = Sfcc::Cim::ObjectPath.new("root/cimv2", "Linux_OperatingSystem")
         | 
| 81 | 
            -
                  # assert_equal "2.17.1", @op.class_qualifier("Version")
         | 
| 82 | 
            -
                  #assert_equal "Number", op.property_qualifier("NumberOfUsers", "Description")
         | 
| 83 | 
            -
                end    
         | 
| 84 | 
            -
              end
         | 
| 85 | 
            -
            end
         |