Rohit Yadav 07564469e9 CLOUDSTACK-9299: Out-of-band Management for CloudStack
Support access to a host’s out-of-band management interface (e.g. IPMI, iLO,
DRAC, etc.) to manage host power operations (on/off etc.) and querying current
power state in CloudStack.

Given the wide range of out-of-band management interfaces such as iLO and iDRA,
the service implementation allows for development of separate drivers as plugins.
This feature comes with a ipmitool based driver that uses the
ipmitool (http://linux.die.net/man/1/ipmitool) to communicate with any
out-of-band management interface that support IPMI 2.0.

This feature allows following common use-cases:
- Restarting stalled/failed hosts
- Powering off under-utilised hosts
- Powering on hosts for provisioning or to increase capacity
- Allowing system administrators to see the current power state of the host

For testing this feature `ipmisim` can be used:
https://pypi.python.org/pypi/ipmisim

FS:
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Out-of-band+Management+for+CloudStack

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2016-05-12 11:05:40 +05:30

65 lines
2.4 KiB
Python

#!/usr/bin/env python
# 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.
try:
from setuptools import setup, find_packages
except ImportError:
try:
from distribute_setup import use_setuptools
use_setuptools()
from setuptools import setup, find_packages
except ImportError:
raise RuntimeError("python setuptools is required to build Marvin")
VERSION = "4.9.0-SNAPSHOT"
setup(name="Marvin",
version=VERSION,
description="Marvin - Python client for Apache CloudStack",
author="The Apache CloudStack Team",
author_email="dev@cloudstack.apache.org",
maintainer="The Apache CloudStack Team",
maintainer_email="dev@cloudstack.apache.org",
long_description="Marvin is the Apache CloudStack python "
"client written around the unittest framework",
platforms=("Any",),
url="https://builds.apache.org/job/cloudstack-marvin/",
packages=["marvin", "marvin.cloudstackAPI",
"marvin.lib", "marvin.config", "marvin.sandbox",
"marvin.sandbox.advanced", "marvin.sandbox.advancedsg",
"marvin.sandbox.basic"],
license="LICENSE.txt",
install_requires=[
"mysql-connector-python >= 1.1.6",
"requests >= 2.2.1",
"paramiko >= 1.13.0",
"nose >= 1.3.3",
"ddt >= 0.4.0",
"pyvmomi >= 5.5.0",
"netaddr >= 0.7.14",
"ipmisim >= 0.7"
],
py_modules=['marvin.marvinPlugin'],
zip_safe=False,
entry_points={
'nose.plugins': ['marvinPlugin = marvin.marvinPlugin:MarvinPlugin'],
'console_scripts': ['marvincli = marvin.deployAndRun:main']
},
)