mirror of
				https://github.com/fog/fog.git
				synced 2022-11-09 13:51:43 -05:00 
			
		
		
		
	remove examples as they are not that helpful or well supported
This commit is contained in:
		
							parent
							
								
									7306dfe159
								
							
						
					
					
						commit
						a32d3132f0
					
				
					 4 changed files with 2 additions and 355 deletions
				
			
		
							
								
								
									
										10
									
								
								Rakefile
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								Rakefile
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -55,14 +55,8 @@ namespace :test do
 | 
			
		|||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
task :examples do
 | 
			
		||||
  sh("export FOG_MOCK=false && bundle exec shindont examples")
 | 
			
		||||
  # some don't provide mocks so we'll leave this out for now
 | 
			
		||||
  # sh("export FOG_MOCK=true  && bundle exec shindont examples")
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
task :test do # => :examples do
 | 
			
		||||
  Rake::Task[:mock_tests].invoke && Rake::Task[:examples].invoke && Rake::Task[:real_tests].invoke
 | 
			
		||||
task :test do
 | 
			
		||||
  Rake::Task[:mock_tests].invoke && Rake::Task[:real_tests].invoke
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
def tests(mocked)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,83 +0,0 @@
 | 
			
		|||
require 'rubygems'
 | 
			
		||||
require 'shindo'
 | 
			
		||||
 | 
			
		||||
require File.join(File.dirname(__FILE__), '..', 'lib', 'fog')
 | 
			
		||||
require File.join(File.dirname(__FILE__), '..', 'tests', 'helper')
 | 
			
		||||
 | 
			
		||||
Shindo.tests('compute examples', 'compute') do
 | 
			
		||||
 | 
			
		||||
  # iterate over all the providers
 | 
			
		||||
  Fog.providers.values.each do |provider|
 | 
			
		||||
 | 
			
		||||
    # FIXME: implement expected shared compute stuff for these providers as well
 | 
			
		||||
    next if ['Bluebox', 'Brightbox', 'Ecloud', 'GoGrid', 'Linode', 'NewServers', 'Ninefold', 'Slicehost', 'StormOnDemand', 'VirtualBox', 'Voxel'].include?(provider)
 | 
			
		||||
 | 
			
		||||
    provider = eval(provider) # convert from string to object
 | 
			
		||||
 | 
			
		||||
    # skip if provider does not have compute
 | 
			
		||||
    next unless provider.respond_to?(:services) && provider.services.include?(:compute)
 | 
			
		||||
 | 
			
		||||
    tests(provider, provider.to_s.downcase) do
 | 
			
		||||
 | 
			
		||||
      # use shortcuts to instantiate connection
 | 
			
		||||
      @compute = Fog::Compute.new(:provider => provider.to_s)
 | 
			
		||||
 | 
			
		||||
      # create a server
 | 
			
		||||
      tests('@server = @compute.servers.bootstrap').succeeds do
 | 
			
		||||
        @server = @compute.servers.bootstrap
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      # list servers
 | 
			
		||||
      tests('@servers = @compute.servers').succeeds do
 | 
			
		||||
        @servers = @compute.servers
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      # get a server
 | 
			
		||||
      tests('@compute.servers.get(@server.identity)').succeeds do
 | 
			
		||||
        @compute.servers.get(@server.identity)
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      # ssh to a server
 | 
			
		||||
      tests('@server.ssh("pwd")').succeeds do
 | 
			
		||||
        @server.ssh('pwd')
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      # scp a file to a server
 | 
			
		||||
      lorem_path = File.join([File.dirname(__FILE__), '..', 'tests', 'lorem.txt'])
 | 
			
		||||
      tests("@server.scp_upload('#{lorem_path}', 'lorem.txt')").succeeds do
 | 
			
		||||
        @server.scp_upload(lorem_path, 'lorem.txt')
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      # scp a file from a server
 | 
			
		||||
      tests("@server.scp_download('lorem.txt', '/tmp/lorem.txt)").succeeds do
 | 
			
		||||
        @server.scp_download('lorem.txt', '/tmp/lorem.txt')
 | 
			
		||||
      end
 | 
			
		||||
      File.delete('/tmp/lorem.txt')
 | 
			
		||||
 | 
			
		||||
      # scp a directory to a server
 | 
			
		||||
      Dir.mkdir('/tmp/lorem')
 | 
			
		||||
      file = ::File.new('/tmp/lorem/lorem.txt', 'w')
 | 
			
		||||
      file.write(File.read(lorem_path))
 | 
			
		||||
      tests("@server.scp_upload('/tmp/lorem', '/tmp', :recursive => true)").succeeds do
 | 
			
		||||
        @server.scp_upload('/tmp/lorem', '/tmp', :recursive => true)
 | 
			
		||||
      end
 | 
			
		||||
      File.delete('/tmp/lorem/lorem.txt')
 | 
			
		||||
      Dir.rmdir('/tmp/lorem')
 | 
			
		||||
 | 
			
		||||
      # scp a directory from a server
 | 
			
		||||
      tests("@server.scp_download('/tmp/lorem', '/tmp', :recursive => true)").succeeds do
 | 
			
		||||
        @server.scp_download('/tmp/lorem', '/tmp', :recursive => true)
 | 
			
		||||
      end
 | 
			
		||||
      File.delete('/tmp/lorem/lorem.txt')
 | 
			
		||||
      Dir.rmdir('/tmp/lorem')
 | 
			
		||||
 | 
			
		||||
      # destroy the server
 | 
			
		||||
      tests('@server.destroy').succeeds do
 | 
			
		||||
        @server.destroy
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -1,78 +0,0 @@
 | 
			
		|||
require 'rubygems'
 | 
			
		||||
require 'shindo'
 | 
			
		||||
 | 
			
		||||
require File.join(File.dirname(__FILE__), '..', 'lib', 'fog')
 | 
			
		||||
require File.join(File.dirname(__FILE__), '..', 'tests', 'helper')
 | 
			
		||||
 | 
			
		||||
Shindo.tests('dns examples', 'dns') do
 | 
			
		||||
 | 
			
		||||
  # iterate over all the providers
 | 
			
		||||
  Fog.providers.values.each do |provider|
 | 
			
		||||
 | 
			
		||||
    provider = eval(provider) # convert from string to object
 | 
			
		||||
 | 
			
		||||
    # skip if provider does not have storage
 | 
			
		||||
    next unless provider.respond_to?(:services) && provider.services.include?(:dns)
 | 
			
		||||
 | 
			
		||||
    tests(provider, provider.to_s.downcase) do
 | 
			
		||||
 | 
			
		||||
      # use shortcuts to instantiate connection
 | 
			
		||||
      @dns = Fog::DNS.new(:provider => provider.to_s)
 | 
			
		||||
 | 
			
		||||
      # create a zone
 | 
			
		||||
      #   domain should be the hostname
 | 
			
		||||
      #   email is only required for linode, but included for consistency
 | 
			
		||||
      tests('@zone = @dns.zones.create').succeeds do
 | 
			
		||||
        @zone = @dns.zones.create(
 | 
			
		||||
          :domain => 'fogdnsexamples.com',
 | 
			
		||||
          :email => 'tests@fogdnsexamples.com'
 | 
			
		||||
        )
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      # create a record in the zone
 | 
			
		||||
      #   ip is the address to route to
 | 
			
		||||
      #   name is the name for the record
 | 
			
		||||
      #   type is the type of record to create
 | 
			
		||||
      tests('@record = @zone.records.create').succeeds do
 | 
			
		||||
        @record = @zone.records.create(
 | 
			
		||||
          :value  => '1.2.3.4',
 | 
			
		||||
          :name   => 'www.fogdnsexamples.com',
 | 
			
		||||
          :type   => 'A'
 | 
			
		||||
        )
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      # list zones
 | 
			
		||||
      tests('@zones = @dns.zones').succeeds do
 | 
			
		||||
        @zones = @dns.zones
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      # get a zone
 | 
			
		||||
      tests('@dns.zones.get(@zone.identity)').succeeds do
 | 
			
		||||
        @dns.zones.get(@zone.identity)
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      # list records
 | 
			
		||||
      tests('@records = @zone.records').succeeds do
 | 
			
		||||
        @records = @zone.records
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      # get a record
 | 
			
		||||
      tests('@zone.records.get(@record.identity)').succeeds do
 | 
			
		||||
        @zone.records.get(@record.identity)
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      # destroy the record
 | 
			
		||||
      tests('@record.destroy').succeeds do
 | 
			
		||||
        @record.destroy
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      # destroy the zone
 | 
			
		||||
      tests('@zone.destroy').succeeds do
 | 
			
		||||
        @zone.destroy
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -1,186 +0,0 @@
 | 
			
		|||
require 'rubygems'
 | 
			
		||||
require 'shindo'
 | 
			
		||||
 | 
			
		||||
require File.join(File.dirname(__FILE__), '..', 'lib', 'fog')
 | 
			
		||||
require File.join(File.dirname(__FILE__), '..', 'tests', 'helper')
 | 
			
		||||
 | 
			
		||||
Shindo.tests('storage examples', 'storage') do
 | 
			
		||||
 | 
			
		||||
  # iterate over all the providers
 | 
			
		||||
  Fog.providers.values.each do |provider|
 | 
			
		||||
 | 
			
		||||
    provider = eval(provider) # convert from string to object
 | 
			
		||||
 | 
			
		||||
    # skip if provider does not have storage
 | 
			
		||||
    next unless provider.respond_to?(:services) && provider.services.include?(:storage)
 | 
			
		||||
 | 
			
		||||
    tests(provider, provider.to_s.downcase) do
 | 
			
		||||
 | 
			
		||||
      # use shortcuts to instantiate connection
 | 
			
		||||
      @storage = Fog::Storage.new(:provider => provider.to_s)
 | 
			
		||||
 | 
			
		||||
      # for compatibility public is simply true or false
 | 
			
		||||
      [false, true].each do |publicity|
 | 
			
		||||
 | 
			
		||||
        tests(":public => #{publicity}") do
 | 
			
		||||
 | 
			
		||||
          # create a directory
 | 
			
		||||
          #   key should be a unique string
 | 
			
		||||
          #   public should be a boolean
 | 
			
		||||
          tests('@directory = @storage.directories.create').succeeds do
 | 
			
		||||
            @directory = @storage.directories.create(
 | 
			
		||||
              :key    => "fogstoragedirectory#{Time.now.to_i}",
 | 
			
		||||
              :public => publicity
 | 
			
		||||
            )
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
          # list directories
 | 
			
		||||
          tests('@directories = @storage.directories').succeeds do
 | 
			
		||||
            @directories = @storage.directories
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
          # get a directory
 | 
			
		||||
          tests('@storage.directories.get(@directory.identity)').succeeds do
 | 
			
		||||
            @storage.directories.get(@directory.identity)
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
          # create a file in the directory
 | 
			
		||||
          #   key can be any string
 | 
			
		||||
          #   body can be a string or a file as File.open(path)
 | 
			
		||||
          #   public should be a boolean and match the directory
 | 
			
		||||
          tests('@file = @directory.files.create').succeeds do
 | 
			
		||||
            @file = @directory.files.create(
 | 
			
		||||
              :body   => 'fog_storage_object_body',
 | 
			
		||||
              :key    => 'fogstorageobject',
 | 
			
		||||
              :public => publicity
 | 
			
		||||
            )
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
          # list files
 | 
			
		||||
          tests('@files = @directory.files').succeeds do
 | 
			
		||||
            @files = @directory.files
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
          # get a file
 | 
			
		||||
          tests('@directory.files.get(@file.identity)').succeeds do
 | 
			
		||||
            @directory.files.get(@file.identity)
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
          # test the publicity of files
 | 
			
		||||
          # Local is unable to inherently serve files, so we can skip it
 | 
			
		||||
          unless provider == Local
 | 
			
		||||
            # if the file is public it should have a url
 | 
			
		||||
            test('!!@file.public_url == publicity') do
 | 
			
		||||
              pending if Fog.mocking?
 | 
			
		||||
              !!@file.public_url == publicity
 | 
			
		||||
            end
 | 
			
		||||
 | 
			
		||||
            # if it is public ensure that public url is usable
 | 
			
		||||
            if publicity
 | 
			
		||||
              tests('Excon.get(@file.public_url).body').returns('fog_storage_object_body') do
 | 
			
		||||
                pending if Fog.mocking?
 | 
			
		||||
                Excon.get(@file.public_url).body
 | 
			
		||||
              end
 | 
			
		||||
            end
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
          tests('@file.copy').succeeds do
 | 
			
		||||
            @file.copy(@directory.key, 'fogstorageobject2')
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
          tests('@copy = @directory.files.get(fogstorageobject2)').succeeds do
 | 
			
		||||
            @copy = @directory.files.get('fogstorageobject2')
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
          tests('@copy.body == @file.body').succeeds do
 | 
			
		||||
            @copy.body == @file.body
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
          tests('@copy.destroy').succeeds do
 | 
			
		||||
            @copy.destroy
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
          # destroy the file
 | 
			
		||||
          tests('@file.destroy').succeeds do
 | 
			
		||||
            @file.destroy
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
          # destroy the directory
 | 
			
		||||
          tests('@directory.destroy').succeeds do
 | 
			
		||||
            @directory.destroy
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      tests(':key => \"fog/storageobject\"') do
 | 
			
		||||
 | 
			
		||||
        # create a directory
 | 
			
		||||
        #   key should be a unique string
 | 
			
		||||
        #   public should be a boolean
 | 
			
		||||
        tests('@directory = @storage.directories.create').succeeds do
 | 
			
		||||
          @directory = @storage.directories.create(
 | 
			
		||||
            :key    => "fogstoragedirectory#{Time.now.to_i}",
 | 
			
		||||
            :public => true
 | 
			
		||||
          )
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        # list directories
 | 
			
		||||
        tests('@directories = @storage.directories').succeeds do
 | 
			
		||||
          @directories = @storage.directories
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        # get a directory
 | 
			
		||||
        tests('@storage.directories.get(@directory.identity)').succeeds do
 | 
			
		||||
          @storage.directories.get(@directory.identity)
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        # create a file in the directory
 | 
			
		||||
        #   key can be any string
 | 
			
		||||
        #   body can be a string or a file as File.open(path)
 | 
			
		||||
        #   public should be a boolean and match the directory
 | 
			
		||||
        tests('@file = @directory.files.create').succeeds do
 | 
			
		||||
          @file = @directory.files.create(
 | 
			
		||||
            :body   => 'fog_storage_object_body',
 | 
			
		||||
            :key    => 'fog/storageobject',
 | 
			
		||||
            :public => true
 | 
			
		||||
          )
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        # list files
 | 
			
		||||
        tests('@files = @directory.files').succeeds do
 | 
			
		||||
          @files = @directory.files
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        # get a file
 | 
			
		||||
        tests('@directory.files.get(@file.identity)').succeeds do
 | 
			
		||||
          @directory.files.get(@file.identity)
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        # test the publicity of files
 | 
			
		||||
        # Local is unable to inherently serve files, so we can skip it
 | 
			
		||||
        unless provider == Local
 | 
			
		||||
          tests('Excon.get(@file.public_url).body').returns('fog_storage_object_body') do
 | 
			
		||||
            pending if Fog.mocking?
 | 
			
		||||
            Excon.get(@file.public_url).body
 | 
			
		||||
          end
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        # destroy the file
 | 
			
		||||
        tests('@file.destroy').succeeds do
 | 
			
		||||
          @file.destroy
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        # destroy the directory
 | 
			
		||||
        tests('@directory.destroy').succeeds do
 | 
			
		||||
          @directory.destroy
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue