<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Class: Deltacloud::BaseDriver</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" /> <script type="text/javascript"> // <![CDATA[ function popupCode( url ) { window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400") } function toggleCode( id ) { if ( document.getElementById ) elem = document.getElementById( id ); else if ( document.all ) elem = eval( "document.all." + id ); else return false; elemStyle = elem.style; if ( elemStyle.display != "block" ) { elemStyle.display = "block" } else { elemStyle.display = "none" } return true; } // Make codeblocks hidden by default document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" ) // ]]> </script> </head> <body> <div id="classHeader"> <table class="header-table"> <tr class="top-aligned-row"> <td><strong>Class</strong></td> <td class="class-name-in-header">Deltacloud::BaseDriver</td> </tr> <tr class="top-aligned-row"> <td><strong>In:</strong></td> <td> <a href="../../files/lib/deltacloud/base_driver/features_rb.html"> lib/deltacloud/base_driver/features.rb </a> <br /> <a href="../../files/lib/deltacloud/base_driver/base_driver_rb.html"> lib/deltacloud/base_driver/base_driver.rb </a> <br /> </td> </tr> <tr class="top-aligned-row"> <td><strong>Parent:</strong></td> <td> Object </td> </tr> </table> </div> <!-- banner header --> <div id="bodyContent"> <div id="contextContent"> </div> <div id="method-list"> <h3 class="section-bar">Methods</h3> <div class="name-list"> <a href="#M000661">api_provider</a> <a href="#M000653">blob</a> <a href="#M000652">bucket</a> <a href="#M000660">catched_exceptions_list</a> <a href="#M000631">declare_feature</a> <a href="#M000637">define_hardware_profile</a> <a href="#M000643">define_instance_states</a> <a href="#M000636">exceptions</a> <a href="#M000633">feature</a> <a href="#M000630">feature_decl_for</a> <a href="#M000629">feature_decls</a> <a href="#M000632">features</a> <a href="#M000634">features</a> <a href="#M000635">features_for_operation</a> <a href="#M000641">filter_hardware_profiles</a> <a href="#M000657">filter_on</a> <a href="#M000642">find_hardware_profile</a> <a href="#M000655">firewall</a> <a href="#M000640">hardware_profile</a> <a href="#M000638">hardware_profiles</a> <a href="#M000639">hardware_profiles</a> <a href="#M000656">has_capability?</a> <a href="#M000659">has_collection?</a> <a href="#M000648">image</a> <a href="#M000649">instance</a> <a href="#M000646">instance_actions_for</a> <a href="#M000644">instance_state_machine</a> <a href="#M000645">instance_state_machine</a> <a href="#M000654">key</a> <a href="#M000647">realm</a> <a href="#M000651">storage_snapshot</a> <a href="#M000650">storage_volume</a> <a href="#M000658">supported_collections</a> </div> </div> </div> <!-- if includes --> <div id="includes"> <h3 class="section-bar">Included Modules</h3> <div id="includes-list"> <span class="include-name"><a href="ExceptionHandler.html">ExceptionHandler</a></span> </div> </div> <div id="section"> <div id="class-list"> <h3 class="section-bar">Classes and Modules</h3> Class <a href="BaseDriver/Feature.html" class="link">Deltacloud::BaseDriver::Feature</a><br /> Class <a href="BaseDriver/FeatureDecl.html" class="link">Deltacloud::BaseDriver::FeatureDecl</a><br /> Class <a href="BaseDriver/Operation.html" class="link">Deltacloud::BaseDriver::Operation</a><br /> </div> <div id="constants-list"> <h3 class="section-bar">Constants</h3> <div class="name-list"> <table summary="Constants"> <tr class="top-aligned-row context-row"> <td class="context-item-name">MEMBER_SHOW_METHODS</td> <td>=</td> <td class="context-item-value">[ :realm, :image, :instance, :storage_volume, :bucket, :blob, :key, :firewall ]</td> </tr> </table> </div> </div> <!-- if method_list --> <div id="methods"> <h3 class="section-bar">Public Class methods</h3> <div id="method-M000631" class="method-detail"> <a name="M000631"></a> <div class="method-heading"> <a href="BaseDriver.src/M000631.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000631.html');return false;"> <span class="method-name">declare_feature</span><span class="method-args">(collection, name, &block)</span> </a> </div> <div class="method-description"> <p> Declare a new <a href="BaseDriver.html#M000633">feature</a> </p> </div> </div> <div id="method-M000637" class="method-detail"> <a name="M000637"></a> <div class="method-heading"> <a href="BaseDriver.src/M000637.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000637.html');return false;"> <span class="method-name">define_hardware_profile</span><span class="method-args">(name,&block)</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000643" class="method-detail"> <a name="M000643"></a> <div class="method-heading"> <a href="BaseDriver.src/M000643.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000643.html');return false;"> <span class="method-name">define_instance_states</span><span class="method-args">(&block)</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000636" class="method-detail"> <a name="M000636"></a> <div class="method-heading"> <a href="BaseDriver.src/M000636.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000636.html');return false;"> <span class="method-name">exceptions</span><span class="method-args">(&block)</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000633" class="method-detail"> <a name="M000633"></a> <div class="method-heading"> <a href="BaseDriver.src/M000633.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000633.html');return false;"> <span class="method-name">feature</span><span class="method-args">(collection, name, &block)</span> </a> </div> <div class="method-description"> <p> Declare in a driver that it supports a specific <a href="BaseDriver.html#M000633">feature</a> </p> <p> The same <a href="BaseDriver.html#M000633">feature</a> can be declared multiple times in a driver, so that it can be changed successively by passing in different blocks. </p> </div> </div> <div id="method-M000630" class="method-detail"> <a name="M000630"></a> <div class="method-heading"> <a href="BaseDriver.src/M000630.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000630.html');return false;"> <span class="method-name">feature_decl_for</span><span class="method-args">(collection, name)</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000629" class="method-detail"> <a name="M000629"></a> <div class="method-heading"> <a href="BaseDriver.src/M000629.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000629.html');return false;"> <span class="method-name">feature_decls</span><span class="method-args">()</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000632" class="method-detail"> <a name="M000632"></a> <div class="method-heading"> <a href="BaseDriver.src/M000632.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000632.html');return false;"> <span class="method-name">features</span><span class="method-args">()</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000638" class="method-detail"> <a name="M000638"></a> <div class="method-heading"> <a href="BaseDriver.src/M000638.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000638.html');return false;"> <span class="method-name">hardware_profiles</span><span class="method-args">()</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000644" class="method-detail"> <a name="M000644"></a> <div class="method-heading"> <a href="BaseDriver.src/M000644.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000644.html');return false;"> <span class="method-name">instance_state_machine</span><span class="method-args">()</span> </a> </div> <div class="method-description"> </div> </div> <h3 class="section-bar">Public Instance methods</h3> <div id="method-M000661" class="method-detail"> <a name="M000661"></a> <div class="method-heading"> <a href="BaseDriver.src/M000661.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000661.html');return false;"> <span class="method-name">api_provider</span><span class="method-args">()</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000653" class="method-detail"> <a name="M000653"></a> <div class="method-heading"> <a href="BaseDriver.src/M000653.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000653.html');return false;"> <span class="method-name">blob</span><span class="method-args">(credentials, opts = {})</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000652" class="method-detail"> <a name="M000652"></a> <div class="method-heading"> <a href="BaseDriver.src/M000652.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000652.html');return false;"> <span class="method-name">bucket</span><span class="method-args">(credentials, opts = {})</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000660" class="method-detail"> <a name="M000660"></a> <div class="method-heading"> <a href="BaseDriver.src/M000660.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000660.html');return false;"> <span class="method-name">catched_exceptions_list</span><span class="method-args">()</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000634" class="method-detail"> <a name="M000634"></a> <div class="method-heading"> <a href="BaseDriver.src/M000634.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000634.html');return false;"> <span class="method-name">features</span><span class="method-args">(collection)</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000635" class="method-detail"> <a name="M000635"></a> <div class="method-heading"> <a href="BaseDriver.src/M000635.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000635.html');return false;"> <span class="method-name">features_for_operation</span><span class="method-args">(collection, operation)</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000641" class="method-detail"> <a name="M000641"></a> <div class="method-heading"> <a href="BaseDriver.src/M000641.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000641.html');return false;"> <span class="method-name">filter_hardware_profiles</span><span class="method-args">(profiles, opts)</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000657" class="method-detail"> <a name="M000657"></a> <div class="method-heading"> <a href="BaseDriver.src/M000657.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000657.html');return false;"> <span class="method-name">filter_on</span><span class="method-args">(collection, attribute, opts)</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000642" class="method-detail"> <a name="M000642"></a> <div class="method-heading"> <a href="BaseDriver.src/M000642.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000642.html');return false;"> <span class="method-name">find_hardware_profile</span><span class="method-args">(credentials, name, image_id)</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000655" class="method-detail"> <a name="M000655"></a> <div class="method-heading"> <a href="BaseDriver.src/M000655.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000655.html');return false;"> <span class="method-name">firewall</span><span class="method-args">(credentials, opts={})</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000640" class="method-detail"> <a name="M000640"></a> <div class="method-heading"> <a href="BaseDriver.src/M000640.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000640.html');return false;"> <span class="method-name">hardware_profile</span><span class="method-args">(credentials, name)</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000639" class="method-detail"> <a name="M000639"></a> <div class="method-heading"> <a href="BaseDriver.src/M000639.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000639.html');return false;"> <span class="method-name">hardware_profiles</span><span class="method-args">(credentials, opts = nil)</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000656" class="method-detail"> <a name="M000656"></a> <div class="method-heading"> <a href="BaseDriver.src/M000656.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000656.html');return false;"> <span class="method-name">has_capability?</span><span class="method-args">(capability)</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000659" class="method-detail"> <a name="M000659"></a> <div class="method-heading"> <a href="BaseDriver.src/M000659.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000659.html');return false;"> <span class="method-name">has_collection?</span><span class="method-args">(collection)</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000648" class="method-detail"> <a name="M000648"></a> <div class="method-heading"> <a href="BaseDriver.src/M000648.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000648.html');return false;"> <span class="method-name">image</span><span class="method-args">(credentials, opts)</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000649" class="method-detail"> <a name="M000649"></a> <div class="method-heading"> <a href="BaseDriver.src/M000649.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000649.html');return false;"> <span class="method-name">instance</span><span class="method-args">(credentials, opts)</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000646" class="method-detail"> <a name="M000646"></a> <div class="method-heading"> <a href="BaseDriver.src/M000646.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000646.html');return false;"> <span class="method-name">instance_actions_for</span><span class="method-args">(state)</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000645" class="method-detail"> <a name="M000645"></a> <div class="method-heading"> <a href="BaseDriver.src/M000645.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000645.html');return false;"> <span class="method-name">instance_state_machine</span><span class="method-args">()</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000654" class="method-detail"> <a name="M000654"></a> <div class="method-heading"> <a href="BaseDriver.src/M000654.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000654.html');return false;"> <span class="method-name">key</span><span class="method-args">(credentials, opts=nil)</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000647" class="method-detail"> <a name="M000647"></a> <div class="method-heading"> <a href="BaseDriver.src/M000647.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000647.html');return false;"> <span class="method-name">realm</span><span class="method-args">(credentials, opts)</span> </a> </div> <div class="method-description"> <pre> Capabilities </pre> <p> The rabbit dsl supports declaring a capability that is required in the backend driver for the call to succeed. A driver can provide a capability by implementing the method with the same name as the capability. Below is a list of the capabilities as the expected method signatures. </p> <p> Following the capability list are the resource member show methods. They each require that the corresponding collection method be defined </p> <p> TODO: standardize all of these to the same signature (credentials, opts) </p> <p> def realms(credentials, opts=nil) </p> <p> def images(credentials, ops) </p> <p> def instances(credentials, ops) def create_instance(credentials, image_id, opts) def start_instance(credentials, id) def stop_instance(credentials, id) def reboot_instance(credentials, id) </p> <p> def storage_volumes(credentials, ops) </p> <p> def storage_snapshots(credentials, ops) </p> <p> def buckets(credentials, opts = nil) def create_bucket(credentials, name, opts=nil) def delete_bucket(credentials, name, opts=nil) </p> <p> def blobs(credentials, opts = nil) def blob_data(credentials, bucket_id, blob_id, opts) def create_blob(credentials, bucket_id, blob_id, blob_data, opts=nil) def delete_blob(credentials, bucket_id, blob_id, opts=nil) </p> <p> def keys(credentials, opts) def create_key(credentials, opts) def destroy_key(credentials, opts) </p> <p> def firewalls(credentials, opts) def create_firewall(credentials, opts) def delete_firewall(credentials, opts) def create_firewall_rule(credentials, opts) def delete_firewall_rule(credentials, opts) </p> </div> </div> <div id="method-M000651" class="method-detail"> <a name="M000651"></a> <div class="method-heading"> <a href="BaseDriver.src/M000651.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000651.html');return false;"> <span class="method-name">storage_snapshot</span><span class="method-args">(credentials, opts)</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000650" class="method-detail"> <a name="M000650"></a> <div class="method-heading"> <a href="BaseDriver.src/M000650.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000650.html');return false;"> <span class="method-name">storage_volume</span><span class="method-args">(credentials, opts)</span> </a> </div> <div class="method-description"> </div> </div> <div id="method-M000658" class="method-detail"> <a name="M000658"></a> <div class="method-heading"> <a href="BaseDriver.src/M000658.html" target="Code" class="method-signature" onclick="popupCode('BaseDriver.src/M000658.html');return false;"> <span class="method-name">supported_collections</span><span class="method-args">()</span> </a> </div> <div class="method-description"> </div> </div> </div> </div> <div id="validator-badges"> <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p> </div> </body> </html>