コード例 #1
0
    def create(self, req, body):
        LOG.debug(_('Creating new pool usages %s'), body)
        LOG.info(' Creating new pool usages')

        context = req.environ['vsm.context']
        pools = body['poolusages']

        appnode_id = pools[0]['appnode_id']
        appnode = db.appnodes_get_by_id(context, appnode_id)
        xtrust_user = appnode['xtrust_user']

        cinder_volume_host_list = [pool['cinder_volume_host'] for pool in pools]
        # id_list = [pool['id'] for pool in pools]

        # check openstack access
        host_list = []
        count_crudini = 0
        count_ssh = 0
        for host in cinder_volume_host_list:
            result, err = utils.execute(
                'check_xtrust_crudini',
                xtrust_user,
                host,
                run_as_root = True
            )
            LOG.info("========" + result)
            LOG.info("========" + err)
            if "command not found" in err:
                count_crudini = count_crudini + 1
                host_list.append(host)
            if "Permission denied" in err:
                count_ssh = count_ssh + 1
                host_list.append(host)
        if count_crudini != 0:
            return {'status': 'bad', 'host': list(set(host_list))}
        elif count_ssh != 0:
            return {'status': 'unreachable', 'host': list(set(host_list))}
        else:
            info = storagepoolusage.create(context, pools)
            LOG.info(' pools_info = %s' % info)
            self.scheduler_api.present_storage_pools(context, info)
            return {'status': 'ok', 'host': host_list}
コード例 #2
0
    def create(self, req, body):
        LOG.debug(_('Creating new pool usages %s'), body)
        LOG.info(' Creating new pool usages')

        context = req.environ['vsm.context']
        pools = body['poolusages']

        host_list = []
        count_crudini = 0
        count_ssh = 0
        host = []
        for pool in pools:
            appnode_id = pool['appnode_id']
            appnode = db.appnodes_get_by_id(context, appnode_id)
            auth_url = appnode['os_auth_url']
            os_controller_host = auth_url.split(":")[1][2:]
            ssh_user = appnode['ssh_user']
            if os_controller_host not in host:
                host.append(os_controller_host)
                result, err = utils.execute('check_xtrust_crudini',
                                            ssh_user,
                                            os_controller_host,
                                            run_as_root=True)
                LOG.info("==============result: %s" % result)
                LOG.info("==============err: %s" % err)
                if "command not found" in err:
                    count_crudini = count_crudini + 1
                    host_list.append(host)
                if "Permission denied" in err or "No passwd entry" in err:
                    count_ssh = count_ssh + 1
                    host_list.append(host)

        if count_crudini != 0:
            return {'status': 'bad', 'host': list(set(host_list))}
        elif count_ssh != 0:
            return {'status': 'unreachable', 'host': list(set(host_list))}
        else:
            info = storagepoolusage.create(context, pools)
            LOG.info(' pools_info = %s' % info)
            self.scheduler_api.present_storage_pools(context, info)
            return {'status': 'ok', 'host': host_list}
コード例 #3
0
    def create(self, req, body):
        LOG.debug(_('Creating new pool usages %s'), body)
        LOG.info(' Creating new pool usages')

        context = req.environ['vsm.context']
        pools = body['poolusages']

        host_list = []
        count_crudini = 0
        count_ssh = 0
        host = []
        for pool in pools:
            appnode_id = pool['appnode_id']
            appnode = db.appnodes_get_by_id(context, appnode_id)
            auth_url = appnode['os_auth_url']
            os_controller_host = auth_url.split(":")[1][2:]
            ssh_user = appnode['ssh_user']
            if os_controller_host not in host:
                host.append(os_controller_host)
                result, err = utils.execute('check_xtrust_crudini',
                                            ssh_user, os_controller_host,
                                            run_as_root = True)
                LOG.info("==============result: %s" % result)
                LOG.info("==============err: %s" % err)
                if "command not found" in err:
                    count_crudini = count_crudini + 1
                    host_list.append(host)
                if "Permission denied" in err or "No passwd entry" in err:
                    count_ssh = count_ssh + 1
                    host_list.append(host)

        if count_crudini != 0:
            return {'status': 'bad', 'host': list(set(host_list))}
        elif count_ssh != 0:
            return {'status': 'unreachable', 'host': list(set(host_list))}
        else:
            info = storagepoolusage.create(context, pools)
            LOG.info(' pools_info = %s' % info)
            self.scheduler_api.present_storage_pools(context, info)
            return {'status': 'ok', 'host': host_list}
コード例 #4
0
 def get_appnode(self, context, appnode_id):
     return db.appnodes_get_by_id(context, appnode_id)
コード例 #5
0
ファイル: manager.py プロジェクト: Sherlockpxy/VSM-for-fitos
 def get_appnode(self, context, appnode_id):
     return db.appnodes_get_by_id(context, appnode_id)