def get_credentials(self): os.environ['OS_REGION_NAME'] = self.get_region() osclients = OpenStackClients() keystone = osclients.get_keystoneclient() try: self.keystone.domains.find(name="default") return keystone except Exception as e: os.environ['OS_USER_DOMAIN_NAME'] = "Default" os.environ['OS_PROJECT_DOMAIN_ID'] = "default" os.environ['OS_REGION_NAME'] = "Spain2" osclients = OpenStackClients() return osclients.get_keystoneclient()
def __init__(self): """constructor""" self.osclients = OpenStackClients() self.keystone = self.osclients.get_keystoneclient() self.change_domain_name() self.password_changer = PasswordChanger(self.osclients) os.environ['OS_REGION_NAME'] = os.environ['REGION'] self.region_exists(os.environ['REGION'])
def __init__(self): """constructor, build the list of basic users included in users_to_delete.txt""" basic_type = settings.BASIC_ROLE_ID self.ids = set(line.strip() for line in open('users_to_delete.txt').readlines()) osclients = OpenStackClients() keystone = osclients.get_keystoneclientv3() self.users_basic = set( asig.user['id'] for asig in keystone.role_assignments.list(domain='default') if asig.role['id'] == basic_type and asig.user['id'] in self.ids)
def __init__(self, target): """Create a new Facade for the specified target (a target is shared between regions using the same credential)""" self.osclients = OpenStackClients(target['keystone_url']) self.osclients.set_credential(target['user'], target['password'], target['tenant']) if target.get('use_keystone_v3', False): self.osclients.set_keystone_version(True) else: self.osclients.set_keystone_version(False) self.session = self.osclients.get_session() self.target = target # This is a default value self.images_dir = '/var/lib/glance/images' self.logger = logger_cli
def __init__(self, persistence_dir='~/openstackmap', region=None, auth_url=None, objects_strategy=USE_CACHE_OBJECTS, auto_load=True): """ Constructor :param persistence_dir: The path where the data is saved. Ignored if objects_strategy is DIRECT_OBJECTS or NO_CACHE_OBJECTS :param region: the initial region (if undefined, use OS_REGION_NAME) :param auth_url: the keystone URI :param objects_strategy: sets the strategy about the object maps contained here. It can be: * DIRECT_OBJECTS is using the objects as they are got from the API. Be careful because methods as delete are available! The objects are not cached. * NO_CACHE_OBJECTS is using the objects converted to dictionaries, so methods to do operations are not available. The objects are not cached. * REFRESH_OBJECTS is using the objects converted to dictionaries. The objects are cached: the new version replace the old one. * USE_CACHE_OBJECTS is using the objects converted to dictionaries. If a cached copy of the objects are available, it is used. * USE_CACHE_OBJECTS_ONLY is using the objects converted to dictionaries. This strategy used cached objects only. It never contacts with the servers, even when the object is not available in the local cache. :param auto_load: if True, invoke self.load_all() Note that neutron objects returned by the API are already dictionaries """ self.logger = logging.getLogger(__name__) if auth_url: self.osclients = OpenStackClients(auth_url=auth_url) else: self.osclients = OpenStackClients() if region: self.osclients.set_region(region) else: if 'OS_REGION_NAME' not in env: raise Exception('Region parameter must be provided or ' 'OS_REGION_NAME variable must be defined.') else: region = env['OS_REGION_NAME'] if 'KEYSTONE_ADMIN_ENDPOINT' in os.environ: self.osclients.override_endpoint( 'identity', self.osclients.region, 'admin', os.environ['KEYSTONE_ADMIN_ENDPOINT']) self.objects_strategy = objects_strategy self.persistence_dir = os.path.expanduser(persistence_dir) self.pers_region = self.persistence_dir + '/' + region self.pers_keystone = self.persistence_dir + '/keystone' if objects_strategy not in (OpenStackMap.DIRECT_OBJECTS, OpenStackMap.NO_CACHE_OBJECTS): if not os.path.exists(self.persistence_dir): os.mkdir(self.persistence_dir) if not os.path.exists(self.pers_keystone): os.mkdir(self.pers_keystone) if not os.path.exists(self.pers_region): os.mkdir(self.pers_region) self._init_resource_maps() if auto_load: self.load_all() self.region_map = dict()
etckeystone_path = '/home/ubuntu/idm/keystone/etc/keystone.conf' # reset the password p2 = Popen(["curl", "http://169.254.169.254/openstack/latest/meta_data.json"], stdout=PIPE) metadatajson, err = p2.communicate() meta = json.loads(metadatajson)["meta"] keystone_ip = meta["keystone_ip"] region = meta["Region"] region2 = meta["region_keystone"] if region2: os.environ['OS_REGION_NAME'] = region2 wait_net_service(keystone_ip, 5000, timeout=720) osclients = OpenStackClients('http://{0}:5000/v3/'.format(keystone_ip)) osclients.set_credential('idm', 'idm', 'idm') # create idm region user password_changer = PasswordChanger(osclients) idm = password_changer.get_user_byname("idm") idm = password_changer.get_user_byname('idm') # new_password = password_changer.reset_password(idm) new_password = '******' credential = """export OS_AUTH_URL=http://{0}:5000/v3/ export OS_AUTH_URL_V2=http://{0}:5000/v2.0/ export OS_USERNAME={2} export OS_TENANT_NAME=idm
def return_credentails(self): os.environ['OS_USER_DOMAIN_NAME'] = "default" os.environ['OS_PROJECT_DOMAIN_NAME'] = "default" os.environ['OS_REGION_NAME'] = os.environ['REGION'] osclients = OpenStackClients() return osclients.get_keystoneclient()