    # File lib/fog/vcloud/models/compute/server.rb, line 177
            def save
              unless persisted?
                #Lame ...
                raise RuntimeError, "Should not be here"
              else
                if on?
                  if @changed
                    raise RuntimeError, "Can't save cpu, name or memory changes while the VM is on."
                  end
                end

                if @update_password
                    guest_customization[:AdminPassword] = @update_password.to_s
                    service.configure_vm_password(guest_customization)
                    wait_for { ready? }
                end

                if @update_cpu_value
                  cpu_mess["rasd:VirtualQuantity""rasd:VirtualQuantity"] = @update_cpu_value.to_s
                  service.configure_vm_cpus(cpu_mess)
                  wait_for { ready? }
                end

                if @update_memory_value
                  memory_mess["rasd:VirtualQuantity""rasd:VirtualQuantity"] = @update_memory_value.to_s
                  service.configure_vm_memory(memory_mess)
                  wait_for { ready? }
                end

                if @disk_change == :deleted
                  data = disk_mess.delete_if do |vh|
                    vh['rasd:ResourceType''rasd:ResourceType'] == '17' &&
                      vh['rasd:AddressOnParent''rasd:AddressOnParent'].to_s == @remove_disk.to_s
                  end
                  service.configure_vm_disks(self.href, data)
                  wait_for { ready? }
                end
                if @disk_change == :added
                  data = disk_mess
                  data << @add_disk
                  service.configure_vm_disks(self.href, data)
                  wait_for { ready? }
                end
                if @name_changed || @description_changed
                  edit_uri = links.select {|i| i[:rel] == 'edit'}
                  edit_uri = edit_uri.kind_of?(Array) ? edit_uri.flatten[0][:href] : edit_uri[:href]
                  service.configure_vm_name_description(edit_uri, self.name, self.description)
                  wait_for { ready? }
                end
              end
              reset_tracking
              true
            end