| Server IP : 85.214.239.14 / Your IP : 216.73.216.27 Web Server : Apache/2.4.65 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 8.2.29 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/2/root/proc/3/cwd/usr/share/doc/python3-libcloud/examples/ |
Upload File : |
#!/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.
#
# This example provides both a running script (invoke from command line)
# and an importable module one can play with in Interactive Mode.
#
# See docstrings for usage examples.
#
try:
import secrets
except ImportError:
secrets = None
import os.path
import sys
# Add parent dir of this file's dir to sys.path (OS-agnostically)
sys.path.append(os.path.normpath(os.path.join(os.path.dirname(__file__),
os.path.pardir)))
from libcloud.common.types import InvalidCredsError
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
from pprint import pprint
def get_demo_driver(provider_name='RACKSPACE', *args, **kwargs):
"""An easy way to play with a driver interactively.
# Load credentials from secrets.py:
>>> from compute_demo import get_demo_driver
>>> driver = get_demo_driver('RACKSPACE')
# Or, provide credentials:
>>> from compute_demo import get_demo_driver
>>> driver = get_demo_driver('RACKSPACE', 'username', 'api_key')
# Note that these parameters vary by driver ^^^
# Do things like the demo:
>>> driver.load_nodes()
>>> images = driver.load_images()
>>> sizes = driver.load_sizes()
# And maybe do more than that:
>>> node = driver.create_node(
... name='my_first_node',
... image=images[0],
... size=sizes[0],
... )
>>> node.destroy()
"""
provider_name = provider_name.upper()
DriverClass = get_driver(getattr(Provider, provider_name))
if not args:
args = getattr(secrets, provider_name + '_PARAMS', ())
if not kwargs:
kwargs = getattr(secrets, provider_name + '_KEYWORD_PARAMS', {})
try:
return DriverClass(*args, **kwargs)
except InvalidCredsError:
raise InvalidCredsError(
'valid values should be put in secrets.py')
def main(argv):
"""Main Compute Demo
When invoked from the command line, it will connect using secrets.py
(see secrets.py-dist for instructions and examples), and perform the
following tasks:
- List current nodes
- List available images (up to 10)
- List available sizes (up to 10)
"""
try:
driver = get_demo_driver()
except InvalidCredsError as e:
print("Invalid Credentials: " + e.value)
return 1
try:
print(">> Loading nodes...")
pprint(driver.list_nodes())
print(">> Loading images... (showing up to 10)")
pprint(driver.list_images()[:10])
print(">> Loading sizes... (showing up to 10)")
pprint(driver.list_sizes()[:10])
except Exception as e:
print("A fatal error occurred: " + e)
return 1
if __name__ == '__main__':
sys.exit(main(sys.argv))