예제 #1
0
class Group(Resource):
    action = ForcedListArgument(default="create")
    group_name = ResourceArgument(default=lambda obj: obj.name)
    gid = ResourceArgument()
    password = ResourceArgument()

    actions = Resource.actions + ["create", "remove"]
예제 #2
0
class Directory(Resource):
    action = ForcedListArgument(default="create")
    path = ResourceArgument(default=lambda obj: obj.name)
    mode = ResourceArgument()
    owner = ResourceArgument()
    group = ResourceArgument()
    follow = BooleanArgument(default=True)  # follow links?
    """
  this works for 'create', 'delete' is anyway recursive
  recursive means only "mkdir -p", it does NOT perform recursive chown/chmod
  """
    recursive = BooleanArgument(default=False)
    """
  Grants x-bit for all the folders up-to the directory
  
  u - user who is owner
  g - user from group
  o - other users
  a - all
  
  The letters can be combined together.
  """
    cd_access = ResourceArgument()

    actions = Resource.actions + ["create", "delete"]
예제 #3
0
class Msi(Resource):
    action = ForcedListArgument(default="install")
    msi_name = ResourceArgument(default=lambda obj: obj.name)
    http_source = ResourceArgument(default=None)
    dict_args = ResourceArgument(default={})
    list_args = ResourceArgument(default={})
    actions = Resource.actions + ["install", "uninstall"]
예제 #4
0
class Directory(Resource):
    action = ForcedListArgument(default="create")
    path = ResourceArgument(default=lambda obj: obj.name)
    mode = ResourceArgument()
    owner = ResourceArgument()
    group = ResourceArgument()
    follow = BooleanArgument(default=True)  # follow links?
    recursive = BooleanArgument(
        default=False)  # this work for 'create', 'delete' is anyway recursive
    recursive_permission = BooleanArgument(
        default=False
    )  # sets given perms to all non-existent folders which are created recursively
    """
  Grants x-bit for all the folders up-to the directory
  
  u - user who is owner
  g - user from group
  o - other users
  a - all
  
  The letters can be combined together.
  """
    cd_access = ResourceArgument()

    actions = Resource.actions + ["create", "delete"]
예제 #5
0
class Package(Resource):
    action = ForcedListArgument(default="install")
    package_name = ResourceArgument(default=lambda obj: obj.name)
    location = ResourceArgument(default=lambda obj: obj.package_name)
    version = ResourceArgument()
    actions = ["install", "upgrade", "remove"]
    build_vars = ForcedListArgument(default=[])
예제 #6
0
class Link(Resource):
    action = ForcedListArgument(default="create")
    path = ResourceArgument(default=lambda obj: obj.name)
    to = ResourceArgument(required=True)
    hard = BooleanArgument(default=False)

    actions = Resource.actions + ["create", "delete"]
예제 #7
0
class Repository(Resource):
    action = ForcedListArgument(default="create")
    repo_id = ResourceArgument(default=lambda obj: obj.name)
    base_url = ResourceArgument()
    mirror_list = ResourceArgument()
    repo_file_name = ResourceArgument()

    actions = Resource.actions + ["create", "remove"]
예제 #8
0
파일: system.py 프로젝트: ycaihua/ambari
class Directory(Resource):
  action = ForcedListArgument(default="create")
  path = ResourceArgument(default=lambda obj: obj.name)
  mode = ResourceArgument()
  owner = ResourceArgument()
  group = ResourceArgument()
  recursive = BooleanArgument(default=False) # this work for 'create', 'delete' is anyway recursive

  actions = Resource.actions + ["create", "delete"]
예제 #9
0
class Repository(Resource):
  action = ForcedListArgument(default="create")
  repo_id = ResourceArgument(default=lambda obj: obj.name)
  base_url = ResourceArgument()
  mirror_list = ResourceArgument()
  repo_file_name = ResourceArgument()
  repo_template = ResourceArgument()
  components = ForcedListArgument(default=[]) # ubuntu specific

  actions = Resource.actions + ["create","remove"]
예제 #10
0
class ServiceConfig(Resource):
    action = ForcedListArgument(default="install")
    service_name = ResourceArgument(default=lambda obj: obj.name)
    display_name = ResourceArgument()
    description = ResourceArgument()
    start_type = ResourceArgument()
    #exe_path = ResourceArgument()
    #arguments = ResourceArgument()
    username = ResourceArgument()
    password = PasswordArgument()

    actions = ["nothing", "install", "configure", "change_user", "uninstall"]
예제 #11
0
class Repository(Resource):
    action = ForcedListArgument(default="prepare")
    repo_id = ResourceArgument(default=lambda obj: obj.name)
    base_url = ResourceArgument()
    mirror_list = ResourceArgument()
    repo_file_name = ResourceArgument()
    repo_template = ResourceArgument()
    components = ForcedListArgument(default=[])  # ubuntu specific
    """
  'prepare' action only adds repositories information into memory.
  'create' action writes prepared repositories into file (possibly multiple repos into single file)
  """
    actions = Resource.actions + ["prepare", "create", "remove"]
예제 #12
0
class Package(Resource):
    action = ForcedListArgument(default="install")
    package_name = ResourceArgument(default=lambda obj: obj.name)
    location = ResourceArgument(default=lambda obj: obj.package_name)

    # Allow using only specific list of repositories when performing action
    use_repos = ResourceArgument(default=[])
    skip_repos = ResourceArgument(default=[])
    """
  True           -  log it in INFO mode
  False          -  never log it
  None (default) -  log it in DEBUG mode
  """
    logoutput = ResourceArgument(default=None)
    """
  Retry if package manager is locked or unavailable.
  Note that retry_on_lock works only for apt-get and zypper, while yum manages lock retries itself.
  """
    retry_count = ResourceArgument(default=4)
    retry_sleep = ResourceArgument(default=30)
    retry_on_repo_unavailability = BooleanArgument(default=False)
    retry_on_locked = BooleanArgument(default=True)

    version = ResourceArgument()
    actions = ["install", "upgrade", "remove"]
    build_vars = ForcedListArgument(default=[])
    """
  False - also remove any packages that depend on the one being removed
  True - possibly break dependencies by keeping them installed
  """
    ignore_dependencies = BooleanArgument(default=False)
예제 #13
0
class CopyFromLocal(Resource):
  action = ForcedListArgument(default="run")

  path = ResourceArgument(default=lambda obj: obj.name)
  dest_dir = ResourceArgument(required=True)
  dest_file = ResourceArgument()
  owner = ResourceArgument(required=True)
  group = ResourceArgument()
  mode = ResourceArgument()
  kinnit_if_needed = ResourceArgument(default='')
  hadoop_conf_dir = ResourceArgument(default='/etc/hadoop/conf')
  hdfs_user = ResourceArgument(default='hdfs')
  hadoop_bin_dir = ResourceArgument(default='/usr/bin')

  actions = Resource.actions + ["run"]
예제 #14
0
class Package(Resource):
  action = ForcedListArgument(default="install")
  package_name = ResourceArgument(default=lambda obj: obj.name)
  location = ResourceArgument(default=lambda obj: obj.package_name)

  # Allow using only specific list of repositories when performing action
  use_repos = ResourceArgument(default=[])
  """
  True           -  log it in INFO mode
  False          -  never log it
  None (default) -  log it in DEBUG mode
  """
  logoutput = ResourceArgument(default=None)

  version = ResourceArgument()
  actions = ["install", "upgrade", "remove"]
  build_vars = ForcedListArgument(default=[])
예제 #15
0
class ExecuteHDFS(Resource):
    action = ForcedListArgument(default="run")
    command = ResourceArgument(default=lambda obj: obj.name)
    tries = ResourceArgument(default=1)
    try_sleep = ResourceArgument(default=0)
    user = ResourceArgument()
    logoutput = ResourceArgument()
    bin_dir = ResourceArgument(default=[])
    environment = ResourceArgument(default={})
    conf_dir = ResourceArgument()
    actions = Resource.actions + ["run"]
예제 #16
0
class XmlConfig(Resource):
  action = ForcedListArgument(default="create")
  filename = ResourceArgument(default=lambda obj: obj.name)
  
  configurations = ResourceArgument()
  configuration_attributes = ResourceArgument()
  conf_dir = ResourceArgument()
  
  mode = ResourceArgument()
  owner = ResourceArgument()
  group = ResourceArgument()
  xml_include_file = ResourceArgument()

  encoding = ResourceArgument(default="UTF-8")

  actions = Resource.actions + ["create"]
예제 #17
0
파일: system.py 프로젝트: ycaihua/ambari
class Execute(Resource):
  action = ForcedListArgument(default="run")
  
  """
  Recommended:
  command = ('rm','-f','myfile')
  Not recommended:
  command = 'rm -f myfile'
  
  The first one helps to stop escaping issues
  """
  command = ResourceArgument(default=lambda obj: obj.name)
  
  creates = ResourceArgument()
  cwd = ResourceArgument()
  # this runs command with a specific env variables, env={'JAVA_HOME': '/usr/jdk'}
  environment = ResourceArgument()
  user = ResourceArgument()
  group = ResourceArgument()
  returns = ForcedListArgument(default=0)
  tries = ResourceArgument(default=1)
  try_sleep = ResourceArgument(default=0) # seconds
  path = ForcedListArgument(default=[])
  actions = Resource.actions + ["run"]
  logoutput = BooleanArgument(default=False)
  """
  if on_timeout is not set leads to failing after x seconds,
  otherwise calls on_timeout
  """
  timeout = ResourceArgument() # seconds
  on_timeout = ResourceArgument()
  """
  Wait for command to finish or not. 
  
  NOTE:
  In case of False, since any command results are skipped, it disables some functionality: 
  - non-zero return code failure
  - logoutput
  - tries
  - try_sleep
  """
  wait_for_finish = BooleanArgument(default=True)
예제 #18
0
class ExecuteHadoop(Resource):
    action = ForcedListArgument(default="run")
    command = ResourceArgument(default=lambda obj: obj.name)
    tries = ResourceArgument(default=1)
    try_sleep = ResourceArgument(default=0)  # seconds
    user = ResourceArgument()
    logoutput = ResourceArgument()
    bin_dir = ResourceArgument(default=[])  # appended to $PATH
    environment = ResourceArgument(default={})

    conf_dir = ResourceArgument()

    actions = Resource.actions + ["run"]
예제 #19
0
class File(Resource):
    action = ForcedListArgument(default="create")
    path = ResourceArgument(default=lambda obj: obj.name)
    backup = ResourceArgument()
    mode = ResourceArgument()
    owner = ResourceArgument()
    group = ResourceArgument()
    content = ResourceArgument()
    # whether to replace files with different content
    replace = ResourceArgument(default=True)
    encoding = ResourceArgument()

    actions = Resource.actions + ["create", "delete"]
예제 #20
0
class ExecuteHadoop(Resource):
    action = ForcedListArgument(default="run")
    command = ResourceArgument(default=lambda obj: obj.name)
    kinit_override = BooleanArgument(default=False)
    tries = ResourceArgument(default=1)
    try_sleep = ResourceArgument(default=0)  # seconds
    user = ResourceArgument()
    logoutput = BooleanArgument(default=False)
    principal = ResourceArgument(default=lambda obj: obj.user)
    bin_dir = ResourceArgument(default=[])  # appended to $PATH

    conf_dir = ResourceArgument()

    security_enabled = BooleanArgument(default=False)
    keytab = ResourceArgument()
    kinit_path_local = ResourceArgument()

    actions = Resource.actions + ["run"]
예제 #21
0
class PropertiesFile(Resource):
    action = ForcedListArgument(default="create")
    filename = ResourceArgument(default=lambda obj: obj.name)

    properties = ResourceArgument()
    dir = ResourceArgument()

    mode = ResourceArgument()
    owner = ResourceArgument()
    group = ResourceArgument()
    key_value_delimiter = ResourceArgument(default="=")

    encoding = ResourceArgument(default="UTF-8")

    actions = Resource.actions + ["create"]
예제 #22
0
class HdfsDirectory(Resource):
    action = ForcedListArgument()

    dir_name = ResourceArgument(default=lambda obj: obj.name)
    owner = ResourceArgument()
    group = ResourceArgument()
    mode = ResourceArgument()
    recursive_chown = BooleanArgument(default=False)
    recursive_chmod = BooleanArgument(default=False)

    conf_dir = ResourceArgument()
    security_enabled = BooleanArgument(default=False)
    keytab = ResourceArgument()
    kinit_path_local = ResourceArgument()
    hdfs_user = ResourceArgument()
    bin_dir = ResourceArgument(default="")

    #action 'create' immediately creates all pending directory in efficient manner
    #action 'create_delayed' add directory to list of pending directories
    actions = Resource.actions + ["create", "create_delayed"]
예제 #23
0
class User(Resource):
    action = ForcedListArgument(default="create")
    username = ResourceArgument(default=lambda obj: obj.name)
    comment = ResourceArgument()
    uid = ResourceArgument()
    gid = ResourceArgument()
    groups = ForcedListArgument(default=[])  # supplementary groups
    home = ResourceArgument()
    shell = ResourceArgument()
    password = ResourceArgument()
    system = BooleanArgument(default=False)

    actions = Resource.actions + ["create", "remove"]
예제 #24
0
class ExecuteScript(Resource):
    action = ForcedListArgument(default="run")
    code = ResourceArgument(required=True)
    cwd = ResourceArgument()
    environment = ResourceArgument()
    interpreter = ResourceArgument(default="/bin/bash")
    user = ResourceArgument()
    group = ResourceArgument()

    actions = Resource.actions + ["run"]
예제 #25
0
class TemplateConfig(Resource):
  action = ForcedListArgument(default="create")
  path = ResourceArgument(default=lambda obj: obj.name)
  mode = ResourceArgument()
  owner = ResourceArgument()
  group = ResourceArgument()
  template_tag = ResourceArgument()
  extra_imports = ResourceArgument(default=[])

  actions = Resource.actions + ["create"]
예제 #26
0
파일: service.py 프로젝트: ycaihua/ambari
class Service(Resource):
  action = ForcedListArgument(default="start")
  service_name = ResourceArgument(default=lambda obj: obj.name)
  #enabled = ResourceArgument() # Maybe add support to put in/out autostart.
  start_command = ResourceArgument()
  stop_command = ResourceArgument()
  restart_command = ResourceArgument()
  reload_command = ResourceArgument() # reload the config file without interrupting pending operations
  status_command = ResourceArgument()

  actions = ["nothing", "start", "stop", "restart", "reload"]
예제 #27
0
파일: system.py 프로젝트: ycaihua/ambari
class Mount(Resource):
  action = ForcedListArgument(default="mount")
  mount_point = ResourceArgument(default=lambda obj: obj.name)
  device = ResourceArgument()
  fstype = ResourceArgument()
  options = ResourceArgument(default=["defaults"])
  dump = ResourceArgument(default=0)
  passno = ResourceArgument(default=2)

  actions = Resource.actions + ["mount", "umount", "remount", "enable",
                                "disable"]
예제 #28
0
class ModifyPropertiesFile(Resource):
  action = ForcedListArgument(default="create")
  filename = ResourceArgument(default=lambda obj: obj.name)

  properties = ResourceArgument()

  mode = ResourceArgument()
  owner = ResourceArgument()
  group = ResourceArgument()
  
  key_value_delimiter = ResourceArgument(default='=')
  comment_symbols = ForcedListArgument(default=['#'])
  encoding = ResourceArgument(default='utf-8')

  actions = Resource.actions + ["create"]
예제 #29
0
class PropertiesFile(Resource):
    action = ForcedListArgument(default="create")
    filename = ResourceArgument(default=lambda obj: obj.name)

    properties = ResourceArgument()
    dir = ResourceArgument()

    mode = ResourceArgument()
    owner = ResourceArgument()
    group = ResourceArgument()

    actions = Resource.actions + ["create"]
예제 #30
0
class XmlConfig(Resource):
    action = ForcedListArgument(default="create")
    filename = ResourceArgument(default=lambda obj: obj.name)

    configurations = ResourceArgument()
    conf_dir = ResourceArgument()

    mode = ResourceArgument()
    owner = ResourceArgument()
    group = ResourceArgument()

    actions = Resource.actions + ["create"]