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:03 UTC
[06/14] git commit: Network API rev 3 - Subnet Collection (routes)
Network API rev 3 - Subnet Collection (routes)
Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/895a9c63
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/895a9c63
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/895a9c63
Branch: refs/heads/master
Commit: 895a9c63af9dc0f9969bf9b5fafa047d5b4ded09
Parents: 34a66ca
Author: marios <ma...@redhat.com>
Authored: Fri Apr 12 12:04:53 2013 +0300
Committer: marios <ma...@redhat.com>
Committed: Fri Apr 26 18:01:55 2013 +0300
----------------------------------------------------------------------
server/lib/deltacloud/collections/subnets.rb | 65 +++++++++++++++++++++
1 files changed, 65 insertions(+), 0 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/895a9c63/server/lib/deltacloud/collections/subnets.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/collections/subnets.rb b/server/lib/deltacloud/collections/subnets.rb
new file mode 100644
index 0000000..9d5fd74
--- /dev/null
+++ b/server/lib/deltacloud/collections/subnets.rb
@@ -0,0 +1,65 @@
+
+# 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 Subnets < 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 '/subnets/new' do
+ respond_to do |format|
+ format.html { haml :"subnets/new" }
+ end
+ end
+
+
+ collection :subnets do
+
+ standard_show_operation
+ standard_index_operation
+
+ operation :create, :with_capability => :create_subnet do
+ param :network_id, :string, :required
+ param :address_block, :string, :required
+ control do
+ @subnet = driver.create_subnet(credentials, { :network_id => params[:network_id], :address_block => params[:address_block]})
+ respond_to do |format|
+ format.xml { haml :"subnets/show"}
+ format.html { haml :"subnets/show" }
+ format.json { xml_to_json("subnets/show")}
+ end
+ end
+ end
+
+ operation :destroy, :with_capability => :destroy_subnet do
+ control do
+ driver.destroy_subnet(credentials, params[:id])
+ status 204
+ respond_to do |format|
+ format.xml
+ format.json
+ format.html { redirect(subnets_url) }
+ end
+ end
+ end
+
+ end
+
+ end
+end