def required_num_units(self): charm_config, _ = get_charm_config() if 'swift-proxy' in charm_config: num_replicas = charm_config.get('replicas', self.default_replicas) else: num_replicas = self.default_replicas return num_replicas
def deploy(self, mspec): """Temporary override to get local copy of charm.""" log.debug("downloading stable branch from github") try: self.download_stable() log.debug("done: downloaded to " + CHARMS_DIR) except: log.exception("problem downloading stable branch." " Falling back to charm store version.") return super().deploy(mspec) kwds = dict(constraints=self.constraints_arg(), repodir=CHARMS_DIR, distro=CURRENT_DISTRO, mspec=mspec) # TODO: See if this is supported by juju api juju_home = self.config.juju_home(use_expansion=True) cmd = ('{juju_home} juju deploy --repository={repodir}' ' local:{distro}/glance-simplestreams-sync' ' --constraints {constraints} ' '--to {mspec}').format(juju_home=juju_home, **kwds) charm_config, _ = get_charm_config() if self.charm_name in charm_config: cmd += ' --config ' + CHARM_CONFIG_FILENAME try: log.debug("Deploying {} from local: {}".format( self.charm_name, cmd)) cmd_output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True) log.debug("Deploy output: " + cmd_output.decode('utf-8')) except subprocess.CalledProcessError as e: log.warning("Deploy error. rc={} out={}".format( e.returncode, e.output)) return True if os.path.exists( os.path.join(CHARMS_DIR, CURRENT_DISTRO, 'glance-simplestreams-sync')): if 'rabbitmq-server' not in self.related: self.related.append( ('rabbitmq-server:amqp', 'glance-simplestreams-sync:amqp')) log.debug("Added rabbitmq to relation list") return False
def deploy(self, mspec): """Temporary override to get local copy of charm.""" log.debug("downloading stable branch from github") try: self.download_stable() log.debug("done: downloaded to " + CHARMS_DIR) except: log.exception("problem downloading stable branch." " Falling back to charm store version.") return super().deploy(mspec) kwds = dict(constraints=self.constraints_arg(), repodir=CHARMS_DIR, distro=CURRENT_DISTRO, mspec=mspec) # TODO: See if this is supported by juju api juju_home = self.config.juju_home(use_expansion=True) cmd = ('{juju_home} juju deploy --repository={repodir}' ' local:{distro}/glance-simplestreams-sync' ' --constraints {constraints} ' '--to {mspec}').format(juju_home=juju_home, **kwds) charm_config, _ = get_charm_config() if self.charm_name in charm_config: cmd += ' --config ' + CHARM_CONFIG_FILENAME try: log.debug("Deploying {} from local: {}".format(self.charm_name, cmd)) cmd_output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True) log.debug("Deploy output: " + cmd_output.decode('utf-8')) except subprocess.CalledProcessError as e: log.warning("Deploy error. rc={} out={}".format(e.returncode, e.output)) return True if os.path.exists(os.path.join(CHARMS_DIR, CURRENT_DISTRO, 'glance-simplestreams-sync')): if 'rabbitmq-server' not in self.related: self.related.append(('rabbitmq-server:amqp', 'glance-simplestreams-sync:amqp')) log.debug("Added rabbitmq to relation list") return False