[PATCH 1/3] Document undocumented hard-coded 300 second timeout and default timout value.
by Steven Dake
Signed-off-by: Steven Dake <sdake(a)redhat.com>
---
man/oz-install.1 | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/man/oz-install.1 b/man/oz-install.1
index b497813..7cf0077 100644
--- a/man/oz-install.1
+++ b/man/oz-install.1
@@ -70,9 +70,14 @@ will undefine the libvirt guest with the same name or UUID and delete
the diskimage, so it should be used with caution.
.TP
.B "\-t"
-Use a timeout value of \fBtimeout\fR for installation, rather than the
-oz default. This can be useful if you know you have slower storage
-and want to wait longer for the installation to timeout.
+Terminate the installation of the guest image in \fBtimeout\fR seconds
+rather then the default of 1200 seconds. This value can be increased in the
+case of slow storage or multiple oz-install operations on the same machine
+consuming the disk bandwidth.
+
+Please note there is a separate termination action that occurs if 300 seconds
+elapses before any data is written to the VM image. This timer value is not
+configurable.
.TP
.B "\-u"
Customize the image after installation. This generally installs
--
1.7.4.4
12 years, 5 months
Stateful instances
by Alfredo Moralejo
Hi,
While testing aeolus I've found that aeolus is mainly conceived for
stateless instances (https://www.aeolusproject.org/redmine/issues/1059).
Will additional functionalities for stateful images be added in aeolus?.
I guess support for stateful instances would require:
- Differentiate between stopped and deleted (or terminated).
- Being able to re-start an stopped instance.
- Being able to delete an stopped instance (to destroy the underlying vm)
- Being able to modify an existing instance (for example, assigning a
different hardware profile)
I think statefull instances will be mainly required in private clouds
using RHEV or VMware providers, i.e.
As deltacloud support both start/stop/destroy vms, I guess this is
doable, is it in current roadmap plan?
Best regards,
Alfredo
12 years, 7 months
CLI - Formal XML Definition
by Martyn Taylor
Providing a formal deffinition of the XML for an API, makes using the API, in particular creating and maintaining client applications that utilise the API much simpler, and far clearer for a developer.
There are an array of tools that provide class generation, and automatic marshalling and unmarshalling of objects, generated straight from a formally defined XML Document, for ruby, this project looks to offer these functions: https://github.com/rubyjedi/soap4r .
In my experience writing Java and Android clients, I have found that the time spent creating an XSD or other formal XML definition, repays 10 fold in development time, and also makes keeping clients up to date alot simpler. For DC Client I ended up writing my own: https://github.com/mtaylor/deltacloud-tools/blob/master/DeltaCloudClient/...
But, I think it would be better as a whole to adopt this approach from the start. It would not only benefit the creation of the CLI but also anyone else who needs to utilise these APIs
Martyn
_______________________________________________
deltacloud-devel mailing list
deltacloud-devel(a)lists.fedorahosted.org
https://fedorahosted.org/mailman/listinfo/deltacloud-devel
12 years, 7 months
/var/lib/dbus/machine_id, imagefactory, and matahari
by Steven Dake
Currently most linux distributions that use dbus store a UUID in
/var/lib/dbus/machine_id. In our pacemaker-cloud work test tools, we
must manipulate this file via oz image creation to match a value we know
about.
Q1. Is this file freshly created on each image creation/cloning process?
If not, it should be, because Matahari uses this information to uniquely
identify a host. If it is copied exactly to each new image, that
creates a problem (all hosts appear the same to matahari).
Q2. If/when it is created by image factory, will it be stored in a
database or other storage medium?
In pacemaker-cloud we need to have a mapping from image->internal id id
so that we know which VM maps to which deployable HA configuration.
If we wait on this point until after our 1.0 release, we could end up
with a bunch of images in the field that have either the same machine id
or are not mapped in any way that allows us to provide HA functionality.
Regards
-steve
12 years, 7 months
Config server feature
by Greg Blomquist
This patch adds the ability to manage config server connections within
conductor. The concept is that a user should be able to add and manage a config
server connection for each provider account.
The overview of changes are:
* updated the provider account "show" view to allow the user to add, edit,
delete, and test a config server connection
* added config server model, controller, and views
* added spec and cucumber tests for the config server feature
12 years, 8 months
Top 5 features for next release
by Mark McLoughlin
Hey,
Chatting to Justin yesterday, I suggested we come up with a list of the
top 5 features for the next release
The idea is that these would be the features we'd concentrate on
polishing off for the release and then promote heavily in the release
announcement with demos etc.
My attempt is below. What am I missing? Any thoughts on the idea?
Cheers,
Mark.
1) New UI design!
- Complete new theme
- Design & Deploy, Monitor and Administer tabs
- Pretty View and Filter View
- Breadcrumbs
- Monitor UI
- "Launch Deployable" and deployments UI
2) RHEV-M, VMWare vSphere and CondorCloud support:
- Available as provider types in conductor
- Image build/upload support
- Audrey config server IP used to get addresses of RHEV-M VMs
3) Deployable concept:
- Launch multiple instances using a deployable definition which
lists the images to use
- Stop all the instances in a deployment in one click
4) aeolus-image CLI:
- Build an image from a template
- Push it to multiple providers
- Import an image
- List images available for use in deployables
5) Reduced complexity:
- Template creation and image building UI removed
- condor_refreshd, the condor classad plugin, warehouse sync,
image factory connector and delayed job daemons all removed
12 years, 8 months
[PATCH conductor] Added toggle buttons to faceted navigation
by jzigmund@redhat.com
---
src/app/views/deployments/_header_show.haml | 3 ---
src/app/views/deployments/show.haml | 3 +++
src/app/views/pools/_header_show.haml | 2 --
src/app/views/pools/show.haml | 3 +++
4 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/src/app/views/deployments/_header_show.haml b/src/app/views/deployments/_header_show.haml
index a6ecc9c..e64f01c 100644
--- a/src/app/views/deployments/_header_show.haml
+++ b/src/app/views/deployments/_header_show.haml
@@ -1,7 +1,4 @@
%header.page-header
%h1.deployments
= [@deployment.name, "Deployment"].join(' ')
- #obj_actions.button-container
- .button-group
- = pretty_filter_toggle(deployment_path(@deployment, :view => 'pretty'), deployment_path(@deployment, :view => 'filter'))
.corner
diff --git a/src/app/views/deployments/show.haml b/src/app/views/deployments/show.haml
index fdc6b99..f6ee34a 100644
--- a/src/app/views/deployments/show.haml
+++ b/src/app/views/deployments/show.haml
@@ -10,6 +10,9 @@
= tab[:name]
-if tab[:count]
%span.label.badge.count.dark=tab[:count]
+ #obj_actions.button-container
+ .button-group
+ = pretty_filter_toggle(deployment_path(@deployment, :view => 'pretty'), deployment_path(@deployment, :view => 'filter'))
.section-controls
%a.collapse{'href'=>'#'} Collapse
.content.collapsible.toggle-view.deployments#tab
diff --git a/src/app/views/pools/_header_show.haml b/src/app/views/pools/_header_show.haml
index 9ccb8f9..7835aa2 100644
--- a/src/app/views/pools/_header_show.haml
+++ b/src/app/views/pools/_header_show.haml
@@ -2,8 +2,6 @@
%h1.pools
= [@pool.name, "Pool"].join(' ')
#obj_actions.button-container
- .button-group
- = pretty_filter_toggle(pool_path(@pool, :view => 'pretty', :details_tab => @details_tab[:id]), pool_path(@pool, :view => 'filter', :details_tab => @details_tab[:id]))
= link_to 'New Deployment', launch_new_deployments_path(:pool_id => @pool.id), :class => 'button primary', :id => 'new_deployment_button'
.button-group
= link_to 'Edit', edit_pool_path(@pool), :class => 'button pill', :id => 'edit_pool_button'
diff --git a/src/app/views/pools/show.haml b/src/app/views/pools/show.haml
index eebff5e..216ac14 100644
--- a/src/app/views/pools/show.haml
+++ b/src/app/views/pools/show.haml
@@ -15,6 +15,9 @@
= tab[:name]
-if tab[:count]
%span.label.badge.count.dark=tab[:count]
+ #obj_actions.button-container
+ .button-group
+ = pretty_filter_toggle(pool_path(@pool, :view => 'pretty', :details_tab => @details_tab[:id]), pool_path(@pool, :view => 'filter', :details_tab => @details_tab[:id]))
.section-controls
%a.collapse{'href'=>'#'} Collapse
.content.collapsible.toggle-view.pools#tab
--
1.7.4.4
12 years, 8 months
[PATCH 1/2] Avoid adding a non-null column with a null default value
by Mark McLoughlin
I was getting this error when running 'rake db:migrate' with sqlite:
SQLite3::SQLException: Cannot add a NOT NULL column with default value NULL: ALTER TABLE "deployables" ADD "uuid" varchar(255) NOT NULL
To avoid the warning, we can add the column as nullable and then change
it to non-null later.
Presumably this would fail if we ran the migration on a DB containing
any data in the deployables table, but this is unlikely. To avoid it,
we could do e.g.
Deployable.reset_column_information
Deployable.all.each do |deployable|
deployable.uuid = "" if deployable.uuid.nil?
deployable.xml = "" if deployable.xml.nil?
end
but that seems like overkill given the situation, especially since the
default values don't make any sense.
---
.../migrate/20110207100800_update_deployables.rb | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/db/migrate/20110207100800_update_deployables.rb b/src/db/migrate/20110207100800_update_deployables.rb
index 4414560..ff87bed 100644
--- a/src/db/migrate/20110207100800_update_deployables.rb
+++ b/src/db/migrate/20110207100800_update_deployables.rb
@@ -2,13 +2,16 @@ class UpdateDeployables < ActiveRecord::Migration
def self.up
change_table :deployables do |t|
t.integer :lock_version, :default => 0
- t.string :uuid, :null => false
- t.binary :xml, :null => false
+ t.string :uuid
+ t.binary :xml
t.string :uri
t.text :summary
t.boolean :uploaded, :default => false
end
+ change_column :deployables, :uuid, :string, :null => false
+ change_column :deployables, :xml, :string, :null => false
+
create_table :assemblies_deployables, :id => false do |t|
t.integer :assembly_id, :null => false
t.integer :deployable_id, :null => false
--
1.7.4.4
12 years, 8 months
[PATCH conductor] Toggle control just tab content
by jzigmund@redhat.com
---
src/app/controllers/pools_controller.rb | 17 ++++++++++++-----
src/app/views/deployments/_filter_view.haml | 2 +-
src/app/views/deployments/_pretty_view.haml | 2 +-
src/app/views/pools/_deployments.haml | 3 ++-
src/app/views/pools/_header_show.haml | 2 +-
src/app/views/pools/_history.haml | 3 ---
src/app/views/pools/_history_filter.haml | 2 ++
src/app/views/pools/_history_pretty.haml | 2 ++
src/app/views/pools/_permissions.haml | 3 +--
src/app/views/pools/_pretty_list.haml | 2 +-
src/app/views/pools/show.haml | 4 ++--
src/features/pool.feature | 1 -
src/public/javascripts/application.js | 19 ++++++++++++++++++-
13 files changed, 43 insertions(+), 19 deletions(-)
delete mode 100644 src/app/views/pools/_history.haml
create mode 100644 src/app/views/pools/_history_filter.haml
create mode 100644 src/app/views/pools/_history_pretty.haml
diff --git a/src/app/controllers/pools_controller.rb b/src/app/controllers/pools_controller.rb
index 9e3b060..bb166d2 100644
--- a/src/app/controllers/pools_controller.rb
+++ b/src/app/controllers/pools_controller.rb
@@ -18,7 +18,7 @@ class PoolsController < ApplicationController
def index
clear_breadcrumbs
- save_breadcrumb(pools_path(:viewstate => @viewstate ? @viewstate.id : nil))
+ save_breadcrumb(pools_path(:viewstate => viewstate_id))
@user_pools = Pool.list_for_user(current_user, Privilege::VIEW)
if filter_view?
@@ -59,20 +59,27 @@ class PoolsController < ApplicationController
def show
@pool = Pool.find(params[:id])
- save_breadcrumb(pool_path(@pool), @pool.name)
+ save_breadcrumb(pool_path(@pool, :vievstate => viewstate_id), @pool.name)
require_privilege(Privilege::VIEW, @pool)
@statistics = @pool.statistics
- @view = filter_view? ? 'deployments/filter_view' : 'deployments/pretty_view'
+ @view = filter_view? ? 'deployments/filter_view' : 'deployments/pretty_view' unless params[:details_tab]
+ if params[:details_tab] == 'deployments'
+ @view = filter_view? ? 'deployments/filter_view' : 'deployments/pretty_view'
+ elsif params[:details_tab] == 'history'
+ @view = filter_view? ? 'history_filter' : 'history_pretty'
+ end
#TODO add links to real data for history,properties,permissions
@tabs = [{:name => 'Deployments', :view => @view, :id => 'deployments', :count => @pool.deployments.count},
{:name => 'History', :view => @view, :id => 'history'},
{:name => 'Properties', :view => 'properties', :id => 'properties'},
- {:name => 'Permissions', :view => @view, :id => 'permissions'}
+ {:name => 'Permissions', :view => 'permissions', :id => 'permissions'}
]
details_tab_name = params[:details_tab].blank? ? 'deployments' : params[:details_tab]
@details_tab = @tabs.find {|t| t[:id] == details_tab_name} || @tabs.first[:name].downcase
+ @deployments = @pool.deployments if @details_tab[:id] == 'deployments'
+ @view = @details_tab[:view]
respond_to do |format|
- format.js { render :partial => params[:only_tab] == "true" ? @details_tab[:view] : @view , :locals => {:deployments => @pool.deployments}}
+ format.js { render :partial => @view }
format.html { render :action => :show}
format.json { render :json => @pool }
end
diff --git a/src/app/views/deployments/_filter_view.haml b/src/app/views/deployments/_filter_view.haml
index 9812547..4b6a2f3 100644
--- a/src/app/views/deployments/_filter_view.haml
+++ b/src/app/views/deployments/_filter_view.haml
@@ -1,4 +1,4 @@
-= filter_table(@deployments_header, deployments) do |deployment|
+= filter_table(@deployments_header, @deployments) do |deployment|
%tr
%td
%input{:name => "deployment_selected[]", :type => "checkbox", :value => deployment.id, :id => "deployment_checkbox_#{deployment.id}" }
diff --git a/src/app/views/deployments/_pretty_view.haml b/src/app/views/deployments/_pretty_view.haml
index 5721367..b62f0f8 100644
--- a/src/app/views/deployments/_pretty_view.haml
+++ b/src/app/views/deployments/_pretty_view.haml
@@ -1 +1 @@
-= render :partial => deployments
\ No newline at end of file
+= render :partial => @deployments
\ No newline at end of file
diff --git a/src/app/views/pools/_deployments.haml b/src/app/views/pools/_deployments.haml
index ea2ddb3..23e6a78 100644
--- a/src/app/views/pools/_deployments.haml
+++ b/src/app/views/pools/_deployments.haml
@@ -1,4 +1,5 @@
-- deployments.in_groups_of(5, false) do |group|
+- @deployments ||= deployments
+- @deployments.in_groups_of(5, false) do |group|
%ul.deployment-array.small
- group.each do |deployment|
%li.deployment
diff --git a/src/app/views/pools/_header_show.haml b/src/app/views/pools/_header_show.haml
index f8d9f40..9ccb8f9 100644
--- a/src/app/views/pools/_header_show.haml
+++ b/src/app/views/pools/_header_show.haml
@@ -3,7 +3,7 @@
= [@pool.name, "Pool"].join(' ')
#obj_actions.button-container
.button-group
- = pretty_filter_toggle(pool_path(@pool, :view => 'pretty'), pool_path(@pool, :view => 'filter'))
+ = pretty_filter_toggle(pool_path(@pool, :view => 'pretty', :details_tab => @details_tab[:id]), pool_path(@pool, :view => 'filter', :details_tab => @details_tab[:id]))
= link_to 'New Deployment', launch_new_deployments_path(:pool_id => @pool.id), :class => 'button primary', :id => 'new_deployment_button'
.button-group
= link_to 'Edit', edit_pool_path(@pool), :class => 'button pill', :id => 'edit_pool_button'
diff --git a/src/app/views/pools/_history.haml b/src/app/views/pools/_history.haml
deleted file mode 100644
index 4769d92..0000000
--- a/src/app/views/pools/_history.haml
+++ /dev/null
@@ -1,3 +0,0 @@
-%h3
- History for
- = @pool.name
diff --git a/src/app/views/pools/_history_filter.haml b/src/app/views/pools/_history_filter.haml
new file mode 100644
index 0000000..709dabe
--- /dev/null
+++ b/src/app/views/pools/_history_filter.haml
@@ -0,0 +1,2 @@
+%h3
+ History(filter view) has not been implemented yet.
diff --git a/src/app/views/pools/_history_pretty.haml b/src/app/views/pools/_history_pretty.haml
new file mode 100644
index 0000000..f3aa855
--- /dev/null
+++ b/src/app/views/pools/_history_pretty.haml
@@ -0,0 +1,2 @@
+%h3
+ History(pretty view) has not been implemented yet.
diff --git a/src/app/views/pools/_permissions.haml b/src/app/views/pools/_permissions.haml
index fbd252e..43e570f 100644
--- a/src/app/views/pools/_permissions.haml
+++ b/src/app/views/pools/_permissions.haml
@@ -1,3 +1,2 @@
%h3
- Permissions for
- = @pool.name
+ Permissions have not been implemented yet.
diff --git a/src/app/views/pools/_pretty_list.haml b/src/app/views/pools/_pretty_list.haml
index dd6785b..9c6ee86 100644
--- a/src/app/views/pools/_pretty_list.haml
+++ b/src/app/views/pools/_pretty_list.haml
@@ -7,7 +7,7 @@
%div.pool.overview{:id => ['pool', pool.id], :class => ('collapsed' unless pool.deployments.count > 0)}
%header
%h3.name
- %a{:href => pool_path(pool)}= pool.name
+ = link_to pool.name, pool
%dl.statistics
%ul.groups
%li
diff --git a/src/app/views/pools/show.haml b/src/app/views/pools/show.haml
index 68c51a3..eebff5e 100644
--- a/src/app/views/pools/show.haml
+++ b/src/app/views/pools/show.haml
@@ -11,7 +11,7 @@
%ul#tab-container-1-nav
- @tabs.each do |tab|
%li
- %a{ :href => url_for(:details_tab => tab[:id], :only_tab => true), :id => "details_#{tab[:id]}", :class => "#{'active' if @details_tab[:id] == tab[:id]}"}
+ %a{ :href => url_for(:details_tab => tab[:id], :only_tab => true), :id => "details_#{tab[:id]}", :class => "#{'active' if @details_tab[:id] == tab[:id]} show"}
= tab[:name]
-if tab[:count]
%span.label.badge.count.dark=tab[:count]
@@ -19,4 +19,4 @@
%a.collapse{'href'=>'#'} Collapse
.content.collapsible.toggle-view.pools#tab
%ul.deployable-cards
- = render :partial => @view, :locals => {:deployments => @pool.deployments}
\ No newline at end of file
+ = render :partial => @view
diff --git a/src/features/pool.feature b/src/features/pool.feature
index c5867ef..9215efc 100644
--- a/src/features/pool.feature
+++ b/src/features/pool.feature
@@ -33,7 +33,6 @@ Feature: Manage Pools
Then I should get back a partial
And I should see "mockpool"
- @tag
Scenario: View Pool's Quota Usage
Given I have Pool Creator permissions on a pool named "mockpool"
And the "mockpool" Pool has a quota with following capacities:
diff --git a/src/public/javascripts/application.js b/src/public/javascripts/application.js
index 975cf92..fba9703 100644
--- a/src/public/javascripts/application.js
+++ b/src/public/javascripts/application.js
@@ -69,9 +69,26 @@ var Conductor = {
$('#tab').html(data)
.show();
});
+
+ if ($(this).hasClass("show"))
+ $.get('/pools/show/viewstate', function(data){
+ var data = JSON.parse(data);
+ Conductor.setupToogleTypeViewUrl(data.details_tab);
+ });
+
Conductor.tabRemoveActiveClass();
$(this).addClass('active');
- });
+ });
+ },
+
+ setupToogleTypeViewUrl: function (tab) {
+ var oldPrettyUrl = $("span.view-toggle a#pretty_view").attr('href');
+ var oldFilterUrl = $("span.view-toggle a#filter_view").attr('href');
+ var prettyUrl = oldPrettyUrl.replace(/tab=.*&/, "tab=" + tab + "&");
+ var filterUrl = oldFilterUrl.replace(/tab=.*&/, "tab=" + tab + "&");
+ $("span.view-toggle a#pretty_view").attr('href', prettyUrl);
+ $("span.view-toggle a#filter_view").attr('href', filterUrl);
+
},
tabRemoveActiveClass: function () {
--
1.7.4.4
12 years, 8 months