示例#1
0
    def get(self, _include=None, **kwargs):
        """
        List nodes
        """
        args = get_args_and_verify_arguments(
            [Argument('deployment_id', required=False),
             Argument('node_id', required=False)]
        )

        deployment_id = args.get('deployment_id')
        node_id = args.get('node_id')
        if deployment_id and node_id:
            try:
                nodes = [get_node(deployment_id, node_id)]
            except manager_exceptions.NotFoundError:
                nodes = []
        else:
            deployment_id_filter = ResourceManager.create_filters_dict(
                deployment_id=deployment_id)
            nodes = get_storage_manager().list(
                models.Node,
                filters=deployment_id_filter,
                include=_include
            ).items
        return nodes
 def get(self, _include=None, **kwargs):
     args = get_args_and_verify_arguments(
         [Argument('deployment_id', required=False)])
     deployment_id_filter = ResourceManager.create_filters_dict(
         deployment_id=args.deployment_id)
     return get_storage_manager().list(models.DeploymentModification,
                                       filters=deployment_id_filter,
                                       include=_include).items
 def get(self, _include=None, **kwargs):
     args = get_args_and_verify_arguments(
         [Argument('deployment_id', required=False)]
     )
     deployment_id_filter = ResourceManager.create_filters_dict(
         deployment_id=args.deployment_id)
     return get_storage_manager().list(
         models.DeploymentModification,
         filters=deployment_id_filter,
         include=_include
     ).items
示例#4
0
 def get(self, _include=None, **kwargs):
     """List executions"""
     args = get_args_and_verify_arguments([
         Argument('deployment_id', required=False),
         Argument('include_system_workflows', type=boolean, default=False)
     ])
     deployment_id_filter = ResourceManager.create_filters_dict(
         deployment_id=args.deployment_id)
     return get_resource_manager().list_executions(
         is_include_system_workflows=args.include_system_workflows,
         include=_include,
         filters=deployment_id_filter).items
 def get(self, _include=None, **kwargs):
     """List executions"""
     args = get_args_and_verify_arguments(
         [Argument('deployment_id', required=False),
          Argument('include_system_workflows', type=boolean,
                   default=False)]
     )
     deployment_id_filter = ResourceManager.create_filters_dict(
         deployment_id=args.deployment_id)
     return get_resource_manager().list_executions(
         is_include_system_workflows=args.include_system_workflows,
         include=_include,
         filters=deployment_id_filter).items
示例#6
0
 def get(self, _include=None, **kwargs):
     """
     List node instances
     """
     args = get_args_and_verify_arguments([
         Argument('deployment_id', type=str, required=False),
         Argument('node_name', type=str, required=False)
     ])
     deployment_id = args.get('deployment_id')
     node_id = args.get('node_name')
     params_filter = ResourceManager.create_filters_dict(
         deployment_id=deployment_id, node_id=node_id)
     return get_storage_manager().list(models.NodeInstance,
                                       filters=params_filter,
                                       include=_include).items
示例#7
0
 def get(self, _include=None, **kwargs):
     """
     List node instances
     """
     args = get_args_and_verify_arguments(
         [Argument('deployment_id', required=False),
          Argument('node_name', required=False)]
     )
     deployment_id = args.get('deployment_id')
     node_id = args.get('node_name')
     params_filter = ResourceManager.create_filters_dict(
         deployment_id=deployment_id, node_id=node_id)
     return get_storage_manager().list(
         models.NodeInstance,
         filters=params_filter,
         include=_include
     ).items
示例#8
0
def cleanup_deployment(depl_id, get_all):
    with setup_flask_app().app_context():
        sm = get_storage_manager()
        params_filter = ResourceManager.create_filters_dict(
            deployment_id=depl_id)
        list_kwargs = {'filters': params_filter, 'include': None}
        if get_all:
            list_kwargs['get_all_results'] = True

        instances = get_storage_manager().list(models.NodeInstance,
                                               **list_kwargs).items
        alive_instances = []
        delete_instances = []
        count_instances = {}
        for instance in instances:
            if instance.node_id not in count_instances:
                count_instances[instance.node_id] = 0
            if instance.state not in ('uninitialized', 'deleted'):
                alive_instances.append(instance.id)
                # update count of instances internaly
                count_instances[instance.node_id] += 1
            else:
                delete_instances.append(instance.id)
                sm.delete(instance)
        sys.stderr.write("For save as alive: {}\n".format(
            repr(alive_instances)))
        sys.stderr.write("For delete as uninitialized: {}\n".format(
            repr(delete_instances)))
        # cleanup instances relationships
        for instance in instances:
            if instance.id in alive_instances:
                sys.stderr.write("{}:Before relationships{}\n".format(
                    instance.id, repr(instance.relationships)))
                relationships = []
                for relationship in instance.relationships:
                    if relationship['target_id'] in alive_instances:
                        relationships.append(relationship)
                instance.relationships = relationships
                sys.stderr.write("{}:After relationships{}\n".format(
                    instance.id, repr(instance.relationships)))
                sm.update(instance)
        # cleanup nodes
        nodes = get_storage_manager().list(models.Node, **list_kwargs).items
        for node in nodes:
            if node.id in count_instances:
                node.number_of_instances = count_instances[node.id]
                sm.update(node)
        sys.stderr.write("Count instances after cleanup: {}\n".format(
            repr(count_instances)))
        # deployemnts update
        deployment = sm.get(models.Deployment, depl_id)
        sys.stderr.write("Scaling groups before: {}\n".format(
            repr(deployment.scaling_groups)))
        scaling_groups = deepcopy(deployment.scaling_groups)
        for scaling_group_name in scaling_groups:
            scaling_group = scaling_groups[scaling_group_name]
            instances_count = 0
            for node in scaling_group['members']:
                if instances_count < count_instances.get(node, 0):
                    instances_count = count_instances[node]
            scaling_group['properties']['planned_instances'] = instances_count
            scaling_group['properties']['current_instances'] = instances_count
        deployment.scaling_groups = scaling_groups
        sm.update(deployment)
        sys.stderr.write("Scaling groups after: {}\n".format(
            repr(scaling_groups)))