blob: 78f8c032199d9b851dfb7c461dabd023fe5b725d [file] [log] [blame]
Jay Pipes7f757632011-12-02 15:53:32 -05001import os
2
Daryl Walleck1465d612011-11-02 02:22:15 -05003from storm.services.nova.json.images_client import ImagesClient
4from storm.services.nova.json.flavors_client import FlavorsClient
5from storm.services.nova.json.servers_client import ServersClient
Rohit Karajgie1b050d2011-12-02 16:13:18 -08006from storm.common.utils import data_utils
Daryl Walleck1465d612011-11-02 02:22:15 -05007import storm.config
8
9
10class Manager(object):
11
Jay Pipes7f757632011-12-02 15:53:32 -050012 DEFAULT_CONFIG_DIR = os.path.join(
13 os.path.abspath(
14 os.path.dirname(
15 os.path.dirname(__file__))),
16 "etc")
17
18 DEFAULT_CONFIG_FILE = "storm.conf"
19
Daryl Walleck1465d612011-11-02 02:22:15 -050020 def __init__(self):
21 """
22 Top level manager for all Openstack APIs
23 """
Jay Pipes7f757632011-12-02 15:53:32 -050024 # Environment variables override defaults...
25 config_dir = os.environ.get('TEMPEST_CONFIG_DIR',
26 self.DEFAULT_CONFIG_DIR)
27 config_file = os.environ.get('TEMPEST_CONFIG',
28 self.DEFAULT_CONFIG_FILE)
29 self.config = storm.config.StormConfig(config_dir, config_file)
Rohit Karajgie1b050d2011-12-02 16:13:18 -080030 self.auth_url = data_utils.build_url(self.config.nova.host,
31 self.config.nova.port,
32 self.config.nova.apiVer,
33 self.config.nova.path)
34
Daryl Walleck1465d612011-11-02 02:22:15 -050035 if self.config.env.authentication == 'keystone_v2':
Jay Pipes7f757632011-12-02 15:53:32 -050036 self.servers_client = ServersClient(self.config,
37 self.config.nova.username,
Daryl Walleck1465d612011-11-02 02:22:15 -050038 self.config.nova.api_key,
Rohit Karajgie1b050d2011-12-02 16:13:18 -080039 self.auth_url,
Daryl Walleck1465d612011-11-02 02:22:15 -050040 self.config.nova.tenant_name)
Jay Pipes7f757632011-12-02 15:53:32 -050041 self.flavors_client = FlavorsClient(self.config,
42 self.config.nova.username,
Daryl Walleck1465d612011-11-02 02:22:15 -050043 self.config.nova.api_key,
Rohit Karajgie1b050d2011-12-02 16:13:18 -080044 self.auth_url,
Daryl Walleck1465d612011-11-02 02:22:15 -050045 self.config.nova.tenant_name)
Jay Pipes7f757632011-12-02 15:53:32 -050046 self.images_client = ImagesClient(self.config,
47 self.config.nova.username,
Daryl Walleck1465d612011-11-02 02:22:15 -050048 self.config.nova.api_key,
Rohit Karajgie1b050d2011-12-02 16:13:18 -080049 self.auth_url,
Daryl Walleck1465d612011-11-02 02:22:15 -050050 self.config.nova.tenant_name)
51 else:
52 #Assuming basic/native authentication
Jay Pipes7f757632011-12-02 15:53:32 -050053 self.servers_client = ServersClient(self.config,
54 self.config.nova.username,
Daryl Walleck1465d612011-11-02 02:22:15 -050055 self.config.nova.api_key,
Rohit Karajgie1b050d2011-12-02 16:13:18 -080056 self.auth_url)
Jay Pipes7f757632011-12-02 15:53:32 -050057 self.flavors_client = FlavorsClient(self.config,
58 self.config.nova.username,
Daryl Walleck1465d612011-11-02 02:22:15 -050059 self.config.nova.api_key,
Rohit Karajgie1b050d2011-12-02 16:13:18 -080060 self.auth_url)
Jay Pipes7f757632011-12-02 15:53:32 -050061 self.images_client = ImagesClient(self.config,
62 self.config.nova.username,
63 self.config.nova.auth_url,
Daryl Walleck1465d612011-11-02 02:22:15 -050064 self.config.nova.api_key,
Rohit Karajgie1b050d2011-12-02 16:13:18 -080065 self.auth_url)