You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by di...@fast.au.fujitsu.com on 2013/04/04 02:12:06 UTC

[PATCH] CIMI: add missing service subcollections of system

From: Dies Koper <di...@fast.au.fujitsu.com>

---
 server/lib/cimi/service.rb                     |  3 +++
 server/lib/cimi/service/system_credential.rb   | 34 ++++++++++++++++++++++++++
 server/lib/cimi/service/system_network_port.rb | 34 ++++++++++++++++++++++++++
 server/lib/cimi/service/system_system.rb       | 34 ++++++++++++++++++++++++++
 4 files changed, 105 insertions(+)
 create mode 100644 server/lib/cimi/service/system_credential.rb
 create mode 100644 server/lib/cimi/service/system_network_port.rb
 create mode 100644 server/lib/cimi/service/system_system.rb

diff --git a/server/lib/cimi/service.rb b/server/lib/cimi/service.rb
index 892f6ad..58bed94 100644
--- a/server/lib/cimi/service.rb
+++ b/server/lib/cimi/service.rb
@@ -49,7 +49,10 @@ require_relative './service/system_machine'
 require_relative './service/system_volume'
 require_relative './service/system_network'
 require_relative './service/system_forwarding_group'
+require_relative './service/system_network_port'
 require_relative './service/system_address'
+require_relative './service/system_credential'
+require_relative './service/system_system'
 require_relative './service/system'
 require_relative './service/system_create'
 require_relative './service/address_template_create'
diff --git a/server/lib/cimi/service/system_credential.rb b/server/lib/cimi/service/system_credential.rb
new file mode 100644
index 0000000..3ff256b
--- /dev/null
+++ b/server/lib/cimi/service/system_credential.rb
@@ -0,0 +1,34 @@
+# 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.
+
+class CIMI::Service::SystemCredential < CIMI::Service::Base
+
+  def self.find(system_id, context, id=:all)
+    if id == :all
+      credentials = context.driver.system_credentials(context.credentials, {:env=>context, :system_id=>system_id})
+    else
+      credentials = context.driver.system_credentials(context.credentials, {:env=>context, :system_id=>system_id, :id=>id})
+      raise CIMI::Model::NotFound if credentials.empty?
+      credentials.first
+    end
+  end
+
+  def self.collection_for_system(system_id, context)
+    system_credentials = self.find(system_id, context)
+    credentials_url = context.url("/system/#{system_id}/credentials") if context.driver.has_capability? :add_credentials_to_system
+    CIMI::Model::SystemCredential.list(credentials_url, system_credentials, :add_url => credentials_url)
+  end
+
+end
diff --git a/server/lib/cimi/service/system_network_port.rb b/server/lib/cimi/service/system_network_port.rb
new file mode 100644
index 0000000..f7b3e69
--- /dev/null
+++ b/server/lib/cimi/service/system_network_port.rb
@@ -0,0 +1,34 @@
+# 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.
+
+class CIMI::Service::SystemNetworkPort < CIMI::Service::Base
+
+  def self.find(system_id, context, id=:all)
+    if id == :all
+      ports = context.driver.system_network_ports(context.credentials, {:env=>context, :system_id=>system_id})
+    else
+      ports = context.driver.system_network_ports(context.credentials, {:env=>context, :system_id=>system_id, :id=>id})
+      raise CIMI::Model::NotFound if ports.empty?
+      ports.first
+    end
+  end
+
+  def self.collection_for_system(system_id, context)
+    system_network_ports = self.find(system_id, context)
+    network_ports_url = context.url("/system/#{system_id}/network_ports") if context.driver.has_capability? :add_network_ports_to_system
+    CIMI::Model::SystemNetworkPort.list(network_ports_url, system_network_ports, :add_url => network_ports_url)
+  end
+
+end
diff --git a/server/lib/cimi/service/system_system.rb b/server/lib/cimi/service/system_system.rb
new file mode 100644
index 0000000..233825c
--- /dev/null
+++ b/server/lib/cimi/service/system_system.rb
@@ -0,0 +1,34 @@
+# 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.
+
+class CIMI::Service::SystemSystem < CIMI::Service::Base
+
+  def self.find(system_id, context, id=:all)
+    if id == :all
+      systems = context.driver.system_systems(context.systems, {:env=>context, :system_id=>system_id})
+    else
+      systems = context.driver.system_systems(context.systems, {:env=>context, :system_id=>system_id, :id=>id})
+      raise CIMI::Model::NotFound if systems.empty?
+      systems.first
+    end
+  end
+
+  def self.collection_for_system(system_id, context)
+    system_systems = self.find(system_id, context)
+    systems_url = context.url("/system/#{system_id}/systems") if context.driver.has_capability? :add_systems_to_system
+    CIMI::Model::SystemSystem.list(systems_url, system_systems, :add_url => systems_url)
+  end
+
+end
-- 
1.8.0.msysgit.0



Re: [PATCH] CIMI: add missing service subcollections of system

Posted by Michal Fojtik <mf...@redhat.com>.
On 04/04/2013 02:12 AM, diesk@fast.au.fujitsu.com wrote:

ACK, confirming this fix DTACLOUD-524

   -- Michal

> From: Dies Koper <di...@fast.au.fujitsu.com>
>
> ---
>   server/lib/cimi/service.rb                     |  3 +++
>   server/lib/cimi/service/system_credential.rb   | 34 ++++++++++++++++++++++++++
>   server/lib/cimi/service/system_network_port.rb | 34 ++++++++++++++++++++++++++
>   server/lib/cimi/service/system_system.rb       | 34 ++++++++++++++++++++++++++
>   4 files changed, 105 insertions(+)
>   create mode 100644 server/lib/cimi/service/system_credential.rb
>   create mode 100644 server/lib/cimi/service/system_network_port.rb
>   create mode 100644 server/lib/cimi/service/system_system.rb
>
> diff --git a/server/lib/cimi/service.rb b/server/lib/cimi/service.rb
> index 892f6ad..58bed94 100644
> --- a/server/lib/cimi/service.rb
> +++ b/server/lib/cimi/service.rb
> @@ -49,7 +49,10 @@ require_relative './service/system_machine'
>   require_relative './service/system_volume'
>   require_relative './service/system_network'
>   require_relative './service/system_forwarding_group'
> +require_relative './service/system_network_port'
>   require_relative './service/system_address'
> +require_relative './service/system_credential'
> +require_relative './service/system_system'
>   require_relative './service/system'
>   require_relative './service/system_create'
>   require_relative './service/address_template_create'
> diff --git a/server/lib/cimi/service/system_credential.rb b/server/lib/cimi/service/system_credential.rb
> new file mode 100644
> index 0000000..3ff256b
> --- /dev/null
> +++ b/server/lib/cimi/service/system_credential.rb
> @@ -0,0 +1,34 @@
> +# 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.
> +
> +class CIMI::Service::SystemCredential < CIMI::Service::Base
> +
> +  def self.find(system_id, context, id=:all)
> +    if id == :all
> +      credentials = context.driver.system_credentials(context.credentials, {:env=>context, :system_id=>system_id})
> +    else
> +      credentials = context.driver.system_credentials(context.credentials, {:env=>context, :system_id=>system_id, :id=>id})
> +      raise CIMI::Model::NotFound if credentials.empty?
> +      credentials.first
> +    end
> +  end
> +
> +  def self.collection_for_system(system_id, context)
> +    system_credentials = self.find(system_id, context)
> +    credentials_url = context.url("/system/#{system_id}/credentials") if context.driver.has_capability? :add_credentials_to_system
> +    CIMI::Model::SystemCredential.list(credentials_url, system_credentials, :add_url => credentials_url)
> +  end
> +
> +end
> diff --git a/server/lib/cimi/service/system_network_port.rb b/server/lib/cimi/service/system_network_port.rb
> new file mode 100644
> index 0000000..f7b3e69
> --- /dev/null
> +++ b/server/lib/cimi/service/system_network_port.rb
> @@ -0,0 +1,34 @@
> +# 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.
> +
> +class CIMI::Service::SystemNetworkPort < CIMI::Service::Base
> +
> +  def self.find(system_id, context, id=:all)
> +    if id == :all
> +      ports = context.driver.system_network_ports(context.credentials, {:env=>context, :system_id=>system_id})
> +    else
> +      ports = context.driver.system_network_ports(context.credentials, {:env=>context, :system_id=>system_id, :id=>id})
> +      raise CIMI::Model::NotFound if ports.empty?
> +      ports.first
> +    end
> +  end
> +
> +  def self.collection_for_system(system_id, context)
> +    system_network_ports = self.find(system_id, context)
> +    network_ports_url = context.url("/system/#{system_id}/network_ports") if context.driver.has_capability? :add_network_ports_to_system
> +    CIMI::Model::SystemNetworkPort.list(network_ports_url, system_network_ports, :add_url => network_ports_url)
> +  end
> +
> +end
> diff --git a/server/lib/cimi/service/system_system.rb b/server/lib/cimi/service/system_system.rb
> new file mode 100644
> index 0000000..233825c
> --- /dev/null
> +++ b/server/lib/cimi/service/system_system.rb
> @@ -0,0 +1,34 @@
> +# 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.
> +
> +class CIMI::Service::SystemSystem < CIMI::Service::Base
> +
> +  def self.find(system_id, context, id=:all)
> +    if id == :all
> +      systems = context.driver.system_systems(context.systems, {:env=>context, :system_id=>system_id})
> +    else
> +      systems = context.driver.system_systems(context.systems, {:env=>context, :system_id=>system_id, :id=>id})
> +      raise CIMI::Model::NotFound if systems.empty?
> +      systems.first
> +    end
> +  end
> +
> +  def self.collection_for_system(system_id, context)
> +    system_systems = self.find(system_id, context)
> +    systems_url = context.url("/system/#{system_id}/systems") if context.driver.has_capability? :add_systems_to_system
> +    CIMI::Model::SystemSystem.list(systems_url, system_systems, :add_url => systems_url)
> +  end
> +
> +end
>


-- 

Michal Fojtik <mf...@redhat.com>
Deltacloud API, CloudForms