tutum 0.1.1 → 0.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.
- checksums.yaml +4 -4
- data/lib/tutum.rb +34 -3
- data/lib/tutum_actions.rb +17 -0
- data/lib/tutum_api.rb +22 -5
- data/lib/tutum_containers.rb +3 -19
- data/lib/tutum_error.rb +2 -0
- data/lib/tutum_node_clusters.rb +50 -0
- data/lib/tutum_node_types.rb +18 -0
- data/lib/tutum_nodes.rb +34 -0
- data/lib/tutum_providers.rb +18 -0
- data/lib/tutum_regions.rb +18 -0
- data/lib/{tutum_clusters.rb → tutum_services.rb} +30 -21
- metadata +9 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: b2bfa295e6c208a54c15b5c1b13c22854bf2d5f9
         | 
| 4 | 
            +
              data.tar.gz: 913fcefd8d41ce5a9d872b09416592c44f2904bb
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 9e26ea5e40d68159cb6579f01f20cf2b8b5525e3f69b16e9bbff1d504cce01272b9deb5639b181b4e09f9c954f50a729cbbfb3dfe70e73a09ef510e200dfe97f
         | 
| 7 | 
            +
              data.tar.gz: 6395fa21a58394335cf37a2010281506b5369d674af5695321f84947f79ad052107fd86ccfc6e441613f73895692b471a0f5867c347e4539e22da75c1143ef9b
         | 
    
        data/lib/tutum.rb
    CHANGED
    
    | @@ -1,7 +1,17 @@ | |
| 1 1 | 
             
            require_relative './tutum_api'
         | 
| 2 | 
            -
             | 
| 2 | 
            +
             | 
| 3 | 
            +
             | 
| 4 | 
            +
            require_relative './tutum_actions'
         | 
| 3 5 | 
             
            require_relative './tutum_containers'
         | 
| 6 | 
            +
            require_relative './tutum_node_clusters'
         | 
| 4 7 | 
             
            require_relative './tutum_images'
         | 
| 8 | 
            +
            require_relative './tutum_node_clusters'
         | 
| 9 | 
            +
            require_relative './tutum_node_types'
         | 
| 10 | 
            +
            require_relative './tutum_nodes'
         | 
| 11 | 
            +
            require_relative './tutum_providers'
         | 
| 12 | 
            +
            require_relative './tutum_regions'
         | 
| 13 | 
            +
            require_relative './tutum_services'
         | 
| 14 | 
            +
            require_relative './tutum_error'
         | 
| 5 15 |  | 
| 6 16 | 
             
            class Tutum
         | 
| 7 17 | 
             
              attr_reader :username, :api_key
         | 
| @@ -18,6 +28,10 @@ class Tutum | |
| 18 28 | 
             
                }
         | 
| 19 29 | 
             
              end
         | 
| 20 30 |  | 
| 31 | 
            +
              def actions
         | 
| 32 | 
            +
                @actions ||= TutumContainers.new(headers)
         | 
| 33 | 
            +
              end
         | 
| 34 | 
            +
             | 
| 21 35 | 
             
              def containers
         | 
| 22 36 | 
             
                @containers ||= TutumContainers.new(headers)
         | 
| 23 37 | 
             
              end
         | 
| @@ -26,7 +40,24 @@ class Tutum | |
| 26 40 | 
             
                @images ||= TutumImages.new(headers)
         | 
| 27 41 | 
             
              end
         | 
| 28 42 |  | 
| 29 | 
            -
              def  | 
| 30 | 
            -
                @ | 
| 43 | 
            +
              def node_clusters
         | 
| 44 | 
            +
                @node_clusters ||= TutumNodeClusters.new(headers)
         | 
| 31 45 | 
             
              end
         | 
| 46 | 
            +
             | 
| 47 | 
            +
              def node_types
         | 
| 48 | 
            +
                @node_types ||= TutumNOdeTypes.new(headers)
         | 
| 49 | 
            +
              end
         | 
| 50 | 
            +
             | 
| 51 | 
            +
              def nodes
         | 
| 52 | 
            +
                @nodes ||= TutumNodes.new(headers)
         | 
| 53 | 
            +
              end
         | 
| 54 | 
            +
             | 
| 55 | 
            +
              def providers
         | 
| 56 | 
            +
                @providers ||= TutumProviders.new(headers)
         | 
| 57 | 
            +
              end
         | 
| 58 | 
            +
             | 
| 59 | 
            +
              def services
         | 
| 60 | 
            +
                @services ||= TutumServices.new(headers)
         | 
| 61 | 
            +
              end
         | 
| 62 | 
            +
             | 
| 32 63 | 
             
            end
         | 
    
        data/lib/tutum_api.rb
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            require 'httparty'
         | 
| 2 2 | 
             
            class TutumApi
         | 
| 3 3 | 
             
              attr_reader :headers
         | 
| 4 | 
            -
              BASE_API_PATH = "https:// | 
| 4 | 
            +
              BASE_API_PATH = "https://dashboard.tutum.co/api"
         | 
| 5 5 | 
             
              API_VERSION = "v1"
         | 
| 6 6 | 
             
              def initialize(headers)
         | 
| 7 7 | 
             
                @headers = headers
         | 
| @@ -13,16 +13,33 @@ class TutumApi | |
| 13 13 | 
             
                BASE_API_PATH+"/"+API_VERSION + path
         | 
| 14 14 | 
             
              end
         | 
| 15 15 |  | 
| 16 | 
            +
             | 
| 17 | 
            +
              def expect_20x(path, &block)
         | 
| 18 | 
            +
                response = block.call
         | 
| 19 | 
            +
                if(response.code/10 != 20)
         | 
| 20 | 
            +
                  raise TutumError.new("#{response.code} received for API call to #{path}")
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
                response
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
             | 
| 16 25 | 
             
              def http_get(path, args={})
         | 
| 17 | 
            -
                 | 
| 26 | 
            +
                expect_20x(path) do 
         | 
| 27 | 
            +
                  HTTParty.get(api_path(path), http_headers.merge({ :query => args }))
         | 
| 28 | 
            +
                end
         | 
| 18 29 | 
             
              end
         | 
| 19 30 | 
             
              def http_post(path, args={})
         | 
| 20 | 
            -
                 | 
| 31 | 
            +
                expect_20x(path) do 
         | 
| 32 | 
            +
                  HTTParty.post(api_path(path), http_headers.merge({ :body => args.to_json }))
         | 
| 33 | 
            +
                end
         | 
| 21 34 | 
             
              end
         | 
| 22 35 | 
             
              def http_patch(path, args={})
         | 
| 23 | 
            -
                 | 
| 36 | 
            +
                expect_20x(path) do 
         | 
| 37 | 
            +
                  HTTParty.patch(api_path(path), http_headers.merge({ :body => args.to_json }))
         | 
| 38 | 
            +
                end
         | 
| 24 39 | 
             
              end
         | 
| 25 40 | 
             
              def http_delete(path, args={})
         | 
| 26 | 
            -
                 | 
| 41 | 
            +
                expect_20x(path) do 
         | 
| 42 | 
            +
                  HTTParty.delete(api_path(path), http_headers.merge({ :query => args }))
         | 
| 43 | 
            +
                end
         | 
| 27 44 | 
             
              end
         | 
| 28 45 | 
             
            end
         | 
    
        data/lib/tutum_containers.rb
    CHANGED
    
    | @@ -7,14 +7,6 @@ class TutumContainers < TutumApi | |
| 7 7 | 
             
                http_get(list_url, params)
         | 
| 8 8 | 
             
              end
         | 
| 9 9 |  | 
| 10 | 
            -
              def create_url
         | 
| 11 | 
            -
                "/container/"
         | 
| 12 | 
            -
              end
         | 
| 13 | 
            -
             | 
| 14 | 
            -
              def create(params)
         | 
| 15 | 
            -
                http_post(create_url, params)
         | 
| 16 | 
            -
              end
         | 
| 17 | 
            -
             | 
| 18 10 | 
             
              def get_url(uuid)
         | 
| 19 11 | 
             
                "/container/#{uuid}/"
         | 
| 20 12 | 
             
              end
         | 
| @@ -47,19 +39,11 @@ class TutumContainers < TutumApi | |
| 47 39 | 
             
                http_get(logs_url(uuid))
         | 
| 48 40 | 
             
              end
         | 
| 49 41 |  | 
| 50 | 
            -
              def  | 
| 51 | 
            -
                "/container/#{uuid}/redeploy/"
         | 
| 52 | 
            -
              end
         | 
| 53 | 
            -
              
         | 
| 54 | 
            -
              def redeploy(uuid, params)
         | 
| 55 | 
            -
                http_post(redeploy_url(uuid), params)
         | 
| 56 | 
            -
              end
         | 
| 57 | 
            -
             | 
| 58 | 
            -
              def delete_url(uuid)
         | 
| 42 | 
            +
              def terminate_url(uuid)
         | 
| 59 43 | 
             
                "/container/#{uuid}/"
         | 
| 60 44 | 
             
              end
         | 
| 61 45 |  | 
| 62 | 
            -
              def  | 
| 63 | 
            -
                 | 
| 46 | 
            +
              def terminate(uuid)
         | 
| 47 | 
            +
                http_terminate(terminate_url(uuid))
         | 
| 64 48 | 
             
              end
         | 
| 65 49 | 
             
            end
         | 
    
        data/lib/tutum_error.rb
    ADDED
    
    
| @@ -0,0 +1,50 @@ | |
| 1 | 
            +
            class TutumNodeClusters < TutumApi
         | 
| 2 | 
            +
              def list_url
         | 
| 3 | 
            +
                "/application/"
         | 
| 4 | 
            +
              end
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              def list(params)
         | 
| 7 | 
            +
                http_get(list_url, params)
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              def create_url
         | 
| 11 | 
            +
                "/application/"
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              def create(params)
         | 
| 15 | 
            +
                http_post(create_url, params)
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              def get_url(uuid)
         | 
| 19 | 
            +
                "/application/#{uuid}/"
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              def get(uuid)
         | 
| 23 | 
            +
                http_get(get_url(uuid))
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
              def update_url(uuid)
         | 
| 27 | 
            +
                "/application/#{uuid}/"
         | 
| 28 | 
            +
              end
         | 
| 29 | 
            +
              
         | 
| 30 | 
            +
              def update(uuid, params)
         | 
| 31 | 
            +
                http_patch(update_url(uuid), params)
         | 
| 32 | 
            +
              end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
              def deploy_url(uuid)
         | 
| 35 | 
            +
                "/application/#{uuid}/deploy/"
         | 
| 36 | 
            +
              end
         | 
| 37 | 
            +
              
         | 
| 38 | 
            +
              def deploy(uuid, params)
         | 
| 39 | 
            +
                http_post(deploy_url(uuid), params)
         | 
| 40 | 
            +
              end
         | 
| 41 | 
            +
             | 
| 42 | 
            +
              def terminate_url(uuid)
         | 
| 43 | 
            +
                "/application/#{uuid}/"
         | 
| 44 | 
            +
              end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
              def terminate(uuid)
         | 
| 47 | 
            +
                http_delete(terminate_url(uuid))
         | 
| 48 | 
            +
              end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
            end
         | 
    
        data/lib/tutum_nodes.rb
    ADDED
    
    | @@ -0,0 +1,34 @@ | |
| 1 | 
            +
            class TutumNodes < TutumApi
         | 
| 2 | 
            +
              def list_url
         | 
| 3 | 
            +
                "/node/"
         | 
| 4 | 
            +
              end
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              def list(params)
         | 
| 7 | 
            +
                http_get(list_url, params)
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              def get_url(uuid)
         | 
| 11 | 
            +
                "/node/#{uuid}/"
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              def get(uuid)
         | 
| 15 | 
            +
                http_get(get_url(uuid))
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              def deploy_url(uuid)
         | 
| 19 | 
            +
                "/node/#{uuid}/deploy/"
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
              
         | 
| 22 | 
            +
              def deploy(uuid, params)
         | 
| 23 | 
            +
                http_post(deploy_url(uuid), params)
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
              def terminate_url(uuid)
         | 
| 27 | 
            +
                "/node/#{uuid}/"
         | 
| 28 | 
            +
              end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
              def terminate(uuid)
         | 
| 31 | 
            +
                http_delete(terminate_url(uuid))
         | 
| 32 | 
            +
              end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
            end
         | 
| @@ -1,6 +1,6 @@ | |
| 1 | 
            -
            class  | 
| 1 | 
            +
            class TutumServices < TutumApi
         | 
| 2 2 | 
             
              def list_url
         | 
| 3 | 
            -
                "/ | 
| 3 | 
            +
                "/service/"
         | 
| 4 4 | 
             
              end
         | 
| 5 5 |  | 
| 6 6 | 
             
              def list(params)
         | 
| @@ -8,7 +8,7 @@ class TutumClusters < TutumApi | |
| 8 8 | 
             
              end
         | 
| 9 9 |  | 
| 10 10 | 
             
              def create_url
         | 
| 11 | 
            -
                "/ | 
| 11 | 
            +
                "/service/"
         | 
| 12 12 | 
             
              end
         | 
| 13 13 |  | 
| 14 14 | 
             
              def create(params)
         | 
| @@ -16,51 +16,60 @@ class TutumClusters < TutumApi | |
| 16 16 | 
             
              end
         | 
| 17 17 |  | 
| 18 18 | 
             
              def get_url(uuid)
         | 
| 19 | 
            -
                "/ | 
| 19 | 
            +
                "/service/#{uuid}/"
         | 
| 20 20 | 
             
              end
         | 
| 21 21 |  | 
| 22 22 | 
             
              def get(uuid)
         | 
| 23 23 | 
             
                http_get(get_url(uuid))
         | 
| 24 24 | 
             
              end
         | 
| 25 25 |  | 
| 26 | 
            -
              def  | 
| 27 | 
            -
                "/ | 
| 26 | 
            +
              def logs_url(uuid)
         | 
| 27 | 
            +
                "/service/#{uuid}/"
         | 
| 28 28 | 
             
              end
         | 
| 29 29 |  | 
| 30 | 
            -
              def  | 
| 31 | 
            -
                 | 
| 30 | 
            +
              def logs(uuid)
         | 
| 31 | 
            +
                http_get(get_url(uuid))
         | 
| 32 32 | 
             
              end
         | 
| 33 33 |  | 
| 34 | 
            -
              def  | 
| 35 | 
            -
                "/ | 
| 34 | 
            +
              def update_url(uuid)
         | 
| 35 | 
            +
                "/service/#{uuid}/"
         | 
| 36 | 
            +
              end
         | 
| 37 | 
            +
              
         | 
| 38 | 
            +
              def update(uuid, params)
         | 
| 39 | 
            +
                http_patch(update_url(uuid), params)
         | 
| 36 40 | 
             
              end
         | 
| 37 41 |  | 
| 38 | 
            -
              def  | 
| 39 | 
            -
                 | 
| 42 | 
            +
              def start_url(uuid)
         | 
| 43 | 
            +
                "/service/#{uuid}/start/"
         | 
| 44 | 
            +
              end
         | 
| 45 | 
            +
              
         | 
| 46 | 
            +
              def start(uuid)
         | 
| 47 | 
            +
                http_post(start_url(uuid))
         | 
| 40 48 | 
             
              end
         | 
| 41 49 |  | 
| 42 | 
            -
              def  | 
| 43 | 
            -
                "/ | 
| 50 | 
            +
              def stop_url(uuid)
         | 
| 51 | 
            +
                "/service/#{uuid}/stop/"
         | 
| 44 52 | 
             
              end
         | 
| 45 53 |  | 
| 46 | 
            -
              def  | 
| 47 | 
            -
                 | 
| 54 | 
            +
              def stop(uuid)
         | 
| 55 | 
            +
                http_post(stop_url(uuid))
         | 
| 48 56 | 
             
              end
         | 
| 49 57 |  | 
| 58 | 
            +
             
         | 
| 50 59 | 
             
              def redeploy_url(uuid)
         | 
| 51 | 
            -
                "/ | 
| 60 | 
            +
                "/service/#{uuid}/redeploy/"
         | 
| 52 61 | 
             
              end
         | 
| 53 62 |  | 
| 54 63 | 
             
              def redeploy(uuid, params)
         | 
| 55 64 | 
             
                http_post(redeploy_url(uuid), params)
         | 
| 56 65 | 
             
              end
         | 
| 57 66 |  | 
| 58 | 
            -
              def  | 
| 59 | 
            -
                "/ | 
| 67 | 
            +
              def terminate_url(uuid)
         | 
| 68 | 
            +
                "/service/#{uuid}/"
         | 
| 60 69 | 
             
              end
         | 
| 61 70 |  | 
| 62 | 
            -
              def  | 
| 63 | 
            -
                http_delete( | 
| 71 | 
            +
              def terminate(uuid)
         | 
| 72 | 
            +
                http_delete(terminate_url(uuid))
         | 
| 64 73 | 
             
              end
         | 
| 65 74 |  | 
| 66 75 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: tutum
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: '0.2'
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Martyn Garcia
         | 
| @@ -32,10 +32,17 @@ extensions: [] | |
| 32 32 | 
             
            extra_rdoc_files: []
         | 
| 33 33 | 
             
            files:
         | 
| 34 34 | 
             
            - lib/tutum.rb
         | 
| 35 | 
            +
            - lib/tutum_actions.rb
         | 
| 35 36 | 
             
            - lib/tutum_api.rb
         | 
| 36 | 
            -
            - lib/tutum_clusters.rb
         | 
| 37 37 | 
             
            - lib/tutum_containers.rb
         | 
| 38 | 
            +
            - lib/tutum_error.rb
         | 
| 38 39 | 
             
            - lib/tutum_images.rb
         | 
| 40 | 
            +
            - lib/tutum_node_clusters.rb
         | 
| 41 | 
            +
            - lib/tutum_node_types.rb
         | 
| 42 | 
            +
            - lib/tutum_nodes.rb
         | 
| 43 | 
            +
            - lib/tutum_providers.rb
         | 
| 44 | 
            +
            - lib/tutum_regions.rb
         | 
| 45 | 
            +
            - lib/tutum_services.rb
         | 
| 39 46 | 
             
            homepage: https://github.com/255BITS/ruby-tutum
         | 
| 40 47 | 
             
            licenses:
         | 
| 41 48 | 
             
            - MIT
         |