From 1f91372dcaff6a7c84f1039bfb74638171eb7af1 Mon Sep 17 00:00:00 2001 From: Doug Hellmann Date: Sun, 20 Mar 2016 10:10:14 -0400 Subject: [PATCH 01/10] Update .gitreview for stable/mitaka Change-Id: I09906dd9dea3d42534666e0231c9840b5aede475 --- .gitreview | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitreview b/.gitreview index ac45950f6b..0ac25455e1 100644 --- a/.gitreview +++ b/.gitreview @@ -2,3 +2,4 @@ host=review.openstack.org port=29418 project=openstack/ceilometer.git +defaultbranch=stable/mitaka From 3026e981d186701c1e76f793529d5249938be0e4 Mon Sep 17 00:00:00 2001 From: OpenStack Proposal Bot Date: Mon, 21 Mar 2016 06:08:48 +0000 Subject: [PATCH 02/10] Imported Translations from Zanata For more information about this automatic import see: https://wiki.openstack.org/wiki/Translations/Infrastructure Change-Id: Ida9ea92f99300f1ff3dd88622165ee014da19c32 --- .../locale/it/LC_MESSAGES/ceilometer.po | 97 ++++++++++- .../ko_KR/LC_MESSAGES/ceilometer-log-error.po | 142 ++++++++++++++++ .../ko_KR/LC_MESSAGES/ceilometer-log-info.po | 128 ++++++++++++++ .../LC_MESSAGES/ceilometer-log-warning.po | 159 ++++++++++++++++++ 4 files changed, 522 insertions(+), 4 deletions(-) create mode 100644 ceilometer/locale/ko_KR/LC_MESSAGES/ceilometer-log-error.po create mode 100644 ceilometer/locale/ko_KR/LC_MESSAGES/ceilometer-log-info.po create mode 100644 ceilometer/locale/ko_KR/LC_MESSAGES/ceilometer-log-warning.po diff --git a/ceilometer/locale/it/LC_MESSAGES/ceilometer.po b/ceilometer/locale/it/LC_MESSAGES/ceilometer.po index e01fdddfcb..4eaa740fe5 100644 --- a/ceilometer/locale/it/LC_MESSAGES/ceilometer.po +++ b/ceilometer/locale/it/LC_MESSAGES/ceilometer.po @@ -5,17 +5,18 @@ # Translators: # Stefano Maffulli , 2013 # Tom Cocozzello , 2015. #zanata +# Alessandra , 2016. #zanata # Tom Cocozzello , 2016. #zanata msgid "" msgstr "" -"Project-Id-Version: ceilometer 6.0.0.0b4.dev6\n" +"Project-Id-Version: ceilometer 6.0.0.0rc2.dev1\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-03-04 20:29+0000\n" +"POT-Creation-Date: 2016-03-20 20:02+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2016-02-02 10:02+0000\n" -"Last-Translator: Tom Cocozzello \n" +"PO-Revision-Date: 2016-03-19 05:24+0000\n" +"Last-Translator: Alessandra \n" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.0\n" @@ -42,6 +43,10 @@ msgstr "" msgid "Continue after error from %(name)s: %(error)s" msgstr "Continua dopo errore da %(name)s: %(error)s" +#, python-format +msgid "Could not connect slave host: %s " +msgstr "Impossibile connettersi all'host slave: %s " + #, python-format msgid "Could not connect to XenAPI: %s" msgstr "Impossibile connettersi a XenAPI: %s" @@ -154,6 +159,22 @@ msgstr "L'istanza %(name)s (%(instance_id)s) viene ignorata: %(error)s" msgid "Ignoring instance %(name)s: %(error)s" msgstr "Si sta ignorando l'istanza %(name)s: %(error)s" +#, python-format +msgid "Ignoring loadbalancer %(loadbalancer_id)s" +msgstr "Ignora loadbalancer %(loadbalancer_id)s" + +#, python-format +msgid "Ignoring pool %(pool_id)s" +msgstr "Ignora pool %(pool_id)s" + +#, python-format +msgid "" +"Invalid YAML syntax in Definitions file %(file)s at line: %(line)s, column: " +"%(column)s." +msgstr "" +"Sintassi YAML non valida nel file delle definizioni %(file)s alla riga: " +"%(line)s, colonna: %(column)s." + #, python-format msgid "Invalid period %(period)s: %(err)s" msgstr "Periodo non valido %(period)s: %(err)s" @@ -178,6 +199,10 @@ msgid "Must specify connection_url, and connection_password to use" msgstr "" "È necessario specificare connection_url e connection_password da utilizzare" +#, python-format +msgid "No plugin named %(plugin)s available for %(name)s" +msgstr "Nessun plug-in con nome %(plugin)s disponibile per %(name)s" + msgid "Node Manager init failed" msgstr "Inizializzazione gestore nodi non riuscita" @@ -193,10 +218,33 @@ msgstr "L'API OpenDaylitght ha restituito %(status)s %(reason)s" msgid "Opencontrail API returned %(status)s %(reason)s" msgstr "L'API Opencontrail ha restituito %(status)s %(reason)s" +#, python-format +msgid "" +"Operator %(operator)s is not supported. Only equality operator is available " +"for field %(field)s" +msgstr "" +"Operatore %(operator)s non è supportato. Solo gli operatori di uguaglianza " +"sono disponibili per il campo %(field)s" + +#, python-format +msgid "" +"Operator %(operator)s is not supported. The supported operators are: " +"%(supported)s" +msgstr "" +"Operatore %(operator)s non è supportato. Gli operatori supportati sono: " +"%(supported)s" + #, python-format msgid "Order-by expression not valid: %s" msgstr "L'espressione ordina per non è valida: %s" +#, python-format +msgid "" +"Parse error in JSONPath specification '%(jsonpath)s' for %(name)s: %(err)s" +msgstr "" +"Errore di analisi nella specifica JSONPath '%(jsonpath)s' per %(name)s: " +"%(err)s" + msgid "Period must be positive." msgstr "Il periodo deve essere positivo" @@ -222,10 +270,18 @@ msgstr "" "Pipeline %(pipeline)s: Uscita dopo errore del trasformatore %(trans)s per " "%(smp)s" +#, python-format +msgid "Plugin specified, but no plugin name supplied for %s" +msgstr "Plug-in specificato, ma nessun nome di plug-in fornito per %s" + #, python-format msgid "Polling %(mtr)s sensor failed for %(cnt)s times!" msgstr "Polling del sensore %(mtr)s non riuscito per %(cnt)s volte!" +#, python-format +msgid "Polling %(name)s failed for %(cnt)s times!" +msgstr "Polling di %(name)s non riuscito per %(cnt)s volte!" + #, python-format msgid "Pollster for %s is disabled!" msgstr "Pollster per %s disabilitato!" @@ -292,6 +348,10 @@ msgstr "" "Il tipo di dati %(type)s non è supportato. L'elenco dei tipi di dati " "supportati è: %(supported)s" +#, python-format +msgid "The field 'fields' is required for %s" +msgstr "Il campo 'fields' è obbligatorio per %s" + msgid "The path for the file publisher is required" msgstr "Il percorso per il publisher di file è obbligatorio" @@ -365,10 +425,27 @@ msgstr "" "Tipo di metadati sconosciuto. La chiave (%s) non potrà essere sottoposta a " "query." +#, python-format +msgid "" +"Unknown status %(stat)s received on Load Balancer %(id)s, skipping sample" +msgstr "" +"Stato non conosciuto %(stat)s ricevuto su bilanciatore del carico %(id)s, " +"ignorare l'esempio" + #, python-format msgid "Unknown status %(stat)s received on fw %(id)s,skipping sample" msgstr "Stato non conosciuto %(stat)s ricevuto su fw %(id)s,ignorare l'esempio" +#, python-format +msgid "Unknown status %(stat)s received on listener %(id)s, skipping sample" +msgstr "" +"Stato non conosciuto %(stat)s ricevuto su listener %(id)s, ignorare l'esempio" + +#, python-format +msgid "Unknown status %(stat)s received on member %(id)s, skipping sample" +msgstr "" +"Stato non conosciuto %(stat)s ricevuto su membro %(id)s, ignorare l'esempio" + #, python-format msgid "Unknown status %(stat)s received on pool %(id)s, skipping sample" msgstr "" @@ -379,6 +456,11 @@ msgid "Unknown status %(stat)s received on vip %(id)s, skipping sample" msgstr "" "Stato non conosciuto %(stat)s ricevuto su vip %(id)s, ignorare l'esempio" +#, python-format +msgid "Unknown status %(stat)s received on vpn %(id)s, skipping sample" +msgstr "" +"Stato non conosciuto %(stat)s ricevuto su vpn %(id)s, ignorare l'esempio" + #, python-format msgid "VM %s not found in VMware vSphere" msgstr "VM %s non trovata in VMware vSphere" @@ -393,10 +475,17 @@ msgstr "Tipo di sensore errato" msgid "XenAPI not installed" msgstr "XenAPI non installato" +#, python-format +msgid "YAML error reading Definitions file %(file)s" +msgstr "Errore YAML durante la lettura del file definizioni %(file)s" + #, python-format msgid "could not get CPU time for %(id)s: %(e)s" msgstr "impossibile ricevere l'ora CPU per %(id)s: %(e)s" +msgid "direct option cannot be true when Gnocchi is enabled." +msgstr "L'opzione direct non può essere true quando Gnocchi è abilitato." + #, python-format msgid "dropping out of time order sample: %s" msgstr "rilascio campione ordinamento fuori tempo: %s" diff --git a/ceilometer/locale/ko_KR/LC_MESSAGES/ceilometer-log-error.po b/ceilometer/locale/ko_KR/LC_MESSAGES/ceilometer-log-error.po new file mode 100644 index 0000000000..bc2a6736ba --- /dev/null +++ b/ceilometer/locale/ko_KR/LC_MESSAGES/ceilometer-log-error.po @@ -0,0 +1,142 @@ +# SeYeon Lee , 2016. #zanata +msgid "" +msgstr "" +"Project-Id-Version: ceilometer 6.0.0.0rc2.dev1\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2016-03-20 20:02+0000\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"PO-Revision-Date: 2016-03-21 03:28+0000\n" +"Last-Translator: SeYeon Lee \n" +"Language-Team: Korean (South Korea)\n" +"Language: ko-KR\n" +"X-Generator: Zanata 3.7.3\n" +"Plural-Forms: nplurals=1; plural=0\n" + +#, python-format +msgid "Cannot load inspector %(name)s: %(err)s" +msgstr "%(name)s 검사기를 로드할 수 없음: %(err)s" + +#, python-format +msgid "Could not get Resident Memory Usage for %(id)s: %(e)s" +msgstr "%(id)s의 상주 메모리 사용을 가져올 수 없음 : %(e)s" + +#, python-format +msgid "Dispatcher failed to handle the %s, requeue it." +msgstr "디스패처에서 %s을(를) 처리하지 못하여 다시 대기열에 둡니다." + +msgid "Error connecting to coordination backend." +msgstr "조정 백엔드에 연결하는 중에 오류가 발생했습니다." + +msgid "Error getting group membership info from coordination backend." +msgstr "조정 백엔드에서 그룹 멤버십 정보를 가져오는 중에 오류가 발생했습니다." + +#, python-format +msgid "Error joining partitioning group %s, re-trying" +msgstr "" +"파티션 지정 그룹 %s을(를) 결합하는 중에 오류가 발생하여, 다시 시도 중입니다." + +#, python-format +msgid "Error loading meter definition : %(err)s" +msgstr "미터 정의 로드 오류 : %(err)s" + +#, python-format +msgid "Error processing event and it will be dropped: %s" +msgstr "이벤트 처리 중 오류가 발생하므로 삭제됨: %s" + +msgid "Error sending a heartbeat to coordination backend." +msgstr "하트비트를 조정 백엔드에 보내는 중에 오류가 발생했습니다." + +msgid "Fail to process a notification" +msgstr "알림을 처리하는 데 실패" + +msgid "Fail to process notification" +msgstr "알림을 처리하는 데 실패" + +msgid "Failed to connect to Gnocchi." +msgstr "Gnocchi에 연결하지 못했습니다." + +#, python-format +msgid "Failed to connect to Kafka service: %s" +msgstr "Kafka 서비스에 연결하는 데 실패: %s" + +#, python-format +msgid "Failed to connect to db, purpose %(purpose)s re-try later: %(err)s" +msgstr "db에 연결하는 데 실패, %(purpose)s 용도를 나중에 다시 시도: %(err)s" + +#, python-format +msgid "Failed to connect to db, purpose %(purpose)s retry later: %(err)s" +msgstr "db에 연결하는 데 실패, %(purpose)s 용도를 나중에 다시 시도: %(err)s" + +#, python-format +msgid "Failed to load resource due to error %s" +msgstr "%s 오류로 인해 자원을 로드하는 데 실패" + +#, python-format +msgid "Failed to record event: %s" +msgstr "이벤트를 기록하는 데 실패: %s" + +#, python-format +msgid "Failed to record metering data: %s" +msgstr "측정 데이터 기록 실패: %s" + +msgid "Failed to retry to send sample data with max_retry times" +msgstr "샘플 데이터를 max_retry 횟수만큼 보내는 데 실패" + +msgid "" +"Group ID: %{group_id}s, Members: %{members}s, Me: %{me}s: Current agent is " +"not part of group and cannot take tasks" +msgstr "" +"그룹 ID: %{group_id}s, 멤버: %{members}s, 사용자: %{me}s: 현재 에이전트가 그" +"룹의 일부가 아니므로 작업을 수행할 수 없음" + +#, python-format +msgid "Invalid type %s specified" +msgstr "올바르지 않은 유형 %s이(가) 지정됨" + +#, python-format +msgid "Missing field %s" +msgstr "%s 필드 누락" + +msgid "Passed resource dict must contain keys resource_id and resource_url." +msgstr "전달된 자원 dict에 키 resource_id와 resource_url이 포함되어야 합니다." + +#, python-format +msgid "Required field %(field)s should be a %(type)s" +msgstr "필수 필드 %(field)s은(는) %(type)s이어야 함" + +#, python-format +msgid "Required field %s not specified" +msgstr "필수 필드 %s이(가) 지정되지 않음" + +#, python-format +msgid "Required fields %s not specified" +msgstr "필수 필드 %s이(가) 지정되지 않음" + +#, python-format +msgid "Skip invalid resource %s" +msgstr "올바르지 않은 자원 %s 건너뛰기" + +#, python-format +msgid "Skipping %(name)s, keystone issue: %(exc)s" +msgstr "%(name)s 건너뛰기, keystone 문제: %(exc)s" + +msgid "Status Code: %{code}s. Failed todispatch event: %{event}s" +msgstr "상태 코드: %{code}s. 이벤트를 디스패치하는 데 실패: %{event}s" + +#, python-format +msgid "Unable to load changed event pipeline: %s" +msgstr "변경된 이벤트 파이프라인을 로드할 수 없음: %s" + +#, python-format +msgid "Unable to load changed pipeline: %s" +msgstr "변경된 파이프라인을 로드할 수 없음: %s" + +#, python-format +msgid "Unrecognized type value %s" +msgstr "인식되지 않은 유형 값 %s" + +#, python-format +msgid "inspector call failed for %(ident)s host %(host)s: %(err)s" +msgstr "%(ident)s 호스트 %(host)s의 검사기 호출에 실패: %(err)s" diff --git a/ceilometer/locale/ko_KR/LC_MESSAGES/ceilometer-log-info.po b/ceilometer/locale/ko_KR/LC_MESSAGES/ceilometer-log-info.po new file mode 100644 index 0000000000..933cf6a8d6 --- /dev/null +++ b/ceilometer/locale/ko_KR/LC_MESSAGES/ceilometer-log-info.po @@ -0,0 +1,128 @@ +# SeYeon Lee , 2016. #zanata +msgid "" +msgstr "" +"Project-Id-Version: ceilometer 6.0.0.0rc2.dev1\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2016-03-20 20:02+0000\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"PO-Revision-Date: 2016-03-21 03:56+0000\n" +"Last-Translator: SeYeon Lee \n" +"Language-Team: Korean (South Korea)\n" +"Language: ko-KR\n" +"X-Generator: Zanata 3.7.3\n" +"Plural-Forms: nplurals=1; plural=0\n" + +#, python-format +msgid "%d events are removed from database" +msgstr "데이터베이스에서 %d 이벤트가 제거됨" + +#, python-format +msgid "%d samples removed from database" +msgstr "데이터베이스에서 %d 샘플이 제거됨" + +msgid "Configuration:" +msgstr "구성:" + +#, python-format +msgid "Connecting to %(db)s on %(nodelist)s" +msgstr "%(nodelist)s에서 %(db)s에 연결 중 " + +msgid "Coordination backend started successfully." +msgstr "조정 백엔드가 성공적으로 시작되었습니다." + +#, python-format +msgid "Definitions: %s" +msgstr "정의: %s" + +msgid "Detected change in pipeline configuration." +msgstr "파이프라인 구성의 변경을 발견했습니다." + +#, python-format +msgid "Dropping event data with TTL %d" +msgstr "TTL이 %d인 이벤트 데이터 삭제" + +#, python-format +msgid "Dropping metering data with TTL %d" +msgstr "TTL이 %d인 측정 데이터 삭제" + +#, python-format +msgid "Duplicate event detected, skipping it: %s" +msgstr "중복 이벤트가 발견되어 해당 이벤트를 건너뜀: %s" + +msgid "Expired residual resource and meter definition data" +msgstr "잔여 자원 및 측정 정의 데이터 만료됨" + +#, python-format +msgid "Index %s will be recreate." +msgstr "%s 인덱스가 다시 생성됩니다." + +#, python-format +msgid "Joined partitioning group %s" +msgstr "결합된 파티션 그룹 %s" + +#, python-format +msgid "Left partitioning group %s" +msgstr "남은 파티션 그룹 %s" + +#, python-format +msgid "No limit value provided, result set will be limited to %(limit)d." +msgstr "한계 값이 제공되지 않음, 결과 세트가 %(limit)d(으)로 제한됩니다." + +msgid "Nothing to clean, database event time to live is disabled" +msgstr "정리할 사항이 없음, 데이터베이스 이벤트 지속 시간(TTL)이 사용되지 않음" + +msgid "Nothing to clean, database metering time to live is disabled" +msgstr "정리할 사항이 없음, 데이터베이스 측정 지속 시간(TTL)이 사용되지 않음" + +#, python-format +msgid "" +"Pipeline %(pipeline)s: Setup transformer instance %(name)s with parameter " +"%(param)s" +msgstr "" +"파이프라인 %(pipeline)s: %(param)s 매개변수로 변환기 인스턴스 %(name)s 설정 " + +#, python-format +msgid "Pipeline config: %s" +msgstr "파이프라인 구성: %s" + +msgid "Pipeline configuration file has been updated." +msgstr "파이프라인 구성 파일이 업데이트되었습니다." + +#, python-format +msgid "Polling pollster %(poll)s in the context of %(src)s" +msgstr "%(src)s 컨텍스트의 의견조사자 %(poll)s 폴링" + +#, python-format +msgid "Publishing policy set to %s" +msgstr "공개 정책이 %s(으)로 설정됨" + +msgid "Reconfiguring polling tasks." +msgstr "폴링 작업을 재구성합니다." + +msgid "Reloading notification agent and listeners." +msgstr "알림 에이전트와 리스너를 다시 로드합니다." + +#, python-format +msgid "Skip pollster %(name)s, no %(p_context)sresources found this cycle" +msgstr "pollster %(name)s 건너뛰기, %(p_context)s 자원에서 이 주기를 발견함" + +#, python-format +msgid "Starting server in PID %s" +msgstr "PID %s의 서버 시작" + +msgid "detected decoupled pipeline config format" +msgstr "비결합 파이프라인 구성 형식 발견" + +#, python-format +msgid "metering data %(counter_name)s for %(resource_id)s: %(counter_volume)s" +msgstr "%(resource_id)s의 측정 데이터 %(counter_name)s: %(counter_volume)s" + +#, python-format +msgid "serving on 0.0.0.0:%(sport)s, view at http://127.0.0.1:%(vport)s" +msgstr "0.0.0.0:%(sport)s에서 전달 중, http://127.0.0.1:%(vport)s에서 보기" + +#, python-format +msgid "serving on http://%(host)s:%(port)s" +msgstr "http://%(host)s:%(port)s에서 전달 중" diff --git a/ceilometer/locale/ko_KR/LC_MESSAGES/ceilometer-log-warning.po b/ceilometer/locale/ko_KR/LC_MESSAGES/ceilometer-log-warning.po new file mode 100644 index 0000000000..2b77a9dbd4 --- /dev/null +++ b/ceilometer/locale/ko_KR/LC_MESSAGES/ceilometer-log-warning.po @@ -0,0 +1,159 @@ +# SeYeon Lee , 2016. #zanata +msgid "" +msgstr "" +"Project-Id-Version: ceilometer 6.0.0.0rc2.dev1\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2016-03-20 20:02+0000\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"PO-Revision-Date: 2016-03-21 04:18+0000\n" +"Last-Translator: SeYeon Lee \n" +"Language-Team: Korean (South Korea)\n" +"Language: ko-KR\n" +"X-Generator: Zanata 3.7.3\n" +"Plural-Forms: nplurals=1; plural=0\n" + +msgid "Can't connect to keystone, assuming aodh is disabled and retry later." +msgstr "" +"keystone에 연결할 수 없습니다 . aodh가 사용되지 않는다고 가정하여 나중에 다" +"시 시도합니다." + +msgid "Can't connect to keystone, assuming gnocchi is disabled and retry later" +msgstr "" +"keystone에 연결할 수 없습니다. gnocchi가 사용되지 않는다고 가정하여 나중에 다" +"시 시도합니다." + +msgid "" +"Cannot extract tasks because agent failed to join group properly. Rejoining " +"group." +msgstr "" +"에이전트가 적절하게 그룹을 결합하지 못했으므로 작업을 추출할 수 없습니다. 그" +"룹을 다시 결합합니다." + +#, python-format +msgid "" +"Cannot inspect data of %(pollster)s for %(instance_id)s, non-fatal reason: " +"%(exc)s" +msgstr "" +"%(instance_id)s의 %(pollster)s 데이터를 검사할 수 없습니다. 치명적이지 않은 " +"이유: %(exc)s" + +#, python-format +msgid "Dropping out of time order sample: %s" +msgstr "시간 순서 샘플에서 삭제: %s" + +#, python-format +msgid "Dropping sample with no predecessor: %s" +msgstr "선행 작업이 없는 샘플 삭제: %s" + +#, python-format +msgid "Duplicated values: %s found in CLI options, auto de-duplicated" +msgstr "중복된 값: CLI 옵션에 %s이(가) 있습니다. 자동으로 중복이 해제됩니다." + +#, python-format +msgid "Failed to load any dispatchers for %s" +msgstr "%s의 디스패처를 로드하는 데 실패" + +#, python-format +msgid "" +"Failed to parse date from set fields, both fields %(start)s and %(end)s must " +"be datetime: %(err)s" +msgstr "" +"설정 필드에서 데이터를 구문 분석하는 데 실패, 두 필드 %(start)s 및 %(end)s은" +"(는) 모두 datetime임: %(err)s" + +#, python-format +msgid "Ignore unrecognized field %s" +msgstr "인식되지 않는 필드 %s 무시" + +#, python-format +msgid "Invalid status, skipping IP address %s" +msgstr "올바르지 않은 상태, IP 주소 %s 건너뛰기" + +msgid "Negative delta detected, dropping value" +msgstr "음수의 델타가 발견되어 값을 삭제함" + +#, python-format +msgid "No endpoints found for service %s" +msgstr "%s 서비스의 엔드포인트를 찾을 수 없음" + +msgid "" +"Non-metric meters may be collected. It is highly advisable to disable these " +"meters using ceilometer.conf or the pipeline.yaml" +msgstr "" +"비측정 미터를 수집할 수 없습니다. celometer.conf 또는 pipeline.yaml을 사용하" +"여 이러한 미터를 사용하지 않게 설정하는 것이 좋습니다." + +#, python-format +msgid "" +"Skipping %(name)s, %(service_type)s service is not registered in keystone" +msgstr " %(name)s, %(service_type)s 서비스 건너뛰기는 keystone에 등록되지 않음" + +#, python-format +msgid "Skipping duplicate meter definition %s" +msgstr "중복 미터 정의 %s 건너뛰기" + +msgid "" +"Timedelta plugin is required two timestamp fields to create timedelta value." +msgstr "" +"Timedelta 플러그인에서 timedelta 값을 생성하려면 두 개의 시간소인 필드가 필요" +"합니다." + +msgid "" +"ceilometer-api started with aodh enabled. Alarms URLs will be redirected to " +"aodh endpoint." +msgstr "" +"aodh가 사용된 상태로 ceilometer-api가 시작되었습니다. 알람 URL이 aodh 엔드포" +"인트로 경로가 재지정됩니다." + +msgid "" +"ceilometer-api started with gnocchi enabled. The resources/meters/samples " +"URLs are disabled." +msgstr "" +"gnocchi를 사용한 상태로 ceilometer-api가 시작되었습니다. 자원/미터/샘플 URL" +"을 사용하지 않습니다." + +#, python-format +msgid "event signature invalid, discarding event: %s" +msgstr "이벤트 서명이 올바르지 않아 이벤트를 삭제함: %s" + +#, python-format +msgid "message signature invalid, discarding message: %r" +msgstr "올바르지 않은 메시지 서명. 메시지 버리는 중: %r" + +#, python-format +msgid "" +"metering data %(counter_name)s for %(resource_id)s @ %(timestamp)s has no " +"volume (volume: None), the sample will be dropped" +msgstr "" +"%(resource_id)s @ %(timestamp)s의 측정 데이터 %(counter_name)s에 볼륨" +"(volume: None)이 없으므로 샘플이 삭제됩니다." + +#, python-format +msgid "" +"metering data %(counter_name)s for %(resource_id)s @ %(timestamp)s has " +"volume which is not a number (volume: %(counter_volume)s), the sample will " +"be dropped" +msgstr "" +"%(resource_id)s @ %(timestamp)s의 측정 데이터 %(counter_name)s에 번호" +"(volume: %(counter_volume)s)가 아닌 볼륨이 있으므로, 샘플이 삭제됩니다." + +msgid "" +"pecan_debug cannot be enabled, if workers is > 1, the value is overrided " +"with False" +msgstr "" +"pecan_debug를 사용하도록 설정할 수 없습니다. 작업자가 > 1이면 값이 False로 겹" +"쳐씁니다." + +#, python-format +msgid "" +"split plugin is deprecated, add \".`split(%(sep)s, %(segment)d, " +"%(max_split)d)`\" to your jsonpath instead" +msgstr "" +"분할 플러그인은 더 이상 사용되지 않음, 대신 \".`split(%(sep)s, %(segment)d, " +"%(max_split)d)`\"을(를) jsonpath에 추가" + +#, python-format +msgid "unable to configure oslo_cache: %s" +msgstr "oslo_cache를 구성할 수 없음: %s" From 6563e6b08ba07dcd24bd99406fc801e04f2e7864 Mon Sep 17 00:00:00 2001 From: Chris Dent Date: Sat, 19 Mar 2016 20:20:43 +0000 Subject: [PATCH 03/10] Remove gabbi tests that check content-location The content-location header is an artifact of using httplib2 and not something that ceilometer itself returns. Gabbi is going to stop using httplib2 (and so is much of OpenStack) so to prepare for that these tests need to stop testing something that doesn't really mean anything. Change-Id: If5aacaf108402146d66fee474793dde1c0a59a7c (cherry picked from commit 639b9476bd8554bee93512a81ae24605c766f080) --- .../gabbi/gabbits/api_events_no_data.yaml | 8 -------- .../gabbi/gabbits/api_events_with_data.yaml | 12 ------------ .../gabbits_prefix/api_events_with_data.yaml | 17 ----------------- 3 files changed, 37 deletions(-) delete mode 100644 ceilometer/tests/functional/gabbi/gabbits_prefix/api_events_with_data.yaml diff --git a/ceilometer/tests/functional/gabbi/gabbits/api_events_no_data.yaml b/ceilometer/tests/functional/gabbi/gabbits/api_events_no_data.yaml index c6faeb20b3..d18aad6017 100644 --- a/ceilometer/tests/functional/gabbi/gabbits/api_events_no_data.yaml +++ b/ceilometer/tests/functional/gabbi/gabbits/api_events_no_data.yaml @@ -15,7 +15,6 @@ tests: X-Project-Id: project1 response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/events response_strings: - "[]" @@ -70,7 +69,6 @@ tests: X-Project-Id: project1 response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/events?q.field=event_type&q.op=eq&q.type=string&q.value=cookies_chocolate.chip response_strings: - "[]" @@ -91,7 +89,6 @@ tests: value: cookies_chocolate.chip response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/events response_strings: - "[]" @@ -105,7 +102,6 @@ tests: X-Project-Id: project1 response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/events?q.field=bad_field&q.op=eq&q.type=string&q.value=cookies_chocolate.chip response_strings: - "[]" @@ -126,7 +122,6 @@ tests: value: cookies_chocolate.chip response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/events response_strings: - "[]" @@ -178,7 +173,6 @@ tests: X-Project-Id: project1 response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/event_types response_strings: - "[]" @@ -200,7 +194,6 @@ tests: X-Project-Id: project1 response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/event_types/cookies_chocolate.chip/traits response_strings: - "[]" @@ -213,6 +206,5 @@ tests: X-Project-Id: project1 response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/event_types/cookies_chocolate.chip/traits/ate response_strings: - "[]" diff --git a/ceilometer/tests/functional/gabbi/gabbits/api_events_with_data.yaml b/ceilometer/tests/functional/gabbi/gabbits/api_events_with_data.yaml index 67a0dc37af..01082ff94f 100644 --- a/ceilometer/tests/functional/gabbi/gabbits/api_events_with_data.yaml +++ b/ceilometer/tests/functional/gabbi/gabbits/api_events_with_data.yaml @@ -14,7 +14,6 @@ tests: X-Project-Id: project1 response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/events response_json_paths: $.[0].event_type: cookies_chocolate.chip $.[0].traits.[0].value: chocolate.chip @@ -48,7 +47,6 @@ tests: X-Project-Id: project1 response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/events?q.field=event_type&q.op=eq&q.type=string&q.value=cookies_chocolate.chip response_json_paths: $.[0].event_type: cookies_chocolate.chip $.[0].traits.[0].value: chocolate.chip @@ -70,7 +68,6 @@ tests: value: cookies_chocolate.chip response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/events response_json_paths: $.[0].event_type: cookies_chocolate.chip $.[0].traits.[0].value: chocolate.chip @@ -85,7 +82,6 @@ tests: X-Project-Id: project1 response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/events?q.field=bad_field&q.op=eq&q.type=string&q.value=cookies_chocolate.chip response_strings: - "[]" @@ -106,7 +102,6 @@ tests: value: cookies_chocolate.chip response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/events response_strings: - "[]" @@ -135,7 +130,6 @@ tests: X-Project-Id: project1 response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/events/fea1b15a-1d47-4175-85a5-a4bb2c729240 response_json_paths: $.event_type: cookies_chocolate.chip $.traits.[0].value: chocolate.chip @@ -159,7 +153,6 @@ tests: X-Project-Id: project1 response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/event_types response_strings: - cookies_chocolate.chip - cookies_peanut.butter @@ -192,7 +185,6 @@ tests: X-Project-Id: project1 response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/event_types/cookies_chocolate.chip/traits response_json_paths: $.[0].type: string $.[1].name: ate @@ -206,7 +198,6 @@ tests: X-Project-Id: project1 response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/event_types/bad_event_type/traits response_strings: - "[]" @@ -220,7 +211,6 @@ tests: X-Project-Id: project1 response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/event_types/cookies_chocolate.chip/traits/ate response_json_paths: $.[0].name: ate $.[0].value: '0' @@ -235,7 +225,6 @@ tests: X-Project-Id: project1 response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/event_types/bad_event_type/traits/ate response_strings: - "[]" @@ -249,6 +238,5 @@ tests: X-Project-Id: project1 response_headers: content-type: application/json; charset=UTF-8 - content-location: $SCHEME://$NETLOC/v2/event_types/cookies_chocolate.chip/traits/bad_trait_name response_strings: - "[]" diff --git a/ceilometer/tests/functional/gabbi/gabbits_prefix/api_events_with_data.yaml b/ceilometer/tests/functional/gabbi/gabbits_prefix/api_events_with_data.yaml deleted file mode 100644 index 30bb0d379d..0000000000 --- a/ceilometer/tests/functional/gabbi/gabbits_prefix/api_events_with_data.yaml +++ /dev/null @@ -1,17 +0,0 @@ -# This test runs against the Events API and confirms the -# content-location header includes a prefix. -fixtures: -- ConfigFixture -- EventDataFixture - -tests: - -- name: get all events - url: /v2/events - request_headers: - X-Roles: admin - X-User-Id: user1 - X-Project-Id: project1 - response_headers: - content-type: application/json; charset=UTF-8 - content-location: /$SCHEME://.*/telemetry/v2/events/ From da805ef00e8e16cbdcb9bc069fbb73d97aceb4d3 Mon Sep 17 00:00:00 2001 From: OpenStack Proposal Bot Date: Tue, 22 Mar 2016 06:08:28 +0000 Subject: [PATCH 04/10] Imported Translations from Zanata For more information about this automatic import see: https://wiki.openstack.org/wiki/Translations/Infrastructure Change-Id: Ia3d34251acb20b83bb89f446caa40a928c277a7d --- ceilometer/locale/es/LC_MESSAGES/ceilometer.po | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/ceilometer/locale/es/LC_MESSAGES/ceilometer.po b/ceilometer/locale/es/LC_MESSAGES/ceilometer.po index 28e4f0bdcd..e77033cd7d 100644 --- a/ceilometer/locale/es/LC_MESSAGES/ceilometer.po +++ b/ceilometer/locale/es/LC_MESSAGES/ceilometer.po @@ -11,13 +11,13 @@ # Tom Cocozzello , 2016. #zanata msgid "" msgstr "" -"Project-Id-Version: ceilometer 6.0.0.0b4.dev50\n" +"Project-Id-Version: ceilometer 6.0.0.0rc2.dev2\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-03-19 00:57+0000\n" +"POT-Creation-Date: 2016-03-21 10:45+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2016-03-18 09:58+0000\n" +"PO-Revision-Date: 2016-03-21 01:58+0000\n" "Last-Translator: Eugènia Torrella \n" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -207,6 +207,14 @@ msgstr "La API OpenDaylitght ha devuelto %(status)s %(reason)s" msgid "Opencontrail API returned %(status)s %(reason)s" msgstr "La API Opencontrail ha devuelto %(status)s %(reason)s" +#, python-format +msgid "" +"Operator %(operator)s is not supported. The supported operators are: " +"%(supported)s" +msgstr "" +"El operador %(operator)s no está admitido. Los operadores admitidos son: " +"%(supported)s" + #, python-format msgid "Order-by expression not valid: %s" msgstr "Expresión de ordenar por no válida: %s" From ef88a0a276766e10ad5dd3973aed2a333eb3524b Mon Sep 17 00:00:00 2001 From: gordon chung Date: Mon, 21 Mar 2016 15:22:07 -0400 Subject: [PATCH 05/10] remove dns and trove from entry_points we converted them to declarative format so the entry_points don't exist anymore Change-Id: I46837133ff9c400e8a5dd52434993d7a94463d3d --- setup.cfg | 2 -- 1 file changed, 2 deletions(-) diff --git a/setup.cfg b/setup.cfg index f885389a99..06f1029dae 100644 --- a/setup.cfg +++ b/setup.cfg @@ -52,8 +52,6 @@ ceilometer.notification = network.services.vpn.ikepolicy = ceilometer.network.notifications:IKEPolicy network.services.vpn.connections = ceilometer.network.notifications:IPSecSiteConnection _sample = ceilometer.telemetry.notifications:TelemetryIpc - trove.instance.exists = ceilometer.database.notifications:InstanceExists - dns.domain.exists = ceilometer.dns.notifications:DomainExists meter = ceilometer.meter.notifications:ProcessMeterNotifications ceilometer.discover = From 621916b0a49b35f95189637dda888bcf0d679a4d Mon Sep 17 00:00:00 2001 From: OpenStack Proposal Bot Date: Wed, 23 Mar 2016 06:32:00 +0000 Subject: [PATCH 06/10] Imported Translations from Zanata For more information about this automatic import see: https://wiki.openstack.org/wiki/Translations/Infrastructure Change-Id: Ifad726ddee1a63e93ef27e2dc81802a1e5d3afdc --- .../locale/pt_BR/LC_MESSAGES/ceilometer.po | 98 ++++++++++++++++++- 1 file changed, 94 insertions(+), 4 deletions(-) diff --git a/ceilometer/locale/pt_BR/LC_MESSAGES/ceilometer.po b/ceilometer/locale/pt_BR/LC_MESSAGES/ceilometer.po index 01e02c4c04..ac9b49104a 100644 --- a/ceilometer/locale/pt_BR/LC_MESSAGES/ceilometer.po +++ b/ceilometer/locale/pt_BR/LC_MESSAGES/ceilometer.po @@ -8,17 +8,18 @@ # Andreas Jaeger , 2015. #zanata # Lucas Palm , 2015. #zanata # OpenStack Infra , 2015. #zanata +# Carlos Marques , 2016. #zanata # Lucas Palm , 2016. #zanata msgid "" msgstr "" -"Project-Id-Version: ceilometer 6.0.0.0b4.dev6\n" +"Project-Id-Version: ceilometer 6.0.0.0rc2.dev6\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-03-04 20:29+0000\n" +"POT-Creation-Date: 2016-03-22 18:08+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2016-02-03 05:50+0000\n" -"Last-Translator: Lucas Palm \n" +"PO-Revision-Date: 2016-03-22 11:05+0000\n" +"Last-Translator: Carlos Marques \n" "Language: pt-BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "Generated-By: Babel 2.0\n" @@ -43,6 +44,10 @@ msgstr "" msgid "Continue after error from %(name)s: %(error)s" msgstr "Continuar após erro de %(name)s: %(error)s" +#, python-format +msgid "Could not connect slave host: %s " +msgstr "Não foi possível conectar-se ao host escravo: %s" + #, python-format msgid "Could not connect to XenAPI: %s" msgstr "Não foi possível conectar-se ao XenAPI: %s" @@ -155,6 +160,22 @@ msgstr "Ignorando a instância %(name)s (%(instance_id)s): %(error)s" msgid "Ignoring instance %(name)s: %(error)s" msgstr "Ignorando a instância %(name)s: %(error)s" +#, python-format +msgid "Ignoring loadbalancer %(loadbalancer_id)s" +msgstr "Ignorando loadbalancer %(loadbalancer_id)s" + +#, python-format +msgid "Ignoring pool %(pool_id)s" +msgstr "Ignorando conjunto%(pool_id)s" + +#, python-format +msgid "" +"Invalid YAML syntax in Definitions file %(file)s at line: %(line)s, column: " +"%(column)s." +msgstr "" +"Sintaxe YAML inválida no arquivo de definições %(file)s na linha: %(line)s, " +"coluna: %(column)s." + #, python-format msgid "Invalid period %(period)s: %(err)s" msgstr "Período inválido %(period)s: %(err)s" @@ -178,6 +199,10 @@ msgstr "Várias máquinas virtuais %s localizadas no XenServer" msgid "Must specify connection_url, and connection_password to use" msgstr "connection_url e connection_password devem ser especificados para uso" +#, python-format +msgid "No plugin named %(plugin)s available for %(name)s" +msgstr "Nenhum plug-in nomeado %(plugin)s disponível para %(name)s" + msgid "Node Manager init failed" msgstr "Inicialização do gerenciador de nó com falha" @@ -193,10 +218,33 @@ msgstr "API OpenDaylitght retornou %(status)s %(reason)s" msgid "Opencontrail API returned %(status)s %(reason)s" msgstr "A API Opencontrail retornou%(status)s%(reason)s" +#, python-format +msgid "" +"Operator %(operator)s is not supported. Only equality operator is available " +"for field %(field)s" +msgstr "" +"O operador %(operator)s não é suportado. Somente operador de igualdade está " +"disponível para o campo %(field)s" + +#, python-format +msgid "" +"Operator %(operator)s is not supported. The supported operators are: " +"%(supported)s" +msgstr "" +"O operador %(operator)s não é suportado. Os operadores suportados são: " +"%(supported)s" + #, python-format msgid "Order-by expression not valid: %s" msgstr "Expressão solicitada inválida: %s" +#, python-format +msgid "" +"Parse error in JSONPath specification '%(jsonpath)s' for %(name)s: %(err)s" +msgstr "" +"Erro de análise na especificação JSONPath '%(jsonpath)s' para %(name)s: " +"%(err)s" + msgid "Period must be positive." msgstr "Período deve ser positivo." @@ -219,10 +267,18 @@ msgid "" msgstr "" "Pipeline %(pipeline)s: Saia após erro do transformador %(trans)s para %(smp)s" +#, python-format +msgid "Plugin specified, but no plugin name supplied for %s" +msgstr "Plug-in especificado, mas nenhum nome de plug-in fornecido para %s" + #, python-format msgid "Polling %(mtr)s sensor failed for %(cnt)s times!" msgstr "O sensor de pesquisa %(mtr)s falhou para %(cnt)s vezes!" +#, python-format +msgid "Polling %(name)s failed for %(cnt)s times!" +msgstr "A pesquisa %(name)s falhou para %(cnt)s vezes!" + #, python-format msgid "Pollster for %s is disabled!" msgstr "O pesquisador para %s está desativado!" @@ -286,6 +342,10 @@ msgstr "" "O tipo de dados %(type)s não é suportado. A lista de tipos de dados " "suportados é: %(supported)s" +#, python-format +msgid "The field 'fields' is required for %s" +msgstr "O campo 'fields' é necessário para %s" + msgid "The path for the file publisher is required" msgstr "O caminho para o publicador do arquivo é necessário" @@ -357,12 +417,29 @@ msgstr "Extensão de descoberta desconhecida: %s" msgid "Unknown metadata type. Key (%s) will not be queryable." msgstr "Tipo de metada desconhecido. Chave (%s) não será consultável." +#, python-format +msgid "" +"Unknown status %(stat)s received on Load Balancer %(id)s, skipping sample" +msgstr "" +"Status desconhecido %(stat)s recebido no Balanceador de Carga %(id)s, " +"ignorando a amostra" + #, python-format msgid "Unknown status %(stat)s received on fw %(id)s,skipping sample" msgstr "" "Status desconhecido %(stat)s recebido na largura da fonte %(id)s, ignorando " "a amostra" +#, python-format +msgid "Unknown status %(stat)s received on listener %(id)s, skipping sample" +msgstr "" +"Status desconhecido %(stat)s recebido no listener %(id)s, ignorando a amostra" + +#, python-format +msgid "Unknown status %(stat)s received on member %(id)s, skipping sample" +msgstr "" +"Status desconhecido %(stat)s recebido no membro %(id)s, ignorando a amostra" + #, python-format msgid "Unknown status %(stat)s received on pool %(id)s, skipping sample" msgstr "" @@ -373,6 +450,12 @@ msgid "Unknown status %(stat)s received on vip %(id)s, skipping sample" msgstr "" "Status desconhecido %(stat)s recebido em vip %(id)s, ignorando a amostra" +#, python-format +msgid "Unknown status %(stat)s received on vpn %(id)s, skipping sample" +msgstr "" +"Status desconhecido %(stat)s recebido recebido no vpn %(id)s, ignorando a " +"amostra" + #, python-format msgid "VM %s not found in VMware vSphere" msgstr "VM %s não localizado no VMware vSphere" @@ -387,10 +470,17 @@ msgstr "Tipo de sensor errado" msgid "XenAPI not installed" msgstr "XenAPI não instalado" +#, python-format +msgid "YAML error reading Definitions file %(file)s" +msgstr "Erro YAML ao ler o arquivo de definições %(file)s" + #, python-format msgid "could not get CPU time for %(id)s: %(e)s" msgstr "não pôde obter o tempo de CPU para %(id)s: %(e)s" +msgid "direct option cannot be true when Gnocchi is enabled." +msgstr "A opção direta não pode ser true quando o Gnocchi está ativado. " + #, python-format msgid "dropping out of time order sample: %s" msgstr "eliminando amostra fora de ordem de tempo: %s" From 7ee29aae2835c9eb0d1a747db8ba06b56f74082c Mon Sep 17 00:00:00 2001 From: OpenStack Proposal Bot Date: Fri, 25 Mar 2016 06:29:53 +0000 Subject: [PATCH 07/10] Imported Translations from Zanata For more information about this automatic import see: https://wiki.openstack.org/wiki/Translations/Infrastructure Change-Id: Ia4a1f7c6682692b039e74681a1991e04449fb498 --- .../locale/es/LC_MESSAGES/ceilometer.po | 68 +++++++++++++++++-- 1 file changed, 61 insertions(+), 7 deletions(-) diff --git a/ceilometer/locale/es/LC_MESSAGES/ceilometer.po b/ceilometer/locale/es/LC_MESSAGES/ceilometer.po index e77033cd7d..e4c35b6c6b 100644 --- a/ceilometer/locale/es/LC_MESSAGES/ceilometer.po +++ b/ceilometer/locale/es/LC_MESSAGES/ceilometer.po @@ -11,13 +11,13 @@ # Tom Cocozzello , 2016. #zanata msgid "" msgstr "" -"Project-Id-Version: ceilometer 6.0.0.0rc2.dev2\n" +"Project-Id-Version: ceilometer 6.0.0.0rc2.dev7\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-03-21 10:45+0000\n" +"POT-Creation-Date: 2016-03-23 09:32+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2016-03-21 01:58+0000\n" +"PO-Revision-Date: 2016-03-24 11:03+0000\n" "Last-Translator: Eugènia Torrella \n" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -44,6 +44,10 @@ msgstr "" msgid "Continue after error from %(name)s: %(error)s" msgstr "Continuar después de error desde %(name)s: %(error)s" +#, python-format +msgid "Could not connect slave host: %s " +msgstr "No se ha podido conectar con el host esclavo: %s" + #, python-format msgid "Could not connect to XenAPI: %s" msgstr "No se puede conectar a XenAPI: %s" @@ -156,6 +160,14 @@ msgstr "Ignorando la instancia %(name)s (%(instance_id)s) : %(error)s" msgid "Ignoring instance %(name)s: %(error)s" msgstr "Ignorando la instancia %(name)s: %(error)s" +#, python-format +msgid "Ignoring loadbalancer %(loadbalancer_id)s" +msgstr "Se ignorará el equilibrador de carga %(loadbalancer_id)s" + +#, python-format +msgid "Ignoring pool %(pool_id)s" +msgstr "Se ignorará la agrupación %(pool_id)s" + #, python-format msgid "" "Invalid YAML syntax in Definitions file %(file)s at line: %(line)s, column: " @@ -207,6 +219,14 @@ msgstr "La API OpenDaylitght ha devuelto %(status)s %(reason)s" msgid "Opencontrail API returned %(status)s %(reason)s" msgstr "La API Opencontrail ha devuelto %(status)s %(reason)s" +#, python-format +msgid "" +"Operator %(operator)s is not supported. Only equality operator is available " +"for field %(field)s" +msgstr "" +"El operador %(operator)s no se admite. Solo hay disponible el operador de " +"igualdad para el campo %(field)s" + #, python-format msgid "" "Operator %(operator)s is not supported. The supported operators are: " @@ -263,6 +283,10 @@ msgstr "" msgid "Polling %(mtr)s sensor failed for %(cnt)s times!" msgstr "¡El sensor de sondeo %(mtr)s ha fallado %(cnt)s veces!" +#, python-format +msgid "Polling %(name)s failed for %(cnt)s times!" +msgstr "El sondeo %(name)s ha fallado %(cnt)s veces." + #, python-format msgid "Pollster for %s is disabled!" msgstr "¡El Pollster para %s está inhabilitado!" @@ -339,7 +363,7 @@ msgstr "" #, python-format msgid "UDP: Cannot decode data sent by %s" -msgstr "UDP: no se puede decodificar los datos enviados por %s" +msgstr "UDP: no se pueden decodificar los datos enviados por %s" msgid "UDP: Unable to store meter" msgstr "UDP: no se puede almacenar el medidor" @@ -405,22 +429,47 @@ msgstr "Extensión de descubrimiento desconocida: %s" msgid "Unknown metadata type. Key (%s) will not be queryable." msgstr "Tipo de metadatos desconocido. La clave (%s) no se podrá consultar." +#, python-format +msgid "" +"Unknown status %(stat)s received on Load Balancer %(id)s, skipping sample" +msgstr "" +"Se ha recibido un estado desconocido %(stat)s en el equilibrador de carga " +"%(id)s, se omitirá el ejemplo" + #, python-format msgid "Unknown status %(stat)s received on fw %(id)s,skipping sample" msgstr "" -"Se ha recibido un estado desconocido %(stat)s en fw %(id)s, se omite el " +"Se ha recibido un estado desconocido %(stat)s en fw %(id)s, se omitirá el " "ejemplo" +#, python-format +msgid "Unknown status %(stat)s received on listener %(id)s, skipping sample" +msgstr "" +"Se ha recibido un estado desconocido %(stat)s en el escucha %(id)s, se " +"omitirá el ejemplo" + +#, python-format +msgid "Unknown status %(stat)s received on member %(id)s, skipping sample" +msgstr "" +"Se ha recibido un estado desconocido %(stat)s en el miembro %(id)s, se " +"omitirá el ejemplo" + #, python-format msgid "Unknown status %(stat)s received on pool %(id)s, skipping sample" msgstr "" "Se ha recibido un estado desconocido %(stat)s en la agrupación %(id)s, se " -"omite el ejemplo" +"omitirá el ejemplo" #, python-format msgid "Unknown status %(stat)s received on vip %(id)s, skipping sample" msgstr "" -"Se ha recibido un estado desconocido %(stat)s en vip %(id)s, se omite el " +"Se ha recibido un estado desconocido %(stat)s en vip %(id)s, se omitirá el " +"ejemplo" + +#, python-format +msgid "Unknown status %(stat)s received on vpn %(id)s, skipping sample" +msgstr "" +"Se ha recibido un estado desconocido %(stat)s en vpn %(id)s, se omitirá el " "ejemplo" #, python-format @@ -445,6 +494,11 @@ msgstr "Error de YAML al leer el archivo de definiciones %(file)s" msgid "could not get CPU time for %(id)s: %(e)s" msgstr "no se ha podido obtener tiempo de CPU para %(id)s: %(e)s" +msgid "direct option cannot be true when Gnocchi is enabled." +msgstr "" +"la opción directo no puede estar definida como true cuando Gnocchi esté " +"habilitado." + #, python-format msgid "dropping out of time order sample: %s" msgstr "saliendo del ejemplo de orden de tiempo: %s" From 19e751cc6ccd23978d4c783fea5e0b272a2e1c48 Mon Sep 17 00:00:00 2001 From: PanFengyun Date: Mon, 28 Mar 2016 17:35:41 +0800 Subject: [PATCH 08/10] abort alarms URLs when Aodh is unavailable add adoh_abot() when query.QueryAlarmsController() is deprecated. Change-Id: I6098f1949604a03aa4c2e36562519fd4792f4b13 Closes-Bug: #1562740 --- ceilometer/api/controllers/v2/root.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ceilometer/api/controllers/v2/root.py b/ceilometer/api/controllers/v2/root.py index 29d225795b..2387f9f554 100644 --- a/ceilometer/api/controllers/v2/root.py +++ b/ceilometer/api/controllers/v2/root.py @@ -62,6 +62,11 @@ def gnocchi_abort(): "the metric endpoint to retrieve data.")) +def aodh_abort(): + pecan.abort(410, _("alarms URLs is unavailable when Aodh is " + "disabled or unavailable.")) + + def aodh_redirect(url): # NOTE(sileht): we use 307 and not 301 or 302 to allow # client to redirect POST/PUT/DELETE/... @@ -82,7 +87,7 @@ def _lookup(self, kind, *remainder): if kind == 'alarms' and self.aodh_url: aodh_redirect(self.aodh_url) elif kind == 'alarms': - return query.QueryAlarmsController(), remainder + aodh_abort() elif kind == 'samples' and self.gnocchi_is_enabled: gnocchi_abort() elif kind == 'samples': @@ -176,6 +181,8 @@ def _lookup(self, kind, *remainder): gnocchi_is_enabled=self.gnocchi_is_enabled, aodh_url=self.aodh_url, ), remainder + elif kind == 'alarms' and (not self.aodh_url): + aodh_abort() elif kind == 'alarms' and self.aodh_url: aodh_redirect(self.aodh_url) else: From acd1fafe7b903045c7eff92a95d7c44d50b96103 Mon Sep 17 00:00:00 2001 From: OpenStack Proposal Bot Date: Tue, 29 Mar 2016 06:16:12 +0000 Subject: [PATCH 09/10] Imported Translations from Zanata For more information about this automatic import see: https://wiki.openstack.org/wiki/Translations/Infrastructure Change-Id: I3bbd06e99f8b1fbee5f7771ef8f82e642fc4816f --- ceilometer/locale/ceilometer.pot | 14 +++++---- .../locale/ja/LC_MESSAGES/ceilometer.po | 29 ++++++++++--------- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/ceilometer/locale/ceilometer.pot b/ceilometer/locale/ceilometer.pot index feea46834f..fbb221f191 100644 --- a/ceilometer/locale/ceilometer.pot +++ b/ceilometer/locale/ceilometer.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: ceilometer 6.0.0.0b4.dev21\n" +"Project-Id-Version: ceilometer 6.0.0.0rc2.dev9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-03-08 06:07+0000\n" +"POT-Creation-Date: 2016-03-29 06:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -218,7 +218,11 @@ msgstr "" msgid "Resource" msgstr "" -#: ceilometer/api/controllers/v2/root.py:164 +#: ceilometer/api/controllers/v2/root.py:66 +msgid "alarms URLs is unavailable when Aodh is disabled or unavailable." +msgstr "" + +#: ceilometer/api/controllers/v2/root.py:169 msgid "direct option cannot be true when Gnocchi is enabled." msgstr "" @@ -230,12 +234,12 @@ msgstr "" msgid "Limit must be positive" msgstr "" -#: ceilometer/compute/pollsters/cpu.py:56 +#: ceilometer/compute/pollsters/cpu.py:61 #, python-format msgid "could not get CPU time for %(id)s: %(e)s" msgstr "" -#: ceilometer/compute/pollsters/cpu.py:87 +#: ceilometer/compute/pollsters/cpu.py:92 #, python-format msgid "Could not get CPU Util for %(id)s: %(e)s" msgstr "" diff --git a/ceilometer/locale/ja/LC_MESSAGES/ceilometer.po b/ceilometer/locale/ja/LC_MESSAGES/ceilometer.po index 5ce0c07ac9..3826510987 100644 --- a/ceilometer/locale/ja/LC_MESSAGES/ceilometer.po +++ b/ceilometer/locale/ja/LC_MESSAGES/ceilometer.po @@ -10,13 +10,13 @@ # 笹原 昌美 , 2016. #zanata msgid "" msgstr "" -"Project-Id-Version: ceilometer 6.0.0.0b4.dev50\n" +"Project-Id-Version: ceilometer 6.0.0.0rc2.dev9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-03-19 00:57+0000\n" +"POT-Creation-Date: 2016-03-28 22:52+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2016-03-18 03:57+0000\n" +"PO-Revision-Date: 2016-03-28 11:41+0000\n" "Last-Translator: 笹原 昌美 \n" "Language: ja\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -44,7 +44,7 @@ msgstr "" msgid "Continue after error from %(name)s: %(error)s" msgstr "%(name)s からのエラーの後で続行します: %(error)s" -#, fuzzy, python-format +#, python-format msgid "Could not connect slave host: %s " msgstr "スレーブホストに接続できませんでした: %s " @@ -91,7 +91,6 @@ msgstr "" msgid "Error parsing HTTP response: %s" msgstr "HTTP 応答を解析している際にエラーが発生しました: %s" -#, fuzzy msgid "Error stopping pollster." msgstr "pollster 停止エラー。" @@ -161,11 +160,11 @@ msgstr "インスタンス %(name)s (%(instance_id)s) を無視しています: msgid "Ignoring instance %(name)s: %(error)s" msgstr "インスタンス %(name)s を無視しています: %(error)s" -#, fuzzy, python-format +#, python-format msgid "Ignoring loadbalancer %(loadbalancer_id)s" msgstr "ロードバランサー %(loadbalancer_id)s を無視しています" -#, fuzzy, python-format +#, python-format msgid "Ignoring pool %(pool_id)s" msgstr "プール %(pool_id)s を無視しています" @@ -374,9 +373,9 @@ msgid "" "Unable to convert the value %(value)s to the expected data type %(type)s." msgstr "値 %(value)s を、想定されるデータ型 %(type)s に変換できません。" -#, fuzzy, python-format +#, python-format msgid "Unable to discover resources: %s" -msgstr "リソースをディスカバーできません: %s" +msgstr "リソースを検出できません: %s" #, python-format msgid "Unable to evaluate expression %(expr)s: %(exc)s" @@ -397,7 +396,7 @@ msgid "" msgstr "" "%(retries)d 回の再試行後、1 次 mongodb に再接続できません。中止します。" -#, fuzzy, python-format +#, python-format msgid "" "Unable to reconnect to the primary mongodb: %(errmsg)s. Trying again in " "%(retry_interval)d seconds." @@ -423,7 +422,7 @@ msgstr "不明なディスカバリーエクステンション: %s" msgid "Unknown metadata type. Key (%s) will not be queryable." msgstr "不明なメタデータ種別です。キー (%s) は照会不可になります。" -#, fuzzy, python-format +#, python-format msgid "" "Unknown status %(stat)s received on Load Balancer %(id)s, skipping sample" msgstr "" @@ -442,7 +441,7 @@ msgstr "" "リスナー %(id)s で不明な状態 %(stat)s を受信しました。サンプルをスキップしま" "す" -#, fuzzy, python-format +#, python-format msgid "Unknown status %(stat)s received on member %(id)s, skipping sample" msgstr "" "メンバー %(id)s で不明な状態 %(stat)s を受信しました。サンプルをスキップしま" @@ -458,7 +457,7 @@ msgid "Unknown status %(stat)s received on vip %(id)s, skipping sample" msgstr "" "仮想 IP %(id)s で不明な状態 %(stat)s を受信しました。サンプルをスキップします" -#, fuzzy, python-format +#, python-format msgid "Unknown status %(stat)s received on vpn %(id)s, skipping sample" msgstr "" "vpn %(id)s で不明な状態 %(stat)s を受信しました。サンプルをスキップします" @@ -481,6 +480,10 @@ msgstr "XenAPI がインストールされていません" msgid "YAML error reading Definitions file %(file)s" msgstr "定義ファイル %(file)s での読み取りの YAML エラー" +msgid "alarms URLs is unavailable when Aodh is disabled or unavailable." +msgstr "" +"Aodh が無効化されるか使用不可の場合、URL が使用できないことを警告します。" + #, python-format msgid "could not get CPU time for %(id)s: %(e)s" msgstr "%(id)s の CPU 時間を取得できませんでした: %(e)s" From 244439979fd28ecb0c76d132f0be784c988b54c8 Mon Sep 17 00:00:00 2001 From: Julien Danjou Date: Tue, 22 Mar 2016 17:03:29 +0100 Subject: [PATCH 10/10] collector: never allow to lose data The current default allows to lose data very easily: if the dispatcher fails to send data to the backend (e.g. Gnocchi is down), then the dispatcher raises and the data are lost for ever. This is completely unacceptable, and nobody should be able to configure Ceilometer in that way. This patch entirely remove that option, and switch the behavior to something sane. Change-Id: I45cb3da84eb2a785f46b3ec676c1a052ce999206 (cherry picked from commit 40684dafae76eab77b66bb1da7e143a3d7e2c9c8) --- ceilometer/collector.py | 36 ++++--------------- ceilometer/tests/functional/test_collector.py | 35 ------------------ .../always-requeue-7a2df9243987ab67.yaml | 15 ++++++++ 3 files changed, 21 insertions(+), 65 deletions(-) create mode 100644 releasenotes/notes/always-requeue-7a2df9243987ab67.yaml diff --git a/ceilometer/collector.py b/ceilometer/collector.py index 8f1140f6f5..ddc6b0e816 100644 --- a/ceilometer/collector.py +++ b/ceilometer/collector.py @@ -37,15 +37,6 @@ cfg.PortOpt('udp_port', default=4952, help='Port to which the UDP socket is bound.'), - cfg.BoolOpt('requeue_sample_on_dispatcher_error', - default=False, - help='Requeue the sample on the collector sample queue ' - 'when the collector fails to dispatch it. This is only valid ' - 'if the sample come from the notifier publisher.'), - cfg.BoolOpt('requeue_event_on_dispatcher_error', - default=False, - help='Requeue the event on the collector event queue ' - 'when the collector fails to dispatch it.'), cfg.IntOpt('batch_size', default=1, help='Number of notification messages to wait before ' @@ -91,8 +82,7 @@ def start(self): messaging.get_batch_notification_listener( transport, [sample_target], [SampleEndpoint(self.meter_manager)], - allow_requeue=(cfg.CONF.collector. - requeue_sample_on_dispatcher_error), + allow_requeue=True, batch_size=cfg.CONF.collector.batch_size, batch_timeout=cfg.CONF.collector.batch_timeout)) self.sample_listener.start() @@ -104,8 +94,7 @@ def start(self): messaging.get_batch_notification_listener( transport, [event_target], [EventEndpoint(self.event_manager)], - allow_requeue=(cfg.CONF.collector. - requeue_event_on_dispatcher_error), + allow_requeue=True, batch_size=cfg.CONF.collector.batch_size, batch_timeout=cfg.CONF.collector.batch_timeout)) self.event_listener.start() @@ -158,9 +147,8 @@ def record_metering_data(self, context, data): class CollectorEndpoint(object): - def __init__(self, dispatcher_manager, requeue_on_error): + def __init__(self, dispatcher_manager): self.dispatcher_manager = dispatcher_manager - self.requeue_on_error = requeue_on_error def sample(self, messages): """RPC endpoint for notification messages @@ -172,28 +160,16 @@ def sample(self, messages): try: self.dispatcher_manager.map_method(self.method, samples) except Exception: - if self.requeue_on_error: - LOG.exception(_LE("Dispatcher failed to handle the %s, " - "requeue it."), self.ep_type) - return oslo_messaging.NotificationResult.REQUEUE - raise + LOG.exception(_LE("Dispatcher failed to handle the %s, " + "requeue it."), self.ep_type) + return oslo_messaging.NotificationResult.REQUEUE class SampleEndpoint(CollectorEndpoint): method = 'record_metering_data' ep_type = 'sample' - def __init__(self, dispatcher_manager): - super(SampleEndpoint, self).__init__( - dispatcher_manager, - cfg.CONF.collector.requeue_sample_on_dispatcher_error) - class EventEndpoint(CollectorEndpoint): method = 'record_events' ep_type = 'event' - - def __init__(self, dispatcher_manager): - super(EventEndpoint, self).__init__( - dispatcher_manager, - cfg.CONF.collector.requeue_event_on_dispatcher_error) diff --git a/ceilometer/tests/functional/test_collector.py b/ceilometer/tests/functional/test_collector.py index d701d4022c..af8254a25b 100644 --- a/ceilometer/tests/functional/test_collector.py +++ b/ceilometer/tests/functional/test_collector.py @@ -236,46 +236,11 @@ def _test_collector_requeue(self, listener, batch_listener=False): mock.Mock()) @mock.patch.object(collector.CollectorService, 'start_udp', mock.Mock()) def test_collector_sample_requeue(self): - self.CONF.set_override('requeue_sample_on_dispatcher_error', True, - group='collector') self._test_collector_requeue('sample_listener') @mock.patch.object(oslo_messaging.MessageHandlingServer, 'start', mock.Mock()) @mock.patch.object(collector.CollectorService, 'start_udp', mock.Mock()) def test_collector_event_requeue(self): - self.CONF.set_override('requeue_event_on_dispatcher_error', True, - group='collector') self.CONF.set_override('store_events', True, group='notification') self._test_collector_requeue('event_listener') - - def _test_collector_no_requeue(self, listener): - mock_dispatcher = self._setup_fake_dispatcher() - self.srv.dispatcher_manager = dispatcher.load_dispatcher_manager() - mock_dispatcher.record_metering_data.side_effect = (FakeException - ('boom')) - mock_dispatcher.record_events.side_effect = (FakeException - ('boom')) - - self.srv.start() - endp = getattr(self.srv, listener).dispatcher.endpoints[0] - self.assertRaises(FakeException, endp.sample, [ - {'ctxt': {}, 'publisher_id': 'pub_id', 'event_type': 'event', - 'payload': {}, 'metadata': {}}]) - - @mock.patch.object(oslo_messaging.MessageHandlingServer, 'start', - mock.Mock()) - @mock.patch.object(collector.CollectorService, 'start_udp', mock.Mock()) - def test_collector_sample_no_requeue(self): - self.CONF.set_override('requeue_sample_on_dispatcher_error', False, - group='collector') - self._test_collector_no_requeue('sample_listener') - - @mock.patch.object(oslo_messaging.MessageHandlingServer, 'start', - mock.Mock()) - @mock.patch.object(collector.CollectorService, 'start_udp', mock.Mock()) - def test_collector_event_no_requeue(self): - self.CONF.set_override('requeue_event_on_dispatcher_error', False, - group='collector') - self.CONF.set_override('store_events', True, group='notification') - self._test_collector_no_requeue('event_listener') diff --git a/releasenotes/notes/always-requeue-7a2df9243987ab67.yaml b/releasenotes/notes/always-requeue-7a2df9243987ab67.yaml new file mode 100644 index 0000000000..68fd23700f --- /dev/null +++ b/releasenotes/notes/always-requeue-7a2df9243987ab67.yaml @@ -0,0 +1,15 @@ +--- +critical: + - > + The previous configuration options default for + `requeue_sample_on_dispatcher_error' and + `requeue_event_on_dispatcher_error' allowed to lose data very easily: if + the dispatcher failed to send data to the backend (e.g. Gnocchi is down), + then the dispatcher raised and the data were lost forever. This was + completely unacceptable, and nobody should be able to configure Ceilometer + in that way." + +upgrade: + - > + The options `requeue_event_on_dispatcher_error' and + `requeue_sample_on_dispatcher_error' have been enabled and removed.