本文整理汇总了Python中dopy.manager.DoManager.all_regions方法的典型用法代码示例。如果您正苦于以下问题:Python DoManager.all_regions方法的具体用法?Python DoManager.all_regions怎么用?Python DoManager.all_regions使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类dopy.manager.DoManager
的用法示例。
在下文中一共展示了DoManager.all_regions方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: load_all_data_from_digital_ocean
# 需要导入模块: from dopy.manager import DoManager [as 别名]
# 或者: from dopy.manager.DoManager import all_regions [as 别名]
def load_all_data_from_digital_ocean(self):
''' Use dopy to get all the information from DigitalOcean '''
manager = DoManager(self.client_id, self.api_key)
self.data = {}
self.data['regions'] = self.sanitize_list(manager.all_regions())
self.data['images'] = self.sanitize_list(manager.all_images(filter=None))
self.data['sizes'] = self.sanitize_list(manager.sizes())
示例2: DigitalOceanBase
# 需要导入模块: from dopy.manager import DoManager [as 别名]
# 或者: from dopy.manager.DoManager import all_regions [as 别名]
class DigitalOceanBase(Inventory):
address_field = 'ip_address'
def __init__(self, settings_file='digital_ocean.ini'):
super(DigitalOceanBase, self).__init__()
self.config = Settings(prefix='DO', section='digital_ocean',
filename=settings_file)
self.data_params = {}
self.do = DoManager(self.config.get('client_id'),
self.config.get('api_key'))
@file_cache('/tmp/ansible-droplets-cache.json')
def get_data(self):
if not self.data:
self.data = self.do.all_active_droplets()
return self.data
@file_cache('/tmp/ansible-data-params-cache.json', timeout=3600)
def get_data_params(self):
if not self.data_params:
def _convert(data):
ret = {}
for datum in data:
# Ensure keys are always strings because JSON
# strings are always strings
ret[str(datum['id'])] = datum
return ret
self.data_params['regions'] = _convert(self.do.all_regions())
self.data_params['images'] = _convert(self.do.all_images())
self.data_params['ssh_keys'] = _convert(self.do.all_ssh_keys())
self.data_params['sizes'] = _convert(self.do.sizes())
return self.data_params
def get_data_param(self, host, part, find_key, display_template):
try:
datum = self.get_data_params()[part][str(host[find_key])]
except KeyError:
pass
else:
return (display_template.format(**datum), self.get_address(host))
示例3: load_all_data_from_digital_ocean
# 需要导入模块: from dopy.manager import DoManager [as 别名]
# 或者: from dopy.manager.DoManager import all_regions [as 别名]
def load_all_data_from_digital_ocean(self):
''' Use dopy to get all the information from DigitalOcean and save data in cache files '''
manager = DoManager(None, self.access_token, api_version=2)
self.data = {}
self.data['droplets'] = manager.all_active_droplets()
self.data['regions'] = manager.all_regions()
self.data['images'] = manager.all_images(filter=None)
self.data['sizes'] = manager.sizes()
self.data['ssh_keys'] = manager.all_ssh_keys()
self.data['domains'] = manager.all_domains()
self.index = {}
self.index['region_to_name'] = self.build_index(self.data['regions'], 'name', 'slug')
self.index['size_to_name'] = self.build_index(self.data['sizes'], 'memory', 'slug')
self.index['image_to_name'] = self.build_index(self.data['images'], 'id', 'name')
self.index['image_to_distro'] = self.build_index(self.data['images'], 'id', 'distribution')
self.index['host_to_droplet'] = self.build_index(self.data['droplets'], 'ip_address', 'id', False)
self.build_inventory()
self.write_to_cache()
示例4: DigitalOceanInventory
# 需要导入模块: from dopy.manager import DoManager [as 别名]
# 或者: from dopy.manager.DoManager import all_regions [as 别名]
#.........这里部分代码省略.........
parser.add_argument('--api-token','-a', action='store', help='DigitalOcean API Token')
self.args = parser.parse_args()
if self.args.api_token:
self.api_token = self.args.api_token
# Make --list default if none of the other commands are specified
if (not self.args.droplets and not self.args.regions and
not self.args.images and not self.args.sizes and
not self.args.ssh_keys and not self.args.domains and
not self.args.all and not self.args.host):
self.args.list = True
###########################################################################
# Data Management
###########################################################################
def load_from_digital_ocean(self, resource=None):
'''Get JSON from DigitalOcean API'''
if self.args.force_cache:
return
# We always get fresh droplets
if self.is_cache_valid() and not (resource=='droplets' or resource is None):
return
if self.args.refresh_cache:
resource=None
if resource == 'droplets' or resource is None:
self.data['droplets'] = self.manager.all_active_droplets()
self.cache_refreshed = True
if resource == 'regions' or resource is None:
self.data['regions'] = self.manager.all_regions()
self.cache_refreshed = True
if resource == 'images' or resource is None:
self.data['images'] = self.manager.all_images(filter=None)
self.cache_refreshed = True
if resource == 'sizes' or resource is None:
self.data['sizes'] = self.manager.sizes()
self.cache_refreshed = True
if resource == 'ssh_keys' or resource is None:
self.data['ssh_keys'] = self.manager.all_ssh_keys()
self.cache_refreshed = True
if resource == 'domains' or resource is None:
self.data['domains'] = self.manager.all_domains()
self.cache_refreshed = True
def build_inventory(self):
'''Build Ansible inventory of droplets'''
self.inventory = {}
# add all droplets by id and name
for droplet in self.data['droplets']:
#when using private_networking, the API reports the private one in "ip_address".
if 'private_networking' in droplet['features'] and not self.use_private_network:
for net in droplet['networks']['v4']:
if net['type']=='public':
dest=net['ip_address']
else:
continue
else:
dest = droplet['ip_address']
dest = { 'hosts': [ dest ], 'vars': self.group_variables }
示例5: DigitalOceanInventory
# 需要导入模块: from dopy.manager import DoManager [as 别名]
# 或者: from dopy.manager.DoManager import all_regions [as 别名]
#.........这里部分代码省略.........
self.api_token = self.args.api_token
# Make --list default if none of the other commands are specified
if (
not self.args.droplets
and not self.args.regions
and not self.args.images
and not self.args.sizes
and not self.args.ssh_keys
and not self.args.domains
and not self.args.all
and not self.args.host
):
self.args.list = True
###########################################################################
# Data Management
###########################################################################
def load_from_digital_ocean(self, resource=None):
"""Get JSON from DigitalOcean API"""
if self.args.force_cache:
return
# We always get fresh droplets
if self.is_cache_valid() and not (resource == "droplets" or resource is None):
return
if self.args.refresh_cache:
resource = None
if resource == "droplets" or resource is None:
self.data["droplets"] = self.manager.all_active_droplets()
self.cache_refreshed = True
if resource == "regions" or resource is None:
self.data["regions"] = self.manager.all_regions()
self.cache_refreshed = True
if resource == "images" or resource is None:
self.data["images"] = self.manager.all_images(filter=None)
self.cache_refreshed = True
if resource == "sizes" or resource is None:
self.data["sizes"] = self.manager.sizes()
self.cache_refreshed = True
if resource == "ssh_keys" or resource is None:
self.data["ssh_keys"] = self.manager.all_ssh_keys()
self.cache_refreshed = True
if resource == "domains" or resource is None:
self.data["domains"] = self.manager.all_domains()
self.cache_refreshed = True
def build_inventory(self):
"""Build Ansible inventory of droplets"""
self.inventory = {}
# add all droplets by id and name
for droplet in self.data["droplets"]:
dest = droplet["ip_address"]
self.inventory[droplet["id"]] = [dest]
self.push(self.inventory, droplet["name"], dest)
self.push(self.inventory, "region_" + droplet["region"]["slug"], dest)
self.push(self.inventory, "image_" + str(droplet["image"]["id"]), dest)
self.push(self.inventory, "size_" + droplet["size"]["slug"], dest)
image_slug = droplet["image"]["slug"]
if image_slug:
self.push(self.inventory, "image_" + self.to_safe(image_slug), dest)
else:
示例6: DoManager
# 需要导入模块: from dopy.manager import DoManager [as 别名]
# 或者: from dopy.manager.DoManager import all_regions [as 别名]
cliend_id = os.getenv("DO_CLIENT_ID")
api_key=os.getenv("DO_API_KEY")
do = DoManager(cliend_id, api_key)
keys = do.all_ssh_keys()
print "Nome da chave ssh\tid"
for key in keys:
print "%s\t%d" % (key["name"], key["id"])
print "Nome da imagem\tid"
imgs = do.all_images()
for img in imgs:
if img["slug"] == "ubuntu-14-04-x64":
print "%s\t%d" % (img["name"], img["id"])
print "Nome da regiao\tid"
regions = do.all_regions()
for region in regions:
if region["slug"] == "nyc2":
print "%s\t%d" % (region["slug"], region["id"])
print "Nome do tamanho\tid"
sizes = do.sizes()
for size in sizes:
if size["slug"] == "512mb":
print "%s\t%d" % (size["slug"], size["id"])