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
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
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)
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
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
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
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)
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
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)