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