def get_env(cls, name=None, user=None, password=None): # A hook env will have this set api_addresses = os.environ.get('JUJU_API_ADDRESSES') if not api_addresses: # use the local option/connect which # parses local jenv info env = Environment.connect(name) else: env = Environment(api_addresses.split()[0]) env.login(user=user, password=password) return env
def connect_state_server(self): while True: try: log.debug('Connecting to state server for environment: %s', self.config.environment) return Environment.connect(self.config.environment) except KeyboardInterrupt: return except: log.exception('Could not connect to state server') log.debug('Retrying connection in 30 seconds') time.sleep(30)
def run(self): Gdk.threads_enter() try: env = Environment.connect(self.environment) status = env.status() machines = status.get('Machines', None).values() results = [] for machine in machines: results.append(Machine(machine)) self.emit('on_status', self.environment, results) except Exception as ex: self.emit('on_status_error', ex) finally: Gdk.threads_leave()
def run(self): Gdk.threads_enter() try: env = Environment.connect(self.environment) r = env.add_machine(series=self.series, constraints=self.constraints) machine_id = r.get('Machine') logger.debug( "Threaded watcher for id:%s on %s" % (machine_id, __name__)) threading.Thread(target=env.wait_for_machines, args=(machine_id, ), kwargs={ 'callbacks': { 'on_complete': self.on_machine_complete, 'on_process': self.on_machine_process, } }).start() except Exception as ex: self.emit('on_machine_error', ex) finally: Gdk.threads_leave()
def setUp(self): self.env = Environment.connect(ENV_NAME) self.bm = Backups(self.env)
def setUp(self): self.env = Environment.connect(ENV_NAME) self.keys = KeyManager(self.env)
def setUp(self): self.env = Environment.connect(ENV_NAME)
def setUp(self): self.env = Environment.connect(ENV_NAME) self.charms = Annotations(self.env)
def setUp(self): self.env = Environment.connect(ENV_NAME) self.charms = Charms(self.env)
def setUp(self): self.env = Environment.connect(ENV_NAME) self.actions = Actions(self.env) self.setupCharm()
def setUp(self): self.env = Environment.connect(ENV_NAME) self.um = UserManager(self.env)
import json from types import * from jujuclient import Environment env = Environment.connect('local') ############################################################# # General Environment Functions # Assuming: env = Environment.connect('local') ############################################################# def env_facades(): print('******************** Facades\n') obj=env.facades assert type(obj) is DictType, "obj is not a dictionary" print(obj) return def env_users(): print('\n\n******************** Users\n') obj=env.users.list() assert type(obj) is DictType, "obj is not a dictionary" print(obj) return def env_charms(): print('\n\n******************** Charms\n') obj=env.charms.list() assert type(obj) is DictType, "obj is not a dictionary"
def connect(self): # TODO TLS Conn Cache, underlying socket supports async, but client lib # we're using is synchronous based. return Client.connect(self.config.get_env_name())