Return-Path: X-Original-To: apmail-deltacloud-dev-archive@www.apache.org Delivered-To: apmail-deltacloud-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 79F2DEE19 for ; Wed, 16 Jan 2013 11:59:12 +0000 (UTC) Received: (qmail 45493 invoked by uid 500); 16 Jan 2013 11:59:12 -0000 Delivered-To: apmail-deltacloud-dev-archive@deltacloud.apache.org Received: (qmail 45480 invoked by uid 500); 16 Jan 2013 11:59:12 -0000 Mailing-List: contact dev-help@deltacloud.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@deltacloud.apache.org Delivered-To: mailing list dev@deltacloud.apache.org Received: (qmail 45353 invoked by uid 99); 16 Jan 2013 11:59:11 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 16 Jan 2013 11:59:11 +0000 X-ASF-Spam-Status: No, hits=-5.0 required=5.0 tests=RCVD_IN_DNSWL_HI,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of mfojtik@redhat.com designates 209.132.183.28 as permitted sender) Received: from [209.132.183.28] (HELO mx1.redhat.com) (209.132.183.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 16 Jan 2013 11:59:05 +0000 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r0GBwi7t022435 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 16 Jan 2013 06:58:45 -0500 Received: from boosh.local.com (dhcp-29-241.brq.redhat.com [10.34.29.241]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id r0GBwfeB012082 for ; Wed, 16 Jan 2013 06:58:44 -0500 From: mfojtik@redhat.com To: dev@deltacloud.apache.org Subject: [PATCH core 2/8] CIMI: Migrated database models to use Sequel Date: Wed, 16 Jan 2013 12:58:27 +0100 Message-Id: <1358337513-1997-3-git-send-email-mfojtik@redhat.com> In-Reply-To: <1358337513-1997-1-git-send-email-mfojtik@redhat.com> References: <1358337513-1997-1-git-send-email-mfojtik@redhat.com> X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12 X-Virus-Checked: Checked by ClamAV on apache.org From: Michal Fojtik Signed-off-by: Michal fojtik --- server/lib/db/address_template.rb | 10 --------- server/lib/db/entity.rb | 25 +++++---------------- server/lib/db/machine_template.rb | 5 ----- server/lib/db/provider.rb | 41 +++++------------------------------ server/lib/db/volume_configuration.rb | 4 ---- server/lib/db/volume_template.rb | 4 ---- 6 files changed, 11 insertions(+), 78 deletions(-) diff --git a/server/lib/db/address_template.rb b/server/lib/db/address_template.rb index 5a08346..8586255 100644 --- a/server/lib/db/address_template.rb +++ b/server/lib/db/address_template.rb @@ -2,16 +2,6 @@ module Deltacloud module Database class AddressTemplate < Entity - belongs_to :provider - - property :ip, String - property :hostname, String - property :allocation, String, :default => 'dynamic' - property :default_gateway, String, :default => 'unknown' - property :dns, String, :default => 'unknown' - property :protocol, String, :default => 'ipv4' - property :mask, String, :default => 'unknown' - property :network, String end end diff --git a/server/lib/db/entity.rb b/server/lib/db/entity.rb index f9b34ff..963a26b 100644 --- a/server/lib/db/entity.rb +++ b/server/lib/db/entity.rb @@ -1,33 +1,18 @@ module Deltacloud module Database - class BaseEntity - include DataMapper::Resource + class Entity < Sequel::Model - belongs_to :provider + many_to_one :provider - property :id, Serial - property :type, Discriminator - - property :be_kind, String, :required => true # => Machine, MachineImage, ... - property :be_id, String # => Original Machine 'id' - - timestamps :created_at, :updated_on - end - - class Entity < BaseEntity - - belongs_to :provider - - property :name, String - property :description, String - property :ent_properties, Json + plugin :single_table_inheritance, :model + plugin :timestamps, :create => :created_at def to_hash retval = {} retval.merge!(:name => self.name) if !self.name.nil? retval.merge!(:description => self.description) if !self.description.nil? - retval.merge!(:property => self.ent_properties) if !self.ent_properties.nil? + retval.merge!(:property => JSON::parse(self.ent_properties)) if !self.ent_properties.nil? retval end diff --git a/server/lib/db/machine_template.rb b/server/lib/db/machine_template.rb index 134eb23..1b34161 100644 --- a/server/lib/db/machine_template.rb +++ b/server/lib/db/machine_template.rb @@ -2,11 +2,6 @@ module Deltacloud module Database class MachineTemplate < Entity - belongs_to :provider - - property :machine_config, String, :length => 255 - property :machine_image, String, :length => 255 - end end diff --git a/server/lib/db/provider.rb b/server/lib/db/provider.rb index e8ca4f5..c0b8485 100644 --- a/server/lib/db/provider.rb +++ b/server/lib/db/provider.rb @@ -1,41 +1,12 @@ module Deltacloud module Database - class Provider - include DataMapper::Resource - - property :id, Serial - property :driver, String, :required => true - property :url, Text - - has n, :entities - has n, :machine_templates - has n, :address_templates - has n, :volume_configurations - has n, :volume_templates - - # This is a workaround for strange bug in Fedora MRI: - # - def machine_templates - MachineTemplate.all(:provider_id => self.id) - end - - def address_templates - AddressTemplate.all(:provider_id => self.id) - end - - def volume_configurations - VolumeConfiguration.all(:provider_id => self.id) - end - - def volume_templates - VolumeTemplate.all(:provider_id => self.id) - end - - def entities - Entity.all(:provider_id => self.id) - end - + class Provider < Sequel::Model + one_to_many :entities + one_to_many :machine_templates + one_to_many :address_templates + one_to_many :volume_templates + one_to_many :volume_configurations end end diff --git a/server/lib/db/volume_configuration.rb b/server/lib/db/volume_configuration.rb index 58aa624..aa956ce 100644 --- a/server/lib/db/volume_configuration.rb +++ b/server/lib/db/volume_configuration.rb @@ -2,10 +2,6 @@ module Deltacloud module Database class VolumeConfiguration < Entity - belongs_to :provider - - property :format, String - property :capacity, String end end diff --git a/server/lib/db/volume_template.rb b/server/lib/db/volume_template.rb index 8658b8b..0d876bf 100644 --- a/server/lib/db/volume_template.rb +++ b/server/lib/db/volume_template.rb @@ -2,10 +2,6 @@ module Deltacloud module Database class VolumeTemplate < Entity - belongs_to :provider - - property :volume_config, String - property :volume_image, String end end -- 1.8.0.2