CloudFoundryAPI的Python接口

cf_api的Python项目详细描述


#python cloud foundry api client

此模块为cloud foundry api提供一个纯python接口。

##文档

请参阅文档,网址为[https://cf api.readthedocs.io/en/latest/](https://cf-api.readthedocs.io/en/latest/)或位于[文档](docs)目录和[示例](examples)目录中。

使用此库。

`` python
=true
username='youser'
password=getpass('password:').strip()

cloud_controller,
client_id=deploy_client_id,
client_secret=deploy_client_secret,
username=username,
password=password,
)。设置"验证"ssl(验证ssl)



r.name)


吉德r.name)


`属性
在您的组织中按名称查找空间
res=cc.request(您的组织空间url)。按名称(空间名称)获取空间
在您的空间中按名称查找应用程序
res=cc.request(您的共享空间、应用程序的url)。按名称(应用程序的名称)获取应用程序
您的应用程序=资源
打印("您的应用程序",你的应用程序)



结果
是的='python server.py'
res=cc.apps()。设置参数(
name=app_name,
space_guid=your_space.guid,
stack_guid=stack.guid,
buildpack=your_buildpack,
command=command,
health_check_type='port',
health_check_timeout=60,
instances=2,
内存=512,
磁盘配额=512
。post()
打印('new app',res.data)



'bits')\
.设置查询(async='true')\
.添加字段('resources',json.dumps([])\
.添加文件('application','application.zip',f,"application/zip")\
.put()
print(res.data)
````

**URL上不要包含斜杠。**
`python_cf_client_id`;这是库应使用的UAA客户端ID。
python_cf_client_secret`;这是库应该使用的uaa客户端机密。
python_cf_ignore_ssl`;这表示是否验证ssl证书。默认值为false。设为'true'忽略ssl验证。
'cf_docker_password`;如果正在使用docker映像,此变量可以选择提供docker用户的密码。使用docker映像不一定需要此变量。

#python_cf_client_secret=My_client_secret

import cf_api

#…
```

登录顺序。

将代码和原始重定向uri传递到此函数中,以便获取oauth2令牌并验证jwt的签名。


此特定示例适用于openid connect。

``python
import cfu api

cc='https://api.yourcloudfoundry.com'
client\u id='yourclient'
client\u secret='yoursecret'
response\u type='code'


def get\u openid\u connect\u url(redirect\u uri):
返回cf\u api\
。新的uaa(cc=cc,client\u id=client\u id,client\u secret=client\u secret,no\u auth=true)\
.authorization_code_url(response_type,scope='openid',redirect_uri=redirect_uri)



def verify_code(code,redirect_uri):
uaa=cf_api.new_uaa(cc=cc,client_id=client_id,client_secret=client_secret,no_auth=true)
res=uaa.authorization_code(code,response_type,重定向uri)
data=res.data
uaa.verify_-token(data['id_-token',audience=uaa.client_-id)
return data
`````

下面的代码片段演示了部署应用程序的用法。

``bash
cd path/to/your/project
python-m cf_api.deploy_manifest\
--云控制器https://api.yourcloudfoundry.com\
-u youser-o yourg-s yourspace\
-m manifest.yml-v-w
部署清单的cli用法,您还可以将cf廑refresh廑u token环境变量设置为用于收集用户名和密码的替换项
````

>此模块也可以以编程方式使用。

``python
from廑future廑import print廑function
import cf廑api
from getpass importgetpass
来自cf_api.deploy_manifest import deploy

'https://api.yourcloudfoundry.com',
username=youruser',
password=getpass().strip(),
client_id='cf',
client_secret='',
verify_ssl=true


manifest_filename='路径/to/manifest.yml'



对于应用程序中的应用程序:
app.set_debug(true)
app.set_org_and_space('yourog','yourspace')
print(app.push())
print(app.destroy(destroy_routes=true))
`````

下面的代码片段演示了部署服务的用法。

``bash
cd path/to/your/project
python-m cf_api.de部署服务\
--云控制器https://api.yourcloudfoundry.com \
-u youser-o yourg-s yourspace \
--命名自定义服务名称--服务名称cf服务类型\
--服务计划cf服务类型计划-v-w
````

也可以使用此模块以编程方式。

`` python
从未来导入打印功能
从getpass导入cf api
从cf api导入getpass
从cf api.deploy服务导入deploy service

cc=cf api.new\u云控制器(
'https://api.yourcloudfoundry.com,
username='youruser',
password=getpass().strip(),
客户端ID='cf',
客户端机密='',
验证SSL=true



service=deployservice(cc)\
.设置调试(true)\
.设置组织和空间('yourorg','yourspace')

结果=服务.创建('my-custom-db',"数据库服务"、"小型数据库计划")
打印(结果)
```

该模块为云控制器API提供只读(即仅获取请求)支持,这些API
端点的作用域为特定空间,即/v2/spaces/<;space-guid>;/(路由服务实例应用程序)。
下面的代码片段演示了在空间中列出应用程序的用法。

``bash
cd path/to/your/project
python-m cf_u api.deploy_u space\
--云控制器https://api.yourcloudfoundry.com\
-u youser-o yourg-s yourspace应用程序
```

此模块也可以以编程方式使用。

``python
从未来的导入打印功能
从getpass导入cf api
从cf api导入getpass
。部署空间导入空间

cc=cf api。新的云控制器(
'https://api.yourcloudfoundry.com',
用户名='youruser',
密码=getpass().strip(),
客户端ID='cf',
客户端机密=',
验证SSL=真



空间=空间(cc,org\u name='yourog',space_name='yourspace')

创建空间space
space.deploy\u manifest('/path/to/manifest.yml')推动应用程序
space.wait\u manifest('/path/to/manifest.yml')等待应用程序启动
space.destroy\u manifest('/path/to/manifest.yml')销毁应用程序空间内的名称

'small database plan')
service=space.get_service_instance_by_name('my-custom-db')在
````

tail application logs


`cf api.logs_util'模块可用于tail cloud foundry应用程序日志。同时支持
"recentlogs"和"stream"模式。下面的代码片段演示了
同时列出最新日志和拖尾应用程序日志的用法。

``bash
cd path/to/your/project
python-m cf廑api.logs廑util\
--云控制器https://api.yourcloudfoundry.com\
-u youser-o yourg-s yourspace-a yourrapp\
-r-t
```

此模块也可以编程使用。

``python
从未来的导入打印功能
从getpass导入cf api
从cfapi导入dropsonde

cc=cfapi。新的云控制器(
'https://api.yourcloudfoundry.com',
用户名='youruser',
密码=getpass().strip(),
客户端ID='cf',
客户端机密=',
验证SSL=真,
init_doppler=true



app_guid='您的应用程序guid'
app=cc.apps(app_guid).get().resource

ecentlogs').get().multipart

"stream")
尝试:
ws.connect()
ws.watch(lambda m:print(dropsonde-util.parse-envelope-protobuf(m))
除了e:
print(e)
最后:
ws.close()
``` ` `

<


尝试:
>ws.connect()



>尝试:
ws.connect

ws.watch ws.watch ws.watch(lambda m:print(dropsonde-"初始化"并进入一个"core.py"模块,以便我们可以导入"cf_api",而不会由于尚未安装需求而触发"importerror"。
-生成"deploy_manifest",`部署服务"使用""部署空间"初始化
-将"部署清单"重命名为"manifest",将"部署清单.deploy"重命名为"manifest.manifest"
-将"部署服务"重命名为"service",将"部署服务.deployservice"重命名为"service.service"
-将"部署空间"重命名为"space"
-简化` cf_api.new_uaa()`通过删除从云控制器url和uaa url初始化的功能;考虑始终需要'cc'实例来初始化
-如果可能,删除对'pyjwt'的依赖关系,若要删除对"加密"的子依赖关系,这会减慢包的安装速度。
-对python 3的完全支持
-请考虑将"deploy_manifest"、"deploy_service"和"deploy_blue_green"等助手模块移动到单独的包中。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javajaxb在嵌套节点中生成xmlns:xsi声明   java重定向到youtube以上传jsp上可用的视频   java提高了JVM和ANT的性能   java如何将返回的JSON数据放在HTML表单中   java如何发送XWWWFORMURLENCODE在重新授权   java为什么jvm XX:+EliminateAllocations失败   堆移除和重建方法?(爪哇)   Stanford NPL in Spark(Scala)应用程序运行到Java堆空间(Java.lang.OutOfMemoryError)   调试java中打开/关闭println的任何方式(详细模式)   java IntelliJ在鼠标悬停时显示JavaDocs工具提示   Olingo Odata Java中的自动扩展选项   json将postgres文本arry转换为java列表?   oop需要帮助推断Java代码   复选框的java添加操作侦听器AbstractTableModel   java如何从公共静态void main(String[]args)传递值   java从数据库中获取大值   java Processing 2.0电影从jar运行时无法打开电影文件   java如何在不使用应用程序的情况下刷新活动?   尝试将JSON解析为ListView时的Android:JSON parse:null对象引用