Feature #200

Image Repository

Added by Ruben S. Montero over 11 years ago. Updated almost 11 years ago.

Status:ClosedStart date:03/04/2010
Priority:NormalDue date:
Assignee:Tino Vázquez% Done:

100%

Category:Core & System
Target version:Release 2.0
Resolution: Pull request:

Description

The images for VM's disks are defined with the SOURCE attribute of the DISK template variable. This SOURCE is a URL, usually a file or a logical volume device, which is subsequently handled by the Transfer Manager. This generic approach has some drawbacks:

  • The user has to define (and have to be aware of) the rest of the DISK attributes. For example the target device for the DISK.
  • Files are handled by OpenNebula using the oneadmin identity. This makes difficult to enforce access policies for the images (e.g. define ACLs)

This campaign aims to develop an image repository for OpenNebula, description:

  • The image repository will keep a logical mapping a high level description of an image disk and its physical location and configuration parameters. Example
    "Ubuntu Karmic" --> /srv/cloud/images/ubuntu.img, file, sda1
    "Windows Installation Disk" --> /srv/cloud/isos/winxp.iso, cdrom, hdb
    
  • Each image can have an ACL defined. So OpenNebula can enforce access policies to a given image
  • VM DISKS can be defined using the repository either by its description or using an ID, example:
      NAME=my_vm
      CPU = 1
      MEMORY = 128
      DISK = [ IMAGE="Ubuntu Karmic" ]
      NIC  = [ NETWORK="Public" ]
    

    The DISK Attribute will be translated by OpenNebula to
      DISK = [ SOURCE = "/srv/cloud/images/ubuntu.img", CLONE="yes", TARGET="sda1" ] 
    

    Users can override the repository values. Obviously, the use of the image repository is optional.
  • The repository functionality will be exposed by the XML-RPC interface. A new CLI command onestorage and OCA bindings will be developed.

Associated revisions

Revision 9cf8af1c
Added by Carlos Martín about 11 years ago

feature #200: More code for Image Pool

Revision 484013d9
Added by Tino Vázquez about 11 years ago

feature-#200: Polishing ImagePool classes

Revision 6b320815
Added by Constantino Vázquez Blanco and Carlos Martín about 11 years ago

feature-#200: Finishing image pool

Revision b7aa8e14
Added by Constantino Vázquez Blanco and Carlos Martín about 11 years ago

feature-#200: Added to SConstruct

Revision 4e2c544c
Added by Tino Vazquez and Carlos Martin about 11 years ago

feature #200: Source path generation fixed, and removed target attribute.

Revision 2b14a20a
Added by Tino Vazquez and Carlos Martin about 11 years ago

feature #200: Description and bus type columns removed for Image elements.

Revision 6f631907
Added by Tino Vazquez and Carlos Martin about 11 years ago

feature #200: Insert, replace and remove methods for Image update the DB immediately.

Revision 46b6bedb
Added by Tino Vazquez and Carlos Martin about 11 years ago

feature #200: Added Unit Tests for image pool

Revision 32ee8966
Added by Carlos Martín about 11 years ago

feature #200: Image pool table definition changed to be compatible with both MySQL and Sqlite.

Revision 42e1994a
Added by Carlos Martín about 11 years ago

feature #200: Specific tests for image pool

Revision d2dea176
Added by Tino Vázquez about 11 years ago

feature #200: Removing unnecesary line

Revision c1663187
Added by Carlos Martín about 11 years ago

feature #200: Images can now modify a DISK attribute vector to include correct BUS and TARGET.

Revision 8035bd5c
Added by Carlos Martín about 11 years ago

feature #200: Fixed default type check.

Revision 1e6e2803
Added by Carlos Martín about 11 years ago

feature #192 & #200: Added tests for ImagePool.

Revision 2cb9de48
Added by Carlos Martín about 11 years ago

feature #200: Image's get_disk_attribute now adds SOURCE attribute as well.

Revision 9fe40f27
Added by Carlos Martín about 11 years ago

feature #200: ImagePool's contructor changed to load existing images from the DB.

Revision 2ff230cd
Added by Carlos Martín about 11 years ago

feature #200: New erase method for Template class: removes and frees attributes with the given name.

Revision e5f8b4d2
Added by Tino Vázquez about 11 years ago

feature #200: Fixed bad comment

Revision 75cd62bc
Added by Tino Vázquez about 11 years ago

feature #200: Preparing RM for Image methods

Revision f41a74cd
Added by Tino Vázquez about 11 years ago

feature #200: Initial integration of ImagePool

Revision d1e3eb66
Added by Tino Vázquez about 11 years ago

feature #200: Added Image Info method to Request Manager

Revision 328f3efc
Added by Tino Vázquez about 11 years ago

feature #200: Added ImageAllocate method to RM

Revision 6580699f
Added by Constantino Vazquez and Carlos Martin about 11 years ago

feature #200: Added ImagePoolInfo method to RM

Revision 9b8862eb
Added by Carlos Martín about 11 years ago

feature #200: Public attribute moved to main image sql table.

Revision 3527189f
Added by Carlos Martín about 11 years ago

feature #200: Changed ImagePool Info method to be consistent with other pools.

Revision 1a956aa3
Added by Tino Vázquez about 11 years ago

feature #200: Making ImageInfo aware of the Public attribute

Revision 9ca75314
Added by Tino Vázquez about 11 years ago

feature #200: Added Image Delete RM method

Revision b8de2901
Added by Tino Vázquez about 11 years ago

feature #200: Addde Image Update method

Revision 151b73e6
Added by Carlos Martín about 11 years ago

features #200 & #253: Default public attribute removed.

Revision 5ddee46c
Added by Carlos Martín about 11 years ago

feature #200: PUBLIC attribute changed from TEXT to INTEGER.

Revision 5623814f
Added by Tino Vázquez about 11 years ago

feature #200: Fixed public attribute wrong type (from string to int)

Revision 06657604
Added by Tino Vázquez about 11 years ago

feature #200: Update image in DB after modifying attribute

Revision 4d3a736d
Added by Carlos Martín about 11 years ago

features #253 & #200: Public attribute can be now defined in downcase.

Revision 04e4e013
Added by Tino Vázquez about 11 years ago

feature #200: Added OCA methods

Revision 403fd524
Added by Tino Vázquez about 11 years ago

feature #200: Added states and type to Image OCA

Revision d6c547a3
Added by Tino Vázquez about 11 years ago

feature #200: Initial commit of "oneimage" command

Revision e38764e7
Added by Tino Vázquez about 11 years ago

feature #200: Fix troublesome deadlock

Revision ffd05b42
Added by Tino Vázquez about 11 years ago

feature #200: Addded username to Image dump

Revision 4bd2506f
Added by Tino Vázquez about 11 years ago

feature #200: Finishing the CLI

Revision 3fd53cc4
Added by Tino Vázquez about 11 years ago

feature #200: New states for Images and associated life-cycle functions

Revision 09adf06c
Added by Tino Vázquez about 11 years ago

feature #200: Disable/Enable methods for the Image Class

Revision 1c9e70dd
Added by Tino Vázquez about 11 years ago

feature #200: New enable/publish methods, changed ImagePool interface for modifying template attributes.

Revision 11fbfb56
Added by Ruben S. Montero about 11 years ago

feature #200: Generate Disk attributes with the ImagePool metadata

Revision f718cd31
Added by Tino Vázquez about 11 years ago

feature #200: Adding enable, publish & remove attribute for images to RM

Revision 6275e1d8
Added by Tino Vázquez about 11 years ago

feature #200: Removed unused tag

Revision 67d8cea1
Added by Ruben S. Montero about 11 years ago

feature #200: ImagePool allocate and disk_attribute methods.

Revision a82b9d1a
Added by Tino Vázquez about 11 years ago

feature #200: Some fixes for Image RM

Revision a78b61c6
Added by Ruben S. Montero about 11 years ago

feature #200: fix some tests

Revision c18491ce
Added by Tino Vázquez about 11 years ago

feature #200: Added enable, publish & remove attribute to Image OCA

Revision 476f26fb
Added by Ruben S. Montero about 11 years ago

feature #200: Added the IID to the DISK attribute

Revision 694685a9
Added by Ruben S. Montero about 11 years ago

feature #200: Disks attribute generation includes image acquire.

Revision cacbe7bf
Added by Ruben S. Montero about 11 years ago

feature #200: Integrates ImagePool and VirtualMachinePool. Now you can requests Images from VM templates!

Revision 1ff13839
Added by Ruben S. Montero about 11 years ago

feature #200: install Image files for OCA

Revision 6a91d89b
Added by Ruben S. Montero about 11 years ago

feature #200: Also installs oneimage

Revision 82661109
Added by Tino Vázquez about 11 years ago

feature #200: Adding new Image funcionality to the CLI

Revision 774c8e0d
Added by Ruben S. Montero about 11 years ago

feature #200: spaces in oned.conf

Revision 1eed13a4
Added by Ruben S. Montero about 11 years ago

feature #200: Release acquired images

Revision 076a8eaa
Added by Tino Vázquez about 11 years ago

feature #200: Useless breaks in oneimage

Revision ba2d15f7
Added by Ruben S. Montero about 11 years ago

feature #200: Fixed some minor bugs

Revision 68bd4279
Added by Ruben S. Montero about 11 years ago

feature #200: Fixed the tests.

Revision 6c854936
Added by Ruben S. Montero about 11 years ago

feature #200: Images are set DISABLED upon creation (and not INIT). DISABLED names for oneimage

Revision cab2a206
Added by Ruben S. Montero about 11 years ago

feature #200: enable images to get disk attributes

Revision 63c9375e
Added by Ruben S. Montero about 11 years ago

feature #200: one_auth file to setup a user pool for the ImagePool tests

Revision b3466572
Added by Tino Vázquez about 11 years ago

feature #200: Some minor fixes

Revision 44cdd342
Added by Tino Vázquez about 11 years ago

feature #200: Added copy to repository feature to oneimage

Revision eb4bb13d
Added by Tino Vázquez about 11 years ago

feature #200: Added publish method to virtual network

Revision a55391ec
Added by Tino Vázquez about 11 years ago

feature #200: Fix bug in copy control of oneimage

Revision b3fd7ef2
Added by Tino Vázquez about 11 years ago

feature #200: Adding VN publish/unpublish methods

Revision cc6060ea
Added by Tino Vázquez about 11 years ago

feature #200: Adding missing RM file

Revision f8df7cb5
Added by Carlos Martín about 11 years ago

feature #200: Image initialization code refactor

Revision 5955da4d
Added by Carlos Martín about 11 years ago

feature #192 & #200 : New test for Image::disk_attribute

Revision 85fd79c0
Added by Ruben S. Montero about 11 years ago

feature #200: Slight modification of configuration attributes for the pool

Revision 57dd98bf
Added by Tino Vázquez about 11 years ago

feature #200: Image update should not update the template

Revision ac3b3776
Added by Tino Vázquez about 11 years ago

feature #200: Finising the Virtual Network publish functionality

Revision 23041aa1
Added by Carlos Martín about 11 years ago

feature #200: Erase PUBLIC attribute from image template.

Revision ef13e81e
Added by Tino Vázquez about 11 years ago

feature #200: Remove selecting max oid from template SQL

Revision 6478abca
Added by Tino Vázquez about 11 years ago

feature #200: Adding missing unlocks for RM managed objects

Revision 5cb829cd
Added by Tino Vázquez about 11 years ago

feature #200: Removing unneeded callbacks from TemplateSQL

Revision 66697573
Added by Tino Vázquez about 11 years ago

feature #200: Now VirtualMachine uses the same OID for VM and its templates

Revision cf28a511
Added by Jaime Melis about 11 years ago

feature #200: fixed bugs in image hook

Revision fa5684c8
Added by Ruben S. Montero about 11 years ago

feature #200:Fix tests

Revision 334ad65c
Added by Ruben S. Montero about 11 years ago

feature #200: Homogenous insert/allocate methods

Revision fecfa93c
Added by Tino Vázquez about 11 years ago

feature #200: Polishing the oneimage CLI

Revision df3eeb8f
Added by Tino Vázquez about 11 years ago

feature #200: Added support for empty datablocks

Revision 9dd9ee4a
Added by Tino Vázquez about 11 years ago

feature #200: Correcting wrong error hadling

Revision 8a9d39a8
Added by Ruben S. Montero about 11 years ago

feature #200: Prevents dead-lock and removes some blank lines

Revision 6ab7f3e1
Added by Tino Vázquez about 11 years ago

feature #200: Auth for VirtualNetworks

Revision 0ed4a668
Added by Daniel Molina almost 11 years ago

feature #200 Added ImageManager for Image management in OCA

Revision 83454dfb
Added by Ruben S. Montero almost 11 years ago

feature #200: Minor modifications to ImageManager class

Revision c612987a
Added by Daniel Molina almost 11 years ago

feature #200 Added ImageManager for Image management in OCA

Revision 8e310a86
Added by Ruben S. Montero almost 11 years ago

Applied in wrong branch
Revert "feature #200 Added ImageManager for Image management in OCA"

This reverts commit c612987ada52530c13b1f70886cd55c0d1b53fa0.

Revision c0149a5b
Added by Daniel Molina almost 11 years ago

feature #200 Changed OCCI XML Representation

Revision 478d5b3b
Added by Daniel Molina almost 11 years ago

feature #200 Fixed minor Errors in OCCI

Revision 632f7957
Added by Daniel Molina almost 11 years ago

feature #200 Show more information in OCCI resources

Revision 9f5a24e9
Added by Daniel Molina almost 11 years ago

feature #200 EC2 using ImagePool

Revision d89cc916
Added by Ruben S. Montero almost 11 years ago

feature #200: Image now uses fileutils instead of ftools

Revision 7b41a7c1
Added by Ruben S. Montero almost 11 years ago

feature #200: get rid of unneeded variables in config file

Revision bb4939fb
Added by Ruben S. Montero almost 11 years ago

feature #200: removed uneeded print messages

Revision e3b9eb63
Added by Ruben S. Montero almost 11 years ago

feature #200: Better XML parsing

Revision 32e10685
Added by Ruben S. Montero almost 11 years ago

feature #200: Better XML parsing for ImageOCCI

Revision 1078c304
Added by Ruben S. Montero almost 11 years ago

feature #200: Examples for the OCCI service

Revision 64560518
Added by Ruben S. Montero almost 11 years ago

feature #200: Removed unneeded rm component for cloud servers

Revision 95d0cf78
Added by Ruben S. Montero almost 11 years ago

feature #200: rm is no longer installed

Revision a6edd248
Added by Ruben S. Montero almost 11 years ago

feature #200: Get rid of Crack library for OCCI. OCCI now uses OpenNebula authorization mechanisms

Revision 79432c7b
Added by Ruben S. Montero almost 11 years ago

feature #200: restored get_user for the EC2 Server

Revision 572e83aa
Added by Ruben S. Montero almost 11 years ago

feature #200: Image Repository Integration for EC2 query

Revision 3b536928
Added by Ruben S. Montero almost 11 years ago

feature #200: Some work on the cloud servers

Revision 33b35e59
Added by Ruben S. Montero almost 11 years ago

feature #200: Removed unneeded attribute variables

Revision 4075bd89
Added by Daniel Molina almost 11 years ago

feature #200 Changes in EC2

Revision 5f70d69b
Added by Daniel Molina almost 11 years ago

feature #200 Delete upcase from XMLUtils and XMLElement and XMLPool for Pool

Revision fe0e6927
Added by Daniel Molina almost 11 years ago

feature #200 Changes in OCCI

Revision 923294c2
Added by Ruben S. Montero almost 11 years ago

feature #200: XMLUtil class hierarchy

Revision 10bfc260
Added by Daniel Molina almost 11 years ago

feature #200 Fixed error in PoolElement []

Revision 104387a7
Added by Daniel Molina almost 11 years ago

feature #200 Fixed uppercase paths in xml

Revision 6ffad9cd
Added by Ruben S. Montero almost 11 years ago

feature #200: Fix uppercase XPATH variables

Revision 2eafe518
Added by Ruben S. Montero almost 11 years ago

feature #200: Added default DISK_ID, simplified states

Revision 81e0a4e8
Added by Ruben S. Montero almost 11 years ago

feature #200: Fix CLONE and SAVE attributes for the image pool

Revision 007f5f6b
Added by Carlos Martín almost 11 years ago

feature #200: XML-RPC method for saving images while a VM is executing.

Revision 53f05884
Added by Carlos Martín almost 11 years ago

feature #200: RM Class for saving disks.

Revision 9c36c7f6
Added by Abel Coronado over 4 years ago

Changed the buttons style in 'Role Affinity' (#200)

History

#1 Updated by Gyula Csom about 11 years ago

Hi!

In our environment we'd like to let users to upload their SSH keys, customization scripts, etc. generally speaking to upload any file they want to use in order to contextualize their VMs. My question are the following. Will the new image repository target end users, eg. exposed thru the OCCI interface too? Especially will the new functionality target the above use case or just cover images? Is their any plan in this regard?

Cheers,
Gyula

Ps.: As far as I see there's nothing that would prevent users from uploading any file thru OCCI by using the image upload method already built into ONE. It could be an image or anything else they want. So technically speaking it seems that we can provide the above functionality (with the appropiate conventions and ERB templates). However it would be useful to provide some metadata support, too, eg. to let users to describe the files they uploaded.

#2 Updated by Ruben S. Montero about 11 years ago

Gyula Csom wrote:

My question are the following. Will the new image repository target end users, eg. exposed thru the OCCI interface too?

Yes our plan is to expose this through OCCI/EC2

Especially will the new functionality target the above use case or just cover images?

Initially we will target VM images

Is their any plan in this regard?

As a follow up development we will address this!

Cheers

#3 Updated by Ruben S. Montero about 11 years ago

  • Status changed from New to Assigned
  • Assignee changed from Javi Fontan to Tino Vázquez

#4 Updated by Carlos Martín about 11 years ago

A quick comment on features that would be worth considering in next releases:
Right now, images contain the data and the necessary attributes to mount them as VM disks.

For OS type images, it would be nice to have also attributes for MEMORY, CPU, and BOOT sections of the VM template. This way, a user could decide to use an OS available in the repository with a simple template, like this one:

  NAME     = "My VM" 
  OS_IMAGE = "Ubuntu desktop" 
  DISK     = "Accounts" 

#5 Updated by Gyula Csom about 11 years ago

I agree:)
In our system (currently) we define similar metaadatas for (OS) images:

  • PATH
  • SIZE (optional)
  • OS_TYPE, OS_VERSION
  • ARCHITECTURE
  • DESC

so a sample image "template" might look like this:

PATH=iscsi://storage.sample.com/iqn.2010-07.com.sample:1111/0 
SIZE="20 G" 
OS_TYPE=Ubuntu
OS_VERSION=9
ARCHITECTURE=x86
DESC="Ubuntu server customized for webservers" 

Now the user can choose the image by the various metadatas available and can link it to the VM template...

Cheers,
Gyula

#6 Updated by Daniel Molina almost 11 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100

Also available in: Atom PDF