vagrant-lxd 0.1.0 → 0.1.1
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/Gemfile.lock +1 -1
 - data/README.md +17 -3
 - data/doc/setting-up-lxd.md +57 -0
 - data/lib/vagrant-lxd/command.rb +21 -9
 - data/lib/vagrant-lxd/driver.rb +28 -7
 - data/lib/vagrant-lxd/version.rb +1 -1
 - data/templates/locales/en.yml +12 -1
 - metadata +3 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 2ae29284d2a4a870ad54f62da227bfa06e1a879d
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 1a7977adf19891632b59233f7de7bad527ed93b4
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 94b0882c41cd75aa6caf9f672b7f7353cfb56b9e60762f785f6b9fc23774ee8b2bb4443da86b35f957a52588cffb564a9e4130798498e3f1ab07fe037287fc0b
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 9b1344147ebd312227be8186571ed421bfdc1dc4421a45c09f17bb0008759b2682b23b78c19228ed2901aa58f63f3782edaf78cb364564bf9e7982df6c9b12c1
         
     | 
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | 
         @@ -25,7 +25,16 @@ The plugin requires LXD 2.0 and Vagrant 1.8.7 or newer. 
     | 
|
| 
       25 
25 
     | 
    
         | 
| 
       26 
26 
     | 
    
         
             
            ## Installation
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
      
 28 
     | 
    
         
            +
            ### From Rubygems
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            You can install the latest version of the plugin directly from
         
     | 
| 
      
 31 
     | 
    
         
            +
            rubygems.org with the `vagrant plugin` command:
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                $ vagrant plugin install vagrant-lxd
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            ### From Git
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            Installing from this repository is a three-step process.
         
     | 
| 
       29 
38 
     | 
    
         | 
| 
       30 
39 
     | 
    
         
             
             1. Use Bundler to install development dependencies:
         
     | 
| 
       31 
40 
     | 
    
         | 
| 
         @@ -43,12 +52,17 @@ Installing the plugin from this repository is a three-step process. 
     | 
|
| 
       43 
52 
     | 
    
         | 
| 
       44 
53 
     | 
    
         
             
            ### Quick Start
         
     | 
| 
       45 
54 
     | 
    
         | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
      
 55 
     | 
    
         
            +
            First, make sure that you've [configured LXD correctly][setting-up-lxd]
         
     | 
| 
      
 56 
     | 
    
         
            +
            for use with Vagrant.
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
            Once LXD is set up, you can use `vagrant up --provider lxd` to create
         
     | 
| 
      
 59 
     | 
    
         
            +
            container-backed machines. This plugin reuses the `lxc` box format, so
         
     | 
| 
      
 60 
     | 
    
         
            +
            VM images from [Vagrant Cloud][cloud] should work without modification:
         
     | 
| 
       48 
61 
     | 
    
         | 
| 
       49 
62 
     | 
    
         
             
                $ vagrant init --minimal debian/stretch64
         
     | 
| 
       50 
63 
     | 
    
         
             
                $ vagrant up --provider lxd
         
     | 
| 
       51 
64 
     | 
    
         | 
| 
      
 65 
     | 
    
         
            +
            [setting-up-lxd]: doc/setting-up-lxd.md
         
     | 
| 
       52 
66 
     | 
    
         
             
            [cloud]: https://app.vagrantup.com/boxes/search?provider=lxc
         
     | 
| 
       53 
67 
     | 
    
         | 
| 
       54 
68 
     | 
    
         
             
            #### Configuration
         
     | 
| 
         @@ -0,0 +1,57 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Setting up LXD
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            LXD needs to be configured a particular way before Vagrant can use it.
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Specifically, the following settings need to be applied:
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
             1. LXD must allow HTTPS API access from your machine.
         
     | 
| 
      
 8 
     | 
    
         
            +
             2. LXD must have a working network bridge.
         
     | 
| 
      
 9 
     | 
    
         
            +
             3. Your user must be in the "lxd" group.
         
     | 
| 
      
 10 
     | 
    
         
            +
             4. Your user must have a client certificate registered with LXD.
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            ## Xenial
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            To install LXD and configure it as described above on Ubuntu 16.04, you
         
     | 
| 
      
 15 
     | 
    
         
            +
            can use the following commands:
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            ```sh
         
     | 
| 
      
 18 
     | 
    
         
            +
            # install lxd
         
     | 
| 
      
 19 
     | 
    
         
            +
            sudo apt install -y lxd
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            # enable https api access
         
     | 
| 
      
 22 
     | 
    
         
            +
            sudo lxd init --auto --network-address=127.0.0.1 --network-port=8443
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            # set up a network bridge (press enter to accept the default values)
         
     | 
| 
      
 25 
     | 
    
         
            +
            sudo dpkg-reconfigure -p medium lxd
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            # add your user to the lxd group
         
     | 
| 
      
 28 
     | 
    
         
            +
            sudo usermod -a lxd -G $(whoami)
         
     | 
| 
      
 29 
     | 
    
         
            +
            ```
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            Once LXD is configured, you should register a client certificate for
         
     | 
| 
      
 32 
     | 
    
         
            +
            Vagrant to use when authenticating to the API (this command will
         
     | 
| 
      
 33 
     | 
    
         
            +
            automatically generate the certificate for you):
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            ```sh
         
     | 
| 
      
 36 
     | 
    
         
            +
            # apply new group membership
         
     | 
| 
      
 37 
     | 
    
         
            +
            newgrp lxd
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            # create and add a client certificate
         
     | 
| 
      
 40 
     | 
    
         
            +
            lxc config trust add /home/ubuntu/.config/lxc/client.crt
         
     | 
| 
      
 41 
     | 
    
         
            +
            ```
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
            At this point everything should be set up for the plugin to work
         
     | 
| 
      
 44 
     | 
    
         
            +
            correctly.
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            ## Other Platforms
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
            The Linux Containers website has a [detailed guide][getting-started-cli]
         
     | 
| 
      
 49 
     | 
    
         
            +
            to installing LXD on other platforms. The steps to configure LXD for
         
     | 
| 
      
 50 
     | 
    
         
            +
            Vagrant will be similar to those above, but some commands will differ.
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
            If you're using the plugin on another platform, please feel free to
         
     | 
| 
      
 53 
     | 
    
         
            +
            propose an addition to this document or add instructions to the
         
     | 
| 
      
 54 
     | 
    
         
            +
            project's [wiki][] for others to follow.
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
            [getting-started-cli]: https://linuxcontainers.org/lxd/getting-started-cli/
         
     | 
| 
      
 57 
     | 
    
         
            +
            [wiki]: https://gitlab.com/catalyst-it/vagrant-lxd/wikis
         
     | 
    
        data/lib/vagrant-lxd/command.rb
    CHANGED
    
    | 
         @@ -61,8 +61,10 @@ module VagrantLXD 
     | 
|
| 
       61 
61 
     | 
    
         
             
                end
         
     | 
| 
       62 
62 
     | 
    
         | 
| 
       63 
63 
     | 
    
         
             
                def attach(args)
         
     | 
| 
      
 64 
     | 
    
         
            +
                  options = Hash[force: false]
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
       64 
66 
     | 
    
         
             
                  opts = OptionParser.new do |o|
         
     | 
| 
       65 
     | 
    
         
            -
                    o.banner = 'Usage: vagrant lxd attach [machine ... 
     | 
| 
      
 67 
     | 
    
         
            +
                    o.banner = 'Usage: vagrant lxd attach [-f] [machine ... container]'
         
     | 
| 
       66 
68 
     | 
    
         
             
                    o.separator ''
         
     | 
| 
       67 
69 
     | 
    
         
             
                    o.separator 'Associates a VM with a preexisting LXD container.'
         
     | 
| 
       68 
70 
     | 
    
         
             
                    o.separator ''
         
     | 
| 
         @@ -70,6 +72,8 @@ module VagrantLXD 
     | 
|
| 
       70 
72 
     | 
    
         
             
                    o.separator 'preexisting LXD container. Once it has been associated with a container,'
         
     | 
| 
       71 
73 
     | 
    
         
             
                    o.separator 'the machine can be used just like it had been created with `vagrant up`'
         
     | 
| 
       72 
74 
     | 
    
         
             
                    o.separator 'or detached from the container again with `vagrant lxd detach`.'
         
     | 
| 
      
 75 
     | 
    
         
            +
                    o.separator ''
         
     | 
| 
      
 76 
     | 
    
         
            +
                    o.on('-f', '--force', 'Force attachment and ignore missing containers')
         
     | 
| 
       73 
77 
     | 
    
         
             
                  end
         
     | 
| 
       74 
78 
     | 
    
         | 
| 
       75 
79 
     | 
    
         
             
                  if args.include?('-h') or args.include?('--help')
         
     | 
| 
         @@ -77,16 +81,25 @@ module VagrantLXD 
     | 
|
| 
       77 
81 
     | 
    
         
             
                    exit 0
         
     | 
| 
       78 
82 
     | 
    
         
             
                  end
         
     | 
| 
       79 
83 
     | 
    
         | 
| 
       80 
     | 
    
         
            -
                   
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
                   
     | 
| 
      
 84 
     | 
    
         
            +
                  options[:force] ||= args.delete('-f')
         
     | 
| 
      
 85 
     | 
    
         
            +
                  options[:force] ||= args.delete('--force')
         
     | 
| 
      
 86 
     | 
    
         
            +
                  options[:container_name] = args.pop
         
     | 
| 
       83 
87 
     | 
    
         | 
| 
       84 
88 
     | 
    
         
             
                  with_target_machines(args) do |machine|
         
     | 
| 
       85 
     | 
    
         
            -
                    if machine. 
     | 
| 
      
 89 
     | 
    
         
            +
                    if not container = options[:container_name] || machine.provider_config.name
         
     | 
| 
      
 90 
     | 
    
         
            +
                      machine.ui.warn 'No container name specified, skipping...'
         
     | 
| 
      
 91 
     | 
    
         
            +
                    elsif machine.id == container
         
     | 
| 
       86 
92 
     | 
    
         
             
                      machine.ui.warn "Machine is already attached to container '#{container}', skipping..."
         
     | 
| 
       87 
93 
     | 
    
         
             
                    elsif machine.state.id == Vagrant::MachineState::NOT_CREATED_ID
         
     | 
| 
       88 
94 
     | 
    
         
             
                      machine.ui.info "Attaching to container '#{container}'..."
         
     | 
| 
       89 
     | 
    
         
            -
                       
     | 
| 
      
 95 
     | 
    
         
            +
                      begin
         
     | 
| 
      
 96 
     | 
    
         
            +
                        Driver.new(machine).attach(container)
         
     | 
| 
      
 97 
     | 
    
         
            +
                      rescue Driver::ContainerNotFound
         
     | 
| 
      
 98 
     | 
    
         
            +
                        raise unless options[:force]
         
     | 
| 
      
 99 
     | 
    
         
            +
                      end
         
     | 
| 
      
 100 
     | 
    
         
            +
                    elsif options[:force]
         
     | 
| 
      
 101 
     | 
    
         
            +
                      detach([machine.name])
         
     | 
| 
      
 102 
     | 
    
         
            +
                      redo
         
     | 
| 
       90 
103 
     | 
    
         
             
                    else
         
     | 
| 
       91 
104 
     | 
    
         
             
                      machine.ui.error "Machine is already attached to container '#{machine.id}'"
         
     | 
| 
       92 
105 
     | 
    
         
             
                      fail Driver::DuplicateAttachmentFailure, machine_name: machine.name, container: container
         
     | 
| 
         @@ -115,9 +128,8 @@ module VagrantLXD 
     | 
|
| 
       115 
128 
     | 
    
         
             
                    if machine.id.nil? or machine.state.id == Vagrant::MachineState::NOT_CREATED_ID
         
     | 
| 
       116 
129 
     | 
    
         
             
                      machine.ui.warn "Machine is not attached to a container, skipping..."
         
     | 
| 
       117 
130 
     | 
    
         
             
                    else
         
     | 
| 
       118 
     | 
    
         
            -
                       
     | 
| 
       119 
     | 
    
         
            -
                      machine. 
     | 
| 
       120 
     | 
    
         
            -
                      driver.detach
         
     | 
| 
      
 131 
     | 
    
         
            +
                      machine.ui.info "Detaching from container '#{machine.id}'..."
         
     | 
| 
      
 132 
     | 
    
         
            +
                      Driver.new(machine).detach
         
     | 
| 
       121 
133 
     | 
    
         
             
                    end
         
     | 
| 
       122 
134 
     | 
    
         
             
                  end
         
     | 
| 
       123 
135 
     | 
    
         
             
                end
         
     | 
    
        data/lib/vagrant-lxd/driver.rb
    CHANGED
    
    | 
         @@ -65,6 +65,10 @@ module VagrantLXD 
     | 
|
| 
       65 
65 
     | 
    
         
             
                  error_key 'lxd_duplicate_attachment_failure'
         
     | 
| 
       66 
66 
     | 
    
         
             
                end
         
     | 
| 
       67 
67 
     | 
    
         | 
| 
      
 68 
     | 
    
         
            +
                class SnapshotNotFound < Vagrant::Errors::VagrantError
         
     | 
| 
      
 69 
     | 
    
         
            +
                  error_key 'snapshot_not_found'
         
     | 
| 
      
 70 
     | 
    
         
            +
                end
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
       68 
72 
     | 
    
         
             
                class Hyperkit::BadRequest
         
     | 
| 
       69 
73 
     | 
    
         
             
                  def reason
         
     | 
| 
       70 
74 
     | 
    
         
             
                    return unless data.is_a? Hash
         
     | 
| 
         @@ -150,7 +154,7 @@ module VagrantLXD 
     | 
|
| 
       150 
154 
     | 
    
         
             
                  end
         
     | 
| 
       151 
155 
     | 
    
         
             
                rescue Hyperkit::NotFound
         
     | 
| 
       152 
156 
     | 
    
         
             
                  @machine.ui.error "Container doesn't exist: #{container}"
         
     | 
| 
       153 
     | 
    
         
            -
                  fail ContainerNotFound, container: container
         
     | 
| 
      
 157 
     | 
    
         
            +
                  fail ContainerNotFound, machine_name: @machine.name, container: container
         
     | 
| 
       154 
158 
     | 
    
         
             
                end
         
     | 
| 
       155 
159 
     | 
    
         | 
| 
       156 
160 
     | 
    
         
             
                def detach
         
     | 
| 
         @@ -166,15 +170,23 @@ module VagrantLXD 
     | 
|
| 
       166 
170 
     | 
    
         
             
                end
         
     | 
| 
       167 
171 
     | 
    
         | 
| 
       168 
172 
     | 
    
         
             
                def snapshot_save(name)
         
     | 
| 
       169 
     | 
    
         
            -
                   
     | 
| 
      
 173 
     | 
    
         
            +
                  snapshot_delete(name) # noops if the snapshot doesn't exist
         
     | 
| 
      
 174 
     | 
    
         
            +
                  operation = @lxd.create_snapshot(machine_id, name, sync: false)
         
     | 
| 
      
 175 
     | 
    
         
            +
                  wait_for_operation(operation)
         
     | 
| 
       170 
176 
     | 
    
         
             
                end
         
     | 
| 
       171 
177 
     | 
    
         | 
| 
       172 
178 
     | 
    
         
             
                def snapshot_restore(name)
         
     | 
| 
       173 
     | 
    
         
            -
                  @lxd.restore_snapshot(machine_id, name)
         
     | 
| 
      
 179 
     | 
    
         
            +
                  operation = @lxd.restore_snapshot(machine_id, name, sync: false)
         
     | 
| 
      
 180 
     | 
    
         
            +
                  wait_for_operation(operation)
         
     | 
| 
      
 181 
     | 
    
         
            +
                rescue Hyperkit::BadRequest
         
     | 
| 
      
 182 
     | 
    
         
            +
                  @logger.warn 'Snapshot restoration failed: ' << name
         
     | 
| 
      
 183 
     | 
    
         
            +
                  fail SnapshotNotFound, machine: @machine.name, snapshot_name: name
         
     | 
| 
       174 
184 
     | 
    
         
             
                end
         
     | 
| 
       175 
185 
     | 
    
         | 
| 
       176 
186 
     | 
    
         
             
                def snapshot_delete(name)
         
     | 
| 
       177 
187 
     | 
    
         
             
                  @lxd.delete_snapshot(machine_id, name)
         
     | 
| 
      
 188 
     | 
    
         
            +
                rescue Hyperkit::NotFound
         
     | 
| 
      
 189 
     | 
    
         
            +
                  @logger.warn 'No such snapshot: ' << name
         
     | 
| 
       178 
190 
     | 
    
         
             
                end
         
     | 
| 
       179 
191 
     | 
    
         | 
| 
       180 
192 
     | 
    
         
             
                def state
         
     | 
| 
         @@ -267,6 +279,10 @@ module VagrantLXD 
     | 
|
| 
       267 
279 
     | 
    
         | 
| 
       268 
280 
     | 
    
         
             
              private
         
     | 
| 
       269 
281 
     | 
    
         | 
| 
      
 282 
     | 
    
         
            +
                def machine_id
         
     | 
| 
      
 283 
     | 
    
         
            +
                  @machine.id
         
     | 
| 
      
 284 
     | 
    
         
            +
                end
         
     | 
| 
      
 285 
     | 
    
         
            +
             
     | 
| 
       270 
286 
     | 
    
         
             
                def delete_container
         
     | 
| 
       271 
287 
     | 
    
         
             
                  @lxd.delete_container(machine_id)
         
     | 
| 
       272 
288 
     | 
    
         
             
                rescue Hyperkit::NotFound
         
     | 
| 
         @@ -281,6 +297,15 @@ module VagrantLXD 
     | 
|
| 
       281 
297 
     | 
    
         
             
                  @logger.error "Unable to delete image for '#{machine_id}'"
         
     | 
| 
       282 
298 
     | 
    
         
             
                end
         
     | 
| 
       283 
299 
     | 
    
         | 
| 
      
 300 
     | 
    
         
            +
                # Hyperkit doesn't handle socket read timeouts even when auto_sync
         
     | 
| 
      
 301 
     | 
    
         
            +
                # is enabled or setting sync: true. TODO Upstream a better fix than
         
     | 
| 
      
 302 
     | 
    
         
            +
                # this, so that `wait_for_operation` really does.
         
     | 
| 
      
 303 
     | 
    
         
            +
                def wait_for_operation(operation)
         
     | 
| 
      
 304 
     | 
    
         
            +
                  @lxd.wait_for_operation(operation.id)
         
     | 
| 
      
 305 
     | 
    
         
            +
                rescue Faraday::TimeoutError
         
     | 
| 
      
 306 
     | 
    
         
            +
                  retry
         
     | 
| 
      
 307 
     | 
    
         
            +
                end
         
     | 
| 
      
 308 
     | 
    
         
            +
             
     | 
| 
       284 
309 
     | 
    
         
             
                def container
         
     | 
| 
       285 
310 
     | 
    
         
             
                  @lxd.container(machine_id)
         
     | 
| 
       286 
311 
     | 
    
         
             
                end
         
     | 
| 
         @@ -301,10 +326,6 @@ module VagrantLXD 
     | 
|
| 
       301 
326 
     | 
    
         
             
                  true
         
     | 
| 
       302 
327 
     | 
    
         
             
                end
         
     | 
| 
       303 
328 
     | 
    
         | 
| 
       304 
     | 
    
         
            -
                def machine_id
         
     | 
| 
       305 
     | 
    
         
            -
                  @machine.id
         
     | 
| 
       306 
     | 
    
         
            -
                end
         
     | 
| 
       307 
     | 
    
         
            -
             
     | 
| 
       308 
329 
     | 
    
         
             
                def generate_machine_id
         
     | 
| 
       309 
330 
     | 
    
         
             
                  @name || begin
         
     | 
| 
       310 
331 
     | 
    
         
             
                    id = "vagrant-#{File.basename(Dir.pwd)}-#{@machine.name}-#{SecureRandom.hex(8)}"
         
     | 
    
        data/lib/vagrant-lxd/version.rb
    CHANGED
    
    
    
        data/templates/locales/en.yml
    CHANGED
    
    | 
         @@ -12,6 +12,8 @@ en: 
     | 
|
| 
       12 
12 
     | 
    
         
             
                actions:
         
     | 
| 
       13 
13 
     | 
    
         
             
                  vm:
         
     | 
| 
       14 
14 
     | 
    
         
             
                    snapshot:
         
     | 
| 
      
 15 
     | 
    
         
            +
                      not_found: |-
         
     | 
| 
      
 16 
     | 
    
         
            +
                        The machine has no snapshot named '%{name}'.
         
     | 
| 
       15 
17 
     | 
    
         
             
                      restored: |-
         
     | 
| 
       16 
18 
     | 
    
         
             
                        The machine has been restored to snapshot '%{name}'!
         
     | 
| 
       17 
19 
     | 
    
         
             
                errors:
         
     | 
| 
         @@ -96,15 +98,24 @@ en: 
     | 
|
| 
       96 
98 
     | 
    
         
             
                    A machine can only be associated with one container at a time.
         
     | 
| 
       97 
99 
     | 
    
         | 
| 
       98 
100 
     | 
    
         
             
                    To attach '%{machine_name}' to '%{container}', you must first
         
     | 
| 
       99 
     | 
    
         
            -
                    detach it from its current container using `vagrant lxd detach 
     | 
| 
      
 101 
     | 
    
         
            +
                    detach it from its current container using `vagrant lxd detach`
         
     | 
| 
      
 102 
     | 
    
         
            +
                    or pass `--force` to force attachment.
         
     | 
| 
       100 
103 
     | 
    
         | 
| 
       101 
104 
     | 
    
         
             
                  lxd_container_not_found: |-
         
     | 
| 
       102 
105 
     | 
    
         
             
                    The requested container '%{container}' doesn't exist.
         
     | 
| 
       103 
106 
     | 
    
         | 
| 
      
 107 
     | 
    
         
            +
                    You will need to create this container first, either by using the
         
     | 
| 
      
 108 
     | 
    
         
            +
                    `lxc launch` command or by setting the VM's `lxd.name` in its LXD
         
     | 
| 
      
 109 
     | 
    
         
            +
                    provider configuration and running `vagrant up %{machine_name}`.
         
     | 
| 
      
 110 
     | 
    
         
            +
                    
         
     | 
| 
       104 
111 
     | 
    
         
             
                    You can list available containers with the `lxc list` command.
         
     | 
| 
      
 112 
     | 
    
         
            +
                    
         
     | 
| 
       105 
113 
     | 
    
         
             
                  lxd_container_already_exists: |-
         
     | 
| 
       106 
114 
     | 
    
         
             
                    A container with the name '%{container}' already exists.
         
     | 
| 
       107 
115 
     | 
    
         | 
| 
       108 
116 
     | 
    
         
             
                    You will either need to delete this container and try again, or attach
         
     | 
| 
       109 
117 
     | 
    
         
             
                    the VM to it with `vagrant lxd attach %{machine_name} %{container}`.
         
     | 
| 
       110 
118 
     | 
    
         | 
| 
      
 119 
     | 
    
         
            +
                  snapshot_not_found: |-
         
     | 
| 
      
 120 
     | 
    
         
            +
                    The snapshot name `%{snapshot_name}` was not found for the
         
     | 
| 
      
 121 
     | 
    
         
            +
                    virtual machine `%{machine}`.
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: vagrant-lxd
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Evan Hanson
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2017- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2017-11-21 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: hyperkit
         
     | 
| 
         @@ -37,6 +37,7 @@ files: 
     | 
|
| 
       37 
37 
     | 
    
         
             
            - LICENSE.md
         
     | 
| 
       38 
38 
     | 
    
         
             
            - README.md
         
     | 
| 
       39 
39 
     | 
    
         
             
            - Rakefile
         
     | 
| 
      
 40 
     | 
    
         
            +
            - doc/setting-up-lxd.md
         
     | 
| 
       40 
41 
     | 
    
         
             
            - lib/vagrant-lxd.rb
         
     | 
| 
       41 
42 
     | 
    
         
             
            - lib/vagrant-lxd/action.rb
         
     | 
| 
       42 
43 
     | 
    
         
             
            - lib/vagrant-lxd/capability.rb
         
     |