Server IP : 85.214.239.14 / Your IP : 3.137.200.139 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/3/root/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))