123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- #
- # Copyright 2019 The FATE Authors. All Rights Reserved.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- #
- import os.path
- from flow_sdk.client.api.base import BaseFlowAPI
- from flow_sdk.utils import preprocess
- class Test(BaseFlowAPI):
- def toy(self, guest_party_id: str, host_party_id: str, guest_user_name: str = "", host_user_name: str = "",
- task_cores: int = 2, timeout: int = 60):
- kwargs = locals()
- config_data, dsl_data = preprocess(**kwargs)
- conf = self.toy_conf(**kwargs)
- return self._post(url='job/submit', json={
- 'job_runtime_conf': conf,
- 'job_dsl': self.toy_dsl(),
- })
- @classmethod
- def toy_conf(cls, guest_party_id: str, host_party_id: str, guest_user_name: str = "", host_user_name: str = "",
- task_cores: int = 2, **kwargs):
- job_conf = {
- "dsl_version": 2,
- "job_parameters": {
- },
- "role": {
- "guest": [
- guest_party_id
- ],
- "host": [
- host_party_id
- ]
- },
- "component_parameters": {
- "role": {
- "guest": {
- "0": {
- "secure_add_example_0": {
- "seed": 123
- }
- }
- },
- "host": {
- "secure_add_example_0": {
- "seed": 321
- }
- }
- },
- "common": {
- "secure_add_example_0": {
- "partition": 4,
- "data_num": 1000
- }
- }
- }
- }
- job_conf["initiator"] = {
- "role": "guest",
- "party_id": guest_party_id
- }
- job_conf["role"]["guest"] = [guest_party_id]
- job_conf["role"]["host"] = [host_party_id]
- job_conf["job_parameters"]["common"] = {
- "task_cores": task_cores
- }
- job_conf["job_parameters"]["role"] = {
- "guest": {"0": {"user": guest_user_name}},
- "host": {"0": {"user": host_user_name}}
- }
- return job_conf
- @classmethod
- def toy_dsl(cls):
- dsl = {
- "components": {
- "secure_add_example_0": {
- "module": "SecureAddExample"
- }
- }
- }
- return dsl
- @classmethod
- def check_toy(cls, guest_party_id, job_status, log_dir):
- if job_status in {"success", "canceled"}:
- info_log = os.path.join(log_dir, "guest", guest_party_id, "INFO.log")
- with open(info_log, "r") as fin:
- for line in fin:
- if line.find("secure_add_guest") != -1:
- yield line.strip()
- else:
- error_log = os.path.join(log_dir, "guest", guest_party_id, "ERROR.log")
- with open(error_log, "r") as fin:
- for line in fin:
- yield line.strip()
|