Beispiel #1
0
    def create_app_version_from(self, origin, base_major_version,
                                workflow_path, custom_nodes_path,
                                recognition_version_ids):
        data = {}
        files = {}
        kwargs = {}

        if recognition_version_ids:
            data['recognition_version_ids'] = recognition_version_ids
        if base_major_version:
            data['base_major_version'] = base_major_version
        kwargs['data'] = data

        try:
            if workflow_path:
                files['workflow_yaml'] = open(workflow_path, 'r')
            if custom_nodes_path:
                files['custom_nodes_py'] = open(custom_nodes_path, 'r')
            if files:
                kwargs['files'] = files
                kwargs['content_type'] = "multipart/mixed"

            response = self.engage_client.post(
                self.version_create_from_endpoint.format(origin), **kwargs)
        finally:
            for file in files.values():
                file.close()

        return CommandResult(
            "created", "engage_app_version", response,
            ["id", "drive_app_version_id"],
            "version={}.{} from={}".format(response["major"],
                                           response["minor"], origin))
Beispiel #2
0
    def create_app_version(self, app_id, workflow_path, custom_nodes_path,
                           recognition_version_ids, base_major_version):

        data = {'recognition_version_ids': recognition_version_ids}

        if base_major_version:
            data['base_major_version'] = base_major_version

        try:
            files = {'workflow_yaml': open(workflow_path, 'r')}
            if custom_nodes_path:
                files['custom_nodes_py'] = open(custom_nodes_path, 'r')

            response = self.engage_client.post('{}/{}/versions'.format(
                self.engage_app_endpoint, app_id),
                                               data=data,
                                               files=files,
                                               content_type='multipart/mixed')
        finally:
            for file in files.values():
                file.close()

        return CommandResult(
            "created", "engage_app_version", response,
            ["id", "drive_app_version_id"],
            "version={}.{}".format(response["major"], response["minor"]))
Beispiel #3
0
 def create_app(self, name, description, services):
     data_app = {
         'name': name,
         'desc': description,
         'services': [{
             "name": service
         } for service in services]
     }
     ret = self.drive_client.post('/apps', data=data_app)
     return CommandResult("created", "drive_app", ret)
Beispiel #4
0
    def update_app(self, app_id, name, description):
        data = {}

        if name is not None:
            data['name'] = name

        if description is not None:
            data['desc'] = description

        ret = self.drive_client.patch('/apps/{}'.format(app_id), data=data)
        return CommandResult("updated", "drive_app", ret)
Beispiel #5
0
    def create_app(self, name, application_type):
        data = {"name": name}

        if application_type:
            data["application_type"] = application_type

        response = self.engage_client.post('{}'.format(
            self.engage_app_endpoint),
                                           data=data)

        return CommandResult("created", "engage_app", response)
Beispiel #6
0
 def test_common_usage(no_error_logs):
     for test in TESTS:
         command_result = str(CommandResult(**test))
         assert command_result.startswith("[")
         assert test["operation"] in str(command_result)
         assert test["resource_name"] in str(command_result)
         if "extra" in test:
             assert test["extra"] in str(command_result)
         if "fields_filter" in test:
             for field in test["fields_filter"]:
                 assert "{}={}".format(
                     field, test["data"][field]) in command_result
         else:
             assert "id={}".format(test["data"]["id"]) in command_result
Beispiel #7
0
    def create_app_version(self, app_id, name, description, app_specs,
                           version_ids):
        data = {
            'app_id': app_id,
            'name': name,
            'app_specs': app_specs,
            'recognition_version_ids': version_ids,
            # FIXME: To update when endpoint are updated.
            'resources': []
        }
        if description is not None:
            data['desc'] = description

        ret = self.drive_client.post('/app-versions', data=data)
        return CommandResult("created", "drive_app_version", ret)
Beispiel #8
0
 def delete_app_version(self, app_version_id):
     self.drive_client.delete('/app-versions/{}'.format(app_version_id))
     return CommandResult("deleted", "drive_app_version",
                          {"id": app_version_id})
Beispiel #9
0
 def delete_app(self, app_id):
     self.drive_client.delete('/apps/{}'.format(app_id))
     return CommandResult("deleted", "drive_app", {"id": app_id})
Beispiel #10
0
 def delete_app(self, app_id):
     self.engage_client.delete('{}/{}'.format(self.engage_app_endpoint,
                                              app_id))
     return CommandResult("deleted", "engage_app", {"id": app_id})