compass-core/compass/apiclient/restful.py
baigk d39c2fc0c5 support redeploy
1. add redeploy interface
2. bugfix about redeploy api

Change-Id: I6780e7048b1bad90c2cda47c7b8ed9afc5b60255
Signed-off-by: baigk <baiguoku@huawei.com>
2015-12-28 09:05:19 +08:00

1103 lines
32 KiB
Python

# Copyright 2014 Huawei Technologies Co. Ltd
#
# 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.
"""Compass api client library.
"""
import json
import logging
import requests
class Client(object):
"""compass restful api wrapper"""
def __init__(self, url, headers=None, proxies=None, stream=None):
logging.info('create api client %s', url)
self.url_ = url
self.session_ = requests.Session()
if headers:
self.session_.headers.update(headers)
self.session_.headers.update({
'Accept': 'application/json'
})
if proxies is not None:
self.session_.proxies = proxies
if stream is not None:
self.session_.stream = stream
def __del__(self):
self.session_.close()
@classmethod
def _get_response(cls, resp):
response_object = {}
try:
response_object = resp.json()
except Exception as error:
logging.error('failed to load object from %s: %s',
resp.url, resp.content)
logging.exception(error)
response_object['status'] = 'Json Parsing Failed'
response_object['message'] = resp.content
return resp.status_code, response_object
def _get(self, req_url, data=None):
url = '%s%s' % (self.url_, req_url)
logging.debug('get %s with data %s', url, data)
if data:
resp = self.session_.get(url, params=data)
else:
resp = self.session_.get(url)
return self._get_response(resp)
def _post(self, req_url, data=None):
url = '%s%s' % (self.url_, req_url)
logging.debug('post %s with data %s', url, data)
if data:
resp = self.session_.post(url, json.dumps(data))
else:
resp = self.session_.post(url)
return self._get_response(resp)
def _put(self, req_url, data=None):
"""encapsulate put method."""
url = '%s%s' % (self.url_, req_url)
logging.debug('put %s with data %s', url, data)
if data:
resp = self.session_.put(url, json.dumps(data))
else:
resp = self.session_.put(url)
return self._get_response(resp)
def _patch(self, req_url, data=None):
url = '%s%s' % (self.url_, req_url)
logging.debug('patch %s with data %s', url, data)
if data:
resp = self.session_.patch(url, json.dumps(data))
else:
resp = self.session_.patch(url)
return self._get_response(resp)
def _delete(self, req_url):
url = '%s%s' % (self.url_, req_url)
logging.debug('delete %s', url)
return self._get_response(self.session_.delete(url))
def login(self, email, password):
credential = {}
credential['email'] = email
credential['password'] = password
return self._post('/users/login', data=credential)
def get_token(self, email, password):
credential = {}
credential['email'] = email
credential['password'] = password
status, resp = self._post('/users/token', data=credential)
if status < 400:
self.session_.headers.update({'X-Auth-Token': resp['token']})
return status, resp
def get_users(self):
users = self._get('/users')
return users
def list_switches(
self,
switch_ips=None,
switch_ip_networks=None):
"""list switches."""
params = {}
if switch_ips:
params['switchIp'] = switch_ips
if switch_ip_networks:
params['switchIpNetwork'] = switch_ip_networks
switchlist = self._get('/switches', data=params)
return switchlist
def get_switch(self, switch_id):
return self._get('/switches/%s' % switch_id)
def add_switch(
self,
switch_ip,
version=None,
community=None,
raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
data['ip'] = switch_ip
data['credentials'] = {}
if version:
data['credentials']['version'] = version
if community:
data['credentials']['community'] = community
return self._post('/switches', data=data)
def update_switch(self, switch_id, state='initialized',
version='2c', community='public', raw_data={}):
data = {}
if raw_data:
data = raw_data
else:
data['credentials'] = {}
if version:
data['credentials']['version'] = version
if community:
data['credentials']['community'] = community
if state:
data['state'] = state
return self._put('/switches/%s' % switch_id, data=data)
def delete_switch(self, switch_id):
return self._delete('/switches/%s' % switch_id)
def list_switch_machines(self, switch_id, port=None, vlans=None,
tag=None, location=None):
data = {}
if port:
data['port'] = port
if vlans:
data['vlans'] = vlans
if tag:
data['tag'] = tag
if location:
data['location'] = location
return self._get('/switches/%s/machines' % switch_id, data=data)
def get_switch_machine(self, switch_id, machine_id):
return self._get('/switches/%s/machines/%s' % (switch_id, machine_id))
def list_switch_machines_hosts(self, switch_id, port=None, vlans=None,
mac=None, tag=None, location=None,
os_name=None, os_id=None):
data = {}
if port:
data['port'] = port
if vlans:
data['vlans'] = vlans
if mac:
data['mac'] = mac
if tag:
data['tag'] = tag
if location:
data['location'] = location
if os_name:
data['os_name'] = os_name
if os_id:
data['os_id'] = os_id
return self._get('/switches/%s/machines-hosts' % switch_id, data=data)
def add_switch_machine(self, switch_id, mac=None, port=None,
vlans=None, ipmi_credentials=None,
tag=None, location=None, raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if mac:
data['mac'] = mac
if port:
data['port'] = port
if vlans:
data['vlans'] = vlans
if ipmi_credentials:
data['ipmi_credentials'] = ipmi_credentials
if tag:
data['tag'] = tag
if location:
data['location'] = location
return self._post('/switches/%s/machines' % switch_id, data=data)
def update_switch_machine(self, switch_id, machine_id, port=None,
vlans=None, ipmi_credentials=None, tag=None,
location=None, raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if port:
data['port'] = port
if vlans:
data['vlans'] = vlans
if ipmi_credentials:
data['ipmi_credentials'] = ipmi_credentials
if tag:
data['tag'] = tag
if location:
data['location'] = location
return self._put('/switches/%s/machines/%s' %
(switch_id, machine_id), data=data)
def delete_switch_machine(self, switch_id, machine_id):
return self._delete('/switches/%s/machines/%s' %
(switch_id, machine_id))
# test these
def poll_switch(self, switch_id):
data = {}
data['find_machines'] = None
return self._post('/switches/%s/action' % switch_id, data=data)
def add_group_switch_machines(self, switch_id, group_machine_ids):
data = {}
data['add_machines'] = group_machine_ids
return self._post('/switches/%s/action' % switch_id, data=data)
def remove_group_switch_machines(self, switch_id, group_machine_ids):
data = {}
data['remove_machines'] = group_machine_ids
return self._post('/switches/%s/action' % switch_id, data=data)
def update_group_switch_machines(self, switch_id, group_machines):
data = {}
data['set_machines'] = group_machines
return self._post('/switches/%s/action' % switch_id, data=data)
# end
def list_switchmachines(self, switch_ip_int=None, port=None, vlans=None,
mac=None, tag=None, location=None):
data = {}
if switch_ip_int:
data['switch_ip_int'] = switch_ip_int
if port:
data['port'] = port
if vlans:
data['vlans'] = vlans
if mac:
data['mac'] = mac
if tag:
data['tag'] = tag
if location:
data['location'] = location
return self._get('/switch-machines', data=data)
def list_switchmachines_hosts(self, switch_ip_int=None, port=None,
vlans=None, mac=None, tag=None,
location=None, os_name=None, os_id=None):
data = {}
if switch_ip_int:
data['switch_ip_int'] = switch_ip_int
if port:
data['port'] = port
if vlans:
data['vlans'] = vlans
if mac:
data['mac'] = mac
if tag:
data['tag'] = tag
if location:
data['location'] = location
if os_name:
data['os_name'] = os_name
if os_id:
data['os_id'] = os_id
return self._get('/switches-machines-hosts', data=data)
def show_switchmachine(self, switchmachine_id):
return self._get('/switch-machines/%s' % switchmachine_id)
def update_switchmachine(self, switchmachine_id,
port=None, vlans=None, raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if port:
data['port'] = port
if vlans:
data['vlans'] = vlans
return self._put('/switch-machines/%s' % switchmachine_id, data=data)
def patch_switchmachine(self, switchmachine_id,
vlans=None, raw_data=None):
data = {}
if raw_data:
data = raw_data
elif vlans:
data['vlans'] = vlans
return self._patch('/switch-machines/%s' % switchmachine_id, data=data)
def delete_switchmachine(self, switchmachine_id):
return self._delete('/switch-machines/%s' % switchmachine_id)
def list_machines(self, mac=None, tag=None, location=None):
data = {}
if mac:
data['mac'] = mac
if tag:
data['tag'] = tag
if location:
data['location'] = location
return self._get('/machines', data=data)
def get_machine(self, machine_id):
data = {}
if id:
data['id'] = id
return self._get('/machines/%s' % machine_id, data=data)
def update_machine(self, machine_id, ipmi_credentials=None, tag=None,
location=None, raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if ipmi_credentials:
data['ipmi_credentials'] = ipmi_credentials
if tag:
data['tag'] = tag
if location:
data['location'] = location
return self._put('/machines/%s' % machine_id, data=data)
def patch_machine(self, machine_id, ipmi_credentials=None,
tag=None, location=None,
raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if ipmi_credentials:
data['ipmi_credentials'] = ipmi_credentials
if tag:
data['tag'] = tag
if location:
data['location'] = location
return self._patch('/machines/%s' % machine_id, data=data)
def delete_machine(self, machine_id):
return self._delete('machines/%s' % machine_id)
def list_subnets(self, subnet=None, name=None):
data = {}
if subnet:
data['subnet'] = subnet
if name:
data['name'] = name
return self._get('/subnets', data=data)
def get_subnet(self, subnet_id):
return self._get('/subnets/%s' % subnet_id)
def add_subnet(self, subnet, name=None, raw_data=None):
data = {}
data['subnet'] = subnet
if raw_data:
data.update(raw_data)
else:
if name:
data['name'] = name
return self._post('/subnets', data=data)
def update_subnet(self, subnet_id, subnet=None,
name=None, raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if subnet:
data['subnet'] = subnet
if name:
data['name'] = name
return self._put('/subnets/%s' % subnet_id, data=data)
def delete_subnet(self, subnet_id):
return self._delete('/subnets/%s' % subnet_id)
def list_adapters(self, name=None):
data = {}
if name:
data['name'] = name
return self._get('/adapters', data=data)
def get_adapter(self, adapter_id):
return self._get('/adapters/%s' % adapter_id)
def get_adapter_roles(self, adapter_id):
return self._get('/adapters/%s/roles' % adapter_id)
def get_adapter_metadata(self, adapter_id):
return self._get('/adapters/%s/metadata' % adapter_id)
def get_os_metadata(self, os_id):
return self._get('/oses/%s/metadata' % os_id)
def list_clusters(self, name=None, os_name=None,
owner=None,
adapter_id=None):
data = {}
if name:
data['name'] = name
if os_name:
data['os_name'] = os_name
if owner:
data['owner'] = owner
if adapter_id:
data['adapter_id'] = adapter_id
return self._get('/clusters', data=data)
def get_cluster(self, cluster_id):
return self._get('/clusters/%s' % cluster_id)
def add_cluster(self, name, adapter_id, os_id,
flavor_id=None, raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if flavor_id:
data['flavor_id'] = flavor_id
data['name'] = name
data['adapter_id'] = adapter_id
data['os_id'] = os_id
return self._post('/clusters', data=data)
def update_cluster(self, cluster_id, name=None,
reinstall_distributed_system=None,
raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if name:
data['name'] = name
if reinstall_distributed_system:
data['reinstall_distributed_system'] = (
reinstall_distributed_system
)
return self._put('/clusters/%s' % cluster_id, data=data)
def delete_cluster(self, cluster_id):
return self._delete('/clusters/%s' % cluster_id)
def get_cluster_config(self, cluster_id):
return self._get('/clusters/%s/config' % cluster_id)
def get_cluster_metadata(self, cluster_id):
return self._get('/clusters/%s/metadata' % cluster_id)
def update_cluster_config(self, cluster_id, os_config=None,
package_config=None, config_step=None,
raw_data=None):
data = {}
if raw_data:
data = raw_data
if os_config:
data['os_config'] = os_config
if package_config:
data['package_config'] = package_config
if config_step:
data['config_step'] = config_step
return self._put('/clusters/%s/config' % cluster_id, data=data)
def patch_cluster_config(self, cluster_id, os_config=None,
package_config=None, config_step=None,
raw_data=None):
data = {}
if raw_data:
data = raw_data
if os_config:
data['os_config'] = os_config
if package_config:
data['package_config'] = package_config
if config_step:
data['config_step'] = config_step
return self._patch('/clusters/%s/config' % cluster_id, data=data)
def delete_cluster_config(self, cluster_id):
return self._delete('/clusters/%s/config' % cluster_id)
# test these
def add_hosts_to_cluster(self, cluster_id, hosts):
data = {}
data['add_hosts'] = hosts
return self._post('/clusters/%s/action' % cluster_id, data=data)
def set_hosts_in_cluster(self, cluster_id, hosts):
data = {}
data['set_hosts'] = hosts
return self._post('/clusters/%s/action' % cluster_id, data=data)
def remove_hosts_from_cluster(self, cluster_id, hosts):
data = {}
data['remove_hosts'] = hosts
return self._post('/clusters/%s/action' % cluster_id, data=data)
def review_cluster(self, cluster_id, review={}):
data = {}
data['review'] = review
return self._post('/clusters/%s/action' % cluster_id, data=data)
def deploy_cluster(self, cluster_id, deploy={}):
data = {}
data['deploy'] = deploy
return self._post('/clusters/%s/action' % cluster_id, data=data)
def redeploy_cluster(self, cluster_id, deploy={}):
data = {}
data['redeploy'] = deploy
return self._post('/clusters/%s/action' % cluster_id, data=data)
def get_cluster_state(self, cluster_id):
return self._get('/clusters/%s/state' % cluster_id)
def list_cluster_hosts(self, cluster_id):
return self._get('/clusters/%s/hosts' % cluster_id)
def list_clusterhosts(self):
return self._get('/clusterhosts')
def get_cluster_host(self, cluster_id, host_id):
return self._get('/clusters/%s/hosts/%s' % (cluster_id, host_id))
def get_clusterhost(self, clusterhost_id):
return self._get('/clusterhosts/%s' % clusterhost_id)
def add_cluster_host(self, cluster_id, machine_id=None, name=None,
reinstall_os=None, raw_data=None):
data = {}
data['machine_id'] = machine_id
if raw_data:
data.update(raw_data)
else:
if name:
data['name'] = name
if reinstall_os:
data['reinstall_os'] = reinstall_os
return self._post('/clusters/%s/hosts' % cluster_id, data=data)
def delete_cluster_host(self, cluster_id, host_id):
return self._delete('/clusters/%s/hosts/%s' %
(cluster_id, host_id))
def delete_clusterhost(self, clusterhost_id):
return self._delete('/clusterhosts/%s' % clusterhost_id)
def get_cluster_host_config(self, cluster_id, host_id):
return self._get('/clusters/%s/hosts/%s/config' %
(cluster_id, host_id))
def get_clusterhost_config(self, clusterhost_id):
return self._get('/clusterhosts/%s/config' % clusterhost_id)
def update_cluster_host_config(self, cluster_id, host_id,
os_config=None,
package_config=None,
raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if os_config:
data['os_config'] = os_config
if package_config:
data['package_config'] = package_config
return self._put('/clusters/%s/hosts/%s/config' %
(cluster_id, host_id), data=data)
def update_clusterhost_config(self, clusterhost_id, os_config=None,
package_config=None, raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if os_config:
data['os_config'] = os_config
if package_config:
data['package_config'] = package_config
return self._put('/clusterhosts/%s/config' % clusterhost_id,
data=data)
def patch_cluster_host_config(self, cluster_id, host_id,
os_config=None,
package_config=None,
raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if os_config:
data['os_config'] = os_config
if package_config:
data['package_config'] = package_config
return self._patch('/clusters/%s/hosts/%s/config' %
(cluster_id, host_id), data=data)
def patch_clusterhost_config(self, clusterhost_id, os_config=None,
package_config=None, raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if os_config:
data['os_config'] = os_config
if package_config:
data['package_config'] = package_config
return self._patch('/clusterhosts/%s' % clusterhost_id, data=data)
def delete_cluster_host_config(self, cluster_id, host_id):
return self._delete('/clusters/%s/hosts/%s/config' %
(cluster_id, host_id))
def delete_clusterhost_config(self, clusterhost_id):
return self._delete('/clusterhosts/%s/config' % clusterhost_id)
def get_cluster_host_state(self, cluster_id, host_id):
return self._get('/clusters/%s/hosts/%s/state' %
(cluster_id, host_id))
def update_cluster_host(self, cluster_id, host_id,
roles=None, raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if roles:
data['roles'] = roles
return self._put('/clusters/%s/hosts/%s' %
(cluster_id, host_id), data=data)
def update_clusterhost(self, clusterhost_id,
roles=None, raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if roles:
data['roles'] = roles
return self._put('/clusterhosts/%s' % clusterhost_id, data=data)
def patch_cluster_host(self, cluster_id, host_id,
roles=None, raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if roles:
data['roles'] = roles
return self._patch('/clusters/%s/hosts/%s' %
(cluster_id, host_id), data=data)
def patch_clusterhost(self, clusterhost_id,
roles=None, raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if roles:
data['roles'] = roles
return self._patch('/clusterhosts/%s' % clusterhost_id, data=data)
def get_clusterhost_state(self, clusterhost_id):
return self._get('/clusterhosts/%s/state' % clusterhost_id)
def update_cluster_host_state(self, cluster_id, host_id, state=None,
percentage=None, message=None,
raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if state:
data['state'] = state
if percentage:
data['percentage'] = percentage
if message:
data['message'] = message
return self._put('/clusters/%s/hosts/%s/state' % (cluster_id, host_id),
data=data)
def update_clusterhost_state(self, clusterhost_id, state=None,
percentage=None, message=None,
raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if state:
data['state'] = state
if percentage:
data['percentage'] = percentage
if message:
data['message'] = message
return self._put('/clusterhosts/%s/state' % clusterhost_id, data=data)
def list_hosts(self, name=None, os_name=None, owner=None, mac=None):
data = {}
if name:
data['name'] = name
if os_name:
data['os_name'] = os_name
if owner:
data['owner'] = owner
if mac:
data['mac'] = mac
return self._get('/hosts', data=data)
def get_host(self, host_id):
return self._get('/hosts/%s' % host_id)
def list_machines_or_hosts(self, mac=None, tag=None,
location=None, os_name=None,
os_id=None):
data = {}
if mac:
data['mac'] = mac
if tag:
data['tag'] = tag
if location:
data['location'] = location
if os_name:
data['os_name'] = os_name
if os_id:
data['os_id'] = os_id
return self._get('/machines-hosts', data=data)
def get_machine_or_host(self, host_id):
return self._get('/machines-hosts/%s' % host_id)
def update_host(self, host_id, name=None,
reinstall_os=None, raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if name:
data['name'] = name
if reinstall_os:
data['reinstall_os'] = reinstall_os
return self._put('/hosts/%s' % host_id, data=data)
def delete_host(self, host_id):
return self._delete('/hosts/%s' % host_id)
def get_host_clusters(self, host_id):
return self._get('/hosts/%s/clusters' % host_id)
def get_host_config(self, host_id):
return self._get('/hosts/%s/config' % host_id)
def update_host_config(self, host_id, os_config, raw_data=None):
data = {}
data['os_config'] = os_config
if raw_data:
data.update(raw_data)
return self._put('/hosts/%s/config' % host_id, data=data)
def patch_host_config(self, host_id, os_config, raw_data=None):
data = {}
data['os_config'] = os_config
if raw_data:
data.update(raw_data)
return self._patch('/hosts/%s/config' % host_id, data=data)
def delete_host_config(self, host_id):
return self._delete('/hosts/%s/config' % host_id)
def list_host_networks(self, host_id, interface=None, ip=None,
subnet=None, is_mgmt=None, is_promiscuous=None):
data = {}
if interface:
data['interface'] = interface
if ip:
data['ip'] = ip
if subnet:
data['subnet'] = subnet
if is_mgmt:
data['is_mgmt'] = is_mgmt
if is_promiscuous:
data['is_promiscuous'] = is_promiscuous
return self._get('/hosts/%s/networks' % host_id, data=data)
def list_all_host_networks(self, interface=None, ip=None, subnet=None,
is_mgmt=None, is_promiscuous=None):
data = {}
if interface:
data['interface'] = interface
if ip:
data['ip'] = ip
if subnet:
data['subnet'] = subnet
if is_mgmt:
data['is_mgmt'] = is_mgmt
if is_promiscuous:
data['is_promiscuous'] = is_promiscuous
return self._get('/host-networks', data=data)
def get_host_network(self, host_id, host_network_id):
return self._get('/hosts/%s/networks/%s' %
(host_id, host_network_id))
def get_network_for_all_hosts(self, host_network_id):
return self._get('/host-networks/%s' % host_network_id)
def add_host_network(self, host_id, interface, ip, subnet_id,
is_mgmt=None, is_promiscuous=None,
raw_data=None):
data = {}
data['interface'] = interface
data['ip'] = ip
data['subnet_id'] = subnet_id
if raw_data:
data.update(raw_data)
else:
if is_mgmt:
data['is_mgmt'] = is_mgmt
if is_promiscuous:
data['is_promiscuous'] = is_promiscuous
return self._post('/hosts/%s/networks' % host_id, data=data)
def update_host_network(self, host_id, host_network_id,
ip=None, subnet_id=None, subnet=None,
is_mgmt=None, is_promiscuous=None,
raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if ip:
data['ip'] = ip
if subnet_id:
data['subnet_id'] = subnet_id
if subnet:
data['subnet'] = subnet
if is_mgmt:
data['is_mgmt'] = is_mgmt
if is_promiscuous:
data['is_promiscuous'] = is_promiscuous
return self._put('/hosts/%s/networks/%s' %
(host_id, host_network_id), data=data)
def update_hostnetwork(self, host_network_id, ip=None,
subnet_id=None, subnet=None,
is_mgmt=None, is_promiscuous=None,
raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if ip:
data['ip'] = ip
if subnet_id:
data['subnet_id'] = subnet_id
if subnet:
data['subnet'] = subnet
if is_mgmt:
data['is_mgmt'] = is_mgmt
if is_promiscuous:
data['is_promiscuous'] = is_promiscuous
return self._put('/host-networks/%s' % host_network_id,
data=data)
def delete_host_network(self, host_id, host_network_id):
return self._delete('/hosts/%s/networks/%s',
(host_id, host_network_id))
def delete_hostnetwork(self, host_network_id):
return self._delete('/host-networks/%s' % host_network_id)
def get_host_state(self, host_id):
return self._get('/hosts/%s/state' % host_id)
def update_host_state(self, host_id, state=None,
percentage=None, message=None,
raw_data=None):
data = {}
if raw_data:
data = raw_data
else:
if state:
data['state'] = state
if percentage:
data['percentage'] = percentage
if message:
data['message'] = message
return self._put('/hosts/%s/state' % host_id, date=data)
def poweron_host(self, host_id):
data = {}
data['poweron'] = True
return self._post('/hosts/%s/action' % host_id, data=data)
def poweroff_host(self, host_id):
data = {}
data['poweroff'] = True
return self._post('/hosts/%s/action' % host_id, data=data)
def reset_host(self, host_id):
data = {}
data['reset'] = True
return self._post('/hosts/%s/action' % host_id, data=data)
def clusterhost_ready(self, clusterhost_name):
data = {}
data['ready'] = True
return self._post('/clusterhosts/%s/state_internal' %
clusterhost_name, data=data)