You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by ma...@apache.org on 2013/04/26 17:47:02 UTC
[05/14] git commit: Network API rev 3 - Network Collection (routes)
Network API rev 3 - Network Collection (routes)
Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/34a66ca1
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/34a66ca1
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/34a66ca1
Branch: refs/heads/master
Commit: 34a66ca1b305d2f341cfe48f396e7aac64aa2ffc
Parents: 8c9ff36
Author: marios <ma...@redhat.com>
Authored: Fri Apr 12 12:00:21 2013 +0300
Committer: marios <ma...@redhat.com>
Committed: Fri Apr 26 18:01:55 2013 +0300
----------------------------------------------------------------------
server/lib/deltacloud/collections/networks.rb | 63 ++++++++++++++++++++
1 files changed, 63 insertions(+), 0 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/34a66ca1/server/lib/deltacloud/collections/networks.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/collections/networks.rb b/server/lib/deltacloud/collections/networks.rb
new file mode 100644
index 0000000..34c7fad
--- /dev/null
+++ b/server/lib/deltacloud/collections/networks.rb
@@ -0,0 +1,63 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership. The
+# ASF licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the
+# License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+module Deltacloud::Collections
+ class Networks < Base
+
+ include Deltacloud::Features
+
+ set :capability, lambda { |m| driver.respond_to? m }
+ check_features :for => lambda { |c, f| driver.class.has_feature?(c, f) }
+
+ get '/networks/new' do
+ respond_to do |format|
+ format.html { haml :"networks/new" }
+ end
+ end
+
+ collection :networks do
+
+ standard_show_operation
+ standard_index_operation
+
+ operation :create, :with_capability => :create_network do
+ param :address_block, :string, :optional
+ param :name, :string, :optional
+ control do
+ @network = driver.create_network(credentials, { :address_block => params[:address_block]})
+ respond_to do |format|
+ format.xml { haml :"networks/show" }
+ format.html { haml :"networks/show" }
+ format.json { xml_to_json("networks/show")}
+ end
+ end
+ end
+
+ operation :destroy, :with_capability => :destroy_network do
+ control do
+ driver.destroy_network(credentials, params[:id])
+ status 204
+ respond_to do |format|
+ format.xml
+ format.json
+ format.html { redirect(networks_url) }
+ end
+ end
+ end
+
+ end
+
+ end
+end