os-xenapi: add wrapper for complicated plugins

1. wrapper of xenhost.py as host_management
2. wrapper of xenstore.py as host_xenstore
3. wrapper of agent.py as host_agent
4. wrapper of glance.py as host_glance

Change-Id: Ibf9780bb03edfa3fe94af05985b2766fc829ebc3
This commit is contained in:
Huan Xie 2017-04-19 19:56:07 -07:00
parent 30487e4c41
commit b71dce4adb
5 changed files with 143 additions and 1 deletions

View File

@ -0,0 +1,47 @@
# Copyright 2017 Citrix Systems
#
# Licensed 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.
def version(session, uuid, dom_id, timeout):
args = {'id': uuid, 'dom_id': dom_id, 'timeout': timeout}
return session.call_plugin('agent.py', 'version', args)
def key_init(session, uuid, dom_id, timeout, pub=''):
args = {'id': uuid, 'dom_id': dom_id, 'timeout': timeout,
'pub': pub}
return session.call_plugin('agent.py', 'key_init', args)
def agent_update(session, uuid, dom_id, timeout, url='', md5sum=''):
args = {'id': uuid, 'dom_id': dom_id, 'timeout': timeout,
'url': url, 'md5sum': md5sum}
return session.call_plugin('agent.py', 'agentupdate', args)
def password(session, uuid, dom_id, timeout, enc_pass=''):
args = {'id': uuid, 'dom_id': dom_id, 'timeout': timeout,
'enc_pass': enc_pass}
return session.call_plugin('agent.py', 'password', args)
def inject_file(session, uuid, dom_id, timeout, b64_path='', b64_contents=''):
args = {'id': uuid, 'dom_id': dom_id, 'timeout': timeout,
'b64_path': b64_path, 'b64_contents': b64_contents}
return session.call_plugin('agent.py', 'inject_file', args)
def reset_network(session, uuid, dom_id, timeout):
args = {'id': uuid, 'dom_id': dom_id, 'timeout': timeout}
return session.call_plugin('agent.py', 'resetnetwork', args)

View File

@ -0,0 +1,30 @@
# Copyright 2017 Citrix Systems
#
# Licensed 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.
def download_vhd(session, num_retries, callback, retry_cb, image_id, sr_path,
extra_headers, uuid_stack=''):
args = {'image_id': image_id, 'sr_path': sr_path,
'extra_headers': extra_headers, 'uuid_stack': uuid_stack}
return session.call_plugin_serialized_with_retry(
'glance.py', 'download_vhd2', num_retries, callback, retry_cb, **args)
def upload_vhd(session, num_retries, callback, retry_cb, image_id, sr_path,
extra_headers, vdi_uuids='', properties={}):
args = {'image_id': image_id, 'sr_path': sr_path,
'extra_headers': extra_headers, 'vdi_uuids': vdi_uuids,
'properties': properties}
return session.call_plugin_serialized_with_retry(
'glance.py', 'upload_vhd2', num_retries, callback, retry_cb, **args)

View File

@ -0,0 +1,36 @@
# Copyright 2017 Citrix Systems
#
# Licensed 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.
def set_host_enabled(session, enabled):
args = {"enabled": enabled}
return session.call_plugin('xenhost.py', 'set_host_enabled', args)
def get_host_uptime(session):
return session.call_plugin('xenhost.py', 'host_uptime', {})
def get_host_data(session):
return session.call_plugin('xenhost.py', 'host_data', {})
def get_pci_type(session, pci_device):
return session.call_plugin_serialized('xenhost.py', 'get_pci_type',
pci_device)
def get_pci_device_details(session):
return session.call_plugin_serialized('xenhost.py',
'get_pci_device_details')

View File

@ -1,4 +1,4 @@
# Copyright 2013 OpenStack Foundation
# Copyright 2013 Citrix Systems
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain

View File

@ -0,0 +1,29 @@
# Copyright 2017 Citrix Systems
#
# Licensed 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.
def read_record(session, dom_id, path, ignore_missing_path=True):
args = {'dom_id': dom_id, 'path': path,
'ignore_missing_path': 'True' if ignore_missing_path else 'False'}
return session.call_plugin('xenstore.py', 'read_record', args)
def delete_record(session, dom_id, path):
args = {'dom_id': dom_id, 'path': path}
return session.call_plugin('xenstore.py', 'delete_record', args)
def write_record(session, dom_id, path, value):
args = {'dom_id': dom_id, 'path': path, 'value': value}
return session.call_plugin('xenstore.py', 'write_record', args)