SlapOS核心。
项目描述
TOMO TOMO
slapos.core
SlapOS的核心。包含SLAP库和slapos命令行工具。更多信息请见https://slapos.nexedi.com/。
变更
1.13.0 (2024-09-16)
slap: 默认软件类型现在是‘default’
testing: 允许在测试中不请求实例。
slap: 改进了无效实例参数的反馈。
proxy/db_version: 防止ResourceWarning。
testing: 在checkSoftware中不检查bin/phantomjs。
1.12.0 (2024-07-17)
format: 允许在tap没有name属性时记录。
testing: 在ldd检查中容忍libquadmath。
testing: 在ldd检查中容忍libtermcap。
testing: 在ldd检查中允许权限执行警告。
slapgrid: 改善了关于SoftwareReleaseSchema的错误处理。
slapgrid: 默认软件类型现在是‘default’
slapgrid: 停止将虚拟值推送到shadir。
1.11.0 (2024-01-17)
cli/request: 允许强制执行给定的序列化。
format: 不要从组中删除用户。
slapos/testing/e2e: 扩展基类以便可以请求SR并在之后删除它们。
1.10.8 (2023-12-14)
slapos/testing: 为slapos/software/end-to-end-testing添加e2e.py。
1.10.7 (2023-12-04)
slap/proxy: 使用新的门户类型“Compute Node”而不是“Computer”。
1.10.6 (2023-11-30)
slap/hateoas: 使用新的门户类型“Compute Node”而不是“Computer”。
1.10.5 (2023-11-24)
SlapObject: 修复supervisord配置生成。
1.10.4 (2023-10-12)
cli/info: 完成服务信息中的服务名称。
grid/utils: 修复_ReadAsJson中的未超时请求。
1.10.3 (2023-09-28)
slap/standalone: 修复具有0分区的格式。
slapos/grid: 改善关于networkcache的记录。
slapos/testing: 改善软件检查。
slap/standalone: 改善slapos分区格式化。
slapos/testing: 添加IPv6范围感知测试的实用工具。
cli/slapgrid: 当进程正在运行时,在连接到主节点之前中止。
slapgrid: 修复离线实例处理。
1.10.2 (2023-07-07)
slap/standalone: 增加slapos错误日志大小。
1.10.1 (2023-07-03)
slap/standalone: 当可用时使用IPv6范围。
testing: 因素化快照管理。
1.10.0 (2023-06-21)
slapgrid: 即使没有连接到主节点也启动服务。
grid/utils: 改善实例的python解析。
1.9.3 (2023-04-26)
slapgrid: 以干净的环境运行promise。
slapproxy: 修复Python2语法不兼容。
slapproxy: 在slapos服务列表/信息中显示共享。
cli/info: 报告实例是否共享。
slapformat: 修复特定代码路径中的崩溃。
cli/info: 在输出中包含软件类型。
slapformat: 修复ipv6_prefixshift错别字。
1.9.2 (2023-03-24)
console: 支持在传递脚本文件时传递参数。
format: 修复启动时sapos节点格式的错误。
client: 添加getInformation简写方法。
1.9.1 (2023-03-22)
format: 使用正确的IPv6前缀为tap。
format: 允许自定义IPv6范围大小。
node promise: 支持–only-cp参数。
proxy: 修复请求状态时的hateoas。
cli/info: 将instance-state重命名为requested-state。
cli/info: 在输出中包含新闻摘要。
1.9.0 (2023-03-09)
format: 为分区和tun添加IPv6范围。
cli/service info: 支持从SlapOS Master连接字典。
slapgrid: 将shared-parts-list添加到slap-connection。
proxy: 修复未准备好转发的请求导致崩溃。
format: 移除创建tun接口时不需要的iptables调用。
slapgrid: 实现分区超时参数(添加“partition-timeout”选项)。
1.8.6 (2023-01-25)
slappopen: 修复基于select的超时读取。
console: 修复使用脚本时slapos控制台的命名空间问题。
1.8.5 (2022-12-14)
slapos: 更新SlapOS网站url。
slapgrid: 修复使用SlapPopen启动promise时的停滞问题。
1.8.4 (2022-10-11)
服务列表,服务信息:输出json。
request: 不要获取前端软件发布的模式,加快slapos节点实例。
proxy: 在销毁转发分区后更新forwarded_partition_request表。
1.8.3 (2022-10-17)
format: 使用正确的IPv4为tun接口。
1.8.2 (2022-10-10)
slapproxy: 使转发请求的行唯一。
slapos 启动:在不连接主节点的情况下启动计算机分区
cli/request:当序列化类型未知时引发错误
1.8.1 (2022-09-06)
没有变化,新版本用于替换1.8.0(该版本存在打包错误)
1.8.0 (2022-09-01)
slapos.cfg:添加 lab.nxdcdn.com 端点
1.7.13 (2022-07-28)
格式:在 os_type 中添加更多信息
1.7.12 (2022-07-28)
slapgrid:修复 python3 中的 agregateAndSendUsage
1.7.11 (2022-07-21)
register:修复 python3 中的 slapconfig
register:如果配置文件在 /tmp 中,则不需要 root 权限
networkcache:修复 python3 中的 upload_network_cached
slapgrid:修复 python3 中的 _updateCertificate
1.7.10 (2022-07-11)
格式:修复 python3 的问题
1.7.9 (2022-07-06)
util:修复 getSerialisation
1.7.8 (2022-06-27)
cli:现在 slapos –version 也会显示 Python 版本
1.7.7 (2022-06-22)
slapgrid:修复 libnetworkcache 版本 0.24 之后的上传命令
console:设置 __file__ 如 Python 解释器所做的那样
testing:使错误信息更容易理解
1.7.6 (2022-04-14)
slapgrid:使用 distro.linux_distribution() 以支持 python >= 3.8
slapproxy:添加缺失的实例参数
tests:多项改进
standalone:在日志中去除 ansi 代码
slapgrid:修复与实例 python 相关的 promise 日志记录
cachelookup:引入 slapos cachelookup {url, binary-sr, pypi} 命令
cache:移除“slapos cache {lookup, source}”命令
1.7.5 (2022-03-21)
slapgrid:修复 bootstrapBuildout 的调用
1.7.4 (2022-03-16)
slapgrid:修复未将承诺记录到日志文件的问题
格式:只有当存在 tap_gateway_interface 选项时,才将 IPv4 给 tap 接口
格式:移除 use_unique_local_address_block 选项,因为它从未真正使用。用户可以在运行“slapos node format”之前在接口上添加本地 IPv6 范围。
1.7.3 (2022-02-17)
runpromises:支持比 slapos 1.0.118 更旧的软件版本
撤销“slap lib:禁用‘正在进行的未经验证的 HTTPS 请求’消息。”(当使用不安全的连接到主节点时,实际上是一个警告)
complete:为 –only-sr 和 –only-cp 提供补全(仅 fish shell)
testing/check_software:多项修复
1.7.2 (2021-12-15)
在二进制缓存中添加对不同架构的支持
cli/cache lookup:显示更好的信息(架构和签名)
1.7.1 (2021-12-10)
修复 1.7.0 中 python2 的缺失依赖项
1.7.0 (2021-12-10)
prune:添加对签名文件新名称的支持
slapproxy:修复软件 URL 迁移
slapgrid:使用实例 python 处理承诺
grid/utils/setRunning:检测 pid 已被回收的情况
cli/request:支持从文件传递实例参数
slap/request:当请求与模式不匹配的参数时发出警告
cli/request:在 PY2/PY3 上以一致格式打印实例参数
1.6.19 (2021-10-04)
grid:修复“实时记录 buildout 输出”
1.6.18 (2021-08-13)
core:尽可能晚地更新证书(重新实现)
cli/prune:修复可能的无穷递归
grid:实时记录 buildout 输出
cli/prune:修复未检测到递归实例中使用的部分的情况
1.6.17 (2021-08-02)
修复 1.6.16 中引入的问题(核心:尽可能晚地更新证书)
1.6.16 (2021-07-30)
slapos.cfg.example:修复 1.6.14 中引入的 bug
slapgrid:尽可能晚地更新证书
slap/standalone:在 waitForSoftware / waitForInstance 中不使用 –all
slapos_*:将托管订阅重新命名为实例树
testing/check_software:多项改进
collect:修复测试
core:尽可能晚地更新证书
1.6.14 (2021-06-21)
collect:默认启用磁盘使用情况
slap/standalone:启用 slapos node format
slapgrid:添加 –force-stop 选项
1.6.13 (2021-06-01)
cli/boot:使用日志系统在日志中添加时间
cli/boot:防止在引导时没有 IPv6 时出现 keyError
slapgrid:在从 git checkout 安装时记录 git 修订版本
slapproxy:添加 –local-software-release-root 选项
1.6.12 (2021-05-05)
slap/standalone:添加 slapos_bin 选项以指定 slapos 可执行文件的路径
1.6.11 (2021-05-05)
slapformat:修复在 dump 中的 python3 bytes/str 不匹配
1.6.10 (2021-05-03)
slap/standalone: 在代理配置中启用hateoas支持
1.6.9 (2021-04-27)
proxy: 添加最小hateoas支持(以支持“slapos服务列表”、“slapos计算机列表”等)
testing: 将libanl添加到白名单库列表中
1.6.8 (2021-03-29)
slapgrid: 即使没有更改,也会保存firewalld规则,但文件不存在
proxy: 总是为分区地址命名
cli: 默认使用https://panel.rapid.space(而不是https://slapos.vifib.com)
slapgrid: 即使承诺失败也会执行manager
1.6.7 (2021-03-29)
manager: 新增whitelistfirewall
1.6.6 (2021-03-08)
manager: 仅在devperm中使用lsblk
1.6.5 (2021-02-25)
proxy: 为转发请求添加前缀以消除歧义
1.6.4 (2021-02-09)
proxy: 不要设置应用日志器级别
slap/standalone: 添加slapos-node-auto服务
slap/standalone: 在supervisord中规范日志文件
cli: 即使使用–log-file,也在控制台输出
testing: 对软件升级测试的杂项修复
1.6.3 (2020-11-30)
slap/standalone: 让独立实例的supervisord控制实例supervisord
cli: 修复使用root slapos的slapos节点prune用法
slapgrid: 在比较os名称时使用小写,以便二进制缓存可以与debian和Debian一起工作
grid/utils: 设置PYTHONNOUSERSITE以防止损坏的用户站点包引起的问题
testing/testcase: 设置适当的默认软件类型
testing/testcase: 检查egg的已知漏洞
cli: fish shell补全
proxy: 支持分区销毁
1.6.2 (2020-09-17)
grid: 如果仍然存在,则继续使用之前的套接字路径名称:修复1.6.1中引入的导致第二个supervisor进程启动的关键问题
svcbackend: 当supervisord无法启动时,正确记录错误
testing/testcase: 快照更多文件
1.6.1 (2020-08-25)
svcbackend/standalone: 使用更短的supervisor套接字名称
testing: 几个小错误修复和微功能
tests/test_promise: 使用较长的超时以防止假阳性
1.6.0 (2020-07-15)
cli: 在非root环境中允许启动和bang命令
collect: 现在禁用FolderSizeSnapshot
collect: 垃圾收集的小优化
grid: 修复OS检测
grid: 在删除软件或分区目录时支持不可写文件和目录
grid: 尝试3次上传存档到二进制缓存
prune: 几个错误修复
proxy: 支持作为分区转发请求
standalone: 在slapos.cfg中支持设置多主
testing/testcase: 在ldd检查和快照中修复了几个错误
util: 使用安全变体或xml_marshaller
util: 介绍rmtree,它是shutil.rmtree的包装器,支持不可写文件和目录
1.5.12 (2020-04-07)
slapos/slap: 修复当参数dict是JSON格式时的“slapos服务信息”
1.5.11 (2020-04-03)
slapgrid: 修复manager: section支持
1.5.10 (2020-04-02)
prune: 修复在脚本中使用的部分检测
manager: 支持manager:devperm允许-disk-for-vm
manager: 在devperm中遵循链接
1.5.9 (2020-02-17)
Python 3.6的修复
cli/boot: 从配置中读取分区基本名称
1.5.8 (2020-02-03)
slapos/collect: 创建索引以加快垃圾收集速度
slapos/collect: 使用基于内存的日志记录加速响应
slapos/collect: 设置自动提交
slapos/collect: 默认不调用创建数据库
proxy: 支持从从节点移除
将测试扩展到检测使用系统库的共享库
1.5.7 (2020-01-15)
slapos/proxy: 更新从节点更改时的时间戳分区,修复了与slapproxy的从节点的问题
1.5.6 (2020-01-09)
slapos/grid/promise: 从已删除的承诺中清理插件文件夹,以及相应的旧json文件
slapos/grid: 在slapos.cfg中提供download-from-binary-cache-force-url-list选项支持
1.5.5 (2019-12-17)
slapos/format: 最小化IPv6地址更改
1.5.4 (2019-11-28)
slapos/format: 对netifaces的新版本进行修复
1.5.3 (2019-11-25)
slapos/grid/promise: 将默认承诺超时从3秒增加到20秒
slapos/proxy: 修复loadComputerConfigurationFromXML
slapos/cli: 在命令的帮助消息中进行了小改进
1.5.2 (2019-11-13)
slapos/grid/promise: 保存全局和公共状态
slapos/grid/promise: 扩展promise系统以生成历史和统计信息
testcase: setUpClass失败时的快照
slapos/collect: getint不支持回退
slapos/proxy: setComputerPartitionConnectionXml不更新时间戳
1.5.1 (2019-10-30)
添加新命令 slapos node promise 和 slapos node prune
promise: 在PromiseError中包含promise输出
grid: 在设置所有者权限时发生异常时删除临时目录
grid: 在构建前始终检查软件路径的所有权
slapos/collect: 使用UTC时间进行collector.db时间查询
collect: 关键的是可用内存(与未使用内存相反)
slapos/collect: 在数据库中保留条目15天
slapos/collect: 添加PartitionReport以替换slapos.toolbox collect代码
slapos/collect: 调用VACUUM以清理sql数据库大小。
standalone: 也清理supervisor配置
standalone: waitForInstance中仅包括30行错误
testcase: 改进泄露分区检测和清理
testcase: 在测试之间保留生成的文件和日志文件
testcase: 重试 slapos node report
testcase: 即使在不详细模式下也启用日志记录
1.5.0 (2019-10-03)
grid: 新的 shared_part_list 配置文件选项,用于定义哪些路径可以被slapos.recipe.cmmi用于共享构建。
proxy: 通过返回原始URL来绕过直接和KVM前端的前端请求,从而使实例承诺成功。
slap: 新的 StandaloneSlapOS 类,可轻松将slapos节点嵌入到应用程序中。
testing: 新的 SlapOSInstanceTestCase 测试用例,适用于软件发布测试。
1.4.28 (2019-10-01)
slapos/slap: 稳定connection_dict
slapos: 同步xml2dict和dict2xml
grid: 报告分区处理/承诺的摘要
1.4.27 (2019-09-17)
slap/hateoas: 在jio_allDocs中,如果未设置,则将查询限制增加到40
slap/hateoas: 清理,删除未使用的getRelatedInstanceInformation
1.4.26 (2019-08-13)
slap/hateoas: 修复和优化
slap/hateoas: 更新API的剩余部分以符合JIO规范
slap/promise: 将CRITICAL视为ERROR处理
1.4.25 (2019-08-02)
slap/hateoas: 修复hateaos API的路径
slapproxy: 实现softwareInstanceBang
slapproxy: 如果没有变化,则跳过实例化
grid: 修复GenericPromise.__bang中的错别字
Python 3支持修复
1.4.24 (2019-07-25)
slap: 使用hateoas的新API
slap: 使用cachecontrol以支持http缓存
新命令:slapos cache source以检查源缓存
新命令:slapos computer [info|list|token]
grid: 稳定服务列表以防止supervisord重启
1.4.23 (2019-06-05)
grid.promise: 加速承诺
format: 在获取公共IPv4时添加超时
slapos.slap: 如果不需要,则不发布有关软件的信息。
1.4.22 (2019-04-11)
slapproxy: 确保slapproxy在“slapos configure local”之后启动
1.4.21 (2019-03-26)
slapproxy: 在运行迁移时删除旧表。会制作一个作为单独sql文件的备份。
slapproxy: 将数据库版本更新到13,以强制删除旧表。
format: 修复taps的IPv4创建
1.4.20 (2019-03-08)
proxy: 与xml-marsheller 1.0.2兼容
1.4.19 (2019-03-06)
format: 确保与VM内部VM的路由正常
grid.promise: 缓存一些承诺信息以加快无测试和无异常检查
slapproxy: 修复请求中对非字符串(例如int)值的支持
slapproxy: 支持从从实例中的NULL键
1.4.18 (2019-02-06)
grid.promise: 如果运行无测试或无异常的承诺,则不写入执行时间戳
grid.promise: 如果承诺是无测试或无异常的,则发送EmptyResult
1.4.17 (2019-02-05)
grid.promise: 添加对没有测试或异常的承诺的支持
1.4.16 (2019-01-14)
format: 新的tap_iv6配置文件选项
format: 如果尚不存在,则转储分区资源信息
slapgrid: 在实例化时显式关闭分区文件记录器
1.4.15 (2018-12-11)
format: tap配置的bug
1.4.14 (2018-12-04)
format: 修复bug
1.4.13 (2018-11-26)
在MANIFEST.in上的小修复
1.4.12 (2018-11-26)
完全弃用no_bridge和bridge_name选项(已警告很长时间)
- create_tap = True 不会再创建连接到网桥的tap
它应该始终与tap_gateway_interface选项一起使用
如果tap_gateway_interface选项不存在,tap将具有默认网关(10.0.0.1)
1.4.11 (2018-09-28)
slapgrid-sr:不要不必要地重新引导
1.4.10 (2018-09-20)
将--buildout-debug命令行选项添加到slapos节点软件和slapos节点实例命令中,以在出错时启动buildout调试器。
在slapos proxy show中格式化打印序列化实例参数
添加devperm插件
1.4.9 (2018-07-31)
slapgrid:向IManager接口添加拆卸方法
manager:添加端口重定向管理器
proxy:如果尚不存在,则创建空的slaproxy数据库
slapgrid:向SlapObject.Partition添加方法,以对生成的supervisord配置进行更多控制
1.4.8 (2018-06-26)
格式:修复parse_computer_definition的损坏解析
grid.promise:如果终止不足,则杀死超时promise进程
grid.promise:避免在从队列发送或接收消息时阻塞进程
grid.promise:只有在问题第二次发生时,才在promise超时失败
slapgrid:不要设置minfds。select()不支持大于1023的文件描述符
slapgrid:设置文件描述符的最小数量。
1.4.7 (2018-04-08)
grid.promise:现在在PromiseProcess类中完成loadModule
collect:修复collect.db和collet.reporter上的小错误
grid:修复使用shutil.rmtree删除文件而不是目录
grid:运行buildout时不要隐藏$USER
grid:运行例如“node software”时不要向子进程泄露文件描述符。
1.4.6 (2018-03-29)
grid.promise:如果由于周期性而跳过promise,则使用之前的promise执行结果。
slapgrid:在检查promise异常时,如果状态发生变化,则更新主节点上的实例AccessStatus。
1.4.5 (2018-03-22)
slapos.collect.db:在用户表上创建索引以加快监控收集查询。
slapos.cli.console:支持新的slapos console script.py调用
slapos.grid.promise:在slapgrid中实现新的promise设计和promise启动器
slapos.collect:允许不调用boostrap进行连接,设置超时选项
1.4.4 (2018-01-25)
slap.initializeConnection:缓存主节点的Hateoas URL
slapos.grid:显式声明connection_parameter_hash,可能发生UnboundLocalError。
slapos.grid:重构checkpromise方法到utils,以便它可以被重用
1.4.3 (2017-11-08)
slapos.cli.grid:允许在配置文件中为每个软件子命令定义不同的pidfiles
slapos.cli.configure_local:从本地获取模板而不是进行http请求。
slapos.cli:更新获取人员证书和注册计算机的API
格式:修复更改分区数量时的tun接口的一些冲突
1.4.2 (2017-10-02)
slapos.collect:使内部API可作为库供第三方使用
1.4.1 (2017-09-25)
slapos.format:引入create_tun配置选项(默认为false)
slapos.cli:直接获取模板而不是依赖命名空间进行注册
slapos.grid:添加在分区预销毁阶段运行实例自定义脚本的插件
1.4.0 (2017-06-26)
slapos.grid:使用本地配置扩展主配置
slapos.format:导出分区的配置
slapos:改进日志和一般清理
slapos.manager:添加cpuset插件(用于cgroups)
slapos.format:添加TUN接口支持
slapos:实现插件系统
1.3.18 (2016-11-03)
更新主机的默认web网址为slapos.vifib.com
1.3.17 (2016-10-25)
slapos.grid:始终在分区被销毁时删除.timestamp和.slapgrid
slapos.proxy:将父分区的状态传播到子分区
slapos.grid:增加最小空间(1G)
slapos.grid:将slapgrid状态保存到分区
slapos.format:在格式化过程中删除passwd调用
svcbackend:明确调用可执行文件而不是使用Popen的‘executable’关键字。
slapos.grid:引入新的垃圾收集器以处理buildout忽略的实例
1.3.16 (2016-09-29)
slapos.format:包含磁盘使用情况报告。不要将cpu_load除以cpu核心数。
slapos.format:为slapuser设置登录shell并锁定密码登录
slapos.slap:不要发布从属机的相同连接参数。
slapos.proxy:允许更新分区的软件版本
1.3.15 (2015-12-08)
slapos.collect: 包含磁盘使用报告。不要将 cpu_load 除以 CPU 核心数。
1.3.14 (2015-10-27)
slapos.grid: 修复防火墙错误。
1.3.13 (2015-10-26)
slapos.grid: 防火墙接受选项以指定仅接受和拒绝的 IP 地址/网络。
1.3.12 (2015-10-15)
slapos.grid: 为使用 tap+route 接口的分区添加支持使用 firewalld 进行防火墙配置(用于 kvm 集群)。
1.3.11 (2015-09-25)
slapos.grid: 支持 shacache-ca-file 和 shadir-ca-file 选项。
1.3.10 (2015-04-28)
1.3.9 (2015-02-20)
slapos.format: 允许为每个分区格式化附加的文件夹列表,用作数据存储位置。
slapos.format: 允许在没有网桥的情况下创建 tap(当使用 create_tap 和 tap_gateway_interface 选项时),配置 IP 路由,使用为 tap 生成 ipv4 以从主机机器访问虚拟机。
slapos.grid: 更新生成的 buildout 文件,包含访问分区数据存储文件夹的信息。
1.3.8 (2015-02-04)
slapos 代理:允许从命令行指定/覆盖主机/端口。
1.3.7 (2015-01-30)
slapos.grid: 如果 software_release_url 为 None,则不要尝试处理分区。删除日志中的噪音错误。
slapos 节点报告:在从 supervisor 中删除进程时重试多次。
1.3.6.3 (2015-01-23)
slapos:使 forbid_supervisord_automatic_launch 通用。
1.3.6.2 (2015-01-22)
slapos.grid.svcbackend:在重启之前检查 watchdog 是否已启动。
1.3.6.1 (2015-01-19)
slapos:允许在不自动启动 supervisord 的情况下使用 supervisorctl。
slapos:在运行 CLI 时创建 supervisor 配置。
1.3.6 (2015-01-16)
supervisord:允许使用 –nodaemon 参数启动。
重命名:zc.buildout-bootstap.py -> zc.buildout-bootstrap.py。
更新 bootstrap.py。
slapproxy:添加缺少的 getComputerPartitionCertificate 方法。
slapos 启动:修复 ipv6 不可用时的错误报告。
1.3.5 (2014-12-03)
slapos.grid:不要始终睡眠 promise_timeout。相反,经常轮询,如果承诺完成则继续。此更改使处理分区时的速度提高两倍。
slapos.format:不要递归 chown 软件发布。
slapos.util:在 chownDirectory 中使用 find 进行 chown。
1.3.4 (2014-11-26)
slapos.slap hateoas:不带缓存获取 'me' 文档。
slapos.grid:报告:修复未绑定的 'destroyed' 变量。
slapos.slap:修复产品集合的 __getattr__,使 product.foo 工作。
slapos.cli info/list:使用原始打印而不是记录器。
1.3.3 (2014-11-18)
slapos.slap/slapos.proxy:修复回归:requests 库忽略空参数。
slapos.proxy:修复奴隶支持(再次)
1.3.2 (2014-11-14)
slapos.slap:解析 ipv6 并在缺少时添加括号。这对于请求是必要的,现在请求需要 ipv6 括号。
slapos.slap:在解析之前将 xml 从 unicode 转换为字符串(如果它是 unicode)。
1.3.1 (2014-11-13)
slapos.proxy:修复奴隶支持。
1.3.0 (2014-11-13)
引入 slapos 列表和 slapos 信息 CLI。
slapos 格式:修复 use_unique_local_address_block 功能,并在 configure_local 中将默认值设置为 false。
1.2.4.1 (2014-10-09)
slapos 格式:不要 chown 分区。
slapos 格式:alter_user 再次默认为 true。
1.2.4 (2014-09-23)
slapos.grid:添加对 retention_delay 的支持。
1.2.3.1 (2014-09-15)
通用:添加与 cliff 1.7.0 的兼容性。
测试:防止 slap 测试泄露其 stubs/mocks。
1.2.3 (2014-09-11)
slapos.proxy:添加多主基本支持。
1.2.2 (2014-09-10)
slapos.collect:压缩历史日志并修复文件夹权限。
1.2.1 (2014-08-21)
slapproxy:如果需要,添加自动迁移到新数据库模式。
1.2.0 (2014-08-18)
注意:尚未作为 egg 正式发布。
slapproxy:添加对奴隶、instance_guid、state 的正确支持。
slapproxy:添加 getComputerPartitionStatus 模拟支持。
slapproxy:添加多节点支持
1.1.2 (2014-06-02)
小修复
1.1.1 (2014-05-23)
删除旧命令
引入 SlapOS 节点收集
1.0.5 (2014-04-29)
修复 slapgrid 命令返回码
slapos proxy start 不需要以 root 身份启动
1.0.2.1 (2014-01-16)
修复
在 slap 库中添加与旧 slapproxy(<1.0.1)的向后兼容性
1.0.1 (2014-01-14)
新功能
添加 configure-local 命令用于独立 slapos [Cedric de Saint Martin/Gabriel Monnerat]
修复
修复 slapproxy 缺少的 _connection_dict [Rafael Monnerat]
1.0.0 (2014-01-01)
新功能
slapconsole:使用 readline 进行补全和历史记录。[Jerome Perrin]
slapos 控制台:支持 ipython 和 bpython [Marco Mariani]
初始 Windows 支持。[Jondy Zhao]
支持命令行工具中的新/更改的参数,这些参数在文档中定义。[Marco Mariani]
注册:支持一次性认证令牌。[Marco Mariani]
新命令:“slapos configure client” [Marco Mariani]
在 slapos 配置文件中添加新的“root_check”选项(默认为 true),允许绕过 slapos 中的“我是 root 吗”检查。[Cedric de Saint Martin]
添加对 getSoftwareReleaseListFromSoftwareProduct() SLAP 方法的支持。[Cedric de Saint Martin]
在请求、供应和控制台添加对软件产品的支持。[Cedric de Saint Martin]
主要改进
对入口点进行重大重构,明确定义所有可能的命令行参数,将逻辑与 arg/conf 解析和日志设置分离,清理大多数参数,并为每个命令添加帮助和文档。[Marco Mariani]
正确处理常见错误:打印错误消息而不是堆栈跟踪。[Marco Mariani]
显著提高 slapformat 的速度。[Cedric de Saint Martin]
从 Buildout 环境中移除 CONFIG_SITE 环境变量,修复了 OpenSuse 12.x 的支持。[Cedric de Saint Martin]
RootSoftwareInstance 现在是默认的软件类型。[Cedric de Saint Martin]
允许在共享 SlapOS 节点中部署的实例使用 SlapOS 客户端。[Cedric de Saint Martin]
其他修复
拒绝以非 root 用户运行“slapos node”命令。[Marco Mariani]
注册:用 SlapOS Master 替换所有对 vifib 的引用。[Cedric de Saint Martin]
看门狗:如果 bang 已经被调用但问题尚未解决,则不会再次调用 bang。[Cédric de Saint Martin]
Slapgrid:避免在 Popen() 的 stdout/log 中出现虚假的空行。[Marco Mariani]
Slapgrid:正确包含包含任何 SR 信息的任何分区在要处理的分区列表中。[Cedric de Saint Martin]
Slapgrid:在定义的周期性之后删除时间戳文件。修复了实例在一段时间后失败但仍被视为有效的情况。[Cedric de Saint Martin]
Slapgrid:修复了令人恐惧但无害的警告,修复了语法错误,删除了对 ViFiB 的引用。[Cedric de Saint Martin, Jérome Perrin, Marco Mariani]
Slapgrid:修复了 Python >= 2.6 的支持。[Arnaud Fontaine]
Slapgrid:仅在我们有上传信息的情况下检查 SR 是否在黑名单中。[Cedric de Saint Martin]
Slapgrid:覆盖 $HOME 为 software_path 或 instance_path。修复像 /opt/slapgrid/.npm 这样的文件泄露问题。[Marco Mariani]
Slapgrid:始终检索证书和密钥,如果内容更改则更新文件。修复“快速且脏”的手动 slapos.cfg 交换(节点 ID 的更改)。[Marco Mariani]
Slapformat:确保每个人都可以读取 slapos 配置目录。[Cedric de Saint Martin]
Slapformat:修复对 slapproxy 的支持。[Marco Mariani]
Slapformat:slapos.xml 备份:在每次更改时将 slapos.xml 备份到 zip 存档。[Marco Mariani]
Slapformat:不要每次都删除每个用户的 shell 信息。允许轻松调试。[Cédric de Saint Martin]
0.35.1 (2013-02-18)
新功能
在 SLAP 库中添加 ComputerPartition._instance_guid getter。[Cedric de Saint Martin]
在 slapproxy 中添加 ComputerPartition._instance_guid 支持。[Cedric de Saint Martin]
修复
修复在部署实例时如果 SR 未正确安装时检查链接存在性的问题。这修复了一个误导性的错误。[Cedric de Saint Martin]
改进用户请求时的显示信息。[Cedric de Saint Martin]
当尝试从获取器获取时不存在 _requested_state 时,提高 NotReady。[Cedric de Saint Martin]
0.35 (2013-02-08)
slapos:在帮助信息中显示版本号。[Marco Mariani]
slapformat:在每次更改时将 slapos.xml 备份到 zip 存档。[Marco Mariani]
slapformat:在尝试添加已存在的地址时不要检查 ipv4 的有效性。[Cedric de Saint Martin]
slapgrid:为更容易调试创建并运行 $MD5/buildout.cfg。[Marco Mariani]
slapgrid:如果 cp.error() 或 sr.error() 有问题,则保持运行(修复 20130119-744D94)。[Marco Mariani]
slapgrid 在没有证书时不会崩溃(修复 #20130121-136C24)。[Marco Mariani]
添加 slapproxy-query 命令。[Marco Mariani]
其他小的拼写/输出修复。
0.34 (2013-01-23)
- networkcache:仅匹配 Debian 中的主要版本号,
修复了 Ubuntu 的平台检测。[Marco Mariani]
在每个分区中创建软件_release 的符号链接。[Marco Mariani]
slapos客户端:在给出配置文件位置时,正确展开“~”。[Cedric de Saint Martin]
slapgrid:停止应该停止的实例,即使构建或报告失败。[Cedric de Saint Martin]
slapgrid:不要定期强制处理已停止的实例。[Cedric de Saint Martin]
slapgrid:处理通过不同入口点启动的slapgrid的pid文件。[Cedric de Saint Martin]
看门狗:使用正确的实例证书调用Bang。[Cedric Le Ninivin]
看门狗:修复看门狗调用。[Cedric le Ninivin]
在每个分区中添加所使用软件版本的符号链接。[Marco Mariani]
slapformat默认情况下是详尽的。[Cedric de Saint Martin]
- slapproxy:通过instance_guid过滤,允许计算机分区重命名
和更改software_type和requested_state。[Marco Mariani]
slapproxy:即使buildout/reporting错误,也停止实例。[Cedric de Saint Martin]
slapproxy:实现softwareInstanceRename方法。[Marco Mariani]
slapproxy:允许对software_type的请求。[Marco Mariani]
许多其他小修复。请参阅git diff以获取详细信息。
0.33.1 (2012-11-05)
修复“slapos console”参数解析。[Cedric de Saint Martin]
0.33 (2012-11-02)
- 继续改进新的入口点。以下现在功能正常
slapos节点格式
slapos节点启动/停止/重启/尾
slapos节点supervisord/supervisorctl
slapos节点供应
并添加基本用法。[Cedric de Saint Martin]
添加对“SLAPOS_CONFIGURATION”和SLAPOS_CLIENT_CONFIGURATION环境变量的支持。(提交c72a53b1)[Cédric de Saint Martin]
–only_sr也接受纯文本URI。[Marco Mariani]
0.32.3 (2012-10-15)
slapgrid:采用新的返回值策略(0=OK,1=失败,2=承诺失败)(提交5d4e1522)。[Cedric de Saint Martin]
slaplib:添加requestComputer(提交6cbe82e0,aafb86eb)。[Łukasz Nowak]
slapgrid:向supervisor添加stopasgroup和killasgroup(提交36e0ccc0)。[Cedric de Saint Martin]
slapproxy:默认情况下不进入调试模式(提交e32259c8)。[Cédric Le Ninivin
SlapObject:始终删除tmpdir(提交a652a610)。[Cedric de Saint Martin]
0.32.2 (2012-10-11)
slapgrid:删除默认延迟,因为SlapOS Master现在像光一样快(tm)。(提交03a85d6b8)[Cedric de Saint Martin]
修复v0.31中引入的看门狗入口点名称。(提交a8651ba12)[Cedric de Saint Martin]
slapgrid:更好地过滤实例,不再处理假阳性(希望如此)。(提交ce0a73b41)[Cedric de Saint Martin]
各种输出改进。[Cedric de Saint Martin]
0.32.1 (2012-10-09)
slapgrid:确保错误日志发送到SlapOS master。完成在0.32中开始的实现。[Cedric de Saint Martin]
slapgrid:在没有任何SR的非空分区的情况下修复使用报告。[Cedric de Saint Martin]
0.32 (2012-10-04)
引入新的、更简单的“slapos”入口点。有关更多信息,请参阅文档。注意:此新入口点的某些功能尚不可用或不如预期简单。[Cedric de Saint Martin,Cedric Le Ninivin]
改进“slapos请求”,使其符合文档中的描述。[Cédric Le Ninivin,Cédric de Saint Martin]
重写slapgrid记录器,始终记录到stdout。(提交a4d277c881,5440626dea)[Cédric de Saint Martin]
0.31.2 (2012-10-02)
更新slapproxy行为:当实例已存在时,仅更新partition_parameter_kw。(提交317d5c8e0aee)[Cedric de Saint Martin]
0.31.1 (2012-10-02)
修复slapgrid中的看门狗调用。[Cédric Le Ninivin]
0.31 (2012-10-02)
在supervisord中将slapos-watchdog添加到实例中已退出的和失败的服务。(提交16b2e8b8,1dade5cd7)[Cédric Le Ninivin]
在调用SlapOS Master之前添加安全检查,如果SLAP类的强制实例成员未正确设置。这将导致在脏情况下对SlapOS Master的调用更少。(提交5097e87c9763,5fad6316a0f6d,f2cd014ea8aa)[Cedric de Saint Martin]
为实例添加“periodicty”功能支持:如果实例在定义的时间后未被slapgrid处理,则处理它。(提交7609fc7a3d,56e1c7bfbd)[Cedric Le Ninivin]
slapproxy:在奴隶支持方面进行了各种改进(提交96c6b78b67,bcac5a397d,fbb680f53b)[Cedric Le Ninivin]
slapgrid: 防弹 slapgrid-cp:如果一个实例有问题,仍然处理所有其他实例。(提交 bac94cdb56, 77bc6c75b3d, bd68b88cc3)[Cedric de Saint Martin]
添加对“上传到二进制缓存”URL黑名单的支持 [Cedric de Saint Martin]
通过请求者和名称识别代理上的请求(提交 0c739c3)[Cedric Le Ninivin]
0.30 (2012-09-19)
在 slapproxy 中添加初始的“从实例”支持 [Cedric Le Ninivin]
slapgrid-ur 修复:只有在我们必须销毁它时才检查分区信息 [Cedric de Saint Martin]
0.29 (2012-09-18)
buildout:将 slap_connection 魔法实例配置部分迁移到 slap-connection,并使用以“-”分隔的变量名称 [Cedric de Saint Martin]
slapgrid:添加对 instance.cfg 实例配置文件的支持 [Cedric de Saint Martin]
slapgrid-ur:大幅减少对主节点的调用 [Cedric de Saint Martin]
0.28.9 (2012-09-18)
slapgrid:不要处理未更新的分区(0.28.7 中引入的回归)。[Cedric de Saint Martin]
0.28.8 (2012-09-18)
slapgrid:不要处理空闲分区(0.28.7 中引入的回归)。[Cedric de Saint Martin]
0.28.7 (2012-09-14)
slapgrid:–maximal_delay 重新出现在特殊情况下使用。[Cedric de Saint Martin]
0.28.6 (2012-09-10)
register 现在从主节点使用 slapos.cfg.example。[Cédric Le Ninivin]
0.28.5 (2012-08-23)
更新 register 使用的 slapos.cfg。[Cédric Le Ninivin]
0.28.4 (2012-08-22)
修复 egg 构建。
0.28.3 (2012-08-22)
在系统检查时避免创建人工 tap。[Łukasz Nowak]
0.28.2 (2012-08-17)
解决 register 中的路径问题 [Cédric Le Ninivin]
0.28.1 (2012-08-17)
解决关键命名冲突。
0.28 (2012-08-17)
引入“slapos 节点注册”命令,它会将计算机注册到 SlapOS 主节点(默认为 vifib.net)。[Cédric Le Ninivin]
在 slapgrid 认为没问题(承诺、……)之后,才在分区中设置 .timestamp。[Cedric de Saint Martin]
slapgrid-ur:在销毁(不报告)时,只关注要销毁的实例,完全忽略其他实例。[Cedric de Saint Martin]
0.27 (2012-08-08)
slapformat:在没有 IPv6 可用的情况下选择接口时,引发正确的错误。[Cedric de Saint Martin]
- slapgrid:引入 –only_sr 和 –only_cp。
only_sr 过滤器和强制运行单个 SR,并使用 url_md5(folder_id)。
only_cp 过滤器,指定计算机分区,将被运行。它可以是一个列表,由逗号分隔(slappartX,slappartY …)[Rafael Monnerat]
slapgrid:清理未使用的选项(–usage-report-periodicity)。[Cedric de Saint Martin]
slapgrid:–develop 也将适用于计算机分区。[Cedric de Saint Martin]
slaplib:setConnectionDict 不会在参数没有变化时调用主节点。[Cedric de Saint Martin]
0.26.2 (2012-07-09)
在 SlapOS 节点代码库中定义 UTF-8 编码,如 PEP-263 所定义。
0.26.1 (2012-07-06)
slapgrid-sr:添加 –develop 选项以使其忽略 .completed 文件。[Cedric de Saint Martin]
SLAP 库:现在可以获取整个连接参数字典。[Cedric de Saint Martin]
SLAP 库:现在可以获取单个实例参数。[Cedric de Saint Martin]
SLAP 库:更改 Computer 和 ComputerPartition 的行为,以便正确缓存计算机分区参数。[Cedric de Saint Martin]
0.26 (2012-07-05)
slapformat:no_bridge 选项变为 ‘not create_tap’。create_tap 默认为 true。因此默认使用桥接,并创建 tap。[Cedric de Saint Martin]
为 slapformat 添加延迟。[Cedric Le Ninivin]
如果没有提供 software_type,则使用默认值(例如,修复请求新实例时发生的“错误 500”)。[Cedric de Saint Martin]
slapgrid:基于承诺的软件发布,新的 API 从服务器获取完整的计算机信息。[Yingjie Xu]
slapproxy:新的 API 模拟完整的计算机信息 [Yingjie Xu]
slapgrid:微调随机延迟功能。[Yingjie Xu]
slapgrid:优化 slapgrid-cp,仅在服务器端有更新时运行 buildout。[Yingjie Xu]
libslap:允许访问 ServerError。[Vincent Pelletier]
0.25 (2012-05-16)
修复配置文件中 no_bridge 选项对某些值的支持:no_bridge = false 被声明为 true。[Cedric de Saint Martin]
在调用 slapgrid 之前延迟随机时间段。[Yingjie Xu]
slapformat: 当设置no_bridge时,不需要tunctl [Leonardo Rochael]
slapformat: 在创建地址时移除猴子补丁,以避免返回假阳性。 [Cedric de Saint Martin]
各种:更清晰的错误信息。
0.24 (2012-03-29)
以用户友好的方式处理不同的错误 [Cedric de Saint Martin]
slapgrid: 支持软件销毁。 [Łukasz Nowak]
slap: 添加对Supply.supply状态参数(可用、销毁)的支持 [Łukasz Nowak]
0.23 (2012-02-29)
slapgrid : 当shacache未配置时,不要创建软件发布的tar包。 [Yingjie Xu]
0.22 (2012-02-09)
slapformat : 添加no-bridge功能。 [Cedric de Saint Martin]
slapgrid : 添加二进制缓存支持。 [Yingjie Xu]
0.21 (2011-12-23)
slap: 添加重命名API。 [Antoine Catton]
0.20 (2011-11-24)
slapgrid: 支持无服务分区。 [Antoine Catton]
slapgrid: 在降权时避免gid冲突。 [Antoine Catton]
slapgrid: 在使用报告期间降低网络使用。 [Łukasz Nowak]
一般:添加sphinx文档。 [Romain Courteaud]
0.19 (2011-11-07)
bang: 可执行文件,可由被敲击的计算机调用。 [Łukasz Nowak]
0.18 (2011-10-18)
修复0.17版本:slap库缺少更改。 [Łukasz Nowak]
0.17 (2011-10-18)
slap: 避免底层的请求。 [Łukasz Nowak]
slap: 提供 ComputerPartition.bang。它允许更新树中的所有实例。 [Łukasz Nowak]
slap: 提供 Computer.bang。它允许敲击计算机上的所有实例。 [Łukasz Nowak]
0.16 (2011-10-03)
slapgrid: 修复0.15中引入的slapgrid的bug。 [Łukasz Nowak]
0.15 (2011-09-27)
slapgrid: 尽早清理环境变量。 [Arnaud Fontaine]
slap: 修复docstring的bug。 [Sebastien Robin]
slap: 使请求异步调用。 [Łukasz Nowak]
0.14 (2011-08-31)
slapgrid: 实现基于SSL的shadir和shacache身份验证。 [Łukasz Nowak]
slapgrid, slap: 修复使用报告打包列表生成问题。 [Nicolas Godbert]
0.13 (2011-08-25)
slapgrid: 实现软件签名和shacache上传。 [Lucas Carvalho]
slap: 支持从实例 [Gabriel Monnerat]
slapformat: 总是为计算机生成地址 [Łukasz Nowak]
slapgrid: 支持promises脚本 [Antoine Catton]
一般:slapos.core获得测试。 [多位贡献者]
0.12 (2011-07-15)
包括应包含在0.11中的修改。
0.11 (2011-07-15)
修复bug:slapconsole:简写方法request和supply现在正确返回一个对象。 [Cedric de Saint Martin]
0.10 (2011-07-13)
修复slapconsole中的bug,其中request和supply简写方法不接受所有必要的参数。 [Cedric de Saint Martin]
0.9 (2011-07-11)
slapconsole:简化使用并使用配置文件。现在您只需运行slapconsole并输入类似“request(kvm, 'mykvm')”的内容。 [Cedric de Saint Martin]
slapformat:修复Linux >= 2.6.39上桥接未连接到真实接口的问题 [Arnaud Fontaine]
slapformat:允许只使用IPv6接口,同时桥接仍然支持本地IPv4堆栈。 [Łukasz Nowak]
0.8 (2011-06-27)
slapgrid:修复临时扩展缓存权限的bug。 [Łukasz Nowak]
0.7 (2011-06-27)
slapgrid:在自身搜索路径中回退到buildout。 [Łukasz Nowak]
0.6 (2011-06-27)
slap:修复bug:状态应当被XML封装。 [Łukasz Nowak]
0.5 (2011-06-24)
slapgrid:使用临时扩展缓存目录以加快远程配置文件刷新。 [Łukasz Nowak]
0.4 (2011-06-24)
一般:调整需求版本。 [Arnaud Fontaine]
一般:删除libnetworkcache。 [Lucas Carvalho]
slap:从接口中删除不必要的函数。 [Romain Courteaud]
slap:接受并传输到SlapOS主机的状态参数 [Łukasz Nowak]
slapformat:实现dry run。 [Vincent Pelletier]
slapgrid:允许选择用于引导环境的任何buildout二进制文件。 [Łukasz Nowak]
0.3 (2011-06-14)
slap:在OpenOrder.request中实现SLA by filter_kw。 [Łukasz Nowak]
slap:超时网络操作。 [Łukasz Nowak]
slapformat:将slapsoft和slapuser*系统用户设置为系统用户。 [Kazuhiko Shiozaki]
slapgrid:增加对supervisord的容错性。 [Łukasz Nowak]
0.2 (2011-06-01)
将所需文件包含在分发中 [Łukasz Nowak]
0.1 (2011-05-27)
将slapos.slap、slapos.tool.console、slapos.tool.format、slapos.tool.grid、slapos.tool.libnetworkcache和slapos.tool.proxy合并为单个包:slapos.core
控制台
slapconsole工具允许通过SLAP库与SlapOS Master进行交互。
有关SlapOS或slapconsole的更多信息,请访问 https://slapos.nexedi.com。
slapconsole 工具仅是一个带有几个全局变量定义和初始化的裸 Python 控制台。
初始化和配置文件
slapconsole 允许自动连接到主服务器,使用给定的 slapos.cfg 中的 URL 和 SSL 证书。证书必须是 USER 证书,需要从 SlapOS 主服务器 Web 接口手动获取。
slapconsole 工具读取给定的 slapos.cfg 配置文件,并使用以下信息:
主服务器 URL 从“[slapos]”部分的“master_url”参数中读取。
SSL 证书从“[slapconsole]”部分的“cert_file”参数中读取。
SSL 密钥从“[slapconsole]”部分的“key_file”参数中读取。
有关示例,请参阅 slapos.cfg.example。
全局函数/变量
“request()”是 slap.registerOpenOrder().request() 的简写,允许请求实例。
“supply()”是 slap.registerSupply().supply() 的简写,允许请求软件安装。
有关这些方法的更多信息,请阅读 SLAP 库文档。
“product”是 slap.SoftwareProductCollection 的实例,其唯一目标是检索给定软件产品的最佳软件版本 URL 属性。对于每个属性调用,它将从 SlapOS 主服务器检索最佳可用的软件版本 URL 并返回它。
这允许用几句话请求实例,即
request("http://www.url.com/path/to/current/best/known/kvm/software.cfg", "mykvm")可以简化为
request(product.kvm, "mykvm")“slap”是 SLAP 库的实例。它仅用于高级用法。“slap”实例通过以下方式获得
slap = slapos.slap.slap() slap.initializeConnection(config.master_url, key_file=config.key_file, cert_file=config.cert_file)
示例
>>> # Request instance >>> request(product.kvm, "myuniquekvm") >>> # Request instance on specific computer >>> request(product.kvm, "myotheruniquekvm", filter_kw={ "computer_guid": "COMP-12345" }) >>> # Request instance, specifying parameters (here nbd_ip and nbd_port) >>> request(product.kvm, "mythirduniquekvm", partition_parameter_kw={"nbd_ip":"2a01:e35:2e27:460:e2cb:4eff:fed9:48dc", "nbd_port":"1024"}) >>> # Request software installation on owned computer >>> supply(product.kvm, "mycomputer") >>> # Fetch existing instance status >>> request(product.kvm, "myuniquekvm").getState() >>> # Fetch instance information on already launched instance >>> request(product.kvm, "myuniquekvm").getConnectionParameter("url")
格式
slapformat 是一个应用程序,用于准备 SlapOS 就绪节点,以便在 SlapGrid 云中使用。
它通过以下方式“格式化”机器:
创建用户和组
创建需要的 tap 接口
创建 TUN 接口
创建需要的目录,并设置正确的所有权和权限
(可选的 manager) 为 slapos 创建 cgroup 资源树
它从 /etc/opt/slapos/slapos.cfg 读取配置,并相应地格式化计算机。变量包括分区数量、IP 地址、存储和网络接口。
格式将文件上传到配置的 SlapOS 主服务器。
格式将每个分区的已分配资源转储到 JSON 文件 ~/.slapos-resource,每个分区一个文件。该文件包含网络接口、IP 地址范围和端口范围。资源约束可以递归折叠。
还提供了可插拔的格式化部分。它们被称为 Manager,可以通过配置属性 manager_list 启用或禁用。
此程序应由 root 运行。
要求
支持 IPv6 和 tap 接口的 Linux。
二进制文件
groupadd
ip
useradd
grid
slapgrid 是 SlapOS 的客户端。SlapOS 提供在一分钟内部署 SaaS 系统的支持。Slapgrid 允许您轻松地基于 buildout 配置文件部署软件实例。有关 SLAP 和 SlapOS 的更多信息,请参阅 SLAP 文档。
要求
一个包含有关您计算机信息的正常工作的 SLAP 服务器,以便检索这些信息。
由于 Vifib 服务器仅使用 IPv6,我们强烈建议使用启用 IPv6 的 UNIX 机器。
出于相同的原因,Python >= 2.6 及其开发头文件也强烈推荐(IPv6 支持在先前版本中不完整)。
目前,需要 gcc 和 glibc 开发头文件来构建大多数软件版本。
概念
以下是 slapgrid 的基本概念:软件版本(SR)只是软件。计算机分区(CP)是软件版本的实例。想象一下,您想使用 slapgrid 安装某些软件并运行它。您必须将软件作为软件版本安装,然后将其实例化,即配置为满足您的需求,作为计算机分区。
它的工作原理
运行时,slapgrid将使用computer_id验证SLAP库,并获取要安装或删除的软件版本列表以及要启动或停止的计算机分区列表。然后,它将处理每个软件版本和每个计算机分区。它还将定期向SLAP发送每个计算机分区的使用报告。
安装
使用easy_install
$ easy_install slapgrid
在运行之前,slapgrid需要创建和配置几个目录:一个软件版本目录,以及一个包含配置好的计算机分区目录的实例目录。您应该为每个创建的计算机分区目录创建一个特定的用户,并将其与其计算机分区目录关联起来。每个计算机分区目录应属于此特定用户,权限为0750。
使用方法
slapgrid运行需要一些信息。您可以通过添加参数到slapgrid命令行或将其放入配置文件中指定它们。请注意:您需要在服务器端有一个有效的计算机资源。
示例
简单示例:只需运行slapgrid
$ slapgrid –instance-root /path/to/instance/root –software-root /path/to/software_root –master-url https://some.server/some.resource –computer-id my.computer.id
配置文件示例
[slapgrid] instance_root = /path/to/instance/root software_root = /path/to/software/root master_url = https://slapos.server/slap_service computer_id = my.computer.id
然后运行slapgrid
$ slapgrid --configuration-file = path/to/configuration/file
slapos.manager
Manager是一个类似插件的类,它在slapos节点生命周期的多个阶段中运行。
格式,manager可以额外格式化底层操作系统
软件,manager可以对软件安装做出反应
实例,manager可以频繁更新实例运行时
构造函数将接收当前阶段的配置。然后每个方法接收与当前操作最相关的对象。有关详细信息,请参阅 <slapos/manager/interface.py>。
在代码中,可以通过以下方式轻松检索管理器实例列表:
from slapos import manager manager_list = manager.from_config(config)
其中 from_config 从类似于 config 的字典中提取“manager_list”项,然后在 slapos.manager 包内部动态加载根据配置命名的模块。管理器必须是名为Manager的类,并实现 slapos.manager.interface.IManager 接口。
管理器可能需要一个用户列表,它们允许它们执行任务。此用户列表由配置文件中[slapos]部分的“power_user_list”提供。
代理
实现一个没有安全性的最小化SlapOS Master服务器,仅从localhost与一个SlapOS节点(即计算机)一起工作。
它实现了(或应该实现)SLAP API,如目前在SlapOS Master中实现的那样(请参阅Master中的slaptool.py)。
与SlapOS Master的唯一行为差异是
当代理找不到任何空闲分区(和/或在没有从属实例的情况下,任何兼容的主实例时),它将抛出NotFoundError(404)。
slap
会计和预配的简单语言python库。
它的工作原理
SLAP主服务器负责服务协调,它从参与的服务器接收可用的计算机分区数量,参与方准备提供的资源类型以及参与方对所需资源的请求。
每个参与的服务器由一个唯一的ID标识,并运行一个slap-server守护进程。该守护进程从主服务器收集安装任务,执行资源的安装,然后每当资源配置、安装和可用时通知主服务器。
主服务器上的数据结构如下
A - Action:可以发生以提供资源或记录其使用情况的操作
CP - Computer Partition:提供访问云资源的URL
RI - Resource Item:描述资源
CI - Contract Item:描述附加DL的合同(此内容尚不明确)
R - Resource:描述在slapgrid.org上发布的云资源类型(例如,MySQL表)
DL - Delivery Line:描述在计算机分区上的资源项上发生的行为
D - Delivery:组合多个Delivery Line
项目详情
slapos.core-1.13.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 695a3bd88089369be6d61efb9cebf6c66704b1a75daba5696ead9a691949ee5f |
|
MD5 | 4cc7644b66762a9c4e55c973abdcb6a7 |
|
BLAKE2b-256 | fc5488a6ece401e659c2a57644a67c2cf3a52c16120a1a45c6e2bcdb5196c36f |