Пример #1
0
def package_change(args, manager):

    if args.packagedata is not None:
        package_data = json.loads(args.packagedata)
        if isinstance(package_data, dict):
            if package_data.has_key('package_id'):
                package_id = package_data['package_id']
            else:
                raise InputError(
                    "packagedata argument must contain key package_id")
            if package_data.has_key('package_name'):
                package_name = package_data['package_name']
            else:
                raise InputError(
                    "packagedata argument must contain key package_name")
            if package_data.has_key('new_package_name'):
                new_package_name = package_data['new_package_name']
            else:
                raise InputError(
                    "packagedata argument must contain key new_package_name")
        else:
            raise InputError("Invalid format of packagedata argument.")
    else:
        raise InputError("packagedata is required argument for this action.")

    current_package = AtomiaPackage(package_id=package_id,
                                    package_name=package_name)

    manager.change_package(account_number=args.account,
                           package=[current_package.to_xml_friendly_object()],
                           new_package_name=new_package_name)
    return True
Пример #2
0
def package_change(args, manager):

    if args.packagedata is not None:
        package_data = json.loads(args.packagedata)
        if isinstance(package_data, dict):
            if package_data.has_key('package_id'):
                package_id = package_data['package_id']
            else:
                raise InputError("packagedata argument must contain key package_id")
            if package_data.has_key('package_name'):
                package_name = package_data['package_name']
            else:
                raise InputError("packagedata argument must contain key package_name")
            if package_data.has_key('new_package_name'):
               new_package_name = package_data['new_package_name']
            else:
                raise InputError("packagedata argument must contain key new_package_name")
        else:
            raise InputError("Invalid format of packagedata argument.")
    else:
        raise InputError("packagedata is required argument for this action.")

    current_package = AtomiaPackage(package_id=package_id, package_name=package_name)

    manager.change_package(account_number=args.account, package=[current_package.to_xml_friendly_object()], new_package_name=new_package_name)
    return True
Пример #3
0
def package_add(args, manager):
    
    if args.packagedata is not None:
        package_data = json.loads(args.packagedata)
        if isinstance(package_data, dict):
            if package_data.has_key('package_name'):
                package_name = package_data['package_name']
            else:
                raise InputError("packagedata argument must contain key package_name")
            
            if package_data.has_key('package_arguments'):
                if isinstance(package_data['package_arguments'], dict):
                    package_arguments = package_data['package_arguments']
                else:
                    package_arguments = None
            else:
                package_arguments = None
        else:
            raise InputError("Invalid format of packagedata argument.")
    else:
        raise InputError("packagedata is required argument for this action.")
    
    package_to_add = AtomiaPackage(package_name=package_name)
    
    if package_arguments is not None:
        properties_list = []
        for proper in package_arguments:
            properties_list.append(AtomiaAccountProperty(key = proper, value = package_arguments[proper]).to_xml_friendly_object("arr:KeyValueOfstringstring", "KeyValueOfstringstring"))

        manager.add_package(args.account, [package_to_add.to_xml_friendly_object()], properties_list)
    else:
        manager.add_package(args.account, [package_to_add.to_xml_friendly_object()])
    return package_list(args, manager)
Пример #4
0
def package_delete(args, manager):

    if args.packagedata is not None:
        package_data = json.loads(args.packagedata)
        if isinstance(package_data, dict):
            if package_data.has_key('package_id'):
                package_id = package_data['package_id']
            else:
                raise InputError(
                    "packagedata argument must contain key package_id")
            if package_data.has_key('package_name'):
                package_name = package_data['package_name']
            else:
                raise InputError(
                    "packagedata argument must contain key package_name")
        else:
            raise InputError("Invalid format of packagedata argument.")
    else:
        raise InputError("packagedata is required argument for this action.")

    package_to_delete = AtomiaPackage(package_id=package_id,
                                      package_name=package_name)

    manager.delete_package(args.account,
                           [package_to_delete.to_xml_friendly_object()])
    print "Deleted package " + package_name + " for account " + args.account + " successfully."
    return True
Пример #5
0
def package_list(args, manager):
    
    packages_result = manager.list_packages(args.account)
    
    list_result_list = []
    if packages_result.has_key("ListPackagesForAccountResult") and packages_result["ListPackagesForAccountResult"].children() is not None and len(packages_result["ListPackagesForAccountResult"].children()) > 0:
        for k in packages_result["ListPackagesForAccountResult"].children():
            pack_result = AtomiaPackage()
            pack_result.from_simplexml(k)
            list_result_list.append(pack_result)
    print json_repr(list_result_list)
    return list_result_list
Пример #6
0
def package_list(args, manager):

    packages_result = manager.list_packages(args.account)

    list_result_list = []
    if packages_result.has_key(
            "ListPackagesForAccountResult"
    ) and packages_result["ListPackagesForAccountResult"].children(
    ) is not None and len(
            packages_result["ListPackagesForAccountResult"].children()) > 0:
        for k in packages_result["ListPackagesForAccountResult"].children():
            pack_result = AtomiaPackage()
            pack_result.from_simplexml(k)
            list_result_list.append(pack_result)
    print json_repr(list_result_list)
    return list_result_list
Пример #7
0
def package_add(args, manager):

    if args.packagedata is not None:
        package_data = json.loads(args.packagedata)
        if isinstance(package_data, dict):
            if package_data.has_key('package_name'):
                package_name = package_data['package_name']
            else:
                raise InputError(
                    "packagedata argument must contain key package_name")

            if package_data.has_key('package_arguments'):
                if isinstance(package_data['package_arguments'], dict):
                    package_arguments = package_data['package_arguments']
                else:
                    package_arguments = None
            else:
                package_arguments = None
        else:
            raise InputError("Invalid format of packagedata argument.")
    else:
        raise InputError("packagedata is required argument for this action.")

    package_to_add = AtomiaPackage(package_name=package_name)

    if package_arguments is not None:
        properties_list = []
        for proper in package_arguments:
            properties_list.append(
                AtomiaAccountProperty(
                    key=proper,
                    value=package_arguments[proper]).to_xml_friendly_object(
                        "arr:KeyValueOfstringstring",
                        "KeyValueOfstringstring"))

        manager.add_package(args.account,
                            [package_to_add.to_xml_friendly_object()],
                            properties_list)
    else:
        manager.add_package(args.account,
                            [package_to_add.to_xml_friendly_object()])
    return package_list(args, manager)
Пример #8
0
def package_delete(args, manager):
    
    if args.packagedata is not None:
        package_data = json.loads(args.packagedata)
        if isinstance(package_data, dict):
            if package_data.has_key('package_id'):
                package_id = package_data['package_id']
            else:
                raise InputError("packagedata argument must contain key package_id")
            if package_data.has_key('package_name'):
                package_name = package_data['package_name']
            else:
                raise InputError("packagedata argument must contain key package_name")
        else:
            raise InputError("Invalid format of packagedata argument.")
    else:
        raise InputError("packagedata is required argument for this action.")
    
    package_to_delete = AtomiaPackage(package_id = package_id, package_name=package_name)

    manager.delete_package(args.account, [package_to_delete.to_xml_friendly_object()])
    print "Deleted package " + package_name + " for account " + args.account + " successfully."
    return True
Пример #9
0
def service_add(args, manager, managernative):
    if args.accountdata is not None:
        account_data = json.loads(args.accountdata)
    else:
        account_data = None

    if args.servicedata is not None:
        service_description = json.loads(args.servicedata)
        if isinstance(service_description, dict):
            if service_description.has_key('name'):
                service_name = service_description['name']
            else:
                raise InputError("service argument must contain key name")

            if service_description.has_key('properties'):
                if isinstance(service_description['properties'], dict):
                    service_properties = service_description['properties']
                else:
                    service_properties = None
            else:
                service_properties = None
        else:
            raise InputError("Invalid format of find_options argument.")
    else:
        raise InputError("service is required argument for this action.")

    parent_service = find_service_by_arguments(manager, args.account,
                                               args.parent, args.path)

    if parent_service is not None:
        created_service_result = manager.create_service(
            service_name, [parent_service.to_xml_friendly_object()],
            args.account)
    else:
        created_service_result = manager.create_service(
            service_name, None, args.account)

    if created_service_result.has_key("CreateServiceResult") and len(
            created_service_result["CreateServiceResult"]) == 1:
        for j in created_service_result["CreateServiceResult"]:
            created_service = AtomiaService()
            created_service.from_simplexml(j)

            if service_properties is not None and created_service.properties is not None and len(
                    created_service.properties) > 0:
                for list_count in created_service.properties:
                    if (service_properties.has_key(list_count.name)):
                        if (service_properties[list_count.name] == 'null' or
                                service_properties[list_count.name] == 'NULL'):
                            list_count.prop_string_value = None
                        else:
                            list_count.prop_string_value = service_properties[
                                list_count.name]

            if args.noresource:
                if args.packagedata is not None:
                    package_data = json.loads(args.packagedata)
                    if isinstance(package_data, dict) and package_data.has_key(
                            'package_id') and package_data.has_key(
                                'package_name'):
                        package_arg = [
                            AtomiaPackage(
                                package_id=package_data['package_id'],
                                package_name=package_data['package_name']).
                            to_xml_friendly_object()
                        ]
                    else:
                        raise InputError(
                            "packagedata argument must contain key package_id and package_name"
                        )
                else:
                    package_arg = None

                if args.resourcename is None:
                    raise Exception(
                        "When specifying --noresource you have to specify --resourcename as well"
                    )
                elif parent_service is not None:
                    add_service_result = managernative.add_service_native(
                        [created_service.to_xml_friendly_object()],
                        [parent_service.to_xml_friendly_object()],
                        args.resourcename, None, args.account, package_arg,
                        False)
                else:
                    add_service_result = managernative.add_service_native(
                        [created_service.to_xml_friendly_object()], None,
                        args.resourcename, None, args.account, package_arg,
                        False)
            else:
                if parent_service is not None:
                    add_service_result = manager.add_service(
                        [created_service.to_xml_friendly_object()],
                        [parent_service.to_xml_friendly_object()],
                        args.account)
                else:
                    add_service_result = manager.add_service(
                        [created_service.to_xml_friendly_object()], None,
                        args.account)

            if add_service_result.has_key("AddServiceResult") and len(
                    add_service_result["AddServiceResult"]) == 1:
                for k in add_service_result["AddServiceResult"]:
                    added_service = AtomiaService()
                    added_service.from_simplexml(k)
                    added_service.print_me(args.filter, args.first, False,
                                           True)
                    return added_service
            else:
                raise Exception("Could not add service: " +
                                created_service.name)

    else:
        raise Exception("Could not create service: " + service_name)