0
我想將一堆相關的代碼組合到Fabric下的類中,並從命令行調用該類中定義的函數。調用一個類,然後調用Fabric中的類中的函數
例如,下面是一些簡化的僞代碼來管理Google Compute Engine服務器。
class GoogleCloud(Task):
def __init__(self, zone="us-east-1c"):
credentials = GoogleCredentials.get_application_default()
self.compute = build('compute', 'v1', credentials=credentials)
self.project = "my_project"
self.zone = zone
def server_create(self, hostname):
config = {
'name': hostname
}
instance = self.compute.instances().insert(
project=self.project,
zone=self.zone,
body=config).execute()
def server_delete(self, hostname):
return self.compute.instances().delete(
project=self.project,
zone=self.zone,
instance=hostname
).execute()
我想什麼,能夠做的是調用命令行兩種server_create和server_delete,像這樣:
fab GoogleCloud.server_delete:foobar
甚至傳遞變量到兩個初始化和功能...
fab GoogleCloud:us-east1-b.server_create:new_server
任何想法如何做到這一點?織物應該支持開箱即可使用,但我似乎無法弄清楚它可能會記錄在哪裏。
當然,真正的代碼要複雜得多,用類AmazonCloud和KvmInstance等
Fabric支持[namespaces](http://docs.fabfile.org/en/1.10/usage/tasks.html#namespaces)。您可以將您的任務類移至單獨的子模塊。 – approxiblue