Example #1
0
 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 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