google-cloud-spanner 2.7.0 → 2.8.0
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/CHANGELOG.md +11 -0
 - data/lib/google/cloud/spanner/instance.rb +61 -1
 - data/lib/google/cloud/spanner/project.rb +29 -3
 - data/lib/google/cloud/spanner/service.rb +14 -7
 - data/lib/google/cloud/spanner/version.rb +1 -1
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: e8347879380e3278cec1dee95179755b0f1ff4ffecea9fae6b04861bd43976d1
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: b6c66cb0637a396bfee1e590b6316826f24a5dc45739c57de19c14c0304bc501
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 5a2caf305e7484bd7c17d89973ee3eb536a11b202fa7b85443f33b60ebafc65fb67a57106ca75fda2d448c45614479c44745344af17267f6577b37a5389c2d02
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 3be51dc4c55d948f57c19e2be190cbc27b259793d63b77d366ae9bc8beb7e64c67135127e130b3837305576a41eb5ae370e810ec58ccbb46f627e0816c0359f8
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,5 +1,16 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Release History
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            ### 2.8.0 / 2021-06-17
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            #### Features
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            * create instance using processing units/node count ([#11379](https://www.github.com/googleapis/google-cloud-ruby/issues/11379))
         
     | 
| 
      
 8 
     | 
    
         
            +
              * create instance using processing units/node count
         
     | 
| 
      
 9 
     | 
    
         
            +
              * fix typo
         
     | 
| 
      
 10 
     | 
    
         
            +
              * removed node count and processing unit validations
         
     | 
| 
      
 11 
     | 
    
         
            +
              * update orignal value on instance save
         
     | 
| 
      
 12 
     | 
    
         
            +
              * remove orignal_values to current_valuess
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
       3 
14 
     | 
    
         
             
            ### 2.7.0 / 2021-06-09
         
     | 
| 
       4 
15 
     | 
    
         | 
| 
       5 
16 
     | 
    
         
             
            #### Features
         
     | 
| 
         @@ -68,6 +68,7 @@ module Google 
     | 
|
| 
       68 
68 
     | 
    
         
             
                    def initialize grpc, service
         
     | 
| 
       69 
69 
     | 
    
         
             
                      @grpc = grpc
         
     | 
| 
       70 
70 
     | 
    
         
             
                      @service = service
         
     | 
| 
      
 71 
     | 
    
         
            +
                      @current_values = grpc.to_h
         
     | 
| 
       71 
72 
     | 
    
         
             
                    end
         
     | 
| 
       72 
73 
     | 
    
         | 
| 
       73 
74 
     | 
    
         
             
                    # The unique identifier for the project.
         
     | 
| 
         @@ -134,6 +135,23 @@ module Google 
     | 
|
| 
       134 
135 
     | 
    
         
             
                    end
         
     | 
| 
       135 
136 
     | 
    
         
             
                    alias node_count= nodes=
         
     | 
| 
       136 
137 
     | 
    
         | 
| 
      
 138 
     | 
    
         
            +
                    ##
         
     | 
| 
      
 139 
     | 
    
         
            +
                    # The number of processing units allocated to this instance.
         
     | 
| 
      
 140 
     | 
    
         
            +
                    #
         
     | 
| 
      
 141 
     | 
    
         
            +
                    # @return [Integer]
         
     | 
| 
      
 142 
     | 
    
         
            +
                    def processing_units
         
     | 
| 
      
 143 
     | 
    
         
            +
                      @grpc.processing_units
         
     | 
| 
      
 144 
     | 
    
         
            +
                    end
         
     | 
| 
      
 145 
     | 
    
         
            +
             
     | 
| 
      
 146 
     | 
    
         
            +
                    ##
         
     | 
| 
      
 147 
     | 
    
         
            +
                    # Updates number of processing units allocated to this instance.
         
     | 
| 
      
 148 
     | 
    
         
            +
                    #
         
     | 
| 
      
 149 
     | 
    
         
            +
                    # @param units [Integer] The number of processing units allocated
         
     | 
| 
      
 150 
     | 
    
         
            +
                    #   to this instance.
         
     | 
| 
      
 151 
     | 
    
         
            +
                    def processing_units= units
         
     | 
| 
      
 152 
     | 
    
         
            +
                      @grpc.processing_units = units
         
     | 
| 
      
 153 
     | 
    
         
            +
                    end
         
     | 
| 
      
 154 
     | 
    
         
            +
             
     | 
| 
       137 
155 
     | 
    
         
             
                    ##
         
     | 
| 
       138 
156 
     | 
    
         
             
                    # The current instance state. Possible values are `:CREATING` and
         
     | 
| 
       139 
157 
     | 
    
         
             
                    # `:READY`.
         
     | 
| 
         @@ -188,8 +206,50 @@ module Google 
     | 
|
| 
       188 
206 
     | 
    
         
             
                      )
         
     | 
| 
       189 
207 
     | 
    
         
             
                    end
         
     | 
| 
       190 
208 
     | 
    
         | 
| 
      
 209 
     | 
    
         
            +
                    ##
         
     | 
| 
      
 210 
     | 
    
         
            +
                    # Update changes.
         
     | 
| 
      
 211 
     | 
    
         
            +
                    #  `display_name`, `labels`, `nodes`, `processing_units` can be
         
     | 
| 
      
 212 
     | 
    
         
            +
                    #  updated. `processing_units` and `nodes` can be used interchangeably
         
     | 
| 
      
 213 
     | 
    
         
            +
                    #  to update.
         
     | 
| 
      
 214 
     | 
    
         
            +
                    #
         
     | 
| 
      
 215 
     | 
    
         
            +
                    # @return [Instance::Job] The job representing the long-running,
         
     | 
| 
      
 216 
     | 
    
         
            +
                    #   asynchronous processing of an instance update operation.
         
     | 
| 
      
 217 
     | 
    
         
            +
                    # @raise [ArgumentError] if both processing_units or nodes are specified.
         
     | 
| 
      
 218 
     | 
    
         
            +
                    #
         
     | 
| 
      
 219 
     | 
    
         
            +
                    # @example
         
     | 
| 
      
 220 
     | 
    
         
            +
                    #   require "google/cloud/spanner"
         
     | 
| 
      
 221 
     | 
    
         
            +
                    #
         
     | 
| 
      
 222 
     | 
    
         
            +
                    #   spanner = Google::Cloud::Spanner.new
         
     | 
| 
      
 223 
     | 
    
         
            +
                    #
         
     | 
| 
      
 224 
     | 
    
         
            +
                    #   instance = spanner.instance "my-instance"
         
     | 
| 
      
 225 
     | 
    
         
            +
                    #   instance.display_name = "prod-instance"
         
     | 
| 
      
 226 
     | 
    
         
            +
                    #   instance.labels = { env: "prod", app: "api" }
         
     | 
| 
      
 227 
     | 
    
         
            +
                    #   instance.nodes = 2
         
     | 
| 
      
 228 
     | 
    
         
            +
                    #   # OR
         
     | 
| 
      
 229 
     | 
    
         
            +
                    #   # instance.processing_units = 500
         
     | 
| 
      
 230 
     | 
    
         
            +
                    #
         
     | 
| 
      
 231 
     | 
    
         
            +
                    #   job = instance.save
         
     | 
| 
      
 232 
     | 
    
         
            +
                    #
         
     | 
| 
      
 233 
     | 
    
         
            +
                    #   job.done? #=> false
         
     | 
| 
      
 234 
     | 
    
         
            +
                    #   job.reload! # API call
         
     | 
| 
      
 235 
     | 
    
         
            +
                    #   job.done? #=> true
         
     | 
| 
      
 236 
     | 
    
         
            +
                    #
         
     | 
| 
      
 237 
     | 
    
         
            +
                    #   if job.error?
         
     | 
| 
      
 238 
     | 
    
         
            +
                    #     status = job.error
         
     | 
| 
      
 239 
     | 
    
         
            +
                    #   else
         
     | 
| 
      
 240 
     | 
    
         
            +
                    #     instance = job.instance
         
     | 
| 
      
 241 
     | 
    
         
            +
                    #   end
         
     | 
| 
      
 242 
     | 
    
         
            +
                    #
         
     | 
| 
       191 
243 
     | 
    
         
             
                    def save
         
     | 
| 
       192 
     | 
    
         
            -
                       
     | 
| 
      
 244 
     | 
    
         
            +
                      ensure_service!
         
     | 
| 
      
 245 
     | 
    
         
            +
             
     | 
| 
      
 246 
     | 
    
         
            +
                      field_mask = []
         
     | 
| 
      
 247 
     | 
    
         
            +
                      @current_values.each do |field, value|
         
     | 
| 
      
 248 
     | 
    
         
            +
                        field_mask << field unless @grpc[field.to_s] == value
         
     | 
| 
      
 249 
     | 
    
         
            +
                      end
         
     | 
| 
      
 250 
     | 
    
         
            +
             
     | 
| 
      
 251 
     | 
    
         
            +
                      job_grpc = service.update_instance @grpc, field_mask: field_mask
         
     | 
| 
      
 252 
     | 
    
         
            +
                      @current_values = @grpc.to_h
         
     | 
| 
       193 
253 
     | 
    
         
             
                      Instance::Job.from_grpc job_grpc, service
         
     | 
| 
       194 
254 
     | 
    
         
             
                    end
         
     | 
| 
       195 
255 
     | 
    
         
             
                    alias update save
         
     | 
| 
         @@ -177,7 +177,10 @@ module Google 
     | 
|
| 
       177 
177 
     | 
    
         
             
                    #   configuration. Values can be the `instance_config_id`, the full
         
     | 
| 
       178 
178 
     | 
    
         
             
                    #   path, or an {Instance::Config} object. Required.
         
     | 
| 
       179 
179 
     | 
    
         
             
                    # @param [Integer] nodes The number of nodes allocated to this instance.
         
     | 
| 
       180 
     | 
    
         
            -
                    #    
     | 
| 
      
 180 
     | 
    
         
            +
                    #   Optional. Specify either `nodes` or `processing_units`
         
     | 
| 
      
 181 
     | 
    
         
            +
                    # @param [Integer] processing_units The number of processing units
         
     | 
| 
      
 182 
     | 
    
         
            +
                    #   allocated to this instance. Optional. Specify either `nodes`
         
     | 
| 
      
 183 
     | 
    
         
            +
                    #   or `processing_units`
         
     | 
| 
       181 
184 
     | 
    
         
             
                    # @param [Hash] labels Cloud Labels are a flexible and lightweight
         
     | 
| 
       182 
185 
     | 
    
         
             
                    #   mechanism for organizing cloud resources into groups that reflect a
         
     | 
| 
       183 
186 
     | 
    
         
             
                    #   customer's organizational needs and deployment strategies. Cloud
         
     | 
| 
         @@ -195,6 +198,7 @@ module Google 
     | 
|
| 
       195 
198 
     | 
    
         
             
                    #
         
     | 
| 
       196 
199 
     | 
    
         
             
                    # @return [Instance::Job] The job representing the long-running,
         
     | 
| 
       197 
200 
     | 
    
         
             
                    #   asynchronous processing of an instance create operation.
         
     | 
| 
      
 201 
     | 
    
         
            +
                    # @raise [ArgumentError] if both processing_units or nodes are specified.
         
     | 
| 
       198 
202 
     | 
    
         
             
                    #
         
     | 
| 
       199 
203 
     | 
    
         
             
                    # @example
         
     | 
| 
       200 
204 
     | 
    
         
             
                    #   require "google/cloud/spanner"
         
     | 
| 
         @@ -217,14 +221,36 @@ module Google 
     | 
|
| 
       217 
221 
     | 
    
         
             
                    #     instance = job.instance
         
     | 
| 
       218 
222 
     | 
    
         
             
                    #   end
         
     | 
| 
       219 
223 
     | 
    
         
             
                    #
         
     | 
| 
      
 224 
     | 
    
         
            +
                    # @example Create instance using processsing units
         
     | 
| 
      
 225 
     | 
    
         
            +
                    #   require "google/cloud/spanner"
         
     | 
| 
      
 226 
     | 
    
         
            +
                    #
         
     | 
| 
      
 227 
     | 
    
         
            +
                    #   spanner = Google::Cloud::Spanner.new
         
     | 
| 
      
 228 
     | 
    
         
            +
                    #
         
     | 
| 
      
 229 
     | 
    
         
            +
                    #   job = spanner.create_instance "my-new-instance",
         
     | 
| 
      
 230 
     | 
    
         
            +
                    #                                 name: "My New Instance",
         
     | 
| 
      
 231 
     | 
    
         
            +
                    #                                 config: "regional-us-central1",
         
     | 
| 
      
 232 
     | 
    
         
            +
                    #                                 processing_units: 500,
         
     | 
| 
      
 233 
     | 
    
         
            +
                    #                                 labels: { production: :env }
         
     | 
| 
      
 234 
     | 
    
         
            +
                    #
         
     | 
| 
      
 235 
     | 
    
         
            +
                    #   job.done? #=> false
         
     | 
| 
      
 236 
     | 
    
         
            +
                    #   job.reload! # API call
         
     | 
| 
      
 237 
     | 
    
         
            +
                    #   job.done? #=> true
         
     | 
| 
      
 238 
     | 
    
         
            +
                    #
         
     | 
| 
      
 239 
     | 
    
         
            +
                    #   if job.error?
         
     | 
| 
      
 240 
     | 
    
         
            +
                    #     status = job.error
         
     | 
| 
      
 241 
     | 
    
         
            +
                    #   else
         
     | 
| 
      
 242 
     | 
    
         
            +
                    #     instance = job.instance
         
     | 
| 
      
 243 
     | 
    
         
            +
                    #   end
         
     | 
| 
      
 244 
     | 
    
         
            +
                    #
         
     | 
| 
       220 
245 
     | 
    
         
             
                    def create_instance instance_id, name: nil, config: nil, nodes: nil,
         
     | 
| 
       221 
     | 
    
         
            -
                                        labels: nil
         
     | 
| 
      
 246 
     | 
    
         
            +
                                        processing_units: nil, labels: nil
         
     | 
| 
       222 
247 
     | 
    
         
             
                      config = config.path if config.respond_to? :path
         
     | 
| 
      
 248 
     | 
    
         
            +
             
     | 
| 
       223 
249 
     | 
    
         
             
                      # Convert from possible Google::Protobuf::Map
         
     | 
| 
       224 
250 
     | 
    
         
             
                      labels = Hash[labels.map { |k, v| [String(k), String(v)] }] if labels
         
     | 
| 
       225 
251 
     | 
    
         
             
                      grpc = service.create_instance \
         
     | 
| 
       226 
252 
     | 
    
         
             
                        instance_id, name: name, config: config, nodes: nodes,
         
     | 
| 
       227 
     | 
    
         
            -
                                     labels: labels
         
     | 
| 
      
 253 
     | 
    
         
            +
                                     processing_units: processing_units, labels: labels
         
     | 
| 
       228 
254 
     | 
    
         
             
                      Instance::Job.from_grpc grpc, service
         
     | 
| 
       229 
255 
     | 
    
         
             
                    end
         
     | 
| 
       230 
256 
     | 
    
         | 
| 
         @@ -127,13 +127,15 @@ module Google 
     | 
|
| 
       127 
127 
     | 
    
         
             
                    end
         
     | 
| 
       128 
128 
     | 
    
         | 
| 
       129 
129 
     | 
    
         
             
                    def create_instance instance_id, name: nil, config: nil, nodes: nil,
         
     | 
| 
       130 
     | 
    
         
            -
                                         
     | 
| 
      
 130 
     | 
    
         
            +
                                        processing_units: nil, labels: nil,
         
     | 
| 
      
 131 
     | 
    
         
            +
                                        call_options: nil
         
     | 
| 
       131 
132 
     | 
    
         
             
                      opts = default_options call_options: call_options
         
     | 
| 
       132 
133 
     | 
    
         
             
                      labels = Hash[labels.map { |k, v| [String(k), String(v)] }] if labels
         
     | 
| 
       133 
134 
     | 
    
         | 
| 
       134 
135 
     | 
    
         
             
                      create_obj = Admin::Instance::V1::Instance.new({
         
     | 
| 
       135 
136 
     | 
    
         
             
                        display_name: name, config: instance_config_path(config),
         
     | 
| 
       136 
     | 
    
         
            -
                        node_count: nodes,  
     | 
| 
      
 137 
     | 
    
         
            +
                        node_count: nodes, processing_units: processing_units,
         
     | 
| 
      
 138 
     | 
    
         
            +
                        labels: labels
         
     | 
| 
       137 
139 
     | 
    
         
             
                      }.delete_if { |_, v| v.nil? })
         
     | 
| 
       138 
140 
     | 
    
         | 
| 
       139 
141 
     | 
    
         
             
                      request = {
         
     | 
| 
         @@ -144,12 +146,17 @@ module Google 
     | 
|
| 
       144 
146 
     | 
    
         
             
                      instances.create_instance request, opts
         
     | 
| 
       145 
147 
     | 
    
         
             
                    end
         
     | 
| 
       146 
148 
     | 
    
         | 
| 
       147 
     | 
    
         
            -
                    def update_instance instance, call_options: nil
         
     | 
| 
      
 149 
     | 
    
         
            +
                    def update_instance instance, field_mask: nil, call_options: nil
         
     | 
| 
       148 
150 
     | 
    
         
             
                      opts = default_options call_options: call_options
         
     | 
| 
       149 
     | 
    
         
            -
             
     | 
| 
       150 
     | 
    
         
            -
             
     | 
| 
       151 
     | 
    
         
            -
             
     | 
| 
       152 
     | 
    
         
            -
                       
     | 
| 
      
 151 
     | 
    
         
            +
             
     | 
| 
      
 152 
     | 
    
         
            +
                      if field_mask.nil? || field_mask.empty?
         
     | 
| 
      
 153 
     | 
    
         
            +
                        field_mask = %w[display_name node_count labels]
         
     | 
| 
      
 154 
     | 
    
         
            +
                      end
         
     | 
| 
      
 155 
     | 
    
         
            +
             
     | 
| 
      
 156 
     | 
    
         
            +
                      request = {
         
     | 
| 
      
 157 
     | 
    
         
            +
                        instance: instance,
         
     | 
| 
      
 158 
     | 
    
         
            +
                        field_mask: Google::Protobuf::FieldMask.new(paths: field_mask)
         
     | 
| 
      
 159 
     | 
    
         
            +
                      }
         
     | 
| 
       153 
160 
     | 
    
         
             
                      instances.update_instance request, opts
         
     | 
| 
       154 
161 
     | 
    
         
             
                    end
         
     | 
| 
       155 
162 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: google-cloud-spanner
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.8.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Mike Moore
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2021-06- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2021-06-17 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: google-cloud-core
         
     |