omf_ec 6.1.2.pre.3 → 6.1.2.pre.4
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/bin/omf_ec +3 -1
- data/lib/omf_ec/dsl.rb +8 -7
- data/lib/omf_ec/experiment.rb +10 -0
- data/lib/omf_ec/runner.rb +8 -1
- data/omf_ec.gemspec +2 -3
- data/test/oedls/empty.oedl +0 -0
- data/test/omf_ec/runner_spec.rb +25 -0
- data/test/test_helper.rb +8 -17
- metadata +18 -32
    
        data/bin/omf_ec
    CHANGED
    
    
    
        data/lib/omf_ec/dsl.rb
    CHANGED
    
    | @@ -141,7 +141,7 @@ module OmfEc | |
| 141 141 | 
             
                # Take the same parameter as def_property
         | 
| 142 142 | 
             
                #
         | 
| 143 143 | 
             
                def ensure_property(name, default_value, description = nil, type = nil)
         | 
| 144 | 
            -
                  begin | 
| 144 | 
            +
                  begin
         | 
| 145 145 | 
             
                    property[name]
         | 
| 146 146 | 
             
                  rescue
         | 
| 147 147 | 
             
                    def_property(name, default_value, description, type)
         | 
| @@ -211,10 +211,10 @@ module OmfEc | |
| 211 211 | 
             
                  end
         | 
| 212 212 | 
             
                end
         | 
| 213 213 |  | 
| 214 | 
            -
                # Load an additional OEDL script | 
| 214 | 
            +
                # Load an additional OEDL script
         | 
| 215 215 | 
             
                #
         | 
| 216 | 
            -
                # First try to load the script from the paths associated to this running | 
| 217 | 
            -
                # Ruby instance. This would allow the loading of scripts shipped with | 
| 216 | 
            +
                # First try to load the script from the paths associated to this running
         | 
| 217 | 
            +
                # Ruby instance. This would allow the loading of scripts shipped with
         | 
| 218 218 | 
             
                # the EC gem. If that fails, then look for the script in the local file
         | 
| 219 219 | 
             
                # system or at the given web URL.
         | 
| 220 220 | 
             
                #
         | 
| @@ -226,7 +226,7 @@ module OmfEc | |
| 226 226 | 
             
                #
         | 
| 227 227 | 
             
                def load_oedl(location, opts = {})
         | 
| 228 228 | 
             
                  # Define the additional properties from opts
         | 
| 229 | 
            -
                  opts.each { |k,v| def_property(k, v,) } | 
| 229 | 
            +
                  opts.each { |k,v| def_property(k, v,) }
         | 
| 230 230 | 
             
                  # Try to load OEDL Library as built-in then external
         | 
| 231 231 | 
             
                  begin
         | 
| 232 232 | 
             
                    require location
         | 
| @@ -238,13 +238,14 @@ module OmfEc | |
| 238 238 | 
             
                      file = Tempfile.new("oedl-#{Time.now.to_i}")
         | 
| 239 239 | 
             
                      open(location) { |io| file.write(io.read) }
         | 
| 240 240 | 
             
                      file.close
         | 
| 241 | 
            -
                       | 
| 241 | 
            +
                      OmfEc.experiment.archive_oedl(file.path)
         | 
| 242 | 
            +
                      load(file.path)
         | 
| 242 243 | 
             
                      file.unlink
         | 
| 243 244 | 
             
                      info "Loaded external OEDL library '#{location}'"
         | 
| 244 245 | 
             
                    rescue Exception => e
         | 
| 245 246 | 
             
                      error "Fail loading external OEDL library '#{location}': #{e}"
         | 
| 246 247 | 
             
                    end
         | 
| 247 | 
            -
                  rescue Exception => e | 
| 248 | 
            +
                  rescue Exception => e
         | 
| 248 249 | 
             
                    error "Fail loading built-in OEDL library '#{location}': #{e}"
         | 
| 249 250 | 
             
                  end
         | 
| 250 251 | 
             
                end
         | 
    
        data/lib/omf_ec/experiment.rb
    CHANGED
    
    | @@ -5,6 +5,7 @@ | |
| 5 5 |  | 
| 6 6 | 
             
            require 'hashie'
         | 
| 7 7 | 
             
            require 'singleton'
         | 
| 8 | 
            +
            require 'zlib'
         | 
| 8 9 | 
             
            require 'monitor'
         | 
| 9 10 |  | 
| 10 11 | 
             
            module OmfEc
         | 
| @@ -187,6 +188,15 @@ module OmfEc | |
| 187 188 | 
             
                  MetaData.inject(domain.to_s, key.to_s, value.to_s)
         | 
| 188 189 | 
             
                end
         | 
| 189 190 |  | 
| 191 | 
            +
                # Archive OEDL content to OML db
         | 
| 192 | 
            +
                def archive_oedl(script_name)
         | 
| 193 | 
            +
                  log_metadata(
         | 
| 194 | 
            +
                    script_name,
         | 
| 195 | 
            +
                    Base64.encode64(Zlib::Deflate.deflate(File.read(script_name))),
         | 
| 196 | 
            +
                    "oedl_content"
         | 
| 197 | 
            +
                  )
         | 
| 198 | 
            +
                end
         | 
| 199 | 
            +
             | 
| 190 200 | 
             
                # Purely for backward compatibility
         | 
| 191 201 | 
             
                class << self
         | 
| 192 202 | 
             
                  # Disconnect communicator, try to delete any XMPP affiliations
         | 
    
        data/lib/omf_ec/runner.rb
    CHANGED
    
    | @@ -9,6 +9,8 @@ module OmfEc | |
| 9 9 | 
             
              class Runner
         | 
| 10 10 | 
             
                include Hashie
         | 
| 11 11 |  | 
| 12 | 
            +
                attr_reader :oedl_path
         | 
| 13 | 
            +
             | 
| 12 14 | 
             
                def initialize
         | 
| 13 15 | 
             
                  @gem_version = OmfEc::VERSION
         | 
| 14 16 | 
             
                  @oml_enabled = false
         | 
| @@ -245,6 +247,7 @@ module OmfEc | |
| 245 247 | 
             
                        OmfEc.experiment.log_metadata("ec_version", "#{OmfEc::VERSION}")
         | 
| 246 248 | 
             
                        OmfEc.experiment.log_metadata("exp_path", @oedl_path)
         | 
| 247 249 | 
             
                        OmfEc.experiment.log_metadata("ec_pid", "#{Process.pid}")
         | 
| 250 | 
            +
                        OmfEc.experiment.archive_oedl(@oedl_path)
         | 
| 248 251 |  | 
| 249 252 | 
             
                        begin
         | 
| 250 253 | 
             
                          load @oedl_path
         | 
| @@ -268,9 +271,13 @@ module OmfEc | |
| 268 271 | 
             
                  end
         | 
| 269 272 | 
             
                end
         | 
| 270 273 |  | 
| 271 | 
            -
                def  | 
| 274 | 
            +
                def init
         | 
| 272 275 | 
             
                  oml_init
         | 
| 273 276 | 
             
                  setup_experiment
         | 
| 277 | 
            +
                  #load_experiment
         | 
| 278 | 
            +
                end
         | 
| 279 | 
            +
             | 
| 280 | 
            +
                def run
         | 
| 274 281 | 
             
                  load_experiment
         | 
| 275 282 | 
             
                end
         | 
| 276 283 | 
             
              end
         | 
    
        data/omf_ec.gemspec
    CHANGED
    
    | @@ -22,13 +22,12 @@ Gem::Specification.new do |s| | |
| 22 22 | 
             
              s.require_paths = ["lib"]
         | 
| 23 23 |  | 
| 24 24 | 
             
              # specify any dependencies here; for example:
         | 
| 25 | 
            -
              s.add_development_dependency "minitest" | 
| 26 | 
            -
              s.add_development_dependency "em-minitest-spec", "~> 1.1.1"
         | 
| 25 | 
            +
              s.add_development_dependency "minitest"
         | 
| 27 26 | 
             
              s.add_development_dependency "simplecov"
         | 
| 28 27 | 
             
              s.add_development_dependency "pry"
         | 
| 29 28 | 
             
              s.add_development_dependency "mocha"
         | 
| 29 | 
            +
              s.add_development_dependency "evented-spec"
         | 
| 30 30 |  | 
| 31 31 | 
             
              s.add_runtime_dependency "omf_common", "= #{OmfCommon::VERSION}"
         | 
| 32 | 
            -
              s.add_runtime_dependency "gli"
         | 
| 33 32 | 
             
              s.add_runtime_dependency "sequel"
         | 
| 34 33 | 
             
            end
         | 
| 
            File without changes
         | 
| @@ -0,0 +1,25 @@ | |
| 1 | 
            +
            require 'test_helper'
         | 
| 2 | 
            +
            require 'omf_ec/runner'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            describe OmfEc::Runner do
         | 
| 5 | 
            +
              before do
         | 
| 6 | 
            +
                uninit
         | 
| 7 | 
            +
              end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              after do
         | 
| 10 | 
            +
                uninit
         | 
| 11 | 
            +
              end
         | 
| 12 | 
            +
              it "must allow to accept a set of command line options" do
         | 
| 13 | 
            +
                ARGV.clear
         | 
| 14 | 
            +
                "-u amqp://localhost --slice empty --oml_uri tcp:localhost:3003 -e xxx -d --experiment e1 --show-graph exec #{File.dirname(__FILE__)}/../oedls/empty.oedl -- --prop_1 p1value".split(" ").each do |opt|
         | 
| 15 | 
            +
                  ARGV << opt
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
                runner = OmfEc::Runner.new
         | 
| 18 | 
            +
                runner.init
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                assert_equal 'e1', OmfEc.experiment.name
         | 
| 21 | 
            +
                assert_equal "tcp:localhost:3003", OmfEc.experiment.oml_uri
         | 
| 22 | 
            +
                assert_equal true, OmfEc.experiment.show_graph
         | 
| 23 | 
            +
                assert_match /oedls\/empty.oedl/, runner.oedl_path
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
            end
         | 
    
        data/test/test_helper.rb
    CHANGED
    
    | @@ -11,17 +11,17 @@ require 'minitest/autorun' | |
| 11 11 | 
             
            require 'minitest/pride'
         | 
| 12 12 | 
             
            require 'mocha/setup'
         | 
| 13 13 |  | 
| 14 | 
            -
            require ' | 
| 14 | 
            +
            require 'evented-spec'
         | 
| 15 15 |  | 
| 16 | 
            -
             | 
| 17 | 
            -
            FIXTURE_DIR = "#{File.dirname(__FILE__)}/fixture"
         | 
| 16 | 
            +
            require 'omf_ec'
         | 
| 18 17 |  | 
| 19 18 | 
             
            # Shut up all the loggers
         | 
| 20 19 | 
             
            Logging.logger.root.clear_appenders
         | 
| 21 20 |  | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 24 | 
            -
               | 
| 21 | 
            +
            def uninit
         | 
| 22 | 
            +
              OmfEc::Experiment.reset
         | 
| 23 | 
            +
              OmfEc::ExperimentProperty.reset
         | 
| 24 | 
            +
              OmfCommon::Eventloop.reset
         | 
| 25 25 | 
             
            end
         | 
| 26 26 |  | 
| 27 27 | 
             
            class OmfCommon::Eventloop
         | 
| @@ -32,21 +32,12 @@ end | |
| 32 32 |  | 
| 33 33 | 
             
            class OmfEc::Experiment
         | 
| 34 34 | 
             
              def self.reset
         | 
| 35 | 
            -
                 | 
| 36 | 
            -
                  @groups = []
         | 
| 37 | 
            -
                  @events = []
         | 
| 38 | 
            -
                  @app_definitions = Hashie::Mash.new
         | 
| 39 | 
            -
                  @sub_groups = Hashie::Mash.new
         | 
| 40 | 
            -
                  @cmdline_properties = Hashie::Mash.new
         | 
| 41 | 
            -
                end
         | 
| 35 | 
            +
                Singleton.__init__(self)
         | 
| 42 36 | 
             
              end
         | 
| 43 37 | 
             
            end
         | 
| 44 38 |  | 
| 45 39 | 
             
            class OmfEc::ExperimentProperty
         | 
| 46 40 | 
             
              def self.reset
         | 
| 47 | 
            -
                 | 
| 48 | 
            -
                @@creation_observers = []
         | 
| 41 | 
            +
                Singleton.__init__(self)
         | 
| 49 42 | 
             
              end
         | 
| 50 43 | 
             
            end
         | 
| 51 | 
            -
             | 
| 52 | 
            -
             | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: omf_ec
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 6.1.2.pre. | 
| 4 | 
            +
              version: 6.1.2.pre.4
         | 
| 5 5 | 
             
              prerelease: 6
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,42 +9,42 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2014-05- | 
| 12 | 
            +
            date: 2014-05-15 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: minitest
         | 
| 16 16 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 | 
            -
                - -  | 
| 19 | 
            +
                - - ! '>='
         | 
| 20 20 | 
             
                  - !ruby/object:Gem::Version
         | 
| 21 | 
            -
                    version: ' | 
| 21 | 
            +
                    version: '0'
         | 
| 22 22 | 
             
              type: :development
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 24 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 25 25 | 
             
                none: false
         | 
| 26 26 | 
             
                requirements:
         | 
| 27 | 
            -
                - -  | 
| 27 | 
            +
                - - ! '>='
         | 
| 28 28 | 
             
                  - !ruby/object:Gem::Version
         | 
| 29 | 
            -
                    version: ' | 
| 29 | 
            +
                    version: '0'
         | 
| 30 30 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 31 | 
            -
              name:  | 
| 31 | 
            +
              name: simplecov
         | 
| 32 32 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 33 33 | 
             
                none: false
         | 
| 34 34 | 
             
                requirements:
         | 
| 35 | 
            -
                - -  | 
| 35 | 
            +
                - - ! '>='
         | 
| 36 36 | 
             
                  - !ruby/object:Gem::Version
         | 
| 37 | 
            -
                    version:  | 
| 37 | 
            +
                    version: '0'
         | 
| 38 38 | 
             
              type: :development
         | 
| 39 39 | 
             
              prerelease: false
         | 
| 40 40 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 41 41 | 
             
                none: false
         | 
| 42 42 | 
             
                requirements:
         | 
| 43 | 
            -
                - -  | 
| 43 | 
            +
                - - ! '>='
         | 
| 44 44 | 
             
                  - !ruby/object:Gem::Version
         | 
| 45 | 
            -
                    version:  | 
| 45 | 
            +
                    version: '0'
         | 
| 46 46 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 47 | 
            -
              name:  | 
| 47 | 
            +
              name: pry
         | 
| 48 48 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 49 49 | 
             
                none: false
         | 
| 50 50 | 
             
                requirements:
         | 
| @@ -60,7 +60,7 @@ dependencies: | |
| 60 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 61 | 
             
                    version: '0'
         | 
| 62 62 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 63 | 
            -
              name:  | 
| 63 | 
            +
              name: mocha
         | 
| 64 64 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 65 65 | 
             
                none: false
         | 
| 66 66 | 
             
                requirements:
         | 
| @@ -76,7 +76,7 @@ dependencies: | |
| 76 76 | 
             
                  - !ruby/object:Gem::Version
         | 
| 77 77 | 
             
                    version: '0'
         | 
| 78 78 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 79 | 
            -
              name:  | 
| 79 | 
            +
              name: evented-spec
         | 
| 80 80 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 81 81 | 
             
                none: false
         | 
| 82 82 | 
             
                requirements:
         | 
| @@ -98,7 +98,7 @@ dependencies: | |
| 98 98 | 
             
                requirements:
         | 
| 99 99 | 
             
                - - '='
         | 
| 100 100 | 
             
                  - !ruby/object:Gem::Version
         | 
| 101 | 
            -
                    version: 6.1.2.pre. | 
| 101 | 
            +
                    version: 6.1.2.pre.4
         | 
| 102 102 | 
             
              type: :runtime
         | 
| 103 103 | 
             
              prerelease: false
         | 
| 104 104 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| @@ -106,23 +106,7 @@ dependencies: | |
| 106 106 | 
             
                requirements:
         | 
| 107 107 | 
             
                - - '='
         | 
| 108 108 | 
             
                  - !ruby/object:Gem::Version
         | 
| 109 | 
            -
                    version: 6.1.2.pre. | 
| 110 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 111 | 
            -
              name: gli
         | 
| 112 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 113 | 
            -
                none: false
         | 
| 114 | 
            -
                requirements:
         | 
| 115 | 
            -
                - - ! '>='
         | 
| 116 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 117 | 
            -
                    version: '0'
         | 
| 118 | 
            -
              type: :runtime
         | 
| 119 | 
            -
              prerelease: false
         | 
| 120 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 121 | 
            -
                none: false
         | 
| 122 | 
            -
                requirements:
         | 
| 123 | 
            -
                - - ! '>='
         | 
| 124 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 125 | 
            -
                    version: '0'
         | 
| 109 | 
            +
                    version: 6.1.2.pre.4
         | 
| 126 110 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 127 111 | 
             
              name: sequel
         | 
| 128 112 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -184,12 +168,14 @@ files: | |
| 184 168 | 
             
            - lib/omf_ec/runner.rb
         | 
| 185 169 | 
             
            - lib/omf_ec/version.rb
         | 
| 186 170 | 
             
            - omf_ec.gemspec
         | 
| 171 | 
            +
            - test/oedls/empty.oedl
         | 
| 187 172 | 
             
            - test/omf_ec/app_context_spec.rb
         | 
| 188 173 | 
             
            - test/omf_ec/context_spec.rb
         | 
| 189 174 | 
             
            - test/omf_ec/dsl_spec.rb
         | 
| 190 175 | 
             
            - test/omf_ec/experiment_property_spec.rb
         | 
| 191 176 | 
             
            - test/omf_ec/experiment_spec.rb
         | 
| 192 177 | 
             
            - test/omf_ec/group_spec.rb
         | 
| 178 | 
            +
            - test/omf_ec/runner_spec.rb
         | 
| 193 179 | 
             
            - test/test_helper.rb
         | 
| 194 180 | 
             
            homepage: http://omf.mytestbed.net
         | 
| 195 181 | 
             
            licenses:
         |