<commit_before>tosca_definitions_version: cloudify_dsl_1_1

imports:
  # - http://www.getcloudify.org/spec/cloudify/3.1/types.yaml
  - file:///home/dan/dev/cloudify/cloudify-manager/resources/rest-service/cloudify/types/types.yaml

plugins:
  self:
    executor: central_deployment_agent
    install: false

inputs:
  virtualenv_name:
    description: The virtualenv name to pass to mkvirtualenv
    default: env
  workdir:
    description: working directory to install things in
  default_branch:
    description: default repositories branch
    default: master
  virtualenvwrapper_path:
    description: >
      path to virtualenvwrapper script to be sourced before creating
      the virtualenv
    default: virtualenvwrapper.sh
  register_python_argcomplete:
    description: >
      names to register with python arg-complete when on virtualenv
      postactivate. (cfy and cdev are always registered)
    default: []
  requirements:
    description: >
      additional requirements to install in virtualenv
    default: []
  constraints:
    description: >
      additional constraints
    default: []
  git_config:
    description: >
      git config to apply to all repos
    default: {}


relationships:

  package_depends_on_repo:
    derived_from: cloudify.relationships.depends_on
    source_interfaces:
      cloudify.interfaces.relationship_lifecycle:
        preconfigure:
          implementation: self.operations.pip.configure_python_package_path
          inputs:
            repo_location:
              default: { get_attribute: [TARGET, repo_location] }
            base_package_path:
              default: { get_property: [SOURCE, path] }

  package_depends_on_virtualenv:
    derived_from: cloudify.relationships.depends_on
    source_interfaces:
      cloudify.interfaces.relationship_lifecycle:
        preconfigure:
          implementation: self.operations.pip.configure_virtualenv_location
          inputs:
            virtualenv_location:
              default: { get_attribute: [TARGET, virtualenv_location] }

  package_depends_on_package:
    derived_from: cloudify.relationships.depends_on
    source_interfaces:
      cloudify.interfaces.relationship_lifecycle:
        preconfigure:
          implementation: self.operations.pip.configure_package_dependency
          inputs:
            target_package_path:
              default: { get_attribute: [TARGET, package_path] }

node_types:

  directory:
    derived_from: cloudify.nodes.Root
    properties:
      location:
        description: a directory node
    interfaces:
      cloudify.interfaces.lifecycle:
        create:
          implementation: self.operations.operations.makedirs
          inputs:
            location:
              default: { get_property: [SELF, location] }

  git_repo:
    derived_from: cloudify.nodes.Root
    properties:
      name:
        description: the repo name
      organization:
        description: the github organization
        default: cloudify-cosmo
      branch:
        description: the repo branch
        default: { get_input: default_branch }
      location:
        default: { get_input: workdir }
      repo_type:
        description: >
          One of: core, plugin, misc. Used by git checkout to figure out
          build branch names.
      git_config:
        default: { get_input: git_config }
    interfaces:
      cloudify.interfaces.lifecycle:
        create:
          implementation: self.operations.git.clone
          inputs:
            location:
              default: { get_property: [SELF, location] }
            organization:
              default: { get_property: [SELF, organization] }
            repo:
              default: { get_property: [SELF, name] }
            branch:
              default: { get_property: [SELF, branch] }
        configure:
          implementation: self.operations.git.configure
          inputs:
            commit_msg_resource_path:
              default: resources/commit-msg
            git_config:
              default: { get_property: [SELF, git_config] }
      git:
        pull:
          implementation: self.operations.git.pull
          inputs: {}
        status:
          implementation: self.operations.git.status
          inputs: {}
        checkout:
          implementation: self.operations.git.checkout
          inputs:
            repo_type:
              default: { get_property: [SELF, repo_type ] }
            branch:
              default: ''
              description: |
                Which branch to checkout out, if starts with a dot (.), it will be
                treated as a core/plugin checkout and a version prefix will be attached
                according to the repo_type.
                A path to a yaml mapping file can also be supplied, in which
                case only if there is a mapping for the specified repo

  virtualenv:
    derived_from: cloudify.nodes.Root
    properties:
      name:
        description: the virtualenv name
        default: env
    interfaces:
      cloudify.interfaces.lifecycle:
        create:
          implementation: operations/virtualenv.sh
          inputs:
            process:
              default:
                env:
                  operation: mkvirtualenv
                  virtualenvwrapper_path: { get_input: virtualenvwrapper_path }
                  virtualenv_name: { get_property: [SELF, name] }

  python_package:
    derived_from: cloudify.nodes.Root
    properties:
      name:
        description: the python package name
      path:
        description: >
          path to package relative to the repo it depends on
        default: ''
      test:
        description: >
          path to root test package relative to [SELF, path]
        default: ''
    interfaces:
      cloudify.interfaces.lifecycle:
        configure:
          implementation: self.operations.pip.add_self_requirement
          inputs:
            package_path:
              default: { get_attribute: [SELF, package_path] }
      pip:
        install:
          implementation: self.operations.pip.install
          inputs:
            virtualenv_location:
              default: { get_attribute: [SELF, virtualenv_location] }
            package_path:
              default: { get_attribute: [SELF, package_path] }
      nose:
        run:
          implementation: self.operations.operations.nose_run
          inputs:
            virtualenv_location:
              default: { get_attribute: [SELF, virtualenv_location] }
            test_path:
              default: { concat: [{ get_attribute: [SELF, package_path] }, '/',
                                  { get_property: [SELF, test] }] }

  requirements:
    derived_from: cloudify.nodes.Root
    properties:
      path:
        description: >
          path to requirements file that should be installed
      requirements:
        description: additional requirements that should get installed
        default: []
    interfaces:
      cloudify.interfaces.lifecycle:
        start:
          implementation: self.operations.pip.add_additional_requirements
          inputs:
            requirements:
              default: { get_property: [SELF, requirements] }
            requirements_path:
              default: { get_property: [SELF, path] }

  package_installer:
    derived_from: cloudify.nodes.Root
    interfaces:
      cloudify.interfaces.lifecycle:
        start:
          implementation: self.operations.pip.install_packages
          inputs: {}

node_templates:

  stub_host:
    type: cloudify.nodes.Compute
    properties:
      install_agent: false

  workdir:
    type: directory
    properties:
      location: { get_input: workdir }

  virtualenv:
    type: virtualenv
    properties:
      name: { get_input: virtualenv_name }
    interfaces:
      cloudify.interfaces.lifecycle:
        configure:
          implementation: self.operations.pip.configure_virtualenv
          inputs:
            constraints_resource_path: resources/constraints.txt
            additional_constraints: { get_input: constraints }
            postactivate_resource_path: resources/postactivate
            repositories_dir: { get_property: [workdir, location] }
            virtualenv_location: { get_attribute: [SELF, virtualenv_location] }
            register_python_argcomplete: { get_input: register_python_argcomplete }
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on
      - target: stub_host
        type: cloudify.relationships.contained_in

  ######################
  # github repositories
  ######################

  manager_repo:
    type: git_repo
    properties:
      name: cloudify-manager
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  dsl_parser_repo:
    type: git_repo
    properties:
      name: cloudify-dsl-parser
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  cli_repo:
    type: git_repo
    properties:
      name: cloudify-cli
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  plugins_common_repo:
    type: git_repo
    properties:
      name: cloudify-plugins-common
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  rest_client_repo:
    type: git_repo
    properties:
      name: cloudify-rest-client
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  script_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-script-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  diamond_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-diamond-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  amqp_influxdb_repo:
    type: git_repo
    properties:
      name: cloudify-amqp-influxdb
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  build_dashboard_repo:
    type: git_repo
    properties:
      name: cloudify-build-dashboard
      branch: gh-pages
      repo_type: misc
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  system_tests_launcher_repo:
    type: git_repo
    properties:
      name: system-tests-launcher
      repo_type: misc
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  cli_fabric_tasks_repo:
    type: git_repo
    properties:
      name: cloudify-cli-fabric-tasks
      repo_type: misc
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  docker_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-docker-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  chef_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-chef-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  puppet_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-puppet-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  fabric_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-fabric-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  vsphere_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-vsphere-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  softlayer_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-softlayer-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  hello_world_example_repo:
    type: git_repo
    properties:
      name: cloudify-hello-world-example
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  nodecellar_example_repo:
    type: git_repo
    properties:
      name: cloudify-nodecellar-example
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  manager_blueprints_repo:
    type: git_repo
    properties:
      name: cloudify-manager-blueprints
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  openstack_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-openstack-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  aws_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-aws-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  plugin_template_repo:
    type: git_repo
    properties:
      name: cloudify-plugin-template
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  system_tests_repo:
    type: git_repo
    properties:
      name: cloudify-system-tests
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  packager_repo:
    type: git_repo
    properties:
      name: cloudify-packager
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  cli_packager_repo:
    type: git_repo
    properties:
      name: cloudify-cli-packager
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  getcloudify_repo:
    type: git_repo
    properties:
      name: getcloudify.org
      repo_type: misc
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  docs_getcloudify_repo:
    type: git_repo
    properties:
      name: docs.getcloudify.org
      repo_type: misc
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  docs_getcloudify_site_repo:
    type: git_repo
    properties:
      name: docs.getcloudify.org-site
      repo_type: misc
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on
      - target: docs_getcloudify_repo
        type: cloudify.relationships.depends_on
        source_interfaces:
          cloudify.interfaces.relationship_lifecycle:
            postconfigure:
              implementation: self.operations.operations.configure_docs_getcloudify_source
              inputs:
                docs_getcloudify_repo_location: { get_attribute: [TARGET, repo_location] }

  flask_securest_repo:
    type: git_repo
    properties:
      name: flask-securest
      repo_type: misc
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  agent_repo:
    type: git_repo
    properties:
      name: cloudify-agent
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  agent_packager_repo:
    type: git_repo
    properties:
      name: cloudify-agent-packager
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  ##################
  # python packages
  ##################<commit_msg>make agent packager non-core<commit_after>tosca_definitions_version: cloudify_dsl_1_1

imports:
  # - http://www.getcloudify.org/spec/cloudify/3.1/types.yaml
  - file:///home/dan/dev/cloudify/cloudify-manager/resources/rest-service/cloudify/types/types.yaml

plugins:
  self:
    executor: central_deployment_agent
    install: false

inputs:
  virtualenv_name:
    description: The virtualenv name to pass to mkvirtualenv
    default: env
  workdir:
    description: working directory to install things in
  default_branch:
    description: default repositories branch
    default: master
  virtualenvwrapper_path:
    description: >
      path to virtualenvwrapper script to be sourced before creating
      the virtualenv
    default: virtualenvwrapper.sh
  register_python_argcomplete:
    description: >
      names to register with python arg-complete when on virtualenv
      postactivate. (cfy and cdev are always registered)
    default: []
  requirements:
    description: >
      additional requirements to install in virtualenv
    default: []
  constraints:
    description: >
      additional constraints
    default: []
  git_config:
    description: >
      git config to apply to all repos
    default: {}


relationships:

  package_depends_on_repo:
    derived_from: cloudify.relationships.depends_on
    source_interfaces:
      cloudify.interfaces.relationship_lifecycle:
        preconfigure:
          implementation: self.operations.pip.configure_python_package_path
          inputs:
            repo_location:
              default: { get_attribute: [TARGET, repo_location] }
            base_package_path:
              default: { get_property: [SOURCE, path] }

  package_depends_on_virtualenv:
    derived_from: cloudify.relationships.depends_on
    source_interfaces:
      cloudify.interfaces.relationship_lifecycle:
        preconfigure:
          implementation: self.operations.pip.configure_virtualenv_location
          inputs:
            virtualenv_location:
              default: { get_attribute: [TARGET, virtualenv_location] }

  package_depends_on_package:
    derived_from: cloudify.relationships.depends_on
    source_interfaces:
      cloudify.interfaces.relationship_lifecycle:
        preconfigure:
          implementation: self.operations.pip.configure_package_dependency
          inputs:
            target_package_path:
              default: { get_attribute: [TARGET, package_path] }

node_types:

  directory:
    derived_from: cloudify.nodes.Root
    properties:
      location:
        description: a directory node
    interfaces:
      cloudify.interfaces.lifecycle:
        create:
          implementation: self.operations.operations.makedirs
          inputs:
            location:
              default: { get_property: [SELF, location] }

  git_repo:
    derived_from: cloudify.nodes.Root
    properties:
      name:
        description: the repo name
      organization:
        description: the github organization
        default: cloudify-cosmo
      branch:
        description: the repo branch
        default: { get_input: default_branch }
      location:
        default: { get_input: workdir }
      repo_type:
        description: >
          One of: core, plugin, misc. Used by git checkout to figure out
          build branch names.
      git_config:
        default: { get_input: git_config }
    interfaces:
      cloudify.interfaces.lifecycle:
        create:
          implementation: self.operations.git.clone
          inputs:
            location:
              default: { get_property: [SELF, location] }
            organization:
              default: { get_property: [SELF, organization] }
            repo:
              default: { get_property: [SELF, name] }
            branch:
              default: { get_property: [SELF, branch] }
        configure:
          implementation: self.operations.git.configure
          inputs:
            commit_msg_resource_path:
              default: resources/commit-msg
            git_config:
              default: { get_property: [SELF, git_config] }
      git:
        pull:
          implementation: self.operations.git.pull
          inputs: {}
        status:
          implementation: self.operations.git.status
          inputs: {}
        checkout:
          implementation: self.operations.git.checkout
          inputs:
            repo_type:
              default: { get_property: [SELF, repo_type ] }
            branch:
              default: ''
              description: |
                Which branch to checkout out, if starts with a dot (.), it will be
                treated as a core/plugin checkout and a version prefix will be attached
                according to the repo_type.
                A path to a yaml mapping file can also be supplied, in which
                case only if there is a mapping for the specified repo

  virtualenv:
    derived_from: cloudify.nodes.Root
    properties:
      name:
        description: the virtualenv name
        default: env
    interfaces:
      cloudify.interfaces.lifecycle:
        create:
          implementation: operations/virtualenv.sh
          inputs:
            process:
              default:
                env:
                  operation: mkvirtualenv
                  virtualenvwrapper_path: { get_input: virtualenvwrapper_path }
                  virtualenv_name: { get_property: [SELF, name] }

  python_package:
    derived_from: cloudify.nodes.Root
    properties:
      name:
        description: the python package name
      path:
        description: >
          path to package relative to the repo it depends on
        default: ''
      test:
        description: >
          path to root test package relative to [SELF, path]
        default: ''
    interfaces:
      cloudify.interfaces.lifecycle:
        configure:
          implementation: self.operations.pip.add_self_requirement
          inputs:
            package_path:
              default: { get_attribute: [SELF, package_path] }
      pip:
        install:
          implementation: self.operations.pip.install
          inputs:
            virtualenv_location:
              default: { get_attribute: [SELF, virtualenv_location] }
            package_path:
              default: { get_attribute: [SELF, package_path] }
      nose:
        run:
          implementation: self.operations.operations.nose_run
          inputs:
            virtualenv_location:
              default: { get_attribute: [SELF, virtualenv_location] }
            test_path:
              default: { concat: [{ get_attribute: [SELF, package_path] }, '/',
                                  { get_property: [SELF, test] }] }

  requirements:
    derived_from: cloudify.nodes.Root
    properties:
      path:
        description: >
          path to requirements file that should be installed
      requirements:
        description: additional requirements that should get installed
        default: []
    interfaces:
      cloudify.interfaces.lifecycle:
        start:
          implementation: self.operations.pip.add_additional_requirements
          inputs:
            requirements:
              default: { get_property: [SELF, requirements] }
            requirements_path:
              default: { get_property: [SELF, path] }

  package_installer:
    derived_from: cloudify.nodes.Root
    interfaces:
      cloudify.interfaces.lifecycle:
        start:
          implementation: self.operations.pip.install_packages
          inputs: {}

node_templates:

  stub_host:
    type: cloudify.nodes.Compute
    properties:
      install_agent: false

  workdir:
    type: directory
    properties:
      location: { get_input: workdir }

  virtualenv:
    type: virtualenv
    properties:
      name: { get_input: virtualenv_name }
    interfaces:
      cloudify.interfaces.lifecycle:
        configure:
          implementation: self.operations.pip.configure_virtualenv
          inputs:
            constraints_resource_path: resources/constraints.txt
            additional_constraints: { get_input: constraints }
            postactivate_resource_path: resources/postactivate
            repositories_dir: { get_property: [workdir, location] }
            virtualenv_location: { get_attribute: [SELF, virtualenv_location] }
            register_python_argcomplete: { get_input: register_python_argcomplete }
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on
      - target: stub_host
        type: cloudify.relationships.contained_in

  ######################
  # github repositories
  ######################

  manager_repo:
    type: git_repo
    properties:
      name: cloudify-manager
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  dsl_parser_repo:
    type: git_repo
    properties:
      name: cloudify-dsl-parser
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  cli_repo:
    type: git_repo
    properties:
      name: cloudify-cli
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  plugins_common_repo:
    type: git_repo
    properties:
      name: cloudify-plugins-common
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  rest_client_repo:
    type: git_repo
    properties:
      name: cloudify-rest-client
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  script_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-script-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  diamond_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-diamond-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  amqp_influxdb_repo:
    type: git_repo
    properties:
      name: cloudify-amqp-influxdb
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  build_dashboard_repo:
    type: git_repo
    properties:
      name: cloudify-build-dashboard
      branch: gh-pages
      repo_type: misc
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  system_tests_launcher_repo:
    type: git_repo
    properties:
      name: system-tests-launcher
      repo_type: misc
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  cli_fabric_tasks_repo:
    type: git_repo
    properties:
      name: cloudify-cli-fabric-tasks
      repo_type: misc
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  docker_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-docker-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  chef_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-chef-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  puppet_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-puppet-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  fabric_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-fabric-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  vsphere_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-vsphere-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  softlayer_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-softlayer-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  hello_world_example_repo:
    type: git_repo
    properties:
      name: cloudify-hello-world-example
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  nodecellar_example_repo:
    type: git_repo
    properties:
      name: cloudify-nodecellar-example
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  manager_blueprints_repo:
    type: git_repo
    properties:
      name: cloudify-manager-blueprints
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  openstack_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-openstack-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  aws_plugin_repo:
    type: git_repo
    properties:
      name: cloudify-aws-plugin
      repo_type: plugin
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  plugin_template_repo:
    type: git_repo
    properties:
      name: cloudify-plugin-template
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  system_tests_repo:
    type: git_repo
    properties:
      name: cloudify-system-tests
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  packager_repo:
    type: git_repo
    properties:
      name: cloudify-packager
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  cli_packager_repo:
    type: git_repo
    properties:
      name: cloudify-cli-packager
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  getcloudify_repo:
    type: git_repo
    properties:
      name: getcloudify.org
      repo_type: misc
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  docs_getcloudify_repo:
    type: git_repo
    properties:
      name: docs.getcloudify.org
      repo_type: misc
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  docs_getcloudify_site_repo:
    type: git_repo
    properties:
      name: docs.getcloudify.org-site
      repo_type: misc
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on
      - target: docs_getcloudify_repo
        type: cloudify.relationships.depends_on
        source_interfaces:
          cloudify.interfaces.relationship_lifecycle:
            postconfigure:
              implementation: self.operations.operations.configure_docs_getcloudify_source
              inputs:
                docs_getcloudify_repo_location: { get_attribute: [TARGET, repo_location] }

  flask_securest_repo:
    type: git_repo
    properties:
      name: flask-securest
      repo_type: misc
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  agent_repo:
    type: git_repo
    properties:
      name: cloudify-agent
      repo_type: core
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  agent_packager_repo:
    type: git_repo
    properties:
      name: cloudify-agent-packager
      repo_type: misc
    relationships:
      - target: workdir
        type: cloudify.relationships.depends_on

  ##################
  # python packages
  ##################
{'fraction_non_alphanumeric': 0.07000732227563593, 'fraction_numerical': 0.0002546878482060425, 'mean_word_length': 2.275836896443842, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2389697', 'n_tokens_mistral': 8900, 'n_tokens_neox': 8674, 'n_words': 1949}