2014-01-21 4 views
0

나는 foreman에서 꼭두각시 클래스에 매개 변수를 푸시하여 구성 파일을 생성하려고합니다.꼭두각시와 감독을 사용하여 설정 파일 생성

Eeach 파일은 다음과 같이해야합니다 :

file1 
DB_USERNAME=toto 
DUMP_TYPE=full 
[...] 

file2 
DB_USERNAME=toto 
DUMP_TYPE=full 
[...] 

나는 같은 것을 할 수있는 경우에는 내가 알고 싶습니다 해시

bacula_client dumpCfg [{"techno"=>"oracle", "DB_USERNAME"=>"toto", "DUMP_TYPE"=>"full", ...}, 
{"techno"=>"mysql", "DB_USERNAME"=>"toto", "DUMP_TYPE"=>"full", ...}] 

의 배열 인 포먼의 매개 변수를 정의 예를 들어 dumpdb를 호출 할 때 'Ressource 제목은 문자열이어야합니다'라는 두 개의 다른 설정 파일을 생성합니다.

class bacula_client (

$isDirector = false, 
$backupCrons = [], 
$isHostConcentrator = false, 
$dumpCfg = [], 

define bacula_client::dumpdb() { 

    $techno  = $name['techno'] 
    $dbusername  = $name['DB_USERNAME'] 
    $dumptype  = $name['DUMP_TYPE'] 

    # call a function that generates the files 
    } 
[.....] 
}#myclass 

bacula_client::dumpdb{$dumpCfg:} 

미리 감사드립니다.

답변

1

오류 메시지가 모두 표시됩니다. 해시를 사용하여 리소스의 이름을 지정합니다. 끈이라고 생각 했어.

define bacula_client::dumpdb ($dumpCfg) { 

    $techno  = $dumpCfg['techno'] 
    $dbusername  = $dumpCfg['DB_USERNAME'] 
    $dumptype  = $dumpCfg['DUMP_TYPE'] 

    # call a function that generates the files 
    } 


bacula_client::dumpdb{'file1': dumpCfg => $dumpCfg[0] } 
bacula_client::dumpdb{'file2': dumpCfg => $dumpCfg[1] } 

주목하라 '파일 1'과 '파일 2':

은이 방법을 사용해보십시오. 이들은 문자열이어야하며 고유해야하는 자원 이름입니다. 데이터는 매개 변수로 전달됩니다.

배열/해시 사용이 효과가 있는지 여부는 확실하지 않습니다. 테스트하지 않았고 그런 식으로 데이터를 매우 자주 전달하지 않습니다.

자신의 호의를 베풀고 자신의 정의를 클래스의 중간이 아닌 자신의 파일로 지정하십시오. 나중에 두통을 덜어 줄 것입니다 (예 : 지난 2 년간 축적 된 재미있는 모든 종류의 400 가지 라인 클래스를 이해하려고 시도한 것과 같습니다).

편집 : 문법

+0

이 가진 가장 큰 문제는 내가 해시의 배열의 번호를 알고하지 않는 한 내가, 예를 들어,에 대한 내 매니페스트에 $에서 Dumpcfg에 반복 할 수 없다는 것입니다. bacula_client :: dumpdb { 'file1': dumpCfg => $ dumpCfg [0]} bacula_client :: dumpdb { 'file2': dumpCfg => $ dumpCfg [1]} bacula_client :: dumpdb { 'file3': dumpCfg => $ dumpCfg [2]} 등 .. – Virtuose